Обсуждение: AW: Shouldn't this be an error?
> A compromise position would be to allow dropping trailing columns only > when the column name list is omitted. > > Comments? Sounds reasonable to me. Andreas
Zeugswetter Andreas SB <ZeugswetterA@wien.spardat.at> writes:
>> A compromise position would be to allow dropping trailing columns only
>> when the column name list is omitted.
> Sounds reasonable to me.
IIRC, there's some interaction between this behavior and the way that
INSERT ... DEFAULT VALUES is implemented; I think DEFAULT VALUES is
parsed as an empty values list and then the trailing-column-omission
code is what actually makes the right things happen. So changing it
without breaking DEFAULT VALUES is not entirely trivial; it'll take
some changes in the raw-parsetree representation. There are other
missing SQL features hereabouts also, such as being able to write
a DEFAULTed column explicitly:INSERT ... VALUES('foo', DEFAULT, 42);
and being able to insert multiple explicit rows:INSERT ... VALUES('foo', DEFAULT, 42), VALUES('bar', 99, 44);
I think we should deal with all of these issues at once, which means
it's not something to try to fix for 7.1. Bruce, would you add a
TODO item?
* Bring INSERT ... VALUES up to full SQL92 spec.
regards, tom lane
> missing SQL features hereabouts also, such as being able to write
> a DEFAULTed column explicitly:
> INSERT ... VALUES('foo', DEFAULT, 42);
> and being able to insert multiple explicit rows:
> INSERT ... VALUES('foo', DEFAULT, 42), VALUES('bar', 99, 44);
> I think we should deal with all of these issues at once, which means
> it's not something to try to fix for 7.1. Bruce, would you add a
> TODO item?
>
> * Bring INSERT ... VALUES up to full SQL92 spec.
Added to TODO:
* Bring INSERT ... VALUES up to full SQL92 spec, disallow missing columns
-- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026
> a DEFAULTed column explicitly:
> INSERT ... VALUES('foo', DEFAULT, 42);
> and being able to insert multiple explicit rows:
> INSERT ... VALUES('foo', DEFAULT, 42), VALUES('bar', 99, 44);
> I think we should deal with all of these issues at once, which means
> it's not something to try to fix for 7.1. Bruce, would you add a
> TODO item?
>
> * Bring INSERT ... VALUES up to full SQL92 spec.
Oops, I have now added:
* Bring INSERT ... VALUES up to full SQL92 spec, disallow missing columns, allow DEFAULT
-- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026