Changeset: a6644c39f110 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/a6644c39f110 Modified Files: MonetDB.spec monetdb5/mal/mal_profiler.c monetdb5/modules/mal/mal_io.c sql/backends/monet5/sql.c sql/backends/monet5/sql_rank.c Branch: default Log Message:
Merged with Jul2021 diffs (truncated from 497 to 300 lines): diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -124,13 +124,7 @@ BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(libpcre) >= 4.5 %endif BuildRequires: pkgconfig(zlib) -%if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} > 7 -# not on RHEL 7 BuildRequires: pkgconfig(liblz4) >= 1.8 -%global LZ4 ON -%else -%global LZ4 OFF -%endif %if %{with py3integration} BuildRequires: pkgconfig(python3) >= 3.5 BuildRequires: python3-numpy @@ -350,6 +344,13 @@ Recommends: php-monetdb >= 1.0 %endif Requires: MonetDB5-server%{?_isa} = %{version}-%{release} Requires: python3-pymonetdb >= 1.0.6 +%if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} > 7 +Recommends: python3dist(lz4) +Recommends: python3dist(scipy) +%else +Recommends: python36-lz4 +Recommends: python36-scipy +%endif %description client-tests MonetDB is a database management system that is developed from a @@ -796,7 +797,7 @@ fi -DWITH_CMOCKA=OFF \ -DWITH_CRYPTO=ON \ -DWITH_CURL=ON \ - -DWITH_LZ4=%{LZ4} \ + -DWITH_LZ4=ON \ -DWITH_LZMA=ON \ -DWITH_PCRE=ON \ -DWITH_PROJ=OFF \ diff --git a/common/utils/mcrypt.c b/common/utils/mcrypt.c --- a/common/utils/mcrypt.c +++ b/common/utils/mcrypt.c @@ -385,13 +385,7 @@ mcrypt_RIPEMD160Sum(const char *string, char * mcrypt_BackendSum(const char *string, size_t len) { -#if (defined(HAVE_OPENSSL) || defined(HAVE_COMMONCRYPTO)) return mcryptsum(MONETDB5_PASSWDHASH_TOKEN)(string, len); -#else - (void) string; - (void) len; - return NULL; -#endif } /** diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c --- a/gdk/gdk_logger.c +++ b/gdk/gdk_logger.c @@ -1391,6 +1391,7 @@ logger_switch_bat(BAT *old, BAT *new, co } if (BBPrename(old->batCacheid, NULL) != 0 || BBPrename(new->batCacheid, bak) != 0) { + GDKerror("rename (%s) failed\n", bak); return GDK_FAIL; } BBPretain(new->batCacheid); @@ -1799,18 +1800,6 @@ logger_load(int debug, const char *fn, c GDKerror("cannot create type bats"); goto error; } - strconcat_len(bak, sizeof(bak), fn, "_type_id", NULL); - if (BBPrename(lg->type_id->batCacheid, bak) < 0) { - goto error; - } - strconcat_len(bak, sizeof(bak), fn, "_type_nme", NULL); - if (BBPrename(lg->type_nme->batCacheid, bak) < 0) { - goto error; - } - strconcat_len(bak, sizeof(bak), fn, "_type_nr", NULL); - if (BBPrename(lg->type_nr->batCacheid, bak) < 0) { - goto error; - } /* this is intentional - if catalog_bid is 0, force it to find * the persistent catalog */ @@ -1945,19 +1934,11 @@ logger_load(int debug, const char *fn, c GDKerror("failed to create catalog_cnt bat"); goto error; } - strconcat_len(bak, sizeof(bak), fn, "_catalog_cnt", NULL); - if (BBPrename(lg->catalog_cnt->batCacheid, bak) < 0) { - goto error; - } lg->catalog_lid = logbat_new(TYPE_lng, 1, TRANSIENT); if (lg->catalog_lid == NULL) { GDKerror("failed to create catalog_lid bat"); goto error; } - strconcat_len(bak, sizeof(bak), fn, "_catalog_lid", NULL); - if (BBPrename(lg->catalog_lid->batCacheid, bak) < 0) { - goto error; - } if (bm_get_counts(lg) != GDK_SUCCEED) goto error; @@ -2784,6 +2765,7 @@ static gdk_return bm_commit(logger *lg) { BUN p; + logger_lock(lg); BAT *b = lg->catalog_bid; const log_bid *bids; @@ -2792,10 +2774,12 @@ bm_commit(logger *lg) log_bid bid = bids[p]; BAT *lb; + assert(bid); if ((lb = BATdescriptor(bid)) == NULL || BATmode(lb, false) != GDK_SUCCEED) { TRC_WARNING(GDK, "Failed to set bat (%d%s) persistent\n", bid, !lb?" gone":""); logbat_destroy(lb); + logger_unlock(lg); return GDK_FAIL; } @@ -2806,6 +2790,7 @@ bm_commit(logger *lg) fprintf(stderr, "#bm_commit: create %d (%d)\n", bid, BBP_lrefs(bid)); } + logger_unlock(lg); return bm_subcommit(lg); } diff --git a/monetdb5/mal/mal_authorize.c b/monetdb5/mal/mal_authorize.c --- a/monetdb5/mal/mal_authorize.c +++ b/monetdb5/mal/mal_authorize.c @@ -1001,7 +1001,6 @@ AUTHcypherValue(str *ret, const char *va static str AUTHverifyPassword(const char *passwd) { -#if (defined(HAVE_OPENSSL) || defined(HAVE_COMMONCRYPTO)) const char *p = passwd; size_t len = strlen(p); @@ -1021,13 +1020,6 @@ AUTHverifyPassword(const char *passwd) } return(MAL_SUCCEED); -#else - if (GDKembedded()) - return(MAL_SUCCEED); - (void) passwd; - throw(MAL, "verifyPassword", "Unknown backend hash algorithm: %s", - MONETDB5_PASSWDHASH); -#endif } static BUN diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c --- a/monetdb5/mal/mal_profiler.c +++ b/monetdb5/mal/mal_profiler.c @@ -321,8 +321,11 @@ prepareProfilerEvent(Client cntxt, MalBl tname = getTypeName(getBatType(tpe)); ok = logadd(&logbuf, ",\"type\":\"bat[:%s]\"", tname); GDKfree(tname); - if (!ok) + if (!ok) { + if (d) + BBPunfix(d->batCacheid); goto cleanup_and_exit; + } if(d) { BAT *v; cnt = BATcount(d); @@ -335,11 +338,15 @@ prepareProfilerEvent(Client cntxt, MalBl ",\"mode\":\"%s\"", VIEWtparent(d), d->hseqbase, - v && !v->batTransient ? "persistent" : "transient")) - goto cleanup_and_exit; + v && !v->batTransient ? "persistent" : "transient")) { + BBPunfix(d->batCacheid); + goto cleanup_and_exit; + } } else { - if (!logadd(&logbuf, ",\"mode\":\"%s\"", (d->batTransient ? "transient" : "persistent"))) + if (!logadd(&logbuf, ",\"mode\":\"%s\"", (d->batTransient ? "transient" : "persistent"))) { + BBPunfix(d->batCacheid); goto cleanup_and_exit; + } } if (!logadd(&logbuf, ",\"sorted\":%d" @@ -351,8 +358,10 @@ prepareProfilerEvent(Client cntxt, MalBl d->trevsorted, d->tnonil, d->tnil, - d->tkey)) + d->tkey)) { + BBPunfix(d->batCacheid); goto cleanup_and_exit; + } #define keepprop(NME, LNME) \ do { \ const void *valp = BATgetprop(d, NME); \ @@ -363,8 +372,10 @@ prepareProfilerEvent(Client cntxt, MalBl ok = logadd(&logbuf, ",\"%s\":\"%s\"", LNME, cvquote); \ GDKfree(cv); \ GDKfree(cvquote); \ - if (!ok) \ + if (!ok) { \ + BBPunfix(d->batCacheid); \ goto cleanup_and_exit; \ + } \ } \ } \ } while (0) @@ -383,22 +394,31 @@ prepareProfilerEvent(Client cntxt, MalBl *c = 0; ok = logadd(&logbuf, ",\"file\":\"%s\"", cv + 1); GDKfree(cv); - if (!ok) + if (!ok) { + BBPunfix(d->batCacheid); goto cleanup_and_exit; + } total += cnt << d->tshift; - if (!logadd(&logbuf, ",\"width\":%d", d->twidth)) + if (!logadd(&logbuf, ",\"width\":%d", d->twidth)) { + BBPunfix(d->batCacheid); goto cleanup_and_exit; + } /* keeping information about the individual auxiliary heaps is helpful during analysis. */ MT_rwlock_rdlock(&d->thashlock); if( d->thash && !logadd(&logbuf, ",\"hash\":" LLFMT, (lng) hashinfo(d->thash, d->batCacheid))) { MT_rwlock_rdunlock(&d->thashlock); + BBPunfix(d->batCacheid); goto cleanup_and_exit; } MT_rwlock_rdunlock(&d->thashlock); - if( d->tvheap && !logadd(&logbuf, ",\"vheap\":" LLFMT, (lng) heapinfo(d->tvheap, d->batCacheid))) + if( d->tvheap && !logadd(&logbuf, ",\"vheap\":" LLFMT, (lng) heapinfo(d->tvheap, d->batCacheid))) { + BBPunfix(d->batCacheid); goto cleanup_and_exit; - if( d->timprints && !logadd(&logbuf, ",\"imprints\":" LLFMT, (lng) IMPSimprintsize(d))) + } + if( d->timprints && !logadd(&logbuf, ",\"imprints\":" LLFMT, (lng) IMPSimprintsize(d))) { + BBPunfix(d->batCacheid); goto cleanup_and_exit; + } /* if (!logadd(&logbuf, "\"debug\":\"%s\",", d->debugmessages)) goto cleanup_and_exit; */ BBPunfix(d->batCacheid); } diff --git a/monetdb5/modules/atoms/blob.c b/monetdb5/modules/atoms/blob.c --- a/monetdb5/modules/atoms/blob.c +++ b/monetdb5/modules/atoms/blob.c @@ -438,19 +438,19 @@ BLOBblob_blob_bulk(bat *res, const bat * oid off; bool nils = false; - if ((b = BATdescriptor(*bid)) == NULL) { - msg = createException(SQL, "batcalc.blob_blob_bulk", SQLSTATE(HY002) RUNTIME_OBJECT_MISSING); - goto bailout; - } if (sid && !is_bat_nil(*sid)) { if ((s = BATdescriptor(*sid)) == NULL) { msg = createException(SQL, "batcalc.blob_blob_bulk", SQLSTATE(HY002) RUNTIME_OBJECT_MISSING); goto bailout; } } else { - BBPkeepref(*res = b->batCacheid); /* nothing to convert, return */ + BBPretain(*res = *bid); /* nothing to convert, return */ return MAL_SUCCEED; } + if ((b = BATdescriptor(*bid)) == NULL) { + msg = createException(SQL, "batcalc.blob_blob_bulk", SQLSTATE(HY002) RUNTIME_OBJECT_MISSING); + goto bailout; + } off = b->hseqbase; q = canditer_init(&ci, b, s); if (!(dst = COLnew(ci.hseq, TYPE_blob, q, TRANSIENT))) { diff --git a/monetdb5/modules/atoms/uuid.c b/monetdb5/modules/atoms/uuid.c --- a/monetdb5/modules/atoms/uuid.c +++ b/monetdb5/modules/atoms/uuid.c @@ -186,19 +186,19 @@ UUIDuuid2uuid_bulk(bat *res, const bat * bool nils = false; BATiter bi; - if ((b = BATdescriptor(*bid)) == NULL) { - msg = createException(SQL, "batcalc.uuid2uuidbulk", SQLSTATE(HY002) RUNTIME_OBJECT_MISSING); - goto bailout; - } if (sid && !is_bat_nil(*sid)) { if ((s = BATdescriptor(*sid)) == NULL) { msg = createException(SQL, "batcalc.uuid2uuidbulk", SQLSTATE(HY002) RUNTIME_OBJECT_MISSING); goto bailout; } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list