From e1a0cc65eb8058bcd99352eca5cf6e5580aa33ca Mon Sep 17 00:00:00 2001 From: shekharrajak Date: Sat, 20 Dec 2025 20:44:26 +0530 Subject: [PATCH 1/2] chore: deprecate native_comet scan in favor of native_iceberg_compat --- .../main/scala/org/apache/comet/CometConf.scala | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/common/src/main/scala/org/apache/comet/CometConf.scala b/common/src/main/scala/org/apache/comet/CometConf.scala index cccad53c53..6ff0a3688a 100644 --- a/common/src/main/scala/org/apache/comet/CometConf.scala +++ b/common/src/main/scala/org/apache/comet/CometConf.scala @@ -111,6 +111,10 @@ object CometConf extends ShimCometConf { .booleanConf .createWithDefault(false) + // Deprecated: native_comet uses mutable buffers incompatible with Arrow FFI best practices + // and does not support complex types. Use native_iceberg_compat or auto instead. + // See: https://github.com/apache/datafusion-comet/issues/2186 + @deprecated("Use SCAN_NATIVE_ICEBERG_COMPAT or SCAN_AUTO instead", "0.9.0") val SCAN_NATIVE_COMET = "native_comet" val SCAN_NATIVE_DATAFUSION = "native_datafusion" val SCAN_NATIVE_ICEBERG_COMPAT = "native_iceberg_compat" @@ -121,11 +125,11 @@ object CometConf extends ShimCometConf { .doc( s"The implementation of Comet Native Scan to use. Available modes are `$SCAN_NATIVE_COMET`," + s"`$SCAN_NATIVE_DATAFUSION`, and `$SCAN_NATIVE_ICEBERG_COMPAT`. " + - s"`$SCAN_NATIVE_COMET` is for the original Comet native scan which uses a jvm based " + - "parquet file reader and native column decoding. Supports simple types only " + - s"`$SCAN_NATIVE_DATAFUSION` is a fully native implementation of scan based on DataFusion" + - s"`$SCAN_NATIVE_ICEBERG_COMPAT` is a native implementation that exposes apis to read " + - s"parquet columns natively. `$SCAN_AUTO` chooses the best scan.") + s"`$SCAN_NATIVE_COMET` (DEPRECATED) is for the original Comet native scan which uses a jvm based " + + "parquet file reader and native column decoding. Supports simple types only. " + + s"`$SCAN_NATIVE_DATAFUSION` is a fully native implementation of scan based on DataFusion. " + + s"`$SCAN_NATIVE_ICEBERG_COMPAT` is the recommended native implementation that exposes apis to read " + + s"parquet columns natively and supports complex types. `$SCAN_AUTO` (default) chooses the best scan.") .internal() .stringConf .transform(_.toLowerCase(Locale.ROOT)) From 4f9a5c607b3d164a2a67eedda549c2eee2da376e Mon Sep 17 00:00:00 2001 From: Shekhar Prasad Rajak <5774448+Shekharrajak@users.noreply.github.com> Date: Sun, 21 Dec 2025 08:25:56 +0530 Subject: [PATCH 2/2] Update common/src/main/scala/org/apache/comet/CometConf.scala Co-authored-by: Andy Grove --- common/src/main/scala/org/apache/comet/CometConf.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/src/main/scala/org/apache/comet/CometConf.scala b/common/src/main/scala/org/apache/comet/CometConf.scala index 6ff0a3688a..96e4168319 100644 --- a/common/src/main/scala/org/apache/comet/CometConf.scala +++ b/common/src/main/scala/org/apache/comet/CometConf.scala @@ -114,7 +114,7 @@ object CometConf extends ShimCometConf { // Deprecated: native_comet uses mutable buffers incompatible with Arrow FFI best practices // and does not support complex types. Use native_iceberg_compat or auto instead. // See: https://github.com/apache/datafusion-comet/issues/2186 - @deprecated("Use SCAN_NATIVE_ICEBERG_COMPAT or SCAN_AUTO instead", "0.9.0") + @deprecated("Use SCAN_AUTO instead", "0.9.0") val SCAN_NATIVE_COMET = "native_comet" val SCAN_NATIVE_DATAFUSION = "native_datafusion" val SCAN_NATIVE_ICEBERG_COMPAT = "native_iceberg_compat"