Changeset: 01f5e769a5ee for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=01f5e769a5ee 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/mal/tablet.c sql/backends/monet5/sql_cast.c sql/backends/monet5/sql_cast_impl_int.h sql/backends/monet5/sql_fround.c sql/backends/monet5/sql_upgrades.c 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: data-vaults Log Message:
Merge with default diffs (truncated from 2728 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