private final Name generatedName() { Name t = table.getQualifiedName(); StringBuilder sb = new StringBuilder(table.getName()); for (SortField<?> f : sortFields) sb.append('_').append(f.getName()); sb.append("_idx"); if (t.qualified()) return t.qualifier().append(sb.toString()); else return name(sb.toString()); }
static final <T> Field<T> qualify(Table<?> table, Field<T> field) { Field<T> result = table.field(field); if (result != null) return result; Name[] part = table.getQualifiedName().parts(); Name[] name = new Name[part.length + 1]; System.arraycopy(part, 0, name, 0, part.length); name[part.length] = field.getUnqualifiedName(); return DSL.field(DSL.name(name), field.getDataType()); }
@SuppressWarnings("unchecked") public ReflectedTable(Table<?> table) { super(table.getQualifiedName()); this.table = table; for (Field<?> field : table.fields()) { String name = field.getName(); DataType<Object> dataType = (DataType<Object>) field.getDataType(); TableField newField = createField(name, dataType); fields.put(name, newField); } UniqueKey<?> primaryKey = table.getPrimaryKey(); if (primaryKey != null) { if (primaryKey.getFields().size() == 1) { pk = primaryKey.getFields().get(0); } } for (ForeignKey<?, ?> fk : table.getReferences()) { fks.put(findForeignKeyFieldName(fk), findForeignKeyReference(fk)); } }
static final void pgRenderRecordCast(RenderContext render, Record value) { if (value instanceof UDTRecord) render.sql("::").visit(((UDTRecord<?>) value).getUDT().getQualifiedName()); else if (value instanceof TableRecord) render.sql("::").visit(((TableRecord<?>) value).getTable().getQualifiedName()); }
/** * Factory method for path aliases. */ public static final Name createPathAlias(Table<?> child, ForeignKey<?, ?> path) { Name name = DSL.name(path.getName()); if (child instanceof TableImpl) { Table<?> ancestor = ((TableImpl<?>) child).child; if (ancestor != null) name = createPathAlias(ancestor, ((TableImpl<?>) child).childPath).append(name); else name = child.getQualifiedName().append(name); } return DSL.name("alias_" + Tools.hash(name)); }
private static final DDLQuery parseCreateTable(ParserContext ctx, boolean temporary) { boolean ifNotExists = !temporary && parseKeywordIf(ctx, "IF NOT EXISTS"); Table<?> tableName = DSL.table(parseTableName(ctx).getQualifiedName()); CreateTableCommentStep commentStep; CreateTableStorageStep storageStep;