blob: 3abe6f3f130d1f816c4bd1ec253e2b589a728a0f [file] [view]
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
# Comet Roadmap
Comet is an open-source project and contributors are welcome to work on any issues at any time, but we find it
helpful to have a roadmap for some of the major items that require coordination between contributors.
## Major Initiatives
### Iceberg Integration
Iceberg integration is still a work-in-progress ([#2060]), with major improvements expected in the next few
releases. The default `auto` scan mode now uses `native_iceberg_compat` instead of `native_comet`, enabling
support for complex types.
[#2060]: https://github.com/apache/datafusion-comet/issues/2060
### Spark 4.0 Support
Comet has experimental support for Spark 4.0, but there is more work to do ([#1637]), such as enabling
more Spark SQL tests and fully implementing ANSI support ([#313]) for all supported expressions.
[#313]: https://github.com/apache/datafusion-comet/issues/313
[#1637]: https://github.com/apache/datafusion-comet/issues/1637
### Removing the native_comet scan implementation
The `native_comet` scan implementation is now deprecated and will be removed in a future release ([#2186], [#2177]).
This is the original scan implementation that uses mutable buffers (which is incompatible with best practices around
Arrow FFI) and does not support complex types.
Now that the default `auto` scan mode uses `native_iceberg_compat` (which is based on DataFusion's `DataSourceExec`),
we can proceed with removing the `native_comet` scan implementation, and then improve the efficiency of our use of
Arrow FFI ([#2171]).
[#2186]: https://github.com/apache/datafusion-comet/issues/2186
[#2171]: https://github.com/apache/datafusion-comet/issues/2171
[#2177]: https://github.com/apache/datafusion-comet/issues/2177
## Ongoing Improvements
In addition to the major initiatives above, we have the following ongoing areas of work:
- Adding support for more Spark expressions
- Moving more expressions to the `datafusion-spark` crate in the core DataFusion repository
- Performance tuning
- Nested type support improvements