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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list