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

Reply via email to