Changeset: b98ae3444db4 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b98ae3444db4
Added Files:
sql/test/emptydb-upgrade-chain-hge/Tests/All
sql/test/emptydb-upgrade-chain-hge/Tests/check.SQL.py
sql/test/emptydb-upgrade-chain-hge/Tests/check.reqtests
sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.err
sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out
sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out.int128
sql/test/emptydb-upgrade-chain-hge/Tests/dump.SQL.py
sql/test/emptydb-upgrade-chain-hge/Tests/dump.reqtests
sql/test/emptydb-upgrade-chain-hge/Tests/dump.stable.err
sql/test/emptydb-upgrade-chain-hge/Tests/dump.stable.out
sql/test/emptydb-upgrade-chain-hge/Tests/package.py
sql/test/emptydb-upgrade-chain-hge/Tests/package.reqtests
sql/test/emptydb-upgrade-chain-hge/Tests/package.stable.err
sql/test/emptydb-upgrade-chain-hge/Tests/package.stable.out
sql/test/emptydb-upgrade-chain-hge/Tests/unpackage.py
sql/test/emptydb-upgrade-chain-hge/Tests/unpackage.stable.err
sql/test/emptydb-upgrade-chain-hge/Tests/unpackage.stable.out
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.sql
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.err
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out
sql/test/emptydb-upgrade-chain/Tests/All
sql/test/emptydb-upgrade-chain/Tests/check.SQL.py
sql/test/emptydb-upgrade-chain/Tests/check.reqtests
sql/test/emptydb-upgrade-chain/Tests/check.stable.err
sql/test/emptydb-upgrade-chain/Tests/check.stable.out
sql/test/emptydb-upgrade-chain/Tests/check.stable.out.int128
sql/test/emptydb-upgrade-chain/Tests/dump.SQL.py
sql/test/emptydb-upgrade-chain/Tests/dump.reqtests
sql/test/emptydb-upgrade-chain/Tests/dump.stable.err
sql/test/emptydb-upgrade-chain/Tests/dump.stable.out
sql/test/emptydb-upgrade-chain/Tests/package.py
sql/test/emptydb-upgrade-chain/Tests/package.reqtests
sql/test/emptydb-upgrade-chain/Tests/unpackage.py
sql/test/emptydb-upgrade-chain/Tests/unpackage.stable.err
sql/test/emptydb-upgrade-chain/Tests/unpackage.stable.out
sql/test/emptydb-upgrade-chain/Tests/upgrade.sql
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.err
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade-hge/Tests/All
sql/test/emptydb-upgrade-hge/Tests/check.SQL.py
sql/test/emptydb-upgrade-hge/Tests/check.reqtests
sql/test/emptydb-upgrade-hge/Tests/check.stable.err
sql/test/emptydb-upgrade-hge/Tests/check.stable.out
sql/test/emptydb-upgrade-hge/Tests/check.stable.out.int128
sql/test/emptydb-upgrade-hge/Tests/dump.SQL.py
sql/test/emptydb-upgrade-hge/Tests/dump.reqtests
sql/test/emptydb-upgrade-hge/Tests/dump.stable.err
sql/test/emptydb-upgrade-hge/Tests/dump.stable.out
sql/test/emptydb-upgrade-hge/Tests/unpackage.py
sql/test/emptydb-upgrade-hge/Tests/unpackage.stable.err
sql/test/emptydb-upgrade-hge/Tests/unpackage.stable.out
sql/test/emptydb-upgrade-hge/Tests/upgrade.sql
sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.err
sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out
sql/test/emptydb-upgrade/Tests/All
sql/test/emptydb-upgrade/Tests/check.SQL.py
sql/test/emptydb-upgrade/Tests/check.reqtests
sql/test/emptydb-upgrade/Tests/check.stable.err
sql/test/emptydb-upgrade/Tests/check.stable.out
sql/test/emptydb-upgrade/Tests/check.stable.out.int128
sql/test/emptydb-upgrade/Tests/dump.SQL.py
sql/test/emptydb-upgrade/Tests/dump.reqtests
sql/test/emptydb-upgrade/Tests/dump.stable.err
sql/test/emptydb-upgrade/Tests/dump.stable.out
sql/test/emptydb-upgrade/Tests/unpackage.py
sql/test/emptydb-upgrade/Tests/unpackage.stable.err
sql/test/emptydb-upgrade/Tests/unpackage.stable.out
sql/test/emptydb-upgrade/Tests/upgrade.sql
sql/test/emptydb-upgrade/Tests/upgrade.stable.err
sql/test/emptydb-upgrade/Tests/upgrade.stable.out
sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
sql/test/emptydb/Tests/All
sql/test/emptydb/Tests/check.SQL.py
sql/test/emptydb/Tests/check.reqtests
sql/test/emptydb/Tests/check.stable.err
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.int128
sql/test/emptydb/Tests/dump.SQL.py
sql/test/emptydb/Tests/dump.reqtests
sql/test/emptydb/Tests/dump.stable.err
sql/test/emptydb/Tests/dump.stable.out
sql/test/emptydb/Tests/load.sql
sql/test/emptydb/Tests/load.stable.err
sql/test/emptydb/Tests/load.stable.out
sql/test/emptydb/Tests/package-hge.py
sql/test/emptydb/Tests/package-hge.stable.err
sql/test/emptydb/Tests/package-hge.stable.out
sql/test/emptydb/Tests/package.py
sql/test/emptydb/Tests/package.reqtests
sql/test/emptydb/updatetests
Modified Files:
testing/Mtest.py.in
testing/process.py
Branch: Jul2015
Log Message:
Added upgrade testing of empty databases.
The main point here is to check whether the upgrade updated all SQL
system tables, views and functions.
diffs (truncated from 93888 to 300 lines):
diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/All
b/sql/test/emptydb-upgrade-chain-hge/Tests/All
new file mode 100644
--- /dev/null
+++ b/sql/test/emptydb-upgrade-chain-hge/Tests/All
@@ -0,0 +1,5 @@
+HAVE_HGE&HAVE_GEOM&PREVHGECHAINRELEMPTY?unpackage
+HAVE_HGE&HAVE_GEOM&PREVHGECHAINRELEMPTY?upgrade
+HAVE_HGE&HAVE_GEOM&PREVHGECHAINRELEMPTY&RELEASERUN?package
+HAVE_HGE&HAVE_GEOM&PREVHGECHAINRELEMPTY?dump
+HAVE_HGE&HAVE_GEOM&PREVHGECHAINRELEMPTY?check
diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/check.SQL.py
b/sql/test/emptydb-upgrade-chain-hge/Tests/check.SQL.py
new file mode 100644
--- /dev/null
+++ b/sql/test/emptydb-upgrade-chain-hge/Tests/check.SQL.py
@@ -0,0 +1,87 @@
+import os, sys, re
+try:
+ from MonetDBtesting import process
+except ImportError:
+ import process
+
+clt = process.client('sql', format = 'csv', echo = False,
+ stdin = process.PIPE, stdout = process.PIPE, stderr =
process.PIPE)
+
+for c in 'ntvsf':
+ clt.stdin.write("select '\\\\d%s';\n" % c)
+
+for c in 'ntvsf':
+ clt.stdin.write("select '\\\\dS%s';\n" % c)
+
+clt.stdin.write("select '\\\\dn ' || name from sys.schemas order by name;\n")
+
+clt.stdin.write("select '\\\\dSt ' || s.name || '.' || t.name from sys._tables
t, sys.schemas s where t.schema_id = s.id and t.query is null order by s.name,
t.name;\n")
+
+clt.stdin.write("select '\\\\dSv ' || s.name || '.' || t.name from sys._tables
t, sys.schemas s where t.schema_id = s.id and t.query is not null order by
s.name, t.name;\n")
+
+clt.stdin.write("select distinct '\\\\dSf ' || s.name || '.\"' || f.name ||
'\"' from sys.functions f, sys.schemas s where f.language between 1 and 2 and
f.schema_id = s.id and s.name = 'sys' order by s.name, f.name;\n")
+
+out, err = clt.communicate()
+out = out.replace('"\n', '\n').replace('\n"', '\n').replace('""',
'"').replace(r'\\', '\\')
+
+# add queries to dump thye system tables, but avoid dumping IDs since
+# they are too volatile, and if it makes sense, dump an identifier
+# from a referenced table
+out += '''
+-- schemas
+select name, authorization, owner, system from sys.schemas order by name;
+-- _tables
+select s.name, t.name, t.query, t.type, t.system, t.commit_action, t.access
from sys._tables t left outer join sys.schemas s on t.schema_id = s.id order by
s.name, t.name;
+-- _columns
+select t.name, c.name, c.type, c.type_digits, c.type_scale, c."default",
c."null", c.number, c.storage from sys._tables t, sys._columns c where t.id =
c.table_id order by t.name, c.number;
+-- functions
+select s.name, f.name, f.func, f.mod, f.language, f.type, f.side_effect,
f.varres, f.vararg from sys.functions f left outer join sys.schemas s on
f.schema_id = s.id order by s.name, f.name, f.func;
+-- args
+select f.name, a.name, a.type, a.type_digits, a.type_scale, a.inout, a.number
from sys.args a left outer join sys.functions f on a.func_id = f.id order by
f.name, a.func_id, a.number;
+-- auths
+select name, grantor from sys.auths;
+-- connections (expect empty)
+select server, port, db, db_alias, user, password, language from
sys.connections order by server, port;
+-- db_user_info
+select u.name, u.fullname, s.name from sys.db_user_info u left outer join
sys.schemas s on u.default_schema = s.id order by u.name;
+-- dependencies
+select count(*) from sys.dependencies;
+-- idxs
+select t.name, i.name, i.type from sys.idxs i left outer join sys._tables t on
t.id = i.table_id order by t.name, i.name;
+-- keys
+with x as (select k.id as id, t.name as tname, k.name as kname, k.type as
type, k.rkey as rkey, k.action as action from sys.keys k left outer join
sys._tables t on t.id = k.table_id) select x.tname, x.kname, x.type, y.kname,
x.action from x left outer join x y on x.rkey = y.id order by x.tname, x.kname;
+-- objects
+select name, nr from sys.objects order by name, nr;
+-- privileges
+-- tables
+select t.name, a.name, p.privileges, g.name, p.grantable from sys._tables t,
sys.privileges p left outer join sys.auths g on p.grantor = g.id, sys.auths a
where t.id = p.obj_id and p.auth_id = a.id order by t.name, a.name;
+-- columns
+select t.name, c.name, a.name, p.privileges, g.name, p.grantable from
sys._tables t, sys._columns c, sys.privileges p left outer join sys.auths g on
p.grantor = g.id, sys.auths a where c.id = p.obj_id and c.table_id = t.id and
p.auth_id = a.id order by t.name, c.name, a.name;
+-- functions
+select f.name, a.name, p.privileges, g.name, p.grantable from sys.functions f,
sys.privileges p left outer join sys.auths g on p.grantor = g.id, sys.auths a
where f.id = p.obj_id and p.auth_id = a.id order by f.name, a.name;
+-- sequences
+select s.name, q.name, q.start, q.minvalue, q.maxvalue, q.increment,
q.cacheinc, q.cycle from sys.sequences q left outer join sys.schemas s on
q.schema_id = s.id order by s.name, q.name;
+-- statistics (expect empty)
+select count(*) from sys.statistics;
+-- storagemodelinput (expect empty)
+select count(*) from sys.storagemodelinput;
+-- systemfunctions
+select f.name from sys.systemfunctions s left outer join sys.functions f on
s.function_id = f.id order by f.name;
+-- triggers
+select t.name, g.name, g.time, g.orientation, g.event, g.old_name, g.new_name,
g.condition, g.statement from sys.triggers g left outer join sys._tables t on
g.table_id = t.id order by t.name, g.name;
+-- types
+select s.name, t.systemname, t.sqlname, t.digits, t.scale, t.radix, t.eclass
from sys.types t left outer join sys.schemas s on s.id = t.schema_id order by
s.name, t.systemname, t.sqlname, t.digits, t.scale, t.radix, t.eclass;
+-- user_role
+select a1.name, a2.name from sys.auths a1, sys.auths a2, sys.user_role ur
where a1.id = ur.login_id and a2.id = ur.role_id order by a1.name, a2.name;
+'''
+
+sys.stdout.write(out)
+sys.stderr.write(err)
+
+clt = process.client('sql', interactive = True,
+ stdin = process.PIPE, stdout = process.PIPE, stderr =
process.PIPE)
+
+out, err = clt.communicate(out)
+
+sys.stdout.write(out)
+sys.stderr.write(err)
diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/check.reqtests
b/sql/test/emptydb-upgrade-chain-hge/Tests/check.reqtests
new file mode 100644
--- /dev/null
+++ b/sql/test/emptydb-upgrade-chain-hge/Tests/check.reqtests
@@ -0,0 +1,1 @@
+upgrade
diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.err
b/sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.err
@@ -0,0 +1,37 @@
+stderr of test 'check` in directory 'sql/test/emptydb-upgrade-chain-hge`
itself:
+
+
+# 16:23:48 >
+# 16:23:48 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=32016" "--set"
"mapi_usock=/var/tmp/mtest-13569/.s.monetdb.32016" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/ufs/sjoerd/Monet-stable/var/MonetDB/mTests_sql_test_emptydb-upgrade-chain-hge"
"--set" "mal_listing=0" "--set" "embedded_r=yes"
+# 16:23:48 >
+
+# builtin opt gdk_dbpath = /ufs/sjoerd/Monet-stable/var/monetdb5/dbfarm/demo
+# builtin opt gdk_debug = 0
+# builtin opt gdk_vmtrim = no
+# builtin opt monet_prompt = >
+# builtin opt monet_daemon = no
+# builtin opt mapi_port = 50000
+# builtin opt mapi_open = false
+# builtin opt mapi_autosense = false
+# builtin opt sql_optimizer = default_pipe
+# builtin opt sql_debug = 0
+# cmdline opt gdk_nr_threads = 0
+# cmdline opt mapi_open = true
+# cmdline opt mapi_port = 32016
+# cmdline opt mapi_usock = /var/tmp/mtest-13569/.s.monetdb.32016
+# cmdline opt monet_prompt =
+# cmdline opt mal_listing = 2
+# cmdline opt gdk_dbpath =
/ufs/sjoerd/Monet-stable/var/MonetDB/mTests_sql_test_emptydb-upgrade-chain-hge
+# cmdline opt mal_listing = 0
+# cmdline opt embedded_r = yes
+# cmdline opt gdk_debug = 536870922
+
+# 16:23:48 >
+# 16:23:48 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-13569" "--port=32016"
+# 16:23:48 >
+
+
+# 16:23:51 >
+# 16:23:51 > "Done."
+# 16:23:51 >
+
diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out
b/sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out
@@ -0,0 +1,8681 @@
+stdout of test 'check` in directory 'sql/test/emptydb-upgrade-chain-hge`
itself:
+
+
+# 12:41:42 >
+# 12:41:42 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=38686" "--set"
"mapi_usock=/var/tmp/mtest-29963/.s.monetdb.38686" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/ufs/sjoerd/Monet-stable/var/MonetDB/mTests_sql_test_emptydb-upgrade-chain-hge"
"--set" "mal_listing=0" "--set" "embedded_r=yes"
+# 12:41:42 >
+
+# MonetDB 5 server v11.21.16 (hg id: 3d106269871b+)
+# This is an unreleased version
+# Serving database 'mTests_sql_test_emptydb-upgrade-chain-hge', using 8 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically
linked
+# Found 15.589 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2015 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:38686/
+# Listening for UNIX domain connection requests on
mapi:monetdb:///var/tmp/mtest-29963/.s.monetdb.38686
+# MonetDB/GIS module loaded
+# Start processing logs sql/sql_logs version 52200
+# Start reading the write-ahead log 'sql_logs/sql/log.4'
+# Finished reading the write-ahead log 'sql_logs/sql/log.4'
+# Finished processing logs sql/sql_logs
+# MonetDB/SQL module loaded
+# MonetDB/R module loaded
+
+Ready.
+
+# 12:41:42 >
+# 12:41:42 > "/usr/bin/python2" "check.SQL.py" "check"
+# 12:41:42 >
+
+\dn
+\dt
+\dv
+\ds
+\df
+\dSn
+\dSt
+\dSv
+\dSs
+\dSf
+\dn json
+\dn sys
+\dn tmp
+\dSt sys._columns
+\dSt sys._tables
+\dSt sys.args
+\dSt sys.auths
+\dSt sys.connections
+\dSt sys.db_user_info
+\dSt sys.dependencies
+\dSt sys.dependency_types
+\dSt sys.functions
+\dSt sys.idxs
+\dSt sys.keys
+\dSt sys.keywords
+\dSt sys.objects
+\dSt sys.privileges
+\dSt sys.schemas
+\dSt sys.sequences
+\dSt sys.statistics
+\dSt sys.storagemodelinput
+\dSt sys.systemfunctions
+\dSt sys.table_types
+\dSt sys.triggers
+\dSt sys.types
+\dSt sys.user_role
+\dSt tmp._columns
+\dSt tmp._tables
+\dSt tmp.idxs
+\dSt tmp.keys
+\dSt tmp.objects
+\dSt tmp.triggers
+\dSv sys.columns
+\dSv sys.environment
+\dSv sys.optimizers
+\dSv sys.querylog_calls
+\dSv sys.querylog_catalog
+\dSv sys.querylog_history
+\dSv sys.queue
+\dSv sys.rejects
+\dSv sys.sessions
+\dSv sys.storage
+\dSv sys.storagemodel
+\dSv sys.tables
+\dSv sys.tablestoragemodel
+\dSv sys.tracelog
+\dSv sys.users
+\dSf sys."Intersect"
+\dSf sys."Union"
+\dSf sys."abbrev"
+\dSf sys."alpha"
+\dSf sys."analyze"
+\dSf sys."area"
+\dSf sys."astext"
+\dSf sys."bbp"
+\dSf sys."boundary"
+\dSf sys."broadcast"
+\dSf sys."buffer"
+\dSf sys."clearrejects"
+\dSf sys."columnsize"
+\dSf sys."contains"
+\dSf sys."convexhull"
+\dSf sys."corr"
+\dSf sys."crosses"
+\dSf sys."date_to_str"
+\dSf sys."db_users"
+\dSf sys."degrees"
+\dSf sys."dependencies_columns_on_functions"
+\dSf sys."dependencies_columns_on_indexes"
+\dSf sys."dependencies_columns_on_keys"
+\dSf sys."dependencies_columns_on_triggers"
+\dSf sys."dependencies_columns_on_views"
+\dSf sys."dependencies_functions_on_functions"
+\dSf sys."dependencies_functions_os_triggers"
+\dSf sys."dependencies_keys_on_foreignkeys"
+\dSf sys."dependencies_owners_on_schemas"
+\dSf sys."dependencies_schemas_on_users"
+\dSf sys."dependencies_tables_on_foreignkeys"
+\dSf sys."dependencies_tables_on_functions"
+\dSf sys."dependencies_tables_on_indexes"
+\dSf sys."dependencies_tables_on_triggers"
+\dSf sys."dependencies_tables_on_views"
+\dSf sys."dependencies_views_on_functions"
+\dSf sys."dependencies_views_on_triggers"
+\dSf sys."difference"
+\dSf sys."dimension"
+\dSf sys."disjoint"
+\dSf sys."distance"
+\dSf sys."env"
+\dSf sys."envelope"
+\dSf sys."environment"
+\dSf sys."epoch"
+\dSf sys."equals"
+\dSf sys."evalalgebra"
+\dSf sys."fuse"
+\dSf sys."generate_series"
+\dSf sys."geomcollectionfromtext"
+\dSf sys."geometrytypeid"
+\dSf sys."geomfromtext"
+\dSf sys."getanchor"
+\dSf sys."getbasename"
+\dSf sys."getcontent"
+\dSf sys."getcontext"
+\dSf sys."getdomain"
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list