From acf232dd1e9d218a43812c133edb6007c4a460eb Mon Sep 17 00:00:00 2001 From: morrySnow Date: Thu, 15 Aug 2024 00:35:30 +0800 Subject: [PATCH] [fix](Nereids) npe when delete with cte and without using --- .../org/apache/doris/nereids/parser/LogicalPlanBuilder.java | 4 +++- regression-test/suites/nereids_p0/delete/delete_cte.groovy | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java index de23ba16e82e3a..40aec0f31e8c95 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java @@ -954,7 +954,9 @@ public LogicalPlan visitDelete(DeleteContext ctx) { partitionSpec.second, query); } else { // convert to insert into select - query = withRelations(query, ctx.relations().relation()); + if (ctx.USING() != null) { + query = withRelations(query, ctx.relations().relation()); + } query = withFilter(query, Optional.ofNullable(ctx.whereClause())); Optional cte = Optional.empty(); if (ctx.cte() != null) { diff --git a/regression-test/suites/nereids_p0/delete/delete_cte.groovy b/regression-test/suites/nereids_p0/delete/delete_cte.groovy index 080c760b51e5ad..711ba1dac4f752 100644 --- a/regression-test/suites/nereids_p0/delete/delete_cte.groovy +++ b/regression-test/suites/nereids_p0/delete/delete_cte.groovy @@ -113,6 +113,9 @@ suite('nereids_delete_cte') { """ qt_sql "select * from ${t1} order by id, id1" + + // test cte != null and using == null + sql """with cte as (select 1) delete from ${t1} where ${t1}.id = 100""" } } } \ No newline at end of file