Files
email-tracker/external/duckdb/test/sql/binder/test_alias.test
2025-10-24 19:21:19 -05:00

76 lines
1.5 KiB
SQL

# name: test/sql/binder/test_alias.test
# description: Test that aliases work properly in renaming columns
# group: [binder]
statement ok
SET default_null_order='nulls_first';
statement ok
PRAGMA enable_verification
statement ok
CREATE TABLE integers(i INTEGER);
statement ok
INSERT INTO integers VALUES (1), (2), (3), (NULL)
query IR
SELECT i % 2 AS p, SUM(i) AS sum_i FROM integers GROUP BY p ORDER BY 1
----
NULL NULL
0 2.000000
1 4.000000
query TT
SELECT alias(i % 2) AS p, alias(SUM(i)) AS sum_i FROM integers GROUP BY p ORDER BY 1
----
p sum_i
query II
SELECT i + 1 + 1 + 1 AS k, abs(i) AS l FROM integers WHERE i=1 ORDER BY 1
----
4 1
query TT
SELECT alias(i + 1 + 1 + 1) AS k, alias(abs(i)) AS l FROM integers WHERE i=1 ORDER BY 1
----
k l
query TTTT
SELECT alias(i) AS k, alias(i IN (1)) AS l, alias(i >= 10) AS m, alias(1=0) AS n FROM integers WHERE i=1 ORDER BY 1
----
k l m n
query TT
SELECT alias(CASE WHEN i=1 THEN 19 ELSE 0 END) AS k, alias(i::VARCHAR) AS l FROM integers WHERE i=1 ORDER BY 1
----
k l
statement ok
CREATE TABLE test (a INTEGER, b INTEGER)
statement ok
INSERT INTO test VALUES (42, 10), (43, 100);
# check column names for simple projections and aliases
query IIII
SELECT a, b, a * 2 AS c, b * (a * 2) AS d FROM test ORDER BY a
----
42 10 84 840
43 100 86 8600
query TTTT
SELECT alias(a), alias(b), alias(a * 2) AS c, alias(b * (a * 2)) AS d FROM test ORDER BY a
----
a b c d
a b c d
# test nested alias in where clause
query IIII
select i as b, b as c, c as d, d as e from integers where e = 3;
----
3 3 3 3