KipData / FnckSQL

SQL as a Function for Rust
Apache License 2.0
567 stars 48 forks source link

Fix: the fields output by Using are not determined by JoinType #205

Open KKould opened 7 months ago

KKould commented 7 months ago

Bug Report

statement ok
CREATE TABLE onecolumn (id INT PRIMARY KEY, x INT NULL)

statement ok
CREATE TABLE empty (e_id INT PRIMARY KEY, x INT)

statement ok
INSERT INTO onecolumn(id, x) VALUES (0, 44), (1, NULL), (2, 42)

# FIXME: The fields output by Using are determined by JoinType.
query I
SELECT * FROM onecolumn AS a LEFT OUTER JOIN empty AS b USING(x) ORDER BY x
----
null null 2
null 42 0
null 44 1
KKould commented 3 months ago

Since using will generate column with the same name, only the column that are used once should be returned at this time, and the returned column should be selected from the left table or the right table according to JoinType.