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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list