Changeset: 665ca02aa874 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/665ca02aa874
Modified Files:
gdk/gdk_bat.c
gdk/gdk_utils.c
sql/storage/bat/bat_storage.c
Branch: default
Log Message:
Merge with Dec2025 branch.
diffs (104 lines):
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -786,6 +786,13 @@ COLcopy2(BAT *b, int tt, bool writable,
* offset heap is only (less than) half the size
* of the parent's offset heap */
slowcopy = true;
+ } else if (bi.vh && role == PERSISTENT && !writable) {
+ /* writable usually means no view, but
+ * role==PERSISTENT already implies that, so we
+ * use it to decide whether we can do a faster
+ * memcpy (if true) or must do a slower
+ * individual insert (if false) */
+ slowcopy = true;
}
}
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -2507,8 +2507,10 @@ void
ma_free(allocator *sa, void *obj)
{
COND_LOCK_ALLOCATOR(sa);
- if (!obj || ma_tmp_active(sa))
+ if (!obj || ma_tmp_active(sa)) {
+ COND_UNLOCK_ALLOCATOR(sa);
return; // nothing to do
+ }
// retrieve size from header
void *ptr = (char *) obj - MA_HEADER_SIZE;
size_t sz = *((size_t *) ptr);
diff --git a/sql/benchmarks/tpcds/Tests/alter.timeout
b/sql/benchmarks/tpcds/Tests/alter.timeout
deleted file mode 100644
--- a/sql/benchmarks/tpcds/Tests/alter.timeout
+++ /dev/null
@@ -1,1 +0,0 @@
-3
diff --git a/sql/benchmarks/tpcds/Tests/load.timeout
b/sql/benchmarks/tpcds/Tests/load.timeout
--- a/sql/benchmarks/tpcds/Tests/load.timeout
+++ b/sql/benchmarks/tpcds/Tests/load.timeout
@@ -1,1 +1,1 @@
-3
+5
diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -5078,7 +5078,7 @@ vacuum_col(sql_trans *tr, sql_column *c,
BAT *b = NULL, *bn = NULL;;
if ((b = bind_col(tr, c, 0)) == NULL)
return LOG_ERR;
- if ((bn = COLcopy(b, b->ttype, true, PERSISTENT)) == NULL) {
+ if ((bn = COLcopy(b, b->ttype, false, PERSISTENT)) == NULL) {
BBPreclaim(b);
return LOG_ERR;
}
@@ -5117,7 +5117,7 @@ vacuum_tab(sql_trans *tr, sql_table *t,
BAT *b = NULL, *bn = NULL;;
if ((b = bind_col(tr, c, 0)) == NULL)
return LOG_ERR;
- if ((bn = COLcopy(b, b->ttype, true, PERSISTENT)) == NULL) {
+ if ((bn = COLcopy(b, b->ttype, false, PERSISTENT)) == NULL) {
BBPreclaim(b);
return LOG_ERR;
}
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -2746,7 +2746,7 @@ class ServerClass:
self.sendusr1()
def checkkeys(self):
- if not checkkeys:
+ if not checkkeys or self.port is None:
return
self.outfile.flush()
try:
@@ -2817,12 +2817,10 @@ class ServerClass:
self.lock.release()
def LaunchIt(self, cwd=None, env=os.environ):
- self.outfile.flush()
- self.errfile.flush()
-
cmd = self.cmd
if procdebug:
print('LaunchIt: starting process "%s" (inpipe)\n' % '"
"'.join(cmd))
+
stdin = process.DEVNULL
stdout = self.outfile
stderr = self.errfile
@@ -2843,6 +2841,12 @@ class ServerClass:
else:
stdout = process.PIPE
+ print(f'# Launching {cmd}', file=self.outfile)
+ if cwd is not None:
+ print(f'# in directory {cwd}', file=self.outfile)
+ print(f'# Environment: {env}', file=self.outfile)
+ self.outfile.flush()
+ self.errfile.flush()
if os.name == 'nt':
proc = process.Popen(cmd, stdin=stdin, stdout=stdout,
stderr=stderr, text=True, cwd=cwd, env=env,
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]