pg_get_serial_sequence() does dequoting/downcasing on its relation-name argument, but not on its column-name argument.
regression=# create table "FOO" ("Ff1" serial); NOTICE: CREATE TABLE will create implicit sequence "FOO_Ff1_seq" for serial column "FOO.Ff1" CREATE TABLE regression=# select pg_get_serial_sequence('FOO','Ff1'); ERROR: column "Ff1" of relation "foo" does not exist regression=# select pg_get_serial_sequence('"FOO"','Ff1'); pg_get_serial_sequence ------------------------ public."FOO_Ff1_seq" (1 row) regression=# select pg_get_serial_sequence('"FOO"','"Ff1"'); ERROR: column ""Ff1"" of relation "FOO" does not exist regression=# This seems pretty inconsistent. I was expecting to find that it broke pg_dump, as well, but it looks like pg_dump is expecting exactly this behavior. Should we change it? We need the quote-aware behavior for the relation name (because that could be schema-qualified) so the choices seem to be status quo or add dequoting/downcasing to the column name argument. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match