if (columnReference.getForeignKeyColumn().getParent().equals(this))
if (columnReference.getForeignKeyColumn().getParent().equals(this))
final Table childTable = columnReference.getForeignKeyColumn() .getParent(); switch (tableRelationshipType)
final Table childTable = columnReference.getForeignKeyColumn() .getParent(); switch (tableRelationshipType)
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); } } } } }
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()); } } } }
@Test public void fkReferences(final Connection connection) throws Exception { final SchemaCrawlerOptions schemaCrawlerOptions = DatabaseTestUtility.schemaCrawlerOptionsWithMaximumSchemaInfoLevel; int fkReferenceCount = 0; final Catalog catalog = getCatalog(connection, schemaCrawlerOptions); final Collection<Table> tables = catalog.getTables(); for (final Table table: tables) { final Collection<ForeignKey> foreignKeys = table.getForeignKeys(); for (final ForeignKey foreignKey: foreignKeys) { for (final ForeignKeyColumnReference fkColumnRef: foreignKey) { assertReferencedColumnExists(catalog, fkColumnRef.getPrimaryKeyColumn()); assertReferencedColumnExists(catalog, fkColumnRef.getForeignKeyColumn()); fkReferenceCount++; } } } assertThat(fkReferenceCount, is(26)); }
@Test public void fkReferencesForGreppedTables2(final Connection connection) throws Exception { final SchemaCrawlerOptions schemaCrawlerOptions = SchemaCrawlerOptionsBuilder .builder() .includeGreppedColumns(new RegularExpressionInclusionRule(".*\\.AUTHORS\\..*")) .toOptions(); int fkReferenceCount = 0; final Catalog catalog = getCatalog(connection, schemaCrawlerOptions); final Collection<Table> tables = catalog.getTables(); for (final Table table: tables) { final Collection<ForeignKey> foreignKeys = table.getForeignKeys(); for (final ForeignKey foreignKey: foreignKeys) { for (final ForeignKeyColumnReference fkColumnRef: foreignKey) { assertReferencedColumnExists(catalog, fkColumnRef.getPrimaryKeyColumn()); assertReferencedColumnDoesNotExist(catalog, fkColumnRef.getForeignKeyColumn(), false); fkReferenceCount++; } } } assertThat(fkReferenceCount, is(1)); }
@Test public void fkReferencesForGreppedTables1(final Connection connection) throws Exception { final SchemaCrawlerOptions schemaCrawlerOptions = SchemaCrawlerOptionsBuilder .builder() .includeGreppedColumns(new RegularExpressionInclusionRule(".*\\.BOOKAUTHORS\\..*")) .toOptions(); int fkReferenceCount = 0; final Catalog catalog = getCatalog(connection, schemaCrawlerOptions); final Collection<Table> tables = catalog.getTables(); for (final Table table: tables) { final Collection<ForeignKey> foreignKeys = table.getForeignKeys(); for (final ForeignKey foreignKey: foreignKeys) { for (final ForeignKeyColumnReference fkColumnRef: foreignKey) { assertReferencedColumnDoesNotExist(catalog, fkColumnRef.getPrimaryKeyColumn(), false); assertReferencedColumnExists(catalog, fkColumnRef.getForeignKeyColumn()); fkReferenceCount++; } } } assertThat(fkReferenceCount, is(2)); }
@Override public DaColumn getForeignKeyColumn() { return new DaColumnImpl(fkColumnReference.getForeignKeyColumn(), schemaStrategy); }
fkColumnRef.getPrimaryKeyColumn()); assertReferencedColumnDoesNotExist(catalog, fkColumnRef.getForeignKeyColumn(), true);
true); assertReferencedColumnExists(catalog, fkColumnRef.getForeignKeyColumn());
public static final List<String> foreignKeyColumnNames(final ForeignKey foreignKey) { if (foreignKey == null) { return Collections.emptyList(); } final List<String> columnNames = new ArrayList<>(); for (final ForeignKeyColumnReference columnReference: foreignKey .getColumnReferences()) { columnNames.add(columnReference.getForeignKeyColumn().getFullName()); } return columnNames; }
private Map<String, ForeignKeyColumnReference> mapForeignKeyColumns(final List<Table> tables) { final Map<String, ForeignKeyColumnReference> fkColumnsMap = new HashMap<>(); for (final Table table: tables) { for (final ForeignKey fk: table.getForeignKeys()) { for (final ForeignKeyColumnReference fkMap: fk.getColumnReferences()) { fkColumnsMap.put(fkMap.getForeignKeyColumn().getFullName(), fkMap); } } } return fkColumnsMap; }
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); } } } } }
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) { if (tables == null) { return; } for (final Table table: tables) { addVertex(table); for (final ForeignKey foreignKey: table.getForeignKeys()) { for (final ForeignKeyColumnReference columnReference: foreignKey .getColumnReferences()) { addDirectedEdge(columnReference.getPrimaryKeyColumn().getParent(), columnReference.getForeignKeyColumn().getParent()); } } } }