Changeset: f30ac90a9d91 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/f30ac90a9d91
Modified Files:
clients/mapiclient/mclient.c
gdk/gdk_batop.c
gdk/gdk_bbp.c
gdk/gdk_logger.c
monetdb5/mal/mal_session.c
monetdb5/optimizer/opt_pipes.c
sql/backends/monet5/UDF/capi/capi.c
sql/storage/store.c
sql/test/Tests/setoptimizer.test
Branch: default
Log Message:
Merge with Sep2022 branch.
diffs (193 lines):
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -2859,7 +2859,8 @@ doFile(Mapi mid, stream *fp, bool useins
}
} else {
setFormatter(line);
- mapi_set_size_header(mid,
strcmp(line, "raw") == 0);
+ if (mode == SQL)
+
mapi_set_size_header(mid, strcmp(line, "raw") == 0);
}
continue;
case 't':
@@ -3543,6 +3544,19 @@ main(int argc, char **argv)
mapi_setAutocommit(mid, autocommit);
if (mode == SQL && !settz)
mapi_set_time_zone(mid, 0);
+ if (output) {
+ setFormatter(output);
+ if (mode == SQL)
+ mapi_set_size_header(mid, strcmp(output, "raw") == 0);
+ free(output);
+ } else {
+ if (mode == SQL) {
+ setFormatter("sql");
+ mapi_set_size_header(mid, false);
+ } else {
+ setFormatter("raw");
+ }
+ }
if (mapi_error(mid) == MOK)
mapi_reconnect(mid); /* actually, initial connect */
@@ -3571,18 +3585,6 @@ main(int argc, char **argv)
mapi_log(mid, logfile);
mapi_trace(mid, trace);
- if (output) {
- setFormatter(output);
- mapi_set_size_header(mid, strcmp(output, "raw") == 0);
- free(output);
- } else {
- if (mode == SQL) {
- setFormatter("sql");
- } else {
- setFormatter("raw");
- mapi_set_size_header(mid, true);
- }
- }
/* give the user a welcome message with some general info */
if (!has_fileargs && command == NULL && isatty(fileno(stdin))) {
char *lang;
diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -683,7 +683,7 @@ BATappend2(BAT *b, BAT *n, BAT *s, bool
ALIGNapp(b, force, GDK_FAIL);
if (ATOMstorage(ATOMtype(b->ttype)) != ATOMstorage(ATOMtype(n->ttype)))
{
- GDKerror("Incompatible operands.\n");
+ GDKerror("Incompatible operands ("ALGOBATFMT" vs.
"ALGOBATFMT").\n", ALGOBATPAR(b), ALGOBATPAR(n));
return GDK_FAIL;
}
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -1506,6 +1506,8 @@ BBPtrim(bool aggressive)
if (!aggressive)
flag |= BBPHOT;
for (bat bid = 1, nbat = (bat) ATOMIC_GET(&BBPsize); bid < nbat; bid++)
{
+ /* don't do this during a (sub)commit */
+ MT_lock_set(&GDKtmLock);
MT_lock_set(&GDKswapLock(bid));
BAT *b = NULL;
bool swap = false;
@@ -1531,6 +1533,7 @@ BBPtrim(bool aggressive)
GDKerror("unload failed for bat %d", bid);
n++;
}
+ MT_lock_unset(&GDKtmLock);
}
TRC_DEBUG(BAT_, "unloaded %d bats%s\n", n, aggressive ? " (also hot)" :
"");
}
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -755,8 +755,9 @@ la_bat_destroy(logger *lg, logaction *la
if (bid < 0)
return GDK_FAIL;
if (!bid) {
- GDKerror("la_bat_destroy failed to find bid for object %d\n",
la->cid);
- return GDK_FAIL;
+ GDKerror("la_bat_destroy failed to find bid for object %d
(issue ignored)\n", la->cid);
+ GDKclrerr();
+ return GDK_SUCCEED;
}
if (bid && log_del_bat(lg, bid) != GDK_SUCCEED)
return GDK_FAIL;
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
@@ -368,7 +368,10 @@ MSscheduleClient(str command, str challe
mnstr_printf(c->fdout, "!%s\n", s);
mnstr_flush(c->fdout, MNSTR_FLUSH_DATA);
GDKfree(s);
+ exit_streams(fin, fout);
+ GDKfree(command);
MCcloseClient(c);
+ return;
}
if (!GDKgetenv_isyes(mal_enableflag) &&
(strncasecmp("sql", lang, 3) != 0 && uid != 0))
{
diff --git a/sql/backends/monet5/UDF/capi/capi.c
b/sql/backends/monet5/UDF/capi/capi.c
--- a/sql/backends/monet5/UDF/capi/capi.c
+++ b/sql/backends/monet5/UDF/capi/capi.c
@@ -220,7 +220,9 @@ static void *wrapped_GDK_zalloc_nojump(s
if (!ptr) {
return NULL;
}
- return add_allocated_region(ptr);
+ /*return add_allocated_region(ptr); we GDKfree this already in the
CUDFeval, so no need to keep it in the
+ * allocated_regions */
+ return ptr;
}
#define GENERATE_NUMERIC_IS_NULL(type, tpename) \
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -3700,14 +3700,14 @@ sql_trans_rollback(sql_trans *tr, bool c
tr->changes = NULL;
tr->logchanges = 0;
} else {
- if (!commit_lock)
- MT_lock_set(&store->commit);
- store_lock(store);
- ulng oldest = store_oldest(store, tr);
- store_pending_changes(store, oldest, tr);
- store_unlock(store);
- if (!commit_lock)
- MT_lock_unset(&store->commit);
+ if (commit_lock || MT_lock_try(&store->commit)) {
+ store_lock(store);
+ ulng oldest = store_oldest(store, tr);
+ store_pending_changes(store, oldest, tr);
+ store_unlock(store);
+ if (!commit_lock)
+ MT_lock_unset(&store->commit);
+ }
}
if (!list_empty(tr->predicates)) {
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -2253,31 +2253,31 @@ def RunTest(env, TST, COND, oktests, len
##if [ -f .all.left-over.tmp.bats. ] ; then mv -f
.all.left-over.tmp.bats. $TSTTRGBASE/Tests/.old.left-over.tmp.bats. ; fi
if tres == 'socket':
- if verbosity == 0:
+ if verbosity == 0 and not produce_html:
print("\n%s : Socket!" % TST)
elif verbosity > 1:
print("(Socket!) ", end='')
if tres == 'timeout':
- if verbosity == 0:
+ if verbosity == 0 and not produce_html:
print("\n%s : Timeout!" % TST)
elif verbosity > 1:
print("(Timeout!) ", end='')
if tres == 'recursion':
- if verbosity == 0:
+ if verbosity == 0 and not produce_html:
print("\n%s : Recursion!" % TST)
elif verbosity > 1:
print("(Recursion!) ", end='')
if tres == 'segfault':
- if verbosity == 0:
+ if verbosity == 0 and not produce_html:
print("\n%s : Crashed!" % TST)
elif verbosity > 1:
print("(Crashed!) ", end='')
if tres == 'signal':
- if verbosity == 0:
+ if verbosity == 0 and not produce_html:
print("\n%s : Signaled!" % TST)
elif verbosity > 1:
print("(Signaled!) ", end='')
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]