[#6265] Properly qualify all names
This commit is contained in:
parent
97388a61cc
commit
001a3f6e80
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user