/**************************************************************************************/
/* File:        demo18                                                                */
/* Project:     TUC evaluation with tuples valid in future                            */
/* Author:      Andreas Steiner                                                       */
/* Date:        25.03.1996                                                            */
/* Results:                                                                           */
/**************************************************************************************/

SET CALENDRIC SYSTEM fiscal;


/**********/
/* DELETE */
/**********/

CREATE TABLE test (i INTEGER) AS VALID;

NONSEQUENCED VALID PERIOD '1990 - 1995' INSERT INTO test VALUES (1);
NONSEQUENCED VALID PERIOD '1996 - FOREVER' INSERT INTO test VALUES (1);

SET CLOCK TO TIMESTAMP '1994';

VALID SELECT * FROM test;

/*
          VALID i
 -------------- -
    [1990-1995) 1
 [1996-forever) 1
*/


DELETE FROM test WHERE i = 1;

VALID SELECT * FROM test;

/*
       VALID i
 ----------- -
 [1990-1994) 1
*/

DROP TABLE test;



CREATE TABLE test (i INTEGER) AS VALID AND TRANSACTION;

NONSEQUENCED VALID PERIOD '1990 - FOREVER' INSERT INTO test VALUES (1);

NONSEQUENCED VALID PERIOD '1995 - 1996' 
 DELETE FROM test WHERE i = 1;

VALID SELECT * FROM test;

/*
          VALID i
 -------------- -
    [1990-1995) 1
 [1996-forever) 1
*/


TRANSACTION AND VALID SELECT * FROM test;

/*
          VALID    TRANSACTION i
 -------------- -------------- -
 [1990-forever)    [1994-1994) 1
    [1990-1995) [1994-forever) 1
 [1996-forever) [1994-forever) 1
*/


SET CLOCK TO TIMESTAMP '1994';

DELETE FROM test WHERE i = 1;

VALID SELECT * FROM test;

/*
       VALID i
 ----------- -
 [1990-1994) 1
*/

DROP TABLE test;



/**********/
/* UPDATE */
/**********/

CREATE TABLE test (i INTEGER) AS VALID;

NONSEQUENCED VALID PERIOD '1990 - 1995' INSERT INTO test VALUES (1);
NONSEQUENCED VALID PERIOD '1996 - FOREVER' INSERT INTO test VALUES (1);

SET CLOCK TO TIMESTAMP '1994';

VALID SELECT * FROM test;

/*
          VALID i
 -------------- -
    [1990-1995) 1
 [1996-forever) 1
*/

UPDATE test SET i = 10 WHERE i = 1;

VALID SELECT * FROM test;

/*
          VALID  i
 -------------- --
    [1990-1994)  1
    [1994-1995) 10
 [1996-forever) 10
*/

DROP TABLE test;


CREATE TABLE test (i INTEGER) AS VALID AND TRANSACTION;

NONSEQUENCED VALID PERIOD '1990 - FOREVER' INSERT INTO test VALUES (1);

NONSEQUENCED VALID PERIOD '1995 - 1996' 
 DELETE FROM test WHERE i = 1;

VALID SELECT * FROM test;

/*
          VALID i
 -------------- -
    [1990-1995) 1
 [1996-forever) 1
*/


TRANSACTION AND VALID SELECT * FROM test;

/*
          VALID    TRANSACTION i
 -------------- -------------- -
 [1990-forever)    [1994-1994) 1
    [1990-1995) [1994-forever) 1
 [1996-forever) [1994-forever) 1
*/


SET CLOCK TO TIMESTAMP '1994';

UPDATE test SET i = 10 WHERE i = 1;

VALID SELECT * FROM test;

/*
          VALID  i
 -------------- --
    [1990-1994)  1
    [1994-1995) 10
 [1996-forever) 10
*/

DROP TABLE test;

