On Sat, 30 Aug 2003, Tom Lane wrote: > > I don't understand why the serial columns sequence should be visible as > > other sequences. > > Backwards compatibility, if nothing else. Are you prepared to break > every existing dump file that has > CREATE TABLE ser (f1 serial); > SELECT pg_catalog.setval('ser_f1_seq', 1, false);
I think breaking backward compability not always bad. If a) it the change is sound and good for the long term b) there is a solution that can be included for a number of revisions and where you preferably can turn on/off the feature with a variable. The question is if the change is important enough to warrent such a breakage. Logically I think it's preferable. > > create table foo (x serial); > > select nextval('foo.x'); > > This conflicts with the existing provisions for accessing sequences > using ordinary schema-qualified names ('schema.sequence'). That can of course be fixed by using some other selector then . (dot) like nextval('foo#x') or one can keep the dot and resolve it any way. But I'm not trying to come up with the best syntax here. I was more interested in the namespace change, to keep serial sequence names out of the "global" namespace. The exact syntax is the last problem. The backward compability is a much bigger issue (with 7.3 since older dumps has no problem). > The work I would actually like to see getting done in this area is > the existing TODO item about using Oracle-compatible syntax for nextval > et al, namely that you can write > sequence.nextval > or > schema.sequence.nextval > rather than nextval('sequence') or nextval('schema.sequence'). It's a separate issue that I also would welcome. -- /Dennis ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])