public static String constructForeignKeyName(final Column pkColumn, final Column fkColumn) { requireNonNull(pkColumn, "No primary key column provided"); requireNonNull(fkColumn, "No foreign key column provided"); final Table pkTable = pkColumn.getParent(); final Table fkParent = fkColumn.getParent(); final String pkHex = Integer.toHexString(pkTable.getFullName().hashCode()); final String fkHex = Integer.toHexString(fkParent.getFullName().hashCode()); final String foreignKeyName = String.format("SC_%s_%s", pkHex, fkHex) .toUpperCase(); return foreignKeyName; }
public static String constructForeignKeyName(final Column pkColumn, final Column fkColumn) { requireNonNull(pkColumn, "No primary key column provided"); requireNonNull(fkColumn, "No foreign key column provided"); final Table pkTable = pkColumn.getParent(); final Table fkParent = fkColumn.getParent(); final String pkHex = Integer.toHexString(pkTable.getFullName().hashCode()); final String fkHex = Integer.toHexString(fkParent.getFullName().hashCode()); final String foreignKeyName = String.format("SC_%s_%s", pkHex, fkHex) .toUpperCase(); return foreignKeyName; }
MutableIndexColumn(final Index index, final Column column) { super(new TableReference(column.getParent()), column.getName()); this.index = index; this.column = column; definition = new StringBuilder(); }
MutableIndexColumn(final Index index, final Column column) { super(new TableReference(column.getParent()), column.getName()); this.index = index; this.column = column; definition = new StringBuilder(); }
ColumnPartial(final Column column) { this(requireNonNull(column, "No column provided").getParent(), column.getName()); addAttributes(column.getAttributes()); }
ColumnPartial(final Column column) { this(requireNonNull(column, "No column provided").getParent(), column.getName()); addAttributes(column.getAttributes()); }
public static boolean isForeignKeyUnique(final BaseForeignKey<?> foreignKey) { if (foreignKey == null) { return false; } final ColumnReference columnRef0 = foreignKey.getColumnReferences().get(0); final Table fkTable = columnRef0.getForeignKeyColumn().getParent(); final Collection<List<String>> uniqueIndexCoumnNames = uniqueIndexCoumnNames(fkTable); final List<String> foreignKeyColumnNames = foreignKeyColumnNames(foreignKey); return uniqueIndexCoumnNames.contains(foreignKeyColumnNames); }
public static boolean isForeignKeyUnique(final BaseForeignKey<?> foreignKey) { if (foreignKey == null) { return false; } final ColumnReference columnRef0 = foreignKey.getColumnReferences().get(0); final Table fkTable = columnRef0.getForeignKeyColumn().getParent(); final Collection<List<String>> uniqueIndexCoumnNames = uniqueIndexCoumnNames(fkTable); final List<String> foreignKeyColumnNames = foreignKeyColumnNames(foreignKey); return uniqueIndexCoumnNames.contains(foreignKeyColumnNames); }
private String[] getPortIds(final Column column, final boolean isNewNode) { final String[] portIds = new String[2]; if (!isNewNode) { portIds[0] = String.format("\"%s\":\"%s.start\"", nodeId(column.getParent()), nodeId(column)); portIds[1] = String.format("\"%s\":\"%s.end\"", nodeId(column.getParent()), nodeId(column)); } else { // Create new node final String nodeId = printNewNode(column); // portIds[0] = nodeId; portIds[1] = nodeId; } return portIds; }
TablesGraph(final NamedObjectList<MutableTable> tables) { super("catalog"); if (tables == null) { return; } for (final Table table: tables) { addVertex(table); for (final ForeignKey foreignKey: table.getForeignKeys()) { for (final ForeignKeyColumnReference columnRef: foreignKey) { addEdge(columnRef.getPrimaryKeyColumn().getParent(), columnRef.getForeignKeyColumn().getParent()); } } } }
TablesGraph(final NamedObjectList<MutableTable> tables) { super("catalog"); if (tables == null) { return; } for (final Table table: tables) { addVertex(table); for (final ForeignKey foreignKey: table.getForeignKeys()) { for (final ForeignKeyColumnReference columnRef: foreignKey) { addEdge(columnRef.getPrimaryKeyColumn().getParent(), columnRef.getForeignKeyColumn().getParent()); } } } }
private void addWeakAssociation(final WeakAssociation weakAssociation) { final String weakFkName = MetaDataUtility .constructForeignKeyName(weakAssociation.getPrimaryKeyColumn(), weakAssociation.getForeignKeyColumn()); final WeakAssociationForeignKey weakFk = new WeakAssociationForeignKey(weakFkName); weakFk.add(weakAssociation); weakAssociations.add(weakFk); addWeakAssociationToTable(weakAssociation.getPrimaryKeyColumn().getParent(), weakFk); addWeakAssociationToTable(weakAssociation.getForeignKeyColumn().getParent(), weakFk); }
private void assertReferencedColumnExists(final Catalog catalog, final Column column) { assertThat(column, notNullValue()); final Table table = column.getParent(); assertThat("Table references do not match - " + table.getName(), table == catalog.lookupTable(table.getSchema(), table.getName()) .get()); assertThat("Column references do not match", column == table.lookupColumn(column.getName()).get()); }
public boolean isValid() { final Column primaryKeyColumn = getPrimaryKeyColumn(); final Column foreignKeyColumn = getForeignKeyColumn(); final Table pkTable = primaryKeyColumn.getParent(); final Table fkTable = foreignKeyColumn.getParent(); if ((foreignKeyColumn.isPartOfPrimaryKey() || foreignKeyColumn.isPartOfUniqueIndex()) && pkTable.compareTo(fkTable) > 0) { return false; } final ColumnDataType fkColumnType = foreignKeyColumn.getColumnDataType(); final ColumnDataType pkColumnType = primaryKeyColumn.getColumnDataType(); final boolean isValid = fkColumnType.getJavaSqlType().getName() .equals(pkColumnType.getJavaSqlType().getName()); return isValid; }
private void printForeignKeys(final Table table, final Collection<? extends BaseForeignKey<?>> foreignKeys) { for (final BaseForeignKey<? extends ColumnReference> foreignKey: foreignKeys) { final ForeignKeyCardinality fkCardinality = findForeignKeyCardinality(foreignKey); for (final ColumnReference columnRef: foreignKey) { final Table referencedTable = columnRef.getForeignKeyColumn() .getParent(); final boolean isForeignKeyFiltered = referencedTable .getAttribute("schemacrawler.table.no_grep_match", false); if (isForeignKeyFiltered) { continue; } final boolean isFkColumnFiltered = referencedTable .getAttribute("schemacrawler.table.filtered_out", false); if (table.equals(columnRef.getPrimaryKeyColumn().getParent())) { formattingHelper.append(printColumnReference(identifiers .quoteName(foreignKey.getName()), columnRef, fkCardinality, isFkColumnFiltered)); } } } }
private void removeForeignKeys(final ReducibleCollection<? extends Table> allTables) { for (final Table table: allTables) { for (final ForeignKey foreignKey: table.getExportedForeignKeys()) { for (final ForeignKeyColumnReference fkColumnRef: foreignKey) { final Table referencedTable = fkColumnRef.getForeignKeyColumn() .getParent(); if (isTablePartial(referencedTable) || allTables.isFiltered(referencedTable)) { markTableFilteredOut(referencedTable); } } } } }
private void removeForeignKeys(final ReducibleCollection<? extends Table> allTables) { for (final Table table: allTables) { for (final ForeignKey foreignKey: table.getExportedForeignKeys()) { for (final ForeignKeyColumnReference fkColumnRef: foreignKey) { final Table referencedTable = fkColumnRef.getForeignKeyColumn() .getParent(); if (isTablePartial(referencedTable) || allTables.isFiltered(referencedTable)) { markTableFilteredOut(referencedTable); } } } } }
final boolean assertDataNotLoaded) final Table table = column.getParent(); assertThat("Primary key table table should not be in the database - " + table.getName(),