File: dml148.sql

package info (click to toggle)
derby 10.14.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 78,896 kB
  • sloc: java: 691,930; sql: 42,686; xml: 20,511; sh: 3,373; sed: 96; makefile: 60
file content (188 lines) | stat: -rw-r--r-- 6,371 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
AUTOCOMMIT OFF;

-- MODULE  DML148  

-- SQL Test Suite, V6.0, Interactive SQL, dml148.sql
-- 59-byte ID
-- TEd Version #

-- AUTHORIZATION FLATER
   set schema FLATER;

--O   SELECT USER FROM HU.ECCO;
  VALUES USER;
-- RERUN if USER value does not match preceding AUTHORIZATION comment
   ROLLBACK WORK;

-- date_time print

-- TEST:0843 Ordering of column names in joins !

-- REFERENCE:  7.5 sr 6 f
-- NOTE:0843 ordering of column names in NATURAL JOIN

   SELECT * 
--O     FROM HU.WORKS NATURAL LEFT JOIN HU.PROJ
     FROM HU.WORKS JOIN HU.PROJ on (HU.WORKS.pnum=HU.PROJ.pnum)
--O     FROM WORKS , PROJ where works.pnum = proj.pnum
     ORDER BY EMPNUM DESC, HU.PROJ.PNUM;
-- PASS:0843 If 12 rows selected?
-- PASS:0843 If ordered row and column values for first two rows are: ?
-- PASS:0843    P2  E4  20  CALM  Code    30000  Vienna ?
-- PASS:0843    P4  E4  40  SDP   Design  20000  Deale  ?


-- NOTE:0843 ordering of column names in JOIN ... ON

   SELECT * 
    FROM HU.WORKS JOIN HU.PROJ ON (HU.WORKS.PNUM=HU.PROJ.PNUM)
    ORDER BY EMPNUM DESC, HU.PROJ.PNUM;
-- PASS:0843 If 12 rows selected?
-- PASS:0843 If ordered row and column values for first two rows are: ?
-- PASS:0843    P2  E4  20  CALM  Code    30000  Vienna ?
-- PASS:0843    P4  E4  40  SDP   Design  20000  Deale  ?
-- NOTE:0843 Same answer as above


-- NOTE:0843 ordering of column names in NATURAL JOIN
-- REFERENCE:  7.5 sr 5

    SELECT * 
--O      FROM HU.WORKS RIGHT JOIN HU.PROJ
--O      ON HU.WORKS.PNUM = HU.PROJ.PNUM
      FROM HU.WORKS JOIN HU.PROJ
      ON HU.PROJ.PNUM = HU.WORKS.PNUM
      ORDER BY 1 DESC, 2;
-- PASS:0843 If 12 rows selected?
-- PASS:0843 If ordered row and column values for first two rows are: ?
-- PASS:0843    E4  P2  20  P2  CALM  Code    30000  Vienna ?
-- PASS:0843    E4  P4  40  P4  SDP   Design  20000  Deale  ?

   ROLLBACK WORK;

-- END TEST >>> 0843 <<< END TEST

-- *********************************************

-- TEST:0844 Outer join predicates !


   CREATE TABLE SEVEN_TYPES (
       T_INT     INTEGER,
       T_CHAR    CHAR(10),
       T_SMALL   SMALLINT,
       T_DECIMAL DECIMAL(10,2),
       T_REAL    REAL,
       T_FLOAT   FLOAT,
       T_DOUBLE  DOUBLE PRECISION);

   COMMIT WORK;

-- setup
   DELETE FROM SEVEN_TYPES;
   INSERT INTO SEVEN_TYPES VALUES (1, 'E1',-11,   2,  3,   4,   5);
   INSERT INTO SEVEN_TYPES VALUES (2, 'E2', -5,  13, 33,-444, -55);
   INSERT INTO SEVEN_TYPES VALUES (3, 'E6', -3,-222,333,  44, 555);
   INSERT INTO SEVEN_TYPES VALUES (12,'DUP', 0,   0, -1,   1,1E+1);
   INSERT INTO SEVEN_TYPES VALUES (12,'DUP', 0,   0, -1,   1,1E+1);

--
-- NOTE:0844 BETWEEN predicate
   SELECT EMPNAME, CITY, T_DECIMAL
     FROM HU.STAFF LEFT OUTER JOIN SEVEN_TYPES 
        ON -GRADE / 11 BETWEEN T_REAL AND T_DECIMAL
     ORDER BY EMPNAME;
-- PASS:0844 If 6 rows selected with ordered rows and column values ?
-- PASS:0844    Alice  Deale  NULL  ?
-- PASS:0844    Betty  Vienna    0  ?
-- PASS:0844    Betty  Vienna    0  ?
-- PASS:0844    Carmen Vienna NULL  ?
-- PASS:0844    Don    Deale  NULL  ?
-- PASS:0844    Ed     Akron  NULL  ?

-- NOTE:0844 comparable CHAR types
-- NOTE:0844 IN predicate, with literals and variable value
   SELECT T_INT, T_CHAR, EMPNAME, EMPNUM, GRADE 
--O     FROM SEVEN_TYPES RIGHT JOIN HU.STAFF
    FROM SEVEN_TYPES right outer JOIN HU.STAFF
       ON GRADE IN (10, 11, 13) AND EMPNUM = T_CHAR
   ORDER BY EMPNAME, T_INT;
-- PASS:0844 If 5 rows selected with ordered rows and column values ?
-- PASS:0844    NULL NULL Alice  E1 12  ?
-- PASS:0844       2 E2   Betty  E2 10  ?
-- PASS:0844    NULL NULL Carmen E3 13  ?
-- PASS:0844    NULL NULL Don    E4 12  ?
-- PASS:0844    NULL NULL Ed     E5 13  ?

   SELECT HU.STAFF.CITY,EMPNAME,PNAME,BUDGET
--O     FROM HU.STAFF LEFT JOIN HU.PROJ
     FROM HU.STAFF left outer JOIN HU.PROJ
       ON HU.STAFF.CITY = HU.PROJ.CITY
      AND HU.STAFF.CITY <> 'Vienna'
      AND EMPNAME <> 'Don'
     WHERE BUDGET > 15000 OR BUDGET IS NULL
--O   ORDER BY HU.STAFF.CITY, EMPNAME, BUDGET;
   ORDER BY 1,2,4;
-- PASS:0844 If 6 rows selected with ordered rows and column values ?
-- PASS:0844    Akron   Ed     NULL NULL   ?
-- PASS:0844    Deale   Alice  SDP  20000  ?
-- PASS:0844    Deale   Alice  PAYR 50000  ?
-- PASS:0844    Deale   Don    NULL NULL   ?
-- PASS:0844    Vienna  Betty  NULL NULL   ?
-- PASS:0844    Vienna  Carmen NULL NULL   ?

-- NOTE:0844 difference between WHERE and ON
   SELECT HU.STAFF.CITY,EMPNAME,PNAME,BUDGET
--O     FROM HU.STAFF LEFT JOIN HU.PROJ
     FROM HU.STAFF left outer JOIN HU.PROJ
       ON HU.STAFF.CITY = HU.PROJ.CITY
      AND HU.STAFF.CITY <> 'Vienna'
     WHERE (BUDGET > 15000 OR BUDGET IS NULL)
      AND EMPNAME <> 'Don'
--O   ORDER BY HU.STAFF.CITY, EMPNAME, BUDGET;
   ORDER BY 1,2,4;
-- PASS:0844 If 5 rows selected with ordered rows and column values ?
-- PASS:0844    Akron   Ed     NULL NULL   ?
-- PASS:0844    Deale   Alice  SDP  20000  ?
-- PASS:0844    Deale   Alice  PAYR 50000  ?
-- PASS:0844    Vienna  Betty  NULL NULL   ?
-- PASS:0844    Vienna  Carmen NULL NULL   ?

-- NOTE:0844 correlation name with self-JOIN
   SELECT XX.T_INT, YY.T_INT
    FROM SEVEN_TYPES XX RIGHT OUTER JOIN SEVEN_TYPES YY
       ON XX.T_INT = YY.T_INT +1
--O   ORDER BY YY.T_INT;
   ORDER BY 2;
-- PASS:0844 If 5 rows selected with ordered rows and column values ?
-- PASS:0844    2      1  ?
-- PASS:0844    3      2  ?
-- PASS:0844    NULL   3  ?
-- PASS:0844    NULL  12  ?
-- PASS:0844    NULL  12  ?

-- NOTE:0844 nested booleans
-- NOTE:0844 data types are merely comparable
   SELECT GRADE, T_FLOAT, T_DOUBLE
--O     FROM HU.STAFF LEFT JOIN SEVEN_TYPES T7
     FROM HU.STAFF left outer JOIN SEVEN_TYPES T7
       ON GRADE * -40 > T7.T_FLOAT
       OR (T_DOUBLE -542.5 < GRADE AND T_DOUBLE -541.5 > GRADE)
   ORDER BY GRADE;
-- PASS:0844 If 5 rows selected with ordered rows and column values ?
-- PASS:0844    10 -444 (approximately)  -55 (approximately) ?
-- PASS:0844    12 NULL                 NULL                 ?
-- PASS:0844    12 NULL                 NULL                 ?
-- PASS:0844    13   44 (approximately)  555 (approximately) ?
-- PASS:0844    13   44 (approximately)  555 (approximately) ?

ROLLBACK WORK;

--ODROP TABLE SEVEN_TYPES CASCADE;
DROP TABLE SEVEN_TYPES ;

COMMIT WORK;

-- END TEST >>> 0844 <<< END TEST

-- *************************************************////END-OF-MODULE