[#6265] Properly qualify all names

This commit is contained in:
lukaseder 2018-01-18 18:00:58 +01:00
parent 97388a61cc
commit 001a3f6e80
8 changed files with 26 additions and 9 deletions

View File

@ -57,6 +57,10 @@ abstract class AbstractNamed extends AbstractQueryPart implements Named {
this.comment = comment == null ? CommentImpl.NO_COMMENT : comment;
}
// -------------------------------------------------------------------------
// The Named API
// -------------------------------------------------------------------------
@Override
public final String getName() {
return StringUtils.defaultIfNull(name.last(), "");
@ -104,4 +108,12 @@ abstract class AbstractNamed extends AbstractQueryPart implements Named {
return super.equals(that);
}
// -------------------------------------------------------------------------
// Utilities
// -------------------------------------------------------------------------
static Name qualify(Named qualifier, Name name) {
return qualifier == null || name.qualified() ? name : qualifier.getQualifiedName().append(name);
}
}

View File

@ -147,7 +147,7 @@ abstract class AbstractTable<R extends Record> extends AbstractNamed implements
}
AbstractTable(Name name, Schema schema, Comment comment) {
super(name, comment);
super(qualify(schema, name), comment);
this.tableschema = schema;
}

View File

@ -71,7 +71,7 @@ class IndexImpl extends AbstractNamed implements Index {
}
IndexImpl(Name name, Table<?> table, OrderField<?>[] fields, Condition where, boolean unique) {
super(name, CommentImpl.NO_COMMENT);
super(qualify(table, name), CommentImpl.NO_COMMENT);
this.table = table;
this.fields = Tools.sortFields(fields);

View File

@ -59,12 +59,12 @@ public class PackageImpl extends AbstractNamed implements Package {
/**
* Generated UID
*/
private static final long serialVersionUID = 7466890004995197675L;
private static final long serialVersionUID = 7466890004995197675L;
private final Schema schema;
private Schema schema;
public PackageImpl(String name, Schema schema) {
super(DSL.name(name), CommentImpl.NO_COMMENT);
super(qualify(schema, DSL.name(name)), CommentImpl.NO_COMMENT);
this.schema = schema;
}
@ -76,6 +76,11 @@ public class PackageImpl extends AbstractNamed implements Package {
@Override
public final Schema getSchema() {
if (schema == null)
schema = getQualifiedName().qualified()
? DSL.schema(getQualifiedName().qualifier())
: null;
return schema;
}

View File

@ -90,7 +90,7 @@ public class SchemaImpl extends AbstractNamed implements Schema {
}
public SchemaImpl(Name name, Catalog catalog, Comment comment) {
super(name, comment);
super(qualify(catalog, name), comment);
this.catalog = catalog;
}

View File

@ -82,7 +82,7 @@ public class SequenceImpl<T extends Number> extends AbstractNamed implements Seq
}
SequenceImpl(String name, Schema schema, DataType<T> type, boolean nameIsPlainSQL) {
super(DSL.name(name), CommentImpl.NO_COMMENT);
super(qualify(schema, DSL.name(name)), CommentImpl.NO_COMMENT);
this.name = name;
this.schema = schema;

View File

@ -66,7 +66,7 @@ final class TableFieldImpl<R extends Record, T> extends AbstractField<T> impleme
private final Table<R> table;
TableFieldImpl(Name name, DataType<T> type, Table<R> table, Comment comment, Binding<?, T> binding) {
super(name, type, comment, binding);
super(qualify(table, name), type, comment, binding);
this.table = table;
}

View File

@ -81,7 +81,7 @@ public class UDTImpl<R extends UDTRecord<R>> extends AbstractNamed implements UD
}
public UDTImpl(String name, Schema schema, Package pkg, boolean synthetic) {
super(DSL.name(name), CommentImpl.NO_COMMENT);
super(qualify(pkg != null ? pkg : schema, DSL.name(name)), CommentImpl.NO_COMMENT);
this.fields = new Fields<R>();
this.schema = schema;