Re: [COMMITTERS] pgsql: Add STRICT to PL/pgSQL SELECT INTO, so exceptions are thrown if
От | Tom Lane |
---|---|
Тема | Re: [COMMITTERS] pgsql: Add STRICT to PL/pgSQL SELECT INTO, so exceptions are thrown if |
Дата | |
Msg-id | 164.1150486594@sss.pgh.pa.us обсуждение исходный текст |
Ответы |
Re: [COMMITTERS] pgsql: Add STRICT to PL/pgSQL SELECT INTO, so exceptions
|
Список | pgsql-hackers |
momjian@postgresql.org (Bruce Momjian) writes: > Add STRICT to PL/pgSQL SELECT INTO, so exceptions are thrown if more or > less than one row is returned by the SELECT, for Oracle PL/SQL > compatibility. I've got a couple of problems with the error codes used by this patch. In the first place, you can't arbitrarily assign names to error conditions that are different from the standard spelling (see errcodes.sgml for why not: the standard spellings are what are documented). In the second place, the spec clearly says that class 02 is warning conditions, not errors, so using ERRCODE_NO_DATA for an error is inappropriate. Where did you get those names from ... were they picked out of the air, or were they intended to be Oracle-compatible, or what? Surely we aren't trying to be Oracle-compatible at that level of detail (else we've doubtless got a huge number of other cases where we throw a different error than they do). Do we actually need different error codes for too few and too many rows? It looks to me like the only relevant standard error condition is CARDINALITY_VIOLATION, so either we throw CARDINALITY_VIOLATION for both cases or we invent nonstandard codes. regards, tom lane
В списке pgsql-hackers по дате отправления: