Changeset: 10b4bbfb8dbc for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/10b4bbfb8dbc
Modified Files:
        sql/backends/monet5/sql.c
Branch: Aug2024
Log Message:

merged


diffs (truncated from 329 to 300 lines):

diff --git a/ChangeLog.Dec2023 b/ChangeLog.Dec2023
--- a/ChangeLog.Dec2023
+++ b/ChangeLog.Dec2023
@@ -1,3 +1,7 @@
 # ChangeLog file for devel
 # This file is updated with Maddlog
 
+* Tue Aug  6 2024 Sjoerd Mullender <sjo...@acm.org>
+- The CMake configuration files for building extensions have now been
+  included in the various MonetDB development RPMs and debs.
+
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -211,6 +211,12 @@ functionality of MonetDB.
 %{_includedir}/monetdb/monet*.h
 %{_libdir}/libbat*.so
 %{_libdir}/pkgconfig/monetdb-gdk.pc
+%dir %{_datadir}/monetdb
+%dir %{_datadir}/monetdb/cmake
+%{_datadir}/monetdb/cmake/gdkTargets*.cmake
+%{_datadir}/monetdb/cmake/matomicTargets.cmake
+%{_datadir}/monetdb/cmake/mstringTargets.cmake
+%{_datadir}/monetdb/cmake/monetdb_config_headerTargets.cmake
 %endif
 
 %package stream
@@ -258,6 +264,7 @@ library.
 %{_includedir}/monetdb/stream.h
 %{_includedir}/monetdb/stream_socket.h
 %{_libdir}/pkgconfig/monetdb-stream.pc
+%{_datadir}/monetdb/cmake/streamTargets*.cmake
 %endif
 
 %package client-lib
@@ -338,6 +345,7 @@ This package contains the files needed t
 %{_includedir}/monetdb/mapi*.h
 %{_includedir}/monetdb/msettings.h
 %{_libdir}/pkgconfig/monetdb-mapi.pc
+%{_datadir}/monetdb/cmake/mapiTargets*.cmake
 %endif
 
 %if %{without compat}
@@ -644,6 +652,7 @@ used from the MAL level.
 %{_includedir}/monetdb/mel.h
 %{_libdir}/libmonetdb5*.so
 %{_libdir}/pkgconfig/monetdb5.pc
+%{_datadir}/monetdb/cmake/monetdb5Targets*.cmake
 %endif
 
 %package SQL
@@ -701,6 +710,7 @@ Summary: MonetDB SQL server modules deve
 Group: Applications/Databases
 Requires: %{name}-SQL%{?_isa} = %{version}-%{release}
 Requires: %{name}-server-devel%{?_isa} = %{version}-%{release}
+Requires: %{name}-embedded-devel%{?_isa} = %{version}-%{release}
 
 %description SQL-devel
 MonetDB is a database management system that is developed from a
@@ -716,6 +726,8 @@ This package contains files needed to de
 %{_includedir}/monetdb/rel_*.h
 %{_includedir}/monetdb/sql*.h
 %{_includedir}/monetdb/store_*.h
+%{_datadir}/monetdb/cmake/MonetDBConfig*.cmake
+%{_datadir}/monetdb/cmake/sqlTargets*.cmake
 %endif
 
 %if %{without compat}
@@ -759,6 +771,7 @@ program that uses MonetDB as an embeddab
 %{_libdir}/libmonetdbe.so
 %{_includedir}/monetdb/monetdbe.h
 %{_libdir}/pkgconfig/monetdbe.pc
+%{_datadir}/monetdb/cmake/monetdbeTargets*.cmake
 
 %package embedded-tests
 Summary: MonetDBe tests package
@@ -938,7 +951,6 @@ rm -f "${RPM_BUILD_ROOT}"%{_libdir}/mone
 rm -f "${RPM_BUILD_ROOT}"%{_libdir}/monetdb5*/lib_microbenchmark*.so
 rm -f "${RPM_BUILD_ROOT}"%{_libdir}/monetdb5*/lib_udf*.so
 rm -f "${RPM_BUILD_ROOT}"%{_bindir}/monetdb_mtest.sh
-rm -rf "${RPM_BUILD_ROOT}"%{_datadir}/monetdb # /cmake
 
 if [ -x /usr/sbin/hardlink ]; then
     /usr/sbin/hardlink -cv "${RPM_BUILD_ROOT}"%{_datadir}/selinux
diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -2251,14 +2251,10 @@ dump_table(Mapi mid, const char *schema,
                                goto doreturn;
                        }
                        for (int64_t i = 0; i < rows; i++) {
-                               if (mapi_fetch_row(hdl) == 0) {
-                                       mapi_close_handle(hdl);
-                                       fprintf(stderr, "unexepcted error\n");
-                                       goto doreturn;
-                               }
-                               tables[i].schema = strdup(mapi_fetch_field(hdl, 
0));
-                               tables[i].table = strdup(mapi_fetch_field(hdl, 
1));
-                               if (tables[i].schema == NULL || tables[i].table 
== NULL) {
+                               tables[i].schema = tables[i].table = NULL;
+                               if (mapi_fetch_row(hdl) == 0 ||
+                                       (tables[i].schema = 
strdup(mapi_fetch_field(hdl, 0))) == NULL ||
+                                       (tables[i].table = 
strdup(mapi_fetch_field(hdl, 1))) == NULL) {
                                        do {
                                                free(tables[i].schema);
                                                free(tables[i].table);
diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c
--- a/clients/mapilib/mapi.c
+++ b/clients/mapilib/mapi.c
@@ -1786,12 +1786,6 @@ mapi_new(msettings *settings)
        mid = malloc(sizeof(*mid));
        if (mid == NULL)
                return NULL;
-       if (settings == NULL)
-               settings = msettings_create();
-       if (settings == NULL) {
-               free(mid);
-               return NULL;
-       }
 
        /* then fill in some details */
        *mid = MapiStructDefaults;
@@ -1800,6 +1794,13 @@ mapi_new(msettings *settings)
                mapi_destroy(mid);
                return NULL;
        }
+       if (settings == NULL) {
+               settings = msettings_create();
+               if (settings == NULL) {
+                       mapi_destroy(mid);
+                       return NULL;
+               }
+       }
        mid->settings = settings;
        mid->blk.buf[0] = 0;
        mid->blk.buf[mid->blk.lim] = 0;
diff --git a/debian/control b/debian/control
--- a/debian/control
+++ b/debian/control
@@ -274,7 +274,8 @@ Package: monetdb-sql-dev
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends},
  monetdb-server-dev (= ${source:Version}),
- monetdb-sql (= ${source:Version})
+ monetdb-sql (= ${source:Version})),
+ libmonetdbe-dev (= ${source:Version})
 Replaces: monetdb5-sql-dev (<< 11.50.0)
 Break: monetdb5-sql-dev (<< 11.50.0)
 Description: MonetDB SQL support
diff --git a/debian/libmonetdb-client-dev.install 
b/debian/libmonetdb-client-dev.install
--- a/debian/libmonetdb-client-dev.install
+++ b/debian/libmonetdb-client-dev.install
@@ -2,3 +2,4 @@ debian/tmp/usr/lib/x86_64-linux-gnu/libm
 debian/tmp/usr/include/monetdb/mapi*.h usr/include/monetdb
 debian/tmp/usr/include/monetdb/msettings.h usr/include/monetdb
 debian/tmp/usr/lib/x86_64-linux-gnu/pkgconfig/monetdb-mapi.pc 
usr/lib/x86_64-linux-gnu/pkgconfig
+debian/tmp/usr/share/monetdb/cmake/mapiTargets*.cmake usr/share/monetdb/cmake
diff --git a/debian/libmonetdb-dev.install b/debian/libmonetdb-dev.install
--- a/debian/libmonetdb-dev.install
+++ b/debian/libmonetdb-dev.install
@@ -7,3 +7,7 @@ debian/tmp/usr/include/monetdb/mstring.h
 debian/tmp/usr/include/monetdb/monet_*.h usr/include/monetdb
 debian/tmp/usr/include/monetdb/monetdb_*.h usr/include/monetdb
 debian/tmp/usr/lib/x86_64-linux-gnu/pkgconfig/monetdb-gdk.pc 
usr/lib/x86_64-linux-gnu/pkgconfig
+debian/tmp/usr/share/monetdb/cmake/gdkTargets*.cmake usr/share/monetdb/cmake
+debian/tmp/usr/share/monetdb/cmake/matomicTargets.cmake usr/share/monetdb/cmake
+debian/tmp/usr/share/monetdb/cmake/mstringTargets.cmake usr/share/monetdb/cmake
+debian/tmp/usr/share/monetdb/cmake/monetdb_config_headerTargets.cmake 
usr/share/monetdb/cmake
diff --git a/debian/libmonetdb-stream-dev.install 
b/debian/libmonetdb-stream-dev.install
--- a/debian/libmonetdb-stream-dev.install
+++ b/debian/libmonetdb-stream-dev.install
@@ -2,3 +2,4 @@ debian/tmp/usr/lib/x86_64-linux-gnu/libs
 debian/tmp/usr/include/monetdb/stream.h usr/include/monetdb
 debian/tmp/usr/include/monetdb/stream_socket.h usr/include/monetdb
 debian/tmp/usr/lib/x86_64-linux-gnu/pkgconfig/monetdb-stream.pc 
usr/lib/x86_64-linux-gnu/pkgconfig
+debian/tmp/usr/share/monetdb/cmake/streamTargets*.cmake usr/share/monetdb/cmake
diff --git a/debian/libmonetdbe-dev.install b/debian/libmonetdbe-dev.install
--- a/debian/libmonetdbe-dev.install
+++ b/debian/libmonetdbe-dev.install
@@ -1,3 +1,4 @@
 debian/tmp/usr/lib/x86_64-linux-gnu/libmonetdbe.so usr/lib/x86_64-linux-gnu
 debian/tmp/usr/include/monetdb/monetdbe.h usr/include/monetdb
 debian/tmp/usr/lib/x86_64-linux-gnu/pkgconfig/monetdbe.pc 
usr/lib/x86_64-linux-gnu/pkgconfig
+debian/tmp/usr/share/monetdb/cmake/monetdbeTargets.cmake 
usr/share/monetdb/cmake
diff --git a/debian/monetdb5-server-dev.install 
b/debian/monetdb5-server-dev.install
--- a/debian/monetdb5-server-dev.install
+++ b/debian/monetdb5-server-dev.install
@@ -2,3 +2,4 @@ debian/tmp/usr/lib/x86_64-linux-gnu/libm
 debian/tmp/usr/include/monetdb/mal*.h usr/include/monetdb
 debian/tmp/usr/include/monetdb/mel.h usr/include/monetdb
 debian/tmp/usr/lib/x86_64-linux-gnu/pkgconfig/monetdb5.pc 
usr/lib/x86_64-linux-gnu/pkgconfig
+debian/tmp/usr/share/monetdb/cmake/monetdb5Targets*.cmake 
usr/share/monetdb/cmake
diff --git a/debian/monetdb5-sql-dev.install b/debian/monetdb5-sql-dev.install
--- a/debian/monetdb5-sql-dev.install
+++ b/debian/monetdb5-sql-dev.install
@@ -2,3 +2,5 @@ debian/tmp/usr/include/monetdb/opt_backe
 debian/tmp/usr/include/monetdb/rel_*.h usr/include/monetdb
 debian/tmp/usr/include/monetdb/sql*.h usr/include/monetdb
 debian/tmp/usr/include/monetdb/store_*.h usr/include/monetdb
+debian/tmp/usr/share/monetdb/cmake/MonetDBConfigTargets*.cmake 
usr/share/monetdb/cmake
+debian/tmp/usr/share/monetdb/cmake/sqlTargets*.cmake usr/share/monetdb/cmake
diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -3066,9 +3066,11 @@ BATcount_no_nil(BAT *b, BAT *s)
 
        hseq = b->hseqbase;
        canditer_init(&ci, b, s);
-       if (b->tnonil)
+       BATiter bi = bat_iterator(b);
+       if (bi.nonil) {
+               bat_iterator_end(&bi);
                return ci.ncand;
-       BATiter bi = bat_iterator(b);
+       }
        p = bi.base;
        t = ATOMbasetype(bi.type);
        switch (t) {
diff --git a/gdk/gdk_cand.c b/gdk/gdk_cand.c
--- a/gdk/gdk_cand.c
+++ b/gdk/gdk_cand.c
@@ -846,6 +846,7 @@ canditer_mask_next(const struct canditer
                                o = 31;
                                if (p == 0)
                                        return oid_nil;
+                               p--;
                        } else {
                                o--;
                        }
diff --git a/geom/monetdb5/geomBulk.c b/geom/monetdb5/geomBulk.c
--- a/geom/monetdb5/geomBulk.c
+++ b/geom/monetdb5/geomBulk.c
@@ -823,10 +823,10 @@ wkbTransform_bat_cand(bat *outBAT_id, ba
                        GEOSSetSRID_r(geoshandle, transformedGeosGeometry, 
*srid_dst);
                        /* get the wkb */
                        if ((transformedWKB = 
geos2wkb(transformedGeosGeometry)) == NULL)
-                               throw(MAL, "batgeom.Transform", SQLSTATE(38000) 
"Geos operation geos2wkb failed");
+                               err = createException(MAL, "batgeom.Transform", 
SQLSTATE(38000) "Geos operation geos2wkb failed");
                        else {
                                if (BUNappend(outBAT, transformedWKB, false) != 
GDK_SUCCEED) {
-                                       throw(MAL, "batgeom.Transform", 
SQLSTATE(HY013) MAL_MALLOC_FAIL);
+                                       err = createException(MAL, 
"batgeom.Transform", SQLSTATE(HY013) MAL_MALLOC_FAIL);
                                }
                        }
 
@@ -842,10 +842,14 @@ wkbTransform_bat_cand(bat *outBAT_id, ba
        BBPunfix(inBAT->batCacheid);
        if (s)
                BBPunfix(s->batCacheid);
-       *outBAT_id = outBAT->batCacheid;
-       BBPkeepref(outBAT);
+       if (err) {
+               BBPreclaim(outBAT);
+       } else {
+               *outBAT_id = outBAT->batCacheid;
+               BBPkeepref(outBAT);
+       }
 
-       return MAL_SUCCEED;
+       return err;
 #endif
 }
 
diff --git a/monetdb5/mal/mal_client.c b/monetdb5/mal/mal_client.c
--- a/monetdb5/mal/mal_client.c
+++ b/monetdb5/mal/mal_client.c
@@ -184,12 +184,12 @@ MCgetClient(int id)
 static void
 MCresetProfiler(stream *fdout)
 {
-       if (fdout != maleventstream)
-               return;
        MT_lock_set(&mal_profileLock);
-       maleventstream = NULL;
-       profilerStatus = 0;
-       profilerMode = 0;
+       if (fdout == maleventstream) {
+               maleventstream = NULL;
+               profilerStatus = 0;
+               profilerMode = 0;
+       }
        MT_lock_unset(&mal_profileLock);
 }
 
diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c
--- a/monetdb5/mal/mal_interpreter.c
+++ b/monetdb5/mal/mal_interpreter.c
@@ -571,6 +571,9 @@ runMALsequence(Client cntxt, MalBlkPtr m
                        break;
                }
 
+               freeException(ret);
+               ret = MAL_SUCCEED;
+
                if (stk->status) {
                        /* pause procedure from SYSMON */
                        if (stk->status == 'p') {
@@ -661,8 +664,6 @@ runMALsequence(Client cntxt, MalBlkPtr m
                        }
                }
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to