Changeset: 76fddd8c305e for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=76fddd8c305e Added Files: sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.py Removed Files: sql/test/BugTracker/Tests/authorization.SF-1430616-data.sql sql/test/BugTracker/Tests/authorization.SF-1430616-drop_user.sql sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.bat sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.sh sql/test/BugTracker/Tests/authorization.SF-1430616.stable.err sql/test/BugTracker/Tests/authorization.SF-1430616.stable.out Branch: mtest Log Message:
Rewritten the test diffs (truncated from 327 to 300 lines): diff --git a/sql/test/BugTracker/Tests/authorization.SF-1430616-data.sql b/sql/test/BugTracker/Tests/authorization.SF-1430616-data.sql deleted file mode 100644 --- a/sql/test/BugTracker/Tests/authorization.SF-1430616-data.sql +++ /dev/null @@ -1,9 +0,0 @@ -CREATE USER "voc" WITH PASSWORD 'voc' NAME 'VOC Explorer' SCHEMA "sys"; -SELECT users.name, users.fullname, schemas.name - FROM users, schemas - WHERE users.default_schema = schemas.id; -CREATE SCHEMA "voc" AUTHORIZATION "voc"; -ALTER USER "voc" SET SCHEMA "voc"; -SELECT users.name, users.fullname, schemas.name - FROM sys.users, sys.schemas - WHERE users.default_schema = schemas.id; diff --git a/sql/test/BugTracker/Tests/authorization.SF-1430616-drop_user.sql b/sql/test/BugTracker/Tests/authorization.SF-1430616-drop_user.sql deleted file mode 100644 --- a/sql/test/BugTracker/Tests/authorization.SF-1430616-drop_user.sql +++ /dev/null @@ -1,7 +0,0 @@ -START TRANSACTION; - -ALTER USER "voc" SET SCHEMA "sys"; -DROP SCHEMA "voc"; -DROP USER "voc"; - -COMMIT; diff --git a/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.bat b/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.bat deleted file mode 100755 --- a/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.bat +++ /dev/null @@ -1,24 +0,0 @@ -@echo off -echo user=monetdb> .monetdb -echo password=monetdb>> .monetdb - -prompt # $t $g -echo on - -call java nl.cwi.monetdb.client.JdbcClient -e -h localhost -p %MAPIPORT% -d %TSTDB% -f "%RELSRCDIR%\authorization.SF-1430616-data.sql" - -@echo off -echo user=voc> .monetdb -echo password=voc>> .monetdb -echo on - -call java nl.cwi.monetdb.client.JdbcClient -e -h localhost -p %MAPIPORT% -d %TSTDB% -q - -@echo off -echo user=monetdb> .monetdb -echo password=monetdb>> .monetdb -echo on - -call java nl.cwi.monetdb.client.JdbcClient -e -h localhost -p %MAPIPORT% -d %TSTDB% -f "%RELSRCDIR%\authorization.SF-1430616-drop_user.sql" - -@del .monetdb diff --git a/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.py b/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.py new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.py @@ -0,0 +1,46 @@ +### +# Check that when a user is decoupled from a schema, this dependency is +# properly removed and both the schema and the user can be dropped +### + +from MonetDBtesting.sqltest import SQLTestCase + +with SQLTestCase() as tc: + + # create the dependency of user `voc` on schema `voc` + tc.connect(username="monetdb", password="monetdb") + tc.execute("CREATE USER voc WITH PASSWORD 'voc' NAME 'VOC Explorer' SCHEMA sys;").assertSucceeded() + tc.execute(""" + SELECT users.name, users.fullname, schemas.name as schema + FROM users, schemas + WHERE users.default_schema = schemas.id + AND users.name = 'voc'; + """).assertSucceeded()\ + .assertDataResultMatch([('voc', 'VOC Explorer', 'sys')]) + tc.execute("CREATE SCHEMA voc AUTHORIZATION voc;").assertSucceeded() + tc.execute("ALTER USER voc SET SCHEMA voc;").assertSucceeded() + tc.execute(""" + SELECT users.name, users.fullname, schemas.name as schema + FROM users, schemas + WHERE users.default_schema = schemas.id + AND users.name = 'voc'; + """).assertSucceeded()\ + .assertDataResultMatch([('voc', 'VOC Explorer', 'voc')]) + + # just use the new user once + tc.connect(username="voc", password="voc") + tc.execute("select current_schema;").assertSucceeded().assertDataResultMatch([('voc')]) + + tc.connect(username="monetdb", password="monetdb") + # we can drop neither of them yet + tc.execute("DROP SCHEMA voc;").assertFailed(err_code="2BM37", err_message="DROP SCHEMA: unable to drop schema 'voc' (there are database objects which depend on it)") + tc.execute("DROP USER voc;").assertFailed(err_code="M1M05", err_message="DROP USER: 'voc' owns a schema") + # remove the dependency so that we can drop both of them + tc.execute(""" + START TRANSACTION; + ALTER USER voc SET SCHEMA sys; + DROP SCHEMA voc; + DROP USER voc; + COMMIT; + """).assertSucceeded() + diff --git a/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.sh b/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.sh deleted file mode 100755 --- a/sql/test/BugTracker/Tests/authorization.SF-1430616.SQL.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -cat << EOF > .monetdb -user=monetdb -password=monetdb -EOF - -Mlog -x "java nl.cwi.monetdb.client.JdbcClient -e -h localhost -p $MAPIPORT -d ${TSTDB} -f \"$RELSRCDIR/authorization.SF-1430616-data.sql\"" - -cat << EOF > .monetdb -user=voc -password=voc -EOF - -Mlog -x "java nl.cwi.monetdb.client.JdbcClient -e -h localhost -p $MAPIPORT -d ${TSTDB} -q" - -cat << EOF > .monetdb -user=monetdb -password=monetdb -EOF - -Mlog -x "java nl.cwi.monetdb.client.JdbcClient -e -h localhost -p $MAPIPORT -d ${TSTDB} -f \"$RELSRCDIR/authorization.SF-1430616-drop_user.sql\"" - -rm -f .monetdb diff --git a/sql/test/BugTracker/Tests/authorization.SF-1430616.stable.err b/sql/test/BugTracker/Tests/authorization.SF-1430616.stable.err deleted file mode 100644 --- a/sql/test/BugTracker/Tests/authorization.SF-1430616.stable.err +++ /dev/null @@ -1,95 +0,0 @@ -stderr of test 'authorization.SF-1430616` in directory 'sql/test/BugTracker` itself: - - -# 11:28:15 > -# 11:28:15 > mserver5 "--config=/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/etc/monetdb5.conf" --debug=10 --set gdk_nr_threads=0 --set "monet_mod_path=/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5:/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5/lib:/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5/bin" --set "gdk_dbfarm=/export/scratch/stripe/fabian/monetdb/stable/mtest-pegasus.ins.cwi.nl/sql/dbfarm" --set "sql_logdir=/export/scratch/stripe/fabian/monetdb/stable/mtest-pegasus.ins.cwi.nl/sql/sqllog" --set "xquery_logdir=/export/scratch/stripe/fabian/monetdb/stable/mtest-pegasus.ins.cwi.nl/sql/xquerylog" --set mapi_open=true --set xrpc_open=true --set mapi_port=32408 --set xrpc_port=41265 --set monet_prompt= --trace "--dbname=mTests_src_test_BugTracker" --set mal_listing=0 "--dbinit= include sql;" ; echo ; echo Over.. -# 11:28:15 > - -# builtin opt gdk_arch = 64bitx86_64-pc-solaris2.11 -# builtin opt gdk_version = 1.30.0 -# builtin opt prefix = /export/scratch/stripe/fabian/monetdb/stable/program-i86pc -# builtin opt exec_prefix = ${prefix} -# builtin opt gdk_dbname = tst -# builtin opt gdk_dbfarm = ${prefix}/var/MonetDB -# builtin opt gdk_debug = 8 -# builtin opt gdk_alloc_map = yes -# builtin opt gdk_vmtrim = yes -# builtin opt monet_admin = adm -# builtin opt monet_prompt = > -# builtin opt monet_welcome = yes -# builtin opt monet_mod_path = /export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB -# builtin opt monet_daemon = yes -# builtin opt host = localhost -# builtin opt mapi_port = 50000 -# builtin opt mapi_noheaders = no -# builtin opt mapi_debug = 0 -# builtin opt mapi_clients = 2 -# builtin opt sql_debug = 0 -# builtin opt sql_logdir = sql_logs -# builtin opt xquery_logdir = xquery_logs -# builtin opt standoff_ns = http://monetdb.cwi.nl/standoff -# builtin opt standoff_start = start -# builtin opt standoff_end = end -# config opt prefix = /export/scratch/stripe/fabian/monetdb/stable/program-i86pc -# config opt config = ${prefix}/etc/monetdb5.conf -# config opt prefix = /export/scratch/stripe/fabian/monetdb/stable/program-i86pc -# config opt exec_prefix = ${prefix} -# config opt gdk_dbfarm = ${prefix}/var/MonetDB5/dbfarm -# config opt gdk_dbname = demo -# config opt gdk_alloc_map = no -# config opt gdk_embedded = no -# config opt gdk_debug = 0 -# config opt monet_mod_path = /export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5:/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5/lib:/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5/bin -# config opt monet_daemon = no -# config opt monet_welcome = yes -# config opt mero_msglog = ${prefix}/var/log/MonetDB/merovingian.log -# config opt mero_errlog = ${prefix}/var/log/MonetDB/merovingian.log -# config opt mero_pidfile = ${prefix}/var/run/MonetDB/merovingian.pid -# config opt mero_exittimeout = 7 -# config opt mero_doproxy = yes -# config opt mero_discoveryttl = 600 -# config opt mal_init = /export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5/mal_init.mal -# config opt mal_listing = 2 -# config opt mapi_port = 50000 -# config opt mapi_open = false -# config opt sql_logdir = sql_logs -# cmdline opt config = /export/scratch/stripe/fabian/monetdb/stable/program-i86pc/etc/monetdb5.conf -# cmdline opt gdk_nr_threads = 0 -# cmdline opt monet_mod_path = /export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5:/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5/lib:/export/scratch/stripe/fabian/monetdb/stable/program-i86pc/lib/MonetDB5/bin -# cmdline opt gdk_dbfarm = /export/scratch/stripe/fabian/monetdb/stable/mtest-pegasus.ins.cwi.nl/sql/dbfarm -# cmdline opt sql_logdir = /export/scratch/stripe/fabian/monetdb/stable/mtest-pegasus.ins.cwi.nl/sql/sqllog -# cmdline opt xquery_logdir = /export/scratch/stripe/fabian/monetdb/stable/mtest-pegasus.ins.cwi.nl/sql/xquerylog -# cmdline opt mapi_open = true -# cmdline opt xrpc_open = true -# cmdline opt mapi_port = 32408 -# cmdline opt xrpc_port = 41265 -# cmdline opt monet_prompt = -# cmdline opt gdk_dbname = mTests_src_test_BugTracker -# cmdline opt mal_listing = 0 -#warning: please don't forget to set your vault key! -#(see /export/scratch/stripe/fabian/monetdb/stable/program-i86pc/etc/monetdb5.conf) - -# 11:28:16 > -# 11:28:16 > ./authorization.SF-1430616.SQL.sh authorization.SF-1430616 -# 11:28:16 > - - -# 11:28:16 > -# 11:28:16 > Mtimeout -timeout 60 java nl.cwi.monetdb.client.JdbcClient -e -h pegasus -p 32408 -d mTests_src_test_BugTracker -f "../../../../../../../../../../mirror/fabian/monetdb/stable/sql/src/test/BugTracker/Tests/authorization.SF-1430616-data.sql" -# 11:28:16 > - - -# 11:28:17 > -# 11:28:17 > Mtimeout -timeout 60 java nl.cwi.monetdb.client.JdbcClient -e -h pegasus -p 32408 -d mTests_src_test_BugTracker -q -# 11:28:17 > - - -# 11:28:17 > -# 11:28:17 > Mtimeout -timeout 60 java nl.cwi.monetdb.client.JdbcClient -e -h pegasus -p 32408 -d mTests_src_test_BugTracker -f "../../../../../../../../../../mirror/fabian/monetdb/stable/sql/src/test/BugTracker/Tests/authorization.SF-1430616-drop_user.sql" -# 11:28:17 > - - -# 11:28:18 > -# 11:28:18 > Done. -# 11:28:18 > - diff --git a/sql/test/BugTracker/Tests/authorization.SF-1430616.stable.out b/sql/test/BugTracker/Tests/authorization.SF-1430616.stable.out deleted file mode 100644 --- a/sql/test/BugTracker/Tests/authorization.SF-1430616.stable.out +++ /dev/null @@ -1,87 +0,0 @@ -stdout of test 'authorization.SF-1430616` in directory 'sql/test/BugTracker` itself: - - -# 17:04:39 > -# 17:04:39 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=38700" "--set" "mapi_usock=/var/tmp/mtest-7090/.s.monetdb.38700" "--set" "monet_prompt=" "--forcemito" "--dbpath=/ufs/sjoerd/Monet-devel/var/MonetDB/mTests_sql_test_BugTracker" "--set" "embedded_r=yes" "--set" "embedded_py=true" -# 17:04:39 > - -# MonetDB 5 server v11.24.0 (hg id: 0ab1bb99d0ea) -# This is an unreleased version -# Serving database 'mTests_sql_test_BugTracker', using 8 threads -# Compiled for x86_64-unknown-linux-gnu/64bit with 128bit integers -# Found 15.589 GiB available main-memory. -# Copyright (c) 1993-July 2008 CWI. -# Copyright (c) August 2008-2016 MonetDB B.V., all rights reserved -# Visit http://www.monetdb.org/ for further information -# Listening for connection requests on mapi:monetdb://madrid.da.cwi.nl:38700/ -# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-7090/.s.monetdb.38700 -# MonetDB/GIS module loaded -# MonetDB/SQL module loaded -# MonetDB/Python module loaded -# MonetDB/R module loaded - -# 12:18:29 > -# 12:18:29 > "./authorization.SF-1430616.SQL.sh" "authorization.SF-1430616" -# 12:18:29 > - - -# 17:04:39 > -# 17:04:39 > Mtimeout -timeout 60 java nl.cwi.monetdb.client.JdbcClient -e -h localhost -p 38700 -d mTests_sql_test_BugTracker -f "../../../../../../../../scratch1/sjoerd/src/MonetDB/devel/sql/test/BugTracker/Tests/authorization.SF-1430616-data.sql" -# 17:04:39 > - -CREATE USER "voc" WITH PASSWORD 'voc' NAME 'VOC Explorer' SCHEMA "sys"; -Operation successful -SELECT users.name, users.fullname, schemas.name - FROM users, schemas - WHERE users.default_schema = schemas.id; -+-----------+---------------+------+ -| name | fullname | name | -+===========+===============+======+ -| monetdb | MonetDB Admin | sys | -| .snapshot | Snapshot User | sys | -| voc | VOC Explorer | sys | -+-----------+---------------+------+ -3 rows -CREATE SCHEMA "voc" AUTHORIZATION "voc"; -Operation successful -ALTER USER "voc" SET SCHEMA "voc"; -Operation successful -SELECT users.name, users.fullname, schemas.name - FROM sys.users, sys.schemas - WHERE users.default_schema = schemas.id; -+-----------+---------------+------+ -| name | fullname | name | -+===========+===============+======+ -| monetdb | MonetDB Admin | sys | -| .snapshot | Snapshot User | sys | -| voc | VOC Explorer | voc | -+-----------+---------------+------+ -3 rows - _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list