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
