Changeset: 3cfa20feec6a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3cfa20feec6a
Added Files:
        sql/test/BugTracker-2017/Tests/complicated_logic.Bug-105.sql
        sql/test/BugTracker-2017/Tests/complicated_logic.Bug-105.stable.err
        sql/test/BugTracker-2017/Tests/complicated_logic.Bug-105.stable.out
        sql/test/BugTracker-2017/Tests/drop_not_null_on_pkey.Bug-6189.sql
        sql/test/BugTracker-2017/Tests/drop_not_null_on_pkey.Bug-6189.stable.err
        sql/test/BugTracker-2017/Tests/drop_not_null_on_pkey.Bug-6189.stable.out
        sql/test/BugTracker-2017/Tests/incorrect_error.Bug-6141.sql
        sql/test/BugTracker-2017/Tests/incorrect_error.Bug-6141.stable.err
        sql/test/BugTracker-2017/Tests/incorrect_error.Bug-6141.stable.out
        sql/test/BugTracker-2017/Tests/splitpart.Bug-6194.sql
        sql/test/BugTracker-2017/Tests/splitpart.Bug-6194.stable.err
        sql/test/BugTracker-2017/Tests/splitpart.Bug-6194.stable.out
        sql/test/BugTracker-2017/Tests/union_func_crash.Bug-6196.sql
        sql/test/BugTracker-2017/Tests/union_func_crash.Bug-6196.stable.err
        sql/test/BugTracker-2017/Tests/union_func_crash.Bug-6196.stable.out
Removed Files:
        sql/test/Tests/setoptimizer.stable.out.Windows
Modified Files:
        clients/Tests/exports.stable.out
        gdk/ChangeLog
        gdk/gdk.h
        gdk/gdk_calc.c
        gdk/gdk_private.h
        gdk/gdk_storage.c
        
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
        monetdb5/mal/mal_client.c
        monetdb5/mal/mal_import.c
        monetdb5/mal/mal_session.c
        monetdb5/modules/atoms/mtime.c
        monetdb5/modules/atoms/str.c
        monetdb5/modules/kernel/mmath.mal
        monetdb5/modules/mal/tablet.c
        monetdb5/optimizer/opt_support.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_cast.c
        sql/backends/monet5/sql_cast_impl_int.h
        sql/backends/monet5/sql_cat.c
        sql/backends/monet5/sql_fround.c
        sql/backends/monet5/sql_upgrades.c
        sql/server/rel_optimizer.c
        sql/server/rel_select.c
        sql/server/sql_mvc.h
        sql/test/BugTracker-2014/Tests/too_general_errmsg.Bug-3605.stable.err
        sql/test/BugTracker-2017/Tests/All
        sql/test/Tests/setoptimizer.stable.out
        sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out.32bit
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade-hge/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade/Tests/check.stable.out
        sql/test/emptydb-upgrade/Tests/check.stable.out.32bit
        sql/test/emptydb-upgrade/Tests/check.stable.out.int128
Branch: wlcr
Log Message:

merge with default


diffs (truncated from 3457 to 300 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -159,7 +159,6 @@ gdk_return BATorderidx(BAT *b, int stabl
 gdk_return BATouterjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT 
*sr, int nil_matches, BUN estimate);
 gdk_return BATprint(BAT *b);
 gdk_return BATprintcolumns(stream *s, int argc, BAT *argv[]);
-gdk_return BATprintf(stream *f, BAT *b);
 gdk_return BATprod(void *res, int tp, BAT *b, BAT *s, int skip_nils, int 
abort_on_error, int nil_if_empty);
 BAT *BATproject(BAT *l, BAT *r);
 BAT *BATprojectchain(BAT **bats);
@@ -167,7 +166,6 @@ gdk_return BATrangejoin(BAT **r1p, BAT *
 gdk_return BATreplace(BAT *b, BAT *p, BAT *n, bit force);
 void BATroles(BAT *b, const char *tnme);
 BAT *BATsample(BAT *b, BUN n);
-gdk_return BATsave(BAT *b);
 BAT *BATselect(BAT *b, BAT *s, const void *tl, const void *th, int li, int hi, 
int anti);
 gdk_return BATsemijoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, 
int nil_matches, BUN estimate);
 gdk_return BATsetaccess(BAT *b, int mode);
diff --git a/gdk/ChangeLog b/gdk/ChangeLog
--- a/gdk/ChangeLog
+++ b/gdk/ChangeLog
@@ -1,6 +1,10 @@
 # ChangeLog file for MonetDB
 # This file is updated with Maddlog
 
+* Mon Jan 30 2017 Sjoerd Mullender <sjo...@acm.org>
+- Removed function BATprintf.  Use BATprint or BATprintcolumns instead.
+- Removed BATsave from the list of exported functions.
+
 * Tue Jan  3 2017 Sjoerd Mullender <sjo...@acm.org>
 - Replaced BBPincref/BBPdecref with BBPfix/BBPunfix for physical reference
   count and BBPretain/BBPrelease for logical reference count maintenance.
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1488,7 +1488,6 @@ gdk_export gdk_return BATgroup(BAT **gro
  * @emph{th}) for variable-sized atoms.
  */
 
-gdk_export gdk_return BATsave(BAT *b);
 gdk_export void BATmsync(BAT *b);
 
 gdk_export size_t BATmemsize(BAT *b, int dirty);
@@ -1504,8 +1503,6 @@ gdk_export void OIDXdestroy(BAT *b);
  * @- Printing
  * @multitable @columnfractions 0.08 0.7
  * @item int
- * @tab BATprintf (stream *f, BAT *b)
- * @item int
  * @tab BATprintcolumns (stream *f, int argc, BAT *b[]);
  * @end multitable
  *
@@ -1517,7 +1514,6 @@ gdk_export void OIDXdestroy(BAT *b);
  */
 gdk_export gdk_return BATprintcolumns(stream *s, int argc, BAT *argv[]);
 gdk_export gdk_return BATprint(BAT *b);
-gdk_export gdk_return BATprintf(stream *f, BAT *b);
 
 /*
  * @- BAT clustering
diff --git a/gdk/gdk_calc.c b/gdk/gdk_calc.c
--- a/gdk/gdk_calc.c
+++ b/gdk/gdk_calc.c
@@ -13454,6 +13454,20 @@ convert_##TYPE1##_##TYPE2(const TYPE1 *s
 #define roundflt(x)    roundf(x)
 #define rounddbl(x)    round(x)
 #endif
+
+#ifndef HAVE_ROUND
+static inline double
+round(double val)
+{
+       /* round to nearest integer, away from zero */
+       if (val < 0)
+               return -floor(-val + 0.5);
+       else
+               return floor(val + 0.5);
+}
+#define roundf(x)      ((float)round((double)(x)))
+#endif
+
 #define convertimpl_reduce_float(TYPE1, TYPE2)                         \
 static BUN                                                             \
 convert_##TYPE1##_##TYPE2(const TYPE1 *src, TYPE2 *restrict dst, BUN cnt, \
diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h
--- a/gdk/gdk_private.h
+++ b/gdk/gdk_private.h
@@ -65,6 +65,8 @@ enum heaptype {
        __attribute__((__visibility__("hidden")));
 __hidden str BATrename(BAT *b, const char *nme)
        __attribute__((__visibility__("hidden")));
+__hidden gdk_return BATsave(BAT *b)
+       __attribute__((__visibility__("hidden")));
 __hidden void BATsetdims(BAT *b)
        __attribute__((__visibility__("hidden")));
 __hidden size_t BATvmsize(BAT *b, int dirty)
diff --git a/gdk/gdk_storage.c b/gdk/gdk_storage.c
--- a/gdk/gdk_storage.c
+++ b/gdk/gdk_storage.c
@@ -658,6 +658,13 @@ BATmsyncImplementation(void *arg)
 void
 BATmsync(BAT *b)
 {
+       /* we don't sync views */
+       if (isVIEW(b))
+               return;
+       /* we don't sync transients */
+       if (b->theap.farmid != 0 ||
+           (b->tvheap != NULL && b->tvheap->farmid != 0))
+               return;
 #ifndef DISABLE_MSYNC
 #ifdef MS_ASYNC
        if (b->theap.storage == STORE_MMAP)
@@ -665,42 +672,44 @@ BATmsync(BAT *b)
        if (b->tvheap && b->tvheap->storage == STORE_MMAP)
                (void) msync(b->tvheap->base, b->tvheap->free, MS_ASYNC);
 #else
+       {
 #ifdef MSYNC_BACKGROUND
-       MT_Id tid;
+               MT_Id tid;
 #endif
-       struct msync *arg;
+               struct msync *arg;
 
-       assert(b->batPersistence == PERSISTENT);
-       if (b->theap.storage == STORE_MMAP &&
-           (arg = GDKmalloc(sizeof(*arg))) != NULL) {
-               arg->id = b->batCacheid;
-               arg->h = &b->theap;
-               BBPfix(b->batCacheid);
+               assert(b->batPersistence == PERSISTENT);
+               if (b->theap.storage == STORE_MMAP &&
+                   (arg = GDKmalloc(sizeof(*arg))) != NULL) {
+                       arg->id = b->batCacheid;
+                       arg->h = &b->theap;
+                       BBPfix(b->batCacheid);
 #ifdef MSYNC_BACKGROUND
-               if (MT_create_thread(&tid, BATmsyncImplementation, arg, 
MT_THR_DETACHED) < 0) {
-                       /* don't bother if we can't create a thread */
-                       BBPunfix(b->batCacheid);
-                       GDKfree(arg);
+                       if (MT_create_thread(&tid, BATmsyncImplementation, arg, 
MT_THR_DETACHED) < 0) {
+                               /* don't bother if we can't create a thread */
+                               BBPunfix(b->batCacheid);
+                               GDKfree(arg);
+                       }
+#else
+                       BATmsyncImplementation(arg);
+#endif
                }
+
+               if (b->tvheap && b->tvheap->storage == STORE_MMAP &&
+                   (arg = GDKmalloc(sizeof(*arg))) != NULL) {
+                       arg->id = b->batCacheid;
+                       arg->h = b->tvheap;
+                       BBPfix(b->batCacheid);
+#ifdef MSYNC_BACKGROUND
+                       if (MT_create_thread(&tid, BATmsyncImplementation, arg, 
MT_THR_DETACHED) < 0) {
+                               /* don't bother if we can't create a thread */
+                               BBPunfix(b->batCacheid);
+                               GDKfree(arg);
+                       }
 #else
-               BATmsyncImplementation(arg);
+                       BATmsyncImplementation(arg);
 #endif
-       }
-
-       if (b->tvheap && b->tvheap->storage == STORE_MMAP &&
-           (arg = GDKmalloc(sizeof(*arg))) != NULL) {
-               arg->id = b->batCacheid;
-               arg->h = b->tvheap;
-               BBPfix(b->batCacheid);
-#ifdef MSYNC_BACKGROUND
-               if (MT_create_thread(&tid, BATmsyncImplementation, arg, 
MT_THR_DETACHED) < 0) {
-                       /* don't bother if we can't create a thread */
-                       BBPunfix(b->batCacheid);
-                       GDKfree(arg);
                }
-#else
-               BATmsyncImplementation(arg);
-#endif
        }
 #endif
 #else
@@ -949,7 +958,7 @@ BATprintcolumns(stream *s, int argc, BAT
 }
 
 gdk_return
-BATprintf(stream *s, BAT *b)
+BATprint(BAT *b)
 {
        BAT *argv[2];
        gdk_return ret = GDK_FAIL;
@@ -958,15 +967,9 @@ BATprintf(stream *s, BAT *b)
        argv[1] = b;
        if (argv[0] && argv[1]) {
                BATroles(argv[0], "h");
-               ret = BATprintcolumns(s, 2, argv);
+               ret = BATprintcolumns(GDKstdout, 2, argv);
        }
        if (argv[0])
                BBPunfix(argv[0]->batCacheid);
        return ret;
 }
-
-gdk_return
-BATprint(BAT *b)
-{
-       return BATprintf(GDKstdout, b);
-}
diff --git 
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
 
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
--- 
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
+++ 
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
@@ -49,21 +49,21 @@ Ready.
 % .L2 # table_name
 % L2 # name
 % varchar # type
-% 12 # length
-[ "default_pipe"       ]
+% 15 # length
+[ "sequential_pipe"    ]
 #select def from optimizers() where name = optimizer;
 % .L1 # table_name
 % def # name
 % clob # type
-% 579 # length
-[ 
"optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.emptybind();optimizer.pushselect();optimizer.aliases();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.candidates();optimizer.jit();optimizer.garbageCollector();"
        ]
+% 538 # length
+[ 
"optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.emptybind();optimizer.pushselect();optimizer.aliases();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.candidates();optimizer.jit();optimizer.garbageCollector();"
 ]
 #explain copy into ttt from 'a:\tmp/xyz';
 % .explain # table_name
 % mal # name
 % clob # type
 % 149 # length
-function user.s8_1():void;
-    X_0:void := querylog.define("explain copy into ttt from 
\\'a:\\\\tmp/xyz\\';","default_pipe",4:int);
+function user.s10_1():void;
+    X_0:void := querylog.define("explain copy into ttt from 
\\'a:\\\\tmp/xyz\\';","sequential_pipe",4:int);
     X_3 := sql.mvc();
     (X_24:bat[:int],X_25:bat[:int],X_26:bat[:int]) := 
sql.copy_from(nil:ptr,"|","\\n",nil:str,"null","a:\\tmp/xyz",-1:lng,0:lng,0:int,0:int,nil:str);
     X_28 := sql.append(X_3,"sys","ttt","a",X_24);
@@ -109,14 +109,14 @@ end user.s10_1;
 % .L1 # table_name
 % def # name
 % clob # type
-% 602 # length
-[ 
"optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.emptybind();optimizer.pushselect();optimizer.aliases();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.candidates();optimizer.jit();optimizer.sql_append();optimizer.garbageCollector();"
 ]
+% 561 # length
+[ 
"optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.emptybind();optimizer.pushselect();optimizer.aliases();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.candidates();optimizer.jit();optimizer.sql_append();optimizer.garbageCollector();"
  ]
 #explain copy into ttt from 'Z:/tmp/xyz';
 % .explain # table_name
 % mal # name
 % clob # type
 % 148 # length
-function user.s24_1():void;
+function user.s26_1():void;
     X_0:void := querylog.define("explain copy into ttt from 
\\'Z:/tmp/xyz\\';","user_1",4:int);
     X_3 := sql.mvc();
     (X_24:bat[:int],X_25:bat[:int],X_26:bat[:int]) := 
sql.copy_from(nil:ptr,"|","\\n",nil:str,"null","Z:/tmp/xyz",-1:lng,0:lng,0:int,0:int,nil:str);
diff --git a/monetdb5/mal/mal_client.c b/monetdb5/mal/mal_client.c
--- a/monetdb5/mal/mal_client.c
+++ b/monetdb5/mal/mal_client.c
@@ -110,7 +110,7 @@ MCpopClientInput(Client c)
        ClientInput *x = c->bak;
        if (c->fdin) {
                /* missing protection against closing stdin stream */
-               (void) bstream_destroy(c->fdin);
+               bstream_destroy(c->fdin);
        }
        GDKfree(c->prompt);
        c->fdin = x->fdin;
@@ -184,7 +184,7 @@ MCexitClient(Client c)
                assert(c->bak == NULL);
                if (c->fdin) {
                        /* missing protection against closing stdin stream */
-                       (void) bstream_destroy(c->fdin);
+                       bstream_destroy(c->fdin);
                }
                c->fdout = NULL;
                c->fdin = NULL;
diff --git a/monetdb5/mal/mal_import.c b/monetdb5/mal/mal_import.c
--- a/monetdb5/mal/mal_import.c
+++ b/monetdb5/mal/mal_import.c
@@ -130,7 +130,7 @@ malLoadScript(Client c, str name, bstrea
 
 #define restoreClient1 \
        if (c->fdin)  \
-               (void) bstream_destroy(c->fdin); \
+               bstream_destroy(c->fdin); \
        c->fdin = oldfdin;  \
        c->yycur = oldyycur;  \
        c->listing = oldlisting; \
diff --git a/monetdb5/mal/mal_session.c b/monetdb5/mal/mal_session.c
--- a/monetdb5/mal/mal_session.c
+++ b/monetdb5/mal/mal_session.c
@@ -157,7 +157,7 @@ exit_streams( bstream *fin, stream *fout
                close_stream(fout);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to