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

Reply via email to