Skip to content

refactor: improve transforms directory organization #17829

@BohuTANG

Description

@BohuTANG

Summary

transforms/
├── filters/                 # Filter transformations
│   ├── mod.rs               # New: Export module contents
│   ├── filter_predicate.rs  # Source: transform_filter.rs
│   └── filter_limit.rs      # Source: transform_limit.rs
│
├── blocks/                  # Block operations
│   ├── mod.rs               # New: Export module contents
│   └── block_merge.rs       # Source: transform_merge_block.rs
│
├── columns/                 # Column operations
│   ├── mod.rs               # New: Export module contents
│   ├── column_add_computed.rs  # Source: transform_add_computed_columns.rs
│   ├── column_add_const.rs     # Source: transform_add_const_columns.rs
│   ├── column_add_internal.rs  # Source: transform_add_internal_columns.rs
│   ├── column_add_stream.rs    # Source: transform_add_stream_columns.rs
│   ├── column_cast.rs          # Source: transform_cast_schema.rs
│   └── column_nullif.rs        # Source: transform_null_if.rs
│
├── aggregates/              # Aggregation operations
│   ├── mod.rs               # New: Export module contents
│   ├── agg_partial.rs       # Source: aggregator/transform_aggregate_partial.rs
│   ├── agg_final.rs         # Source: aggregator/transform_aggregate_final.rs
│   ├── agg_expand.rs        # Source: aggregator/transform_aggregate_expand.rs
│   ├── agg_single_key.rs    # Source: aggregator/transform_single_key.rs
│   ├── agg_meta.rs          # Source: aggregator/aggregate_meta.rs
│   ├── agg_params.rs        # Source: aggregator/aggregator_params.rs
│   ├── agg_injector.rs      # Source: aggregator/aggregate_exchange_injector.rs
│   ├── agg_bucket.rs        # Source: aggregator/new_transform_partition_bucket.rs
│   └── serde/               # Aggregation serialization
│       ├── mod.rs           # Source: aggregator/serde/mod.rs
│       ├── agg_serializer.rs    # Source: aggregator/serde/transform_aggregate_serializer.rs
│       ├── agg_deserializer.rs  # Source: aggregator/serde/transform_aggregate_deserializer.rs
│       ├── agg_spill_writer.rs  # Source: aggregator/serde/transform_aggregate_spill_writer.rs
│       └── agg_exchange.rs      # Source: aggregator/serde/transform_exchange_aggregate_serializer.rs
│
├── joins/                   # Join operations
│   ├── mod.rs               # New: Export module contents
│   ├── hash/                # Hash joins
│   │   ├── mod.rs           # Source: hash_join/mod.rs
│   │   ├── join_hash_build.rs   # Source: hash_join/transform_hash_join_build.rs
│   │   ├── join_hash_probe.rs   # Source: hash_join/transform_hash_join_probe.rs
│   │   ├── join_hash_state.rs   # Source: hash_join/hash_join_build_state.rs
│   │   ├── join_hash_desc.rs    # Source: hash_join/desc.rs
│   │   ├── join_hash_common.rs  # Source: hash_join/common.rs
│   │   ├── join_hash_util.rs    # Source: hash_join/util.rs
│   │   └── probe_join/      # Source: hash_join/probe_join/ (maintain existing structure)
│   └── range/               # Range joins
│       ├── mod.rs           # Source: range_join/mod.rs
│       ├── join_range_transform.rs  # Source: range_join/transform_range_join.rs
│       ├── join_range_state.rs      # Source: range_join/range_join_state.rs
│       ├── join_range_ie_state.rs   # Source: range_join/ie_join_state.rs
│       ├── join_range_filter.rs     # Source: range_join/filter_block.rs
│       └── join_range_match.rs      # Source: range_join/order_match.rs
│
├── sorts/                   # Sort operations
│   ├── mod.rs               # New: Export module contents
│   ├── merge/               # Merge sort
│   │   ├── mod.rs           # New: Export merge sort components
│   │   ├── sort_merge_transform.rs  # Source: transform_merge_sort.rs
│   │   ├── sort_merge_builder.rs    # Source: transform_merge_sort/builder.rs
│   │   └── sort_merge_spill.rs      # Source: transform_merge_sort/sort_spill.rs
│   └── resort/              # Resort operations
│       ├── mod.rs           # New: Export resort components
│       ├── sort_resort_addon.rs     # Source: transform_resort_addon.rs
│       └── sort_resort_noschema.rs  # Source: transform_resort_addon_without_source_schema.rs
│
├── scans/                   # Scan operations
│   ├── mod.rs               # New: Export module contents
│   ├── scan_cache.rs        # Source: transform_cache_scan.rs
│   ├── scan_expression.rs   # Source: transform_expression_scan.rs
│   ├── scan_cte.rs          # Source: transform_recursive_cte_scan.rs
│   └── scan_cte_source.rs   # Source: transform_recursive_cte_source.rs
│
├── functions/               # Function operations
│   ├── mod.rs               # New: Export module contents
│   ├── func_async.rs        # Source: transform_async_function.rs
│   ├── func_udf_script.rs   # Source: transform_udf_script.rs
│   ├── func_udf_server.rs   # Source: transform_udf_server.rs
│   └── func_table.rs        # Source: transform_srf.rs
│
├── dictionaries/            # Dictionary operations
│   ├── mod.rs               # New: Export module contents
│   └── dict_ops.rs          # Source: transform_dictionary.rs
│
├── sets/                    # Set operations
│   ├── mod.rs               # New: Export module contents
│   └── set_create.rs        # Source: transform_create_sets.rs
│
├── windows/                 # Window functions
│   ├── mod.rs               # Source: window/mod.rs
│   ├── window_transform.rs  # Source: window/transform_window.rs
│   ├── window_state.rs      # Source: window/window_state.rs
│   ├── window_frame.rs      # Source: window/window_frame.rs
│   ├── window_function.rs   # Source: window/window_function.rs
│   └── [other files]        # Source: Other files in window/ directory
│
├── runtimes/                # Runtime utilities
│   ├── mod.rs               # New: Export module contents
│   └── runtime_pool.rs      # Source: runtime_pool.rs
│
└── mod.rs                   # Update: Main module file, re-exports all public components

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions