Changeset: 750266f1b1b6 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=750266f1b1b6 Modified Files: configure.ag gdk/gdk.h gdk/gdk_bat.c gdk/gdk_delta.c gdk/gdk_search.c gdk/gdk_search.h monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single monetdb5/mal/Tests/dynamicload.malC monetdb5/mal/Tests/dynamicload.stable.err monetdb5/mal/mal_listing.c monetdb5/optimizer/Tests/JPexample.malC monetdb5/optimizer/Tests/JPexample.stable.out monetdb5/optimizer/Tests/projectionchain.malC monetdb5/optimizer/Tests/projectionchain.stable.out monetdb5/optimizer/opt_pipes.c monetdb5/optimizer/opt_projectionpath.c sql/backends/monet5/sql_user.c 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/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/09-explain.stable.out sql/benchmarks/tpch/Tests/09-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/15-explain.stable.out sql/benchmarks/tpch/Tests/15-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 sql/benchmarks/tpch/Tests/17-explain.stable.out.int128 sql/benchmarks/tpch/Tests/18-explain.stable.out sql/benchmarks/tpch/Tests/18-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/server/rel_optimizer.c sql/server/rel_optimizer.h sql/server/rel_rel.c sql/server/rel_rel.h sql/test/Tests/setoptimizer.stable.err sql/test/Tests/setoptimizer.stable.out sql/test/Tests/setoptimizer.stable.out.Windows Branch: embedded Log Message:
merge diffs (truncated from 2805 to 300 lines): diff --git a/configure.ag b/configure.ag --- a/configure.ag +++ b/configure.ag @@ -3499,6 +3499,7 @@ for comp in \ 'java_control ' \ 'java_jdbc ' \ 'liblas ' \ + 'liblzma ' \ 'libxml2 ' \ 'lidar ' \ 'netcdf ' \ diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -870,7 +870,7 @@ typedef struct { varsized:1, /* varsized (1) or fixedsized (0) */ key:2, /* duplicates allowed? */ dense:1, /* OID only: only consecutive values */ - nonil:1, /* nonil isn't propchecked yet */ + nonil:1, /* there are no nils in the column */ nil:1, /* there is a nil in the column */ sorted:1, /* column is sorted in ascending order */ revsorted:1; /* column is sorted in descending order */ diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c --- a/gdk/gdk_bat.c +++ b/gdk/gdk_bat.c @@ -1320,7 +1320,7 @@ BUNfnd(BAT *b, const void *v) return SORTfnd(b, v); } bi = bat_iterator(b); - switch (ATOMstorage(b->ttype)) { + switch (ATOMbasetype(b->ttype)) { case TYPE_bte: HASHfnd_bte(r, bi, v); break; @@ -1328,10 +1328,14 @@ BUNfnd(BAT *b, const void *v) HASHfnd_sht(r, bi, v); break; case TYPE_int: - case TYPE_flt: HASHfnd_int(r, bi, v); break; + case TYPE_flt: + HASHfnd_flt(r, bi, v); + break; case TYPE_dbl: + HASHfnd_dbl(r, bi, v); + break; case TYPE_lng: HASHfnd_lng(r, bi, v); break; diff --git a/gdk/gdk_delta.c b/gdk/gdk_delta.c --- a/gdk/gdk_delta.c +++ b/gdk/gdk_delta.c @@ -171,9 +171,6 @@ BATundo(BAT *b) bunfirst = b->batDeleted; bunlast = b->batFirst; if (bunlast > b->batDeleted) { - BUN i = bunfirst; - BAT *bm = BBP_cache(-b->batCacheid); - /* elements are 'inserted' => zap properties */ b->hsorted = 0; b->hrevsorted = 0; @@ -183,18 +180,7 @@ BATundo(BAT *b) BATkey(b, FALSE); if (b->tkey) BATkey(BATmirror(b), FALSE); - - for (p = bunfirst; p < bunlast; p++, i++) { - ptr h = BUNhead(bi, p); - ptr t = BUNtail(bi, p); - - if (b->H->hash) { - HASHins(bm, i, h); - } - if (b->T->hash) { - HASHins(b, i, t); - } - } + HASHremove(b); } b->batFirst = b->batDeleted; BATsetcount(b, b->batInserted); diff --git a/gdk/gdk_search.c b/gdk/gdk_search.c --- a/gdk/gdk_search.c +++ b/gdk/gdk_search.c @@ -467,24 +467,16 @@ BAThash(BAT *b, BUN masksize) case TYPE_sht: starthash(sht); break; + case TYPE_flt: + starthash(flt); + break; case TYPE_int: - case TYPE_flt: -#if SIZEOF_OID == SIZEOF_INT - case TYPE_oid: -#endif -#if SIZEOF_WRD == SIZEOF_INT - case TYPE_wrd: -#endif starthash(int); break; case TYPE_dbl: + starthash(dbl); + break; case TYPE_lng: -#if SIZEOF_OID == SIZEOF_LNG - case TYPE_oid: -#endif -#if SIZEOF_WRD == SIZEOF_LNG - case TYPE_wrd: -#endif starthash(lng); break; #ifdef HAVE_HGE @@ -517,23 +509,15 @@ BAThash(BAT *b, BUN masksize) finishhash(sht); break; case TYPE_int: - case TYPE_flt: -#if SIZEOF_OID == SIZEOF_INT - case TYPE_oid: -#endif -#if SIZEOF_WRD == SIZEOF_INT - case TYPE_wrd: -#endif finishhash(int); break; + case TYPE_flt: + finishhash(flt); + break; case TYPE_dbl: + finishhash(dbl); + break; case TYPE_lng: -#if SIZEOF_OID == SIZEOF_LNG - case TYPE_oid: -#endif -#if SIZEOF_WRD == SIZEOF_LNG - case TYPE_wrd: -#endif finishhash(lng); break; #ifdef HAVE_HGE diff --git a/gdk/gdk_search.h b/gdk/gdk_search.h --- a/gdk/gdk_search.h +++ b/gdk/gdk_search.h @@ -205,6 +205,8 @@ gdk_export BUN HASHlist(Hash *h, BUN i); #ifdef HAVE_HGE #define HASHfnd_hge(x,y,z) HASHfnd_TYPE(x,y,z,hge) #endif +#define HASHfnd_flt(x,y,z) HASHfnd_TYPE(x,y,z,flt) +#define HASHfnd_dbl(x,y,z) HASHfnd_TYPE(x,y,z,dbl) /* * A new entry is added with HASHins using the BAT, the BUN index, and @@ -225,12 +227,6 @@ gdk_export BUN HASHlist(Hash *h, BUN i); } \ } while (0) -#define HASHins_oid(h,i,v) \ - do { \ - BUN _c = hash_oid(h,v); \ - HASHputall(h,i,_c); \ - } while (0) - /* Functions to perform a binary search on a sorted BAT. * See gdk_search.c for details. */ gdk_export BUN SORTfnd(BAT *b, const void *v); diff --git a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err --- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err +++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err @@ -30,16 +30,16 @@ stderr of test 'opt_sql_append` in direc # 22:58:57 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=rome" "--port=36275" # 22:58:57 > -MAPI = (monetdb) /var/tmp/mtest-12681/.s.monetdb.34697 +MAPI = (monetdb) /var/tmp/mtest-5498/.s.monetdb.31321 QUERY = explain copy into ttt from '\tmp/xyz'; ERROR = !COPY INTO: filename must have absolute path: \tmp/xyz -MAPI = (monetdb) /var/tmp/mtest-12681/.s.monetdb.34697 +MAPI = (monetdb) /var/tmp/mtest-5498/.s.monetdb.31321 QUERY = explain copy into ttt from 'a:\tmp/xyz'; ERROR = !COPY INTO: filename must have absolute path: a:\tmp/xyz -MAPI = (monetdb) /var/tmp/mtest-12681/.s.monetdb.34697 +MAPI = (monetdb) /var/tmp/mtest-5498/.s.monetdb.31321 QUERY = explain copy into ttt from '\tmp/xyz'; ERROR = !COPY INTO: filename must have absolute path: \tmp/xyz -MAPI = (monetdb) /var/tmp/mtest-12681/.s.monetdb.34697 +MAPI = (monetdb) /var/tmp/mtest-5498/.s.monetdb.31321 QUERY = explain copy into ttt from 'Z:/tmp/xyz'; ERROR = !COPY INTO: filename must have absolute path: Z:/tmp/xyz diff --git a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out --- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out +++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out @@ -56,7 +56,7 @@ Ready. % def # name % clob # type % 541 # length -[ "optimizer.inline();optimizer.candidates();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.garbageCollector();" ] +[ "optimizer.inline();optimizer.candidates();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.reorder();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.garbageCollector();" ] #explain copy into ttt from '/tmp/xyz'; % .explain # table_name % mal # name @@ -90,7 +90,7 @@ end user.s4_1; % def # name % clob # type % 564 # length -[ "optimizer.inline();optimizer.candidates();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.sql_append();optimizer.garbageCollector();" ] +[ "optimizer.inline();optimizer.candidates();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.reorder();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.sql_append();optimizer.garbageCollector();" ] #explain copy into ttt from '/tmp/xyz'; % .explain # table_name % mal # name diff --git a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single --- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single +++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single @@ -56,7 +56,7 @@ Ready. % def # name % clob # type % 541 # length -[ "optimizer.inline();optimizer.candidates();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.garbageCollector();" ] +[ "optimizer.inline();optimizer.candidates();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.reorder();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.garbageCollector();" ] #explain copy into ttt from '/tmp/xyz'; % .explain # table_name % mal # name @@ -88,7 +88,7 @@ end user.s4_1; % def # name % clob # type % 564 # length -[ "optimizer.inline();optimizer.candidates();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.sql_append();optimizer.garbageCollector();" ] +[ "optimizer.inline();optimizer.candidates();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.reorder();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.sql_append();optimizer.garbageCollector();" ] #explain copy into ttt from '/tmp/xyz'; % .explain # table_name % mal # name diff --git a/monetdb5/mal/Tests/dynamicload.malC b/monetdb5/mal/Tests/dynamicload.malC --- a/monetdb5/mal/Tests/dynamicload.malC +++ b/monetdb5/mal/Tests/dynamicload.malC @@ -1,10 +1,10 @@ # examples of non-bindable instructions +#load unknown library +library UNKNOWlib; + command wrong() address UNKOWNaddress comment "Should not be callable"; wrong(); - -#load unknown library -library UNKNOWlib; diff --git a/monetdb5/mal/Tests/dynamicload.stable.err b/monetdb5/mal/Tests/dynamicload.stable.err --- a/monetdb5/mal/Tests/dynamicload.stable.err +++ b/monetdb5/mal/Tests/dynamicload.stable.err @@ -80,33 +80,21 @@ stderr of test 'dynamicload` in director # 13:21:38 > "mclient" "-lmal" "-ftest" "-Eutf-8" "--host=/var/tmp/mtest-18020" "--port=37961" # 13:21:38 > -MAPI = (monetdb) /var/tmp/mtest-21455/.s.monetdb.39502 +MAPI = (monetdb) /var/tmp/mtest-6360/.s.monetdb.38700 QUERY = # examples of non-bindable instructions + #load unknown library + library UNKNOWlib; + command wrong() address UNKOWNaddress comment "Should not be callable"; wrong(); +ERROR = !TypeException:user.main[3]:object code for command user.wrong missing + !TypeException:user.main[3]:'user.wrong' undefined in: user.wrong(); - #load unknown library - library UNKNOWlib; -ERROR = !MALException:MAL.getAddress:address of 'user.UNKOWNaddress' not found -MAPI = (monetdb) /var/tmp/mtest-21455/.s.monetdb.39502 -QUERY = # examples of non-bindable instructions - - command wrong() - address UNKOWNaddress - comment "Should not be callable"; - - wrong(); - - #load unknown library - library UNKNOWlib; -ERROR = !TypeException:user.main[2]:object code for command user.wrong missing - !TypeException:user.main[2]:'user.wrong' undefined in: user.wrong(); +# 13:26:24 > +# 13:26:24 > "Done." +# 13:26:24 > -# 13:21:38 > -# 13:21:38 > "Done." -# 13:21:38 > - _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list