Thread: Detecting existance of table
Is there a way of detecting the existance of a table via a function call? I'm trying to implement a 'saved search' feature in a search engine, and need to query a database to see if a particular table exists without throwing an error. Actually, can an exception be caught somehow? I'm mainly doing this with PHP3, but I also need to do it via the Perl Pg.pm Brett W. McCoy http://www.lan2wan.com/~bmccoy ----------------------------------------------------------------------- Why is the alphabet in that order? Is it because of that song?
> Is there a way of detecting the existance of a table via a function call? Not through the client library, as far as I can tell. Why would you need a function call? Send a query, like this one: http://wit.mcs.anl.gov/EMP/list-classes.cgi?database=emp > Actually, can an exception be caught somehow? I'm > mainly doing this with PHP3, but I also need to do it via the Perl Pg.pm That's easy in perl: eval {local $SIG{__DIE__}; do soemthing wrong here } This piece of code will catch an exception caused by eval() and do nothing. Refer to the following document for an extensive discussion of signal handling (__DIE__ is just a signal): http://theory.uwinnipeg.ca/CPAN/data/pod2texi/perlipc.html However, I don't see how anything you do in Pg might lead to an exception (other than FPE). Queries against non-existent objects will generate errors in the backend, of which your code will be notified via Pg. But that will not cause any exceptions. You will just get a different result code. But I agree that filling your server log with harmless error messages is not good. Query pg_class first. --Gene
Try this: select TRUE from pg_class where relname = 'my_table' and relkind = 'r'; José "Brett W. McCoy" ha scritto: > Is there a way of detecting the existance of a table via a function call? > I'm trying to implement a 'saved search' feature in a search engine, and > need to query a database to see if a particular table exists without > throwing an error. Actually, can an exception be caught somehow? I'm > mainly doing this with PHP3, but I also need to do it via the Perl Pg.pm > > Brett W. McCoy > http://www.lan2wan.com/~bmccoy > ----------------------------------------------------------------------- > Why is the alphabet in that order? Is it because of that song?