Changeset: ba8cec1abf36 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ba8cec1abf36
Modified Files:
        sql/server/rel_statistics.c
        sql/test/BugTracker-2025/Tests/7686-delete-all-empty-table.test
        sql/test/BugTracker-2025/Tests/All
        sql/test/astro/Tests/astro.test
Branch: default
Log Message:

Merge with Mar2025 branch.


diffs (124 lines):

diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -24,7 +24,7 @@ jobs:
           - os: macos-latest
             c_compiler: clang
           - os: macos-latest
-            c_compiler: gcc-12
+            c_compiler: gcc-14
           - os: ubuntu-latest
             c_compiler: gcc
           - os: ubuntu-latest
diff --git a/sql/server/rel_statistics.c b/sql/server/rel_statistics.c
--- a/sql/server/rel_statistics.c
+++ b/sql/server/rel_statistics.c
@@ -1049,6 +1049,10 @@ rel_get_statistics_(visitor *v, sql_rel 
                                        set_count_prop(v->sql->sa, rel, 
get_rel_count(l));
                                }
                        }
+                       if (can_be_pruned && is_semi(rel->op)) {
+                               if (get_rel_count(rel->l) == 0)
+                                       return rel->l;
+                       }
                        break;
                case op_project:
                        if (l) {
diff --git 
a/sql/test/BugTracker-2018/Tests/count_from_commented_function_signatures.Bug-6542.test
 
b/sql/test/BugTracker-2018/Tests/count_from_commented_function_signatures.Bug-6542.test
--- 
a/sql/test/BugTracker-2018/Tests/count_from_commented_function_signatures.Bug-6542.test
+++ 
b/sql/test/BugTracker-2018/Tests/count_from_commented_function_signatures.Bug-6542.test
@@ -6,6 +6,9 @@ CREATE TABLE sys.myfunctions ("id" INTEG
        "schema_id" INTEGER,"system" BOOLEAN,"semantics" BOOLEAN)
 
 statement ok
+insert into sys.myfunctions values( 10000000, 'test', 'func', 'mod', 0, 0, 
false, false, false, 2000, true, false);
+
+statement ok
 CREATE VIEW sys.commented_function_signatures_6542 AS
 SELECT f.id AS fid,
        s.name AS schema,
@@ -52,7 +55,7 @@ project (
 | | | | | | | | | | select (
 | | | | | | | | | | | table("sys"."args") [ "args"."func_id" NOT NULL as 
"p"."func_id", "args"."inout" NOT NULL as "p"."inout", "args"."number" NOT NULL 
as "p"."number" ]
 | | | | | | | | | | ) [ ("p"."inout" NOT NULL) = (tinyint(1) "1") ]
-| | | | | | | | | ) [ ("f"."id" NOT NULL UNIQUE) = ("p"."func_id" NOT NULL) ]
+| | | | | | | | | ) [ boolean(1) "false" ]
 | | | | | | | | ) [ "f"."id" NOT NULL, "p"."number" ] [ "f"."id" PART ASC NOT 
NULL, "p"."number" ASC ]
 | | | | | | | ) [ "f"."id" NOT NULL, "p"."number" ] [ "f"."id" PART ASC NOT 
NULL, "p"."number" NULLS LAST ]
 | | | | | | ) [ "f"."id" NOT NULL, "p"."number" ] [ "f"."id" ASC NOT NULL, 
"p"."number" ASC ]
diff --git a/sql/test/BugTracker-2025/Tests/7686-delete-all-empty-table.test 
b/sql/test/BugTracker-2025/Tests/7686-delete-all-empty-table.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2025/Tests/7686-delete-all-empty-table.test
@@ -0,0 +1,20 @@
+statement ok
+create table a(i int)
+
+statement ok
+create table b as select value as i from generate_series(0,10000000)
+
+query T nosort
+plan delete from a where i in (select i from b where i % 2 = 0)
+----
+REF 1 (2)
+table("sys"."a") [ "a"."i" NOT NULL UNIQUE, "a"."%TID%" NOT NULL UNIQUE ]
+group by (
+| delete(
+| | & REF 1 
+| | project (
+| | | & REF 1 
+| | ) [ "a"."%TID%" NOT NULL UNIQUE ]
+| ) [ "a"."%TID%" NOT NULL ]
+) [  ] [ "sys"."count"() NOT NULL UNIQUE as "%3"."%3" ]
+
diff --git a/sql/test/BugTracker-2025/Tests/All 
b/sql/test/BugTracker-2025/Tests/All
--- a/sql/test/BugTracker-2025/Tests/All
+++ b/sql/test/BugTracker-2025/Tests/All
@@ -28,3 +28,4 @@ 7671-lag-over-empty-bat
 7674-rel_find_designated_index_crash
 7680-union-all
 7682_trigger_crash
+7686-delete-all-empty-table
diff --git a/sql/test/astro/Tests/astro.test b/sql/test/astro/Tests/astro.test
--- a/sql/test/astro/Tests/astro.test
+++ b/sql/test/astro/Tests/astro.test
@@ -71,14 +71,7 @@ group by (
 | | & REF 1 
 | | project (
 | | | left outer join (
-| | | | semijoin (
-| | | | | & REF 1 ,
-| | | | | project (
-| | | | | | select (
-| | | | | | | table("sys"."cm_flux") [ "cm_flux"."runcat" NOT NULL UNIQUE, 
"cm_flux"."filter" NOT NULL UNIQUE, "cm_flux"."active" NOT NULL UNIQUE ]
-| | | | | | ) [ ("cm_flux"."active" NOT NULL UNIQUE) = (boolean(1) "true"), 
(varchar(1)["cm_flux"."filter" NOT NULL UNIQUE] NOT NULL) = (varchar(1) "g") ]
-| | | | | ) [ "cm_flux"."runcat" NOT NULL UNIQUE, "cm_flux"."filter" NOT NULL 
UNIQUE ]
-| | | | ) [ ("cm_flux"."runcat" NOT NULL UNIQUE) = ("fluxz"."runcat" NOT NULL 
UNIQUE), ("cm_flux"."filter" NOT NULL UNIQUE) = ("fluxz"."filter" NOT NULL 
UNIQUE) ],
+| | | | & REF 1 ,
 | | | | select (
 | | | | | table("sys"."cm_flux") [ "cm_flux"."runcat" NOT NULL UNIQUE, 
"cm_flux"."filter" NOT NULL UNIQUE, "cm_flux"."f_datapoints" NOT NULL UNIQUE, 
"cm_flux"."active" NOT NULL UNIQUE, "cm_flux"."avg_flux" NOT NULL UNIQUE, 
"cm_flux"."avg_fluxsq" NOT NULL UNIQUE, "cm_flux"."avg_w" NOT NULL UNIQUE, 
"cm_flux"."avg_wflux" NOT NULL UNIQUE, "cm_flux"."avg_wfluxsq" NOT NULL UNIQUE, 
"cm_flux"."avg_dec_zone_deg" NOT NULL UNIQUE ]
 | | | | ) [ ("cm_flux"."active" NOT NULL UNIQUE) = (boolean(1) "true"), 
(varchar(1)["cm_flux"."filter" NOT NULL UNIQUE] NOT NULL) = (varchar(1) "g") ]
diff --git a/sql/test/proto_loader/odbc/Tests/monetodbc.test 
b/sql/test/proto_loader/odbc/Tests/monetodbc.test
--- a/sql/test/proto_loader/odbc/Tests/monetodbc.test
+++ b/sql/test/proto_loader/odbc/Tests/monetodbc.test
@@ -6,7 +6,7 @@ select * from proto_loader('odbc:Dsn=Mon
 statement error 42000!CATALOG: no such table returning function 'proto_loader'
 select * from proto_loader('odbc:DSN=MonetDB-Test', 'monetdb', 'monetdb', 
'SELECT * FROM INFORMATION_SCHEMA.TABLES')
 
-statement error 42000!SELECT: proto_loader function failed 'odbc_loader 
SQLDriverConnect failed. SQLSTATE IM002, Error code 0, Message 
[unixODBC][Driver Manager]Data source name not found and no default driver 
specified'
+statement error 42000!SELECT: proto_loader function failed 'odbc_loader 
SQLDriverConnect failed. SQLSTATE IM002, Error code 0, Message 
[unixODBC][Driver Manager]Data source name not found...
 select * from proto_loader('odbc:FILEDSN=MonetDB-Test;QUERY=SELECT * FROM 
INFORMATION_SCHEMA.TABLES')
 
 statement error 42000!SELECT: proto_loader function failed 'odbc_loader 
SQLDriverConnect failed. SQLSTATE 01000, Error code 0, Message 
[unixODBC][Driver Manager]Can't open lib 'libMonetODBC' : file not found'
diff --git a/testing/process.py b/testing/process.py
--- a/testing/process.py
+++ b/testing/process.py
@@ -476,7 +476,7 @@ class server(Popen):
     def __init__(self, args=[], stdin=None, stdout=None, stderr=None,
                  mapiport=None, dbname=os.getenv('TSTDB'), dbfarm=None,
                  dbextra=None, bufsize=0,
-                 notrace=False, ipv6=False):
+                 notrace=False, ipv6=True):
         '''Start a server process.'''
         cmd = _server[:]
         if not cmd:
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to