Changeset: 97d686e7fc68 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=97d686e7fc68 Modified Files: clients/Tests/SQL-dump_all.stable.out clients/Tests/SQL-dump_all.stable.out.oid32 clients/Tests/SQL-dump_geom.stable.out clients/Tests/SQL-dump_geom.stable.out.32bit clients/Tests/SQL-dump_geom.stable.out.64bit.oid32 clients/Tests/SQL-dump_none.stable.out clients/mapiclient/dump.c clients/mapiclient/mclient.c clients/mapiclient/msqldump.h Branch: Oct2014 Log Message:
Use sys.schemas.system column when available to find system schemas. diffs (188 lines): diff --git a/clients/Tests/SQL-dump_all.stable.out b/clients/Tests/SQL-dump_all.stable.out --- a/clients/Tests/SQL-dump_all.stable.out +++ b/clients/Tests/SQL-dump_all.stable.out @@ -50,17 +50,14 @@ Ready. # loading sql script: 80_udf.sql # loading sql script: 99_system.sql -# 15:01:36 > -# 15:01:36 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-13451" "--port=34237" -# 15:01:36 > +# 15:19:38 > +# 15:19:38 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-517" "--port=32251" +# 15:19:38 > -SCHEMA bam -SCHEMA json -SCHEMA tmp -SCHEMA bam -SCHEMA json -SCHEMA tmp +SYSTEM SCHEMA bam +SYSTEM SCHEMA json SYSTEM SCHEMA sys +SYSTEM SCHEMA tmp SYSTEM TABLE sys._columns SYSTEM TABLE sys._tables SYSTEM TABLE sys.args diff --git a/clients/Tests/SQL-dump_all.stable.out.oid32 b/clients/Tests/SQL-dump_all.stable.out.oid32 --- a/clients/Tests/SQL-dump_all.stable.out.oid32 +++ b/clients/Tests/SQL-dump_all.stable.out.oid32 @@ -50,17 +50,14 @@ Ready. # loading sql script: 80_udf.sql # loading sql script: 99_system.sql -# 15:01:36 > -# 15:01:36 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-13451" "--port=34237" -# 15:01:36 > +# 15:19:38 > +# 15:19:38 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-517" "--port=32251" +# 15:19:38 > -SCHEMA bam -SCHEMA json -SCHEMA tmp -SCHEMA bam -SCHEMA json -SCHEMA tmp +SYSTEM SCHEMA bam +SYSTEM SCHEMA json SYSTEM SCHEMA sys +SYSTEM SCHEMA tmp SYSTEM TABLE sys._columns SYSTEM TABLE sys._tables SYSTEM TABLE sys.args diff --git a/clients/Tests/SQL-dump_geom.stable.out b/clients/Tests/SQL-dump_geom.stable.out --- a/clients/Tests/SQL-dump_geom.stable.out +++ b/clients/Tests/SQL-dump_geom.stable.out @@ -54,10 +54,9 @@ Ready. # 15:01:36 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-13451" "--port=34237" # 15:01:36 > -SCHEMA json -SCHEMA tmp -SCHEMA json -SCHEMA tmp +SYSTEM SCHEMA json +SYSTEM SCHEMA sys +SYSTEM SCHEMA tmp SYSTEM SCHEMA sys SYSTEM TABLE sys._columns SYSTEM TABLE sys._tables diff --git a/clients/Tests/SQL-dump_geom.stable.out.32bit b/clients/Tests/SQL-dump_geom.stable.out.32bit --- a/clients/Tests/SQL-dump_geom.stable.out.32bit +++ b/clients/Tests/SQL-dump_geom.stable.out.32bit @@ -54,10 +54,9 @@ Ready. # 15:01:36 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-13451" "--port=34237" # 15:01:36 > -SCHEMA json -SCHEMA tmp -SCHEMA json -SCHEMA tmp +SYSTEM SCHEMA json +SYSTEM SCHEMA sys +SYSTEM SCHEMA tmp SYSTEM SCHEMA sys SYSTEM TABLE sys._columns SYSTEM TABLE sys._tables diff --git a/clients/Tests/SQL-dump_geom.stable.out.64bit.oid32 b/clients/Tests/SQL-dump_geom.stable.out.64bit.oid32 --- a/clients/Tests/SQL-dump_geom.stable.out.64bit.oid32 +++ b/clients/Tests/SQL-dump_geom.stable.out.64bit.oid32 @@ -54,10 +54,9 @@ Ready. # 15:01:36 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-13451" "--port=34237" # 15:01:36 > -SCHEMA json -SCHEMA tmp -SCHEMA json -SCHEMA tmp +SYSTEM SCHEMA json +SYSTEM SCHEMA sys +SYSTEM SCHEMA tmp SYSTEM SCHEMA sys SYSTEM TABLE sys._columns SYSTEM TABLE sys._tables diff --git a/clients/Tests/SQL-dump_none.stable.out b/clients/Tests/SQL-dump_none.stable.out --- a/clients/Tests/SQL-dump_none.stable.out +++ b/clients/Tests/SQL-dump_none.stable.out @@ -54,10 +54,9 @@ Ready. # 15:01:36 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-13451" "--port=34237" # 15:01:36 > -SCHEMA json -SCHEMA tmp -SCHEMA json -SCHEMA tmp +SYSTEM SCHEMA json +SYSTEM SCHEMA sys +SYSTEM SCHEMA tmp SYSTEM SCHEMA sys SYSTEM TABLE sys._columns SYSTEM TABLE sys._tables diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c --- a/clients/mapiclient/dump.c +++ b/clients/mapiclient/dump.c @@ -142,7 +142,7 @@ has_systemfunctions(Mapi mid) } /* return TRUE if the sys.schemas table has a column named system */ -static int +int has_schemas_system(Mapi mid) { MapiHdl hdl; diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c --- a/clients/mapiclient/mclient.c +++ b/clients/mapiclient/mclient.c @@ -1946,6 +1946,7 @@ doFile(Mapi mid, const char *file, int u MapiMsg rc = MOK; int lineno = 1; enum hmyesno hassysfuncs = UNKNOWN; + enum hmyesno hasschemsys = UNKNOWN; FILE *fp; char *prompt = NULL; int prepno = 0; @@ -2301,6 +2302,8 @@ doFile(Mapi mid, const char *file, int u if (hassysfuncs == UNKNOWN) hassysfuncs = has_systemfunctions(mid) ? YES : NO; + if (hasschemsys == UNKNOWN) + hasschemsys = has_schemas_system(mid) ? YES : NO; if (!*line) { line = "%"; @@ -2398,14 +2401,8 @@ doFile(Mapi mid, const char *file, int u "%s " "UNION " "SELECT NULL AS name, " - "(CASE WHEN o.name LIKE 'sys' " - "THEN 'SYSTEM ' " - "ELSE '' " - "END " - "|| 'SCHEMA') AS type, " - "CASE WHEN o.name LIKE 'sys' " - "THEN true " - "ELSE false END AS system, " + "(CASE WHEN %s THEN 'SYSTEM ' ELSE '' END || 'SCHEMA') AS type, " + "%s AS system, " "o.name AS sname, " "%d AS ntype " "FROM sys.schemas o " @@ -2418,6 +2415,8 @@ doFile(Mapi mid, const char *file, int u nameq, MD_SEQ, nameq, funcq, + hasschemsys ? "o.system" : "o.name LIKE 'sys'", + hasschemsys ? "o.system" : "o.name LIKE 'sys'", MD_SCHEMA, line, x, (wantsSystem ? diff --git a/clients/mapiclient/msqldump.h b/clients/mapiclient/msqldump.h --- a/clients/mapiclient/msqldump.h +++ b/clients/mapiclient/msqldump.h @@ -26,3 +26,4 @@ extern int dump_functions(Mapi mid, stre extern int dump_database(Mapi mid, stream *toConsole, int describe, const char useInserts); extern void dump_version(Mapi mid, stream *toConsole, const char *prefix); extern int has_systemfunctions(Mapi mid); +extern int has_schemas_system(Mapi mid); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list