129 lines
1.5 KiB
SQL
129 lines
1.5 KiB
SQL
# name: test/sql/update/null_update_merge.test
|
|
# description: Test repeated updates that change the nullness of values
|
|
# group: [update]
|
|
|
|
# create a table
|
|
statement ok
|
|
CREATE TABLE test (id INTEGER, a INTEGER);
|
|
|
|
statement ok
|
|
INSERT INTO test VALUES (1, 1), (2, 2), (3, 3), (4, NULL);
|
|
|
|
query II
|
|
SELECT * FROM test ORDER BY id;
|
|
----
|
|
1 1
|
|
2 2
|
|
3 3
|
|
4 NULL
|
|
|
|
statement ok
|
|
UPDATE test SET a=CASE WHEN id=1 THEN 7 ELSE NULL END WHERE id <= 2
|
|
|
|
query II
|
|
SELECT * FROM test ORDER BY id;
|
|
----
|
|
1 7
|
|
2 NULL
|
|
3 3
|
|
4 NULL
|
|
|
|
statement ok
|
|
UPDATE test SET a=17 WHERE id > 2
|
|
|
|
query II
|
|
SELECT * FROM test ORDER BY id;
|
|
----
|
|
1 7
|
|
2 NULL
|
|
3 17
|
|
4 17
|
|
|
|
statement ok
|
|
UPDATE test SET a=CASE WHEN id=4 THEN 1 ELSE NULL END
|
|
|
|
query II
|
|
SELECT * FROM test ORDER BY id;
|
|
----
|
|
1 NULL
|
|
2 NULL
|
|
3 NULL
|
|
4 1
|
|
|
|
statement ok
|
|
UPDATE test SET a=2 WHERE id >= 2 AND id <= 3
|
|
|
|
query II
|
|
SELECT * FROM test ORDER BY id;
|
|
----
|
|
1 NULL
|
|
2 2
|
|
3 2
|
|
4 1
|
|
|
|
statement ok
|
|
UPDATE test SET a=NULL WHERE id >= 3
|
|
|
|
query II
|
|
SELECT * FROM test ORDER BY id;
|
|
----
|
|
1 NULL
|
|
2 2
|
|
3 NULL
|
|
4 NULL
|
|
|
|
statement ok
|
|
UPDATE test SET a=id WHERE id != 3
|
|
|
|
query II
|
|
SELECT * FROM test ORDER BY id;
|
|
----
|
|
1 1
|
|
2 2
|
|
3 NULL
|
|
4 4
|
|
|
|
statement ok
|
|
UPDATE test SET a=NULL WHERE id != 3
|
|
|
|
query II
|
|
SELECT * FROM test ORDER BY id;
|
|
----
|
|
1 NULL
|
|
2 NULL
|
|
3 NULL
|
|
4 NULL
|
|
|
|
statement ok
|
|
UPDATE test SET a=3 WHERE id != 2
|
|
|
|
query II
|
|
SELECT * FROM test ORDER BY id;
|
|
----
|
|
1 3
|
|
2 NULL
|
|
3 3
|
|
4 3
|
|
|
|
statement ok
|
|
UPDATE test SET a=7 WHERE id != 3
|
|
|
|
query II
|
|
SELECT * FROM test ORDER BY id;
|
|
----
|
|
1 7
|
|
2 7
|
|
3 3
|
|
4 7
|
|
|
|
statement ok
|
|
UPDATE test SET a=NULL
|
|
|
|
query II
|
|
SELECT * FROM test ORDER BY id;
|
|
----
|
|
1 NULL
|
|
2 NULL
|
|
3 NULL
|
|
4 NULL
|