Changeset: 8e85578fb7db for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8e85578fb7db Added Files: sql/test/orderidx/Tests/imprints_all_types.sql sql/test/orderidx/Tests/imprints_all_types.stable.err sql/test/orderidx/Tests/imprints_all_types.stable.out sql/test/orderidx/Tests/imprints_hge_type.sql sql/test/orderidx/Tests/imprints_hge_type.stable.err sql/test/orderidx/Tests/imprints_hge_type.stable.out.int128 Modified Files: clients/Tests/exports.stable.out clients/mapiclient/mhelp.c gdk/gdk.h gdk/gdk_bat.c gdk/gdk_batop.c gdk/gdk_bbp.c monetdb5/mal/mal_authorize.c monetdb5/modules/kernel/algebra.c monetdb5/modules/kernel/bat5.c monetdb5/modules/kernel/batmmath.c monetdb5/modules/kernel/microbenchmark.c monetdb5/modules/mal/mkey.c monetdb5/modules/mal/pcre.c monetdb5/optimizer/opt_mergetable.c sql/ChangeLog.Mar2018 sql/backends/monet5/UDF/capi/capi.c sql/backends/monet5/sql.c sql/backends/monet5/sql_cast_impl_int.h sql/backends/monet5/sql_cast_impl_up_to_flt.h sql/backends/monet5/sql_fround_impl.h sql/backends/monet5/sql_round_impl.h sql/backends/monet5/sql_upgrades.c sql/backends/monet5/vaults/netcdf/netcdf.c sql/storage/bat/bat_storage.c sql/test/BugTracker-2017/Tests/oidx-on-strings.Bug-6202.sql sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.powerpc64 sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64 sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64.int128 sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade/Tests/upgrade.stable.out sql/test/emptydb-upgrade/Tests/upgrade.stable.out.32bit sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128 sql/test/emptydb/Tests/check.stable.out sql/test/emptydb/Tests/check.stable.out.32bit sql/test/emptydb/Tests/check.stable.out.int128 sql/test/orderidx/Tests/All sql/test/orderidx/Tests/oidx_all_types.sql sql/test/orderidx/Tests/oidx_all_types.stable.out sql/test/orderidx/Tests/oidx_hge_type.sql sql/test/orderidx/Tests/oidx_hge_type.stable.out.int128 sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade/Tests/upgrade.stable.out sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128 Branch: data-vaults Log Message:
Merge with default diffs (truncated from 3904 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 @@ -141,7 +141,7 @@ void BAThseqbase(BAT *b, oid o); gdk_return BATimprints(BAT *b); BAT *BATintersectcand(BAT *a, BAT *b); gdk_return BATjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, BUN estimate) __attribute__((__warn_unused_result__)); -gdk_return BATkey(BAT *b, int onoff); +gdk_return BATkey(BAT *b, bool onoff); int BATkeyed(BAT *b); gdk_return BATleftjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, int nil_matches, BUN estimate) __attribute__((__warn_unused_result__)); void *BATmax(BAT *b, void *aggr); diff --git a/clients/mapiclient/mhelp.c b/clients/mapiclient/mhelp.c --- a/clients/mapiclient/mhelp.c +++ b/clients/mapiclient/mhelp.c @@ -71,11 +71,11 @@ SQLhelp sqlhelp[] = { "See also https://www.monetdb.org/Documentation/Manuals/SQLreference/SerialTypes"}, {"ALTER USER", "", - "ALTER USER ident WITH [ ENCRYPTED | UNENCRYPTED] PASSWORD string\n" - "ALTER USER ident SET SCHEMA ident\n" - "ALTER USER ident WITH [ENCRYPTED | UNENCRYPTED] PASSWORD SET SCHEMA ident\n" + "ALTER USER ident WITH [ENCRYPTED | UNENCRYPTED] PASSWORD string\n" + "ALTER USER ident SET SCHEMA schemaname\n" + "ALTER USER ident WITH [ENCRYPTED | UNENCRYPTED] PASSWORD string SET SCHEMA schemaname\n" "ALTER USER RENAME TO ident\n" - "ALTER USER SET [ ENCRYPTED | UNENCRYPTED] PASSWORD string USING OLD PASSWORD string", + "ALTER USER SET [ENCRYPTED | UNENCRYPTED] PASSWORD string USING OLD PASSWORD string", NULL, "See also https://www.monetdb.org/Documentation/SQLreference/Users"}, {"ANALYZE", diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -797,9 +797,6 @@ typedef struct { /* assert that atom width is power of 2, i.e., width == 1<<shift */ #define assert_shift_width(shift,width) assert(((shift) == 0 && (width) == 0) || ((unsigned)1<<(shift)) == (unsigned)(width)) -#define GDKLIBRARY_SORTEDPOS 061030U /* version where we can't trust no(rev)sorted */ -#define GDKLIBRARY_OLDWKB 061031U /* old geom WKB format */ -#define GDKLIBRARY_INSERTED 061032U /* inserted and deleted in BBP.dir */ #define GDKLIBRARY_HEADED 061033U /* head properties are stored */ #define GDKLIBRARY_NOKEY 061034U /* nokey values can't be trusted */ #define GDKLIBRARY_BADEMPTY 061035U /* possibility of duplicate empty str */ @@ -1302,7 +1299,7 @@ bat_iterator(BAT *b) * @item void * @tab BATsetcount (BAT *b, BUN cnt) * @item BAT * - * @tab BATkey (BAT *b, int onoff) + * @tab BATkey (BAT *b, bool onoff) * @item BAT * * @tab BATmode (BAT *b, int mode) * @item BAT * @@ -1344,7 +1341,7 @@ gdk_export BUN BATcount_no_nil(BAT *b); gdk_export void BATsetcapacity(BAT *b, BUN cnt); gdk_export void BATsetcount(BAT *b, BUN cnt); gdk_export BUN BATgrows(BAT *b); -gdk_export gdk_return BATkey(BAT *b, int onoff); +gdk_export gdk_return BATkey(BAT *b, bool onoff); gdk_export gdk_return BATmode(BAT *b, int onoff); gdk_export gdk_return BATroles(BAT *b, const char *tnme); gdk_export void BAThseqbase(BAT *b, oid o); diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c --- a/gdk/gdk_bat.c +++ b/gdk/gdk_bat.c @@ -830,7 +830,7 @@ COLcopy(BAT *b, int tt, int writable, in bn->trevsorted = b->trevsorted; bn->tdense = b->tdense && ATOMtype(bn->ttype) == TYPE_oid; if (b->tkey) - BATkey(bn, TRUE); + BATkey(bn, true); bn->tnonil = b->tnonil; if (b->tnosorted > 0 && b->tnosorted < h) bn->tnosorted = b->tnosorted; @@ -1210,7 +1210,7 @@ BUNinplace(BAT *b, BUN p, const void *t, } else if (b->tnorevsorted >= p) b->tnorevsorted = 0; if (((b->ttype != TYPE_void) & b->tkey & !b->tunique) && b->batCount > 1) { - BATkey(b, FALSE); + BATkey(b, false); } else if (!b->tkey && (b->tnokey[0] == p || b->tnokey[1] == p)) b->tnokey[0] = b->tnokey[1] = 0; if (b->tnonil) @@ -1427,25 +1427,24 @@ BATsetcount(BAT *b, BUN cnt) * key property of the association head. */ gdk_return -BATkey(BAT *b, int flag) +BATkey(BAT *b, bool flag) { BATcheck(b, "BATkey", GDK_FAIL); assert(b->batCacheid > 0); - assert(flag == 0 || flag == 1); assert(!b->tunique || flag); if (b->ttype == TYPE_void) { - if (!is_oid_nil(b->tseqbase) && flag == FALSE) { + if (!is_oid_nil(b->tseqbase) && !flag) { GDKerror("BATkey: dense column must be unique.\n"); return GDK_FAIL; } - if (is_oid_nil(b->tseqbase) && flag == TRUE && b->batCount > 1) { + if (is_oid_nil(b->tseqbase) && flag && b->batCount > 1) { GDKerror("BATkey: void column cannot be unique.\n"); return GDK_FAIL; } } - if (b->tkey != (flag != 0)) + if (b->tkey != flag) b->batDirtydesc = TRUE; - b->tkey = flag != 0; + b->tkey = flag; if (!flag) b->tdense = 0; else @@ -1459,7 +1458,7 @@ BATkey(BAT *b, int flag) !BATtkey(bp) && ((BATtvoid(b) && BATtvoid(bp) && b->tseqbase == bp->tseqbase) || BATcount(b) == 0)) - return BATkey(bp, TRUE); + return BATkey(bp, true); } return GDK_SUCCEED; } @@ -1513,7 +1512,7 @@ BATtseqbase(BAT *b, oid o) } } else { if (!b->tkey) { - b->tkey = TRUE; + b->tkey = true; b->tnokey[0] = b->tnokey[1] = 0; } b->tnonil = 1; diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c --- a/gdk/gdk_batop.c +++ b/gdk/gdk_batop.c @@ -690,7 +690,7 @@ BATappend(BAT *b, BAT *n, BAT *s, bit fo b->tkey && (!(BATtordered(b) || BATtrevordered(b)) || !n->tkey || xx == 0)) { - BATkey(b, FALSE); + BATkey(b, false); } if (b->ttype != TYPE_void && b->tsorted && b->tdense && (BATtdense(n) == 0 || @@ -991,7 +991,7 @@ BATslice(BAT *b, BUN l, BUN h) if (bn->batCount <= 1) { bn->tsorted = ATOMlinear(b->ttype); bn->trevsorted = ATOMlinear(b->ttype); - BATkey(bn, 1); + BATkey(bn, true); } else { bn->tsorted = b->tsorted; bn->trevsorted = b->trevsorted; diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c --- a/gdk/gdk_bbp.c +++ b/gdk/gdk_bbp.c @@ -395,230 +395,6 @@ static gdk_return BBPrecover(int farmid) static gdk_return BBPrecover_subdir(void); static bool BBPdiskscan(const char *, size_t); -#ifdef GDKLIBRARY_SORTEDPOS -static void -fixsorted(void) -{ - bat bid; - BAT *b; - BATiter bi; - int dbg = GDKdebug; - bool loaded; - - GDKdebug &= ~(CHECKMASK | PROPMASK); - for (bid = 1; bid < (bat) ATOMIC_GET(BBPsize, BBPsizeLock); bid++) { - if ((b = BBP_desc(bid)) == NULL) - continue; /* not a valid BAT */ - loaded = false; - if (b->tnosorted != 0) { - if (b->tsorted) { - /* position should not be set */ - b->batDirtydesc = 1; - b->tnosorted = 0; - } else if (b->tnosorted == 0 || - b->tnosorted >= b->batCount || - b->ttype < 0) { - /* out of range */ - b->batDirtydesc = 1; - b->tnosorted = 0; - } else if (b->ttype == TYPE_void) { - /* void is always sorted */ - b->batDirtydesc = 1; - b->tnosorted = 0; - b->tsorted = 1; - } else { - if (!loaded) { - b = BATdescriptor(bid); - bi = bat_iterator(b); - if (b == NULL) - b = BBP_desc(bid); - else - loaded = true; - } - if (!loaded || - ATOMcmp(b->ttype, - BUNtail(bi, b->tnosorted - 1), - BUNtail(bi, b->tnosorted)) <= 0) { - /* incorrect hint */ - b->batDirtydesc = 1; - b->tnosorted = 0; - } - } - } - if (b->tnorevsorted != 0) { - if (b->trevsorted) { - /* position should not be set */ - b->batDirtydesc = 1; - b->tnorevsorted = 0; - } else if (b->tnorevsorted == 0 || - b->tnorevsorted >= b->batCount || - b->ttype < 0) { - /* out of range */ - b->batDirtydesc = 1; - b->tnorevsorted = 0; - } else if (b->ttype == TYPE_void) { - /* void is only revsorted if nil */ - b->batDirtydesc = 1; - if (is_oid_nil(b->tseqbase) || - b->batCount <= 1) { - b->tnorevsorted = 0; - b->trevsorted = 1; - } else { - b->tnorevsorted = 1; - } - } else { - if (!loaded) { - b = BATdescriptor(bid); - bi = bat_iterator(b); - if (b == NULL) - b = BBP_desc(bid); - else - loaded = true; - } - if (!loaded || - ATOMcmp(b->ttype, - BUNtail(bi, b->tnorevsorted - 1), - BUNtail(bi, b->tnorevsorted)) >= 0) { - /* incorrect hint */ - b->batDirtydesc = 1; - b->tnorevsorted = 0; - } - } - } - if (loaded) - BBPunfix(bid); - } - GDKdebug = dbg; -} -#endif - -#ifdef GDKLIBRARY_OLDWKB -/* "Danger, Will Robinson". - * - * Upgrade the Well-known Binary (WKB) from older geom versions to the - * one in current use. This function must be called before the SQL - * Write-ahead Log (WAL) is processed, and in order to be able to - * recover safely, we call it here. The WAL may create new BATs with - * the WKB type, or append values to an existing BAT. In the first - * case it is hard, and in the second impossible, to upgrade the BAT - * later. - * - * This function is located here, since it needs to be called early - * (as discussed), and because it calls functions that are GDK only. - * There is a little knowledge about the MonetDB WKB type, but nothing - * about the internals of the type. The only knowledge is the layout - * of the old and new structures. - * - * All errors are fatal. - */ -static void -fixwkbheap(void) -{ - bat bid, bbpsize = getBBPsize(); - BAT *b; - int utypewkb = ATOMunknown_find("wkb"); - const char *nme, *bnme; - char filename[64]; - Heap h1, h2; - const var_t *restrict old; - var_t *restrict new; - BUN i; - struct old_wkb { - int len; - char data[FLEXIBLE_ARRAY_MEMBER]; - } *owkb; - struct new_wkb { - int len; - int srid; - char data[FLEXIBLE_ARRAY_MEMBER]; - } *nwkb; - char *oldname, *newname; - - if (utypewkb == 0) _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list