Re: [PATCHES] ALTER SEQUENCE
От | Rod Taylor |
---|---|
Тема | Re: [PATCHES] ALTER SEQUENCE |
Дата | |
Msg-id | 1046837902.17609.63.camel@jester обсуждение исходный текст |
Ответ на | Re: [PATCHES] ALTER SEQUENCE (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
On Tue, 2003-03-04 at 19:14, Tom Lane wrote: > Rod Taylor <rbt@rbt.ca> writes: > > Might get somewhere by making a special domain thats marked as being > > serial, and using that in the column. > > I recall some discussion last year about making serial et al. into > domains over int4 and int8, rather than their current utter-hack > implementation. Can't recall if we found a problem with the idea, > or no one got around to doing it, or it just didn't seem to clean > things up enough to be worth the trouble. (AFAICS you'd still need > special-case code to set up the appropriate default expression for > each column; the domain constraint mechanism wouldn't handle that > for you.) Slightly different thought. I had actually submitted a patch for the above, but would have to dig through the archives to determine what the problem was. CREATE TABLE tab (column SERIAL); Generates: table(column serial_table_column) domain serial_table_column as int4 default nextval("serial_table_column") Sequence serial_table_column. Now, rather than having knowedge of the contents of nextval, we simply trace the dependencies of the column through the domain to the sequence -- since these will be known to exist. Thus the below command could function fairly easily on serials: ALTER SEQUENCE ON table(column) The alternative is to simply implement the proposed 200N sequence generator spec, which includes 'NEXT VALUE FOR <sequence>'. With that in place, our default would then depend on the sequence, and the ALTER SEQUENCE ON table(column) would function. -- Rod Taylor <rbt@rbt.ca> PGP Key: http://www.rbt.ca/rbtpub.asc
В списке pgsql-hackers по дате отправления: