Changeset: f1474f3bb413 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f1474f3bb413 Added Files: sql/test/BugTracker-2015/Tests/epoch_now.Bug-3740.sql sql/test/BugTracker-2015/Tests/epoch_now.Bug-3740.stable.err sql/test/BugTracker-2015/Tests/epoch_now.Bug-3740.stable.out sql/test/BugTracker-2015/Tests/mergejoin_NULL.Bug-3747.sql sql/test/BugTracker-2015/Tests/mergejoin_NULL.Bug-3747.stable.err sql/test/BugTracker-2015/Tests/mergejoin_NULL.Bug-3747.stable.out sql/test/BugTracker-2015/Tests/null_is_null.Bug-3739.sql sql/test/BugTracker-2015/Tests/null_is_null.Bug-3739.stable.err sql/test/BugTracker-2015/Tests/null_is_null.Bug-3739.stable.out sql/test/BugTracker-2015/Tests/savepoint.Bug-3738-1.sql sql/test/BugTracker-2015/Tests/savepoint.Bug-3738-1.stable.err sql/test/BugTracker-2015/Tests/savepoint.Bug-3738-1.stable.out sql/test/BugTracker-2015/Tests/savepoint.Bug-3738-2.sql sql/test/BugTracker-2015/Tests/savepoint.Bug-3738-2.stable.err sql/test/BugTracker-2015/Tests/savepoint.Bug-3738-2.stable.out Modified Files: clients/Tests/SQL-dump.stable.out.int128 gdk/gdk_bbp.c gdk/gdk_join.c gdk/gdk_search.c gdk/gdk_select.c geom/monetdb5/geom.c java/build.xml monetdb5/extras/rapi/Tests/rapi01.stable.err monetdb5/modules/kernel/algebra.c monetdb5/tests/gdkTests/Tests/selecttst.stable.out sql/backends/monet5/Tests/rapi09.stable.err sql/backends/monet5/generator/generator.c sql/backends/monet5/rel_bin.c sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_upgrades.c sql/benchmarks/ssbm/Tests/01-explain.stable.out sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/02-explain.stable.out sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/03-explain.stable.out sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/04-explain.stable.out sql/benchmarks/ssbm/Tests/04-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/05-explain.stable.out sql/benchmarks/ssbm/Tests/05-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/06-explain.stable.out sql/benchmarks/ssbm/Tests/06-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/07-explain.stable.out sql/benchmarks/ssbm/Tests/07-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/08-explain.stable.out sql/benchmarks/ssbm/Tests/08-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/09-explain.stable.out sql/benchmarks/ssbm/Tests/09-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/10-explain.stable.out sql/benchmarks/ssbm/Tests/10-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/11-explain.stable.out sql/benchmarks/ssbm/Tests/11-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/12-explain.stable.out sql/benchmarks/ssbm/Tests/12-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/13-explain.stable.out sql/benchmarks/ssbm/Tests/13-explain.stable.out.int128 sql/benchmarks/tpch/Tests/02-explain.stable.out sql/benchmarks/tpch/Tests/03-explain.stable.out sql/benchmarks/tpch/Tests/03-explain.stable.out.int128 sql/benchmarks/tpch/Tests/05-explain.stable.out sql/benchmarks/tpch/Tests/05-explain.stable.out.32bit sql/benchmarks/tpch/Tests/05-explain.stable.out.int128 sql/benchmarks/tpch/Tests/07-explain.stable.out sql/benchmarks/tpch/Tests/07-explain.stable.out.int128 sql/benchmarks/tpch/Tests/08-explain.stable.out sql/benchmarks/tpch/Tests/08-explain.stable.out.int128 sql/benchmarks/tpch/Tests/10-explain.stable.out sql/benchmarks/tpch/Tests/10-explain.stable.out.int128 sql/benchmarks/tpch/Tests/11-explain.stable.out sql/benchmarks/tpch/Tests/11-explain.stable.out.int128 sql/benchmarks/tpch/Tests/12-explain.stable.out sql/benchmarks/tpch/Tests/12-explain.stable.out.int128 sql/benchmarks/tpch/Tests/16-explain.stable.out sql/benchmarks/tpch/Tests/16-explain.stable.out.32bit sql/benchmarks/tpch/Tests/17-explain.stable.out.int128 sql/benchmarks/tpch/Tests/19-explain.stable.out sql/benchmarks/tpch/Tests/19-explain.stable.out.int128 sql/benchmarks/tpch/Tests/20-explain.stable.out sql/benchmarks/tpch/Tests/20-explain.stable.out.32bit sql/benchmarks/tpch/Tests/20-explain.stable.out.int128 sql/benchmarks/tpch/Tests/21-explain.stable.out sql/benchmarks/tpch/Tests/21-explain.stable.out.32bit sql/benchmarks/tpch/Tests/22-explain.stable.out sql/benchmarks/tpch/Tests/22-explain.stable.out.32bit sql/benchmarks/tpch/Tests/22-explain.stable.out.int128 sql/scripts/17_temporal.sql sql/server/rel_optimizer.c sql/server/rel_select.c sql/server/sql_mvc.c sql/storage/bat/bat_storage.c sql/storage/bat/bat_table.c sql/storage/bat/bat_utils.c sql/storage/store.c sql/test/BugDay_2005-10-06_2.9.3/Tests/max_min_sum_null.SF-1123132.sql sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.out sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out sql/test/BugTracker-2014/Tests/too_general_errmsg.Bug-3605.stable.err sql/test/BugTracker-2015/Tests/All sql/test/Dependencies/Tests/Dependencies.stable.out sql/test/Dependencies/Tests/Dependencies.stable.out.int128 sql/test/Tests/systemfunctions.stable.out sql/test/Tests/systemfunctions.stable.out.int128 sql/test/leaks/Tests/check1.stable.out.int128 sql/test/leaks/Tests/check2.stable.out.int128 sql/test/leaks/Tests/check3.stable.out.int128 sql/test/leaks/Tests/check4.stable.out.int128 sql/test/leaks/Tests/check5.stable.out.int128 tools/merovingian/client/monetdb.c Branch: commonterms Log Message:
Merge with default diffs (truncated from 4533 to 300 lines): diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c --- a/gdk/gdk_bbp.c +++ b/gdk/gdk_bbp.c @@ -3531,7 +3531,7 @@ BBPsync(int cnt, bat *subcommit) (void) GDKremovedir(0, DELDIR); (void) BBPprepare(0); /* (try to) remove DELDIR and set up new BAKDIR */ if (backup_files > 1) { - PERFDEBUG fprintf(stderr, "%d\n", backup_files); + PERFDEBUG fprintf(stderr, "#BBPsync (backup_files %d > 1)\n", backup_files); backup_files = 1; } } diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c --- a/gdk/gdk_join.c +++ b/gdk/gdk_join.c @@ -1195,6 +1195,8 @@ mergejoin(BAT *r1, BAT *r2, BAT *l, BAT * going to match: ready for the next iteration. */ if (!nil_matches && cmp(v, nil) == 0) { /* v is nil and nils don't match anything */ + r1->tdense = 0; + r2->tdense = 0; if (must_match) { GDKerror("mergejoin(%s,%s) does not hit always => can't use fetchjoin.\n", BATgetId(l), BATgetId(r)); goto bailout; @@ -3247,6 +3249,11 @@ BATproject(BAT *l, BAT *r) assert(BAThdense(r)); assert(ATOMtype(l->ttype) == TYPE_oid); + if (lcount == 0 || rcount == 0) { + bn = BATnew(TYPE_void, tpe, 0, TRANSIENT); + return bn; + } + if (BATtdense(l) && BATcount(l) > 0) { lo = l->tseqbase; hi = l->tseqbase + BATcount(l); diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c --- a/gdk/gdk_select.c +++ b/gdk/gdk_select.c @@ -1270,13 +1270,14 @@ BATsubselect(BAT *b, BAT *s, const void equi = th == NULL || (lval && ATOMcmp(t, tl, th) == 0); /* point select? */ if (equi) { assert(lval); - if (th == NULL) - hi = li; + hi = li; th = tl; hval = 1; } else { hval = ATOMcmp(t, th, nil) != 0; } + if (!equi && !lval && !hval && lnil) + anti = !anti; if (anti) { if (lval != hval) { /* one of the end points is nil and the other diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c --- a/geom/monetdb5/geom.c +++ b/geom/monetdb5/geom.c @@ -69,9 +69,7 @@ geom_export str wkbgetcoordX(dbl *out, w geom_export str wkbgetcoordY(dbl *out, wkb **geom); geom_export str wkbcreatepoint(wkb **out, const dbl *x, const dbl *y); geom_export str wkbcreatepoint_bat(bat *out, const bat *x, const bat *y); -geom_export str pnpoly_(int *out, int nvert, dbl *vx, dbl *vy, int *point_x, int *point_y); geom_export double isLeft( double P0x, double P0y, double P1x, double P1y, double P2x, double P2y); -geom_export str pnpolyWithHoles_(int *out, int nvert, dbl *vx, dbl *vy, int nholes, dbl **hx, dbl **hy, int *hn, bat *point_x, bat *point_y); geom_export str wkbContains_point_bat(bat *out, wkb **a, bat *point_x, bat *point_y); geom_export str wkbContains_point(bit *out, wkb **a, dbl *point_x, dbl *point_y); geom_export str mbroverlaps(bit *out, mbr **b1, mbr **b2); @@ -819,14 +817,14 @@ isLeft( double P0x, double P0y, double P - (P2x - P0x) * (P1y - P0y) ); } -str +static str pnpoly_(int *out, int nvert, dbl *vx, dbl *vy, int *point_x, int *point_y) { BAT *bo = NULL, *bpx = NULL, *bpy; dbl *px = NULL, *py = NULL; BUN i = 0, cnt; int j = 0, nv; - bte *cs = NULL; + bit *cs = NULL; /*Get the BATs*/ if ((bpx = BATdescriptor(*point_x)) == NULL) { @@ -849,7 +847,7 @@ pnpoly_(int *out, int nvert, dbl *vx, db } /*Create output BAT*/ - if ((bo = BATnew(TYPE_void, ATOMindex("bte"), BATcount(bpx), TRANSIENT)) == NULL) { + if ((bo = BATnew(TYPE_void, ATOMindex("bit"), BATcount(bpx), TRANSIENT)) == NULL) { BBPunfix(bpx->batCacheid); BBPunfix(bpy->batCacheid); throw(MAL, "geom.point", MAL_MALLOC_FAIL); @@ -862,7 +860,7 @@ pnpoly_(int *out, int nvert, dbl *vx, db nv = nvert -1; cnt = BATcount(bpx); - cs = (bte*) Tloc(bo,BUNfirst(bo)); + cs = (bit*) Tloc(bo,BUNfirst(bo)); for (i = 0; i < cnt; i++) { int wn = 0; for (j = 0; j < nv; j++) { @@ -888,14 +886,14 @@ pnpoly_(int *out, int nvert, dbl *vx, db return MAL_SUCCEED; } -str +static str pnpolyWithHoles_(bat *out, int nvert, dbl *vx, dbl *vy, int nholes, dbl **hx, dbl **hy, int *hn, bat *point_x, bat *point_y) { BAT *bo = NULL, *bpx = NULL, *bpy; dbl *px = NULL, *py = NULL; BUN i = 0, cnt = 0; int j = 0, h = 0; - bte *cs = NULL; + bit *cs = NULL; /*Get the BATs*/ if ((bpx = BATdescriptor(*point_x)) == NULL) { @@ -917,7 +915,7 @@ pnpolyWithHoles_(bat *out, int nvert, db } /*Create output BAT*/ - if ((bo = BATnew(TYPE_void, ATOMindex("bte"), BATcount(bpx), TRANSIENT)) == NULL) { + if ((bo = BATnew(TYPE_void, ATOMindex("bit"), BATcount(bpx), TRANSIENT)) == NULL) { BBPunfix(bpx->batCacheid); BBPunfix(bpy->batCacheid); throw(MAL, "geom.point", MAL_MALLOC_FAIL); @@ -928,7 +926,7 @@ pnpolyWithHoles_(bat *out, int nvert, db px = (dbl *) Tloc(bpx, BUNfirst(bpx)); py = (dbl *) Tloc(bpy, BUNfirst(bpx)); cnt = BATcount(bpx); - cs = (bte*) Tloc(bo,BUNfirst(bo)); + cs = (bit*) Tloc(bo,BUNfirst(bo)); for (i = 0; i < cnt; i++) { int wn = 0; @@ -985,7 +983,8 @@ pnpolyWithHoles_(bat *out, int nvert, db #define POLY_NUM_HOLE 10 str -wkbContains_point_bat(bat *out, wkb **a, bat *point_x, bat *point_y) { +wkbContains_point_bat(bat *out, wkb **a, bat *point_x, bat *point_y) +{ double *vert_x, *vert_y, **holes_x = NULL, **holes_y= NULL; int *holes_n= NULL, j; wkb *geom = NULL; diff --git a/java/build.xml b/java/build.xml --- a/java/build.xml +++ b/java/build.xml @@ -89,10 +89,12 @@ Copyright 2008-2015 MonetDB B.V. <!-- jar targets --> <target name="jar_jdbc" depends="compile_mcl,compile_jdbc" unless="uptodate.jdbc-jar"> + <echo file="${builddir}/META-INF/services/java.sql.Driver" append="false">nl.cwi.monetdb.jdbc.MonetDriver</echo> <jar jarfile="${jdbc-jar}"> <fileset dir="${builddir}"> <include name="${jdbc-package}/**/*.class" /> <include name="${mcl-package}/**/*.class" /> + <include name="META-INF/services/java.sql.Driver" /> </fileset> </jar> </target> @@ -125,6 +127,7 @@ Copyright 2008-2015 MonetDB B.V. <include name="${mcl-package}/**/*.class" /> <include name="${client-package}/**/*.class" /> <include name="${util-package}/**/*.class" /> + <include name="META-INF/services/java.sql.Driver" /> </fileset> <manifest> <attribute name="Built-By" value="${user.name}" /> diff --git a/monetdb5/extras/rapi/Tests/rapi01.stable.err b/monetdb5/extras/rapi/Tests/rapi01.stable.err --- a/monetdb5/extras/rapi/Tests/rapi01.stable.err +++ b/monetdb5/extras/rapi/Tests/rapi01.stable.err @@ -1,11 +1,11 @@ stderr of test 'rapi01` in directory 'monetdb5/extras/rapi` itself: -# 16:45:15 > -# 16:45:15 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=33997" "--set" "mapi_usock=/var/tmp/mtest-95437/.s.monetdb.33997" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/Users/hannes/monetdb-rint-install/var/MonetDB/mTests_monetdb5_extras_rapi" "--set" "mal_listing=2" "--set" "embedded_r=yes" -# 16:45:15 > +# 11:17:46 > +# 11:17:46 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=31221" "--set" "mapi_usock=/var/tmp/mtest-13991/.s.monetdb.31221" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/Users/hannes/monetdb-install/var/MonetDB/mTests_monetdb5_extras_rapi" "--set" "mal_listing=2" "--set" "embedded_r=yes" +# 11:17:46 > -# builtin opt gdk_dbpath = /Users/hannes/monetdb-rint-install/var/monetdb5/dbfarm/demo +# builtin opt gdk_dbpath = /Users/hannes/monetdb-install/var/monetdb5/dbfarm/demo # builtin opt gdk_debug = 0 # builtin opt gdk_vmtrim = no # builtin opt monet_prompt = > @@ -17,44 +17,39 @@ stderr of test 'rapi01` in directory 'mo # builtin opt sql_debug = 0 # cmdline opt gdk_nr_threads = 0 # cmdline opt mapi_open = true -# cmdline opt mapi_port = 33997 -# cmdline opt mapi_usock = /var/tmp/mtest-95437/.s.monetdb.33997 +# cmdline opt mapi_port = 31221 +# cmdline opt mapi_usock = /var/tmp/mtest-13991/.s.monetdb.31221 # cmdline opt monet_prompt = # cmdline opt mal_listing = 2 -# cmdline opt gdk_dbpath = /Users/hannes/monetdb-rint-install/var/MonetDB/mTests_monetdb5_extras_rapi +# cmdline opt gdk_dbpath = /Users/hannes/monetdb-install/var/MonetDB/mTests_monetdb5_extras_rapi # cmdline opt mal_listing = 2 # cmdline opt embedded_r = yes # cmdline opt gdk_debug = 536870922 -# 16:45:15 > -# 16:45:15 > "mclient" "-lmal" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-95437" "--port=33997" -# 16:45:15 > +# 11:17:47 > +# 11:17:47 > "mclient" "-lmal" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-13991" "--port=31221" +# 11:17:47 > -MAPI = (monetdb) /var/tmp/mtest-4656/.s.monetdb.33963 +MAPI = (monetdb) /var/tmp/mtest-13991/.s.monetdb.31221 QUERY = r:bat[:oid,:dbl] := rapi.eval(nil:ptr,"someresult <- Re(fft(somevalue));",b); -ERROR = !MALException:rapi.eval:Error running R expression. Error message: Error in fft(somevalue) : object 'somevalue' not found - !Calls: as.data.frame -> <Anonymous> -> fft -MAPI = (monetdb) /var/tmp/mtest-4656/.s.monetdb.33963 +ERROR = !MALException:rapi.eval:Error running R expression: Error in fft(somevalue) : object 'somevalue' not found Calls: as.data.frame -> <Anonymous> -> fft +MAPI = (monetdb) /var/tmp/mtest-13991/.s.monetdb.31221 QUERY = r:bat[:oid,:dbl] := rapi.eval(nil:ptr,"someresult <- Re(fft(arg2));",b); -ERROR = !MALException:rapi.eval:Error running R expression. Error message: Error in fft(arg2) : object 'arg2' not found - !Calls: as.data.frame -> <Anonymous> -> fft -MAPI = (monetdb) /var/tmp/mtest-4656/.s.monetdb.33963 +ERROR = !MALException:rapi.eval:Error running R expression: Error in fft(arg2) : object 'arg2' not found Calls: as.data.frame -> <Anonymous> -> fft +MAPI = (monetdb) /var/tmp/mtest-13991/.s.monetdb.31221 QUERY = r:bat[:oid,:dbl] := rapi.eval(nil:ptr,"ret0 <- Re(fft(somevalue));",b); -ERROR = !MALException:rapi.eval:Error running R expression. Error message: Error in fft(somevalue) : object 'somevalue' not found - !Calls: as.data.frame -> <Anonymous> -> fft -MAPI = (monetdb) /var/tmp/mtest-4656/.s.monetdb.33963 +ERROR = !MALException:rapi.eval:Error running R expression: Error in fft(somevalue) : object 'somevalue' not found Calls: as.data.frame -> <Anonymous> -> fft +MAPI = (monetdb) /var/tmp/mtest-13991/.s.monetdb.31221 QUERY = r:bat[:oid,:dbl] := rapi.eval(nil:ptr,"ret1 <- Re(fft(arg2));",b); -ERROR = !MALException:rapi.eval:Error running R expression. Error message: Error in fft(arg2) : object 'arg2' not found - !Calls: as.data.frame -> <Anonymous> -> fft -MAPI = (monetdb) /var/tmp/mtest-4656/.s.monetdb.33963 +ERROR = !MALException:rapi.eval:Error running R expression: Error in fft(arg2) : object 'arg2' not found Calls: as.data.frame -> <Anonymous> -> fft +MAPI = (monetdb) /var/tmp/mtest-13991/.s.monetdb.31221 QUERY = r:bat[:oid,:dbl] := rapi.eval(nil:ptr,"ret0 <- Re(fft(arg5));",b); -ERROR = !MALException:rapi.eval:Error running R expression. Error message: Error in fft(arg5) : object 'arg5' not found - !Calls: as.data.frame -> <Anonymous> -> fft -MAPI = (monetdb) /var/tmp/mtest-4656/.s.monetdb.33963 +ERROR = !MALException:rapi.eval:Error running R expression: Error in fft(arg5) : object 'arg5' not found Calls: as.data.frame -> <Anonymous> -> fft +MAPI = (monetdb) /var/tmp/mtest-13991/.s.monetdb.31221 QUERY = r:bat[:oid,:dbl] := rapi.eval(nil:ptr,"ret0 <- Re(fft(arg2) ) );",b); ERROR = !MALException:rapi.eval:Error parsing R expression 'ret0 <- Re(fft(arg2) ) );'. -# 16:45:16 > -# 16:45:16 > "Done." -# 16:45:16 > +# 11:17:47 > +# 11:17:47 > "Done." +# 11:17:47 > diff --git a/monetdb5/modules/kernel/algebra.c b/monetdb5/modules/kernel/algebra.c --- a/monetdb5/modules/kernel/algebra.c +++ b/monetdb5/modules/kernel/algebra.c @@ -26,16 +26,16 @@ * and we have to de-reference them before entering the gdk library. * This calls for knowlegde on the underlying BAT typs`s */ -#define derefStr(b, s, v) \ - do { \ - int _tpe= ATOMstorage((b)->s##type); \ - if (_tpe >= TYPE_str) { \ - if ((v) == 0 || *(str*) (v) == 0) \ - (v) = (str) str_nil; \ - else \ - (v) = *(str *) (v); \ - } \ - } while (0) +#define derefStr(b, s, v) \ + do { \ + int _tpe= ATOMstorage((b)->s##type); \ + if (_tpe >= TYPE_str) { \ + if ((v) == 0 || *(str*) (v) == 0) \ + (v) = (str) str_nil; \ + else \ + (v) = *(str *) (v); \ + } \ + } while (0) #include "monetdb_config.h" #include "algebra.h" @@ -433,23 +433,26 @@ str ALGselectNotNil(bat *result, const bat *bid) { BAT *b, *bn = NULL; - ptr low,high; - bit bound=FALSE; if ((b = BATdescriptor(*bid)) == NULL) throw(MAL, "algebra.selectNotNil", RUNTIME_OBJECT_MISSING); if( BATcount_no_nil(b) != BATcount(b) ){ - low=high= ATOMnilptr(b->ttype); - CMDselect_(&bn, b, low, high, &bound, &bound); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list