Improve coverage of pltcl regression tests.
Test composite-type arguments and the argisnull and spi_lastoid Tcl commmands. This stuff was not covered before, but needs to be exercised since the upcoming Tcl object-conversion patch changes these code paths (and broke at least one of them).
This commit is contained in:
parent
9def031bd2
commit
68c521eb92
@ -256,3 +256,50 @@ NOTICE: TG_table_name: trigger_test
|
|||||||
NOTICE: TG_table_schema: public
|
NOTICE: TG_table_schema: public
|
||||||
NOTICE: TG_when: BEFORE
|
NOTICE: TG_when: BEFORE
|
||||||
NOTICE: args: {23 skidoo}
|
NOTICE: args: {23 skidoo}
|
||||||
|
-- Test composite-type arguments
|
||||||
|
select tcl_composite_arg_ref1(row('tkey', 42, 'ref2'));
|
||||||
|
tcl_composite_arg_ref1
|
||||||
|
------------------------
|
||||||
|
42
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
select tcl_composite_arg_ref2(row('tkey', 42, 'ref2'));
|
||||||
|
tcl_composite_arg_ref2
|
||||||
|
------------------------
|
||||||
|
ref2
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
-- Test argisnull primitive
|
||||||
|
select tcl_argisnull('foo');
|
||||||
|
tcl_argisnull
|
||||||
|
---------------
|
||||||
|
f
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
select tcl_argisnull('');
|
||||||
|
tcl_argisnull
|
||||||
|
---------------
|
||||||
|
f
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
select tcl_argisnull(null);
|
||||||
|
tcl_argisnull
|
||||||
|
---------------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
-- Test spi_lastoid primitive
|
||||||
|
create temp table t1 (f1 int);
|
||||||
|
select tcl_lastoid('t1');
|
||||||
|
tcl_lastoid
|
||||||
|
-------------
|
||||||
|
0
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
create temp table t2 (f1 int) with oids;
|
||||||
|
select tcl_lastoid('t2') > 0;
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
@ -256,3 +256,50 @@ NOTICE: TG_table_name: trigger_test
|
|||||||
NOTICE: TG_table_schema: public
|
NOTICE: TG_table_schema: public
|
||||||
NOTICE: TG_when: BEFORE
|
NOTICE: TG_when: BEFORE
|
||||||
NOTICE: args: {23 skidoo}
|
NOTICE: args: {23 skidoo}
|
||||||
|
-- Test composite-type arguments
|
||||||
|
select tcl_composite_arg_ref1(row('tkey', 42, 'ref2'));
|
||||||
|
tcl_composite_arg_ref1
|
||||||
|
------------------------
|
||||||
|
42
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
select tcl_composite_arg_ref2(row('tkey', 42, 'ref2'));
|
||||||
|
tcl_composite_arg_ref2
|
||||||
|
------------------------
|
||||||
|
ref2
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
-- Test argisnull primitive
|
||||||
|
select tcl_argisnull('foo');
|
||||||
|
tcl_argisnull
|
||||||
|
---------------
|
||||||
|
f
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
select tcl_argisnull('');
|
||||||
|
tcl_argisnull
|
||||||
|
---------------
|
||||||
|
f
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
select tcl_argisnull(null);
|
||||||
|
tcl_argisnull
|
||||||
|
---------------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
-- Test spi_lastoid primitive
|
||||||
|
create temp table t1 (f1 int);
|
||||||
|
select tcl_lastoid('t1');
|
||||||
|
tcl_lastoid
|
||||||
|
-------------
|
||||||
|
0
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
create temp table t2 (f1 int) with oids;
|
||||||
|
select tcl_lastoid('t2') > 0;
|
||||||
|
?column?
|
||||||
|
----------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
@ -398,6 +398,19 @@ create trigger dta1_before before insert or update on T_dta1
|
|||||||
create trigger dta2_before before insert or update on T_dta2
|
create trigger dta2_before before insert or update on T_dta2
|
||||||
for each row execute procedure
|
for each row execute procedure
|
||||||
check_primkey('ref1', 'ref2', 'T_pkey2', 'key1', 'key2');
|
check_primkey('ref1', 'ref2', 'T_pkey2', 'key1', 'key2');
|
||||||
|
create function tcl_composite_arg_ref1(T_dta1) returns int as '
|
||||||
|
return $1(ref1)
|
||||||
|
' language pltcl;
|
||||||
|
create function tcl_composite_arg_ref2(T_dta1) returns text as '
|
||||||
|
return $1(ref2)
|
||||||
|
' language pltcl;
|
||||||
|
create function tcl_argisnull(text) returns bool as '
|
||||||
|
argisnull 1
|
||||||
|
' language pltcl;
|
||||||
|
create function tcl_lastoid(tabname text) returns int8 as '
|
||||||
|
spi_exec "insert into $1 default values"
|
||||||
|
spi_lastoid
|
||||||
|
' language pltcl;
|
||||||
create function tcl_int4add(int4,int4) returns int4 as '
|
create function tcl_int4add(int4,int4) returns int4 as '
|
||||||
return [expr $1 + $2]
|
return [expr $1 + $2]
|
||||||
' language pltcl;
|
' language pltcl;
|
||||||
|
@ -82,3 +82,18 @@ delete from trigger_test_view;
|
|||||||
|
|
||||||
update trigger_test set v = 'update' where i = 1;
|
update trigger_test set v = 'update' where i = 1;
|
||||||
delete from trigger_test;
|
delete from trigger_test;
|
||||||
|
|
||||||
|
-- Test composite-type arguments
|
||||||
|
select tcl_composite_arg_ref1(row('tkey', 42, 'ref2'));
|
||||||
|
select tcl_composite_arg_ref2(row('tkey', 42, 'ref2'));
|
||||||
|
|
||||||
|
-- Test argisnull primitive
|
||||||
|
select tcl_argisnull('foo');
|
||||||
|
select tcl_argisnull('');
|
||||||
|
select tcl_argisnull(null);
|
||||||
|
|
||||||
|
-- Test spi_lastoid primitive
|
||||||
|
create temp table t1 (f1 int);
|
||||||
|
select tcl_lastoid('t1');
|
||||||
|
create temp table t2 (f1 int) with oids;
|
||||||
|
select tcl_lastoid('t2') > 0;
|
||||||
|
@ -429,6 +429,24 @@ create trigger dta2_before before insert or update on T_dta2
|
|||||||
check_primkey('ref1', 'ref2', 'T_pkey2', 'key1', 'key2');
|
check_primkey('ref1', 'ref2', 'T_pkey2', 'key1', 'key2');
|
||||||
|
|
||||||
|
|
||||||
|
create function tcl_composite_arg_ref1(T_dta1) returns int as '
|
||||||
|
return $1(ref1)
|
||||||
|
' language pltcl;
|
||||||
|
|
||||||
|
create function tcl_composite_arg_ref2(T_dta1) returns text as '
|
||||||
|
return $1(ref2)
|
||||||
|
' language pltcl;
|
||||||
|
|
||||||
|
create function tcl_argisnull(text) returns bool as '
|
||||||
|
argisnull 1
|
||||||
|
' language pltcl;
|
||||||
|
|
||||||
|
create function tcl_lastoid(tabname text) returns int8 as '
|
||||||
|
spi_exec "insert into $1 default values"
|
||||||
|
spi_lastoid
|
||||||
|
' language pltcl;
|
||||||
|
|
||||||
|
|
||||||
create function tcl_int4add(int4,int4) returns int4 as '
|
create function tcl_int4add(int4,int4) returns int4 as '
|
||||||
return [expr $1 + $2]
|
return [expr $1 + $2]
|
||||||
' language pltcl;
|
' language pltcl;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user