Thread: pl/tcl regression failed

pl/tcl regression failed

From
ohp@pyrenet.fr
Date:
Hi,

I have finished buildfarm setup, just waiting for my credentials.
However, I've install tcl 8.5a and regression tests fail like this:

ISTM it's just cosmetic, just want to share...

gmake[1]: Leaving directory `/home4/ohp/pgfarmbuild/HEAD/pgsql.24436/src/pl/plperl'
gmake[1]: Entering directory `/home4/ohp/pgfarmbuild/HEAD/pgsql.24436/src/pl/tcl'
gmake -C ../../../src/test/regress pg_regress
gmake[2]: Entering directory `/home4/ohp/pgfarmbuild/HEAD/pgsql.24436/src/test/regress'
gmake[2]: `pg_regress' is up to date.
gmake[2]: Leaving directory `/home4/ohp/pgfarmbuild/HEAD/pgsql.24436/src/test/regress'
/bin/sh ../../../src/test/regress/pg_regress --dbname=pl_regression --load-language=pltcl pltcl_setup pltcl_queries
(using postmaster on Unix socket, default port)
============== dropping database "pl_regression"      ==============
DROP DATABASE
============== creating database "pl_regression"      ==============
CREATE DATABASE
============== dropping regression test user accounts ==============
============== installing pltcl                       ==============
============== running regression test queries        ==============
test pltcl_setup          ... ok
test pltcl_queries        ... FAILED

======================1 of 2 tests failed.
======================

The differences that caused some tests to fail can be viewed in the
file `./regression.diffs'.  A copy of the test summary that you see
above is saved in the file `./regression.out'.

gmake[1]: *** [installcheck] Error 1
gmake[1]: Leaving directory `/home4/ohp/pgfarmbuild/HEAD/pgsql.24436/src/pl/tcl'
gmake: *** [installcheck] Error 2


================= pgsql.24436/src/pl/tcl/regression.diffs ===================
*** ./expected/pltcl_queries.out    Sun Jun 11 19:58:48 2006
--- ./results/pltcl_queries.out    Sun Jun 11 20:05:34 2006
***************
*** 38,56 **** insert into T_pkey1 values (1, 'KEY1-3', 'should work'); -- Due to the upper case translation in trigger
thismust fail insert into T_pkey2 values (1, 'KEY1-3', 'should fail');
 
! ERROR:  duplicate key '1', 'KEY1-3' for T_pkey2 insert into T_dta1 values ('trec 1', 1, 'key1-1'); insert into T_dta1
values('trec 2', 1, 'key1-2'); insert into T_dta1 values ('trec 3', 1, 'key1-3'); -- Must fail due to unknown key in
T_pkey1insert into T_dta1 values ('trec 4', 1, 'key1-4');
 
! ERROR:  key for t_dta1 not in t_pkey1 insert into T_dta2 values ('trec 1', 1, 'KEY1-1'); insert into T_dta2 values
('trec2', 1, 'KEY1-2'); insert into T_dta2 values ('trec 3', 1, 'KEY1-3'); -- Must fail due to unknown key in T_pkey2
insertinto T_dta2 values ('trec 4', 1, 'KEY1-4');
 
! ERROR:  key for t_dta2 not in t_pkey2 select * from T_dta1;     tkey    | ref1 |         ref2
------------+------+----------------------
--- 38,56 ---- insert into T_pkey1 values (1, 'KEY1-3', 'should work'); -- Due to the upper case translation in trigger
thismust fail insert into T_pkey2 values (1, 'KEY1-3', 'should fail');
 
! ERROR: insert into T_dta1 values ('trec 1', 1, 'key1-1'); insert into T_dta1 values ('trec 2', 1, 'key1-2'); insert
intoT_dta1 values ('trec 3', 1, 'key1-3'); -- Must fail due to unknown key in T_pkey1 insert into T_dta1 values ('trec
4',1, 'key1-4');
 
! ERROR: insert into T_dta2 values ('trec 1', 1, 'KEY1-1'); insert into T_dta2 values ('trec 2', 1, 'KEY1-2'); insert
intoT_dta2 values ('trec 3', 1, 'KEY1-3'); -- Must fail due to unknown key in T_pkey2 insert into T_dta2 values ('trec
4',1, 'KEY1-4');
 
! ERROR: select * from T_dta1;     tkey    | ref1 |         ref2 ------------+------+----------------------
***************
*** 69,78 ****
 update T_pkey1 set key2 = 'key2-9' where key1 = 2 and key2 = 'key2-1'; update T_pkey1 set key2 = 'key1-9' where key1 =
1and key2 = 'key1-1';
 
! ERROR:  key '1', 'key1-1              ' referenced by T_dta1 delete from T_pkey1 where key1 = 2 and key2 = 'key2-2';
deletefrom T_pkey1 where key1 = 1 and key2 = 'key1-2';
 
! ERROR:  key '1', 'key1-2              ' referenced by T_dta1 update T_pkey2 set key2 = 'KEY2-9' where key1 = 2 and
key2= 'KEY2-1'; update T_pkey2 set key2 = 'KEY1-9' where key1 = 1 and key2 = 'KEY1-1'; NOTICE:  updated 1 entries in
T_dta2for new key in T_pkey2
 
--- 69,78 ----
 update T_pkey1 set key2 = 'key2-9' where key1 = 2 and key2 = 'key2-1'; update T_pkey1 set key2 = 'key1-9' where key1 =
1and key2 = 'key1-1';
 
! ERROR: delete from T_pkey1 where key1 = 2 and key2 = 'key2-2'; delete from T_pkey1 where key1 = 1 and key2 =
'key1-2';
! ERROR: update T_pkey2 set key2 = 'KEY2-9' where key1 = 2 and key2 = 'KEY2-1'; update T_pkey2 set key2 = 'KEY1-9'
wherekey1 = 1 and key2 = 'KEY1-1'; NOTICE:  updated 1 entries in T_dta2 for new key in T_pkey2
 

======================================================================



================= /home4/ohp/pgfarmbuild/HEAD/inst/logfile ===================
LOG:  database system was shut down at 2006-06-11 20:05:22 MET DST
LOG:  checkpoint record is at 0/1FCE6A0
LOG:  redo record is at 0/1FCE6A0; undo record is at 0/0; shutdown TRUE
LOG:  next transaction ID: 7960; next OID: 38502
LOG:  next MultiXactId: 1; next MultiXactOffset: 0
LOG:  database system is ready
LOG:  transaction ID wrap limit is 1073745361, limited by database "regression"
ERROR:  database "pl_regression" does not exist
LOG:  transaction ID wrap limit is 1073745361, limited by database "regression"
ERROR:  role "regressgroup1" does not exist
ERROR:  set-valued function called in context that cannot accept a set
ERROR:  set-valued function called in context that cannot accept a set
ERROR:  set-valued function called in context that cannot accept a set
ERROR:  set-valued function called in context that cannot accept a set
ERROR:  setof-composite-returning Perl function must call return_next with reference to hash
ERROR:  set-valued function called in context that cannot accept a set
ERROR:  a column definition list is required for functions returning "record"
ERROR:  function returning record called in context that cannot accept type record
ERROR:  a column definition list is required for functions returning "record"
ERROR:  set-valued function called in context that cannot accept a set
ERROR:  a column definition list is required for functions returning "record"
ERROR:  set-valued function called in context that cannot accept a set
ERROR:  a column definition list is required for functions returning "record"
ERROR:  setof-composite-returning Perl function must call return_next with reference to hash
ERROR:  set-valued function called in context that cannot accept a set
ERROR:  a column definition list is required for functions returning "record"
ERROR:  set-valued function called in context that cannot accept a set
ERROR:  set-valued function called in context that cannot accept a set
ERROR:  Perl hash contains nonexistent column "z"
ERROR:  composite-returning Perl function must return reference to hash
ERROR:  composite-returning Perl function must return reference to hash
ERROR:  set-returning Perl function must return reference to array or use return_next
ERROR:  set-returning Perl function must return reference to array or use return_next
ERROR:  setof-composite-returning Perl function must call return_next with reference to hash
ERROR:  Perl hash contains nonexistent column "z"
NOTICE:  $_TD->{argc} = '2'
NOTICE:  $_TD->{args} = ['23', 'skidoo']
NOTICE:  $_TD->{event} = 'INSERT'
NOTICE:  $_TD->{level} = 'ROW'
NOTICE:  $_TD->{name} = 'show_trigger_data_trig'
NOTICE:  $_TD->{new} = {'i' => '1', 'v' => 'insert'}
NOTICE:  $_TD->{relid} = 'bogus:12345'
NOTICE:  $_TD->{relname} = 'trigger_test'
NOTICE:  $_TD->{table_name} = 'trigger_test'
NOTICE:  $_TD->{table_schema} = 'public'
NOTICE:  $_TD->{when} = 'BEFORE'
NOTICE:  $_TD->{argc} = '2'
NOTICE:  $_TD->{args} = ['23', 'skidoo']
NOTICE:  $_TD->{event} = 'UPDATE'
NOTICE:  $_TD->{level} = 'ROW'
NOTICE:  $_TD->{name} = 'show_trigger_data_trig'
NOTICE:  $_TD->{new} = {'i' => '1', 'v' => 'update'}
NOTICE:  $_TD->{old} = {'i' => '1', 'v' => 'insert'}
NOTICE:  $_TD->{relid} = 'bogus:12345'
NOTICE:  $_TD->{relname} = 'trigger_test'
NOTICE:  $_TD->{table_name} = 'trigger_test'
NOTICE:  $_TD->{table_schema} = 'public'
NOTICE:  $_TD->{when} = 'BEFORE'
NOTICE:  $_TD->{argc} = '2'
NOTICE:  $_TD->{args} = ['23', 'skidoo']
NOTICE:  $_TD->{event} = 'DELETE'
NOTICE:  $_TD->{level} = 'ROW'
NOTICE:  $_TD->{name} = 'show_trigger_data_trig'
NOTICE:  $_TD->{old} = {'i' => '1', 'v' => 'update'}
NOTICE:  $_TD->{relid} = 'bogus:12345'
NOTICE:  $_TD->{relname} = 'trigger_test'
NOTICE:  $_TD->{table_name} = 'trigger_test'
NOTICE:  $_TD->{table_schema} = 'public'
NOTICE:  $_TD->{when} = 'BEFORE'
NOTICE:  explicit elog
NOTICE:  implicit elog via warn at line 4.

ERROR:  creation of Perl function failed: Global symbol "$global" requires explicit package name at line 3.Global
symbol"$other_global" requires explicit package name at line 4.
 
ERROR:  function uses_global() does not exist at character 8
HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
LOG:  transaction ID wrap limit is 1073745361, limited by database "regression"
LOG:  transaction ID wrap limit is 1073745361, 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_38567_trigger_38551" line 32)    invoked from
within"__PLTcl_proc_38567_trigger_38551pkey2_before 38551 t_pkey2 public {{} key1 key2 txt} BEFORE ROW INSERT {key1 1
key2{KEY1-3              } txt {shoul..."
 
ERROR:
CONTEXT:  key for t_dta1 not in t_pkey1    while executing"elog ERROR "key for $GD($planrel) not in $keyrel""
(procedure"__PLTcl_proc_38571_trigger_38553" line 92)    invoked from within"__PLTcl_proc_38571_trigger_38553
dta1_before38553 t_dta1 public {{} tkey ref1 ref2} BEFORE ROW INSERT {tkey {trec 4    } ref1 1 ref2 {key1-4
..."
ERROR:
CONTEXT:  key for t_dta2 not in t_pkey2    while executing"elog ERROR "key for $GD($planrel) not in $keyrel""
(procedure"__PLTcl_proc_38571_trigger_38555" line 92)    invoked from within"__PLTcl_proc_38571_trigger_38555
dta2_before38555 t_dta2 public {{} tkey ref1 ref2} BEFORE ROW INSERT {tkey {trec 4    } ref1 1 ref2 {KEY1-4
..."
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_38565_trigger_38549"line 79)    invoked from within"__PLTcl_proc_38565_trigger_38549 pkey1_before 38549
t_pkey1public {{} key1 key2 txt} BEFORE ROW UPDATE {key1 1 key2 {key1-9              } txt {test ..."
 
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_38565_trigger_38549"line 79)    invoked from within"__PLTcl_proc_38565_trigger_38549 pkey1_before 38549
t_pkey1public {{} key1 key2 txt} BEFORE ROW DELETE {} {key1 1 key2 {key1-2              } txt {te..."
 
NOTICE:  updated 1 entries in T_dta2 for new key in T_pkey2
NOTICE:  deleted 1 entries from T_dta2
NOTICE:  NEW: {i: 1, v: insert}
NOTICE:  OLD: {}
NOTICE:  TG_level: ROW
NOTICE:  TG_name: show_trigger_data_trig
NOTICE:  TG_op: INSERT
NOTICE:  TG_relatts: {{} i v}
NOTICE:  TG_relid: bogus:12345
NOTICE:  TG_table_name: trigger_test
NOTICE:  TG_table_schema: public
NOTICE:  TG_when: BEFORE
NOTICE:  args: {23 skidoo}
NOTICE:  NEW: {i: 1, v: update}
NOTICE:  OLD: {i: 1, v: insert}
NOTICE:  TG_level: ROW
NOTICE:  TG_name: show_trigger_data_trig
NOTICE:  TG_op: UPDATE
NOTICE:  TG_relatts: {{} i v}
NOTICE:  TG_relid: bogus:12345
NOTICE:  TG_table_name: trigger_test
NOTICE:  TG_table_schema: public
NOTICE:  TG_when: BEFORE
NOTICE:  args: {23 skidoo}
NOTICE:  NEW: {}
NOTICE:  OLD: {i: 1, v: update}
NOTICE:  TG_level: ROW
NOTICE:  TG_name: show_trigger_data_trig
NOTICE:  TG_op: DELETE
NOTICE:  TG_relatts: {{} i v}
NOTICE:  TG_relid: bogus:12345
NOTICE:  TG_table_name: trigger_test
NOTICE:  TG_table_schema: public
NOTICE:  TG_when: BEFORE
NOTICE:  args: {23 skidoo}

-- 
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@pyrenet.fr
------------------------------------------------------------------------------
Make your life a dream, make your dream a reality. (St Exupery)


Re: pl/tcl regression failed

From
Tom Lane
Date:
ohp@pyrenet.fr writes:
> I have finished buildfarm setup, just waiting for my credentials.
> However, I've install tcl 8.5a and regression tests fail like this:
> ISTM it's just cosmetic, just want to share...

Not showing the content of error messages is hardly "cosmetic"; it's a
serious loss of functionality.  Want to investigate why that's happening?
        regards, tom lane


Re: pl/tcl regression failed

From
ohp@pyrenet.fr
Date:
On Sun, 11 Jun 2006, Tom Lane wrote:

> Date: Sun, 11 Jun 2006 15:03:39 -0400
> From: Tom Lane <tgl@sss.pgh.pa.us>
> To: ohp@pyrenet.fr
> Cc: pgsql-hackers list <pgsql-hackers@postgresql.org>
> Subject: Re: [HACKERS] pl/tcl regression failed
>
> ohp@pyrenet.fr writes:
> > I have finished buildfarm setup, just waiting for my credentials.
> > However, I've install tcl 8.5a and regression tests fail like this:
> > ISTM it's just cosmetic, just want to share...
>
> Not showing the content of error messages is hardly "cosmetic"; it's a
> serious loss of functionality.  Want to investigate why that's happening?
>
>             regards, tom lane
>
I'm not a tcl expert, but I'll have a look tomorrow..
-- 
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@pyrenet.fr
------------------------------------------------------------------------------
Make your life a dream, make your dream a reality. (St Exupery)


Re: pl/tcl regression failed

From
ohp@pyrenet.fr
Date:
Hi Tom,

I had a look, and don't really know what to do!
I played with  pltcl.c line 1318, adding a like like
elog(LEVEL,UTF_U2E(argv[2]));
where LEVEL is WARNING,INFO,ERROR,DEBUG2,LOG,NOTICE

so far, WARNING,INFO,NOTICE work fine, not the others...

I just don't understand, and don't really know where to go from here.

If needed, I can open an account to someone who wants to try.

Regards,
On Sun, 11 Jun 2006, Tom Lane wrote:

> Date: Sun, 11 Jun 2006 15:03:39 -0400
> From: Tom Lane <tgl@sss.pgh.pa.us>
> To: ohp@pyrenet.fr
> Cc: pgsql-hackers list <pgsql-hackers@postgresql.org>
> Subject: Re: [HACKERS] pl/tcl regression failed
>
> ohp@pyrenet.fr writes:
> > I have finished buildfarm setup, just waiting for my credentials.
> > However, I've install tcl 8.5a and regression tests fail like this:
> > ISTM it's just cosmetic, just want to share...
>
> Not showing the content of error messages is hardly "cosmetic"; it's a
> serious loss of functionality.  Want to investigate why that's happening?
>
>             regards, tom lane
>

-- 
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@pyrenet.fr
------------------------------------------------------------------------------
Make your life a dream, make your dream a reality. (St Exupery)