Skip to content

Commit 93fb58a

Browse files
zhongjian.xzjzhongjian.xzj
zhongjian.xzj
authored and
zhongjian.xzj
committed
[nereids] pull up join from union all rule
1 parent 39817c6 commit 93fb58a

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PullUpJoinFromUnionAll.java

+20-10
Original file line numberDiff line numberDiff line change
@@ -344,23 +344,33 @@ private boolean checkJoinConditionOnPk(LogicalJoin joinRoot, LogicalCatalogRelat
344344
}
345345

346346
private Set<String> getPkInfoFromConstraint(LogicalCatalogRelation table) {
347-
for (Map.Entry<String, Constraint> constraintMap : table.getTable().getConstraintsMap().entrySet()) {
348-
Constraint constraint = constraintMap.getValue();
349-
if (constraint instanceof PrimaryKeyConstraint) {
350-
return ((PrimaryKeyConstraint) constraint).getPrimaryKeyNames();
347+
table.getTable().readLock();
348+
try {
349+
for (Map.Entry<String, Constraint> constraintMap : table.getTable().getConstraintsMap().entrySet()) {
350+
Constraint constraint = constraintMap.getValue();
351+
if (constraint instanceof PrimaryKeyConstraint) {
352+
return ((PrimaryKeyConstraint) constraint).getPrimaryKeyNames();
353+
}
351354
}
355+
return null;
356+
} finally {
357+
table.getTable().readUnlock();
352358
}
353-
return null;
354359
}
355360

356361
private Set<String> getUkInfoFromConstraint(LogicalCatalogRelation table) {
357-
for (Map.Entry<String, Constraint> constraintMap : table.getTable().getConstraintsMap().entrySet()) {
358-
Constraint constraint = constraintMap.getValue();
359-
if (constraint instanceof UniqueConstraint) {
360-
return ((UniqueConstraint) constraint).getUniqueColumnNames();
362+
table.getTable().readLock();
363+
try {
364+
for (Map.Entry<String, Constraint> constraintMap : table.getTable().getConstraintsMap().entrySet()) {
365+
Constraint constraint = constraintMap.getValue();
366+
if (constraint instanceof UniqueConstraint) {
367+
return ((UniqueConstraint) constraint).getUniqueColumnNames();
368+
}
361369
}
370+
return null;
371+
} finally {
372+
table.getTable().readUnlock();
362373
}
363-
return null;
364374
}
365375

366376
private boolean checkJoinRoot(LogicalJoin joinRoot) {

0 commit comments

Comments
 (0)