File: dml058.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 (254 lines) | stat: -rw-r--r-- 5,349 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
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
AUTOCOMMIT OFF;

-- MODULE DML058

-- SQL Test Suite, V6.0, Interactive SQL, dml058.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:0251 COMMIT keeps changes of current transaction!

     DELETE FROM STAFF1;
-- Making sure the table is empty

-- setup
     INSERT INTO STAFF1
            SELECT *
                 FROM STAFF;
-- PASS:0251 If 5 rows are inserted?

--O     SELECT COUNT(*) 
     SELECT * 
          FROM STAFF1;
-- PASS:0251 If count = 5?

     INSERT INTO STAFF1
            VALUES('E9','Tom',50,'London');
-- PASS:0251 If 1 row is inserted?
  
     UPDATE STAFF1
            SET GRADE = 40 
            WHERE EMPNUM = 'E2';
-- PASS:0251 If 1 row is updated?

     COMMIT WORK;

     DELETE FROM STAFF1;
-- PASS:0251 If 6 rows are deleted?

-- verify
     ROLLBACK WORK;

-- verify previous commit
--O     SELECT COUNT(*)
     SELECT *
          FROM STAFF1
          WHERE GRADE > 12;
-- PASS:0251 If count = 4?

-- restore
     DELETE FROM STAFF1;
     COMMIT WORK;

-- END TEST >>> 0251 <<< END TEST

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

-- TEST:0252 ROLLBACK cancels changes of current transaction!

     DELETE FROM STAFF1;
-- Making sure the table is empty

-- setup
     INSERT INTO STAFF1
            SELECT *
                 FROM STAFF;
-- PASS:0252 If 5 rows are inserted?

     COMMIT WORK;

     INSERT INTO STAFF1
            VALUES('E10','Tom',50,'London');
-- PASS:0252 If 1 row is inserted?

     UPDATE STAFF1
            SET GRADE = 40
            WHERE EMPNUM = 'E1';
-- PASS:0252 If 1 row is updated?

     DELETE FROM STAFF1
            WHERE EMPNUM = 'E2';
-- PASS:0252 If 1 row is deleted?

     ROLLBACK WORK;

-- verify     
     SELECT SUM(GRADE)
          FROM STAFF1;
-- PASS:0252 If SUM(GRADE) = 60?

-- restore
     DELETE FROM STAFF1;
     COMMIT WORK;

-- END TEST >>> 0252 <<< END TEST

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

-- TEST:0253 TEST0124 workaround (key = key+1)!

     SELECT NUMKEY
          FROM UPUNIQ
          ORDER BY NUMKEY DESC;
-- PASS:0253 If 6 rows are selected and first NUMKEY = 8 ?

     UPDATE UPUNIQ
          SET NUMKEY = 8 + 1
          WHERE NUMKEY = 8;
-- PASS:0253 If 1 row is updated?

     UPDATE UPUNIQ
          SET NUMKEY = 6 + 1
          WHERE NUMKEY = 6;
-- PASS:0253 If 1 row is updated?

     UPDATE UPUNIQ
          SET NUMKEY = 4 + 1
          WHERE NUMKEY = 4;
-- PASS:0253 If 1 row is updated?

     UPDATE UPUNIQ
          SET NUMKEY = 3 + 1
          WHERE NUMKEY = 3;
-- PASS:0253 If 1 row is updated?

     UPDATE UPUNIQ
          SET NUMKEY = 2 + 1 
          WHERE NUMKEY = 2;
-- PASS:0253 If 1 row is updated?

     UPDATE UPUNIQ
          SET NUMKEY = 1 + 1
          WHERE NUMKEY = 1;
-- PASS:0253 If 1 row is updated?


     SELECT MAX(NUMKEY), MIN(NUMKEY)
          FROM UPUNIQ;
-- PASS:0253 If MAX(NUMKEY) = 9 AND MIN(NUMKEY) = 2?

-- restore
     ROLLBACK WORK;

-- END TEST >>> 0253 <<< END TEST

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

-- TEST:0254 Column name in SET clause!

     DELETE FROM PROJ1;
-- Making sure the table is empty

-- setup
     INSERT INTO PROJ1
            SELECT *
                 FROM PROJ;
-- PASS:0254 If 6 rows are inserted?

     UPDATE PROJ1
          SET CITY = PTYPE;
-- PASS:0254 If 6 rows are updated?

     SELECT CITY
          FROM PROJ1
          WHERE PNUM = 'P1';
-- PASS:0254 If CITY = 'Design'?

-- restore
     ROLLBACK WORK;

-- END TEST >>> 0254 <<< END TEST

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


-- TEST:0255 Key word USER for INSERT, UPDATE!

     DELETE FROM T4;
-- Making sure the table is empty

-- setup
     INSERT INTO T4
          VALUES(CAST(USER AS VARCHAR(128)),100,'good','luck');
-- PASS:0255 If 1 row is inserted?

     SELECT STR110 
          FROM T4
          WHERE NUM6 = 100;
-- PASS:0255 If STR110 = 'HU'?

-- setup
     INSERT INTO T4
          VALUES('Hello',101,'good','luck');
-- PASS:0255 If 1 row is inserted?

     UPDATE T4
          SET STR110 = CAST(USER AS VARCHAR(128))
          WHERE NUM6 = 101;
-- PASS:0255 If 1 row is updated?

     SELECT STR110 
          FROM T4
          WHERE NUM6 = 101;
-- PASS:0255 If STR110 = 'HU'?

-- restore
     ROLLBACK WORK;
       
-- END TEST >>> 0255 <<< END TEST

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

-- TEST:0256 Key word USER in WHERE clause!

     DELETE FROM T4;
-- Making sure the table is empty

-- setup
     INSERT INTO T4
            VALUES('HU',100,'good','luck');
-- PASS:0256 If 1 row is inserted?

     SELECT STR110 
          FROM T4
          WHERE STR110 = CAST(USER AS VARCHAR(128));
-- PASS:0256 If STR110 = 'HU'?

-- setup
     INSERT INTO T4
            VALUES('Hello',101,'good','luck');
-- PASS:0256 If 1 row is inserted?

     DELETE FROM T4
            WHERE STR110 = CAST(USER AS VARCHAR(128));
-- PASS:0256 If 1 row is deleted?

     SELECT COUNT(*)
          FROM T4
          WHERE STR110 LIKE '%HU%';
-- PASS:0256 If count = 0?

-- restore
     ROLLBACK WORK;

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