Changeset: 1bf5f938f502 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1bf5f938f502
Modified Files:
        .hgtags
        MonetDB.spec
        NT/monetdb_config.h.in
        NT/rules.msc
        clients/mapilib/mapi.rc
        clients/odbc/driver/driver.rc
        clients/odbc/winsetup/setup.rc
        configure.ag
        debian/changelog
        gdk/libbat.rc
        monetdb5/tools/libmonetdb5.rc
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_optimizer.c
        
sql/test/BugTracker-2018/Tests/local_replica_table_not_detected.Bug-6620.py
        vertoo.data
Branch: default
Log Message:

Merged with linear-hashing


diffs (209 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -752,3 +752,6 @@ e0719bdebf32967ca0a0043f556b3f48f93e0ce0
 8d4258444e2a0a809468fb85be7999a407d47e04 Nov2019_SP1_release
 c35ea84b568b792c5fd073f6a1e1a24372de0e20 Nov2019_11
 c35ea84b568b792c5fd073f6a1e1a24372de0e20 Nov2019_SP2_release
+4eb6068f63cf87fc6996daed59fbcc917c8b2881 Nov2019_13
+c35ea84b568b792c5fd073f6a1e1a24372de0e20 Nov2019_SP2_release
+4eb6068f63cf87fc6996daed59fbcc917c8b2881 Nov2019_SP2_release
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -941,6 +941,9 @@ fi
 %postun -p /sbin/ldconfig
 
 %changelog
+* Wed Feb 12 2020 Sjoerd Mullender <[email protected]> - 11.35.13-20200212
+- Rebuilt.
+
 * Tue Feb 11 2020 Sjoerd Mullender <[email protected]> - 11.35.11-20200211
 - Rebuilt.
 - BZ#6805: Using the cascade operator in a drop table statement ends in
diff --git a/debian/changelog b/debian/changelog
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+monetdb (11.35.13) unstable; urgency=low
+
+  * Rebuilt.
+
+ -- Sjoerd Mullender <[email protected]>  Wed, 12 Feb 2020 11:03:15 +0100
+
 monetdb (11.35.11) unstable; urgency=low
 
   * Rebuilt.
diff --git a/sql/backends/monet5/sql_gencode.c 
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -203,6 +203,7 @@ static int
                }
        }
        if (curBlk->errors) {
+               sql_error(m, 003, SQLSTATE(42000) "Internal error while 
compiling statement: %s", curBlk->errors);
                freeSymbol(curPrg);
                return -1;
        }
@@ -762,8 +763,10 @@ backend_callinline(backend *be, Client c
                }
        }
        c->curprg->def = curBlk;
-       if (curBlk->errors)
+       if (curBlk->errors) {
+               sql_error(m, 003, SQLSTATE(42000) "Internal error while 
compiling statement: %s", curBlk->errors);
                return -1;
+       }
        return 0;
 }
 
@@ -935,8 +938,14 @@ backend_call(backend *be, Client c, cq *
                        }
                }
        }
-       if (!q || mb->errors)
+       if (!q) {
+               sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
                return -1;
+       }
+       if (mb->errors) {
+               sql_error(m, 003, SQLSTATE(42000) "Internal error while 
compiling statement: %s", mb->errors);
+               return -1;
+       }
        return 0;
 }
 
@@ -1227,7 +1236,6 @@ backend_create_sql_func(backend *be, sql
                        f->sql--;
                return -1;
        }
-       assert(r);
 
        backup = c->curprg;
        curPrg = c->curprg = newFunction(userRef, putName(f->base.name), 
FUNCTIONsymbol);
diff --git 
a/sql/test/BugTracker-2018/Tests/local_replica_table_not_detected.Bug-6620.py 
b/sql/test/BugTracker-2018/Tests/local_replica_table_not_detected.Bug-6620.py
--- 
a/sql/test/BugTracker-2018/Tests/local_replica_table_not_detected.Bug-6620.py
+++ 
b/sql/test/BugTracker-2018/Tests/local_replica_table_not_detected.Bug-6620.py
@@ -37,65 +37,66 @@ os.mkdir(os.path.join(farm_dir, 'node2')
 
 # node1 is the worker
 prt1 = freeport()
-prc1 = process.server(mapiport=prt1, dbname='node1', 
dbfarm=os.path.join(farm_dir, 'node1'), stdin=process.PIPE, 
stdout=process.PIPE, stderr=process.PIPE)
-conn1 = pymonetdb.connect(database='node1', port=prt1, autocommit=True)
+try:
+    prc1 = process.server(mapiport=prt1, dbname='node1', 
dbfarm=os.path.join(farm_dir, 'node1'), stdin=process.PIPE, 
stdout=process.PIPE, stderr=process.PIPE)
+    conn1 = pymonetdb.connect(database='node1', port=prt1, autocommit=True)
 
-q = "create table s1 (i int)"
-print(q); conn1.execute(q)
-q = "insert into s1 values (23), (42)"
-print(q); conn1.execute(q)
-q = "create table t1 (s varchar(10))"
-print(q); conn1.execute(q)
-q = "insert into t1 values ('abc'), ('efg')"
-print(q); conn1.execute(q)
+    q = "create table s1 (i int)"
+    print(q); conn1.execute(q)
+    q = "insert into s1 values (23), (42)"
+    print(q); conn1.execute(q)
+    q = "create table t1 (s varchar(10))"
+    print(q); conn1.execute(q)
+    q = "insert into t1 values ('abc'), ('efg')"
+    print(q); conn1.execute(q)
 
-# node2 is the master
-prt2 = freeport()
-prc2 = process.server(mapiport=prt2, dbname='node2', 
dbfarm=os.path.join(farm_dir, 'node2'), stdin=process.PIPE, 
stdout=process.PIPE, stderr=process.PIPE)
-conn2 = pymonetdb.connect(database='node2', port=prt2, autocommit=True)
+    # node2 is the master
+    prt2 = freeport()
+    try:
+        prc2 = process.server(mapiport=prt2, dbname='node2', 
dbfarm=os.path.join(farm_dir, 'node2'), stdin=process.PIPE, 
stdout=process.PIPE, stderr=process.PIPE)
+        conn2 = pymonetdb.connect(database='node2', port=prt2, autocommit=True)
 
-q = "create table s2 (i int)"
-print(q); conn2.execute(q)
-q = "insert into s2 values (23), (42)"
-print(q); conn2.execute(q)
-q = "create table t2 (s varchar(10))"
-print(q); conn2.execute(q)
-q = "insert into t2 values ('foo'), ('bar')"
-print(q); conn2.execute(q)
-
-q = "create remote table s1 (i int) on 
'mapi:monetdb://localhost:"+str(prt1)+"/node1';"
-print("#"+q); conn2.execute(q)
-q = "create remote table t1 (s varchar(10)) on 
'mapi:monetdb://localhost:"+str(prt1)+"/node1';"
-print("#"+q); conn2.execute(q)
+        q = "create table s2 (i int)"
+        print(q); conn2.execute(q)
+        q = "insert into s2 values (23), (42)"
+        print(q); conn2.execute(q)
+        q = "create table t2 (s varchar(10))"
+        print(q); conn2.execute(q)
+        q = "insert into t2 values ('foo'), ('bar')"
+        print(q); conn2.execute(q)
 
-q = "create replica table repS(i int)"
-print(q); conn2.execute(q)
-q = "alter table repS add table s1"
-print(q); conn2.execute(q)
-q = "alter table repS add table s2"
-print(q); conn2.execute(q)
-q = "create merge table mrgT (s varchar(10))"
-print(q); conn2.execute(q)
-q = "alter table mrgT add table t1"
-print(q); conn2.execute(q)
-q = "alter table mrgT add table t2"
-print(q); conn2.execute(q)
+        q = "create remote table s1 (i int) on 
'mapi:monetdb://localhost:"+str(prt1)+"/node1';"
+        print("#"+q); conn2.execute(q)
+        q = "create remote table t1 (s varchar(10)) on 
'mapi:monetdb://localhost:"+str(prt1)+"/node1';"
+        print("#"+q); conn2.execute(q)
+
+        q = "create replica table repS(i int)"
+        print(q); conn2.execute(q)
+        q = "alter table repS add table s1"
+        print(q); conn2.execute(q)
+        q = "alter table repS add table s2"
+        print(q); conn2.execute(q)
+        q = "create merge table mrgT (s varchar(10))"
+        print(q); conn2.execute(q)
+        q = "alter table mrgT add table t1"
+        print(q); conn2.execute(q)
+        q = "alter table mrgT add table t2"
+        print(q); conn2.execute(q)
 
-res = query(conn2, "plan select * from repS")
-for r in res:
-    print('\n'.join(r))
-
-res = query(conn2, "plan select * from repS, mrgT")
-for r in res:
-    print('\n'.join(r))
+        res = query(conn2, "plan select * from repS")
+        for r in res:
+            print('\n'.join(r))
 
-# cleanup: shutdown the monetdb servers and remove tempdir
-out, err = prc1.communicate()
-sys.stdout.write(out)
-sys.stderr.write(err)
-
-out, err = prc2.communicate()
-sys.stdout.write(out)
-sys.stderr.write(err)
-
-shutil.rmtree(farm_dir)
+        res = query(conn2, "plan select * from repS, mrgT")
+        for r in res:
+            print('\n'.join(r))
+    finally:
+        out, err = prc2.communicate()
+        sys.stdout.write(out)
+        sys.stderr.write(err)
+finally:
+    # cleanup: shutdown the monetdb servers and remove tempdir
+    out, err = prc1.communicate()
+    sys.stdout.write(out)
+    sys.stderr.write(err)
+    shutil.rmtree(farm_dir)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to