Thread: RFC: create/alter user extension
Is everyone okay with the following syntax: CREATE USER username [ WITH ID digits ] ^^^^^^^^^^^^^^^^^^ [ WITH PASSWORD password ] [ CREATEDB | NOCREATEDB ] [ CREATEUSER | NOCREATEUSER ] [ IN GROUP groupname [, ...] ] [ VALID UNTIL 'abstime' ] ALTER USER username [ WITH ID digits ] ^^^^^^^^^^^^^^^^^^ [ WITH PASSWORD password ] [ CREATEDB | NOCREATEDB ] [ CREATEUSER | NOCREATEUSER ] [ IN GROUP groupname [, ...] ] [ VALID UNTIL 'abstime' ] The catch is that ID would have to be a new keyword and we'd have to live with that for a long time. Other choices include: * UID * SYSID * USESYSID etc. What do the standards and pseudo-standards say? I think I'll take a stab at this and settle the createuser script issue the proper way. -Peter -- Peter Eisentraut Sernanders vaeg 10:115 peter_e@gmx.net 75262 Uppsala http://yi.org/peter-e/ Sweden
Peter Eisentraut <peter_e@gmx.net> writes: > Is everyone okay with the following syntax: > CREATE USER username > [ WITH ID digits ] > ^^^^^^^^^^^^^^^^^^ > The catch is that ID would have to be a new keyword and we'd have to live > with that for a long time. Other choices include: > * UID > * SYSID > * USESYSID > etc. I'd be inclined to go with UID or SYSID. In any case, since the new keyword is used in such a limited context, we could almost certainly still allow it as a ColId and thus not create any real compatibility problem. regards, tom lane
On Fri, 12 Nov 1999, Tom Lane wrote: > Peter Eisentraut <peter_e@gmx.net> writes: > > Is everyone okay with the following syntax: > > CREATE USER username > > [ WITH ID digits ] > > ^^^^^^^^^^^^^^^^^^ > > > The catch is that ID would have to be a new keyword and we'd have to live > > with that for a long time. Other choices include: > > * UID > > * SYSID > > * USESYSID > > etc. > > I'd be inclined to go with UID or SYSID. In any case, since the new > keyword is used in such a limited context, we could almost certainly > still allow it as a ColId and thus not create any real compatibility > problem. I'm not sure about this distinction. Where would that be reflected in the (parser) code? -Peter -- Peter Eisentraut Sernanders vaeg 10:115 peter_e@gmx.net 75262 Uppsala http://yi.org/peter-e/ Sweden
Peter Eisentraut <e99re41@DoCS.UU.SE> writes: >> I'd be inclined to go with UID or SYSID. In any case, since the new >> keyword is used in such a limited context, we could almost certainly >> still allow it as a ColId and thus not create any real compatibility >> problem. > I'm not sure about this distinction. Where would that be reflected in the > (parser) code? You should try to add this (or any other) new keyword to the list in the ColId: production in gram.y. If that doesn't provoke any complaints from yacc (shift/reduce conflicts etc), then you're home free: the parser won't get confused if the keyword is used as a column name. If it does cause a shift/reduce conflict, which is fairly likely for anything that can appear inside an expression, you might still be able to add the new keyword to the ColLabel: list. That allows it to be used as an identifier in a more restricted set of contexts. Only if neither of these will work does the keyword need to be a truly "reserved" word. regards, tom lane