Changeset: 1c1bd8eb99cc for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1c1bd8eb99cc Added Files: sql/test/BugTracker-2018/Tests/sqlitelogictest-select-range-null.Bug-6514.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-aggregation-count.Bug-6510.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-mal-function-generation.Bug-6513.sql sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-select-not-between.Bug-6511.sql Modified Files: gdk/gdk_select.c monetdb5/optimizer/opt_candidates.c sql/test/BugTracker-2017/Tests/All sql/test/BugTracker-2018/Tests/All Branch: default Log Message:
Merge with Jul2017 branch. diffs (115 lines): diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c --- a/gdk/gdk_select.c +++ b/gdk/gdk_select.c @@ -2045,14 +2045,14 @@ rangejoin(BAT *r1, BAT *r2, BAT *l, BAT high = use_orderidx? ORDERfndfirst(l, vrh): SORTfndfirst(l, vrh); } else { assert(l->trevsorted); - if (li) - low = SORTfndlast(l, vrh); - else + if (hi) low = SORTfndfirst(l, vrh); - if (hi) + else + low = SORTfndlast(l, vrh); + if (li) + high = SORTfndlast(l, vrl); + else high = SORTfndfirst(l, vrl); - else - high = SORTfndlast(l, vrl); } if (high <= low) continue; @@ -2643,7 +2643,7 @@ rangejoin(BAT *r1, BAT *r2, BAT *l, BAT } r2->tseqbase = r2->tdense ? cnt > 0 ? dst2[0] : 0 : oid_nil; ALGODEBUG fprintf(stderr, "#rangejoin(l=%s,rl=%s,rh=%s)=" - "(%s#"BUNFMT"%s%s,%s#"BUNFMT"%s%s\n", + "(%s#"BUNFMT"%s%s,%s#"BUNFMT"%s%s)\n", BATgetId(l), BATgetId(rl), BATgetId(rh), BATgetId(r1), BATcount(r1), r1->tsorted ? "-sorted" : "", diff --git a/monetdb5/optimizer/opt_candidates.c b/monetdb5/optimizer/opt_candidates.c --- a/monetdb5/optimizer/opt_candidates.c +++ b/monetdb5/optimizer/opt_candidates.c @@ -54,10 +54,6 @@ OPTcandidatesImplementation(Client cntxt setVarCList(mb,getArg(p,0)); else if(getFunctionId(p) == firstnRef ) setVarCList(mb,getArg(p,0)); - else if(getFunctionId(p) == mergecandRef ) - setVarCList(mb,getArg(p,0)); - else if(getFunctionId(p) == intersectcandRef ) - setVarCList(mb,getArg(p,0)); else if(getFunctionId(p) == subsliceRef ) setVarCList(mb,getArg(p,0)); } @@ -73,6 +69,9 @@ OPTcandidatesImplementation(Client cntxt if (getFunctionId(p) == subgroupRef || getFunctionId(p) == subgroupdoneRef || getFunctionId(p) == groupRef || getFunctionId(p) == groupdoneRef) setVarCList(mb, getArg(p, 1)); + } else if (getModuleId(p) == batRef) { + if (getFunctionId(p) == mergecandRef || getFunctionId(p) == intersectcandRef) + setVarCList(mb,getArg(p,0)); } } diff --git a/sql/test/BugTracker-2018/Tests/All b/sql/test/BugTracker-2018/Tests/All --- a/sql/test/BugTracker-2018/Tests/All +++ b/sql/test/BugTracker-2018/Tests/All @@ -1,1 +1,5 @@ HAVE_LIBPY?pyUDF-crash.Bug-6508 +sqlitelogictest-wrong-aggregation-count.Bug-6510 +sqlitelogictest-wrong-select-not-between.Bug-6511 +sqlitelogictest-wrong-mal-function-generation.Bug-6513 +sqlitelogictest-select-range-null.Bug-6514 diff --git a/sql/test/BugTracker-2018/Tests/sqlitelogictest-select-range-null.Bug-6514.sql b/sql/test/BugTracker-2018/Tests/sqlitelogictest-select-range-null.Bug-6514.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2018/Tests/sqlitelogictest-select-range-null.Bug-6514.sql @@ -0,0 +1,11 @@ +CREATE TABLE tab1(col0 INTEGER, col1 INTEGER, col2 INTEGER); +INSERT INTO tab1 VALUES(51,14,96); +INSERT INTO tab1 VALUES(85,5,59); +INSERT INTO tab1 VALUES(91,47,68); +SELECT ALL col1 FROM tab1 WHERE NULL <= NULL; +SELECT ALL col1 FROM tab1 WHERE NULL < NULL; +SELECT ALL col1 FROM tab1 WHERE NULL > NULL; +SELECT ALL col1 FROM tab1 WHERE NULL >= NULL; +SELECT ALL col1 FROM tab1 WHERE NULL <> NULL; +SELECT ALL col1 FROM tab1 WHERE NULL = NULL; +DROP TABLE tab1; diff --git a/sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-aggregation-count.Bug-6510.sql b/sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-aggregation-count.Bug-6510.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-aggregation-count.Bug-6510.sql @@ -0,0 +1,6 @@ +CREATE TABLE tab1(col0 INTEGER, col1 INTEGER, col2 INTEGER); +INSERT INTO tab1 VALUES(51,14,96); +INSERT INTO tab1 VALUES(85,5,59); +INSERT INTO tab1 VALUES(91,47,68); +SELECT ALL COUNT ( DISTINCT - 34 ) * - COUNT ( * ) AS col2 FROM tab1 WHERE + col1 IS NULL; +DROP TABLE tab1; diff --git a/sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-mal-function-generation.Bug-6513.sql b/sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-mal-function-generation.Bug-6513.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-mal-function-generation.Bug-6513.sql @@ -0,0 +1,6 @@ +CREATE TABLE tab0(col0 INTEGER, col1 INTEGER, col2 INTEGER); +INSERT INTO tab0 VALUES(97,1,99); +INSERT INTO tab0 VALUES(15,81,47); +INSERT INTO tab0 VALUES(87,21,10); +SELECT DISTINCT - + col2 * 68 * - + 22 FROM tab0 AS cor0; +DROP TABLE tab0; diff --git a/sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-select-not-between.Bug-6511.sql b/sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-select-not-between.Bug-6511.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-select-not-between.Bug-6511.sql @@ -0,0 +1,6 @@ +CREATE TABLE tab2(col0 INTEGER, col1 INTEGER, col2 INTEGER); +INSERT INTO tab2 VALUES(64,77,40); +INSERT INTO tab2 VALUES(75,67,58); +INSERT INTO tab2 VALUES(46,51,23); +SELECT ALL - col0 / col0 FROM tab2 cor0 WHERE - col0 NOT BETWEEN ( + col1 + - 0 ) AND ( NULL ); +DROP TABLE tab2; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list