diff --git a/jOOQ-meta/src/main/java/org/jooq/util/DefaultRelations.java b/jOOQ-meta/src/main/java/org/jooq/util/DefaultRelations.java index 0df84ed9d2..7b15a6efbc 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/DefaultRelations.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/DefaultRelations.java @@ -208,6 +208,24 @@ public class DefaultRelations implements Relations { return new ArrayList(result); } + + + @Override + public List getUniqueKeys(SchemaDefinition schema) { + Set result = new LinkedHashSet(); + + for (TableDefinition table : schema.getDatabase().getTables(schema)) { + result.addAll(getUniqueKeys(table)); + } + + return new ArrayList(result); + } + + @Override + public List getUniqueKeys() { + return new ArrayList(uniqueKeys.values()); + } + @Override public List getForeignKeys(ColumnDefinition column) { if (foreignKeysByColumn == null) { diff --git a/jOOQ-meta/src/main/java/org/jooq/util/Relations.java b/jOOQ-meta/src/main/java/org/jooq/util/Relations.java index 3e2fe67d72..da2ebd87f5 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/Relations.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/Relations.java @@ -69,6 +69,18 @@ public interface Relations { */ List getUniqueKeys(TableDefinition table); + /** + * Get a list of all referenced keys (primary or unique) for a given schema. + * Returns an empty list if the given schema has no primary or unique keys. + */ + List getUniqueKeys(SchemaDefinition schema); + + /** + * Get a list of all referenced keys (primary or unique). Returns an empty + * list if there are no primary or unique keys. + */ + List getUniqueKeys(); + /** * Get a list of foreign keys for a given table, that the column * participates in. Returns an empty list if the given column is not part of