pl/tcl again.

From: ohp(at)pyrenet(dot)fr
To: pgsql-hackers list <pgsql-hackers(at)postgresql(dot)org>
Subject: pl/tcl again.
Date: 2006-06-19 14:50:19
Message-ID: Pine.UW2.4.53.0606191639240.13327@sun.pyrenet
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi all,

I'm still fighting with pltcl test that doesn't return the error message
when "elog ERROR "message" is called.

I've played witrh pltcl.c pltcl_error and removed the calls to PG_TRY,
PG_CATCH and PG_ENDTRY to proove that elog it self had a problem...

How can I check what happens in elog?

Each time elog is called with a level of ERROR,FATAL, PG_CATCH runs.

Also here are the server logs for pltcl checks.

It's amazing that the actual error message is in context...

LOG: database system was shut down at 2006-06-19 16:48:47 MET DST
LOG: checkpoint record is at 0/22C6CE0
LOG: redo record is at 0/22C6CE0; undo record is at 0/0; shutdown TRUE
LOG: next transaction ID: 9130; next OID: 38895
LOG: next MultiXactId: 1; next MultiXactOffset: 0
LOG: database system is ready
LOG: transaction ID wrap limit is 1073745208, limited by database "regression"
LOG: transaction ID wrap limit is 1073745208, limited by database "regression"
LOG: transaction ID wrap limit is 1073745208, limited by database "regression"
ERROR: role "regressgroup1" does not exist
ERROR:
CONTEXT: duplicate key '1', 'KEY1-3' for T_pkey2
while executing
"elog ERROR "duplicate key '$NEW(key1)', '$NEW(key2)' for T_pkey2""
invoked from within
"if {$n > 0} {
elog ERROR \
"duplicate key '$NEW(key1)', '$NEW(key2)' for T_pkey2"
}"
(procedure "__PLTcl_proc_38909_trigger_38900" line 32)
invoked from within
"__PLTcl_proc_38909_trigger_38900 pkey2_before 38900 {{} key1 key2 txt} BEFORE ROW INSERT {key1 1 key2 {KEY1-3 } txt {should fail ..."
ERROR:
CONTEXT: key for t_dta1 not in t_pkey1
while executing
"elog ERROR "key for $GD($planrel) not in $keyrel""
(procedure "__PLTcl_proc_38913_trigger_38902" line 92)
invoked from within
"__PLTcl_proc_38913_trigger_38902 dta1_before 38902 {{} tkey ref1 ref2} BEFORE ROW INSERT {tkey {trec 4 } ref1 1 ref2 {key1-4 }} {} ref..."
ERROR:
CONTEXT: key for t_dta2 not in t_pkey2
while executing
"elog ERROR "key for $GD($planrel) not in $keyrel""
(procedure "__PLTcl_proc_38913_trigger_38904" line 92)
invoked from within
"__PLTcl_proc_38913_trigger_38904 dta2_before 38904 {{} tkey ref1 ref2} BEFORE ROW INSERT {tkey {trec 4 } ref1 1 ref2 {KEY1-4 }} {} ref..."
ERROR:
CONTEXT: key '1', 'key1-1 ' referenced by T_dta1
while executing
"elog ERROR "key '$OLD(key1)', '$OLD(key2)' referenced by T_dta1""
invoked from within
"if {$check_old_ref} {
#
# Check for references to OLD
#
set n [spi_execp -count 1 $GD(plan_dta1) [list $OLD(key1) $OLD(key2)]]
if {$n > 0}..."
(procedure "__PLTcl_proc_38907_trigger_38898" line 79)
invoked from within
"__PLTcl_proc_38907_trigger_38898 pkey1_before 38898 {{} key1 key2 txt} BEFORE ROW UPDATE {key1 1 key2 {key1-9 } txt {test key ..."
ERROR:
CONTEXT: key '1', 'key1-2 ' referenced by T_dta1
while executing
"elog ERROR "key '$OLD(key1)', '$OLD(key2)' referenced by T_dta1""
invoked from within
"if {$check_old_ref} {
#
# Check for references to OLD
#
set n [spi_execp -count 1 $GD(plan_dta1) [list $OLD(key1) $OLD(key2)]]
if {$n > 0}..."
(procedure "__PLTcl_proc_38907_trigger_38898" line 79)
invoked from within
"__PLTcl_proc_38907_trigger_38898 pkey1_before 38898 {{} key1 key2 txt} BEFORE ROW DELETE {} {key1 1 key2 {key1-2 } txt {test key ..."
NOTICE: updated 1 entries in T_dta2 for new key in T_pkey2
NOTICE: deleted 1 entries from T_dta2
--
Olivier PRENANT Tel: +33-5-61-50-97-00 (Work)
15, Chemin des Monges +33-5-61-50-97-01 (Fax)
31190 AUTERIVE +33-6-07-63-80-64 (GSM)
FRANCE Email: ohp(at)pyrenet(dot)fr
------------------------------------------------------------------------------
Make your life a dream, make your dream a reality. (St Exupery)

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2006-06-19 15:17:48 Getting rid of extra gettimeofday() calls
Previous Message Giampaolo Tomassoni 2006-06-19 14:46:51 R: R: R: Per-server univocal identifier