Changeset: cf07f8627882 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cf07f8627882
Added Files:
        sql/test/BugTracker-2019/Tests/alter_table_drop_column.Bug-6749.py
        
sql/test/BugTracker-2019/Tests/alter_table_drop_column.Bug-6749.stable.err
        
sql/test/BugTracker-2019/Tests/alter_table_drop_column.Bug-6749.stable.out
        
sql/test/BugTracker-2019/Tests/remote-table-non-existent-column.Bug-6750.py
Modified Files:
        .hgtags
        MonetDB.spec
        clients/Tests/exports.stable.out
        clients/odbc/driver/ODBCUtil.c
        debian/changelog
        debian/fix-deb.sh
        gdk/gdk.h
        gdk/gdk_bat.c
        gdk/gdk_batop.c
        gdk/gdk_bbp.c
        gdk/gdk_group.c
        gdk/gdk_join.c
        gdk/gdk_logger.c
        gdk/gdk_private.h
        gdk/gdk_unique.c
        gdk/gdk_utils.c
        libversions
        monetdb5/mal/mal_import.c
        monetdb5/modules/mal/orderidx.c
        monetdb5/modules/mal/tablet.c
        monetdb5/modules/mal/wlc.c
        monetdb5/modules/mal/wlc.h
        sql/ChangeLog-Archive
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_upgrades.c
        sql/backends/monet5/wlr.c
        sql/jdbc/tests/JdbcClient_create_tables.sql
        sql/jdbc/tests/JdbcClient_inserts_selects.sql
        sql/jdbc/tests/Tests/Test_JdbcClient.stable.out
        sql/server/sql_mvc.c
        sql/storage/bat/bat_storage.c
        sql/storage/sql_storage.h
        sql/storage/store.c
        sql/test/BugDay_2005-10-06_2.9.3/Tests/not_null.SF-933194.stable.out
        sql/test/BugDay_2005-10-06_2.9.3/Tests/type_dump_test.SF-989257-src.sql
        
sql/test/BugDay_2005-10-06_2.9.3/Tests/type_dump_test.SF-989257.stable.out
        
sql/test/BugTracker-2010/Tests/incomplete-utf8-sequence.Bug-2575.stable.err
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.sql
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.stable.out
        sql/test/BugTracker-2019/Tests/All
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64
        sql/test/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.stable.out.32bit
        sql/test/emptydb/Tests/check.stable.out.int128
        sql/test/subquery/Tests/correlated.sql
        sql/test/testdb-upgrade-hge/Tests/dump.stable.out.int128
        sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade/Tests/dump.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
        testing/exportutils.py
Branch: hot-snapshot
Log Message:

Merge branch 'default' into hot-snapshot


diffs (truncated from 41042 to 300 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -730,3 +730,9 @@ 2366418b3d88b268117a6f981638c4da686497aa
 02147798590c5f9d7c837bec07277313c1fa29cc Apr2019_7
 2366418b3d88b268117a6f981638c4da686497aa Apr2019_SP1_release
 02147798590c5f9d7c837bec07277313c1fa29cc Apr2019_SP1_release
+a6674f7048a13fe7dc53995a4f723d33a34bce23 Apr2019_9
+02147798590c5f9d7c837bec07277313c1fa29cc Apr2019_SP1_release
+a6674f7048a13fe7dc53995a4f723d33a34bce23 Apr2019_SP1_release
+6566d90185b83ed95129db9ea68baf52f2de5cc7 Apr2019_11
+a6674f7048a13fe7dc53995a4f723d33a34bce23 Apr2019_SP1_release
+6566d90185b83ed95129db9ea68baf52f2de5cc7 Apr2019_SP1_release
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -1061,6 +1061,26 @@ done
 %postun -p /sbin/ldconfig
 
 %changelog
+* Fri Aug 30 2019 Sjoerd Mullender <sjo...@acm.org> - 11.33.11-20190830
+- Rebuilt.
+- BZ#6749: mserver5 restart aborts/segfaults after dropping column
+  with constraint
+
+* Tue Aug 20 2019 Sjoerd Mullender <sjo...@acm.org> - 11.33.9-20190820
+- Rebuilt.
+- BZ#6571: Jdbc connection hangs
+- BZ#6693: mix of long and short queries make JDBC-driver hang
+- BZ#6741: report no such table when execute “alter table tb1 rename
+  to tb2” according to using mapi
+- BZ#6744: CREATE SEQUENCE seq;  fails
+- BZ#6748: MonetDB "forgets" columns after ALTER TABLE statements
+- BZ#6751: ODBC driver(11.33.3) Seg Faults when "fn ucase" is used in SQL
+
+* Tue Aug 20 2019 Sjoerd Mullender <sjo...@acm.org> - 11.33.9-20190820
+- sql: Many fixes for using the server in a highly concurrent setting with
+  many clients doing read-only queries mixed with clients doing updating
+  queries.
+
 * Wed Aug 07 2019 Panagiotis Koutsourakis <kutsu...@monetdbsolutions.com> - 
11.33.7-20190807
 - Rebuilt.
 
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -107,6 +107,7 @@ dbl BATcalcvariance_sample(dbl *avgp, BA
 BAT *BATcalcxor(BAT *b1, BAT *b2, BAT *s);
 BAT *BATcalcxorcst(BAT *b, const ValRecord *v, BAT *s);
 bool BATcandcontains(BAT *s, oid o);
+bool BATcheckorderidx(BAT *b);
 gdk_return BATclear(BAT *b, bool force);
 void BATcommit(BAT *b);
 BAT *BATconstant(oid hseq, int tt, const void *val, BUN cnt, role_t role);
@@ -169,6 +170,7 @@ void BATrmprop(BAT *b, enum prop_t idx);
 gdk_return BATroles(BAT *b, const char *tnme);
 BAT *BATsample(BAT *b, BUN n);
 BAT *BATsample_with_seed(BAT *b, BUN n, unsigned seed);
+gdk_return BATsave(BAT *b) __attribute__((__warn_unused_result__));
 BAT *BATselect(BAT *b, BAT *s, const void *tl, const void *th, bool li, bool 
hi, bool anti);
 gdk_return BATsemijoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, 
bool nil_matches, BUN estimate) __attribute__((__warn_unused_result__));
 gdk_return BATsetaccess(BAT *b, restrict_t mode);
@@ -1907,7 +1909,7 @@ str WLCinit(void);
 str WLCinitCmd(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str WLCmaster(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str WLCquery(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-void WLCreadConfig(FILE *fd);
+str WLCreadConfig(FILE *fd);
 void WLCreset(void);
 str WLCrollback(int clientid);
 str WLCrollbackCmd(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
diff --git a/clients/odbc/driver/ODBCUtil.c b/clients/odbc/driver/ODBCUtil.c
--- a/clients/odbc/driver/ODBCUtil.c
+++ b/clients/odbc/driver/ODBCUtil.c
@@ -799,6 +799,7 @@ ODBCTranslateSQL(ODBCDbc *dbc, const SQL
                                                        }
                                                }
                                                strcpy(q + pr, p);
+                                               length = pr + strlen(p);
                                                free(nquery);
                                                nquery = q;
                                                q += n;
diff --git a/debian/changelog b/debian/changelog
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,32 @@
+monetdb (11.33.11) unstable; urgency=low
+
+  * Rebuilt.
+  * BZ#6749: mserver5 restart aborts/segfaults after dropping column
+    with constraint
+
+ -- Sjoerd Mullender <sjo...@acm.org>  Fri, 30 Aug 2019 02:27:33 +0200
+
+monetdb (11.33.9) unstable; urgency=low
+
+  * Rebuilt.
+  * BZ#6571: Jdbc connection hangs
+  * BZ#6693: mix of long and short queries make JDBC-driver hang
+  * BZ#6741: report no such table when execute “alter table tb1 rename
+    to tb2” according to using mapi
+  * BZ#6744: CREATE SEQUENCE seq;  fails
+  * BZ#6748: MonetDB "forgets" columns after ALTER TABLE statements
+  * BZ#6751: ODBC driver(11.33.3) Seg Faults when "fn ucase" is used in SQL
+
+ -- Sjoerd Mullender <sjo...@acm.org>  Tue, 20 Aug 2019 13:39:03 +0200
+
+monetdb (11.33.9) unstable; urgency=low
+
+  * sql: Many fixes for using the server in a highly concurrent setting with
+    many clients doing read-only queries mixed with clients doing updating
+    queries.
+
+ -- Sjoerd Mullender <sjo...@acm.org>  Tue, 20 Aug 2019 13:39:03 +0200
+
 monetdb (11.33.7) unstable; urgency=low
 
   * Rebuilt.
diff --git a/debian/fix-deb.sh b/debian/fix-deb.sh
--- a/debian/fix-deb.sh
+++ b/debian/fix-deb.sh
@@ -45,36 +45,15 @@ if [[ $ARCH == i?86 ]]; then
 fi
 
 case $SUITE in
-trusty)
-    # fix control file because this system doesn't have liblas and a
-    # too old version of libgeos
-    sed -i -e 's/, libgeos-dev[^,]*//;s/, liblas-c-dev[^,]*//' \
-       -e 's/libcfitsio-dev/libcfitsio3-dev/' \
-       -e '/^Package:.*lidar/,/^$/d' \
-       -e '/^Package:.*geom/,/^$/d' debian/control
-    rm debian/libmonetdb5-server-lidar.install 
debian/libmonetdb5-server-geom.install
-    sed -i 
'/geo[ms]=yes/s/yes/no/;/gdal=yes/s/yes/no/;/lidar=yes/s/yes/no/;/liblas=yes/s/yes/no/'
 debian/rules
-    ;;
-esac
-
-case $SUITE in
-jessie | trusty)
-    # Xenial Xerus (and presumably newer releases) uses php-cli,
-    # all others still have php5-cli and don't have php*-sockets
+jessie)
+    # Debian 8 still have php5-cli and doesn't have php*-sockets;
+    # newer ones use php-cli and do have php-sockets.
     sed -i 's/php-cli/php5-cli/;s/, *php-sockets//' debian/control
     ;;
 esac
 
 case $SUITE in
-trusty)
-    # the trusty linker produces unresolved references to openSSL functions
-    sed -i '/openssl_LIBS/s/WIN32?//' clients/mapilib/Makefile.ag
-    sed -i '/^libmapi_la_LIBADD/s/$/ $(openssl_LIBS)/' 
clients/mapilib/Makefile.am clients/mapilib/Makefile.in
-    ;;
-esac
-
-case $SUITE in
-jessie | trusty)
+jessie)
     # The Python 3 version is too old for py3integration.
     sed -i '/^Package: monetdb-python3/,/^$/d' debian/control
     sed -i 's/ python3-dev, python3-numpy,//' debian/control
@@ -83,18 +62,6 @@ jessie | trusty)
 ;;
 esac
 
-case $SUITE in
-cosmic)
-    # libbam is not available as a shared object (also true for older
-    # version) and this means that on 18.10 the libmonetdb5-server-bam
-    # package cannot be compiled on amd64
-    sed -i -e 's/libbam-dev, //' \
-       -e '/^Package: libmonetdb5-server-bam/,/^$/d' debian/control
-    sed -i '/samtools=yes/s/yes/no/' debian/rules
-    rm debian/libmonetdb5-server-bam.install
-    ;;
-esac
-
 # debhelper compatibility 9 and later support multiarch by using
 # architecture-specific subdirectories in /usr/lib (and /lib); our
 # code base is set up for amd64 (x86_64), so change to whatever
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1369,6 +1369,8 @@ gdk_export gdk_return BATgroup(BAT **gro
  * @emph{th}) for variable-sized atoms.
  */
 
+gdk_export gdk_return BATsave(BAT *b)
+       __attribute__((__warn_unused_result__));
 gdk_export void BATmsync(BAT *b);
 
 #define NOFARM (-1) /* indicate to GDKfilepath to create relative path */
@@ -1842,6 +1844,7 @@ gdk_export lng IMPSimprintsize(BAT *b);
 
 gdk_export gdk_return BATorderidx(BAT *b, bool stable);
 gdk_export gdk_return GDKmergeidx(BAT *b, BAT**a, int n_ar);
+gdk_export bool BATcheckorderidx(BAT *b);
 
 /*
  * @- Multilevel Storage Modes
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -2358,6 +2358,7 @@ BATassertProps(BAT *b)
                        const char *nme = BBP_physical(b->batCacheid);
                        Hash *hs = NULL;
                        BUN mask;
+                       int len;
 
                        if ((hs = GDKzalloc(sizeof(Hash))) == NULL) {
                                fprintf(stderr,
@@ -2365,8 +2366,14 @@ BATassertProps(BAT *b)
                                        "hash table\n");
                                goto abort_check;
                        }
-                       snprintf(hs->heap.filename, sizeof(hs->heap.filename),
-                                "%s.hash%d", nme, THRgettid());
+                       len = snprintf(hs->heap.filename, 
sizeof(hs->heap.filename), "%s.hash%d", nme, THRgettid());
+                       if (len == -1 || len > (int) sizeof(hs->heap.filename)) 
{
+                               GDKfree(hs);
+                               fprintf(stderr,
+                                       "#BATassertProps: heap filename "
+                                       "is too large\n");
+                               goto abort_check;
+                       }
                        if (ATOMsize(b->ttype) == 1)
                                mask = (BUN) 1 << 8;
                        else if (ATOMsize(b->ttype) == 2)
diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -1148,6 +1148,7 @@ BATkeyed(BAT *b)
                        const char *nme;
                        BUN prb;
                        BUN mask;
+                       int len;
 
                        GDKclrerr(); /* not interested in BAThash errors */
                        nme = BBP_physical(b->batCacheid);
@@ -1162,9 +1163,10 @@ BATkeyed(BAT *b)
                                if (mask < ((BUN) 1 << 16))
                                        mask = (BUN) 1 << 16;
                        }
-                       if ((hs = GDKzalloc(sizeof(Hash))) == NULL ||
-                           snprintf(hs->heap.filename, 
sizeof(hs->heap.filename),
-                                    "%s.hash%d", nme, THRgettid()) < 0 ||
+                       if ((hs = GDKzalloc(sizeof(Hash))) == NULL)
+                               goto doreturn;
+                       len = snprintf(hs->heap.filename, 
sizeof(hs->heap.filename), "%s.hash%d", nme, THRgettid());
+                       if (len == -1 || len >= (int) sizeof(hs->heap.filename) 
||
                            HASHnew(hs, b->ttype, BUNlast(b), mask, BUN_NONE) 
!= GDK_SUCCEED) {
                                GDKfree(hs);
                                /* err on the side of caution: not keyed */
@@ -1764,12 +1766,12 @@ BATsort(BAT **sorted, BAT **order, BAT *
                        MT_lock_set(&GDKhashLock(pb->batCacheid));
                        if (pb->torderidx == NULL) {
                                pb->batDirtydesc = true;
-                               pb->torderidx = m;
                                if (ords != (oid *) m->base + ORDERIDXOFF) {
                                        memcpy((oid *) m->base + ORDERIDXOFF,
                                               ords,
                                               BATcount(pb) * sizeof(oid));
                                }
+                               pb->torderidx = m;
                                persistOIDX(pb);
                        } else {
                                HEAPfree(m, true);
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -1152,7 +1152,9 @@ BBPreadEntries(FILE *fp, unsigned bbpver
                        options = buf + nread + 1;
 
                if ((s = strchr(headname, '~')) != NULL && s == headname) {
-                       snprintf(logical, sizeof(logical), "tmp_%o", (unsigned) 
bid);
+                       int len = snprintf(logical, sizeof(logical), "tmp_%o", 
(unsigned) bid);
+                       if (len == -1 || len >= (int) sizeof(logical))
+                               GDKfatal("BBPinit: BBP logical filename 
directory is too large\n");
                } else {
                        if (s)
                                *s = 0;
diff --git a/gdk/gdk_group.c b/gdk/gdk_group.c
--- a/gdk/gdk_group.c
+++ b/gdk/gdk_group.c
@@ -1035,7 +1035,7 @@ BATgroup_internal(BAT **groups, BAT **ex
                bool gc = g != NULL && (BATordered(g) || BATordered_rev(g));
                const char *nme;
                BUN prb;
-               int bits;
+               int bits, len;
                BUN mask;
                oid grp;
 
@@ -1063,11 +1063,15 @@ BATgroup_internal(BAT **groups, BAT **ex
                 * which power of two */
                bits = 8 * SIZEOF_OID - pop(mask - 1);
                if ((hs = GDKzalloc(sizeof(Hash))) == NULL ||
-                   (hs->heap.farmid = BBPselectfarm(TRANSIENT, b->ttype, 
hashheap)) < 0 ||
-                   snprintf(hs->heap.filename, sizeof(hs->heap.filename),
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to