Porting from MySql - meta data issues

Started by Geoff Caplanabout 24 years ago2 messagesgeneral
Jump to latest
#1Geoff Caplan
geoff@advantae.com

Hi folks

[Repost of a message that didn't seem to make it onto the list...]

I'm porting quite a big PHP application from MySql and have hit an issue.

I have a number of PHP functions in the app which return meta-info about
the data structure:

list_databases( ) ;
list_tables( $database_name ) ;
list_field_names( $table_name ) ;
is_existing_field( $table_name ) ;

With MySql, this info is readily available using the various SHOW queries,
but I can't figure out how to do this with Postgres.

For databases and tables, the only option I have come up with is to shell
out to psql and use a regex to parse the strings returned. Clearly, this
would be a bit of a hack, and not resource efficient. For field names, I
guess I could do a SELECT, provided there is at least one record, and get
at the field names returned... Again, not very elegant.

Can any kind person suggest a more effective approach? I am brand new to
Postgres, and doing this under considerable time pressure, so apologies if
I am missing anything obvious - I can't find anything in the docs, or in
the articles on porting from MySQL...

Geoff Caplan
Advantae Ltd

#2Antti Haapala
antti.haapala@iki.fi
In reply to: Geoff Caplan (#1)
Re: Porting from MySql - meta data issues

I have a number of PHP functions in the app which return meta-info about
the data structure:

list_databases( ) ;
list_tables( $database_name ) ;
list_field_names( $table_name ) ;
is_existing_field( $table_name ) ;

With MySql, this info is readily available using the various SHOW queries,
but I can't figure out how to do this with Postgres.

Run psql with -E switch and you're able to see internal queries generated
by i.e. \dt and \l commands. Then you can cut'n'paste and modify those
queries to match your requirements.

--
Antti Haapala