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

Reply via email to