Changeset: f89596aaef8f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/f89596aaef8f
Modified Files:
        clients/odbc/driver/SQLExecute.c
        gdk/gdk_analytic_bounds.c
        gdk/gdk_bat.c
        gdk/gdk_imprints.c
        gdk/gdk_logger.c
        gdk/gdk_logger_old.c
        gdk/gdk_select.c
        sql/storage/bat/bat_logger.c
        testing/process.py
Branch: default
Log Message:

Merge with Sep2022 branch.


diffs (truncated from 468 to 300 lines):

diff --git a/clients/odbc/driver/SQLExecute.c b/clients/odbc/driver/SQLExecute.c
--- a/clients/odbc/driver/SQLExecute.c
+++ b/clients/odbc/driver/SQLExecute.c
@@ -424,9 +424,6 @@ MNDBExecute(ODBCStmt *stmt)
                return SQL_ERROR;
        }
 
-       /* internal state correctness checks */
-       assert(stmt->State == PREPARED0 || stmt->State == EXECUTED0 || 
stmt->ImplRowDescr->descRec != NULL);
-
        assert(stmt->Dbc);
        assert(stmt->Dbc->mid);
        hdl = stmt->hdl;
diff --git a/gdk/gdk_analytic_bounds.c b/gdk/gdk_analytic_bounds.c
--- a/gdk/gdk_analytic_bounds.c
+++ b/gdk/gdk_analytic_bounds.c
@@ -1161,7 +1161,7 @@ GDKanalyticalrangebounds(BAT *r, BAT *b,
                                break;
                        }
                        default:
-                               assert(0);
+                               MT_UNREACHABLE();
                        }
                        if (is_lng_nil(limit) || limit < 0 || 
is_int_nil(int_limit) || int_limit < 0) {
                                goto invalid_bound;
@@ -1446,7 +1446,7 @@ GDKanalyticalwindowbounds(BAT *r, BAT *b
        case 2:
                return GDKanalyticalgroupsbounds(r, b, p, l, bound, tp2, 
preceding);
        default:
-               assert(0);
+               MT_UNREACHABLE();
        }
        GDKerror("42000!unit type %d not supported (this is a bug).\n", unit);
        return GDK_FAIL;
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -100,55 +100,51 @@ BATcreatedesc(oid hseq, int tt, bool hea
                .batTransient = true,
                .batRestricted = BAT_WRITE,
        };
-       if (heapnames && (bn->theap = GDKmalloc(sizeof(Heap))) == NULL) {
-               GDKfree(bn);
-               return NULL;
-       }
 
-       /*
-        * add to BBP
-        */
-       if (BBPinsert(bn) == 0) {
-               GDKfree(bn->theap);
-               GDKfree(bn);
-               return NULL;
-       }
-       /*
-        * fill in heap names, so HEAPallocs can resort to disk for
-        * very large writes.
-        */
        if (heapnames) {
-               assert(bn->theap != NULL);
+               if ((bn->theap = GDKmalloc(sizeof(Heap))) == NULL) {
+                       GDKfree(bn);
+                       return NULL;
+               }
                *bn->theap = (Heap) {
-                       .parentid = bn->batCacheid,
                        .farmid = BBPselectfarm(role, bn->ttype, offheap),
                        .dirty = true,
                };
 
-               const char *nme = BBP_physical(bn->batCacheid);
-               settailname(bn->theap, nme, tt, width);
-
                if (ATOMneedheap(tt)) {
                        if ((bn->tvheap = GDKmalloc(sizeof(Heap))) == NULL) {
-                               BBPclear(bn->batCacheid);
-                               HEAPfree(bn->theap, true);
                                GDKfree(bn->theap);
                                GDKfree(bn);
                                return NULL;
                        }
                        *bn->tvheap = (Heap) {
-                               .parentid = bn->batCacheid,
                                .farmid = BBPselectfarm(role, bn->ttype, 
varheap),
                                .dirty = true,
                        };
+               }
+       }
+       /*
+        * add to BBP
+        */
+       if (BBPinsert(bn) == 0) {
+               GDKfree(bn->tvheap);
+               GDKfree(bn->theap);
+               GDKfree(bn);
+               return NULL;
+       }
+       if (bn->theap) {
+               bn->theap->parentid = bn->batCacheid;
+               ATOMIC_INIT(&bn->theap->refs, 1);
+               const char *nme = BBP_physical(bn->batCacheid);
+               settailname(bn->theap, nme, tt, width);
+
+               if (bn->tvheap) {
+                       bn->tvheap->parentid = bn->batCacheid;
                        ATOMIC_INIT(&bn->tvheap->refs, 1);
                        strconcat_len(bn->tvheap->filename,
                                      sizeof(bn->tvheap->filename),
                                      nme, ".theap", NULL);
                }
-               ATOMIC_INIT(&bn->theap->refs, 1);
-       } else {
-               assert(bn->theap == NULL);
        }
        char name[MT_NAME_LEN];
        snprintf(name, sizeof(name), "heaplock%d", bn->batCacheid); /* fits */
diff --git a/gdk/gdk_hash.h b/gdk/gdk_hash.h
--- a/gdk/gdk_hash.h
+++ b/gdk/gdk_hash.h
@@ -211,7 +211,7 @@ HASHgetlink(const Hash *h, BUN i)
 #define hash_flt(H,V)  hash_int(H,V)
 #define hash_dbl(H,V)  hash_lng(H,V)
 
-static inline BUN __attribute__((__const__))
+static inline BUN __attribute__((__pure__))
 mix_uuid(const uuid *u)
 {
        ulng u1, u2;
diff --git a/gdk/gdk_imprints.c b/gdk/gdk_imprints.c
--- a/gdk/gdk_imprints.c
+++ b/gdk/gdk_imprints.c
@@ -124,15 +124,15 @@
 #define IMPRINTS_VERSION       2
 #define IMPRINTS_HEADER_SIZE   4 /* nr of size_t fields in header */
 
-#define BINSIZE(B, FUNC, T)                    \
-       do {                                    \
-               switch (B) {                    \
-               case 8: FUNC(T,8); break;       \
-               case 16: FUNC(T,16); break;     \
-               case 32: FUNC(T,32); break;     \
-               case 64: FUNC(T,64); break;     \
-               default: assert(0); break;      \
-               }                               \
+#define BINSIZE(B, FUNC, T)                            \
+       do {                                            \
+               switch (B) {                            \
+               case 8: FUNC(T,8); break;               \
+               case 16: FUNC(T,16); break;             \
+               case 32: FUNC(T,32); break;             \
+               case 64: FUNC(T,64); break;             \
+               default: MT_UNREACHABLE(); break;       \
+               }                                       \
        } while (0)
 
 
@@ -253,7 +253,7 @@ imprints_create(BAT *b, BATiter *bi, voi
                break;
        default:
                /* should never reach here */
-               assert(0);
+               MT_UNREACHABLE();
        }
 
        *dictcnt = dcnt;
@@ -636,7 +636,7 @@ BATimprints(BAT *b)
                        break;
                default:
                        /* should never reach here */
-                       assert(0);
+                       MT_UNREACHABLE();
                }
 
                imprints_create(b, &bi,
@@ -762,9 +762,7 @@ IMPSgetbin(int tpe, bte bits, const char
                break;
        }
        default:
-               assert(0);
-               (void) inbins;
-               break;
+               MT_UNREACHABLE();
        }
        return ret;
 }
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -884,7 +884,7 @@ la_apply(logger *lg, logaction *c, int t
                        ret = la_bat_destroy(lg, c, tid);
                break;
        default:
-               assert(0);
+               MT_UNREACHABLE();
        }
        return ret;
 }
diff --git a/gdk/gdk_logger_old.c b/gdk/gdk_logger_old.c
--- a/gdk/gdk_logger_old.c
+++ b/gdk/gdk_logger_old.c
@@ -936,7 +936,7 @@ la_apply(old_logger *lg, logaction *c)
                ret = la_bat_clear(lg, c);
                break;
        default:
-               assert(0);
+               MT_UNREACHABLE();
        }
        lg->changes += (ret == GDK_SUCCEED);
        return ret;
diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -421,7 +421,8 @@ quickins(oid *dst, BUN cnt, oid o, BAT *
                        checkMINMAX(64, TYPE);                          \
                        impsmask(ISDENSE,TEST,64);                      \
                        break;                                          \
-               default: assert(0); break;                              \
+               default:                                                \
+                       MT_UNREACHABLE();                               \
                }                                                       \
        } while (false)
 
@@ -2656,7 +2657,7 @@ rangejoin(BAT *r1, BAT *r2, BAT *l, BAT 
                        default:
                                ncnt = BUN_NONE;
                                GDKerror("unsupported type\n");
-                               assert(0);
+                               MT_UNREACHABLE();
                        }
                        if (ncnt == BUN_NONE) {
                                IMPSdecref(imprints, false);
diff --git a/sql/odbc/samples/Tests/All b/sql/odbc/samples/Tests/All
--- a/sql/odbc/samples/Tests/All
+++ b/sql/odbc/samples/Tests/All
@@ -2,4 +2,4 @@
 # cf., clients/odbc/samples/Makefile.ag
 # and  http://dev.monetdb.org/hg/MonetDB/rev/168f15887717
 #
-HAVE_ODBC&NOT_WIN32?odbcsample1
+HAVE_ODBC?odbcsample1
diff --git a/sql/odbc/samples/Tests/odbcsample1.SQL.sh 
b/sql/odbc/samples/Tests/odbcsample1.SQL.sh
--- a/sql/odbc/samples/Tests/odbcsample1.SQL.sh
+++ b/sql/odbc/samples/Tests/odbcsample1.SQL.sh
@@ -1,19 +1,3 @@
 #!/bin/sh
 
-ODBCINI=$PWD/odbc.ini
-trap "rm $ODBCINI" 0 15
-cat > $ODBCINI <<EOF
-[MonetDB-Test]
-Description    = Test MonetDB Data Source
-Driver         = $LIBDIR/libMonetODBC.so
-Setup          = $LIBDIR/libMonetODBCs.so
-Host           = localhost
-Port           = $MAPIPORT
-Database       = $TSTDB
-User           = monetdb
-Password       = monetdb
-Debug          = 
-
-EOF
-export ODBCINI
-eval odbcsample1 MonetDB-Test
+odbcsample1 MonetDB-Test
diff --git a/sql/odbc/tests/Tests/All b/sql/odbc/tests/Tests/All
--- a/sql/odbc/tests/Tests/All
+++ b/sql/odbc/tests/Tests/All
@@ -1,3 +1,4 @@
-HAVE_ODBC&NOT_WIN32?ODBCgetInfo
-HAVE_ODBC&NOT_WIN32?ODBCmetadata
-HAVE_ODBC&NOT_WIN32?ODBCStmtAttr
+HAVE_ODBC?ODBCgetInfo
+HAVE_ODBC?ODBCmetadata
+HAVE_ODBC?ODBCStmtAttr
+HAVE_PYODBC?pyodbc-test
diff --git a/sql/odbc/tests/Tests/ODBCStmtAttr.SQL.sh 
b/sql/odbc/tests/Tests/ODBCStmtAttr.SQL.sh
--- a/sql/odbc/tests/Tests/ODBCStmtAttr.SQL.sh
+++ b/sql/odbc/tests/Tests/ODBCStmtAttr.SQL.sh
@@ -1,19 +1,3 @@
 #!/bin/sh
 
-ODBCINI=$PWD/odbc.ini
-trap "rm $ODBCINI" 0 15
-cat > $ODBCINI <<EOF
-[MonetDB-Test]
-Description    = Test MonetDB Data Source
-Driver         = $LIBDIR/libMonetODBC.so
-Setup          = $LIBDIR/libMonetODBCs.so
-Host           = localhost
-Port           = $MAPIPORT
-Database       = $TSTDB
-User           = monetdb
-Password       = monetdb
-Debug          = 
-
-EOF
-export ODBCINI
-eval ODBCStmtAttr MonetDB-Test
+ODBCStmtAttr MonetDB-Test
diff --git a/sql/odbc/tests/Tests/ODBCgetInfo.SQL.sh 
b/sql/odbc/tests/Tests/ODBCgetInfo.SQL.sh
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to