diff --git a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/query/impl/subquery/SingleRowSubQueryHandler.java b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/query/impl/subquery/SingleRowSubQueryHandler.java index 991995583..30418c02f 100644 --- a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/query/impl/subquery/SingleRowSubQueryHandler.java +++ b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/query/impl/subquery/SingleRowSubQueryHandler.java @@ -47,7 +47,7 @@ public class SingleRowSubQueryHandler extends SubQueryHandler { this.fieldPackets = fieldPackets; sourceField = HandlerTool.createField(this.fieldPackets.get(0)); if (itemSubQuery.isField()) { - setSubQueryFiled(); + setSubQueryField(); } } } finally { @@ -74,7 +74,7 @@ public class SingleRowSubQueryHandler extends SubQueryHandler { row.read(rowNull); } if (!itemSubQuery.isField()) { - setSubQueryFiled(); + setSubQueryField(); } sourceField.setPtr(row.getValue(0)); } finally { @@ -89,7 +89,7 @@ public class SingleRowSubQueryHandler extends SubQueryHandler { return HandlerType.SCALAR_SUB_QUERY; } - private void setSubQueryFiled() { + private void setSubQueryField() { Item select = itemSubQuery.getSelect(); PlanNode planNode = itemSubQuery.getPlanNode(); if (!(planNode instanceof ManagerTableNode) || ((ManagerTableNode) planNode).isNeedSendMaker()) { diff --git a/src/main/java/com/actiontech/dble/plan/util/PlanUtil.java b/src/main/java/com/actiontech/dble/plan/util/PlanUtil.java index 56ad1603c..9f2b9d2e4 100644 --- a/src/main/java/com/actiontech/dble/plan/util/PlanUtil.java +++ b/src/main/java/com/actiontech/dble/plan/util/PlanUtil.java @@ -110,6 +110,8 @@ public final class PlanUtil { public static boolean canPush(Item sel, PlanNode child, PlanNode parent) { if (sel == null) return false; + if (sel.isWithSubQuery()) + return false; if (sel.isWithSumFunc()) return false; HashSet referTables = sel.getReferTables();