Thread: How to tell what OS PostgreSQL is installed on.

How to tell what OS PostgreSQL is installed on.

From
Louis Lam
Date:
Hi,



I have a need to find out what OS PostgreSQL is running under.  I need to be
able to query the database or send a command and  figure it out.  I also do
not have super user permission to do this.  All I want to know is if the
PostgreSQL I am connected to is running from Windows or Non Windows.



I could do =93Show data_directory=94 and parse the result, but this require
superuser permission.



I tried select version() also.  Under Windows OS, I got this:



version

 ---------------------------------------------------

 PostgreSQL 8.3.6, compiled by Visual C++ build 1400



Does anyone know if Visual C++ is use to only compile PostgreSQL for
Windows?  Or can other compiler be use?  If Visual C++ is always use for
Windows and Windows only then this is very good information I can use.



I know on RedHat, I got this.



version


 --------------------------------------------------------------------------=
----------------------------


 PostgreSQL 8.3.7 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC) 3.4.6
20060404 (Red Hat 3.4.6-10)



And on Solaris I got this.



-----------------

 PostgreSQL 8.1.11 on sparc-sun-solaris2.10, compiled by
/ws/on10-tools/SUNWspro/SOS8/bin/cc -Xa

(1 row)





Thank you all in advance for your help.

Louis Lam

Re: How to tell what OS PostgreSQL is installed on.

From
"Scott Whitney"
Date:
Visual C++ is Microsoft's compiler for C++. If something is compiled with
Visual C++, it was COMPILED on Windows. There is a 99.9% chance that the
underlying machine is also Windows (unless you're talking about a VM, but,
still, the OS on which PG itself is running is, in fact, Windows).

To the best of my knowledge, there is no way, within the PG interpreter to
determine what version of Windows you're on, however.



-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Louis Lam
Sent: Thursday, October 08, 2009 3:59 PM
To: pgsql-admin@postgresql.org
Subject: [ADMIN] How to tell what OS PostgreSQL is installed on.

Hi,



I have a need to find out what OS PostgreSQL is running under.  I need to be
able to query the database or send a command and  figure it out.  I also do
not have super user permission to do this.  All I want to know is if the
PostgreSQL I am connected to is running from Windows or Non Windows.



I could do "Show data_directory" and parse the result, but this require
superuser permission.



I tried select version() also.  Under Windows OS, I got this:



version

 ---------------------------------------------------

 PostgreSQL 8.3.6, compiled by Visual C++ build 1400



Does anyone know if Visual C++ is use to only compile PostgreSQL for
Windows?  Or can other compiler be use?  If Visual C++ is always use for
Windows and Windows only then this is very good information I can use.



I know on RedHat, I got this.



version



----------------------------------------------------------------------------
--------------------------

 PostgreSQL 8.3.7 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC) 3.4.6
20060404 (Red Hat 3.4.6-10)



And on Solaris I got this.



-----------------

 PostgreSQL 8.1.11 on sparc-sun-solaris2.10, compiled by
/ws/on10-tools/SUNWspro/SOS8/bin/cc -Xa

(1 row)





Thank you all in advance for your help.

Louis Lam





Re: How to tell what OS PostgreSQL is installed on.

From
Julio Leyva
Date:
as postgres user

 psql -c "select version()";




From: louis.lam@guardium.com
Date: Thu, 8 Oct 2009 16:58:33 -0400
Subject: [ADMIN] How to tell what OS PostgreSQL is installed on.
To: pgsql-admin@postgresql.org

.ExternalClass p.ecxMsoNormal, .ExternalClass li.ecxMsoNormal, .ExternalClass div.ecxMsoNormal {margin-bottom:.0001pt;font-size:11.0pt;font-family:'Calibri','sans-serif';} .ExternalClass a:link, .ExternalClass span.ecxMsoHyperlink {color:blue;text-decoration:underline;} .ExternalClass a:visited, .ExternalClass span.ecxMsoHyperlinkFollowed {color:purple;text-decoration:underline;} .ExternalClass span.ecxEmailStyle17 {font-family:'Calibri','sans-serif';color:windowtext;} .ExternalClass .ecxMsoChpDefault {;} @page Section1 {size:8.5in 11.0in;} .ExternalClass div.ecxSection1 {page:Section1;}

Hi,

 

I have a need to find out what OS PostgreSQL is running under.  I need to be able to query the database or send a command and  figure it out.  I also do not have super user permission to do this.  All I want to know is if the PostgreSQL I am connected to is running from Windows or Non Windows.

 

I could do “Show data_directory” and parse the result, but this require superuser permission.

 

I tried select version() also.  Under Windows OS, I got this:

 

version                                            

 ---------------------------------------------------

 PostgreSQL 8.3.6, compiled by Visual C++ build 1400

 

Does anyone know if Visual C++ is use to only compile PostgreSQL for Windows?  Or can other compiler be use?  If Visual C++ is always use for Windows and Windows only then this is very good information I can use.

 

I know on RedHat, I got this.

 

version                                                                                                

 ------------------------------------------------------------------------------------------------------

 PostgreSQL 8.3.7 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-10)

 

And on Solaris I got this.

 

-----------------

 PostgreSQL 8.1.11 on sparc-sun-solaris2.10, compiled by /ws/on10-tools/SUNWspro/SOS8/bin/cc -Xa

(1 row)

 

 

Thank you all in advance for your help.

Louis Lam

 

Re: How to tell what OS PostgreSQL is installed on.

From
"Scott Whitney"
Date:
Another option might be to look in the
select pg_show_all_settings() for the ident_file.

If the ident file is a DOS path (aka c:\somewhere\some dir\some file), you
know you're on a Windows-based system. If it's a UNIX path, select version()
will tell you specifically.

-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Julio Leyva
Sent: Thursday, October 08, 2009 4:14 PM
To: louis.lam@guardium.com; pgsql-admin@postgresql.org
Subject: Re: [ADMIN] How to tell what OS PostgreSQL is installed on.

as postgres user

 psql -c "select version()";




________________________________

From: louis.lam@guardium.com
Date: Thu, 8 Oct 2009 16:58:33 -0400
Subject: [ADMIN] How to tell what OS PostgreSQL is installed on.
To: pgsql-admin@postgresql.org



Hi,



I have a need to find out what OS PostgreSQL is running under.  I need to be
able to query the database or send a command and  figure it out.  I also do
not have super user permission to do this.  All I want to know is if the
PostgreSQL I am connected to is running from Windows or Non Windows.



I could do "Show data_directory" and parse the result, but this require
superuser permission.



I tried select version() also.  Under Windows OS, I got this:



version

 ---------------------------------------------------

 PostgreSQL 8.3.6, compiled by Visual C++ build 1400



Does anyone know if Visual C++ is use to only compile PostgreSQL for
Windows?  Or can other compiler be use?  If Visual C++ is always use for
Windows and Windows only then this is very good information I can use.



I know on RedHat, I got this.



version



----------------------------------------------------------------------------
--------------------------

 PostgreSQL 8.3.7 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC) 3.4.6
20060404 (Red Hat 3.4.6-10)



And on Solaris I got this.



-----------------

 PostgreSQL 8.1.11 on sparc-sun-solaris2.10, compiled by
/ws/on10-tools/SUNWspro/SOS8/bin/cc -Xa

(1 row)





Thank you all in advance for your help.

Louis Lam





Re: How to tell what OS PostgreSQL is installed on.

From
Louis Lam
Date:
Hi Scott,

Thanks for the info.  I did tried

select pg_show_all_settings()

But this function has a filter based on a user privilege.  As postgres
user, I got 187 rows return and can see parameter like data_directory with
its OS path.  But as a non admin user, I got 176 rows return and all the
parameters that would point to a directory on the OS are not shown due to
privilege.

Louis.


-----Original Message-----
From: Scott Whitney [mailto:swhitney@journyx.com]
Sent: Thursday, October 08, 2009 5:19 PM
To: 'Julio Leyva'; louis.lam@guardium.com; pgsql-admin@postgresql.org
Subject: RE: [ADMIN] How to tell what OS PostgreSQL is installed on.

Another option might be to look in the
select pg_show_all_settings() for the ident_file.

If the ident file is a DOS path (aka c:\somewhere\some dir\some file), you
know you're on a Windows-based system. If it's a UNIX path, select
version()
will tell you specifically.

-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Julio Leyva
Sent: Thursday, October 08, 2009 4:14 PM
To: louis.lam@guardium.com; pgsql-admin@postgresql.org
Subject: Re: [ADMIN] How to tell what OS PostgreSQL is installed on.

as postgres user

 psql -c "select version()";




________________________________

From: louis.lam@guardium.com
Date: Thu, 8 Oct 2009 16:58:33 -0400
Subject: [ADMIN] How to tell what OS PostgreSQL is installed on.
To: pgsql-admin@postgresql.org



Hi,



I have a need to find out what OS PostgreSQL is running under.  I need to
be
able to query the database or send a command and  figure it out.  I also
do
not have super user permission to do this.  All I want to know is if the
PostgreSQL I am connected to is running from Windows or Non Windows.



I could do "Show data_directory" and parse the result, but this require
superuser permission.



I tried select version() also.  Under Windows OS, I got this:



version

 ---------------------------------------------------

 PostgreSQL 8.3.6, compiled by Visual C++ build 1400



Does anyone know if Visual C++ is use to only compile PostgreSQL for
Windows?  Or can other compiler be use?  If Visual C++ is always use for
Windows and Windows only then this is very good information I can use.



I know on RedHat, I got this.



version



--------------------------------------------------------------------------
--
--------------------------

 PostgreSQL 8.3.7 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC)
3.4.6
20060404 (Red Hat 3.4.6-10)



And on Solaris I got this.



-----------------

 PostgreSQL 8.1.11 on sparc-sun-solaris2.10, compiled by
/ws/on10-tools/SUNWspro/SOS8/bin/cc -Xa

(1 row)





Thank you all in advance for your help.

Louis Lam

Re: How to tell what OS PostgreSQL is installed on.

From
"Scott Whitney"
Date:
One more clever one:

\o /tmp/foo will fail on Windows with a "No such file or directory"

Any Unix system will give you access to /tmp for writing. If you can't open
a stream for output to /tmp, you're on a file system that has no /tmp, aka
Windows

-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Scott Whitney
Sent: Thursday, October 08, 2009 4:11 PM
To: 'Louis Lam'; pgsql-admin@postgresql.org
Subject: Re: [ADMIN] How to tell what OS PostgreSQL is installed on.

Visual C++ is Microsoft's compiler for C++. If something is compiled with
Visual C++, it was COMPILED on Windows. There is a 99.9% chance that the
underlying machine is also Windows (unless you're talking about a VM, but,
still, the OS on which PG itself is running is, in fact, Windows).

To the best of my knowledge, there is no way, within the PG interpreter to
determine what version of Windows you're on, however.



-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Louis Lam
Sent: Thursday, October 08, 2009 3:59 PM
To: pgsql-admin@postgresql.org
Subject: [ADMIN] How to tell what OS PostgreSQL is installed on.

Hi,



I have a need to find out what OS PostgreSQL is running under.  I need to be
able to query the database or send a command and  figure it out.  I also do
not have super user permission to do this.  All I want to know is if the
PostgreSQL I am connected to is running from Windows or Non Windows.



I could do "Show data_directory" and parse the result, but this require
superuser permission.



I tried select version() also.  Under Windows OS, I got this:



version

 ---------------------------------------------------

 PostgreSQL 8.3.6, compiled by Visual C++ build 1400



Does anyone know if Visual C++ is use to only compile PostgreSQL for
Windows?  Or can other compiler be use?  If Visual C++ is always use for
Windows and Windows only then this is very good information I can use.



I know on RedHat, I got this.



version



----------------------------------------------------------------------------
--------------------------

 PostgreSQL 8.3.7 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC) 3.4.6
20060404 (Red Hat 3.4.6-10)



And on Solaris I got this.



-----------------

 PostgreSQL 8.1.11 on sparc-sun-solaris2.10, compiled by
/ws/on10-tools/SUNWspro/SOS8/bin/cc -Xa

(1 row)





Thank you all in advance for your help.

Louis Lam





--
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin


Re: How to tell what OS PostgreSQL is installed on.

From
Louis Lam
Date:
Scott,

\o /tmp/foo  This look like a psql thing only.  I cannot do this via JDBC.
I guess the only solution is to use "select version()"  and in combination
with select spclocation on pg_tablespace where spclocation is not null;

The only problem is, if a user do not create any tablespace which I assume
one would always do in production.  Then this spclocation column will
always be NULL by default.  Once a tablespace is created, then I can get a
value on the spclocation and parse that to determine if it is Windows or
Unix/Linux.

Thanks,
Louis.


-----Original Message-----
From: Scott Whitney [mailto:swhitney@journyx.com]
Sent: Thursday, October 08, 2009 5:50 PM
To: 'Scott Whitney'; 'Louis Lam'; pgsql-admin@postgresql.org
Subject: RE: [ADMIN] How to tell what OS PostgreSQL is installed on.

One more clever one:

\o /tmp/foo will fail on Windows with a "No such file or directory"

Any Unix system will give you access to /tmp for writing. If you can't
open
a stream for output to /tmp, you're on a file system that has no /tmp, aka
Windows

-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Scott Whitney
Sent: Thursday, October 08, 2009 4:11 PM
To: 'Louis Lam'; pgsql-admin@postgresql.org
Subject: Re: [ADMIN] How to tell what OS PostgreSQL is installed on.

Visual C++ is Microsoft's compiler for C++. If something is compiled with
Visual C++, it was COMPILED on Windows. There is a 99.9% chance that the
underlying machine is also Windows (unless you're talking about a VM, but,
still, the OS on which PG itself is running is, in fact, Windows).

To the best of my knowledge, there is no way, within the PG interpreter to
determine what version of Windows you're on, however.



-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Louis Lam
Sent: Thursday, October 08, 2009 3:59 PM
To: pgsql-admin@postgresql.org
Subject: [ADMIN] How to tell what OS PostgreSQL is installed on.

Hi,



I have a need to find out what OS PostgreSQL is running under.  I need to
be
able to query the database or send a command and  figure it out.  I also
do
not have super user permission to do this.  All I want to know is if the
PostgreSQL I am connected to is running from Windows or Non Windows.



I could do "Show data_directory" and parse the result, but this require
superuser permission.



I tried select version() also.  Under Windows OS, I got this:



version

 ---------------------------------------------------

 PostgreSQL 8.3.6, compiled by Visual C++ build 1400



Does anyone know if Visual C++ is use to only compile PostgreSQL for
Windows?  Or can other compiler be use?  If Visual C++ is always use for
Windows and Windows only then this is very good information I can use.



I know on RedHat, I got this.



version



--------------------------------------------------------------------------
--
--------------------------

 PostgreSQL 8.3.7 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC)
3.4.6
20060404 (Red Hat 3.4.6-10)



And on Solaris I got this.



-----------------

 PostgreSQL 8.1.11 on sparc-sun-solaris2.10, compiled by
/ws/on10-tools/SUNWspro/SOS8/bin/cc -Xa

(1 row)





Thank you all in advance for your help.

Louis Lam





--
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin

Re: How to tell what OS PostgreSQL is installed on.

From
Louis Lam
Date:
Hi Scott,

Thanks for the info.  I did tried

select pg_show_all_settings()

But this function has a filter based on a user privilege.  As postgres
user, I got 187 rows return and can see parameter like data_directory with
its OS path.  But as a non admin user, I got 176 rows return and all the
parameters that would point to a directory on the OS are not shown due to
privilege.

Louis.


-----Original Message-----
From: Scott Whitney [mailto:swhitney@journyx.com]
Sent: Thursday, October 08, 2009 5:19 PM
To: 'Julio Leyva'; louis.lam@guardium.com; pgsql-admin@postgresql.org
Subject: RE: [ADMIN] How to tell what OS PostgreSQL is installed on.

Another option might be to look in the
select pg_show_all_settings() for the ident_file.

If the ident file is a DOS path (aka c:\somewhere\some dir\some file), you
know you're on a Windows-based system. If it's a UNIX path, select
version()
will tell you specifically.

-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Julio Leyva
Sent: Thursday, October 08, 2009 4:14 PM
To: louis.lam@guardium.com; pgsql-admin@postgresql.org
Subject: Re: [ADMIN] How to tell what OS PostgreSQL is installed on.

as postgres user

 psql -c "select version()";




________________________________

From: louis.lam@guardium.com
Date: Thu, 8 Oct 2009 16:58:33 -0400
Subject: [ADMIN] How to tell what OS PostgreSQL is installed on.
To: pgsql-admin@postgresql.org



Hi,



I have a need to find out what OS PostgreSQL is running under.  I need to
be
able to query the database or send a command and  figure it out.  I also
do
not have super user permission to do this.  All I want to know is if the
PostgreSQL I am connected to is running from Windows or Non Windows.



I could do "Show data_directory" and parse the result, but this require
superuser permission.



I tried select version() also.  Under Windows OS, I got this:



version

 ---------------------------------------------------

 PostgreSQL 8.3.6, compiled by Visual C++ build 1400



Does anyone know if Visual C++ is use to only compile PostgreSQL for
Windows?  Or can other compiler be use?  If Visual C++ is always use for
Windows and Windows only then this is very good information I can use.



I know on RedHat, I got this.



version



--------------------------------------------------------------------------
--
--------------------------

 PostgreSQL 8.3.7 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC)
3.4.6
20060404 (Red Hat 3.4.6-10)



And on Solaris I got this.



-----------------

 PostgreSQL 8.1.11 on sparc-sun-solaris2.10, compiled by
/ws/on10-tools/SUNWspro/SOS8/bin/cc -Xa

(1 row)





Thank you all in advance for your help.

Louis Lam

Re: How to tell what OS PostgreSQL is installed on.

From
Louis Lam
Date:
Scott,

\o /tmp/foo  This look like a psql thing only.  I cannot do this via JDBC.
I guess the only solution is to use "select version()"  and in combination
with select spclocation on pg_tablespace where spclocation is not null;

The only problem is, if a user do not create any tablespace which I assume
one would always do in production.  Then this spclocation column will
always be NULL by default.  Once a tablespace is created, then I can get a
value on the spclocation and parse that to determine if it is Windows or
Unix/Linux.

Thanks,
Louis.


-----Original Message-----
From: Scott Whitney [mailto:swhitney@journyx.com]
Sent: Thursday, October 08, 2009 5:50 PM
To: 'Scott Whitney'; 'Louis Lam'; pgsql-admin@postgresql.org
Subject: RE: [ADMIN] How to tell what OS PostgreSQL is installed on.

One more clever one:

\o /tmp/foo will fail on Windows with a "No such file or directory"

Any Unix system will give you access to /tmp for writing. If you can't
open
a stream for output to /tmp, you're on a file system that has no /tmp, aka
Windows

-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Scott Whitney
Sent: Thursday, October 08, 2009 4:11 PM
To: 'Louis Lam'; pgsql-admin@postgresql.org
Subject: Re: [ADMIN] How to tell what OS PostgreSQL is installed on.

Visual C++ is Microsoft's compiler for C++. If something is compiled with
Visual C++, it was COMPILED on Windows. There is a 99.9% chance that the
underlying machine is also Windows (unless you're talking about a VM, but,
still, the OS on which PG itself is running is, in fact, Windows).

To the best of my knowledge, there is no way, within the PG interpreter to
determine what version of Windows you're on, however.



-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Louis Lam
Sent: Thursday, October 08, 2009 3:59 PM
To: pgsql-admin@postgresql.org
Subject: [ADMIN] How to tell what OS PostgreSQL is installed on.

Hi,



I have a need to find out what OS PostgreSQL is running under.  I need to
be
able to query the database or send a command and  figure it out.  I also
do
not have super user permission to do this.  All I want to know is if the
PostgreSQL I am connected to is running from Windows or Non Windows.



I could do "Show data_directory" and parse the result, but this require
superuser permission.



I tried select version() also.  Under Windows OS, I got this:



version

 ---------------------------------------------------

 PostgreSQL 8.3.6, compiled by Visual C++ build 1400



Does anyone know if Visual C++ is use to only compile PostgreSQL for
Windows?  Or can other compiler be use?  If Visual C++ is always use for
Windows and Windows only then this is very good information I can use.



I know on RedHat, I got this.



version



--------------------------------------------------------------------------
--
--------------------------

 PostgreSQL 8.3.7 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC)
3.4.6
20060404 (Red Hat 3.4.6-10)



And on Solaris I got this.



-----------------

 PostgreSQL 8.1.11 on sparc-sun-solaris2.10, compiled by
/ws/on10-tools/SUNWspro/SOS8/bin/cc -Xa

(1 row)





Thank you all in advance for your help.

Louis Lam





--
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin

Re: How to tell what OS PostgreSQL is installed on.

From
Michael van Elst
Date:
On Thu, Oct 08, 2009 at 05:31:50PM -0400, Louis Lam wrote:
> Hi Scott,
>
> Thanks for the info.  I did tried
>
> select pg_show_all_settings()
>
> But this function has a filter based on a user privilege.  As postgres
> user, I got 187 rows return and can see parameter like data_directory with
> its OS path.  But as a non admin user, I got 176 rows return and all the
> parameters that would point to a directory on the OS are not shown due to
> privilege.

I'm wondering what you want to do with this information. For a user
there should not be a difference regarding the underlying operating
system on the server. And for an admin who might want to do statistics
on a larger set of database servers you should have enough privileges.

If you need some classification of all the databases then you could just
store that information in the database. E.g. with a stored procedure
that gives you the correct answer.

Greetings,
--
                                Michael van Elst
Internet: mlelstv@serpens.de
                                "A potential Snark may lurk in every tree."