From a49f5e4ae27082fbc8bef92156d15f42d2c87e43 Mon Sep 17 00:00:00 2001 From: baofengqi Date: Wed, 8 Dec 2021 18:23:15 +0800 Subject: [PATCH] inner 1504 - fix or condition in on join filter --- .../mysql/nio/handler/builder/sqlvisitor/GlobalVisitor.java | 5 ++++- .../nio/handler/builder/sqlvisitor/PushDownVisitor.java | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/builder/sqlvisitor/GlobalVisitor.java b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/builder/sqlvisitor/GlobalVisitor.java index 5f05e83ed..1fbe12d68 100644 --- a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/builder/sqlvisitor/GlobalVisitor.java +++ b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/builder/sqlvisitor/GlobalVisitor.java @@ -224,9 +224,12 @@ public class GlobalVisitor extends MysqlVisitor { if (first) { sqlBuilder.append(" on "); } else { - joinOnFilterStr.append(" and "); + joinOnFilterStr.append(" and ("); } joinOnFilterStr.append(join.getOtherJoinOnFilter()); + if (!first) { + joinOnFilterStr.append(")"); + } } sqlBuilder.append(joinOnFilterStr.toString()); if (join.isWithSubQuery() || isTopQuery) { diff --git a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/builder/sqlvisitor/PushDownVisitor.java b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/builder/sqlvisitor/PushDownVisitor.java index 2fa092899..eb114c2eb 100644 --- a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/builder/sqlvisitor/PushDownVisitor.java +++ b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/builder/sqlvisitor/PushDownVisitor.java @@ -208,9 +208,12 @@ public class PushDownVisitor extends MysqlVisitor { if (first) { sqlBuilder.append(" on "); } else { - joinOnFilterStr.append(" and "); + joinOnFilterStr.append(" and ("); } joinOnFilterStr.append(join.getOtherJoinOnFilter()); + if (!first) { + joinOnFilterStr.append(")"); + } } return joinOnFilterStr; }