Files
email-tracker/external/duckdb/test/sql/generated_columns/virtual/rowid.test
2025-10-24 19:21:19 -05:00

47 lines
999 B
SQL

# name: test/sql/generated_columns/virtual/rowid.test
# description: Create a generated column using the 'rowid' system column
# group: [virtual]
statement ok
PRAGMA enable_verification
statement ok
CREATE TABLE unit (price INTEGER, amount_sold INTEGER);
statement ok
INSERT INTO unit VALUES (5,4)
statement ok
INSERT INTO unit VALUES (4,5)
# Rowid as a system column is not supported
statement error
ALTER TABLE unit ADD COLUMN total_profit BIGINT GENERATED ALWAYS AS (price * rowid) VIRTUAL;
----
statement ok
ALTER TABLE unit ADD COLUMN rowid INTEGER;
# Cant create a generated column named 'rowid' that also tries to reference the 'rowid' system column
statement error
CREATE TABLE tbl (
price INTEGER,
rowid BIGINT GENERATED ALWAYS AS (rowid) VIRTUAL
);
----
# Reference a standard column named 'rowid'
statement ok
CREATE TABLE tbl (
rowid INTEGER,
index INTEGER GENERATED ALWAYS AS (rowid) VIRTUAL
)
statement ok
INSERT INTO tbl VALUES (5)
query I
SELECT index FROM tbl;
----
5