Changeset: cdcbd9c15670 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cdcbd9c15670 Modified Files: sql/server/rel_optimizer.c sql/test/BugTracker-2018/Tests/sqlitelogictest-cast-null-not-in.Bug-6605.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-cast-null-not-in.Bug-6605.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-mal-calc-undefined.Bug-6566.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-mal-calc-undefined.Bug-6566.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.stable.out sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.stable.out.int128 Branch: default Log Message:
Merge with Apr2019 diffs (113 lines): diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c --- a/sql/server/rel_optimizer.c +++ b/sql/server/rel_optimizer.c @@ -6133,7 +6133,7 @@ rel_push_project_up(int *changes, mvc *s for (n = rel->exps->h; n && !fnd; n = n->next) { sql_exp *e = n->data; - if (e->type != e_aggr && e->type != e_column) { + if (e->type != e_aggr && e->type != e_column && e->type != e_atom) { fnd = 1; } } diff --git a/sql/test/BugTracker-2018/Tests/sqlitelogictest-cast-null-not-in.Bug-6605.sql b/sql/test/BugTracker-2018/Tests/sqlitelogictest-cast-null-not-in.Bug-6605.sql --- a/sql/test/BugTracker-2018/Tests/sqlitelogictest-cast-null-not-in.Bug-6605.sql +++ b/sql/test/BugTracker-2018/Tests/sqlitelogictest-cast-null-not-in.Bug-6605.sql @@ -31,4 +31,6 @@ col2 - + 22, - - 21 ); SELECT DISTINCT * FROM tab2 AS cor0 WHERE CAST ( NULL AS INTEGER ) / col2 NOT IN ( 19 / col2 ); +SELECT * FROM tab1, tab0 AS cor0 WHERE NULL NOT IN ( cor0.col2 ); --6 columns in the output + ROLLBACK; diff --git a/sql/test/BugTracker-2018/Tests/sqlitelogictest-cast-null-not-in.Bug-6605.stable.out b/sql/test/BugTracker-2018/Tests/sqlitelogictest-cast-null-not-in.Bug-6605.stable.out --- a/sql/test/BugTracker-2018/Tests/sqlitelogictest-cast-null-not-in.Bug-6605.stable.out +++ b/sql/test/BugTracker-2018/Tests/sqlitelogictest-cast-null-not-in.Bug-6605.stable.out @@ -78,6 +78,11 @@ stdout of test 'sqlitelogictest-cast-nul % col0, col1, col2 # name % int, int, int # type % 1, 1, 1 # length +#SELECT * FROM tab1, tab0 AS cor0 WHERE NULL NOT IN ( cor0.col2 ); --6 columns in the output +% sys.tab1, sys.tab1, sys.tab1, sys.cor0, sys.cor0, sys.cor0 # table_name +% col0, col1, col2, col0, col1, col2 # name +% int, int, int, int, int, int # type +% 1, 1, 1, 1, 1, 1 # length #ROLLBACK; # 13:53:34 > diff --git a/sql/test/BugTracker-2018/Tests/sqlitelogictest-mal-calc-undefined.Bug-6566.sql b/sql/test/BugTracker-2018/Tests/sqlitelogictest-mal-calc-undefined.Bug-6566.sql --- a/sql/test/BugTracker-2018/Tests/sqlitelogictest-mal-calc-undefined.Bug-6566.sql +++ b/sql/test/BugTracker-2018/Tests/sqlitelogictest-mal-calc-undefined.Bug-6566.sql @@ -2,4 +2,5 @@ CREATE TABLE tab0(col0 INTEGER, col1 INT INSERT INTO tab0 VALUES(97,1,99), (15,81,47), (87,21,10); SELECT CAST ( - col0 - - - col0 * + CAST ( NULL AS INTEGER ) AS BIGINT ) FROM tab0; SELECT ALL - CAST ( col1 * - 16 * + CAST ( NULL AS INTEGER ) AS BIGINT ) FROM tab0 cor0; +SELECT ALL + CAST ( CAST ( NULL AS INTEGER ) / + COUNT ( DISTINCT - 55 ) * + MIN ( DISTINCT 0 ) AS BIGINT ) FROM tab0 AS cor0; -- NULL DROP TABLE tab0; diff --git a/sql/test/BugTracker-2018/Tests/sqlitelogictest-mal-calc-undefined.Bug-6566.stable.out b/sql/test/BugTracker-2018/Tests/sqlitelogictest-mal-calc-undefined.Bug-6566.stable.out --- a/sql/test/BugTracker-2018/Tests/sqlitelogictest-mal-calc-undefined.Bug-6566.stable.out +++ b/sql/test/BugTracker-2018/Tests/sqlitelogictest-mal-calc-undefined.Bug-6566.stable.out @@ -42,6 +42,12 @@ stdout of test 'sqlitelogictest-mal-calc [ NULL ] [ NULL ] [ NULL ] +#SELECT ALL + CAST ( CAST ( NULL AS INTEGER ) / + COUNT ( DISTINCT - 55 ) * + MIN ( DISTINCT 0 ) AS BIGINT ) FROM tab0 AS cor0; -- NULL +% .L6 # table_name +% L6 # name +% bigint # type +% 1 # length +[ NULL ] #DROP TABLE tab0; # 13:05:57 > diff --git a/sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.sql b/sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.sql --- a/sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.sql +++ b/sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.sql @@ -1,2 +1,7 @@ SELECT ALL - 70 + + - 89 - + ( SUM ( + CASE - NULLIF ( + 87, CASE CAST ( NULL AS INTEGER ) WHEN 13 / + ( 68 * - ( 64 ) ) THEN + 39 WHEN 70 * - 95 THEN 60 ELSE 15 + + 25 END * 5 ) WHEN + 36 THEN NULL WHEN 24 THEN NULL ELSE 66 END ) ) AS col2; +SELECT + - CAST ( 30 AS INTEGER ) + + CASE - 83 WHEN 22 THEN NULL WHEN - + MAX ( DISTINCT + ( + + 35 ) ) - - 48 +- CAST ( + 90 AS INTEGER ) THEN NULL ELSE + - 80 END AS col1, ( + - 13 ) + + CAST ( NULL AS INTEGER ) + - 76 + - + +CASE + + NULLIF ( - MAX ( + NULLIF ( + 43, + 25 + + - CAST ( NULL AS INTEGER ) ) ), - - COUNT ( * ) ) WHEN 12 + + 36 * +- + CAST ( NULL AS INTEGER ) THEN NULL WHEN + 34 * + 10 THEN MIN ( DISTINCT + 68 ) / 10 WHEN 31 - COUNT ( * ) / + 16 +THEN + 12 ELSE NULL END; -- 110, NULL diff --git a/sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.stable.out b/sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.stable.out --- a/sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.stable.out +++ b/sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.stable.out @@ -30,6 +30,16 @@ stdout of test 'sqlitelogictest-select-n % bigint # type % 4 # length [ -225 ] +#SELECT + - CAST ( 30 AS INTEGER ) + + CASE - 83 WHEN 22 THEN NULL WHEN - + MAX ( DISTINCT + ( + + 35 ) ) - - 48 +#- CAST ( + 90 AS INTEGER ) THEN NULL ELSE + - 80 END AS col1, ( + - 13 ) + + CAST ( NULL AS INTEGER ) + - 76 + - + +#CASE + + NULLIF ( - MAX ( + NULLIF ( + 43, + 25 + + - CAST ( NULL AS INTEGER ) ) ), - - COUNT ( * ) ) WHEN 12 + + 36 * +#- + CAST ( NULL AS INTEGER ) THEN NULL WHEN + 34 * + 10 THEN MIN ( DISTINCT + 68 ) / 10 WHEN 31 - COUNT ( * ) / + 16 +#THEN + 12 ELSE NULL END; +% .L6, .L25 # table_name +% col1, L25 # name +% bigint, bigint # type +% 4, 1 # length +[ -110, NULL ] # 09:56:14 > # 09:56:14 > "Done." diff --git a/sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.stable.out.int128 b/sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.stable.out.int128 --- a/sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.stable.out.int128 +++ b/sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.stable.out.int128 @@ -30,6 +30,16 @@ stdout of test 'sqlitelogictest-select-n % hugeint # type % 4 # length [ -225 ] +#SELECT + - CAST ( 30 AS INTEGER ) + + CASE - 83 WHEN 22 THEN NULL WHEN - + MAX ( DISTINCT + ( + + 35 ) ) - - 48 +#- CAST ( + 90 AS INTEGER ) THEN NULL ELSE + - 80 END AS col1, ( + - 13 ) + + CAST ( NULL AS INTEGER ) + - 76 + - + +#CASE + + NULLIF ( - MAX ( + NULLIF ( + 43, + 25 + + - CAST ( NULL AS INTEGER ) ) ), - - COUNT ( * ) ) WHEN 12 + + 36 * +#- + CAST ( NULL AS INTEGER ) THEN NULL WHEN + 34 * + 10 THEN MIN ( DISTINCT + 68 ) / 10 WHEN 31 - COUNT ( * ) / + 16 +#THEN + 12 ELSE NULL END; +% .L6, .L25 # table_name +% col1, L25 # name +% bigint, hugeint # type +% 4, 1 # length +[ -110, NULL ] # 09:56:14 > # 09:56:14 > "Done." _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list