mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-15 08:20:16 +08:00
66cd6a0fb2
malloc()'s. This isn't too serious (because oid2name is a short-lived utility, so the memory will soon be returned to the OS on process termination), but I still think it's poor style. This patch changes oid2name so that it allocates memory on the stack where possible and free()s the remaining heap-allocated memory. The patch also fixes a typo a comment and adds 'const' qualifiers to a few 'char *' function parameters. Neil Conway |
||
---|---|---|
.. | ||
Makefile | ||
oid2name.c | ||
README.oid2name |
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: pg_oid2name 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: http://www.crimelabs.net b. palmer, bpalmer@crimelabs.net