diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalJoin.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalJoin.java index c771f0372e1744..773dbce5fc256e 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalJoin.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalJoin.java @@ -423,8 +423,8 @@ public FunctionalDependencies computeFuncDeps(Supplier> outputSupplie // TODO: consider Null-safe hash condition when left and rigth is not nullable boolean isLeftUnique = left().getLogicalProperties() .getFunctionalDependencies().isUnique(keys.first); - boolean isRightUnique = left().getLogicalProperties() - .getFunctionalDependencies().isUnique(keys.first); + boolean isRightUnique = right().getLogicalProperties() + .getFunctionalDependencies().isUnique(keys.second); Builder fdBuilder = new Builder(); if (joinType.isInnerJoin()) { // inner join propagate uniforms slots diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateJoinByFkTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateJoinByFkTest.java index 1faaca4f3f5550..721e94b144d05c 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateJoinByFkTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateJoinByFkTest.java @@ -107,7 +107,8 @@ void testNullWithPredicate() throws Exception { @Test void testMultiJoin() throws Exception { - addConstraint("Alter table foreign_null add constraint uk unique (id3)\n"); + addConstraint("Alter table foreign_null add constraint uk_id3 unique (id3)\n"); + addConstraint("Alter table foreign_not_null add constraint uk_id2 unique (id2)\n"); String sql = "select id1 from " + "foreign_null inner join foreign_not_null on id2 = id3\n" + "inner join pri on id1 = id3"; @@ -116,6 +117,7 @@ void testMultiJoin() throws Exception { .rewrite() .nonMatch(logicalOlapScan().when(scan -> scan.getTable().getName().equals("pri"))) .printlnTree(); - dropConstraint("Alter table foreign_null drop constraint uk\n"); + dropConstraint("Alter table foreign_null drop constraint uk_id3\n"); + dropConstraint("Alter table foreign_not_null drop constraint uk_id2"); } }