Changeset: 045d372a3f76 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=045d372a3f76 Modified Files: sql/backends/monet5/sql_statement.c sql/test/SQLancer/Tests/sqlancer09.sql Branch: Oct2020 Log Message:
Real fix for SQLancer bug, add missing 'key' property set for statements generated from comparisons, as they are now allowed in projections diffs (39 lines): diff --git a/sql/backends/monet5/sql_statement.c b/sql/backends/monet5/sql_statement.c --- a/sql/backends/monet5/sql_statement.c +++ b/sql/backends/monet5/sql_statement.c @@ -1406,6 +1406,7 @@ stmt_genselect(backend *be, stmt *lops, s->op1 = lops; s->op2 = rops; s->op3 = sub; + s->key = lops->nrcols == 0 && rops->nrcols == 0; s->flag = cmp_filter; s->nrcols = lops->nrcols; s->nr = getDestVar(q); @@ -1570,6 +1571,7 @@ stmt_uselect(backend *be, stmt *op1, stm s->op2 = op2; s->op3 = sub; s->flag = cmptype; + s->key = op1->nrcols == 0 && op2->nrcols == 0; s->nrcols = op1->nrcols; s->nr = getDestVar(q); s->q = q; @@ -1823,6 +1825,7 @@ stmt_uselect2(backend *be, stmt *op1, st s->op4.stval = sub; s->flag = cmp; s->nrcols = op1->nrcols; + s->key = op1->nrcols == 0 && op2->nrcols == 0 && op3->nrcols == 0; s->nr = getDestVar(q); s->q = q; s->cand = sub; diff --git a/sql/test/SQLancer/Tests/sqlancer09.sql b/sql/test/SQLancer/Tests/sqlancer09.sql --- a/sql/test/SQLancer/Tests/sqlancer09.sql +++ b/sql/test/SQLancer/Tests/sqlancer09.sql @@ -90,6 +90,8 @@ WHEN TRUE THEN 1702709680 WHEN r'TRUE' T WHEN (UUID 'baF49A5B-1862-19aa-E6F8-b3C5A7F4b1FF') BETWEEN SYMMETRIC (UUID '63A9aBBe-87b1-683a-2c68-eCd5cC7FE7E9') AND (UUID '82eb84EF-dF3D-a45e-f92b-E42BdfFEB1B9') THEN - (1129823324) END) WHEN MATCHED THEN DELETE; +create or replace view v0(vc0) as (values (1 between 1 and 2)); + SELECT 1 FROM (SELECT 1 FROM v0) AS v0(v0) inner join t1 ON 1 BETWEEN 2 AND 1; -- Disable rel_simplify_ifthenelse optimizer SELECT 1 FROM (SELECT 1 FROM v0) AS v0(v0) inner join t1 ON 1 BETWEEN 2 AND (CASE WHEN 1 BETWEEN 2 AND 3 THEN 2 END); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list