Re: Retrieving a list of tables

Lists: pgsql-php
From: "David C(dot) Brown" <dbrown(at)centennialwines(dot)com>
To: pgsql-php(at)postgresql(dot)org
Subject: Retrieving a list of tables
Date: 2001-10-16 20:09:13
Message-ID: 3BCC93E9.E3B2F503@centennialwines.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-php

Heyas,

I need to be able to get a list of the tables from a postgresql from
php. I'm
porting a php-mysql website over to postgresql. I have a form that
populates
a <SELECT> statment with the tables in the db.

In Mysql I just used the sql query "SHOW TABLES;" postgresql doesn't
support that sql statment, and pg-php doesn't like me sending a "\d" as
a
query.

Anyone have any help, or ideas how I may be able to work around this?
or is there a query for pg-sql that I don't know about?

Any and all help would be great... Thanx

Dave


From: Alessandro Ferrarin <ferrarin(at)tieffesistemi(dot)com>
To: "David C(dot) Brown" <dbrown(at)centennialwines(dot)com>
Cc: pgsql-php(at)postgresql(dot)org
Subject: Re: Retrieving a list of tables
Date: 2001-10-17 09:08:32
Message-ID: 20011017110832.A1052@tieffesistemi.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-php

On Tue, Oct 16, 2001 at 03:09:13PM -0500, David C. Brown wrote:
> Heyas,
>
> I need to be able to get a list of the tables from a postgresql from
> php. I'm
> porting a php-mysql website over to postgresql. I have a form that
> populates
> a <SELECT> statment with the tables in the db.
>
> In Mysql I just used the sql query "SHOW TABLES;" postgresql doesn't
> support that sql statment, and pg-php doesn't like me sending a "\d" as
> a
> query.
>
> Anyone have any help, or ideas how I may be able to work around this?
> or is there a query for pg-sql that I don't know about?
>
> Any and all help would be great... Thanx
>
> Dave

The right way to get that (with Owner and Encoding type), is querying:

SELECT pg_database.datname as "Database",
pg_user.usename as "Owner",
pg_encoding_to_char(pg_database.encoding) as "Encoding"FROM pg_database, pg_user
WHERE pg_database.datdba = pg_user.usesysid

UNION

SELECT pg_database.datname as "Database",
NULL as "Owner",
pg_encoding_to_char(pg_database.encoding) as "Encoding"FROM pg_database
WHERE pg_database.datdba NOT IN (SELECT usesysid FROM pg_user)
ORDER BY "Database";

Postgres uses some "internal" tables to store data. You can query them as
you want just for reading (I suppose).
If you start the terminal-based front-end psql like this

psql -E

you obtain: (from man page):
-E, --echo-hidden
Echoes the actual queries generated by \d and other backslash com-
mands. You can use this if you wish to include similar function-
ality into your own programs. This is equivalent to setting the
variable ECHO_HIDDEN from within psql.

Try it.

Bye - Alessandro

P.S. I encountered the problem you ask making a php-pgsql-browser...
--
+-----------------------------------------------------------------------+
Alessandro Ferrarin ferrarin(at)tieffesistemi(dot)com
Tieffe Sistemi s.r.l. www.tieffesistemi.com
V.le Piceno 21 - 20129 Milano - Italia tel/fax +39 02 76115215
+-----------------------------------------------------------------------+


From: <erle(at)hindang(dot)msuiit(dot)edu(dot)ph>
To: "David C(dot) Brown" <dbrown(at)centennialwines(dot)com>
Cc: <pgsql-php(at)postgresql(dot)org>
Subject: Re: Retrieving a list of tables
Date: 2001-10-17 20:59:34
Message-ID: Pine.LNX.4.30.0110171654070.13484-100000@hindang.msuiit.edu.ph
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-php

On Tue, 16 Oct 2001, David C. Brown wrote:

> Heyas,
>
> I need to be able to get a list of the tables from a postgresql from
> php. I'm
> porting a php-mysql website over to postgresql. I have a form that
> populates
> a <SELECT> statment with the tables in the db.
>
> In Mysql I just used the sql query "SHOW TABLES;" postgresql doesn't
> support that sql statment, and pg-php doesn't like me sending a "\d" as
> a
> query.
>
> Anyone have any help, or ideas how I may be able to work around this?
> or is there a query for pg-sql that I don't know about?
>
> Any and all help would be great... Thanx
>
> Dave
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>

Hey ,....

If you want to know the list of tables in a certain database,
you can query the pg_table table.

select * from pg_tables where tableowner = 'ME';

Its not really a table but a view, it contains all the tables in a
database where you connected including the system tables of postgres so be
sure to filter your query.

Let me know if this was what you need ....

Erle Czar S. Mantos
erle(at)hindang(dot)msuiit(dot)edu(dot)ph

---------- MARTIANS LAIR ---------


From: "Papp Gyozo" <pgerzson(at)freestart(dot)hu>
To: "David C(dot) Brown" <dbrown(at)centennialwines(dot)com>
Cc: <pgsql-php(at)postgresql(dot)org>
Subject: Re: Retrieving a list of tables
Date: 2001-10-18 10:43:54
Message-ID: 001401c157c2$0898fb40$01fdfea9@jaguar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-php

If you runs psql with -E option, then psql reveals the SQL equivalent of its
magical metacommands starting with a backslash ie.: \dv \d and so on. Use
those queries !

<manual src="app-psql.html">
-E, --echo-hidden
Echoes the actual queries generated by \d and other backslash commands. You
can use this if you wish to include similar functionality into your own
programs. This is equivalent to setting the variable ECHO_HIDDEN from within
psql.
</manual>

----- Original Message -----
From: <erle(at)hindang(dot)msuiit(dot)edu(dot)ph>
To: "David C. Brown" <dbrown(at)centennialwines(dot)com>
Cc: <pgsql-php(at)postgresql(dot)org>
Sent: Wednesday, October 17, 2001 10:59 PM
Subject: Re: [PHP] Retrieving a list of tables

> On Tue, 16 Oct 2001, David C. Brown wrote:
>
> > Heyas,
> >
> > I need to be able to get a list of the tables from a postgresql from
> > php. I'm
> > porting a php-mysql website over to postgresql. I have a form that
> > populates
> > a <SELECT> statment with the tables in the db.
> >
> > In Mysql I just used the sql query "SHOW TABLES;" postgresql doesn't
> > support that sql statment, and pg-php doesn't like me sending a "\d" as
> > a
> > query.
> >
> > Anyone have any help, or ideas how I may be able to work around this?
> > or is there a query for pg-sql that I don't know about?
> >
> > Any and all help would be great... Thanx
> >
> > Dave
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 4: Don't 'kill -9' the postmaster
> >
>
> Hey ,....
>
>
> If you want to know the list of tables in a certain database,
> you can query the pg_table table.
>
> select * from pg_tables where tableowner = 'ME';
>
> Its not really a table but a view, it contains all the tables in a
> database where you connected including the system tables of postgres so be
> sure to filter your query.
>
> Let me know if this was what you need ....
>
>
> Erle Czar S. Mantos
> erle(at)hindang(dot)msuiit(dot)edu(dot)ph
>
> ---------- MARTIANS LAIR ---------
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
> message can get through to the mailing list cleanly