/**************************************************************************************/
/* File:        demo14                                                                */
/* Project:     ATSQL2 : Derived Tables, Set Operations                               */
/* Author:      Andreas Steiner                                                       */
/* Date:        07-09-1995                                                            */
/* Results:                                                                           */
/**************************************************************************************/


CREATE TABLE p(i PERIOD) AS VALIDTIME;
CREATE TABLE q(n PERIOD, s CHAR(10)) AS VALIDTIME;


NONSEQUENCED VALIDTIME PERIOD [1995/8-forever)
  INSERT INTO p VALUES (PERIOD [1995/8-forever));
NONSEQUENCED VALIDTIME PERIOD [1995/9-forever)
  INSERT INTO p VALUES (PERIOD [1995/9-forever));
NONSEQUENCED VALIDTIME PERIOD [1995/7-forever)
  INSERT INTO p VALUES (PERIOD [1995/7-forever));


NONSEQUENCED VALIDTIME PERIOD [1995/9-forever)
  INSERT INTO q VALUES (PERIOD [1995/9-forever), 'andreas');
NONSEQUENCED VALIDTIME PERIOD [1995/10-forever)
  INSERT INTO q VALUES (PERIOD [1995/10-forever), 'maya');


VALIDTIME SELECT * FROM p, p;

VALIDTIME (SELECT * FROM p) (PERIOD);

VALIDTIME (SELECT * FROM p, p) (PERIOD);

VALIDTIME SELECT * FROM p, p (PERIOD);

VALIDTIME SELECT * FROM p (PERIOD), p (PERIOD);

VALIDTIME SELECT b, a FROM (VALIDTIME SELECT 1, 1 FROM q) a1 (a, b);

VALIDTIME SELECT * FROM p, q;

VALIDTIME SELECT * FROM p, (VALIDTIME SELECT * FROM q) a1;

VALIDTIME SELECT a1.n FROM p, (VALIDTIME SELECT * FROM q) a1;

VALIDTIME SELECT * FROM p, (VALIDTIME SELECT 1, 1 FROM q) a1;

VALIDTIME SELECT * FROM p, (VALIDTIME SELECT 1, 1 FROM q) a1 (a, b);

VALIDTIME SELECT a1.a, a1.b FROM p, (VALIDTIME SELECT 1, 1 FROM q) a1 (a, b);

VALIDTIME SELECT * FROM p, (VALIDTIME SELECT * FROM q a1, q a2) a1;

VALIDTIME SELECT * FROM p, (VALIDTIME SELECT a1.n, a2.n FROM q a1, q a2) a1;

VALIDTIME SELECT a1.a FROM p, (VALIDTIME SELECT a1.n a, a2.n b FROM q a1, q a2) a1;

VALIDTIME SELECT p.i, a1.n FROM p, (VALIDTIME SELECT q.n FROM q, q) a1;

VALIDTIME SELECT a1.n FROM p, (VALIDTIME SELECT * FROM q) a1;

VALIDTIME 
  (SELECT i FROM p)
   UNION
   (NONSEQUENCED VALIDTIME PERIOD [1990-1991) 
      SELECT n FROM q);


VALIDTIME 
  (SELECT i FROM p) (PERIOD)
  UNION
  (NONSEQUENCED VALIDTIME PERIOD [1990-1991) 
     SELECT n FROM q) (PERIOD);


VALIDTIME 
  (SELECT i FROM p
  UNION
  (NONSEQUENCED VALIDTIME PERIOD [1990-1991) SELECT n FROM q)) (PERIOD);


VALIDTIME 
    SELECT i FROM p
  UNION
    SELECT n FROM q;


VALIDTIME (
    SELECT i FROM p
  UNION
    SELECT n FROM q
) (PERIOD);


DROP TABLE p;
DROP TABLE q;

