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); }
@Test public void fkUtilities(final TestContext testContext, final Connection connection) throws Exception { final SchemaCrawlerOptionsBuilder schemaCrawlerOptionsBuilder = SchemaCrawlerOptionsBuilder .builder().withSchemaInfoLevel(SchemaInfoLevelBuilder.maximum()); final SchemaCrawlerOptions schemaCrawlerOptions = schemaCrawlerOptionsBuilder .toOptions(); final Catalog catalog = getCatalog(connection, schemaCrawlerOptions); final Schema schema = catalog.lookupSchema("PUBLIC.BOOKS").get(); assertThat("BOOKS Schema not found", schema, notNullValue()); final Table table = catalog.lookupTable(schema, "BOOKS").get(); assertThat("BOOKS Table not found", table, notNullValue()); final ForeignKey fk = table.getForeignKeys().toArray(new ForeignKey[0])[0]; assertThat("Foreign key not found", fk, notNullValue()); final ColumnReference columnReference = fk.getColumnReferences() .toArray(new ColumnReference[0])[0]; assertThat("Column reference not found", columnReference, notNullValue()); assertThat(MetaDataUtility .constructForeignKeyName(columnReference.getForeignKeyColumn(), columnReference.getPrimaryKeyColumn()), is("SC_AA4376_AFD2BA21")); assertThat(MetaDataUtility.findForeignKeyCardinality(fk), is(ForeignKeyCardinality.zero_many)); assertThat(MetaDataUtility.foreignKeyColumnNames(fk), containsInAnyOrder("PUBLIC.BOOKS.BOOKAUTHORS.BOOKID")); }
public static boolean isForeignKeyUnique(final ForeignKey foreignKey, final Table table) { final Collection<List<String>> uniqueIndexCoumnNames = uniqueIndexCoumnNames(table); 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); }
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); }