>>
>>set schema CAT1.SCHM;

--- SQL operation complete.
>>obey TEST_1_4_1_4(set_up);
>>
>>DELETE FROM tab1A;

--- 0 row(s) deleted.
>>
>>INSERT INTO tab1A VALUES (1,2,3,4);

--- 1 row(s) inserted.
>>INSERT INTO tab1A VALUES (2,3,4,5);

--- 1 row(s) inserted.
>>INSERT INTO tab1A VALUES (100, 101, 102, 103);

--- 1 row(s) inserted.
>>
>>CREATE TRIGGER trig1 AFTER UPDATE 
+>	ON tab1A
+>	REFERENCING NEW AS newtable, OLD AS oldtable
+>	FOR EACH STATEMENT
+>		INSERT INTO tab1A (SELECT d,c,b,a FROM oldtable
+>				   WHERE oldtable.a IN (SELECT a FROM newtable));

--- SQL operation complete.
>>
>>obey TEST_1_4_1_4(tests);
>>------------------------------------------------------------------
>>-- 	TEST CASE
>>------------------------------------------------------------------
>>-- the following command should add another row to tab1A
>>
>>UPDATE tab1A SET b=a+2 WHERE a<100;

--- 2 row(s) updated.
>>
>>--------------------------------------------------------
>>-- RESULT: tab1A:
>>-- 1   3   3   4
>>-- 2   4   4   5
>>-- 4   3   2   1
>>-- 5   4   3   2
>>--100 101 102 103
>>--------------------------------------------------------
>>SELECT * FROM tab1A ORDER BY a;

A            B            C            D            
-----------  -----------  -----------  -----------  

          1            3            3            4  
          2            4            4            5  
          4            3            2            1  
          5            4            3            2  
        100          101          102          103  

--- 5 row(s) selected.
>>
>>--------------------------------------------------------
>>obey TEST_1_4_1_4(clean_up);
>>
>>DROP TRIGGER trig1;

--- SQL operation complete.
>>DELETE FROM tab1A;

--- 5 row(s) deleted.
>>obey clearTables;
>>SET SCHEMA cat1.schm;

--- SQL operation complete.
>>DELETE FROM tab1A;

--- 0 row(s) deleted.
>>DELETE FROM tab1B;

--- 0 row(s) deleted.
>>
>>DELETE FROM cat2.schm.tab2A;

--- 0 row(s) deleted.
>>DELETE FROM cat2.schm.tab2B;

--- 0 row(s) deleted.
>>DELETE FROM cat3.schm.tab3A;

--- 0 row(s) deleted.
>>
>>SET SCHEMA cat1.schm_alt;

--- SQL operation complete.
>>DELETE FROM tab1A;

--- 0 row(s) deleted.
>>DELETE FROM tab1B;

--- 0 row(s) deleted.
>>
>>SET SCHEMA cat1.schm;

--- SQL operation complete.
>>
>>
>>-- switch schemas
>>set schema CAT1.SCHM_ALT;

--- SQL operation complete.
>>obey TEST_1_4_1_4(set_up);
>>
>>DELETE FROM tab1A;

--- 0 row(s) deleted.
>>
>>INSERT INTO tab1A VALUES (1,2,3,4);

--- 1 row(s) inserted.
>>INSERT INTO tab1A VALUES (2,3,4,5);

--- 1 row(s) inserted.
>>INSERT INTO tab1A VALUES (100, 101, 102, 103);

--- 1 row(s) inserted.
>>
>>CREATE TRIGGER trig1 AFTER UPDATE 
+>	ON tab1A
+>	REFERENCING NEW AS newtable, OLD AS oldtable
+>	FOR EACH STATEMENT
+>		INSERT INTO tab1A (SELECT d,c,b,a FROM oldtable
+>				   WHERE oldtable.a IN (SELECT a FROM newtable));

--- SQL operation complete.
>>
>>obey TEST_1_4_1_4(tests);
>>------------------------------------------------------------------
>>-- 	TEST CASE
>>------------------------------------------------------------------
>>-- the following command should add another row to tab1A
>>
>>UPDATE tab1A SET b=a+2 WHERE a<100;

--- 2 row(s) updated.
>>
>>--------------------------------------------------------
>>-- RESULT: tab1A:
>>-- 1   3   3   4
>>-- 2   4   4   5
>>-- 4   3   2   1
>>-- 5   4   3   2
>>--100 101 102 103
>>--------------------------------------------------------
>>SELECT * FROM tab1A ORDER BY a;

A            B            C            D            
-----------  -----------  -----------  -----------  

          1            3            3            4  
          2            4            4            5  
          4            3            2            1  
          5            4            3            2  
        100          101          102          103  

--- 5 row(s) selected.
>>
>>--------------------------------------------------------
>>
>>-- end logging
>>LOG;
