Changeset: 7496a03e60d1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/7496a03e60d1
Modified Files:
        gdk/gdk.h
        gdk/gdk_batop.c
        monetdb5/mal/mal_function.c
        monetdb5/mal/mal_profiler.c
        monetdb5/modules/mal/mal_mapi.c
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_statement.c
        sql/server/rel_optimizer.c
        sql/server/sql_parser.y
        sql/storage/store.c
Branch: resource_management
Log Message:

merge with default


diffs (truncated from 3864 to 300 lines):

diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -48,12 +48,7 @@ jobs:
           ref: ${{ github.ref }}
 
       - name: install pymonetdb cryptography
-        run: pip3 install --user --upgrade pymonetdb cryptography
-        if: runner.os != 'macOS'
-
-      - name: install pymonetdb cryptography
         run: pip3 install --user --break-system-packages --upgrade pymonetdb 
cryptography
-        if: runner.os == 'macOS'
 
       - name: make MonetDB on linux
         run: |
diff --git a/ChangeLog.Aug2024 b/ChangeLog.Aug2024
--- a/ChangeLog.Aug2024
+++ b/ChangeLog.Aug2024
@@ -1,3 +1,10 @@
 # ChangeLog file for devel
 # This file is updated with Maddlog
 
+* Thu Oct 17 2024 Niels Nes <ni...@cwi.nl>
+- Changed generic Decimal handling (ie without digits/scale), old cased
+  mapped always into dec(18,3) now this is only done in case of create of
+  a column. In other cases the coercion to the correct decimal type is
+  based on the input data type. For *api (LANG*PY/C(pp)/R) we no longer
+  allow generic decimal type in the function definitions.
+
diff --git a/clients/Tests/MAL-signatures-hge.test 
b/clients/Tests/MAL-signatures-hge.test
--- a/clients/Tests/MAL-signatures-hge.test
+++ b/clients/Tests/MAL-signatures-hge.test
@@ -49539,6 +49539,11 @@ pattern sql.rank(X_0:any_1, X_1:bit, X_2
 SQLrank;
 return the ranked groups
 sql
+read_dump_rel
+pattern sql.read_dump_rel(X_0:str):str
+SQLread_dump_rel;
+Reads sql_rel string into sql_rel object and then writes it to the return value
+sql
 register
 unsafe pattern sql.register(X_0:str, X_1:str, X_2:str, X_3:str):int
 RAstatement2;
diff --git a/clients/Tests/MAL-signatures.test 
b/clients/Tests/MAL-signatures.test
--- a/clients/Tests/MAL-signatures.test
+++ b/clients/Tests/MAL-signatures.test
@@ -37969,6 +37969,11 @@ pattern sql.rank(X_0:any_1, X_1:bit, X_2
 SQLrank;
 return the ranked groups
 sql
+read_dump_rel
+pattern sql.read_dump_rel(X_0:str):str
+SQLread_dump_rel;
+Reads sql_rel string into sql_rel object and then writes it to the return value
+sql
 register
 unsafe pattern sql.register(X_0:str, X_1:str, X_2:str, X_3:str):int
 RAstatement2;
diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c
--- a/clients/mapilib/mapi.c
+++ b/clients/mapilib/mapi.c
@@ -519,7 +519,7 @@
  * zero is returned upon encountering an error or when the database value
  * is NULL; this can be analyzed in using @code{mapi\_error()}.
  *
- * @item size_t mapi_fetch_fiels_len(MapiHdl hdl, int fnr)
+ * @item size_t mapi_fetch_field_len(MapiHdl hdl, int fnr)
  *
  * Return the length of the C-string representation excluding trailing NULL
  * byte of the value.  Zero is returned upon encountering an error, when the
diff --git a/documentation/source/manual_pages/monetdbd.rst.in 
b/documentation/source/manual_pages/monetdbd.rst.in
--- a/documentation/source/manual_pages/monetdbd.rst.in
+++ b/documentation/source/manual_pages/monetdbd.rst.in
@@ -251,6 +251,17 @@ using the **set** command. The following
    use redirects instead of proxies. Changing this property takes effect
    immediately at runtime.
 
+**keepalive**
+   Specifies the keepalive interval for incoming connections. If this is
+   set to a positive number, *monetdbd* configures the system to send
+   automatic periodic keepalive probes on all client connections. This
+   can help keep firewalls from killing connections that seem idle but
+   are in fact waiting for a long running query to finish. The default
+   is 60 seconds. When 127 consecutive probes have failed, the
+   connection is closed. With the default setting of 60 seconds this
+   means the connection is closed when the client has been unreachable
+   for more than two hours.
+
 REMOTE DATABASES
 ================
 
diff --git a/documentation/source/manual_pages/mserver5.rst.in 
b/documentation/source/manual_pages/mserver5.rst.in
--- a/documentation/source/manual_pages/mserver5.rst.in
+++ b/documentation/source/manual_pages/mserver5.rst.in
@@ -167,13 +167,16 @@ MSERVER5 OPTIONS
 
    **268435456**
       (HEAPMASK) trace/debug HEAPextend; used only for development &
-      debugging **536870912** (FORCEMITOMASK) forcefully activate
-      mitosis even on small tables, i.e., split small tables in as many
-      (tiny) pieces as there are cores (threads) available; this allows
-      us to test mitosis functionality without requiring large data sets
-      (— at the expense of a potentially significant interpretation
-      overhead for unnecessarily large plans); used only for development
-      & testing; set automatically by Mtest.py
+      debugging
+
+   **536870912**
+      (FORCEMITOMASK) forcefully activate mitosis even on small tables,
+      i.e., split small tables in as many (tiny) pieces as there are
+      cores (threads) available; this allows us to test mitosis
+      functionality without requiring large data sets (— at the expense
+      of a potentially significant interpretation overhead for
+      unnecessarily large plans); used only for development & testing;
+      set automatically by Mtest.py
 
 **--algorithms**
    Equivalent to **--debug=**\ *(ALGOMASK)*.
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -390,6 +390,7 @@ gdk_export _Noreturn void GDKfatal(_In_z
 #define IOMASK         (1U<<4)
 #define BATMASK                (1U<<5)
 #define PARMASK                (1U<<7)
+#define TESTINGMASK    (1U<<8)
 #define TMMASK         (1U<<9)
 #define TEMMASK                (1U<<10)
 #define PERFMASK       (1U<<12)
diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -2443,7 +2443,7 @@ BATsort(BAT **sorted, BAT **order, BAT *
                if (groups) {
                        if (BATtkey(b)) {
                                /* singleton groups */
-                               gn = BATdense(0, 0, BATcount(b));
+                               gn = BATdense(b->hseqbase, 0, BATcount(b));
                                if (gn == NULL)
                                        goto error;
                        } else {
@@ -2451,7 +2451,7 @@ BATsort(BAT **sorted, BAT **order, BAT *
                                const oid *o = 0;
                                assert(BATcount(b) == 1 ||
                                       (b->tsorted && b->trevsorted));
-                               gn = BATconstant(0, TYPE_oid, &o, BATcount(b), 
TRANSIENT);
+                               gn = BATconstant(b->hseqbase, TYPE_oid, &o, 
BATcount(b), TRANSIENT);
                                if (gn == NULL)
                                        goto error;
                        }
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -2350,7 +2350,7 @@ log_new(int debug, const char *fn, const
        lng max_file_age = GDKgetenv_int("wal_max_file_age", 600);
        lng max_file_size = 0;
 
-       if (GDKdebug & FORCEMITOMASK) {
+       if (GDKdebug & TESTINGMASK) {
                max_file_size = 2048; /* 2 KiB */
        } else {
                const char *max_file_size_str = GDKgetenv("wal_max_file_size");
@@ -2548,7 +2548,7 @@ log_create(int debug, const char *fn, co
 static logged_range *
 log_next_logfile(logger *lg, ulng ts)
 {
-       int m = (ATOMIC_GET(&GDKdebug) & FORCEMITOMASK) ? 1000 : 100;
+       int m = (ATOMIC_GET(&GDKdebug) & TESTINGMASK) ? 1000 : 100;
        if (!lg->pending || !lg->pending->next)
                return NULL;
        rotation_lock(lg);
diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h
--- a/gdk/gdk_private.h
+++ b/gdk/gdk_private.h
@@ -164,9 +164,6 @@ gdk_return GDKtracer_init(const char *db
        __attribute__((__visibility__("hidden")));
 gdk_return GDKunlink(int farmid, const char *dir, const char *nme, const char 
*extension)
        __attribute__((__visibility__("hidden")));
-#define GDKwarning(...)                                                \
-       GDKtracer_log(__FILE__, __func__, __LINE__, M_WARNING,  \
-                     GDK, NULL, __VA_ARGS__)
 lng getBBPlogno(void)
        __attribute__((__visibility__("hidden")));
 BUN HASHappend(BAT *b, BUN i, const void *v)
diff --git a/gdk/gdk_strimps.c b/gdk/gdk_strimps.c
--- a/gdk/gdk_strimps.c
+++ b/gdk/gdk_strimps.c
@@ -94,7 +94,7 @@
 #define STRIMP_HEADER_SIZE 64
 #define STRIMP_PAIRS (STRIMP_HEADER_SIZE - 1)
 #define STRIMP_CREATION_THRESHOLD                              \
-       ((BUN) ((ATOMIC_GET(&GDKdebug) & FORCEMITOMASK)? 100 : 5000))
+       ((BUN) ((ATOMIC_GET(&GDKdebug) & TESTINGMASK)? 100 : 5000))
 
 typedef struct {
 #ifdef UTF8STRIMPS
diff --git a/gdk/gdk_system.c b/gdk/gdk_system.c
--- a/gdk/gdk_system.c
+++ b/gdk/gdk_system.c
@@ -1115,7 +1115,7 @@ MT_kill_threads(void)
        for (struct mtthread *t = mtthreads; t; t = t->next) {
                if (t == self)
                        continue;
-               TRC_INFO(GDK, "Killing thread %s\n", t->threadname);
+               GDKwarning("Killing thread %s\n", t->threadname);
                killed |= MT_kill_thread(t);
        }
        thread_unlock();
diff --git a/gdk/gdk_system_private.h b/gdk/gdk_system_private.h
--- a/gdk/gdk_system_private.h
+++ b/gdk/gdk_system_private.h
@@ -38,6 +38,9 @@ bool MT_thread_override_limits(void)
                SetLastError(0);                                        \
        } while (0)
 #endif
+#define GDKwarning(...)                                                \
+       GDKtracer_log(__FILE__, __func__, __LINE__, M_WARNING,  \
+                     GDK, NULL, __VA_ARGS__)
 
 struct freebats {
        bat freebats;
diff --git a/gdk/gdk_tracer.c b/gdk/gdk_tracer.c
--- a/gdk/gdk_tracer.c
+++ b/gdk/gdk_tracer.c
@@ -605,7 +605,7 @@ GDKtracer_log(const char *file, const ch
        if (interrupted)
                reinit();
 
-       if (level <= M_WARNING || (ATOMIC_GET(&GDKdebug) & FORCEMITOMASK)) {
+       if (level <= M_WARNING || (ATOMIC_GET(&GDKdebug) & TESTINGMASK)) {
                fprintf(level <= M_ERROR && !isexit ? stderr : stdout,
                        "#%s%s%s: %s: %s: %s%s%s\n",
                        add_ts ? ts : "",
diff --git a/monetdb5/ChangeLog.Aug2024 b/monetdb5/ChangeLog.Aug2024
--- a/monetdb5/ChangeLog.Aug2024
+++ b/monetdb5/ChangeLog.Aug2024
@@ -1,3 +1,7 @@
 # ChangeLog file for MonetDB5
 # This file is updated with Maddlog
 
+* Mon Oct 14 2024 stefanos mavros <stemav...@gmail.com>
+- The server prints out an informative message for the case of a graceful
+  termination.
+
diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c
--- a/monetdb5/mal/mal.c
+++ b/monetdb5/mal/mal.c
@@ -165,5 +165,6 @@ void
 mal_exit(int status)
 {
        mal_reset();
+       printf("# mserver5 exiting\n");
        exit(status);                           /* properly end GDK */
 }
diff --git a/monetdb5/mal/mal_function.c b/monetdb5/mal/mal_function.c
--- a/monetdb5/mal/mal_function.c
+++ b/monetdb5/mal/mal_function.c
@@ -790,7 +790,7 @@ chkDeclarations(MalBlkPtr mb)
                                blks[++top] = blkId;
                        }
                        if (blockExit(p) && top > 0) {
-                               if (dflow == blkId) {
+                               if (dflow == blks[top]) {
                                        dflow = -1;
                                } else
                                        /*
diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c
--- a/monetdb5/mal/mal_profiler.c
+++ b/monetdb5/mal/mal_profiler.c
@@ -1081,7 +1081,7 @@ static void
 profilerHeartbeat(void *dummy)
 {
        int t;
-       const int timeout = ATOMIC_GET(&GDKdebug) & FORCEMITOMASK ? 10 : 25;
+       const int timeout = ATOMIC_GET(&GDKdebug) & TESTINGMASK ? 10 : 25;
 
        (void) dummy;
        for (;;) {
diff --git a/monetdb5/modules/mal/clients.c b/monetdb5/modules/mal/clients.c
--- a/monetdb5/modules/mal/clients.c
+++ b/monetdb5/modules/mal/clients.c
@@ -475,8 +475,8 @@ CLTqueryTimeout(Client cntxt, MalBlkPtr 
                msg = createException(MAL, "clients.setquerytimeout",
                                                          "Session not active 
anymore");
        else {
-               /* when testing (FORCEMITOMASK), reduce timeout of 1 sec to 1 
msec */
-               lng timeout_micro = ATOMIC_GET(&GDKdebug) & FORCEMITOMASK
+               /* when testing (TESTINGMASK), reduce timeout of 1 sec to 1 
msec */
+               lng timeout_micro = ATOMIC_GET(&GDKdebug) & TESTINGMASK
                                && qto == 1 ? 1000 : (lng) qto * 1000000;
                mal_clients[idx].querytimeout = timeout_micro;
        }
diff --git a/monetdb5/modules/mal/mal_mapi.c b/monetdb5/modules/mal/mal_mapi.c
--- a/monetdb5/modules/mal/mal_mapi.c
+++ b/monetdb5/modules/mal/mal_mapi.c
@@ -292,7 +292,7 @@ SERVERlistenThread(SOCKET *Sock)
                }
                /* Wait up to 0.1 seconds (0.01 if testing) */
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to