Обсуждение: BUG #2927: Trigger execution hides foreign key error

Поиск
Список
Период
Сортировка

BUG #2927: Trigger execution hides foreign key error

От
"Jaume Catarineu"
Дата:
The following bug has been logged online:

Bug reference:      2927
Logged by:          Jaume Catarineu
Email address:      jaume@nobainfo.net
PostgreSQL version: 8.2.1
Operating system:   Linux srvca01 2.6.11.4-20a-smp #1 SMP Wed Mar 23
21:52:37 UTC 2005 i686 i686 i386 GNU/Linux
Description:        Trigger execution hides foreign key error
Details:

When a table has a foreign key field if you insert values that violate that
check an error appears:

ERROR:  insert or update on table "m_tran" violates foreign key constraint
"m_tran_fk"

That's ok, but when a INSERT trigger is added to that table, the precedent
insert order productes the following output:

INSERT 0 0

And no error appears anywhere: neither in the log nor the psql console.
Shouldn't PostgreSQL inform someway why it's not going to insert that row?

It seems like the correct trigger execution was hidding the previous
incorrect foreign key check. Is that way?

Thanks,
Jaume,

Re: BUG #2927: Trigger execution hides foreign key error

От
Stefan Kaltenbrunner
Дата:
Jaume Catarineu wrote:
> The following bug has been logged online:
>
> Bug reference:      2927
> Logged by:          Jaume Catarineu
> Email address:      jaume@nobainfo.net
> PostgreSQL version: 8.2.1
> Operating system:   Linux srvca01 2.6.11.4-20a-smp #1 SMP Wed Mar 23
> 21:52:37 UTC 2005 i686 i686 i386 GNU/Linux
> Description:        Trigger execution hides foreign key error
> Details:
>
> When a table has a foreign key field if you insert values that violate that
> check an error appears:
>
> ERROR:  insert or update on table "m_tran" violates foreign key constraint
> "m_tran_fk"
>
> That's ok, but when a INSERT trigger is added to that table, the precedent
> insert order productes the following output:
>
> INSERT 0 0
>
> And no error appears anywhere: neither in the log nor the psql console.
> Shouldn't PostgreSQL inform someway why it's not going to insert that row?

well you have not show us the source of the trigger and tables involved
but most likely your (BEFORE?) trigger is actively suppressing the
insert of the row. And an insert that is not actually inserting any data
is rather unlikely to cause any fk-violations ...


Stefan