Skip site navigation (1) Skip section navigation (2)

Re: [HACKERS] [BUGS] BUG #2907: pg_get_serial_sequence quoting

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Adriaan van Os <adriaan(at)microbizz(dot)nl>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, PostgreSQL-patches <pgsql-patches(at)postgresql(dot)org>
Subject: Re: [HACKERS] [BUGS] BUG #2907: pg_get_serial_sequence quoting
Date: 2007-01-30 02:34:53
Message-ID: 200701300234.l0U2Yr423647@momjian.us (view raw or flat)
Thread:
Lists: pgsql-bugspgsql-hackerspgsql-patches
Adriaan van Os wrote:
> Tom Lane wrote:
> > Bruce Momjian <bruce(at)momjian(dot)us> writes:
> >>> I presume the reason for that is that the first paramater can be
> >>> qualified:
> >>> select pg_get_serial_sequence('"public"."FOO"', 'Ff1');
> > 
> >> Would someone explain why qualification makes us lowercase the first
> >> parameter by default?  I don't understand it well enough to document it.
> > 
> > The point is that we have to parse the first parameter, whereas the
> > second one can be taken literally.
> 
> It still looks inconsistent and ugly. I think the design mistake of pg_get_serial_sequence is that 
> it takes two parameters rather than one (a fully qualified doublequoted columnname path) or three 
> (optionally empty schema, tablename, columnname, all three literal).

I did my best to document the behavior of pg_get_serial_sequence(). 
There actually is a technical reason why we can't auto-quote the first
parameter.  Patch applied to HEAD and 8.2.X.

Example of identifiers with embedded periods:

	test=> CREATE TABLE "a.b" ("c.d" SERIAL);
	NOTICE:  CREATE TABLE will create implicit sequence "a.b_c.d_seq" for serial column "a.b.c.d"
	CREATE TABLE

	test=> SELECT pg_get_serial_sequence('a.b', 'c.d');
	ERROR:  schema "a" does not exist

	test=> SELECT pg_get_serial_sequence('"a.b"', 'c.d');
	 pg_get_serial_sequence
	------------------------
	 PUBLIC."a.b_c.d_seq"
	(1 row)
	
	test=> SELECT pg_get_serial_sequence('"a.b"', '"c.d"');
	ERROR:  column ""c.""d of relation "a.b" does not exist


-- 
  Bruce Momjian   bruce(at)momjian(dot)us
  EnterpriseDB    http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

Attachment: /rtmp/diff
Description: text/x-diff (2.7 KB)

In response to

Responses

pgsql-hackers by date

Next:From: Tom LaneDate: 2007-01-30 02:56:16
Subject: Re: [BUGS] Missing error message on missing ssl-key-files
Previous:From: Jim NasbyDate: 2007-01-30 02:31:13
Subject: Re: Proposal: Change of pg_trigger.tg_enabled and adding

pgsql-bugs by date

Next:From: Tom LaneDate: 2007-01-30 02:56:16
Subject: Re: [BUGS] Missing error message on missing ssl-key-files
Previous:From: Magnus HaganderDate: 2007-01-29 17:46:35
Subject: Re: [BUGS] Missing error message on missing ssl-key-files

pgsql-patches by date

Next:From: Pavan DeolaseeDate: 2007-01-30 09:52:32
Subject: Lock compatibility matrix
Previous:From: Bruce MomjianDate: 2007-01-29 21:02:07
Subject: Re: [ADMIN] server process (PID xxx) was

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group