Changeset: 7c2cd5b6f4bf for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7c2cd5b6f4bf Added Files: sql/test/BugTracker-2018/Tests/sqlitelogictest-count-coalesce-nullif.Bug-6586.stable.err sql/test/BugTracker-2018/Tests/sqlitelogictest-count-coalesce-nullif.Bug-6586.stable.out Modified Files: sql/server/rel_optimizer.c Branch: default Log Message:
fixes for bug 6586 (also fixed div by zero problems) diffs (110 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 @@ -7063,7 +7063,7 @@ add_exps_too_project(mvc *sql, list *exp for(n=exps->h; n; n = n->next) { sql_exp *e = n->data; - if (/*!exp_is_atom(e) &&*/ e->type != e_column) + if (e->type != e_column) n->data = add_exp_too_project(sql, e, rel); } } @@ -7080,8 +7080,13 @@ split_exp(mvc *sql, sql_exp *e, sql_rel case e_aggr: case e_func: if (!is_analytic(e) && !exp_has_sideeffect(e)) { - split_exps(sql, e->l, rel); - add_exps_too_project(sql, e->l, rel); + sql_subfunc *f = e->f; + if (e->type == e_func && !f->func->s && !strcmp(f->func->base.name, "ifthenelse")) { + return e; + } else { + split_exps(sql, e->l, rel); + add_exps_too_project(sql, e->l, rel); + } } return e; case e_cmp: diff --git a/sql/test/BugTracker-2018/Tests/sqlitelogictest-count-coalesce-nullif.Bug-6586.stable.err b/sql/test/BugTracker-2018/Tests/sqlitelogictest-count-coalesce-nullif.Bug-6586.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2018/Tests/sqlitelogictest-count-coalesce-nullif.Bug-6586.stable.err @@ -0,0 +1,35 @@ +stderr of test 'sqlitelogictest-count-coalesce-nullif.Bug-6586` in directory 'sql/test/BugTracker-2018` itself: + + +# 15:44:28 > +# 15:44:28 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=38111" "--set" "mapi_usock=/var/tmp/mtest-13646/.s.monetdb.38111" "--set" "monet_prompt=" "--forcemito" "--dbpath=/home/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2018" "--set" "embedded_c=true" +# 15:44:28 > + +# builtin opt gdk_dbpath = /home/niels/scratch/rc-clean/Linux-x86_64/var/monetdb5/dbfarm/demo +# builtin opt gdk_debug = 0 +# builtin opt gdk_vmtrim = no +# builtin opt monet_prompt = > +# builtin opt monet_daemon = no +# builtin opt mapi_port = 50000 +# builtin opt mapi_open = false +# builtin opt mapi_autosense = false +# builtin opt sql_optimizer = default_pipe +# builtin opt sql_debug = 0 +# cmdline opt gdk_nr_threads = 0 +# cmdline opt mapi_open = true +# cmdline opt mapi_port = 38111 +# cmdline opt mapi_usock = /var/tmp/mtest-13646/.s.monetdb.38111 +# cmdline opt monet_prompt = +# cmdline opt gdk_dbpath = /home/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2018 +# cmdline opt embedded_c = true +# cmdline opt gdk_debug = 553648138 + +# 15:44:28 > +# 15:44:28 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-13646" "--port=38111" +# 15:44:28 > + + +# 15:44:28 > +# 15:44:28 > "Done." +# 15:44:28 > + diff --git a/sql/test/BugTracker-2018/Tests/sqlitelogictest-count-coalesce-nullif.Bug-6586.stable.out b/sql/test/BugTracker-2018/Tests/sqlitelogictest-count-coalesce-nullif.Bug-6586.stable.out new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2018/Tests/sqlitelogictest-count-coalesce-nullif.Bug-6586.stable.out @@ -0,0 +1,37 @@ +stdout of test 'sqlitelogictest-count-coalesce-nullif.Bug-6586` in directory 'sql/test/BugTracker-2018` itself: + + +# 15:44:28 > +# 15:44:28 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=38111" "--set" "mapi_usock=/var/tmp/mtest-13646/.s.monetdb.38111" "--set" "monet_prompt=" "--forcemito" "--dbpath=/home/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2018" "--set" "embedded_c=true" +# 15:44:28 > + +# MonetDB 5 server v11.30.0 +# This is an unreleased version +# Serving database 'mTests_sql_test_BugTracker-2018', using 8 threads +# Compiled for x86_64-unknown-linux-gnu/64bit with 128bit integers +# Found 15.387 GiB available main-memory. +# Copyright (c) 1993 - July 2008 CWI. +# Copyright (c) August 2008 - 2018 MonetDB B.V., all rights reserved +# Visit https://www.monetdb.org/ for further information +# Listening for connection requests on mapi:monetdb://xps13:38111/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-13646/.s.monetdb.38111 +# MonetDB/GIS module loaded +# MonetDB/SQL module loaded + +Ready. + +# 15:44:28 > +# 15:44:28 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-13646" "--port=38111" +# 15:44:28 > + +#SELECT - 59 + - 66, - 66 * + - COUNT ( ALL COALESCE ( NULLIF ( 90, + COALESCE ( - 67, 72 + - 30 ) + 17 ), 90 + 96, + 63 ) ) AS col1; +% .L2, .L6 # table_name +% L2, col1 # name +% smallint, hugeint # type +% 4, 2 # length +[ -125, 66 ] + +# 15:44:28 > +# 15:44:28 > "Done." +# 15:44:28 > + _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list