[jOOQ/jOOQ#9343] Fix UDTDataType#getQualifiedName()

`UDTDataType#getQualifiedName()` returned a wrong result for types
defined in the default schema (i.e. the schema with no name). In SQL the
type name was rendered as `".my_type"` rather than simply `"my_type"`.
This commit is contained in:
Knut Wannheden 2019-10-09 15:40:54 +02:00
parent 5c9fcf7748
commit 39bb771e1b
2 changed files with 20 additions and 12 deletions

View File

@ -37,6 +37,7 @@
*/
package org.jooq.impl;
import org.jooq.Name;
import org.jooq.Record;
import org.jooq.SQLDialect;
import org.jooq.Table;
@ -57,14 +58,17 @@ final class TableDataType<R extends Record> extends DefaultDataType<R> {
}
private static String getQualifiedName(Table<?> table) {
Name name = table.getQualifiedName();
if (!name.qualified())
return name.first();
StringBuilder sb = new StringBuilder();
if (table.getSchema() != null) {
sb.append(table.getSchema().getName());
sb.append(".");
Name[] parts = name.parts();
for (int i = 0; i < parts.length; i++) {
sb.append(parts[i].first());
if (i < parts.length - 1)
sb.append('.');
}
sb.append(table.getName());
return sb.toString();
}
}

View File

@ -37,6 +37,7 @@
*/
package org.jooq.impl;
import org.jooq.Name;
import org.jooq.SQLDialect;
import org.jooq.UDT;
import org.jooq.UDTRecord;
@ -56,14 +57,17 @@ final class UDTDataType<R extends UDTRecord<R>> extends DefaultDataType<R> {
}
private static String getQualifiedName(UDT<?> udt) {
Name name = udt.getQualifiedName();
if (!name.qualified())
return name.first();
StringBuilder sb = new StringBuilder();
if (udt.getSchema() != null) {
sb.append(udt.getSchema().getName());
sb.append(".");
Name[] parts = name.parts();
for (int i = 0; i < parts.length; i++) {
sb.append(parts[i].first());
if (i < parts.length - 1)
sb.append('.');
}
sb.append(udt.getName());
return sb.toString();
}
}