Changeset: 457c48d9cd96 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/457c48d9cd96
Modified Files:
        sql/test/BugTracker-2026/Tests/All
        testing/Mtest.py.in
Branch: default
Log Message:

Merge with Dec2025 branch.


diffs (73 lines):

diff --git a/sql/server/sql_qc.c b/sql/server/sql_qc.c
--- a/sql/server/sql_qc.c
+++ b/sql/server/sql_qc.c
@@ -32,7 +32,7 @@ qc_create(allocator *sa, int clientid, i
 static void
 cq_delete(int clientid, cq *q)
 {
-       if (q->name)
+       if (q->name && q->f && q->f->instantiated)
                backend_freecode(NULL, clientid, q->name);
        /* q, params and name are allocated using sa, ie need to be delete last 
*/
        if (q->sa)
@@ -42,7 +42,7 @@ cq_delete(int clientid, cq *q)
 static void
 cq_restart(int clientid, cq *q)
 {
-       if (q->f->imp)
+       if (q->f && q->f->imp && q->f->instantiated)
                backend_freecode(NULL, clientid, q->f->imp);
        q->f->instantiated = false;
 }
diff --git a/sql/test/BugTracker-2026/Tests/7959-double-function-destroy.test 
b/sql/test/BugTracker-2026/Tests/7959-double-function-destroy.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2026/Tests/7959-double-function-destroy.test
@@ -0,0 +1,18 @@
+statement ok
+PREPARE SELECT 1
+
+statement error
+SELECT * FROM non_existent_table
+
+query I
+SELECT 1
+----
+1
+
+statement error
+SELECT * FROM another_non_existent_table;
+
+query I
+SELECT 1
+----
+1
diff --git a/sql/test/BugTracker-2026/Tests/All 
b/sql/test/BugTracker-2026/Tests/All
--- a/sql/test/BugTracker-2026/Tests/All
+++ b/sql/test/BugTracker-2026/Tests/All
@@ -144,3 +144,4 @@ KNOWNFAIL?7954-exp_visitor-crash
 KNOWNFAIL?7955-rel_setop_get_statistics-crash
 KNOWNFAIL?7956-rel_remove_const_aggr-crash
 KNOWNFAIL?7957-tail_type-crash
+7959-double-function-destroy
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -2893,7 +2893,7 @@ class ServerClass:
                 if os.path.exists(self.pollfile):
                     break
                 # wait at most 30 seconds for the server to start
-                if time.time() > starttime + 30:
+                if self.timeout and time.time() > starttime + 30:
                     if procdebug:
                         print('timeout starting server')
                     if os.name == 'nt':
@@ -2927,7 +2927,7 @@ class ServerClass:
                 curtime = time.time()
                 if curtime >= endtime:
                     break
-                line = proc.stdout.readline(timeout=endtime - curtime)
+                line = proc.stdout.readline(timeout=endtime - curtime if 
self.timeout else None)
                 if not line:
                     break
                 self.outfile.write(line)
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to