Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[EPIC] Complex Type Support #1043

Open
2 of 24 tasks
andygrove opened this issue Oct 30, 2024 · 0 comments
Open
2 of 24 tasks

[EPIC] Complex Type Support #1043

andygrove opened this issue Oct 30, 2024 · 0 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@andygrove
Copy link
Member

andygrove commented Oct 30, 2024

What is the problem the feature request solves?

We would like Comet to fully support complex types (arrays, structs, and maps). This issue is for tracking all of the individual issues.

Google doc: https://docs.google.com/document/d/1eiDFEScPjxBMahJW6lmBI8JjVlI6CwhiJgkTSsTvPVY/edit?usp=sharing

Reading Complex Types from Parquet/Iceberg, Part 1

We now have new native_datafusion and native_iceberg_compat scans that use DataFusion's ParquetExec which already supports complex types. These new scans are not fully implemented yet and the first thing we need to do is fix all failing tests when these scans are made the default.

Goal is to complete this section for the 0.7.0 release before end of March.

  • Reduce code duplication betwen native_datafusion and native_iceberg_compat
  • Add Parquet reader metrics for both paths
  • Schema adapter handling of timestamps (including int96, timestamp_ntz)
  • Schema adapter handling of decimals (decimal128 config)
  • Fix all test failures with native_datafusion scan
  • Fix all test failures with native_iceberg_compat scan

Reading Complex Types from Parquet/Iceberg, Part 2

Aiming for 0.8.0 release.

  • Support reading complex types with native_datafusion scan
    • Array
    • Struct
    • Map
  • Support reading complex types with native_iceberg_compat scan
    • Array
    • Struct
    • Map

Reading Complex Types from Parquet/Iceberg, Part 3

These items may not be relevant to all users, but for some environments, there is more work required to allow the new ParquetExec scans to be used. Comet's current default native_comet scan is JVM-based and leverages Hadoop data source functionality that is not available in DataFusion.

Supporting expressions that operate on complex types

Performance

  • Create benchmarks for complex types

Testing

  • Fuzz testing

Older / related issues:

Describe the potential solution

No response

Additional context

No response

@andygrove andygrove added the enhancement New feature or request label Oct 30, 2024
@viirya viirya added the help wanted Extra attention is needed label Oct 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants