@@ -111,6 +111,10 @@ object CometConf extends ShimCometConf {
111111 .booleanConf
112112 .createWithDefault(false )
113113
114+ // Deprecated: native_comet uses mutable buffers incompatible with Arrow FFI best practices
115+ // and does not support complex types. Use native_iceberg_compat or auto instead.
116+ // See: https://github.com/apache/datafusion-comet/issues/2186
117+ @ deprecated(" Use SCAN_AUTO instead" , " 0.9.0" )
114118 val SCAN_NATIVE_COMET = " native_comet"
115119 val SCAN_NATIVE_DATAFUSION = " native_datafusion"
116120 val SCAN_NATIVE_ICEBERG_COMPAT = " native_iceberg_compat"
@@ -121,11 +125,14 @@ object CometConf extends ShimCometConf {
121125 .doc(
122126 s " The implementation of Comet Native Scan to use. Available modes are ` $SCAN_NATIVE_COMET`, " +
123127 s " ` $SCAN_NATIVE_DATAFUSION`, and ` $SCAN_NATIVE_ICEBERG_COMPAT`. " +
124- s " ` $SCAN_NATIVE_COMET` is for the original Comet native scan which uses a jvm based " +
125- " parquet file reader and native column decoding. Supports simple types only " +
126- s " ` $SCAN_NATIVE_DATAFUSION` is a fully native implementation of scan based on DataFusion " +
127- s " ` $SCAN_NATIVE_ICEBERG_COMPAT` is a native implementation that exposes apis to read " +
128- s " parquet columns natively. ` $SCAN_AUTO` chooses the best scan. " )
128+ s " ` $SCAN_NATIVE_COMET` (DEPRECATED) is for the original Comet native scan which " +
129+ " uses a jvm based parquet file reader and native column decoding. " +
130+ " Supports simple types only. " +
131+ s " ` $SCAN_NATIVE_DATAFUSION` is a fully native implementation of scan based on " +
132+ " DataFusion. " +
133+ s " ` $SCAN_NATIVE_ICEBERG_COMPAT` is the recommended native implementation that " +
134+ " exposes apis to read parquet columns natively and supports complex types. " +
135+ s " ` $SCAN_AUTO` (default) chooses the best scan. " )
129136 .internal()
130137 .stringConf
131138 .transform(_.toLowerCase(Locale .ROOT ))
0 commit comments