Re: ANSI Compliant Inserts
От | Bruce Momjian |
---|---|
Тема | Re: ANSI Compliant Inserts |
Дата | |
Msg-id | 200204150321.g3F3Ltv21546@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: ANSI Compliant Inserts (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: ANSI Compliant Inserts
|
Список | pgsql-patches |
Tom Lane wrote: > Rod Taylor <rbt@zort.ca> writes: > > /* > > ! * XXX It is possible that the targetlist has fewer entries than were > > ! * in the columns list. We do not consider this an error. Perhaps we > > ! * should, if the columns list was explicitly given? > > */ > > =20=20 > > /* done building the range table and jointree */ > > qry->rtable =3D pstate->p_rtable; > > --- 547,558 ---- > > } > > =20=20 > > /* > > ! * Ensure that the targetlist has the same number of entries > > ! * that were present in the columns list. Don't do the check > > ! * for select statements. > > */ > > + if (stmt->cols !=3D NIL && (icolumns !=3D NIL || attnos !=3D NIL)) > > + elog(ERROR, "INSERT has more target columns than expressions"); > > > What's the rationale for changing this exactly? > > The code might or might not need changing (I believe the XXX comment > questioning it is mine, in fact) but changing behavior without any > pghackers discussion is not the way to approach this. > > In general I'm suspicious of rejecting cases we used to accept for > no good reason other than that it's not in the spec. There is a LOT > of Postgres behavior that's not in the spec. TODO has: o Disallow missing columns in INSERT ... VALUES, per ANSI I think it should be done because it is very easy to miss columns on INSERT without knowing it. I think our current behavior is too error-prone. Now, if we want to just throw a NOTICE is such cases, that would work too. Clearly he didn't need discussion because it was already on the TODO list. I guess the question is whether it should have had a question mark. I certainly didn't think so. Also, I thought we were going to fix COPY to reject missing columns too. I just can't see a valid reason for allowing missing columns in either case, except to hide errors. -- 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, Pennsylvania 19026
В списке pgsql-patches по дате отправления: