changeset 313:f2750ea9f93d

When exporting table/view definition always include the schema name. The useSchema flag is only used to generate the SET SCHEMA ... command. This resolves the testweb errors for sql/test/BugDay_2005-10-06_2.9.3/not_null.SF-933194 and sql/test/BugDay_2005-10-06_2.9.3/type_dump_test.SF-989257
author Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
date Wed, 28 Aug 2019 14:43:53 +0200 (2019-08-28)
parents df815a403bf4
children 6d98a1d3af00
files src/main/java/nl/cwi/monetdb/util/SQLExporter.java src/main/java/nl/cwi/monetdb/util/XMLExporter.java
diffstat 2 files changed, 10 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/nl/cwi/monetdb/util/SQLExporter.java
+++ b/src/main/java/nl/cwi/monetdb/util/SQLExporter.java
@@ -57,7 +57,7 @@ public final class SQLExporter extends E
 		assert schema != null;
 		assert name != null;
 
-		final String fqname = (useSchema ? dq(schema) + "." : "") + dq(name);
+		final String fqname = dq(schema) + "." + dq(name);
 
 		if (useSchema)
 			changeSchema(schema);
@@ -414,11 +414,9 @@ public final class SQLExporter extends E
 
 		final StringBuilder strbuf = new StringBuilder(1024);
 		strbuf.append("INSERT INTO ");
-		if (useSchema) {
-			final String schema = rsmd.getSchemaName(1);
-			if (schema != null && !schema.isEmpty())
-				strbuf.append(dq(schema)).append(".");
-		}
+		final String schema = rsmd.getSchemaName(1);
+		if (schema != null && !schema.isEmpty())
+			strbuf.append(dq(schema)).append(".");
 		strbuf.append(dq(rsmd.getTableName(1))).append(" VALUES (");
 		final int cmdpart = strbuf.length();
 
--- a/src/main/java/nl/cwi/monetdb/util/XMLExporter.java
+++ b/src/main/java/nl/cwi/monetdb/util/XMLExporter.java
@@ -51,7 +51,7 @@ public final class XMLExporter extends E
 			types[0] = type;
 			final ResultSet tbl = dbmd.getTables(catalog, schema, name, types);
 			if (tbl != null) {
-				final String fqname = (useSchema ? dq(schema) + "." : "") + dq(name);
+				final String fqname = dq(schema) + "." + dq(name);
 				if (!tbl.next()) {
 					tbl.close();
 					throw new SQLException("Whoops no meta data for view " + fqname);
@@ -373,9 +373,10 @@ public final class XMLExporter extends E
 	public void dumpResultSet(final ResultSet rs) throws SQLException {
 		// write simple XML serialisation
 		final java.sql.ResultSetMetaData rsmd = rs.getMetaData();
-		if (useSchema)
-			out.println("<" + rsmd.getSchemaName(1) + ">");
-		out.println("<" + rsmd.getTableName(1) + ">");
+		final String schema = rsmd.getSchemaName(1);
+		final String fqname = (schema != null && !schema.isEmpty() ? schema + "." : "") + rsmd.getTableName(1);
+		out.println("<" + fqname + ">");
+
 		String data;
 		while (rs.next()) {
 			out.println("  <row>");
@@ -416,9 +417,7 @@ public final class XMLExporter extends E
 			}
 			out.println("  </row>");
 		}
-		out.println("</" + rsmd.getTableName(1) + ">");
-		if (useSchema)
-			out.println("</" + rsmd.getSchemaName(1) + ">");
+		out.println("</" + fqname + ">");
 	}
 
 	public void setProperty(final int type, final int value) throws Exception {