[jOOQ/jOOQ#11261] Interpreter cannot find unique key if foreign key references columns in different order

This commit is contained in:
Lukas Eder 2021-01-20 13:31:20 +01:00
parent d7810d9d59
commit 43cf60192e

View File

@ -61,11 +61,13 @@ import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Deque;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import org.jooq.Catalog;
import org.jooq.Check;
@ -1727,12 +1729,14 @@ final class Interpreter {
}
final MutableUniqueKey uniqueKey(List<MutableField> mrfs) {
Set<MutableField> set = new HashSet<>(mrfs);
if (primaryKey != null)
if (primaryKey.fields.equals(mrfs))
if (set.equals(new HashSet<>(primaryKey.fields)))
return primaryKey;
for (MutableUniqueKey mu : uniqueKeys)
if (mu.fields.equals(mrfs))
if (set.equals(new HashSet<>(mu.fields)))
return mu;
return null;