test(join): add test for duplicate columns in SELECT *
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled

Verify that JOIN with overlapping column names preserves
both left (bare) and right (qualified) values.
This commit is contained in:
2026-05-21 09:44:32 +03:00
parent d4dc433e48
commit 072e7a5d13
+12
View File
@@ -107,3 +107,15 @@ suite "JOIN execution":
let r = execSql(ctx,
"SELECT u.name, x.total FROM users u CROSS JOIN LATERAL (SELECT o.total FROM orders o WHERE o.user_id = u.id) AS x")
check r.rows.len == 2 # Alice has 2 orders, Bob has 0
test "SELECT * with duplicate column names preserves both sides":
let r = execSql(ctx, "SELECT * FROM users u JOIN orders o ON u.id = o.user_id")
check r.rows.len == 2
# Both tables have 'id' — left value should be accessible bare,
# right value should be accessible via alias.
check r.rows[0]["id"] == "1" # users.id (left side wins bare name)
check r.rows[0]["o.id"] == "10" # orders.id (qualified)
check r.rows[0]["name"] == "Alice"
check r.rows[0]["total"] == "99.5"
check "o.id" in r.columns
check "u.id" notin r.columns # left id stays bare, not duplicated as u.id