File: dml075.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 (183 lines) | stat: -rw-r--r-- 4,963 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
AUTOCOMMIT OFF;

-- MODULE DML075

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

-- AUTHORIZATION HU
   set schema HU;

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

-- date_time print

-- TEST:0431 Redundant rows in IN subquery!

--O   SELECT COUNT (*) FROM STAFF
   SELECT * FROM STAFF
       WHERE EMPNUM IN
            (SELECT EMPNUM FROM WORKS);
-- PASS:0431 If count = 4?

   INSERT INTO STAFF1
       SELECT * FROM STAFF;

--O   SELECT COUNT (*) FROM STAFF1
   SELECT * FROM STAFF1
       WHERE EMPNUM IN
            (SELECT EMPNUM FROM WORKS);
-- PASS:0431 If count = 4?

   ROLLBACK WORK;

-- END TEST >>> 0431 <<< END TEST
-- *************************************************************

-- TEST:0432 Unknown comparison predicate in ALL, SOME, ANY!

-- setup

UPDATE PROJ SET CITY = NULL 
  WHERE PNUM = 'P3';

--OSELECT COUNT(*)
SELECT *
  FROM STAFF
  WHERE CITY = ALL (SELECT CITY
                   FROM PROJ
                   WHERE PNAME = 'SDP');
-- PASS:0432 If count = 0?

--OSELECT COUNT(*)
SELECT *
  FROM STAFF
  WHERE CITY <> ALL (SELECT CITY 
                    FROM PROJ
                    WHERE PNAME = 'SDP');
-- PASS:0432 If count = 0?

--OSELECT COUNT(*)
SELECT *
  FROM STAFF
  WHERE CITY = ANY (SELECT CITY    
                   FROM PROJ
                   WHERE PNAME = 'SDP');
-- PASS:0432 If count = 2?

--OSELECT COUNT(*)
SELECT *
  FROM STAFF
  WHERE CITY <> ANY (SELECT CITY
                     FROM PROJ
                     WHERE PNAME = 'SDP');
-- PASS:0432 If count = 3?

--OSELECT COUNT(*)
SELECT *
  FROM STAFF
  WHERE CITY = SOME (SELECT CITY
                     FROM PROJ
                     WHERE PNAME = 'SDP');
-- PASS:0432 If count = 2?

--OSELECT COUNT(*)
SELECT *
  FROM STAFF
  WHERE CITY <> SOME (SELECT CITY
                      FROM PROJ
                      WHERE PNAME = 'SDP');
-- PASS:0432 If count = 3?

   ROLLBACK WORK;

-- END TEST >>> 0432 <<< END TEST
-- *************************************************************

-- TEST:0433 Empty subquery in ALL, SOME, ANY!

--O   SELECT COUNT(*) FROM PROJ
   SELECT * FROM PROJ
        WHERE PNUM = ALL (SELECT PNUM
                          FROM WORKS WHERE EMPNUM = 'E8');
-- PASS:0433 If count = 6?

--O   SELECT COUNT(*) FROM PROJ
   SELECT * FROM PROJ
        WHERE PNUM <> ALL (SELECT PNUM
                          FROM WORKS WHERE EMPNUM = 'E8');

-- PASS:0433 If count = 6?

--O   SELECT COUNT(*) FROM PROJ
   SELECT * FROM PROJ
        WHERE PNUM = ANY (SELECT PNUM
                          FROM WORKS WHERE EMPNUM = 'E8');
-- PASS:0433 If count = 0?

--O   SELECT COUNT(*) FROM PROJ
   SELECT * FROM PROJ
        WHERE PNUM <> ANY (SELECT PNUM
                          FROM WORKS WHERE EMPNUM = 'E8');
-- PASS:0433 If count = 0?

--O   SELECT COUNT(*) FROM PROJ
   SELECT * FROM PROJ
        WHERE PNUM = SOME (SELECT PNUM
                          FROM WORKS WHERE EMPNUM = 'E8');
-- PASS:0433 If count = 0?

--O   SELECT COUNT(*) FROM PROJ
   SELECT * FROM PROJ
        WHERE PNUM <> SOME (SELECT PNUM
                          FROM WORKS WHERE EMPNUM = 'E8');
-- PASS:0433 If count = 0?

-- END TEST >>> 0433 <<< END TEST
-- *************************************************************

-- TEST:0434 GROUP BY with HAVING EXISTS-correlated set function!

   SELECT PNUM, SUM(HOURS) FROM WORKS c
          GROUP BY PNUM
--O          HAVING EXISTS (SELECT PNAME FROM PROJ
--O                         WHERE PROJ.PNUM = WORKS.PNUM AND
          HAVING EXISTS (SELECT PNAME FROM PROJ, works a
                         WHERE PROJ.PNUM = a.PNUM AND
--O                               SUM(WORKS.HOURS) > PROJ.BUDGET / 200);
                         PROJ.BUDGET / 200 < (select sum(hours) from works b
			  where a.pnum = b.pnum
			  and a.pnum = c.pnum));

-- PASS:0434 If 2 rows selected with values (in any order):?
-- PASS:0434 PNUM = 'P1', SUM(HOURS) = 80?
-- PASS:0434 PNUM = 'P5', SUM(HOURS) = 92?

-- END TEST >>> 0434 <<< END TEST
-- *************************************************************

-- TEST:0442 DISTINCT with GROUP BY, HAVING!

   SELECT PTYPE, CITY FROM PROJ
          GROUP BY PTYPE, CITY
          HAVING AVG(BUDGET) > 21000;
-- PASS:0442 If 3 rows selected with PTYPE/CITY values(in any order):?
-- PASS:0442 Code/Vienna, Design/Deale, Test/Tampa?

   SELECT DISTINCT PTYPE, CITY FROM PROJ
          GROUP BY PTYPE, CITY
          HAVING AVG(BUDGET) > 21000;
-- PASS:0442 If 3 rows selected with PTYPE/CITY values(in any order):?
-- PASS:0442 Code/Vienna, Design/Deale, Test/Tampa?

   SELECT DISTINCT SUM(BUDGET) FROM PROJ
          GROUP BY PTYPE, CITY
          HAVING AVG(BUDGET) > 21000;
-- PASS:0442 If 2 rows selected (in any order):?
-- PASS:0442 with SUM(BUDGET) values 30000 and 80000?

-- END TEST >>> 0442 <<< END TEST
-- *************************************************////END-OF-MODULE