From 8377bc4bd873a8f34cb938508c911a26573f80b8 Mon Sep 17 00:00:00 2001 From: linfeng <33561138+lyne7-sc@users.noreply.github.com> Date: Fri, 26 Jun 2026 11:44:18 +0800 Subject: [PATCH 1/2] test: add test for renamed output columns in paimon scan v2 --- .../AuronPaimonV2IntegrationSuite.scala | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/thirdparty/auron-paimon/src/test/scala/org/apache/auron/paimon/AuronPaimonV2IntegrationSuite.scala b/thirdparty/auron-paimon/src/test/scala/org/apache/auron/paimon/AuronPaimonV2IntegrationSuite.scala index b0508382d..6aa2cd319 100644 --- a/thirdparty/auron-paimon/src/test/scala/org/apache/auron/paimon/AuronPaimonV2IntegrationSuite.scala +++ b/thirdparty/auron-paimon/src/test/scala/org/apache/auron/paimon/AuronPaimonV2IntegrationSuite.scala @@ -102,6 +102,25 @@ class AuronPaimonV2IntegrationSuite } } + test("paimon v2 native scan supports native filter on renamed output columns") { + withTable("paimon.db.t_rename_columns") { + sql("create table paimon.db.t_rename_columns (id int, v string) using paimon") + sql("insert into paimon.db.t_rename_columns values (1, 'a'), (2, 'b')") + + withSQLConf("spark.sql.adaptive.enabled" -> "false") { + val df = sql("select id from paimon.db.t_rename_columns where id = 1") + assertNativePaimonScanApplied(df) + + val plan = df.queryExecution.executedPlan + assert( + plan.exists(_.nodeName == "NativeFilter"), + s"expected a native filter consuming the Paimon scan:\n$plan") + + checkAnswer(df, Seq(Row(1))) + } + } + } + test("paimon v2 native scan supports COW primary-key table") { withTable("paimon.db.t_cow") { sql(""" From 55ce9419cb486a0dda1651b1399bbff3268f2cbb Mon Sep 17 00:00:00 2001 From: linfeng <33561138+lyne7-sc@users.noreply.github.com> Date: Fri, 26 Jun 2026 13:40:08 +0800 Subject: [PATCH 2/2] paimon v2 scan rename wrapper --- .../main/scala/org/apache/spark/sql/auron/AuronConverters.scala | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spark-extension/src/main/scala/org/apache/spark/sql/auron/AuronConverters.scala b/spark-extension/src/main/scala/org/apache/spark/sql/auron/AuronConverters.scala index 8072653ea..614919653 100644 --- a/spark-extension/src/main/scala/org/apache/spark/sql/auron/AuronConverters.scala +++ b/spark-extension/src/main/scala/org/apache/spark/sql/auron/AuronConverters.scala @@ -1220,6 +1220,8 @@ object AuronConverters extends Logging { true case exec if exec.nodeName == "NativeIcebergTableScan" => true + case exec if exec.nodeName == "NativePaimonV2TableScan" => + true case _: ConvertToNativeBase => needRenameColumns(plan.children.head) case exec if NativeHelper.isNative(exec) => NativeHelper.getUnderlyingNativePlan(exec).output != plan.output