Skip to content
Pull request Compare This branch is 120 commits ahead, 28379 commits behind master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


With version 7.1 of PostgreSQL server,  the old naming scheme for
databases and tables (in $PGDATA/base) has changed.  The databases
are put in folders for their OID in pg_database and the tables in
that folder are named for their OIDs in pg_class.  This app connects
to the database (you can specify host, port, user, pass etc to 
connect to a host other than localhost) and extracts the OID and 
table name information.  It has 4 ways it can be run:


  This will connect to the template1 database and display all databases
   in the system.

  $ ./pg_oid2name                                                                
  All databases:
  18720  = test1
  1      = template1
  18719  = template0
  18721  = test
  18735  = postgres
  18736  = cssi

 pg_oid2name -d test [-x]

  This connects to the database test and shows all tables and their OIDs.

  $ ./pg_oid2name -d test                                                        
  All tables from database "test":
  18766  = dns
  18737  = ips
  18722  = testdate

 pg_oid2name -d test -o 18737      or
 pg_oid2name -d test -t testdate

  This will connect to the database test and display the table name for oid
   18737 and the oid for table name testdate respectivly.

  $ ./pg_oid2name -d test -o 18737
  Tablename of oid 18737 from database "test":
  18737  = ips

  $ ./pg_oid2name -d test -t testdate 
  Oid of table testdate from database "test":
  18722  = testdate

There should be a decent amount of error handling in the app,  a lot of it
 dealt with via the postgres function calls.

  $ ./pg_oid2name -d nothere -t testdate 
  Oid of table testdate from database "nothere":
  Connection to database 'nothere' failed.
  FATAL 1:  Database "nothere" does not exist in the system catalog.

  $ ./pg_oid2name -d test -t nothere     
  Oid of table nothere from database "test":
  No tables with that name found

Mail me with any problems or additions you would like to see.  Clearing 
 house for the code will be at:

b. palmer,

Something went wrong with that request. Please try again.