Changeset: bea18939f97e for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bea18939f97e Added Files: sql/test/BugTracker-2009/Tests/SingleServer sql/test/BugTracker-2009/Tests/create_on_ro_db_crash.SF-2830238.SQL.py sql/test/BugTracker-2009/Tests/lost_update.SF-2790020.SQL.py sql/test/BugTracker-2010/Tests/SingleServer sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.SQL.py sql/test/BugTracker-2011/Tests/SingleServer sql/test/BugTracker-2011/Tests/interrupted-initialization.Bug-2875.SQL.py sql/test/BugTracker-2012/Tests/SingleServer sql/test/BugTracker-2013/Tests/SingleServer sql/test/BugTracker-2013/Tests/corrupt-after-restart.Bug-3282.SQL.py sql/test/BugTracker-2014/Tests/SingleServer sql/test/BugTracker-2015/Tests/SingleServer sql/test/BugTracker-2016/Tests/SingleServer sql/test/BugTracker-2017/Tests/SingleServer sql/test/BugTracker-2017/Tests/shutdown.Bug-6182.SQL.py sql/test/BugTracker-2018/Tests/SingleServer sql/test/BugTracker-2018/Tests/grant-role-not-idempotent.Bug-6660.SQL.py sql/test/BugTracker-2019/Tests/SingleServer sql/test/BugTracker-2020/Tests/SingleServer sql/test/BugTracker-2020/Tests/functions-not-persist.Bug-6819.SQL.py Removed Files: sql/test/BugTracker-2009/Tests/create_on_ro_db_crash.SF-2830238.py sql/test/BugTracker-2009/Tests/lost_update.SF-2790020.py sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.py sql/test/BugTracker-2011/Tests/interrupted-initialization.Bug-2875.py sql/test/BugTracker-2013/Tests/corrupt-after-restart.Bug-3282.py sql/test/BugTracker-2017/Tests/shutdown.Bug-6182.sql sql/test/BugTracker-2018/Tests/grant-role-not-idempotent.Bug-6660.py sql/test/BugTracker-2020/Tests/functions-not-persist.Bug-6819.py sql/test/BugTracker/Tests/connect_crash.SF-1436626.py sql/test/BugTracker/Tests/mdb_starts_with_sql_debug_64.SF-1999354.py sql/test/BugTracker/Tests/set_a_new_user_password.SF-1844050.py sql/test/BugTracker/Tests/set_sql_debug_64__breaking_the_DB.SF-1906287.py Modified Files: monetdb5/mal/mal_import.c sql/test/BugTracker-2019/Tests/alter_table_drop_column.Bug-6749.py sql/test/BugTracker-2019/Tests/grant-select-column.Bug-6765.py sql/test/BugTracker-2019/Tests/msqldump-mapi-cache.Bug-6777.py sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.py sql/test/BugTracker-2020/Tests/alter-table-add-column.Bug-6816.py sql/test/BugTracker/Tests/mdb_starts_with_sql_debug_64.SF-1999354.SQL.py sql/test/BugTracker/Tests/set_a_new_user_password.SF-1844050.SQL.py sql/test/BugTracker/Tests/set_sql_debug_64__breaking_the_DB.SF-1906287.SQL.py sql/test/merge-partitions/Tests/mergepart23.SQL.py sql/test/merge-partitions/Tests/mergepart23.stable.out Branch: Nov2019 Log Message:
Merge heads. diffs (truncated from 928 to 300 lines): diff --git a/monetdb5/mal/mal_import.c b/monetdb5/mal/mal_import.c --- a/monetdb5/mal/mal_import.c +++ b/monetdb5/mal/mal_import.c @@ -425,7 +425,7 @@ callString(Client cntxt, str s, int list GDKfree(qry); throw(MAL,"callstring", SQLSTATE(HY013) MAL_MALLOC_FAIL); } - c= MCinitClient((oid)0, bs,0); + c= MCinitClient((oid)0, bs, cntxt->fdout); if( c == NULL){ GDKfree(b); GDKfree(qry); @@ -448,10 +448,13 @@ callString(Client cntxt, str s, int list c->usermodule = 0; GDKfree(b); GDKfree(qry); + c->fdout = GDKstdout; MCcloseClient(c); return msg; } - if((msg = runScenario(c,1)) != MAL_SUCCEED) { + msg = runScenario(c,1); + c->fdout = GDKstdout; + if (msg != MAL_SUCCEED) { c->usermodule = 0; GDKfree(b); GDKfree(qry); diff --git a/sql/test/BugTracker-2009/Tests/SingleServer b/sql/test/BugTracker-2009/Tests/SingleServer new file mode 100644 diff --git a/sql/test/BugTracker-2009/Tests/create_on_ro_db_crash.SF-2830238.py b/sql/test/BugTracker-2009/Tests/create_on_ro_db_crash.SF-2830238.SQL.py rename from sql/test/BugTracker-2009/Tests/create_on_ro_db_crash.SF-2830238.py rename to sql/test/BugTracker-2009/Tests/create_on_ro_db_crash.SF-2830238.SQL.py --- a/sql/test/BugTracker-2009/Tests/create_on_ro_db_crash.SF-2830238.py +++ b/sql/test/BugTracker-2009/Tests/create_on_ro_db_crash.SF-2830238.SQL.py @@ -1,15 +1,22 @@ -import sys -import os +import os, socket, sys, tempfile, shutil try: from MonetDBtesting import process except ImportError: import process +def freeport(): + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.bind(('', 0)) + port = sock.getsockname()[1] + sock.close() + return port + +farm_dir = tempfile.mkdtemp() +os.mkdir(os.path.join(farm_dir, 'db1')) +myport = freeport() + def client(input): - c = process.client('sql', - stdin = process.PIPE, - stdout = process.PIPE, - stderr = process.PIPE) + c = process.client('sql', port = myport, dbname='db1', stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) out, err = c.communicate(input) sys.stdout.write(out) sys.stderr.write(err) @@ -19,14 +26,19 @@ create table t2 (a int); ''' def main(): - s = process.server(args = ["--set", "gdk_readonly=yes"], - stdin = process.PIPE, - stdout = process.PIPE, - stderr = process.PIPE) + s = process.server(mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, + stdout = process.PIPE, stderr = process.PIPE) # Start the server without readonly one time to initialize catalog + out, err = s.communicate() + sys.stdout.write(out) + sys.stderr.write(err) + s = process.server(args = ["--set", "gdk_readonly=yes"], mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, + stdout = process.PIPE, stderr = process.PIPE) client(script1) out, err = s.communicate() sys.stdout.write(out) sys.stderr.write(err) + shutil.rmtree(farm_dir) + if __name__ == '__main__': main() diff --git a/sql/test/BugTracker-2009/Tests/lost_update.SF-2790020.py b/sql/test/BugTracker-2009/Tests/lost_update.SF-2790020.SQL.py rename from sql/test/BugTracker-2009/Tests/lost_update.SF-2790020.py rename to sql/test/BugTracker-2009/Tests/lost_update.SF-2790020.SQL.py --- a/sql/test/BugTracker-2009/Tests/lost_update.SF-2790020.py +++ b/sql/test/BugTracker-2009/Tests/lost_update.SF-2790020.SQL.py @@ -1,15 +1,23 @@ -import sys -import os -import time +import os, socket, sys, tempfile, shutil, time try: from MonetDBtesting import process except ImportError: import process +def freeport(): + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.bind(('', 0)) + port = sock.getsockname()[1] + sock.close() + return port + +farm_dir = tempfile.mkdtemp() +os.mkdir(os.path.join(farm_dir, 'db1')) +myport = freeport() + def server(): - return process.server(stdin = process.PIPE, - stdout = process.PIPE, - stderr = process.PIPE) + return process.server(mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, + stdout = process.PIPE, stderr = process.PIPE) def server_stop(s): out, err = s.communicate() @@ -17,10 +25,7 @@ def server_stop(s): sys.stderr.write(err) def client(input): - c = process.client('sql', - stdin = process.PIPE, - stdout = process.PIPE, - stderr = process.PIPE) + c = process.client('sql', port = myport, dbname='db1', stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) out, err = c.communicate(input) sys.stdout.write(out) sys.stderr.write(err) @@ -73,5 +78,7 @@ def main(): client(cleanup) server_stop(s) + shutil.rmtree(farm_dir) + if __name__ == '__main__': main() diff --git a/sql/test/BugTracker-2010/Tests/SingleServer b/sql/test/BugTracker-2010/Tests/SingleServer new file mode 100644 diff --git a/sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.py b/sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.SQL.py rename from sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.py rename to sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.SQL.py --- a/sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.py +++ b/sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.SQL.py @@ -1,24 +1,24 @@ -from __future__ import print_function - +import os, socket, sys, tempfile, shutil try: from MonetDBtesting import process except ImportError: import process -import os -dbfarm = os.getenv('GDK_DBFARM') -tstdb = os.getenv('TSTDB') - -if not tstdb or not dbfarm: - print('No TSTDB or GDK_DBFARM in environment') - sys.exit(1) +def freeport(): + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.bind(('', 0)) + port = sock.getsockname()[1] + sock.close() + return port -dbname = tstdb + '-2695' +farm_dir = tempfile.mkdtemp() +os.mkdir(os.path.join(farm_dir, 'db1')) +myport = freeport() -# clean up before we start -if os.path.exists(os.path.join(dbfarm, dbname)): - import shutil - shutil.rmtree(os.path.join(dbfarm, dbname)) +s = process.server(args = ['--readonly'], mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, + stdout = process.PIPE, stderr = process.PIPE) +out, err = s.communicate() +sys.stdout.write(out) +sys.stderr.write(err) -s = process.server(args = ['--readonly'], dbname = dbname) -s.wait() +shutil.rmtree(farm_dir) diff --git a/sql/test/BugTracker-2011/Tests/SingleServer b/sql/test/BugTracker-2011/Tests/SingleServer new file mode 100644 diff --git a/sql/test/BugTracker-2011/Tests/interrupted-initialization.Bug-2875.py b/sql/test/BugTracker-2011/Tests/interrupted-initialization.Bug-2875.SQL.py rename from sql/test/BugTracker-2011/Tests/interrupted-initialization.Bug-2875.py rename to sql/test/BugTracker-2011/Tests/interrupted-initialization.Bug-2875.SQL.py --- a/sql/test/BugTracker-2011/Tests/interrupted-initialization.Bug-2875.py +++ b/sql/test/BugTracker-2011/Tests/interrupted-initialization.Bug-2875.SQL.py @@ -1,37 +1,32 @@ from __future__ import print_function -import os, sys +import os, socket, sys, tempfile, shutil try: from MonetDBtesting import process except ImportError: import process -dbfarm = os.getenv('GDK_DBFARM') -tstdb = os.getenv('TSTDB') - -if not tstdb or not dbfarm: - print('No TSTDB or GDK_DBFARM in environment') - sys.exit(1) - -dbname = tstdb + '-bug2875' +def freeport(): + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.bind(('', 0)) + port = sock.getsockname()[1] + sock.close() + return port -# clean up before we start -if os.path.exists(os.path.join(dbfarm, dbname)): - import shutil - shutil.rmtree(os.path.join(dbfarm, dbname)) +farm_dir = tempfile.mkdtemp() +os.mkdir(os.path.join(farm_dir, 'db1')) +myport = freeport() -s = process.server(stdin = process.PIPE, - stdout = process.PIPE, - stderr = process.PIPE, - dbname = dbname) +s = process.server(mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, + stdout = process.PIPE, stderr = process.PIPE) out, err = s.communicate() sys.stdout.write(out) sys.stderr.write(err) -s = process.server(stdin = process.PIPE, - stdout = process.PIPE, - stderr = process.PIPE, - dbname = dbname) +s = process.server(mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, + stdout = process.PIPE, stderr = process.PIPE) c = process.client(lang = 'sqldump', + port=myport, + dbname='db1', stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE, @@ -42,3 +37,5 @@ sys.stderr.write(err) out, err = s.communicate() sys.stdout.write(out) sys.stderr.write(err) + +shutil.rmtree(farm_dir) diff --git a/sql/test/BugTracker-2012/Tests/SingleServer b/sql/test/BugTracker-2012/Tests/SingleServer new file mode 100644 diff --git a/sql/test/BugTracker-2013/Tests/SingleServer b/sql/test/BugTracker-2013/Tests/SingleServer new file mode 100644 diff --git a/sql/test/BugTracker-2013/Tests/corrupt-after-restart.Bug-3282.py b/sql/test/BugTracker-2013/Tests/corrupt-after-restart.Bug-3282.SQL.py rename from sql/test/BugTracker-2013/Tests/corrupt-after-restart.Bug-3282.py rename to sql/test/BugTracker-2013/Tests/corrupt-after-restart.Bug-3282.SQL.py --- a/sql/test/BugTracker-2013/Tests/corrupt-after-restart.Bug-3282.py +++ b/sql/test/BugTracker-2013/Tests/corrupt-after-restart.Bug-3282.SQL.py @@ -1,12 +1,23 @@ +import os, socket, sys, tempfile, shutil try: from MonetDBtesting import process except ImportError: import process -import sys +def freeport(): + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.bind(('', 0)) + port = sock.getsockname()[1] + sock.close() + return port -s = process.server(stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) -c = process.client('sql', stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) +farm_dir = tempfile.mkdtemp() +os.mkdir(os.path.join(farm_dir, 'db1')) +myport = freeport() + +s = process.server(mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, + stdout = process.PIPE, stderr = process.PIPE) +c = process.client('sql', port=myport, dbname='db1', stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) out, err = c.communicate('''start transaction; create table table3282 (i int); insert into table3282 values (0); @@ -39,8 +50,9 @@ sys.stderr.write(err) out, err = s.communicate() sys.stdout.write(out) sys.stderr.write(err) -s = process.server(stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) -c = process.client('sql', stdin = process.PIPE, stdout = process.PIPE, stderr = process.PIPE) +s = process.server(mapiport=myport, dbname='db1', dbfarm=os.path.join(farm_dir, 'db1'), stdin = process.PIPE, _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list