Changeset: bb7e14d6fc1e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/bb7e14d6fc1e
Modified Files:
sql/server/rel_dump.c
sql/test/SQLancer/Tests/sqlancer19.SQL.py
Branch: Jul2021
Log Message:
Propagate alias to the right expression
diffs (39 lines):
diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c
--- a/sql/server/rel_dump.c
+++ b/sql/server/rel_dump.c
@@ -1399,8 +1399,8 @@ exp_read(mvc *sql, sql_rel *lrel, sql_re
sql_exp *ne = exp_compare2(sql->sa, e->l, exp,
e->r, compare2range(swap_compare((comp_type)f), e->flag), sym);
if (is_anti(exp))
set_anti(ne);
- if (exp_name(e)) /* propgate a possible alias
already parsed */
- exp_prop_alias(sql->sa, exp, e);
+ if (exp_name(e)) /* propagate a possible alias
already parsed */
+ exp_prop_alias(sql->sa, ne, e);
exp_setalias(e, NULL, NULL);
exp = ne;
} else {
@@ -1409,8 +1409,8 @@ exp_read(mvc *sql, sql_rel *lrel, sql_re
set_anti(ne);
if (is_semantics(exp))
set_semantics(ne);
- if (exp_name(e)) /* propgate a possible alias
already parsed */
- exp_prop_alias(sql->sa, exp, e);
+ if (exp_name(e)) /* propagate a possible alias
already parsed */
+ exp_prop_alias(sql->sa, ne, e);
exp_setalias(e, NULL, NULL);
exp = ne;
}
diff --git a/sql/test/SQLancer/Tests/sqlancer19.SQL.py
b/sql/test/SQLancer/Tests/sqlancer19.SQL.py
--- a/sql/test/SQLancer/Tests/sqlancer19.SQL.py
+++ b/sql/test/SQLancer/Tests/sqlancer19.SQL.py
@@ -30,6 +30,10 @@ with SQLTestCase() as cli:
cli.execute('SELECT c0 BETWEEN 10 AND 11 FROM
rt3;').assertSucceeded().assertDataResultMatch([(False,),(False,),(False,),(False,),(False,),(False,)])
cli.execute('SELECT c0 > 10 as myt, 4 BETWEEN 4 AND 4, c0 = 10 as myp, c0
BETWEEN 1 AND 1 as myp2 FROM rt3 where rt3.c0 = 1;') \
.assertSucceeded().assertDataResultMatch([(False,True,False,True)])
+ cli.execute('SELECT c0 BETWEEN 2 AND 5 AS myproj FROM rt3 ORDER BY
myproj;') \
+
.assertSucceeded().assertDataResultMatch([(False,),(False,),(True,),(True,),(True,),(True,)])
+ cli.execute('SELECT c0 > 4 AS myproj FROM rt3 ORDER BY myproj;') \
+
.assertSucceeded().assertDataResultMatch([(False,),(False,),(False,),(True,),(True,),(True,)])
cli.execute('MERGE INTO t0 USING (SELECT 1 FROM rt1) AS mergejoined(c0) ON
TRUE WHEN NOT MATCHED THEN INSERT (c0) VALUES (INTERVAL \'5\' SECOND);') \
.assertSucceeded().assertRowCount(0)
cli.execute("ROLLBACK;")
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list