should be it
This commit is contained in:
88
external/duckdb/test/sql/alter/alter_col/test_drop_not_null.test
vendored
Normal file
88
external/duckdb/test/sql/alter/alter_col/test_drop_not_null.test
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
# name: test/sql/alter/alter_col/test_drop_not_null.test
|
||||
# description: Test ALTER TABLE ALTER COLUMN column_name DROP NOT NULL
|
||||
# group: [alter_col]
|
||||
|
||||
# Happy path
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
CREATE TABLE test(i INTEGER, j INTEGER NOT NULL)
|
||||
|
||||
statement ok
|
||||
INSERT INTO test VALUES (1, 1), (2, 2)
|
||||
|
||||
statement error
|
||||
INSERT INTO test VALUES (3, NULL)
|
||||
----
|
||||
|
||||
query II
|
||||
SELECT * FROM test
|
||||
----
|
||||
1 1
|
||||
2 2
|
||||
|
||||
statement ok
|
||||
ALTER TABLE test ALTER COLUMN j DROP NOT NULL
|
||||
|
||||
statement ok
|
||||
INSERT INTO test VALUES (3, NULL)
|
||||
|
||||
query II
|
||||
SELECT * FROM test
|
||||
----
|
||||
1 1
|
||||
2 2
|
||||
3 NULL
|
||||
|
||||
# Negative path
|
||||
|
||||
statement ok
|
||||
CREATE TABLE test2(i INTEGER, j INTEGER)
|
||||
|
||||
statement ok
|
||||
INSERT INTO test2 VALUES (1, 1), (2, 2)
|
||||
|
||||
statement ok
|
||||
ALTER TABLE test2 ALTER COLUMN j DROP NOT NULL
|
||||
|
||||
statement ok
|
||||
INSERT INTO test VALUES (3, NULL)
|
||||
|
||||
# Drop not null with generated column presented
|
||||
statement ok
|
||||
DROP TABLE IF EXISTS test
|
||||
|
||||
statement ok
|
||||
CREATE TABLE test(i AS (1), j INTEGER NOT NULL)
|
||||
|
||||
statement ok
|
||||
INSERT INTO test VALUES (1), (2)
|
||||
|
||||
statement error
|
||||
INSERT INTO test VALUES (NULL)
|
||||
----
|
||||
|
||||
query II
|
||||
SELECT * FROM test
|
||||
----
|
||||
1 1
|
||||
1 2
|
||||
|
||||
statement ok
|
||||
ALTER TABLE test ALTER COLUMN i DROP NOT NULL
|
||||
|
||||
statement ok
|
||||
ALTER TABLE test ALTER COLUMN j DROP NOT NULL
|
||||
|
||||
statement ok
|
||||
INSERT INTO test VALUES (NULL)
|
||||
|
||||
query II
|
||||
SELECT * FROM test
|
||||
----
|
||||
1 1
|
||||
1 2
|
||||
1 NULL
|
||||
|
||||
270
external/duckdb/test/sql/alter/alter_col/test_not_null_in_tran.test
vendored
Normal file
270
external/duckdb/test/sql/alter/alter_col/test_not_null_in_tran.test
vendored
Normal file
@@ -0,0 +1,270 @@
|
||||
# name: test/sql/alter/alter_col/test_not_null_in_tran.test
|
||||
# description: Test Set/Drop NOT NULL in transaction
|
||||
# group: [alter_col]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
# Scenario #1, alter with uncommitted data
|
||||
statement ok
|
||||
CREATE TABLE t(i INTEGER, j INTEGER)
|
||||
|
||||
statement ok
|
||||
INSERT INTO t SELECT i, i FROM RANGE(2048) tbl(i)
|
||||
|
||||
# Insert uncommitted null
|
||||
statement ok
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok
|
||||
INSERT INTO t VALUES(9999, NULL)
|
||||
|
||||
statement error
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
----
|
||||
|
||||
statement ok
|
||||
ROLLBACK
|
||||
|
||||
statement ok
|
||||
INSERT INTO t VALUES(9999, NULL)
|
||||
|
||||
# Has null, cannot alter after tran
|
||||
statement error
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
----
|
||||
|
||||
query I
|
||||
SELECT i FROM t WHERE j IS NULL
|
||||
----
|
||||
9999
|
||||
|
||||
# Prepare persistent data
|
||||
statement ok
|
||||
DROP TABLE IF EXISTS t
|
||||
|
||||
statement ok
|
||||
CREATE TABLE t(i INTEGER, j INTEGER)
|
||||
|
||||
statement ok
|
||||
INSERT INTO t SELECT i, i FROM RANGE(2048) tbl(i)
|
||||
|
||||
# Insert uncommitted data
|
||||
statement ok
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok
|
||||
INSERT INTO t values(8888, 8888)
|
||||
|
||||
statement ok
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
|
||||
statement ok
|
||||
COMMIT
|
||||
|
||||
# Cannot insert after tran
|
||||
statement error
|
||||
INSERT INTO t VALUES(9999, NULL)
|
||||
----
|
||||
|
||||
# No null data
|
||||
query II
|
||||
SELECT * FROM t WHERE j = 8888
|
||||
----
|
||||
8888 8888
|
||||
|
||||
# Scenario #2, add/drop in the same tran
|
||||
statement ok
|
||||
DROP TABLE IF EXISTS t
|
||||
|
||||
statement ok
|
||||
CREATE TABLE t(i int, j int)
|
||||
|
||||
statement ok
|
||||
INSERT INTO T SELECT 1,1 FROM RANGE(2048)
|
||||
|
||||
statement ok
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
|
||||
statement ok
|
||||
INSERT INTO t VALUES(2, 2)
|
||||
|
||||
statement ok
|
||||
ALTER TABLE t ALTER COLUMN j DROP NOT NULL
|
||||
|
||||
statement ok
|
||||
INSERT INTO t values(3, NULL)
|
||||
|
||||
statement ok
|
||||
COMMIT
|
||||
|
||||
# Insert null after tran
|
||||
statement ok
|
||||
INSERT INTO t VALUES(4, NULL)
|
||||
|
||||
query II
|
||||
SELECT * FROM t WHERE j IS NULL
|
||||
----
|
||||
3 NULL
|
||||
4 NULL
|
||||
|
||||
# Scenario #3, rollback alter
|
||||
statement ok
|
||||
DROP TABLE IF EXISTS t
|
||||
|
||||
statement ok
|
||||
CREATE TABLE t(i int, j int)
|
||||
|
||||
statement ok
|
||||
INSERT INTO T SELECT 1,1 FROM RANGE(2048)
|
||||
|
||||
statement ok
|
||||
BEGIN TRANSACTION
|
||||
|
||||
# Set&Rollback
|
||||
statement ok
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
|
||||
statement ok
|
||||
INSERT INTO T VALUES(8888, 8888)
|
||||
|
||||
statement ok
|
||||
ROLLBACK
|
||||
|
||||
# CAN insert null after rollback
|
||||
statement ok
|
||||
INSERT INTO t VALUES(9999, NULL)
|
||||
|
||||
query I
|
||||
SELECT i FROM t WHERE j IS NULL
|
||||
----
|
||||
9999
|
||||
|
||||
# Prepare data with NOT NULL constraint
|
||||
statement ok
|
||||
DROP TABLE IF EXISTS t
|
||||
|
||||
statement ok
|
||||
CREATE TABLE t(i int, j int)
|
||||
|
||||
statement ok
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
|
||||
statement ok
|
||||
INSERT INTO T SELECT 1,1 FROM RANGE(2048)
|
||||
|
||||
statement ok
|
||||
BEGIN TRANSACTION
|
||||
|
||||
# Drop&Rollback
|
||||
statement ok
|
||||
ALTER TABLE t ALTER COLUMN j DROP NOT NULL
|
||||
|
||||
statement ok
|
||||
INSERT INTO T VALUES(7777, NULL)
|
||||
|
||||
statement ok
|
||||
ROLLBACK
|
||||
|
||||
# CANNOT insert null after rollback
|
||||
statement error
|
||||
INSERT INTO t VALUES(8888, NULL)
|
||||
----
|
||||
|
||||
# NO null values
|
||||
query I
|
||||
SELECT COUNT(*) FROM t WHERE j IS NULL
|
||||
----
|
||||
0
|
||||
|
||||
# Scenario #4, Create table then Alter in the same tran
|
||||
# Set in the same tran
|
||||
statement ok
|
||||
DROP TABLE IF EXISTS t
|
||||
|
||||
statement ok
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok
|
||||
CREATE TABLE t(i INTEGER)
|
||||
|
||||
statement ok
|
||||
ALTER TABLE t ALTER COLUMN i SET NOT NULL
|
||||
|
||||
statement ok
|
||||
INSERT INTO t SELECT 1 FROM RANGE(1024)
|
||||
|
||||
statement ok
|
||||
COMMIT
|
||||
|
||||
statement error
|
||||
INSERT INTO t VALUES(NULL)
|
||||
----
|
||||
|
||||
# Drop in the same tran
|
||||
statement ok
|
||||
DROP TABLE IF EXISTS t
|
||||
|
||||
statement ok
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok
|
||||
CREATE TABLE t(i INTEGER NOT NULL)
|
||||
|
||||
statement ok
|
||||
INSERT INTO t SELECT 1 FROM RANGE(1024)
|
||||
|
||||
statement ok
|
||||
ALTER TABLE t ALTER COLUMN i DROP NOT NULL
|
||||
|
||||
statement ok
|
||||
INSERT INTO t VALUES(NULL)
|
||||
|
||||
statement ok
|
||||
COMMIT
|
||||
|
||||
statement ok
|
||||
INSERT INTO t VALUES(NULL)
|
||||
|
||||
mode skip
|
||||
# Scenario #5, Insert null, delete null locally, then alter
|
||||
statement ok
|
||||
DROP TABLE IF EXISTS t
|
||||
|
||||
statement ok
|
||||
CREATE TABLE t(i INTEGER, j INTEGER)
|
||||
|
||||
statement ok
|
||||
INSERT INTO t SELECT 1,1 FROM RANGE(1024)
|
||||
|
||||
# Insert null
|
||||
statement ok
|
||||
INSERT INTO t VALUES(2,NULL)
|
||||
|
||||
statement ok
|
||||
BEGIN TRANSACTION
|
||||
|
||||
# Delete null locally
|
||||
statement ok
|
||||
DELETE FROM t WHERE i = 2
|
||||
|
||||
statement ok
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
|
||||
statement ok
|
||||
COMMIT
|
||||
|
||||
statement error
|
||||
INSERT INTO t VALUES(3, NULL)
|
||||
----
|
||||
|
||||
# NO null values
|
||||
query I
|
||||
SELECT COUNT(*) FROM t WHERE j IS NULL
|
||||
----
|
||||
0
|
||||
|
||||
mode unskip
|
||||
253
external/duckdb/test/sql/alter/alter_col/test_not_null_multi_tran.test
vendored
Normal file
253
external/duckdb/test/sql/alter/alter_col/test_not_null_multi_tran.test
vendored
Normal file
@@ -0,0 +1,253 @@
|
||||
# name: test/sql/alter/alter_col/test_not_null_multi_tran.test
|
||||
# description: Test Set/Drop NOT NULL in multiple transactions
|
||||
# group: [alter_col]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
# Scenario #1, tran1 set not null, tran2 not able to insert
|
||||
statement ok con1
|
||||
CREATE TABLE t(i INTEGER, j INTEGER)
|
||||
|
||||
statement ok con1
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok con1
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
|
||||
statement ok con2
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement error con2
|
||||
INSERT INTO t VALUES(7777, NULL)
|
||||
----
|
||||
|
||||
statement ok con1
|
||||
INSERT INTO t VALUES(7, 7)
|
||||
|
||||
statement ok con2
|
||||
ROLLBACK
|
||||
|
||||
statement ok con1
|
||||
COMMIT
|
||||
|
||||
query I con1
|
||||
SELECT i FROM t
|
||||
----
|
||||
7
|
||||
|
||||
# Scenario #2, tran1 set not null, tran2 failed to commit
|
||||
statement ok con1
|
||||
DROP TABLE IF EXISTS t
|
||||
|
||||
statement ok con1
|
||||
CREATE TABLE t(i INTEGER, j INTEGER)
|
||||
|
||||
statement ok con1
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok con2
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok con2
|
||||
INSERT INTO t VALUES(7777, NULL)
|
||||
|
||||
statement ok con1
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
|
||||
statement ok con1
|
||||
COMMIT
|
||||
|
||||
statement error con2
|
||||
COMMIT
|
||||
----
|
||||
|
||||
statement error con1
|
||||
INSERT INTO t VALUES(7777, NULL)
|
||||
----
|
||||
|
||||
query I con1
|
||||
SELECT COUNT(*) FROM t
|
||||
----
|
||||
0
|
||||
|
||||
# Scenario #3, cannot insert if one connection alter column
|
||||
statement ok con1
|
||||
DROP TABLE IF EXISTS t
|
||||
|
||||
statement ok con1
|
||||
CREATE TABLE t(i INTEGER, j INTEGER)
|
||||
|
||||
statement ok con1
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok con1
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
|
||||
statement ok con2
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement error con2
|
||||
INSERT INTO t VALUES(1, 1)
|
||||
----
|
||||
|
||||
statement ok con1
|
||||
COMMIT
|
||||
|
||||
statement ok con2
|
||||
ROLLBACK
|
||||
|
||||
query I con1
|
||||
SELECT count(*) from t
|
||||
----
|
||||
0
|
||||
|
||||
# For following tests:
|
||||
# begin t1 and begin t2
|
||||
# a1 = alter in t1;
|
||||
# c1 = commint t1;
|
||||
# i2 = insert in t1;
|
||||
# c2 = commit t2
|
||||
#
|
||||
# Scenario #4, a1+c1+i2+c2
|
||||
# i2 failed with following error:
|
||||
# Transaction conflict: adding entries to a table that has been altered!
|
||||
statement ok con1
|
||||
DROP TABLE IF EXISTS t
|
||||
|
||||
statement ok con1
|
||||
CREATE TABLE t(i INTEGER, j INTEGER)
|
||||
|
||||
statement ok con1
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok con2
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok con1
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
|
||||
statement ok con1
|
||||
COMMIT
|
||||
|
||||
statement error con2
|
||||
INSERT INTO t VALUES(1, NULL)
|
||||
----
|
||||
|
||||
statement ok con2
|
||||
ROLLBACK
|
||||
|
||||
query I con1
|
||||
SELECT count(*) from t
|
||||
----
|
||||
0
|
||||
|
||||
# Scenario #5, i2+a1+c1+c2
|
||||
# c2 failed with following error
|
||||
# Transaction conflict: adding entries to a table that has been altered!
|
||||
statement ok con1
|
||||
DROP TABLE IF EXISTS t
|
||||
|
||||
statement ok con1
|
||||
CREATE TABLE t(i INTEGER, j INTEGER)
|
||||
|
||||
statement ok con1
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok con2
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok con2
|
||||
INSERT INTO t VALUES(1, NULL)
|
||||
|
||||
statement ok con1
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
|
||||
statement ok con1
|
||||
COMMIT
|
||||
|
||||
#Failed to commit
|
||||
statement error con2
|
||||
COMMIT
|
||||
----
|
||||
|
||||
statement error con2
|
||||
INSERT INTO t VALUES(2, NULL)
|
||||
----
|
||||
|
||||
query I con1
|
||||
SELECT count(*) from t
|
||||
----
|
||||
0
|
||||
|
||||
# Scenario #6, i2+a1+c2+c1
|
||||
# c2 failed with following error
|
||||
# Transaction conflict: adding entries to a table that has been altered!
|
||||
statement ok con1
|
||||
DROP TABLE IF EXISTS t
|
||||
|
||||
statement ok con1
|
||||
CREATE TABLE t(i INTEGER, j INTEGER)
|
||||
|
||||
statement ok con1
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok con2
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok con2
|
||||
INSERT INTO t VALUES(1, NULL)
|
||||
|
||||
statement ok con1
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
|
||||
# Failed to commit
|
||||
statement error con2
|
||||
COMMIT
|
||||
----
|
||||
|
||||
statement ok con1
|
||||
COMMIT
|
||||
|
||||
# Failed to insert null
|
||||
statement error con2
|
||||
INSERT INTO t VALUES(2, NULL)
|
||||
----
|
||||
|
||||
query I con1
|
||||
SELECT count(*) from t
|
||||
----
|
||||
0
|
||||
|
||||
# Scenario #7, i2+c2+a1+c1
|
||||
# a1 should failed!
|
||||
statement ok con1
|
||||
DROP TABLE IF EXISTS t
|
||||
|
||||
statement ok con1
|
||||
CREATE TABLE t(i INTEGER, j INTEGER)
|
||||
|
||||
statement ok con1
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok con2
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok con2
|
||||
INSERT INTO t VALUES(1, NULL)
|
||||
|
||||
statement ok con2
|
||||
COMMIT
|
||||
|
||||
statement error con1
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
----
|
||||
|
||||
statement ok con1
|
||||
ROLLBACK
|
||||
|
||||
query I con1
|
||||
SELECT count(*) from t
|
||||
----
|
||||
1
|
||||
|
||||
156
external/duckdb/test/sql/alter/alter_col/test_set_not_null.test
vendored
Normal file
156
external/duckdb/test/sql/alter/alter_col/test_set_not_null.test
vendored
Normal file
@@ -0,0 +1,156 @@
|
||||
# name: test/sql/alter/alter_col/test_set_not_null.test
|
||||
# description: Test ALTER TABLE ALTER COLUMN column_name SET NOT NULL
|
||||
# group: [alter_col]
|
||||
|
||||
# Happy path
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
CREATE TABLE t(i INTEGER, j INTEGER)
|
||||
|
||||
statement ok
|
||||
INSERT INTO t VALUES (1, 1), (2, 2)
|
||||
|
||||
statement ok
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
|
||||
statement error
|
||||
INSERT INTO t VALUES (3, NULL)
|
||||
----
|
||||
|
||||
# SET again
|
||||
statement ok
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
|
||||
statement error
|
||||
INSERT INTO t VALUES (3, NULL)
|
||||
----
|
||||
|
||||
query II
|
||||
SELECT * FROM t
|
||||
----
|
||||
1 1
|
||||
2 2
|
||||
|
||||
# Large table
|
||||
statement ok
|
||||
INSERT INTO t SELECT 5,5 from range(65534)
|
||||
|
||||
statement ok
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
|
||||
statement error
|
||||
INSERT INTO t VALUES (6, NULL)
|
||||
----
|
||||
|
||||
query I
|
||||
SELECT COUNT(*) FROM t WHERE j IS NULL
|
||||
----
|
||||
0
|
||||
|
||||
# SET NOT NULL failed if contains null value
|
||||
statement ok
|
||||
DROP TABLE IF EXISTS t
|
||||
|
||||
statement ok
|
||||
CREATE TABLE t(i INTEGER, j INTEGER)
|
||||
|
||||
statement ok
|
||||
INSERT INTO t VALUES (1, 1), (2, 2), (3, null)
|
||||
|
||||
statement ok
|
||||
INSERT INTO t SELECT 4,4 FROM RANGE(65536)
|
||||
|
||||
statement error
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
----
|
||||
|
||||
statement ok
|
||||
INSERT INTO t VALUES (5, null)
|
||||
|
||||
query II
|
||||
SELECT * FROM t WHERE j IS NULL
|
||||
----
|
||||
3 NULL
|
||||
5 NULL
|
||||
|
||||
# Insert null before&after drop constraint
|
||||
statement ok
|
||||
DROP TABLE IF EXISTS t
|
||||
|
||||
statement ok
|
||||
CREATE TABLE t(i INTEGER, j INTEGER)
|
||||
|
||||
statement ok
|
||||
INSERT INTO t SELECT 1,1 FROM RANGE(65536)
|
||||
|
||||
# Set not null
|
||||
statement ok
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
|
||||
# Failed to insert before drop constraint
|
||||
statement error
|
||||
INSERT INTO t VALUES (2, null)
|
||||
----
|
||||
|
||||
# Drop not null
|
||||
statement ok
|
||||
ALTER TABLE t ALTER COLUMN j DROP NOT NULL
|
||||
|
||||
# Insert after drop constraint
|
||||
statement ok
|
||||
INSERT INTO t VALUES (3, null)
|
||||
|
||||
# Only 1 null
|
||||
query II
|
||||
SELECT * FROM t WHERE j IS NULL
|
||||
----
|
||||
3 NULL
|
||||
|
||||
# Basic test with generated column
|
||||
statement ok
|
||||
CREATE TABLE t0(c0 AS (1), c1 INT);
|
||||
|
||||
statement ok
|
||||
ALTER TABLE t0 ALTER c1 SET NOT NULL;
|
||||
|
||||
# Insert null before&after drop constraint with generated column
|
||||
statement ok
|
||||
DROP TABLE IF EXISTS t
|
||||
|
||||
statement ok
|
||||
CREATE TABLE t(i AS (1), j INTEGER)
|
||||
|
||||
statement ok
|
||||
INSERT INTO t SELECT 1 FROM RANGE(65536)
|
||||
|
||||
# Set not null
|
||||
statement error
|
||||
ALTER TABLE t ALTER COLUMN i SET NOT NULL
|
||||
----
|
||||
|
||||
# Set not null
|
||||
statement ok
|
||||
ALTER TABLE t ALTER COLUMN j SET NOT NULL
|
||||
|
||||
# Failed to insert before drop constraint
|
||||
statement error
|
||||
INSERT INTO t VALUES (null)
|
||||
----
|
||||
|
||||
# Drop not null
|
||||
statement ok
|
||||
ALTER TABLE t ALTER COLUMN j DROP NOT NULL
|
||||
|
||||
# Insert after drop constraint
|
||||
statement ok
|
||||
INSERT INTO t VALUES (null)
|
||||
|
||||
# Only 1 null
|
||||
query II
|
||||
SELECT * FROM t WHERE j IS NULL
|
||||
----
|
||||
1 NULL
|
||||
|
||||
Reference in New Issue
Block a user