/**************************************************************************************/
/* File:        demo17                                                                */
/* Project:     ATSQL2 : VALID PERIOD '..' <modification statement'                   */
/* Author:      Andreas Steiner                                                       */
/* Date:        19.03.1996                                                            */
/* Results:                                                                           */
/**************************************************************************************/

create table test(i integer) as valid;

nonsequenced valid period '1990-1995'
insert into test values (1);


VALID 
   SELECT i 
   FROM test, (NONSEQUENCED VALID PERIOD '1992 - 1997' 
                   SELECT * FROM DUAL) a;

/*
       VALID i
 ----------- -
 [1992-1995) 1
*/


VALID PERIOD '1992 - 1997' 
   SELECT *
   FROM test;

/*
       VALID i
 ----------- -
 [1992-1995) 1
*/

DROP TABLE test;



create table test(i integer) as valid;

nonsequenced valid period '1990-1996' insert into test values (1);

valid select * from test;

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

valid period '1992-1994' update test set i=999;

valid select * from test;

/*
       VALID   i
 ----------- ---
 [1990-1992)   1
 [1994-1996)   1
 [1992-1994) 999
*/


valid period '1988-1994' insert into test values (777);

valid select * from test;

/*
       VALID   i
 ----------- ---
 [1990-1992)   1
 [1994-1996)   1
 [1992-1994) 999
 [1988-1994) 777
*/


valid period '1970-1974' insert into test select * from test;

valid select * from test;

/*
       VALID   i
 ----------- ---
 [1990-1992)   1
 [1994-1996)   1
 [1992-1994) 999
 [1988-1994) 777
*/


valid period '1990-1992' insert into test select * from test;

valid select * from test;

/*
       VALID   i
 ----------- ---
 [1990-1992)   1
 [1994-1996)   1
 [1992-1994) 999
 [1988-1994) 777
 [1990-1992)   1
 [1990-1992) 777
*/


create table test2(k integer) as valid;

valid period '1990-forever' insert into test2 values (777);

valid select * from test2;

/*
          VALID   k
 -------------- ---
 [1990-forever) 777
*/

/*
valid period '1985-1989' 
  update test set i = 555 where not exists (select * from test2 where i=k)
*/

valid period '1985-1989' 
  delete from test where not exists (select * from test2 where i=k);

valid select * from test;

/*
       VALID   i
 ----------- ---
 [1990-1992)   1
 [1990-1992)   1
 [1994-1996)   1
 [1992-1994) 999
 [1990-1992) 777
 [1989-1994) 777
*/


drop table test;
drop table test2;

