should be it
This commit is contained in:
50
external/duckdb/test/sql/generated_columns/virtual/check.test
vendored
Normal file
50
external/duckdb/test/sql/generated_columns/virtual/check.test
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
# name: test/sql/generated_columns/virtual/check.test
|
||||
# description: Test generated columns with the CHECK constraint
|
||||
# group: [virtual]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
#Check constraint involving a generated column is not supported
|
||||
|
||||
# Using a CHECK constraint that doesnt involve the generated column itself is fine
|
||||
statement ok
|
||||
CREATE TABLE unit (
|
||||
price INTEGER,
|
||||
amount_sold AS (price) CHECK (price > 5),
|
||||
);
|
||||
|
||||
# When it references a generated column, it fails
|
||||
statement error
|
||||
CREATE TABLE tbl (
|
||||
price INTEGER,
|
||||
amount_sold AS (price) CHECK (amount_sold > 5)
|
||||
);
|
||||
----
|
||||
<REGEX>:.*Binder Error.*Constraints on generated columns.*
|
||||
|
||||
# Also when used in this way
|
||||
statement error
|
||||
CREATE TABLE tbl (
|
||||
price INTEGER,
|
||||
amount_sold AS (price),
|
||||
CHECK (amount_sold > price)
|
||||
);
|
||||
----
|
||||
<REGEX>:.*Binder Error.*Constraints on generated columns.*
|
||||
|
||||
statement ok
|
||||
CREATE TABLE chk (
|
||||
g1 AS (x),
|
||||
g2 AS (x),
|
||||
x INTEGER,
|
||||
CHECK (x > 5)
|
||||
);
|
||||
|
||||
statement ok
|
||||
INSERT INTO chk VALUES (6);
|
||||
|
||||
statement error
|
||||
INSERT INTO chk VALUES (3);
|
||||
----
|
||||
<REGEX>:.*Constraint Error.*constraint failed.*
|
||||
Reference in New Issue
Block a user