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

Reply via email to