The following bug has been logged online:
Bug reference: 1356
Logged by: Kamp Kaibo Huang
Email address: Kamp_kbh@hotmail.com
PostgreSQL version: 8.0
Operating system: Microsoft Windows 2003
Description: pg_get_serial_sequence can not find a table that
existing.
Details:
I created one table via sql command like this:
CREATE TABLE tTestTable {
FId bigint NOT NULL DEFAULT(-1),
CONSTRAINT tTestTable_pkey PRIMARY KEY (FId)
);
And then I created another table via pgAdminIII 1.2 that installed with
PostgreSQL 8.0 rc1. sql like:
CREATE TABLE tTestTableAnother {
FId bigint NOT NULL DEFAULT
nextval('public."tTestTableAnother_FId_seq"'::text),
CONSTRAINT tTestTableAnother_pkey PRIMARY KEY (FId)
);
I type the following sqls:
>>select pg_get_serial_sequence('tTestTable','FId')
result is null, as I expected.
>>select pg_get_serial_sequence('ttesttable','fid')
result is null, as I expected.
>>select pg_get_serial_sequence('tTestTableAnother','FId')
ERROR: relation "ttesttableanother" does not exist
>>select pg_get_serial_sequence('ttesttableanother','fid')
ERROR: relation "ttesttableanother" does not exist
Open the pg_class, found 'tTestTableAnother' existing.
Caution, not 'ttesttableanother'.
And more, no table like 'tTestTable' existing while 'ttesttable'
appearance.
I guess PostgreSQL 8.0 does not offer a unique interface for creating a
table. Or pgAdminIII 1.2.0 calling the old function to create a table? But
no matter how, PostgreSQL should offer a unique way. over.