Changeset: b4de79f8108f for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b4de79f8108f
Modified Files:
        monetdb5/optimizer/opt_mergetable.c
        sql/server/rel_exp.c
        sql/server/rel_exp.h
        sql/server/rel_optimizer.c
        sql/test/BugTracker-2010/Tests/limit_in_prepare.Bug-2552.stable.out
        sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.err
        sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.out
        
sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.err
        
sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out
        sql/test/BugTracker-2017/Tests/nestedoperators.Bug-6292.stable.err
Branch: default
Log Message:

Merge with Jul2017 branch.


diffs (truncated from 304 to 300 lines):

diff --git a/monetdb5/optimizer/opt_mergetable.c 
b/monetdb5/optimizer/opt_mergetable.c
--- a/monetdb5/optimizer/opt_mergetable.c
+++ b/monetdb5/optimizer/opt_mergetable.c
@@ -112,8 +112,13 @@ mat_add_var(matlist_t *ml, InstrPtr q, I
        dst->pm = parentmat;
        dst->packed = 0;
        dst->pushed = pushed;
-       if (ml->vars[var] < 0)
+       if (ml->vars[var] < 0 || dst->type != mat_ext) {
+               if (ml->vars[var] >= 0) {
+                       ml->v[ml->vars[var]].packed = 1;
+                       ml->v[ml->vars[var]].pushed = 1;
+               }
                ml->vars[var] = ml->top;
+       }
        ++ml->top;
 }
 
diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -1300,6 +1300,19 @@ exp_is_zero(mvc *sql, sql_exp *e)
 }
 
 int
+exp_is_not_null(mvc *sql, sql_exp *e) 
+{
+       if (e->type == e_atom) {
+               if (e->l) {
+                       return !(atom_null(e->l));
+               } else if(sql->emode == m_normal && sql->argc > e->flag && 
EC_COMPUTE(exp_subtype(e)->type->eclass)) {
+                       return !atom_null(sql->args[e->flag]);
+               }
+       }
+       return 0;
+}
+
+int
 exp_is_atom( sql_exp *e )
 {
        switch (e->type) {
diff --git a/sql/server/rel_exp.h b/sql/server/rel_exp.h
--- a/sql/server/rel_exp.h
+++ b/sql/server/rel_exp.h
@@ -119,6 +119,7 @@ extern int exp_is_correlation(sql_exp *e
 extern int exp_is_join_exp(sql_exp *e);
 extern int exp_is_atom(sql_exp *e);
 extern int exp_is_zero(mvc *sql, sql_exp *e);
+extern int exp_is_not_null(mvc *sql, sql_exp *e);
 extern int exps_are_atoms(list *exps);
 extern int exp_has_func(sql_exp *e);
 extern int exp_unsafe(sql_exp *e);
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
@@ -2695,13 +2695,13 @@ exp_simplify_math( mvc *sql, sql_exp *e,
                        sql_exp *le = l->h->data;
                        sql_exp *re = l->h->next->data;
                        /* 0*a = 0 */
-                       if (exp_is_atom(le) && exp_is_zero(sql, le)) {
+                       if (exp_is_atom(le) && exp_is_zero(sql, le) && 
exp_is_not_null(sql, re)) {
                                (*changes)++;
                                exp_setname(sql->sa, le, exp_relname(e), 
exp_name(e));
                                return le;
                        }
                        /* a*0 = 0 */
-                       if (exp_is_atom(re) && exp_is_zero(sql, re)) {
+                       if (exp_is_atom(re) && exp_is_zero(sql, re) && 
exp_is_not_null(sql, le)) {
                                (*changes)++;
                                exp_setname(sql->sa, re, exp_relname(e), 
exp_name(e));
                                return re;
diff --git 
a/sql/test/BugTracker-2010/Tests/limit_in_prepare.Bug-2552.stable.out 
b/sql/test/BugTracker-2010/Tests/limit_in_prepare.Bug-2552.stable.out
--- a/sql/test/BugTracker-2010/Tests/limit_in_prepare.Bug-2552.stable.out
+++ b/sql/test/BugTracker-2010/Tests/limit_in_prepare.Bug-2552.stable.out
@@ -108,7 +108,7 @@ Ready.
 % sys.tbls,    sys.tbls,       sys.tbls,       sys.tbls,       sys.tbls,       
sys.tbls,       sys.tbls,       sys.tbls # table_name
 % name,        schema_id,      query,  type,   system, commit_action,  
readonly,       temporary # name
 % varchar,     int,    varchar,        smallint,       boolean,        
smallint,       boolean,        smallint # type
-% 12,  4,      379,    1,      5,      1,      5,      1 # length
+% 12,  4,      169,    1,      5,      1,      5,      1 # length
 [ "schemas",   2000,   NULL,   0,      true,   0,      false,  0       ]
 [ "types",     2000,   NULL,   0,      true,   0,      false,  0       ]
 [ "functions", 2000,   NULL,   0,      true,   0,      false,  0       ]
diff --git a/sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.err 
b/sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.err
--- a/sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.err
+++ b/sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.err
@@ -1,11 +1,11 @@
 stderr of test 'crash-dce.Bug-6330` in directory 'sql/test/BugTracker-2017` 
itself:
 
 
-# 13:53:44 >  
-# 13:53:44 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=30094" "--set" 
"mapi_usock=/var/tmp/mtest-30656/.s.monetdb.30094" "--set" "monet_prompt=" 
"--forcemito" 
"--dbpath=/export/scratch2/dinther/INSTALL/var/MonetDB/mTests_sql_test_BugTracker-2017"
 "--set" "embedded_r=yes" "--set" "embedded_py=true"
-# 13:53:44 >  
+# 19:31:40 >  
+# 19:31:40 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=33270" "--set" 
"mapi_usock=/var/tmp/mtest-22559/.s.monetdb.33270" "--set" "monet_prompt=" 
"--forcemito" 
"--dbpath=/home/niels/scratch/rc-monetdb/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2017"
+# 19:31:40 >  
 
-# builtin opt  gdk_dbpath = 
/export/scratch2/dinther/INSTALL/var/monetdb5/dbfarm/demo
+# builtin opt  gdk_dbpath = 
/home/niels/scratch/rc-monetdb/Linux-x86_64/var/monetdb5/dbfarm/demo
 # builtin opt  gdk_debug = 0
 # builtin opt  gdk_vmtrim = no
 # builtin opt  monet_prompt = >
@@ -17,24 +17,18 @@ stderr of test 'crash-dce.Bug-6330` in d
 # builtin opt  sql_debug = 0
 # cmdline opt  gdk_nr_threads = 0
 # cmdline opt  mapi_open = true
-# cmdline opt  mapi_port = 30094
-# cmdline opt  mapi_usock = /var/tmp/mtest-30656/.s.monetdb.30094
+# cmdline opt  mapi_port = 33270
+# cmdline opt  mapi_usock = /var/tmp/mtest-22559/.s.monetdb.33270
 # cmdline opt  monet_prompt = 
-# cmdline opt  gdk_dbpath = 
/export/scratch2/dinther/INSTALL/var/MonetDB/mTests_sql_test_BugTracker-2017
-# cmdline opt  embedded_r = yes
-# cmdline opt  embedded_py = true
+# cmdline opt  gdk_dbpath = 
/home/niels/scratch/rc-monetdb/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2017
 # cmdline opt  gdk_debug = 536870922
 
-# 13:53:45 >  
-# 13:53:45 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-30656" "--port=30094"
-# 13:53:45 >  
-
-MAPI  = (monetdb) /var/tmp/mtest-30656/.s.monetdb.30094
-QUERY = SELECT 45 - - CASE + + 70 WHEN COUNT ( * ) + SUM ( DISTINCT 91 ) + MIN 
( DISTINCT 41 ) / 65 THEN + 98 END * + - 0 - - COUNT ( * ) AS col0;
-ERROR = !TypeException:user.main[12]:'calc.-' undefined in:     X_1201:sht := 
calc.-(X_1200:bte);
+# 19:31:40 >  
+# 19:31:40 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-22559" "--port=33270"
+# 19:31:40 >  
 
 
-# 13:53:46 >  
-# 13:53:46 >  "Done."
-# 13:53:46 >  
+# 19:31:40 >  
+# 19:31:40 >  "Done."
+# 19:31:40 >  
 
diff --git a/sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.out 
b/sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.out
--- a/sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.out
+++ b/sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.out
@@ -1,79 +1,43 @@
 stdout of test 'crash-dce.Bug-6330` in directory 'sql/test/BugTracker-2017` 
itself:
 
 
-# 13:53:44 >  
-# 13:53:44 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=30094" "--set" 
"mapi_usock=/var/tmp/mtest-30656/.s.monetdb.30094" "--set" "monet_prompt=" 
"--forcemito" 
"--dbpath=/export/scratch2/dinther/INSTALL/var/MonetDB/mTests_sql_test_BugTracker-2017"
 "--set" "embedded_r=yes" "--set" "embedded_py=true"
-# 13:53:44 >  
+# 19:31:40 >  
+# 19:31:40 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=33270" "--set" 
"mapi_usock=/var/tmp/mtest-22559/.s.monetdb.33270" "--set" "monet_prompt=" 
"--forcemito" 
"--dbpath=/home/niels/scratch/rc-monetdb/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2017"
+# 19:31:40 >  
 
-# MonetDB 5 server v11.25.24
+# MonetDB 5 server v11.27.0
 # This is an unreleased version
-# Serving database 'mTests_sql_test_BugTracker-2017', using 8 threads
+# Serving database 'mTests_sql_test_BugTracker-2017', using 4 threads
 # Compiled for x86_64-unknown-linux-gnu/64bit with 128bit integers
-# Found 15.588 GiB available main-memory.
+# Found 7.331 GiB available main-memory.
 # Copyright (c) 1993-July 2008 CWI.
 # Copyright (c) August 2008-2017 MonetDB B.V., all rights reserved
-# Visit http://www.monetdb.org/ for further information
-# Listening for connection requests on mapi:monetdb://toulouse.da.cwi.nl:30094/
-# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-30656/.s.monetdb.30094
+# Visit https://www.monetdb.org/ for further information
+# Listening for connection requests on mapi:monetdb://localhost.nes.nl:33270/
+# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-22559/.s.monetdb.33270
 # MonetDB/GIS module loaded
 # MonetDB/SQL module loaded
-# MonetDB/Python module loaded
-# MonetDB/R   module loaded
 
 Ready.
-# SQL catalog created, loading sql scripts once
-# loading sql script: 09_like.sql
-# loading sql script: 10_math.sql
-# loading sql script: 11_times.sql
-# loading sql script: 12_url.sql
-# loading sql script: 13_date.sql
-# loading sql script: 14_inet.sql
-# loading sql script: 15_querylog.sql
-# loading sql script: 16_tracelog.sql
-# loading sql script: 17_temporal.sql
-# loading sql script: 18_index.sql
-# loading sql script: 20_vacuum.sql
-# loading sql script: 21_dependency_functions.sql
-# loading sql script: 22_clients.sql
-# loading sql script: 23_skyserver.sql
-# loading sql script: 25_debug.sql
-# loading sql script: 26_sysmon.sql
-# loading sql script: 27_rejects.sql
-# loading sql script: 39_analytics.sql
-# loading sql script: 39_analytics_hge.sql
-# loading sql script: 40_geom.sql
-# loading sql script: 40_json.sql
-# loading sql script: 40_json_hge.sql
-# loading sql script: 41_md5sum.sql
-# loading sql script: 45_uuid.sql
-# loading sql script: 46_gsl.sql
-# loading sql script: 46_profiler.sql
-# loading sql script: 51_sys_schema_extension.sql
-# loading sql script: 72_fits.sql
-# loading sql script: 74_netcdf.sql
-# loading sql script: 75_lidar.sql
-# loading sql script: 75_shp.sql
-# loading sql script: 75_storagemodel.sql
-# loading sql script: 80_statistics.sql
-# loading sql script: 80_udf.sql
-# loading sql script: 80_udf_hge.sql
-# loading sql script: 85_bam.sql
-# loading sql script: 90_generator.sql
-# loading sql script: 90_generator_hge.sql
-# loading sql script: 99_system.sql
 
-# 13:53:45 >  
-# 13:53:45 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-30656" "--port=30094"
-# 13:53:45 >  
+# 19:31:40 >  
+# 19:31:40 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-22559" "--port=33270"
+# 19:31:40 >  
 
+#SELECT 45 - - CASE + + 70 WHEN COUNT ( * ) + SUM ( DISTINCT 91 ) + MIN ( 
DISTINCT 41 ) / 65 THEN + 98 END * + - 0 - - COUNT ( * ) AS col0;
+% .L7 # table_name
+% col0 # name
+% hugeint # type
+% 1 # length
+[ NULL ]
 #SELECT 45 - CASE + + 70 WHEN COUNT ( * ) + SUM ( DISTINCT 91 ) + MIN ( 
DISTINCT 41 ) / 65 THEN + 98 END * + - 0 - - COUNT ( * ) AS col0;
 % .L7 # table_name
 % col0 # name
 % hugeint # type
-% 2 # length
-[ 46   ]
+% 1 # length
+[ NULL ]
 
-# 13:53:46 >  
-# 13:53:46 >  "Done."
-# 13:53:46 >  
+# 19:31:40 >  
+# 19:31:40 >  "Done."
+# 19:31:40 >  
 
diff --git 
a/sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.err
 
b/sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.err
--- 
a/sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.err
+++ 
b/sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.err
@@ -29,9 +29,6 @@ stderr of test 'crash-select_after_MAL_e
 # 14:22:38 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-11002" "--port=36959"
 # 14:22:38 >  
 
-MAPI  = (monetdb) /var/tmp/mtest-11002/.s.monetdb.36959
-QUERY = SELECT DISTINCT col1 * + + col1 + + col2 * 0 / + - CAST ( + - col0 AS 
INTEGER ) AS col1 FROM tab0 cor0;
-ERROR = !TypeException:user.main[19]:'bat.append' undefined in:     
bat.append(X_1274:bat[:lng],X_1280:bte);
 
 
 # 14:22:39 >  
diff --git 
a/sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out
 
b/sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out
--- 
a/sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out
+++ 
b/sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out
@@ -69,11 +69,14 @@ Ready.
 # 14:22:38 >  
 
 #CREATE TABLE tab0(col0 INTEGER, col1 INTEGER, col2 INTEGER);
+#SELECT DISTINCT col1 * + + col1 + + col2 * 0 / + - CAST ( + - col0 AS INTEGER 
) AS col1 FROM tab0 cor0;
+% sys.L3 # table_name
+% col1 # name
+% hugeint # type
+% 1 # length
 #SELECT ALL + 93 + col0 FROM tab0 AS cor0;
-% sys. # table_name
-# sys.L2 # table_name
-% L # name
-# L2 # name
+% sys.L2 # table_name
+% L2 # name
 % bigint # type
 % 1 # length
 #DROP TABLE tab0;
diff --git a/sql/test/BugTracker-2017/Tests/nestedoperators.Bug-6292.stable.err 
b/sql/test/BugTracker-2017/Tests/nestedoperators.Bug-6292.stable.err
--- a/sql/test/BugTracker-2017/Tests/nestedoperators.Bug-6292.stable.err
+++ b/sql/test/BugTracker-2017/Tests/nestedoperators.Bug-6292.stable.err
@@ -29,23 +29,6 @@ stderr of test 'nestedoperators.Bug-6292
 # 15:14:18 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-18530" "--port=30197"
 # 15:14:18 >  
 
-#~ MAPI  = (monetdb) /var/tmp/mtest-32632/.s.monetdb.36482
-QUERY = CREATE FUNCTION rooms_derivative( stride bigint)
-        RETURNS TABLE( 
-            time timestamp,
-            room string,
-            level integer,
-            temp double)
-        BEGIN
-           RETURN
-                   WITH bounds(first, last, period) 
-                        AS (SELECT min(time) AS mintime, max(time) as maxtime, 
epoch(time)/60 AS period FROM rooms GROUP BY period) 
-                        SELECT r2.time, r2.room, r2.level, (r2.temp - 
r1.temp)/ (epoch(bounds.last) - epoch(bounds.first)) FROM bounds, rooms r1, 
rooms r2
-                   WHERE r1.time = bounds.first and r2.time = bounds.last and 
r1.room = r2.room and r1.level = r2.level;
-ERROR = !SELECT: too many nested operators
-#~ MAPI  = (monetdb) /var/tmp/mtest-32632/.s.monetdb.36482
-QUERY = DROP FUNCTION rooms_derivative;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to