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