diff --git a/Cargo.lock b/Cargo.lock index 5b0fa3e06f..7dbe1c3937 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1432,7 +1432,7 @@ dependencies = [ [[package]] name = "datafusion" version = "23.0.0" -source = "git+https://github.com/apache/arrow-datafusion.git?rev=2787e7a36a6be83d91201df20827d3695f933300#2787e7a36a6be83d91201df20827d3695f933300" +source = "git+https://github.com/apache/arrow-datafusion.git?rev=06e9f53637f20dd91bef43b74942ec36c38c22d5#06e9f53637f20dd91bef43b74942ec36c38c22d5" dependencies = [ "ahash 0.8.3", "arrow", @@ -1481,7 +1481,7 @@ dependencies = [ [[package]] name = "datafusion-common" version = "23.0.0" -source = "git+https://github.com/apache/arrow-datafusion.git?rev=2787e7a36a6be83d91201df20827d3695f933300#2787e7a36a6be83d91201df20827d3695f933300" +source = "git+https://github.com/apache/arrow-datafusion.git?rev=06e9f53637f20dd91bef43b74942ec36c38c22d5#06e9f53637f20dd91bef43b74942ec36c38c22d5" dependencies = [ "arrow", "arrow-array", @@ -1495,7 +1495,7 @@ dependencies = [ [[package]] name = "datafusion-execution" version = "23.0.0" -source = "git+https://github.com/apache/arrow-datafusion.git?rev=2787e7a36a6be83d91201df20827d3695f933300#2787e7a36a6be83d91201df20827d3695f933300" +source = "git+https://github.com/apache/arrow-datafusion.git?rev=06e9f53637f20dd91bef43b74942ec36c38c22d5#06e9f53637f20dd91bef43b74942ec36c38c22d5" dependencies = [ "dashmap", "datafusion-common", @@ -1512,7 +1512,7 @@ dependencies = [ [[package]] name = "datafusion-expr" version = "23.0.0" -source = "git+https://github.com/apache/arrow-datafusion.git?rev=2787e7a36a6be83d91201df20827d3695f933300#2787e7a36a6be83d91201df20827d3695f933300" +source = "git+https://github.com/apache/arrow-datafusion.git?rev=06e9f53637f20dd91bef43b74942ec36c38c22d5#06e9f53637f20dd91bef43b74942ec36c38c22d5" dependencies = [ "ahash 0.8.3", "arrow", @@ -1523,7 +1523,7 @@ dependencies = [ [[package]] name = "datafusion-optimizer" version = "23.0.0" -source = "git+https://github.com/apache/arrow-datafusion.git?rev=2787e7a36a6be83d91201df20827d3695f933300#2787e7a36a6be83d91201df20827d3695f933300" +source = "git+https://github.com/apache/arrow-datafusion.git?rev=06e9f53637f20dd91bef43b74942ec36c38c22d5#06e9f53637f20dd91bef43b74942ec36c38c22d5" dependencies = [ "arrow", "async-trait", @@ -1540,7 +1540,7 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" version = "23.0.0" -source = "git+https://github.com/apache/arrow-datafusion.git?rev=2787e7a36a6be83d91201df20827d3695f933300#2787e7a36a6be83d91201df20827d3695f933300" +source = "git+https://github.com/apache/arrow-datafusion.git?rev=06e9f53637f20dd91bef43b74942ec36c38c22d5#06e9f53637f20dd91bef43b74942ec36c38c22d5" dependencies = [ "ahash 0.8.3", "arrow", @@ -1572,7 +1572,7 @@ dependencies = [ [[package]] name = "datafusion-proto" version = "23.0.0" -source = "git+https://github.com/apache/arrow-datafusion.git?rev=2787e7a36a6be83d91201df20827d3695f933300#2787e7a36a6be83d91201df20827d3695f933300" +source = "git+https://github.com/apache/arrow-datafusion.git?rev=06e9f53637f20dd91bef43b74942ec36c38c22d5#06e9f53637f20dd91bef43b74942ec36c38c22d5" dependencies = [ "arrow", "chrono", @@ -1586,7 +1586,7 @@ dependencies = [ [[package]] name = "datafusion-row" version = "23.0.0" -source = "git+https://github.com/apache/arrow-datafusion.git?rev=2787e7a36a6be83d91201df20827d3695f933300#2787e7a36a6be83d91201df20827d3695f933300" +source = "git+https://github.com/apache/arrow-datafusion.git?rev=06e9f53637f20dd91bef43b74942ec36c38c22d5#06e9f53637f20dd91bef43b74942ec36c38c22d5" dependencies = [ "arrow", "datafusion-common", @@ -1597,7 +1597,7 @@ dependencies = [ [[package]] name = "datafusion-sql" version = "23.0.0" -source = "git+https://github.com/apache/arrow-datafusion.git?rev=2787e7a36a6be83d91201df20827d3695f933300#2787e7a36a6be83d91201df20827d3695f933300" +source = "git+https://github.com/apache/arrow-datafusion.git?rev=06e9f53637f20dd91bef43b74942ec36c38c22d5#06e9f53637f20dd91bef43b74942ec36c38c22d5" dependencies = [ "arrow", "arrow-schema", diff --git a/Cargo.toml b/Cargo.toml index ea50bde0f2..cb5bfe369d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -115,8 +115,8 @@ license = "MIT OR Apache-2.0" [workspace.dependencies] arrow = { version = "38.0.0" } arrow-flight = { version = "38.0.0" } -datafusion = { git = "https://github.com/apache/arrow-datafusion.git", rev="2787e7a36a6be83d91201df20827d3695f933300", default-features = false } -datafusion-proto = { git = "https://github.com/apache/arrow-datafusion.git", rev="2787e7a36a6be83d91201df20827d3695f933300" } +datafusion = { git = "https://github.com/apache/arrow-datafusion.git", rev="06e9f53637f20dd91bef43b74942ec36c38c22d5", default-features = false } +datafusion-proto = { git = "https://github.com/apache/arrow-datafusion.git", rev="06e9f53637f20dd91bef43b74942ec36c38c22d5" } hashbrown = { version = "0.13.2" } parquet = { version = "38.0.0" } tonic = { version = "0.9.2", features = ["tls", "tls-webpki-roots"] } diff --git a/influxdb_iox/tests/query_tests2/cases/in/date_bin.sql.expected b/influxdb_iox/tests/query_tests2/cases/in/date_bin.sql.expected index 04bf54f4cd..f4ed971ead 100644 --- a/influxdb_iox/tests/query_tests2/cases/in/date_bin.sql.expected +++ b/influxdb_iox/tests/query_tests2/cases/in/date_bin.sql.expected @@ -114,6 +114,6 @@ | | RepartitionExec: partitioning=RoundRobinBatch(4), input_partitions=1 | | | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: time@0 >= 957528000000000000 AND time@0 <= 957531540000000000 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=time@2 >= 957528000000000000 AND time@2 <= 957531540000000000, pruning_predicate=time_max@0 >= 957528000000000000 AND time_min@1 <= 957531540000000000, projection=[time, user] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[time, user], predicate=time@2 >= 957528000000000000 AND time@2 <= 957531540000000000, pruning_predicate=time_max@0 >= 957528000000000000 AND time_min@1 <= 957531540000000000 | | | | ---------- \ No newline at end of file diff --git a/influxdb_iox/tests/query_tests2/cases/in/dedup_and_predicates_parquet.sql.expected b/influxdb_iox/tests/query_tests2/cases/in/dedup_and_predicates_parquet.sql.expected index e9bd4a74ad..aec20cdbab 100644 --- a/influxdb_iox/tests/query_tests2/cases/in/dedup_and_predicates_parquet.sql.expected +++ b/influxdb_iox/tests/query_tests2/cases/in/dedup_and_predicates_parquet.sql.expected @@ -17,7 +17,7 @@ | | ProjectionExec: expr=[bar@1 as bar, foo@2 as foo, tag@3 as tag, time@4 as time] | | | DeduplicateExec: [tag@3 ASC,time@4 ASC] | | | SortPreservingMergeExec: [tag@3 ASC,time@4 ASC,__chunk_order@0 ASC] | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC], projection=[__chunk_order, bar, foo, tag, time] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, projection=[__chunk_order, bar, foo, tag, time], output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC] | | | | ---------- -- SQL: SELECT * FROM "table" WHERE tag='A'; @@ -37,7 +37,7 @@ | | SortPreservingMergeExec: [tag@3 ASC,time@4 ASC,__chunk_order@0 ASC] | | | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: tag@3 = A | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, predicate=tag@2 = A, pruning_predicate=tag_min@0 <= A AND A <= tag_max@1, output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC], projection=[__chunk_order, bar, foo, tag, time] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, projection=[__chunk_order, bar, foo, tag, time], output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC], predicate=tag@2 = A, pruning_predicate=tag_min@0 <= A AND A <= tag_max@1 | | | | ---------- -- SQL: SELECT * FROM "table" WHERE foo=1 AND bar=2; @@ -57,7 +57,7 @@ | | ProjectionExec: expr=[bar@1 as bar, foo@2 as foo, tag@3 as tag, time@4 as time] | | | DeduplicateExec: [tag@3 ASC,time@4 ASC] | | | SortPreservingMergeExec: [tag@3 ASC,time@4 ASC,__chunk_order@0 ASC] | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC], projection=[__chunk_order, bar, foo, tag, time] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, projection=[__chunk_order, bar, foo, tag, time], output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC] | | | | ---------- -- SQL: SELECT * FROM "table" WHERE time=to_timestamp('1970-01-01T00:00:00.000000000+00:00') ORDER BY tag; @@ -80,7 +80,7 @@ | | SortPreservingMergeExec: [tag@3 ASC,time@4 ASC,__chunk_order@0 ASC] | | | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: time@4 = 0 | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, predicate=time@3 = 0, pruning_predicate=time_min@0 <= 0 AND 0 <= time_max@1, output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC], projection=[__chunk_order, bar, foo, tag, time] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, projection=[__chunk_order, bar, foo, tag, time], output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC], predicate=time@3 = 0, pruning_predicate=time_min@0 <= 0 AND 0 <= time_max@1 | | | | ---------- -- SQL: SELECT * FROM "table" WHERE tag='A' AND foo=1 AND time=to_timestamp('1970-01-01T00:00:00.000000000+00:00'); @@ -102,6 +102,6 @@ | | SortPreservingMergeExec: [tag@3 ASC,time@4 ASC,__chunk_order@0 ASC] | | | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: tag@3 = A AND time@4 = 0 | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, predicate=tag@2 = A AND time@3 = 0, pruning_predicate=tag_min@0 <= A AND A <= tag_max@1 AND time_min@2 <= 0 AND 0 <= time_max@3, output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC], projection=[__chunk_order, bar, foo, tag, time] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, projection=[__chunk_order, bar, foo, tag, time], output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC], predicate=tag@2 = A AND time@3 = 0, pruning_predicate=tag_min@0 <= A AND A <= tag_max@1 AND time_min@2 <= 0 AND 0 <= time_max@3 | | | | ---------- \ No newline at end of file diff --git a/influxdb_iox/tests/query_tests2/cases/in/dedup_and_predicates_parquet_ingester.sql.expected b/influxdb_iox/tests/query_tests2/cases/in/dedup_and_predicates_parquet_ingester.sql.expected index 77a4f28d59..eb5b686900 100644 --- a/influxdb_iox/tests/query_tests2/cases/in/dedup_and_predicates_parquet_ingester.sql.expected +++ b/influxdb_iox/tests/query_tests2/cases/in/dedup_and_predicates_parquet_ingester.sql.expected @@ -20,7 +20,7 @@ | | UnionExec | | | SortExec: expr=[tag@3 ASC,time@4 ASC,__chunk_order@0 ASC] | | | RecordBatchesExec: batches_groups=1 batches=1 total_rows=2 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC], projection=[__chunk_order, bar, foo, tag, time] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[__chunk_order, bar, foo, tag, time], output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC] | | | | ---------- -- SQL: SELECT * FROM "table" WHERE tag='A'; @@ -46,7 +46,7 @@ | | RecordBatchesExec: batches_groups=1 batches=1 total_rows=2 | | | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: tag@3 = A | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=tag@2 = A, pruning_predicate=tag_min@0 <= A AND A <= tag_max@1, output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC], projection=[__chunk_order, bar, foo, tag, time] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[__chunk_order, bar, foo, tag, time], output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC], predicate=tag@2 = A, pruning_predicate=tag_min@0 <= A AND A <= tag_max@1 | | | | ---------- -- SQL: SELECT * FROM "table" WHERE foo=1 AND bar=2; @@ -69,7 +69,7 @@ | | UnionExec | | | SortExec: expr=[tag@3 ASC,time@4 ASC,__chunk_order@0 ASC] | | | RecordBatchesExec: batches_groups=1 batches=1 total_rows=2 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC], projection=[__chunk_order, bar, foo, tag, time] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[__chunk_order, bar, foo, tag, time], output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC] | | | | ---------- -- SQL: SELECT * FROM "table" WHERE time=to_timestamp('1970-01-01T00:00:00.000000000+00:00') ORDER BY tag; @@ -98,7 +98,7 @@ | | RecordBatchesExec: batches_groups=1 batches=1 total_rows=2 | | | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: time@4 = 0 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=time@3 = 0, pruning_predicate=time_min@0 <= 0 AND 0 <= time_max@1, output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC], projection=[__chunk_order, bar, foo, tag, time] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[__chunk_order, bar, foo, tag, time], output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC], predicate=time@3 = 0, pruning_predicate=time_min@0 <= 0 AND 0 <= time_max@1 | | | | ---------- -- SQL: SELECT * FROM "table" WHERE tag='A' AND foo=1 AND time=to_timestamp('1970-01-01T00:00:00.000000000+00:00'); @@ -126,6 +126,6 @@ | | RecordBatchesExec: batches_groups=1 batches=1 total_rows=2 | | | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: tag@3 = A AND time@4 = 0 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=tag@2 = A AND time@3 = 0, pruning_predicate=tag_min@0 <= A AND A <= tag_max@1 AND time_min@2 <= 0 AND 0 <= time_max@3, output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC], projection=[__chunk_order, bar, foo, tag, time] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[__chunk_order, bar, foo, tag, time], output_ordering=[tag@3 ASC, time@4 ASC, __chunk_order@0 ASC], predicate=tag@2 = A AND time@3 = 0, pruning_predicate=tag_min@0 <= A AND A <= tag_max@1 AND time_min@2 <= 0 AND 0 <= time_max@3 | | | | ---------- \ No newline at end of file diff --git a/influxdb_iox/tests/query_tests2/cases/in/duplicates_ingester.sql.expected b/influxdb_iox/tests/query_tests2/cases/in/duplicates_ingester.sql.expected index f7650395f9..dc9fd64026 100644 --- a/influxdb_iox/tests/query_tests2/cases/in/duplicates_ingester.sql.expected +++ b/influxdb_iox/tests/query_tests2/cases/in/duplicates_ingester.sql.expected @@ -34,12 +34,12 @@ | physical_plan | SortPreservingMergeExec: [time@0 ASC NULLS LAST,state@1 ASC NULLS LAST,city@2 ASC NULLS LAST] | | | UnionExec | | | SortExec: expr=[time@0 ASC NULLS LAST,state@1 ASC NULLS LAST,city@2 ASC NULLS LAST] | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, output_ordering=[state@1 ASC, city@2 ASC, time@0 ASC], projection=[time, state, city, min_temp, max_temp, area] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[time, state, city, min_temp, max_temp, area], output_ordering=[state@1 ASC, city@2 ASC, time@0 ASC] | | | SortExec: expr=[time@0 ASC NULLS LAST,state@1 ASC NULLS LAST,city@2 ASC NULLS LAST] | | | ProjectionExec: expr=[time@1 as time, state@2 as state, city@3 as city, min_temp@4 as min_temp, max_temp@5 as max_temp, area@6 as area] | | | DeduplicateExec: [state@2 ASC,city@3 ASC,time@1 ASC] | | | SortPreservingMergeExec: [state@2 ASC,city@3 ASC,time@1 ASC,__chunk_order@0 ASC] | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet], [1/1/1/00000000-0000-0000-0000-000000000002.parquet]]}, output_ordering=[state@2 ASC, city@3 ASC, time@1 ASC, __chunk_order@0 ASC], projection=[__chunk_order, time, state, city, min_temp, max_temp, area] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet], [1/1/1/00000000-0000-0000-0000-000000000002.parquet]]}, projection=[__chunk_order, time, state, city, min_temp, max_temp, area], output_ordering=[state@2 ASC, city@3 ASC, time@1 ASC, __chunk_order@0 ASC] | | | SortExec: expr=[time@0 ASC NULLS LAST,state@1 ASC NULLS LAST,city@2 ASC NULLS LAST] | | | ProjectionExec: expr=[time@1 as time, state@2 as state, city@3 as city, min_temp@4 as min_temp, max_temp@5 as max_temp, area@6 as area] | | | DeduplicateExec: [city@3 ASC,state@2 ASC,time@1 ASC] | @@ -55,11 +55,11 @@ | logical_plan | Projection: h2o.time, h2o.state, h2o.city, h2o.min_temp, h2o.max_temp, h2o.area | | | TableScan: h2o projection=[area, city, max_temp, min_temp, state, time] | | physical_plan | UnionExec | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, output_ordering=[state@1 ASC, city@2 ASC, time@0 ASC], projection=[time, state, city, min_temp, max_temp, area] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[time, state, city, min_temp, max_temp, area], output_ordering=[state@1 ASC, city@2 ASC, time@0 ASC] | | | ProjectionExec: expr=[time@1 as time, state@2 as state, city@3 as city, min_temp@4 as min_temp, max_temp@5 as max_temp, area@6 as area] | | | DeduplicateExec: [state@2 ASC,city@3 ASC,time@1 ASC] | | | SortPreservingMergeExec: [state@2 ASC,city@3 ASC,time@1 ASC,__chunk_order@0 ASC] | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet], [1/1/1/00000000-0000-0000-0000-000000000002.parquet]]}, output_ordering=[state@2 ASC, city@3 ASC, time@1 ASC, __chunk_order@0 ASC], projection=[__chunk_order, time, state, city, min_temp, max_temp, area] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet], [1/1/1/00000000-0000-0000-0000-000000000002.parquet]]}, projection=[__chunk_order, time, state, city, min_temp, max_temp, area], output_ordering=[state@2 ASC, city@3 ASC, time@1 ASC, __chunk_order@0 ASC] | | | ProjectionExec: expr=[time@1 as time, state@2 as state, city@3 as city, min_temp@4 as min_temp, max_temp@5 as max_temp, area@6 as area] | | | DeduplicateExec: [city@3 ASC,state@2 ASC,time@1 ASC] | | | SortExec: expr=[city@3 ASC,state@2 ASC,time@1 ASC,__chunk_order@0 ASC] | @@ -79,22 +79,22 @@ | physical_plan | UnionExec | | | ProjectionExec: expr=[state@0 as name] | | | UnionExec | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, output_ordering=[state@0 ASC], projection=[state] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[state], output_ordering=[state@0 ASC] | | | ProjectionExec: expr=[state@2 as state] | | | DeduplicateExec: [state@2 ASC,city@1 ASC,time@3 ASC] | | | SortPreservingMergeExec: [state@2 ASC,city@1 ASC,time@3 ASC,__chunk_order@0 ASC] | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet], [1/1/1/00000000-0000-0000-0000-000000000002.parquet]]}, output_ordering=[state@2 ASC, city@1 ASC, time@3 ASC, __chunk_order@0 ASC], projection=[__chunk_order, city, state, time] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet], [1/1/1/00000000-0000-0000-0000-000000000002.parquet]]}, projection=[__chunk_order, city, state, time], output_ordering=[state@2 ASC, city@1 ASC, time@3 ASC, __chunk_order@0 ASC] | | | ProjectionExec: expr=[state@2 as state] | | | DeduplicateExec: [city@1 ASC,state@2 ASC,time@3 ASC] | | | SortExec: expr=[city@1 ASC,state@2 ASC,time@3 ASC,__chunk_order@0 ASC] | | | RecordBatchesExec: batches_groups=1 batches=1 total_rows=6 | | | ProjectionExec: expr=[city@0 as name] | | | UnionExec | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[city] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[city] | | | ProjectionExec: expr=[city@1 as city] | | | DeduplicateExec: [state@2 ASC,city@1 ASC,time@3 ASC] | | | SortPreservingMergeExec: [state@2 ASC,city@1 ASC,time@3 ASC,__chunk_order@0 ASC] | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet], [1/1/1/00000000-0000-0000-0000-000000000002.parquet]]}, output_ordering=[state@2 ASC, city@1 ASC, time@3 ASC, __chunk_order@0 ASC], projection=[__chunk_order, city, state, time] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet], [1/1/1/00000000-0000-0000-0000-000000000002.parquet]]}, projection=[__chunk_order, city, state, time], output_ordering=[state@2 ASC, city@1 ASC, time@3 ASC, __chunk_order@0 ASC] | | | ProjectionExec: expr=[city@1 as city] | | | DeduplicateExec: [city@1 ASC,state@2 ASC,time@3 ASC] | | | SortExec: expr=[city@1 ASC,state@2 ASC,time@3 ASC,__chunk_order@0 ASC] | diff --git a/influxdb_iox/tests/query_tests2/cases/in/duplicates_parquet.sql.expected b/influxdb_iox/tests/query_tests2/cases/in/duplicates_parquet.sql.expected index 1c9dc7421e..b8293f2939 100644 --- a/influxdb_iox/tests/query_tests2/cases/in/duplicates_parquet.sql.expected +++ b/influxdb_iox/tests/query_tests2/cases/in/duplicates_parquet.sql.expected @@ -34,12 +34,12 @@ | physical_plan | SortPreservingMergeExec: [time@0 ASC NULLS LAST,state@1 ASC NULLS LAST,city@2 ASC NULLS LAST] | | | UnionExec | | | SortExec: expr=[time@0 ASC NULLS LAST,state@1 ASC NULLS LAST,city@2 ASC NULLS LAST] | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, output_ordering=[state@1 ASC, city@2 ASC, time@0 ASC], projection=[time, state, city, min_temp, max_temp, area] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, projection=[time, state, city, min_temp, max_temp, area], output_ordering=[state@1 ASC, city@2 ASC, time@0 ASC] | | | SortExec: expr=[time@0 ASC NULLS LAST,state@1 ASC NULLS LAST,city@2 ASC NULLS LAST] | | | ProjectionExec: expr=[time@1 as time, state@2 as state, city@3 as city, min_temp@4 as min_temp, max_temp@5 as max_temp, area@6 as area] | | | DeduplicateExec: [state@2 ASC,city@3 ASC,time@1 ASC] | | | SortPreservingMergeExec: [state@2 ASC,city@3 ASC,time@1 ASC,__chunk_order@0 ASC] | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000002.parquet], [1/1/1/00000000-0000-0000-0000-000000000003.parquet]]}, output_ordering=[state@2 ASC, city@3 ASC, time@1 ASC, __chunk_order@0 ASC], projection=[__chunk_order, time, state, city, min_temp, max_temp, area] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000002.parquet], [1/1/1/00000000-0000-0000-0000-000000000003.parquet]]}, projection=[__chunk_order, time, state, city, min_temp, max_temp, area], output_ordering=[state@2 ASC, city@3 ASC, time@1 ASC, __chunk_order@0 ASC] | | | | ---------- -- SQL: EXPLAIN select time, state, city, min_temp, max_temp, area from h2o; @@ -50,11 +50,11 @@ | logical_plan | Projection: h2o.time, h2o.state, h2o.city, h2o.min_temp, h2o.max_temp, h2o.area | | | TableScan: h2o projection=[area, city, max_temp, min_temp, state, time] | | physical_plan | UnionExec | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, output_ordering=[state@1 ASC, city@2 ASC, time@0 ASC], projection=[time, state, city, min_temp, max_temp, area] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, projection=[time, state, city, min_temp, max_temp, area], output_ordering=[state@1 ASC, city@2 ASC, time@0 ASC] | | | ProjectionExec: expr=[time@1 as time, state@2 as state, city@3 as city, min_temp@4 as min_temp, max_temp@5 as max_temp, area@6 as area] | | | DeduplicateExec: [state@2 ASC,city@3 ASC,time@1 ASC] | | | SortPreservingMergeExec: [state@2 ASC,city@3 ASC,time@1 ASC,__chunk_order@0 ASC] | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000002.parquet], [1/1/1/00000000-0000-0000-0000-000000000003.parquet]]}, output_ordering=[state@2 ASC, city@3 ASC, time@1 ASC, __chunk_order@0 ASC], projection=[__chunk_order, time, state, city, min_temp, max_temp, area] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000002.parquet], [1/1/1/00000000-0000-0000-0000-000000000003.parquet]]}, projection=[__chunk_order, time, state, city, min_temp, max_temp, area], output_ordering=[state@2 ASC, city@3 ASC, time@1 ASC, __chunk_order@0 ASC] | | | | ---------- -- SQL: EXPLAIN select state as name from h2o UNION ALL select city as name from h2o; @@ -70,18 +70,18 @@ | physical_plan | UnionExec | | | ProjectionExec: expr=[state@0 as name] | | | UnionExec | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, output_ordering=[state@0 ASC], projection=[state] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, projection=[state], output_ordering=[state@0 ASC] | | | ProjectionExec: expr=[state@2 as state] | | | DeduplicateExec: [state@2 ASC,city@1 ASC,time@3 ASC] | | | SortPreservingMergeExec: [state@2 ASC,city@1 ASC,time@3 ASC,__chunk_order@0 ASC] | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000002.parquet], [1/1/1/00000000-0000-0000-0000-000000000003.parquet]]}, output_ordering=[state@2 ASC, city@1 ASC, time@3 ASC, __chunk_order@0 ASC], projection=[__chunk_order, city, state, time] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000002.parquet], [1/1/1/00000000-0000-0000-0000-000000000003.parquet]]}, projection=[__chunk_order, city, state, time], output_ordering=[state@2 ASC, city@1 ASC, time@3 ASC, __chunk_order@0 ASC] | | | ProjectionExec: expr=[city@0 as name] | | | UnionExec | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, projection=[city] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, projection=[city] | | | ProjectionExec: expr=[city@1 as city] | | | DeduplicateExec: [state@2 ASC,city@1 ASC,time@3 ASC] | | | SortPreservingMergeExec: [state@2 ASC,city@1 ASC,time@3 ASC,__chunk_order@0 ASC] | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000002.parquet], [1/1/1/00000000-0000-0000-0000-000000000003.parquet]]}, output_ordering=[state@2 ASC, city@1 ASC, time@3 ASC, __chunk_order@0 ASC], projection=[__chunk_order, city, state, time] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000002.parquet], [1/1/1/00000000-0000-0000-0000-000000000003.parquet]]}, projection=[__chunk_order, city, state, time], output_ordering=[state@2 ASC, city@1 ASC, time@3 ASC, __chunk_order@0 ASC] | | | | ---------- -- SQL: select count(*) from h2o; @@ -100,12 +100,12 @@ | | UnionExec, metrics=[elapsed_compute=1.234ms, mem_used=0, output_rows=10, spill_count=0, spilled_bytes=0] | | | CoalesceBatchesExec: target_batch_size=8192, metrics=[elapsed_compute=1.234ms, mem_used=0, output_rows=5, spill_count=0, spilled_bytes=0] | | | FilterExec: state@4 = MA, metrics=[elapsed_compute=1.234ms, mem_used=0, output_rows=5, spill_count=0, spilled_bytes=0] | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, predicate=state@4 = MA, pruning_predicate=state_min@0 <= MA AND MA <= state_max@1, output_ordering=[state@4 ASC, city@1 ASC, time@5 ASC], projection=[area, city, max_temp, min_temp, state, time], metrics=[bytes_scanned=1219, elapsed_compute=1.234ms, mem_used=0, num_predicate_creation_errors=0, output_rows=5, page_index_eval_time=1.234ms, page_index_rows_filtered=0, predicate_evaluation_errors=0, pushdown_eval_time=1.234ms, pushdown_rows_filtered=5, row_groups_pruned=0, spill_count=0, spilled_bytes=0, time_elapsed_opening=1.234ms, time_elapsed_processing=1.234ms, time_elapsed_scanning_total=1.234ms, time_elapsed_scanning_until_data=1.234ms] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, projection=[area, city, max_temp, min_temp, state, time], output_ordering=[state@4 ASC, city@1 ASC, time@5 ASC], predicate=state@4 = MA, pruning_predicate=state_min@0 <= MA AND MA <= state_max@1, metrics=[bytes_scanned=1219, elapsed_compute=1.234ms, mem_used=0, num_predicate_creation_errors=0, output_rows=5, page_index_eval_time=1.234ms, page_index_rows_filtered=0, predicate_evaluation_errors=0, pushdown_eval_time=1.234ms, pushdown_rows_filtered=5, row_groups_pruned=0, spill_count=0, spilled_bytes=0, time_elapsed_opening=1.234ms, time_elapsed_processing=1.234ms, time_elapsed_scanning_total=1.234ms, time_elapsed_scanning_until_data=1.234ms] | | | ProjectionExec: expr=[area@1 as area, city@2 as city, max_temp@3 as max_temp, min_temp@4 as min_temp, state@5 as state, time@6 as time], metrics=[elapsed_compute=1.234ms, mem_used=0, output_rows=5, spill_count=0, spilled_bytes=0] | | | DeduplicateExec: [state@5 ASC,city@2 ASC,time@6 ASC], metrics=[elapsed_compute=1.234ms, mem_used=0, num_dupes=2, output_rows=5, spill_count=0, spilled_bytes=0] | | | SortPreservingMergeExec: [state@5 ASC,city@2 ASC,time@6 ASC,__chunk_order@0 ASC], metrics=[elapsed_compute=1.234ms, mem_used=0, output_rows=7, spill_count=0, spilled_bytes=0] | | | CoalesceBatchesExec: target_batch_size=8192, metrics=[elapsed_compute=1.234ms, mem_used=0, output_rows=7, spill_count=0, spilled_bytes=0] | | | FilterExec: state@5 = MA, metrics=[elapsed_compute=1.234ms, mem_used=0, output_rows=7, spill_count=0, spilled_bytes=0] | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000002.parquet], [1/1/1/00000000-0000-0000-0000-000000000003.parquet]]}, predicate=state@4 = MA, pruning_predicate=state_min@0 <= MA AND MA <= state_max@1, output_ordering=[state@5 ASC, city@2 ASC, time@6 ASC, __chunk_order@0 ASC], projection=[__chunk_order, area, city, max_temp, min_temp, state, time], metrics=[bytes_scanned=1106, elapsed_compute=1.234ms, mem_used=0, num_predicate_creation_errors=0, output_rows=7, page_index_eval_time=1.234ms, page_index_rows_filtered=0, predicate_evaluation_errors=0, pushdown_eval_time=1.234ms, pushdown_rows_filtered=3, row_groups_pruned=0, spill_count=0, spilled_bytes=0, time_elapsed_opening=1.234ms, time_elapsed_processing=1.234ms, time_elapsed_scanning_total=1.234ms, time_elapsed_scanning_until_data=1.234ms] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000002.parquet], [1/1/1/00000000-0000-0000-0000-000000000003.parquet]]}, projection=[__chunk_order, area, city, max_temp, min_temp, state, time], output_ordering=[state@5 ASC, city@2 ASC, time@6 ASC, __chunk_order@0 ASC], predicate=state@4 = MA, pruning_predicate=state_min@0 <= MA AND MA <= state_max@1, metrics=[bytes_scanned=1106, elapsed_compute=1.234ms, mem_used=0, num_predicate_creation_errors=0, output_rows=7, page_index_eval_time=1.234ms, page_index_rows_filtered=0, predicate_evaluation_errors=0, pushdown_eval_time=1.234ms, pushdown_rows_filtered=3, row_groups_pruned=0, spill_count=0, spilled_bytes=0, time_elapsed_opening=1.234ms, time_elapsed_processing=1.234ms, time_elapsed_scanning_total=1.234ms, time_elapsed_scanning_until_data=1.234ms] | | | | ---------- \ No newline at end of file diff --git a/influxdb_iox/tests/query_tests2/cases/in/duplicates_parquet_50_files.sql.expected b/influxdb_iox/tests/query_tests2/cases/in/duplicates_parquet_50_files.sql.expected index 0e397532e6..87317eeddb 100644 --- a/influxdb_iox/tests/query_tests2/cases/in/duplicates_parquet_50_files.sql.expected +++ b/influxdb_iox/tests/query_tests2/cases/in/duplicates_parquet_50_files.sql.expected @@ -20,6 +20,6 @@ | | DeduplicateExec: [tag1@2 ASC,tag2@3 ASC,tag3@4 ASC,tag4@5 ASC,time@6 ASC] | | | SortPreservingMergeExec: [tag1@2 ASC,tag2@3 ASC,tag3@4 ASC,tag4@5 ASC,time@6 ASC,__chunk_order@0 ASC] | | | SortExec: expr=[tag1@2 ASC,tag2@3 ASC,tag3@4 ASC,tag4@5 ASC,time@6 ASC,__chunk_order@0 ASC] | -| | ParquetExec: limit=None, partitions={4 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet, 1/1/1/00000000-0000-0000-0000-000000000001.parquet, 1/1/1/00000000-0000-0000-0000-000000000002.parquet, 1/1/1/00000000-0000-0000-0000-000000000003.parquet, 1/1/1/00000000-0000-0000-0000-000000000004.parquet, 1/1/1/00000000-0000-0000-0000-000000000005.parquet, 1/1/1/00000000-0000-0000-0000-000000000006.parquet, 1/1/1/00000000-0000-0000-0000-000000000007.parquet, 1/1/1/00000000-0000-0000-0000-000000000008.parquet, 1/1/1/00000000-0000-0000-0000-000000000009.parquet, 1/1/1/00000000-0000-0000-0000-00000000000a.parquet, 1/1/1/00000000-0000-0000-0000-00000000000b.parquet, 1/1/1/00000000-0000-0000-0000-00000000000c.parquet], [1/1/1/00000000-0000-0000-0000-00000000000d.parquet, 1/1/1/00000000-0000-0000-0000-00000000000e.parquet, 1/1/1/00000000-0000-0000-0000-00000000000f.parquet, 1/1/1/00000000-0000-0000-0000-000000000010.parquet, 1/1/1/00000000-0000-0000-0000-000000000011.parquet, 1/1/1/00000000-0000-0000-0000-000000000012.parquet, 1/1/1/00000000-0000-0000-0000-000000000013.parquet, 1/1/1/00000000-0000-0000-0000-000000000014.parquet, 1/1/1/00000000-0000-0000-0000-000000000015.parquet, 1/1/1/00000000-0000-0000-0000-000000000016.parquet, 1/1/1/00000000-0000-0000-0000-000000000017.parquet, 1/1/1/00000000-0000-0000-0000-000000000018.parquet, 1/1/1/00000000-0000-0000-0000-000000000019.parquet], [1/1/1/00000000-0000-0000-0000-00000000001a.parquet, 1/1/1/00000000-0000-0000-0000-00000000001b.parquet, 1/1/1/00000000-0000-0000-0000-00000000001c.parquet, 1/1/1/00000000-0000-0000-0000-00000000001d.parquet, 1/1/1/00000000-0000-0000-0000-00000000001e.parquet, 1/1/1/00000000-0000-0000-0000-00000000001f.parquet, 1/1/1/00000000-0000-0000-0000-000000000020.parquet, 1/1/1/00000000-0000-0000-0000-000000000021.parquet, 1/1/1/00000000-0000-0000-0000-000000000022.parquet, 1/1/1/00000000-0000-0000-0000-000000000023.parquet, 1/1/1/00000000-0000-0000-0000-000000000024.parquet, 1/1/1/00000000-0000-0000-0000-000000000025.parquet], [1/1/1/00000000-0000-0000-0000-000000000026.parquet, 1/1/1/00000000-0000-0000-0000-000000000027.parquet, 1/1/1/00000000-0000-0000-0000-000000000028.parquet, 1/1/1/00000000-0000-0000-0000-000000000029.parquet, 1/1/1/00000000-0000-0000-0000-00000000002a.parquet, 1/1/1/00000000-0000-0000-0000-00000000002b.parquet, 1/1/1/00000000-0000-0000-0000-00000000002c.parquet, 1/1/1/00000000-0000-0000-0000-00000000002d.parquet, 1/1/1/00000000-0000-0000-0000-00000000002e.parquet, 1/1/1/00000000-0000-0000-0000-00000000002f.parquet, 1/1/1/00000000-0000-0000-0000-000000000030.parquet, 1/1/1/00000000-0000-0000-0000-000000000031.parquet]]}, projection=[__chunk_order, f1, tag1, tag2, tag3, tag4, time] | +| | ParquetExec: file_groups={4 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet, 1/1/1/00000000-0000-0000-0000-000000000001.parquet, 1/1/1/00000000-0000-0000-0000-000000000002.parquet, 1/1/1/00000000-0000-0000-0000-000000000003.parquet, 1/1/1/00000000-0000-0000-0000-000000000004.parquet, 1/1/1/00000000-0000-0000-0000-000000000005.parquet, 1/1/1/00000000-0000-0000-0000-000000000006.parquet, 1/1/1/00000000-0000-0000-0000-000000000007.parquet, 1/1/1/00000000-0000-0000-0000-000000000008.parquet, 1/1/1/00000000-0000-0000-0000-000000000009.parquet, 1/1/1/00000000-0000-0000-0000-00000000000a.parquet, 1/1/1/00000000-0000-0000-0000-00000000000b.parquet, 1/1/1/00000000-0000-0000-0000-00000000000c.parquet], [1/1/1/00000000-0000-0000-0000-00000000000d.parquet, 1/1/1/00000000-0000-0000-0000-00000000000e.parquet, 1/1/1/00000000-0000-0000-0000-00000000000f.parquet, 1/1/1/00000000-0000-0000-0000-000000000010.parquet, 1/1/1/00000000-0000-0000-0000-000000000011.parquet, 1/1/1/00000000-0000-0000-0000-000000000012.parquet, 1/1/1/00000000-0000-0000-0000-000000000013.parquet, 1/1/1/00000000-0000-0000-0000-000000000014.parquet, 1/1/1/00000000-0000-0000-0000-000000000015.parquet, 1/1/1/00000000-0000-0000-0000-000000000016.parquet, 1/1/1/00000000-0000-0000-0000-000000000017.parquet, 1/1/1/00000000-0000-0000-0000-000000000018.parquet, 1/1/1/00000000-0000-0000-0000-000000000019.parquet], [1/1/1/00000000-0000-0000-0000-00000000001a.parquet, 1/1/1/00000000-0000-0000-0000-00000000001b.parquet, 1/1/1/00000000-0000-0000-0000-00000000001c.parquet, 1/1/1/00000000-0000-0000-0000-00000000001d.parquet, 1/1/1/00000000-0000-0000-0000-00000000001e.parquet, 1/1/1/00000000-0000-0000-0000-00000000001f.parquet, 1/1/1/00000000-0000-0000-0000-000000000020.parquet, 1/1/1/00000000-0000-0000-0000-000000000021.parquet, 1/1/1/00000000-0000-0000-0000-000000000022.parquet, 1/1/1/00000000-0000-0000-0000-000000000023.parquet, 1/1/1/00000000-0000-0000-0000-000000000024.parquet, 1/1/1/00000000-0000-0000-0000-000000000025.parquet], [1/1/1/00000000-0000-0000-0000-000000000026.parquet, 1/1/1/00000000-0000-0000-0000-000000000027.parquet, 1/1/1/00000000-0000-0000-0000-000000000028.parquet, 1/1/1/00000000-0000-0000-0000-000000000029.parquet, 1/1/1/00000000-0000-0000-0000-00000000002a.parquet, 1/1/1/00000000-0000-0000-0000-00000000002b.parquet, 1/1/1/00000000-0000-0000-0000-00000000002c.parquet, 1/1/1/00000000-0000-0000-0000-00000000002d.parquet, 1/1/1/00000000-0000-0000-0000-00000000002e.parquet, 1/1/1/00000000-0000-0000-0000-00000000002f.parquet, 1/1/1/00000000-0000-0000-0000-000000000030.parquet, 1/1/1/00000000-0000-0000-0000-000000000031.parquet]]}, projection=[__chunk_order, f1, tag1, tag2, tag3, tag4, time] | | | | ---------- \ No newline at end of file diff --git a/influxdb_iox/tests/query_tests2/cases/in/duplicates_parquet_many.sql.expected b/influxdb_iox/tests/query_tests2/cases/in/duplicates_parquet_many.sql.expected index 76fd2547a5..d4c59b4416 100644 --- a/influxdb_iox/tests/query_tests2/cases/in/duplicates_parquet_many.sql.expected +++ b/influxdb_iox/tests/query_tests2/cases/in/duplicates_parquet_many.sql.expected @@ -16,10 +16,10 @@ | | CoalescePartitionsExec | | | AggregateExec: mode=Partial, gby=[], aggr=[COUNT(UInt8(1)), SUM(m.f)] | | | UnionExec | -| | ParquetExec: limit=None, partitions={4 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet, 1/1/1/00000000-0000-0000-0000-000000000001.parquet, 1/1/1/00000000-0000-0000-0000-000000000002.parquet], [1/1/1/00000000-0000-0000-0000-000000000003.parquet, 1/1/1/00000000-0000-0000-0000-000000000004.parquet, 1/1/1/00000000-0000-0000-0000-000000000005.parquet], [1/1/1/00000000-0000-0000-0000-000000000006.parquet, 1/1/1/00000000-0000-0000-0000-000000000007.parquet], [1/1/1/00000000-0000-0000-0000-000000000008.parquet, 1/1/1/00000000-0000-0000-0000-000000000009.parquet]]}, projection=[f] | +| | ParquetExec: file_groups={4 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet, 1/1/1/00000000-0000-0000-0000-000000000001.parquet, 1/1/1/00000000-0000-0000-0000-000000000002.parquet], [1/1/1/00000000-0000-0000-0000-000000000003.parquet, 1/1/1/00000000-0000-0000-0000-000000000004.parquet, 1/1/1/00000000-0000-0000-0000-000000000005.parquet], [1/1/1/00000000-0000-0000-0000-000000000006.parquet, 1/1/1/00000000-0000-0000-0000-000000000007.parquet], [1/1/1/00000000-0000-0000-0000-000000000008.parquet, 1/1/1/00000000-0000-0000-0000-000000000009.parquet]]}, projection=[f] | | | ProjectionExec: expr=[f@1 as f] | | | DeduplicateExec: [tag@2 ASC,time@3 ASC] | | | SortPreservingMergeExec: [tag@2 ASC,time@3 ASC,__chunk_order@0 ASC] | -| | ParquetExec: limit=None, partitions={10 groups: [[1/1/1/00000000-0000-0000-0000-00000000000a.parquet], [1/1/1/00000000-0000-0000-0000-00000000000b.parquet], [1/1/1/00000000-0000-0000-0000-00000000000c.parquet], [1/1/1/00000000-0000-0000-0000-00000000000d.parquet], [1/1/1/00000000-0000-0000-0000-00000000000e.parquet], [1/1/1/00000000-0000-0000-0000-00000000000f.parquet], [1/1/1/00000000-0000-0000-0000-000000000010.parquet], [1/1/1/00000000-0000-0000-0000-000000000011.parquet], [1/1/1/00000000-0000-0000-0000-000000000012.parquet], [1/1/1/00000000-0000-0000-0000-000000000013.parquet]]}, output_ordering=[tag@2 ASC, time@3 ASC, __chunk_order@0 ASC], projection=[__chunk_order, f, tag, time] | +| | ParquetExec: file_groups={10 groups: [[1/1/1/00000000-0000-0000-0000-00000000000a.parquet], [1/1/1/00000000-0000-0000-0000-00000000000b.parquet], [1/1/1/00000000-0000-0000-0000-00000000000c.parquet], [1/1/1/00000000-0000-0000-0000-00000000000d.parquet], [1/1/1/00000000-0000-0000-0000-00000000000e.parquet], [1/1/1/00000000-0000-0000-0000-00000000000f.parquet], [1/1/1/00000000-0000-0000-0000-000000000010.parquet], [1/1/1/00000000-0000-0000-0000-000000000011.parquet], [1/1/1/00000000-0000-0000-0000-000000000012.parquet], [1/1/1/00000000-0000-0000-0000-000000000013.parquet]]}, projection=[__chunk_order, f, tag, time], output_ordering=[tag@2 ASC, time@3 ASC, __chunk_order@0 ASC] | | | | ---------- \ No newline at end of file diff --git a/influxdb_iox/tests/query_tests2/cases/in/gapfill.sql.expected b/influxdb_iox/tests/query_tests2/cases/in/gapfill.sql.expected index c2e80ba884..3b33e02a8d 100644 --- a/influxdb_iox/tests/query_tests2/cases/in/gapfill.sql.expected +++ b/influxdb_iox/tests/query_tests2/cases/in/gapfill.sql.expected @@ -37,7 +37,7 @@ | | RepartitionExec: partitioning=RoundRobinBatch(4), input_partitions=1 | | | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: time@0 >= 957528000000000000 AND time@0 <= 957531540000000000 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=time@2 >= 957528000000000000 AND time@2 <= 957531540000000000, pruning_predicate=time_max@0 >= 957528000000000000 AND time_min@1 <= 957531540000000000, projection=[time, user] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[time, user], predicate=time@2 >= 957528000000000000 AND time@2 <= 957531540000000000, pruning_predicate=time_max@0 >= 957528000000000000 AND time_min@1 <= 957531540000000000 | | | | ---------- -- SQL: SELECT date_bin_gapfill(interval '10 minute', time) as minute, count(cpu.user) from cpu where time between timestamp '2000-05-05T12:00:00Z' and timestamp '2000-05-05T12:59:00Z' group by minute; @@ -130,7 +130,7 @@ Error during planning: gap-filling query is missing lower time bound | | RepartitionExec: partitioning=RoundRobinBatch(4), input_partitions=1 | | | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: time@1 >= 957528000000000000 AND time@1 <= 957531540000000000 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=time@2 >= 957528000000000000 AND time@2 <= 957531540000000000, pruning_predicate=time_max@0 >= 957528000000000000 AND time_min@1 <= 957531540000000000, output_ordering=[region@0 ASC, time@1 ASC], projection=[region, time, user] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[region, time, user], output_ordering=[region@0 ASC, time@1 ASC], predicate=time@2 >= 957528000000000000 AND time@2 <= 957531540000000000, pruning_predicate=time_max@0 >= 957528000000000000 AND time_min@1 <= 957531540000000000 | | | | ---------- -- SQL: SELECT region, date_bin_gapfill(interval '5 minute', time) as minute, locf(min(cpu.user)) from cpu where time between timestamp '2000-05-05T12:15:00Z' and timestamp '2000-05-05T12:59:00Z' group by region, minute; diff --git a/influxdb_iox/tests/query_tests2/cases/in/issue_6112.influxql.expected b/influxdb_iox/tests/query_tests2/cases/in/issue_6112.influxql.expected index b8310946e3..5764200f57 100644 --- a/influxdb_iox/tests/query_tests2/cases/in/issue_6112.influxql.expected +++ b/influxdb_iox/tests/query_tests2/cases/in/issue_6112.influxql.expected @@ -927,14 +927,14 @@ name: physical_plan RepartitionExec: partitioning=Hash([Column { name: "tag0", index: 0 }], 4), input_partitions=4 RepartitionExec: partitioning=RoundRobinBatch(4), input_partitions=1 AggregateExec: mode=Partial, gby=[tag0@1 as tag0], aggr=[COUNT(m0.f64), SUM(m0.f64), STDDEV(m0.f64)] - ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[f64, tag0] + ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[f64, tag0] ProjectionExec: expr=[m1 as iox::measurement, 0 as time, tag0@0 as tag0, COUNT(m1.f64)@1 as count, SUM(m1.f64)@2 as sum, STDDEV(m1.f64)@3 as stddev] AggregateExec: mode=FinalPartitioned, gby=[tag0@0 as tag0], aggr=[COUNT(m1.f64), SUM(m1.f64), STDDEV(m1.f64)] CoalesceBatchesExec: target_batch_size=8192 RepartitionExec: partitioning=Hash([Column { name: "tag0", index: 0 }], 4), input_partitions=4 RepartitionExec: partitioning=RoundRobinBatch(4), input_partitions=1 AggregateExec: mode=Partial, gby=[tag0@1 as tag0], aggr=[COUNT(m1.f64), SUM(m1.f64), STDDEV(m1.f64)], ordering_mode=FullyOrdered - ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, output_ordering=[tag0@1 ASC], projection=[f64, tag0] + ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, projection=[f64, tag0], output_ordering=[tag0@1 ASC] -- InfluxQL: SELECT COUNT(f64), SUM(f64), stddev(f64) FROM m0, m1 GROUP BY tag0; name: m0 tags: tag0=val00 diff --git a/influxdb_iox/tests/query_tests2/cases/in/pushdown.sql.expected b/influxdb_iox/tests/query_tests2/cases/in/pushdown.sql.expected index 50282e8bd0..258af2512c 100644 --- a/influxdb_iox/tests/query_tests2/cases/in/pushdown.sql.expected +++ b/influxdb_iox/tests/query_tests2/cases/in/pushdown.sql.expected @@ -18,7 +18,7 @@ | plan_type | plan | ---------- | logical_plan | TableScan: restaurant projection=[count, system, time, town] | -| physical_plan | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, output_ordering=[town@3 ASC, time@2 ASC], projection=[count, system, time, town] | +| physical_plan | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[count, system, time, town], output_ordering=[town@3 ASC, time@2 ASC] | | | | ---------- -- SQL: SELECT * from restaurant where count > 200; @@ -41,7 +41,7 @@ | logical_plan | TableScan: restaurant projection=[count, system, time, town], full_filters=[restaurant.count > UInt64(200)] | | physical_plan | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: count@0 > 200 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=count@0 > 200, pruning_predicate=count_max@0 > 200, output_ordering=[town@3 ASC, time@2 ASC], projection=[count, system, time, town] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[count, system, time, town], output_ordering=[town@3 ASC, time@2 ASC], predicate=count@0 > 200, pruning_predicate=count_max@0 > 200 | | | | ---------- -- SQL: EXPLAIN SELECT * from restaurant where count > 200.0; @@ -52,7 +52,7 @@ | logical_plan | TableScan: restaurant projection=[count, system, time, town], full_filters=[CAST(restaurant.count AS Float64) > Float64(200)] | | physical_plan | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: CAST(count@0 AS Float64) > 200 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=CAST(count@0 AS Float64) > 200, output_ordering=[town@3 ASC, time@2 ASC], projection=[count, system, time, town] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[count, system, time, town], output_ordering=[town@3 ASC, time@2 ASC], predicate=CAST(count@0 AS Float64) > 200 | | | | ---------- -- SQL: EXPLAIN SELECT * from restaurant where system > 4.0; @@ -63,7 +63,7 @@ | logical_plan | TableScan: restaurant projection=[count, system, time, town], full_filters=[restaurant.system > Float64(4)] | | physical_plan | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: system@1 > 4 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=system@1 > 4, pruning_predicate=system_max@0 > 4, output_ordering=[town@3 ASC, time@2 ASC], projection=[count, system, time, town] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[count, system, time, town], output_ordering=[town@3 ASC, time@2 ASC], predicate=system@1 > 4, pruning_predicate=system_max@0 > 4 | | | | ---------- -- SQL: SELECT * from restaurant where count > 200 and town != 'tewsbury'; @@ -85,7 +85,7 @@ | logical_plan | TableScan: restaurant projection=[count, system, time, town], full_filters=[restaurant.count > UInt64(200), restaurant.town != Dictionary(Int32, Utf8("tewsbury"))] | | physical_plan | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: count@0 > 200 AND town@3 != tewsbury | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=count@0 > 200 AND town@3 != tewsbury, pruning_predicate=count_max@0 > 200 AND (town_min@1 != tewsbury OR tewsbury != town_max@2), output_ordering=[town@3 ASC, time@2 ASC], projection=[count, system, time, town] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[count, system, time, town], output_ordering=[town@3 ASC, time@2 ASC], predicate=count@0 > 200 AND town@3 != tewsbury, pruning_predicate=count_max@0 > 200 AND (town_min@1 != tewsbury OR tewsbury != town_max@2) | | | | ---------- -- SQL: SELECT * from restaurant where count > 200 and town != 'tewsbury' and (system =5 or town = 'lawrence'); @@ -106,7 +106,7 @@ | logical_plan | TableScan: restaurant projection=[count, system, time, town], full_filters=[restaurant.count > UInt64(200), restaurant.town != Dictionary(Int32, Utf8("tewsbury")), restaurant.system = Float64(5) OR restaurant.town = Dictionary(Int32, Utf8("lawrence"))] | | physical_plan | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: count@0 > 200 AND town@3 != tewsbury AND (system@1 = 5 OR town@3 = lawrence) | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=count@0 > 200 AND town@3 != tewsbury AND (system@1 = 5 OR town@3 = lawrence), pruning_predicate=count_max@0 > 200 AND (town_min@1 != tewsbury OR tewsbury != town_max@2) AND (system_min@3 <= 5 AND 5 <= system_max@4 OR town_min@1 <= lawrence AND lawrence <= town_max@2), output_ordering=[town@3 ASC, time@2 ASC], projection=[count, system, time, town] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[count, system, time, town], output_ordering=[town@3 ASC, time@2 ASC], predicate=count@0 > 200 AND town@3 != tewsbury AND (system@1 = 5 OR town@3 = lawrence), pruning_predicate=count_max@0 > 200 AND (town_min@1 != tewsbury OR tewsbury != town_max@2) AND (system_min@3 <= 5 AND 5 <= system_max@4 OR town_min@1 <= lawrence AND lawrence <= town_max@2) | | | | ---------- -- SQL: SELECT * from restaurant where count > 200 and town != 'tewsbury' and (system =5 or town = 'lawrence') and count < 40000; @@ -126,7 +126,7 @@ | logical_plan | TableScan: restaurant projection=[count, system, time, town], full_filters=[restaurant.count > UInt64(200), restaurant.town != Dictionary(Int32, Utf8("tewsbury")), restaurant.system = Float64(5) OR restaurant.town = Dictionary(Int32, Utf8("lawrence")), restaurant.count < UInt64(40000)] | | physical_plan | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: count@0 > 200 AND town@3 != tewsbury AND (system@1 = 5 OR town@3 = lawrence) AND count@0 < 40000 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=count@0 > 200 AND town@3 != tewsbury AND (system@1 = 5 OR town@3 = lawrence) AND count@0 < 40000, pruning_predicate=count_max@0 > 200 AND (town_min@1 != tewsbury OR tewsbury != town_max@2) AND (system_min@3 <= 5 AND 5 <= system_max@4 OR town_min@1 <= lawrence AND lawrence <= town_max@2) AND count_min@5 < 40000, output_ordering=[town@3 ASC, time@2 ASC], projection=[count, system, time, town] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[count, system, time, town], output_ordering=[town@3 ASC, time@2 ASC], predicate=count@0 > 200 AND town@3 != tewsbury AND (system@1 = 5 OR town@3 = lawrence) AND count@0 < 40000, pruning_predicate=count_max@0 > 200 AND (town_min@1 != tewsbury OR tewsbury != town_max@2) AND (system_min@3 <= 5 AND 5 <= system_max@4 OR town_min@1 <= lawrence AND lawrence <= town_max@2) AND count_min@5 < 40000 | | | | ---------- -- SQL: SELECT * from restaurant where count > 200 and count < 40000; @@ -148,7 +148,7 @@ | logical_plan | TableScan: restaurant projection=[count, system, time, town], full_filters=[restaurant.count > UInt64(200), restaurant.count < UInt64(40000)] | | physical_plan | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: count@0 > 200 AND count@0 < 40000 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=count@0 > 200 AND count@0 < 40000, pruning_predicate=count_max@0 > 200 AND count_min@1 < 40000, output_ordering=[town@3 ASC, time@2 ASC], projection=[count, system, time, town] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[count, system, time, town], output_ordering=[town@3 ASC, time@2 ASC], predicate=count@0 > 200 AND count@0 < 40000, pruning_predicate=count_max@0 > 200 AND count_min@1 < 40000 | | | | ---------- -- SQL: SELECT * from restaurant where system > 4.0 and system < 7.0; @@ -171,7 +171,7 @@ | logical_plan | TableScan: restaurant projection=[count, system, time, town], full_filters=[restaurant.system > Float64(4), restaurant.system < Float64(7)] | | physical_plan | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: system@1 > 4 AND system@1 < 7 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=system@1 > 4 AND system@1 < 7, pruning_predicate=system_max@0 > 4 AND system_min@1 < 7, output_ordering=[town@3 ASC, time@2 ASC], projection=[count, system, time, town] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[count, system, time, town], output_ordering=[town@3 ASC, time@2 ASC], predicate=system@1 > 4 AND system@1 < 7, pruning_predicate=system_max@0 > 4 AND system_min@1 < 7 | | | | ---------- -- SQL: SELECT * from restaurant where system > 5.0 and system < 7.0; @@ -191,7 +191,7 @@ | logical_plan | TableScan: restaurant projection=[count, system, time, town], full_filters=[restaurant.system > Float64(5), restaurant.system < Float64(7)] | | physical_plan | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: system@1 > 5 AND system@1 < 7 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=system@1 > 5 AND system@1 < 7, pruning_predicate=system_max@0 > 5 AND system_min@1 < 7, output_ordering=[town@3 ASC, time@2 ASC], projection=[count, system, time, town] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[count, system, time, town], output_ordering=[town@3 ASC, time@2 ASC], predicate=system@1 > 5 AND system@1 < 7, pruning_predicate=system_max@0 > 5 AND system_min@1 < 7 | | | | ---------- -- SQL: SELECT * from restaurant where system > 5.0 and town != 'tewsbury' and 7.0 > system; @@ -210,7 +210,7 @@ | logical_plan | TableScan: restaurant projection=[count, system, time, town], full_filters=[restaurant.system > Float64(5), restaurant.town != Dictionary(Int32, Utf8("tewsbury")), Float64(7) > restaurant.system] | | physical_plan | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: system@1 > 5 AND town@3 != tewsbury AND 7 > system@1 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=system@1 > 5 AND town@3 != tewsbury AND 7 > system@1, pruning_predicate=system_max@0 > 5 AND (town_min@1 != tewsbury OR tewsbury != town_max@2) AND system_min@3 < 7, output_ordering=[town@3 ASC, time@2 ASC], projection=[count, system, time, town] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[count, system, time, town], output_ordering=[town@3 ASC, time@2 ASC], predicate=system@1 > 5 AND town@3 != tewsbury AND 7 > system@1, pruning_predicate=system_max@0 > 5 AND (town_min@1 != tewsbury OR tewsbury != town_max@2) AND system_min@3 < 7 | | | | ---------- -- SQL: SELECT * from restaurant where system > 5.0 and 'tewsbury' != town and system < 7.0 and (count = 632 or town = 'reading'); @@ -228,7 +228,7 @@ | logical_plan | TableScan: restaurant projection=[count, system, time, town], full_filters=[restaurant.system > Float64(5), Dictionary(Int32, Utf8("tewsbury")) != restaurant.town, restaurant.system < Float64(7), restaurant.count = UInt64(632) OR restaurant.town = Dictionary(Int32, Utf8("reading"))] | | physical_plan | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: system@1 > 5 AND tewsbury != town@3 AND system@1 < 7 AND (count@0 = 632 OR town@3 = reading) | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=system@1 > 5 AND tewsbury != town@3 AND system@1 < 7 AND (count@0 = 632 OR town@3 = reading), pruning_predicate=system_max@0 > 5 AND (town_min@1 != tewsbury OR tewsbury != town_max@2) AND system_min@3 < 7 AND (count_min@4 <= 632 AND 632 <= count_max@5 OR town_min@1 <= reading AND reading <= town_max@2), output_ordering=[town@3 ASC, time@2 ASC], projection=[count, system, time, town] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[count, system, time, town], output_ordering=[town@3 ASC, time@2 ASC], predicate=system@1 > 5 AND tewsbury != town@3 AND system@1 < 7 AND (count@0 = 632 OR town@3 = reading), pruning_predicate=system_max@0 > 5 AND (town_min@1 != tewsbury OR tewsbury != town_max@2) AND system_min@3 < 7 AND (count_min@4 <= 632 AND 632 <= count_max@5 OR town_min@1 <= reading AND reading <= town_max@2) | | | | ---------- -- SQL: SELECT * from restaurant where 5.0 < system and town != 'tewsbury' and system < 7.0 and (count = 632 or town = 'reading') and time > to_timestamp('1970-01-01T00:00:00.000000130+00:00'); @@ -276,6 +276,6 @@ | logical_plan | TableScan: restaurant projection=[count, system, time, town], full_filters=[CAST(restaurant.town AS Utf8) AS restaurant.town LIKE Utf8("%foo%") OR CAST(restaurant.town AS Utf8) AS restaurant.town LIKE Utf8("%bar%") OR CAST(restaurant.town AS Utf8) AS restaurant.town LIKE Utf8("%baz%") AS influx_regex_match(restaurant.town,Utf8("foo|bar|baz")), CAST(restaurant.town AS Utf8) AS restaurant.town NOT LIKE Utf8("%one%") AND CAST(restaurant.town AS Utf8) AS restaurant.town NOT LIKE Utf8("%two%") AS influx_regex_not_match(restaurant.town,Utf8("one|two"))] | | physical_plan | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: (CAST(town@3 AS Utf8) LIKE %foo% OR CAST(town@3 AS Utf8) LIKE %bar% OR CAST(town@3 AS Utf8) LIKE %baz%) AND CAST(town@3 AS Utf8) NOT LIKE %one% AND CAST(town@3 AS Utf8) NOT LIKE %two% | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=(CAST(town@3 AS Utf8) LIKE %foo% OR CAST(town@3 AS Utf8) LIKE %bar% OR CAST(town@3 AS Utf8) LIKE %baz%) AND CAST(town@3 AS Utf8) NOT LIKE %one% AND CAST(town@3 AS Utf8) NOT LIKE %two%, output_ordering=[town@3 ASC, time@2 ASC], projection=[count, system, time, town] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[count, system, time, town], output_ordering=[town@3 ASC, time@2 ASC], predicate=(CAST(town@3 AS Utf8) LIKE %foo% OR CAST(town@3 AS Utf8) LIKE %bar% OR CAST(town@3 AS Utf8) LIKE %baz%) AND CAST(town@3 AS Utf8) NOT LIKE %one% AND CAST(town@3 AS Utf8) NOT LIKE %two% | | | | ---------- \ No newline at end of file diff --git a/influxdb_iox/tests/query_tests2/cases/in/retention.sql.expected b/influxdb_iox/tests/query_tests2/cases/in/retention.sql.expected index 4b372beec1..7df1d1a843 100644 --- a/influxdb_iox/tests/query_tests2/cases/in/retention.sql.expected +++ b/influxdb_iox/tests/query_tests2/cases/in/retention.sql.expected @@ -28,7 +28,7 @@ | | RecordBatchesExec: batches_groups=1 batches=1 total_rows=2 | | | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: time@3 < <REDACTED> OR time@3 > <REDACTED> | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, predicate=time@2 < <REDACTED> OR time@2 > <REDACTED>, pruning_predicate=time_min@0 < <REDACTED> OR time_max@1 > <REDACTED>, output_ordering=[host@1 ASC, time@3 ASC, __chunk_order@0 ASC], projection=[__chunk_order, host, load, time] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, projection=[__chunk_order, host, load, time], output_ordering=[host@1 ASC, time@3 ASC, __chunk_order@0 ASC], predicate=time@2 < <REDACTED> OR time@2 > <REDACTED>, pruning_predicate=time_min@0 < <REDACTED> OR time_max@1 > <REDACTED> | | | | ---------- -- SQL: SELECT * FROM cpu WHERE host != 'b' ORDER BY host,time; @@ -59,6 +59,6 @@ | | RecordBatchesExec: batches_groups=1 batches=1 total_rows=2 | | | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: host@1 != b AND (time@3 < <REDACTED> OR time@3 > <REDACTED>) | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, predicate=host@0 != b AND (time@2 < <REDACTED> OR time@2 > <REDACTED>), pruning_predicate=(host_min@0 != b OR b != host_max@1) AND (time_min@2 < <REDACTED> OR time_max@3 > <REDACTED>), output_ordering=[host@1 ASC, time@3 ASC, __chunk_order@0 ASC], projection=[__chunk_order, host, load, time] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet], [1/1/1/00000000-0000-0000-0000-000000000001.parquet]]}, projection=[__chunk_order, host, load, time], output_ordering=[host@1 ASC, time@3 ASC, __chunk_order@0 ASC], predicate=host@0 != b AND (time@2 < <REDACTED> OR time@2 > <REDACTED>), pruning_predicate=(host_min@0 != b OR b != host_max@1) AND (time_min@2 < <REDACTED> OR time_max@3 > <REDACTED>) | | | | ---------- \ No newline at end of file diff --git a/influxdb_iox/tests/query_tests2/cases/in/several_chunks.sql.expected b/influxdb_iox/tests/query_tests2/cases/in/several_chunks.sql.expected index fcb26f6ae9..1568a7ee73 100644 --- a/influxdb_iox/tests/query_tests2/cases/in/several_chunks.sql.expected +++ b/influxdb_iox/tests/query_tests2/cases/in/several_chunks.sql.expected @@ -19,11 +19,11 @@ ---------- | logical_plan | TableScan: h2o projection=[city, other_temp, state, temp, time] | | physical_plan | UnionExec | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, output_ordering=[city@0 ASC, state@2 ASC, time@4 ASC], projection=[city, other_temp, state, temp, time] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[city, other_temp, state, temp, time], output_ordering=[city@0 ASC, state@2 ASC, time@4 ASC] | | | ProjectionExec: expr=[city@1 as city, other_temp@2 as other_temp, state@3 as state, temp@4 as temp, time@5 as time] | | | DeduplicateExec: [city@1 ASC,state@3 ASC,time@5 ASC] | | | SortPreservingMergeExec: [city@1 ASC,state@3 ASC,time@5 ASC,__chunk_order@0 ASC] | -| | ParquetExec: limit=None, partitions={3 groups: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet], [1/1/1/00000000-0000-0000-0000-000000000002.parquet], [1/1/1/00000000-0000-0000-0000-000000000003.parquet]]}, output_ordering=[city@1 ASC, state@3 ASC, time@5 ASC, __chunk_order@0 ASC], projection=[__chunk_order, city, other_temp, state, temp, time] | +| | ParquetExec: file_groups={3 groups: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet], [1/1/1/00000000-0000-0000-0000-000000000002.parquet], [1/1/1/00000000-0000-0000-0000-000000000003.parquet]]}, projection=[__chunk_order, city, other_temp, state, temp, time], output_ordering=[city@1 ASC, state@3 ASC, time@5 ASC, __chunk_order@0 ASC] | | | ProjectionExec: expr=[city@1 as city, other_temp@2 as other_temp, state@3 as state, temp@4 as temp, time@5 as time] | | | DeduplicateExec: [city@1 ASC,state@3 ASC,time@5 ASC] | | | SortExec: expr=[city@1 ASC,state@3 ASC,time@5 ASC,__chunk_order@0 ASC] | @@ -51,11 +51,11 @@ | logical_plan | Projection: h2o.temp, h2o.other_temp, h2o.time | | | TableScan: h2o projection=[other_temp, temp, time] | | physical_plan | UnionExec | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[temp, other_temp, time] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[temp, other_temp, time] | | | ProjectionExec: expr=[temp@3 as temp, other_temp@4 as other_temp, time@5 as time] | | | DeduplicateExec: [city@1 ASC,state@2 ASC,time@5 ASC] | | | SortPreservingMergeExec: [city@1 ASC,state@2 ASC,time@5 ASC,__chunk_order@0 ASC] | -| | ParquetExec: limit=None, partitions={3 groups: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet], [1/1/1/00000000-0000-0000-0000-000000000002.parquet], [1/1/1/00000000-0000-0000-0000-000000000003.parquet]]}, output_ordering=[city@1 ASC, state@2 ASC, time@5 ASC, __chunk_order@0 ASC], projection=[__chunk_order, city, state, temp, other_temp, time] | +| | ParquetExec: file_groups={3 groups: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet], [1/1/1/00000000-0000-0000-0000-000000000002.parquet], [1/1/1/00000000-0000-0000-0000-000000000003.parquet]]}, projection=[__chunk_order, city, state, temp, other_temp, time], output_ordering=[city@1 ASC, state@2 ASC, time@5 ASC, __chunk_order@0 ASC] | | | ProjectionExec: expr=[temp@3 as temp, other_temp@4 as other_temp, time@5 as time] | | | DeduplicateExec: [city@1 ASC,state@2 ASC,time@5 ASC] | | | SortExec: expr=[city@1 ASC,state@2 ASC,time@5 ASC,__chunk_order@0 ASC] | @@ -71,13 +71,13 @@ | physical_plan | UnionExec | | | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: time@4 >= 250 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, predicate=time@4 >= 250, pruning_predicate=time_max@0 >= 250, output_ordering=[city@0 ASC, state@2 ASC, time@4 ASC], projection=[city, other_temp, state, temp, time] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[city, other_temp, state, temp, time], output_ordering=[city@0 ASC, state@2 ASC, time@4 ASC], predicate=time@4 >= 250, pruning_predicate=time_max@0 >= 250 | | | ProjectionExec: expr=[city@1 as city, other_temp@2 as other_temp, state@3 as state, temp@4 as temp, time@5 as time] | | | DeduplicateExec: [city@1 ASC,state@3 ASC,time@5 ASC] | | | SortPreservingMergeExec: [city@1 ASC,state@3 ASC,time@5 ASC,__chunk_order@0 ASC] | | | CoalesceBatchesExec: target_batch_size=8192 | | | FilterExec: time@5 >= 250 | -| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet], [1/1/1/00000000-0000-0000-0000-000000000002.parquet]]}, predicate=time@4 >= 250, pruning_predicate=time_max@0 >= 250, output_ordering=[city@1 ASC, state@3 ASC, time@5 ASC, __chunk_order@0 ASC], projection=[__chunk_order, city, other_temp, state, temp, time] | +| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet], [1/1/1/00000000-0000-0000-0000-000000000002.parquet]]}, projection=[__chunk_order, city, other_temp, state, temp, time], output_ordering=[city@1 ASC, state@3 ASC, time@5 ASC, __chunk_order@0 ASC], predicate=time@4 >= 250, pruning_predicate=time_max@0 >= 250 | | | ProjectionExec: expr=[city@1 as city, other_temp@2 as other_temp, state@3 as state, temp@4 as temp, time@5 as time] | | | DeduplicateExec: [city@1 ASC,state@3 ASC,time@5 ASC] | | | SortExec: expr=[city@1 ASC,state@3 ASC,time@5 ASC,__chunk_order@0 ASC] | diff --git a/influxdb_iox/tests/query_tests2/cases/in/two_chunks.sql.expected b/influxdb_iox/tests/query_tests2/cases/in/two_chunks.sql.expected index 39dcbdfcd0..b9db74230c 100644 --- a/influxdb_iox/tests/query_tests2/cases/in/two_chunks.sql.expected +++ b/influxdb_iox/tests/query_tests2/cases/in/two_chunks.sql.expected @@ -20,7 +20,7 @@ | | UnionExec | | | SortExec: expr=[city@1 ASC,state@3 ASC,time@5 ASC,__chunk_order@0 ASC] | | | RecordBatchesExec: batches_groups=1 batches=1 total_rows=1 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, output_ordering=[city@1 ASC, state@3 ASC, time@5 ASC, __chunk_order@0 ASC], projection=[__chunk_order, city, other_temp, state, temp, time] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[__chunk_order, city, other_temp, state, temp, time], output_ordering=[city@1 ASC, state@3 ASC, time@5 ASC, __chunk_order@0 ASC] | | | | ---------- -- SQL: select temp, other_temp, time from h2o; @@ -44,6 +44,6 @@ | | UnionExec | | | SortExec: expr=[city@1 ASC,state@2 ASC,time@5 ASC,__chunk_order@0 ASC] | | | RecordBatchesExec: batches_groups=1 batches=1 total_rows=1 | -| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, output_ordering=[city@1 ASC, state@2 ASC, time@5 ASC, __chunk_order@0 ASC], projection=[__chunk_order, city, state, temp, other_temp, time] | +| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[__chunk_order, city, state, temp, other_temp, time], output_ordering=[city@1 ASC, state@2 ASC, time@5 ASC, __chunk_order@0 ASC] | | | | ---------- \ No newline at end of file diff --git a/iox_query/src/physical_optimizer/combine_chunks.rs b/iox_query/src/physical_optimizer/combine_chunks.rs index 00b6d7377e..971f986e8c 100644 --- a/iox_query/src/physical_optimizer/combine_chunks.rs +++ b/iox_query/src/physical_optimizer/combine_chunks.rs @@ -115,15 +115,15 @@ mod tests { - " UnionExec" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[2.parquet]]}, projection=[]" + - " ParquetExec: file_groups={1 group: [[2.parquet]]}" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={2 groups: [[4.parquet], [5.parquet]]}, projection=[]" + - " ParquetExec: file_groups={2 groups: [[4.parquet], [5.parquet]]}" output: Ok: - " UnionExec" - " RecordBatchesExec: batches_groups=2 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={2 groups: [[2.parquet, 5.parquet], [4.parquet]]}, projection=[]" + - " ParquetExec: file_groups={2 groups: [[2.parquet, 5.parquet], [4.parquet]]}" "### ); } @@ -153,19 +153,19 @@ mod tests { input: - " UnionExec" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, projection=[]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, projection=[]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}" - " FilterExec: false" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, projection=[]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}" output: Ok: - " UnionExec" - - " ParquetExec: limit=None, partitions={2 groups: [[1.parquet], [1.parquet]]}, projection=[]" + - " ParquetExec: file_groups={2 groups: [[1.parquet], [1.parquet]]}" - " FilterExec: false" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, projection=[]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}" "### ); } diff --git a/iox_query/src/physical_optimizer/dedup/dedup_null_columns.rs b/iox_query/src/physical_optimizer/dedup/dedup_null_columns.rs index 11107ad82b..cc13bc06a0 100644 --- a/iox_query/src/physical_optimizer/dedup/dedup_null_columns.rs +++ b/iox_query/src/physical_optimizer/dedup/dedup_null_columns.rs @@ -140,12 +140,12 @@ mod tests { input: - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time]" output: Ok: - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time]" "### ); } @@ -163,12 +163,12 @@ mod tests { input: - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" output: Ok: - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" "### ); } @@ -195,12 +195,12 @@ mod tests { input: - " DeduplicateExec: [tag1@0 ASC,tag2@1 ASC,zzz@2 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, projection=[tag1, tag2, zzz, time]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[tag1, tag2, zzz, time]" output: Ok: - " DeduplicateExec: [tag1@0 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, projection=[tag1, tag2, zzz, time]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[tag1, tag2, zzz, time]" "### ); } @@ -236,12 +236,12 @@ mod tests { input: - " DeduplicateExec: [tag1@0 ASC,tag2@1 ASC,tag3@2 ASC,tag4@3 ASC,time@4 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={2 groups: [[1.parquet], [2.parquet]]}, projection=[tag1, tag2, tag3, tag4, time]" + - " ParquetExec: file_groups={2 groups: [[1.parquet], [2.parquet]]}, projection=[tag1, tag2, tag3, tag4, time]" output: Ok: - " DeduplicateExec: [tag1@0 ASC,tag2@1 ASC,tag3@2 ASC,time@4 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={2 groups: [[1.parquet], [2.parquet]]}, projection=[tag1, tag2, tag3, tag4, time]" + - " ParquetExec: file_groups={2 groups: [[1.parquet], [2.parquet]]}, projection=[tag1, tag2, tag3, tag4, time]" "### ); } diff --git a/iox_query/src/physical_optimizer/dedup/dedup_sort_order.rs b/iox_query/src/physical_optimizer/dedup/dedup_sort_order.rs index da70c6f8bd..a177b1c144 100644 --- a/iox_query/src/physical_optimizer/dedup/dedup_sort_order.rs +++ b/iox_query/src/physical_optimizer/dedup/dedup_sort_order.rs @@ -212,12 +212,12 @@ mod tests { input: - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time]" output: Ok: - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time]" "### ); } @@ -241,12 +241,12 @@ mod tests { input: - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, output_ordering=[tag2@2 ASC, tag1@1 ASC, time@3 ASC], projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time], output_ordering=[tag2@2 ASC, tag1@1 ASC, time@3 ASC]" output: Ok: - " DeduplicateExec: [tag2@2 ASC,tag1@1 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, output_ordering=[tag2@2 ASC, tag1@1 ASC, time@3 ASC], projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time], output_ordering=[tag2@2 ASC, tag1@1 ASC, time@3 ASC]" "### ); } @@ -270,12 +270,12 @@ mod tests { input: - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, output_ordering=[tag2@2 ASC, tag1@1 ASC, time@3 ASC, __chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[tag2@2 ASC, tag1@1 ASC, time@3 ASC, __chunk_order@4 ASC]" output: Ok: - " DeduplicateExec: [tag2@2 ASC,tag1@1 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, output_ordering=[tag2@2 ASC, tag1@1 ASC, time@3 ASC, __chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[tag2@2 ASC, tag1@1 ASC, time@3 ASC, __chunk_order@4 ASC]" "### ); } @@ -299,12 +299,12 @@ mod tests { input: - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, output_ordering=[time@3 ASC, tag1@1 ASC, tag2@2 ASC], projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time], output_ordering=[time@3 ASC, tag1@1 ASC, tag2@2 ASC]" output: Ok: - " DeduplicateExec: [time@3 ASC,tag1@1 ASC,tag2@2 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, output_ordering=[time@3 ASC, tag1@1 ASC, tag2@2 ASC], projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time], output_ordering=[time@3 ASC, tag1@1 ASC, tag2@2 ASC]" "### ); } @@ -328,12 +328,12 @@ mod tests { input: - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,zzz@4 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, output_ordering=[tag2@2 ASC, tag1@1 ASC], projection=[field, tag1, tag2, time, zzz]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time, zzz], output_ordering=[tag2@2 ASC, tag1@1 ASC]" output: Ok: - " DeduplicateExec: [tag2@2 ASC,tag1@1 ASC,zzz@4 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time, zzz]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[field, tag1, tag2, time, zzz]" "### ); } @@ -361,12 +361,12 @@ mod tests { input: - " DeduplicateExec: [tag1@0 ASC,tag2@1 ASC,zzz@2 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, output_ordering=[tag1@0 ASC], projection=[tag1, tag2, zzz, time]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[tag1, tag2, zzz, time], output_ordering=[tag1@0 ASC]" output: Ok: - " DeduplicateExec: [tag1@0 ASC,tag2@1 ASC,zzz@2 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, output_ordering=[tag1@0 ASC, tag2@1 ASC, zzz@2 ASC, time@3 ASC], projection=[tag1, tag2, zzz, time]" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}, projection=[tag1, tag2, zzz, time], output_ordering=[tag1@0 ASC, tag2@1 ASC, zzz@2 ASC, time@3 ASC]" "### ); } @@ -397,12 +397,12 @@ mod tests { input: - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={2 groups: [[1.parquet], [2.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={2 groups: [[1.parquet], [2.parquet]]}, projection=[field, tag1, tag2, time]" output: Ok: - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={2 groups: [[1.parquet], [2.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={2 groups: [[1.parquet], [2.parquet]]}, projection=[field, tag1, tag2, time]" "### ); } @@ -432,12 +432,12 @@ mod tests { input: - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={2 groups: [[1.parquet], [2.parquet]]}, output_ordering=[tag2@2 ASC, tag1@1 ASC, time@3 ASC], projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={2 groups: [[1.parquet], [2.parquet]]}, projection=[field, tag1, tag2, time], output_ordering=[tag2@2 ASC, tag1@1 ASC, time@3 ASC]" output: Ok: - " DeduplicateExec: [tag2@2 ASC,tag1@1 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={2 groups: [[1.parquet], [2.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={2 groups: [[1.parquet], [2.parquet]]}, projection=[field, tag1, tag2, time]" "### ); } @@ -462,12 +462,12 @@ mod tests { input: - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={2 groups: [[1.parquet], [2.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={2 groups: [[1.parquet], [2.parquet]]}, projection=[field, tag1, tag2, time]" output: Ok: - " DeduplicateExec: [tag2@2 ASC,tag1@1 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={2 groups: [[1.parquet], [2.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={2 groups: [[1.parquet], [2.parquet]]}, projection=[field, tag1, tag2, time]" "### ); } @@ -519,12 +519,12 @@ mod tests { input: - " DeduplicateExec: [tag1@0 ASC,tag2@1 ASC,tag3@2 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={2 groups: [[1.parquet, 3.parquet], [2.parquet]]}, projection=[tag1, tag2, tag3, time]" + - " ParquetExec: file_groups={2 groups: [[1.parquet, 3.parquet], [2.parquet]]}, projection=[tag1, tag2, tag3, time]" output: Ok: - " DeduplicateExec: [tag2@1 ASC,tag3@2 ASC,tag1@0 ASC,time@3 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={3 groups: [[1.parquet], [3.parquet], [2.parquet]]}, output_ordering=[tag2@1 ASC, tag3@2 ASC, tag1@0 ASC, time@3 ASC], projection=[tag1, tag2, tag3, time]" + - " ParquetExec: file_groups={3 groups: [[1.parquet], [3.parquet], [2.parquet]]}, projection=[tag1, tag2, tag3, time], output_ordering=[tag2@1 ASC, tag3@2 ASC, tag1@0 ASC, time@3 ASC]" "### ); } @@ -570,12 +570,12 @@ mod tests { input: - " DeduplicateExec: [tag1@0 ASC,tag2@1 ASC,time@2 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={2 groups: [[1.parquet, 3.parquet], [2.parquet]]}, output_ordering=[tag2@1 ASC, tag1@0 ASC, time@2 ASC], projection=[tag1, tag2, time]" + - " ParquetExec: file_groups={2 groups: [[1.parquet, 3.parquet], [2.parquet]]}, projection=[tag1, tag2, time], output_ordering=[tag2@1 ASC, tag1@0 ASC, time@2 ASC]" output: Ok: - " DeduplicateExec: [tag2@1 ASC,tag1@0 ASC,time@2 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={3 groups: [[1.parquet], [3.parquet], [2.parquet]]}, output_ordering=[tag2@1 ASC, tag1@0 ASC, time@2 ASC], projection=[tag1, tag2, time]" + - " ParquetExec: file_groups={3 groups: [[1.parquet], [3.parquet], [2.parquet]]}, projection=[tag1, tag2, time], output_ordering=[tag2@1 ASC, tag1@0 ASC, time@2 ASC]" "### ); } @@ -623,12 +623,12 @@ mod tests { input: - " DeduplicateExec: [tag1@0 ASC,tag2@1 ASC,time@2 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={2 groups: [[1.parquet, 3.parquet], [2.parquet]]}, output_ordering=[tag2@1 ASC, tag1@0 ASC, time@2 ASC], projection=[tag1, tag2, time]" + - " ParquetExec: file_groups={2 groups: [[1.parquet, 3.parquet], [2.parquet]]}, projection=[tag1, tag2, time], output_ordering=[tag2@1 ASC, tag1@0 ASC, time@2 ASC]" output: Ok: - " DeduplicateExec: [tag2@1 ASC,tag1@0 ASC,time@2 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={3 groups: [[1.parquet], [3.parquet], [2.parquet]]}, projection=[tag1, tag2, time]" + - " ParquetExec: file_groups={3 groups: [[1.parquet], [3.parquet], [2.parquet]]}, projection=[tag1, tag2, time]" "### ); } diff --git a/iox_query/src/physical_optimizer/dedup/partition_split.rs b/iox_query/src/physical_optimizer/dedup/partition_split.rs index bc4c3759ac..ea293c109a 100644 --- a/iox_query/src/physical_optimizer/dedup/partition_split.rs +++ b/iox_query/src/physical_optimizer/dedup/partition_split.rs @@ -157,13 +157,13 @@ mod tests { - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=2 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[3.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={1 group: [[3.parquet]]}, projection=[field, tag1, tag2, time]" output: Ok: - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=2 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[3.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={1 group: [[3.parquet]]}, projection=[field, tag1, tag2, time]" "### ); } @@ -190,18 +190,18 @@ mod tests { - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=2 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={2 groups: [[3.parquet, 5.parquet], [4.parquet, 6.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={2 groups: [[3.parquet, 5.parquet], [4.parquet, 6.parquet]]}, projection=[field, tag1, tag2, time]" output: Ok: - " UnionExec" - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={2 groups: [[3.parquet, 6.parquet], [5.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={2 groups: [[3.parquet, 6.parquet], [5.parquet]]}, projection=[field, tag1, tag2, time]" - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[4.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={1 group: [[4.parquet]]}, projection=[field, tag1, tag2, time]" "### ); } diff --git a/iox_query/src/physical_optimizer/dedup/time_split.rs b/iox_query/src/physical_optimizer/dedup/time_split.rs index 1ab3cf1e40..cbf71670cc 100644 --- a/iox_query/src/physical_optimizer/dedup/time_split.rs +++ b/iox_query/src/physical_optimizer/dedup/time_split.rs @@ -146,13 +146,13 @@ mod tests { - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=2 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[3.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={1 group: [[3.parquet]]}, projection=[field, tag1, tag2, time]" output: Ok: - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=2 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[3.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={1 group: [[3.parquet]]}, projection=[field, tag1, tag2, time]" "### ); } @@ -187,18 +187,18 @@ mod tests { - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=2 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={2 groups: [[3.parquet, 5.parquet], [4.parquet, 6.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={2 groups: [[3.parquet, 5.parquet], [4.parquet, 6.parquet]]}, projection=[field, tag1, tag2, time]" output: Ok: - " UnionExec" - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={2 groups: [[6.parquet, 5.parquet], [3.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={2 groups: [[6.parquet, 5.parquet], [3.parquet]]}, projection=[field, tag1, tag2, time]" - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[4.parquet]]}, projection=[field, tag1, tag2, time]" + - " ParquetExec: file_groups={1 group: [[4.parquet]]}, projection=[field, tag1, tag2, time]" "### ); } diff --git a/iox_query/src/physical_optimizer/predicate_pushdown.rs b/iox_query/src/physical_optimizer/predicate_pushdown.rs index 2da2ec9869..d55eea9ffa 100644 --- a/iox_query/src/physical_optimizer/predicate_pushdown.rs +++ b/iox_query/src/physical_optimizer/predicate_pushdown.rs @@ -335,11 +335,11 @@ mod tests { --- input: - " FilterExec: tag1@0 = field@2" - - " ParquetExec: limit=None, partitions={0 groups: []}, predicate=tag1@0 = foo, pruning_predicate=tag1_min@0 <= foo AND foo <= tag1_max@1, projection=[tag1, tag2, field]" + - " ParquetExec: file_groups={0 groups: []}, projection=[tag1, tag2, field], predicate=tag1@0 = foo, pruning_predicate=tag1_min@0 <= foo AND foo <= tag1_max@1" output: Ok: - " FilterExec: tag1@0 = field@2" - - " ParquetExec: limit=None, partitions={0 groups: []}, predicate=tag1@0 = foo AND tag1@0 = field@2, pruning_predicate=tag1_min@0 <= foo AND foo <= tag1_max@1, projection=[tag1, tag2, field]" + - " ParquetExec: file_groups={0 groups: []}, projection=[tag1, tag2, field], predicate=tag1@0 = foo AND tag1@0 = field@2, pruning_predicate=tag1_min@0 <= foo AND foo <= tag1_max@1" "### ); } diff --git a/iox_query/src/physical_optimizer/projection_pushdown.rs b/iox_query/src/physical_optimizer/projection_pushdown.rs index 002c83b3a8..9e608eceee 100644 --- a/iox_query/src/physical_optimizer/projection_pushdown.rs +++ b/iox_query/src/physical_optimizer/projection_pushdown.rs @@ -764,10 +764,10 @@ mod tests { --- input: - " ProjectionExec: expr=[tag2@2 as tag2, tag3@1 as tag3]" - - " ParquetExec: limit=None, partitions={0 groups: []}, predicate=tag1@0 = foo, pruning_predicate=tag1_min@0 <= foo AND foo <= tag1_max@1, output_ordering=[tag3@1 ASC, field@0 ASC, tag2@2 ASC], projection=[field, tag3, tag2]" + - " ParquetExec: file_groups={0 groups: []}, projection=[field, tag3, tag2], output_ordering=[tag3@1 ASC, field@0 ASC, tag2@2 ASC], predicate=tag1@0 = foo, pruning_predicate=tag1_min@0 <= foo AND foo <= tag1_max@1" output: Ok: - - " ParquetExec: limit=None, partitions={0 groups: []}, predicate=tag1@0 = foo, pruning_predicate=tag1_min@0 <= foo AND foo <= tag1_max@1, output_ordering=[tag3@1 ASC], projection=[tag2, tag3]" + - " ParquetExec: file_groups={0 groups: []}, projection=[tag2, tag3], output_ordering=[tag3@1 ASC], predicate=tag1@0 = foo, pruning_predicate=tag1_min@0 <= foo AND foo <= tag1_max@1" "### ); @@ -1369,7 +1369,7 @@ mod tests { - " FilterExec: tag2@1 = foo" - " DeduplicateExec: [tag1@0 ASC,tag2@1 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={0 groups: []}, projection=[tag1, tag2, field1, field2]" + - " ParquetExec: file_groups={0 groups: []}, projection=[tag1, tag2, field1, field2]" output: Ok: - " ProjectionExec: expr=[field1@0 as field1]" @@ -1377,7 +1377,7 @@ mod tests { - " ProjectionExec: expr=[field1@0 as field1, tag2@2 as tag2]" - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC]" - " UnionExec" - - " ParquetExec: limit=None, partitions={0 groups: []}, projection=[field1, tag1, tag2]" + - " ParquetExec: file_groups={0 groups: []}, projection=[field1, tag1, tag2]" "### ); } diff --git a/iox_query/src/physical_optimizer/sort/parquet_sortness.rs b/iox_query/src/physical_optimizer/sort/parquet_sortness.rs index e500237094..1bc70cd21c 100644 --- a/iox_query/src/physical_optimizer/sort/parquet_sortness.rs +++ b/iox_query/src/physical_optimizer/sort/parquet_sortness.rs @@ -207,11 +207,11 @@ mod tests { --- input: - " SortExec: fetch=42, expr=[col2@1 ASC,col1@0 ASC]" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet, 2.parquet]]}, output_ordering=[col2@1 ASC, col1@0 ASC], projection=[col1, col2, col3]" + - " ParquetExec: file_groups={1 group: [[1.parquet, 2.parquet]]}, projection=[col1, col2, col3], output_ordering=[col2@1 ASC, col1@0 ASC]" output: Ok: - " SortExec: fetch=42, expr=[col2@1 ASC,col1@0 ASC]" - - " ParquetExec: limit=None, partitions={2 groups: [[1.parquet], [2.parquet]]}, output_ordering=[col2@1 ASC, col1@0 ASC], projection=[col1, col2, col3]" + - " ParquetExec: file_groups={2 groups: [[1.parquet], [2.parquet]]}, projection=[col1, col2, col3], output_ordering=[col2@1 ASC, col1@0 ASC]" "### ); } @@ -243,11 +243,11 @@ mod tests { --- input: - " DeduplicateExec: [col2@1 ASC,col1@0 ASC]" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet, 2.parquet]]}, output_ordering=[col2@1 ASC, col1@0 ASC, __chunk_order@3 ASC], projection=[col1, col2, col3, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[1.parquet, 2.parquet]]}, projection=[col1, col2, col3, __chunk_order], output_ordering=[col2@1 ASC, col1@0 ASC, __chunk_order@3 ASC]" output: Ok: - " DeduplicateExec: [col2@1 ASC,col1@0 ASC]" - - " ParquetExec: limit=None, partitions={2 groups: [[1.parquet], [2.parquet]]}, output_ordering=[col2@1 ASC, col1@0 ASC, __chunk_order@3 ASC], projection=[col1, col2, col3, __chunk_order]" + - " ParquetExec: file_groups={2 groups: [[1.parquet], [2.parquet]]}, projection=[col1, col2, col3, __chunk_order], output_ordering=[col2@1 ASC, col1@0 ASC, __chunk_order@3 ASC]" "### ); } @@ -283,11 +283,11 @@ mod tests { --- input: - " SortExec: fetch=42, expr=[col2@1 ASC,col1@0 ASC]" - - " ParquetExec: limit=None, partitions={2 groups: [[1.parquet, 2.parquet], [3.parquet]]}, output_ordering=[col2@1 ASC, col1@0 ASC], projection=[col1, col2, col3]" + - " ParquetExec: file_groups={2 groups: [[1.parquet, 2.parquet], [3.parquet]]}, projection=[col1, col2, col3], output_ordering=[col2@1 ASC, col1@0 ASC]" output: Ok: - " SortExec: fetch=42, expr=[col2@1 ASC,col1@0 ASC]" - - " ParquetExec: limit=None, partitions={3 groups: [[1.parquet], [2.parquet], [3.parquet]]}, output_ordering=[col2@1 ASC, col1@0 ASC], projection=[col1, col2, col3]" + - " ParquetExec: file_groups={3 groups: [[1.parquet], [2.parquet], [3.parquet]]}, projection=[col1, col2, col3], output_ordering=[col2@1 ASC, col1@0 ASC]" "### ); @@ -320,11 +320,11 @@ mod tests { --- input: - " SortExec: fetch=42, expr=[col2@1 ASC,col1@0 ASC]" - - " ParquetExec: limit=None, partitions={2 groups: [[1.parquet], [2.parquet]]}, output_ordering=[col2@1 ASC, col1@0 ASC], projection=[col1, col2, col3]" + - " ParquetExec: file_groups={2 groups: [[1.parquet], [2.parquet]]}, projection=[col1, col2, col3], output_ordering=[col2@1 ASC, col1@0 ASC]" output: Ok: - " SortExec: fetch=42, expr=[col2@1 ASC,col1@0 ASC]" - - " ParquetExec: limit=None, partitions={2 groups: [[1.parquet], [2.parquet]]}, output_ordering=[col2@1 ASC, col1@0 ASC], projection=[col1, col2, col3]" + - " ParquetExec: file_groups={2 groups: [[1.parquet], [2.parquet]]}, projection=[col1, col2, col3], output_ordering=[col2@1 ASC, col1@0 ASC]" "### ); } @@ -355,11 +355,11 @@ mod tests { --- input: - " SortExec: fetch=42, expr=[col2@1 ASC,col1@0 ASC]" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet, 2.parquet]]}, output_ordering=[col1@0 ASC, col2@1 ASC], projection=[col1, col2, col3]" + - " ParquetExec: file_groups={1 group: [[1.parquet, 2.parquet]]}, projection=[col1, col2, col3], output_ordering=[col1@0 ASC, col2@1 ASC]" output: Ok: - " SortExec: fetch=42, expr=[col2@1 ASC,col1@0 ASC]" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet, 2.parquet]]}, output_ordering=[col1@0 ASC, col2@1 ASC], projection=[col1, col2, col3]" + - " ParquetExec: file_groups={1 group: [[1.parquet, 2.parquet]]}, projection=[col1, col2, col3], output_ordering=[col1@0 ASC, col2@1 ASC]" "### ); } @@ -390,11 +390,11 @@ mod tests { --- input: - " SortExec: fetch=42, expr=[col2@1 ASC,col1@0 ASC]" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet, 2.parquet]]}, projection=[col1, col2, col3]" + - " ParquetExec: file_groups={1 group: [[1.parquet, 2.parquet]]}, projection=[col1, col2, col3]" output: Ok: - " SortExec: fetch=42, expr=[col2@1 ASC,col1@0 ASC]" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet, 2.parquet]]}, projection=[col1, col2, col3]" + - " ParquetExec: file_groups={1 group: [[1.parquet, 2.parquet]]}, projection=[col1, col2, col3]" "### ); } @@ -430,11 +430,11 @@ mod tests { --- input: - " SortExec: fetch=42, expr=[col2@1 ASC,col1@0 ASC]" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet, 2.parquet, 3.parquet]]}, output_ordering=[col2@1 ASC, col1@0 ASC], projection=[col1, col2, col3]" + - " ParquetExec: file_groups={1 group: [[1.parquet, 2.parquet, 3.parquet]]}, projection=[col1, col2, col3], output_ordering=[col2@1 ASC, col1@0 ASC]" output: Ok: - " SortExec: fetch=42, expr=[col2@1 ASC,col1@0 ASC]" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet, 2.parquet, 3.parquet]]}, output_ordering=[col2@1 ASC, col1@0 ASC], projection=[col1, col2, col3]" + - " ParquetExec: file_groups={1 group: [[1.parquet, 2.parquet, 3.parquet]]}, projection=[col1, col2, col3], output_ordering=[col2@1 ASC, col1@0 ASC]" "### ); } @@ -484,10 +484,10 @@ mod tests { @r###" --- input: - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet, 2.parquet]]}, output_ordering=[col2@1 ASC, col1@0 ASC], projection=[col1, col2, col3]" + - " ParquetExec: file_groups={1 group: [[1.parquet, 2.parquet]]}, projection=[col1, col2, col3], output_ordering=[col2@1 ASC, col1@0 ASC]" output: Ok: - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet, 2.parquet]]}, output_ordering=[col2@1 ASC, col1@0 ASC], projection=[col1, col2, col3]" + - " ParquetExec: file_groups={1 group: [[1.parquet, 2.parquet]]}, projection=[col1, col2, col3], output_ordering=[col2@1 ASC, col1@0 ASC]" "### ); } @@ -519,12 +519,12 @@ mod tests { input: - " SortExec: fetch=42, expr=[col1@0 ASC,col2@1 ASC]" - " SortExec: fetch=42, expr=[col2@1 ASC,col1@0 ASC]" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet, 2.parquet]]}, output_ordering=[col1@0 ASC, col2@1 ASC], projection=[col1, col2, col3]" + - " ParquetExec: file_groups={1 group: [[1.parquet, 2.parquet]]}, projection=[col1, col2, col3], output_ordering=[col1@0 ASC, col2@1 ASC]" output: Ok: - " SortExec: fetch=42, expr=[col1@0 ASC,col2@1 ASC]" - " SortExec: fetch=42, expr=[col2@1 ASC,col1@0 ASC]" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet, 2.parquet]]}, output_ordering=[col1@0 ASC, col2@1 ASC], projection=[col1, col2, col3]" + - " ParquetExec: file_groups={1 group: [[1.parquet, 2.parquet]]}, projection=[col1, col2, col3], output_ordering=[col1@0 ASC, col2@1 ASC]" "### ); } diff --git a/iox_query/src/physical_optimizer/sort/redundant_sort.rs b/iox_query/src/physical_optimizer/sort/redundant_sort.rs index 32f380cb0a..9638748c00 100644 --- a/iox_query/src/physical_optimizer/sort/redundant_sort.rs +++ b/iox_query/src/physical_optimizer/sort/redundant_sort.rs @@ -85,11 +85,11 @@ mod tests { --- input: - " SortExec: fetch=10, expr=[col@0 ASC]" - - " ParquetExec: limit=None, partitions={0 groups: []}, projection=[col]" + - " ParquetExec: file_groups={0 groups: []}, projection=[col]" output: Ok: - " SortExec: fetch=10, expr=[col@0 ASC]" - - " ParquetExec: limit=None, partitions={0 groups: []}, projection=[col]" + - " ParquetExec: file_groups={0 groups: []}, projection=[col]" "### ); } @@ -121,10 +121,10 @@ mod tests { --- input: - " SortExec: fetch=10, expr=[col@0 ASC]" - - " ParquetExec: limit=None, partitions={0 groups: []}, output_ordering=[col@0 ASC], projection=[col]" + - " ParquetExec: file_groups={0 groups: []}, projection=[col], output_ordering=[col@0 ASC]" output: Ok: - - " ParquetExec: limit=None, partitions={0 groups: []}, output_ordering=[col@0 ASC], projection=[col]" + - " ParquetExec: file_groups={0 groups: []}, projection=[col], output_ordering=[col@0 ASC]" "### ); } diff --git a/iox_query/src/provider.rs b/iox_query/src/provider.rs index 63e99b4d1d..7b398ac2b4 100644 --- a/iox_query/src/provider.rs +++ b/iox_query/src/provider.rs @@ -410,7 +410,7 @@ mod test { - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[2.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[2.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" "### ); @@ -427,7 +427,7 @@ mod test { - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[2.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[2.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" "### ); @@ -448,7 +448,7 @@ mod test { - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[2.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[2.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" "### ); @@ -462,7 +462,7 @@ mod test { - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[2.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[2.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" "### ); } @@ -508,7 +508,7 @@ mod test { - " ProjectionExec: expr=[field@0 as field, tag1@1 as tag1, tag2@2 as tag2, time@3 as time]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[2.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[2.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" "### ); @@ -524,7 +524,7 @@ mod test { - " ProjectionExec: expr=[tag1@1 as tag1, time@3 as time]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[2.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[2.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" "### ); @@ -553,7 +553,7 @@ mod test { - " FilterExec: false AND tag1@1 = CAST(foo AS Dictionary(Int32, Utf8))" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[2.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[2.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" "### ); @@ -566,7 +566,7 @@ mod test { - " ProjectionExec: expr=[field@0 as field, tag1@1 as tag1, tag2@2 as tag2, time@3 as time]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[2.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[2.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" "### ); } @@ -614,7 +614,7 @@ mod test { - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[2.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[2.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" "### ); @@ -632,7 +632,7 @@ mod test { - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[2.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[2.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" "### ); @@ -654,7 +654,7 @@ mod test { - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[2.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[2.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" "### ); @@ -669,7 +669,7 @@ mod test { - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[2.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[2.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" "### ); } @@ -719,7 +719,7 @@ mod test { - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[2.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[2.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" "### ); @@ -737,7 +737,7 @@ mod test { - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[2.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[2.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" "### ); @@ -758,7 +758,7 @@ mod test { - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[2.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[2.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" "### ); @@ -773,7 +773,7 @@ mod test { - " DeduplicateExec: [tag1@1 ASC,tag2@2 ASC,time@3 ASC]" - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[2.parquet]]}, output_ordering=[__chunk_order@4 ASC], projection=[field, tag1, tag2, time, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[2.parquet]]}, projection=[field, tag1, tag2, time, __chunk_order], output_ordering=[__chunk_order@4 ASC]" "### ); } diff --git a/iox_query/src/provider/physical.rs b/iox_query/src/provider/physical.rs index 3f085baac7..27b6125415 100644 --- a/iox_query/src/provider/physical.rs +++ b/iox_query/src/provider/physical.rs @@ -478,7 +478,7 @@ mod tests { @r###" --- - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[0.parquet]]}, projection=[]" + - " ParquetExec: file_groups={1 group: [[0.parquet]]}" "### ); } @@ -500,7 +500,7 @@ mod tests { @r###" --- - " UnionExec" - - " ParquetExec: limit=None, partitions={2 groups: [[0.parquet, 2.parquet], [1.parquet]]}, projection=[]" + - " ParquetExec: file_groups={2 groups: [[0.parquet, 2.parquet], [1.parquet]]}" "### ); } @@ -521,8 +521,8 @@ mod tests { @r###" --- - " UnionExec" - - " ParquetExec: limit=None, partitions={1 group: [[0.parquet]]}, projection=[]" - - " ParquetExec: limit=None, partitions={1 group: [[1.parquet]]}, projection=[]" + - " ParquetExec: file_groups={1 group: [[0.parquet]]}" + - " ParquetExec: file_groups={1 group: [[1.parquet]]}" "### ); } @@ -540,7 +540,7 @@ mod tests { --- - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[0.parquet]]}, projection=[]" + - " ParquetExec: file_groups={1 group: [[0.parquet]]}" "### ); } @@ -569,7 +569,7 @@ mod tests { --- - " UnionExec" - " RecordBatchesExec: batches_groups=1 batches=0 total_rows=0" - - " ParquetExec: limit=None, partitions={1 group: [[0.parquet]]}, output_ordering=[__chunk_order@1 ASC], projection=[tag, __chunk_order]" + - " ParquetExec: file_groups={1 group: [[0.parquet]]}, projection=[tag, __chunk_order], output_ordering=[__chunk_order@1 ASC]" "### ); } diff --git a/querier/src/namespace/query_access.rs b/querier/src/namespace/query_access.rs index c6b1fd4d85..4335451afe 100644 --- a/querier/src/namespace/query_access.rs +++ b/querier/src/namespace/query_access.rs @@ -484,7 +484,7 @@ mod tests { - "| plan_type | plan |" - "----------" - "| logical_plan | TableScan: cpu projection=[foo, host, load, time] |" - - "| physical_plan | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet, 1/1/1/00000000-0000-0000-0000-000000000001.parquet, 1/1/1/00000000-0000-0000-0000-000000000002.parquet, 1/1/1/00000000-0000-0000-0000-000000000003.parquet, 1/1/1/00000000-0000-0000-0000-000000000004.parquet]]}, projection=[foo, host, load, time] |" + - "| physical_plan | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet, 1/1/1/00000000-0000-0000-0000-000000000001.parquet, 1/1/1/00000000-0000-0000-0000-000000000002.parquet, 1/1/1/00000000-0000-0000-0000-000000000003.parquet, 1/1/1/00000000-0000-0000-0000-000000000004.parquet]]}, projection=[foo, host, load, time] |" - "| | |" - "----------" "### @@ -502,7 +502,7 @@ mod tests { - "| logical_plan | Sort: mem.host ASC NULLS LAST, mem.time ASC NULLS LAST |" - "| | TableScan: mem projection=[host, perc, time] |" - "| physical_plan | SortExec: expr=[host@0 ASC NULLS LAST,time@2 ASC NULLS LAST] |" - - "| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, output_ordering=[host@0 ASC, time@2 ASC], projection=[host, perc, time] |" + - "| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[host, perc, time], output_ordering=[host@0 ASC, time@2 ASC] |" - "| | |" - "----------" "### @@ -552,12 +552,12 @@ mod tests { - "----------" - "| logical_plan | TableScan: cpu projection=[foo, host, load, time] |" - "| physical_plan | UnionExec |" - - "| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, output_ordering=[host@1 ASC, time@3 ASC], projection=[foo, host, load, time] |" - - "| | ParquetExec: limit=None, partitions={1 group: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet, 1/1/1/00000000-0000-0000-0000-000000000002.parquet, 1/1/1/00000000-0000-0000-0000-000000000003.parquet]]}, projection=[foo, host, load, time] |" + - "| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000000.parquet]]}, projection=[foo, host, load, time], output_ordering=[host@1 ASC, time@3 ASC] |" + - "| | ParquetExec: file_groups={1 group: [[1/1/1/00000000-0000-0000-0000-000000000001.parquet, 1/1/1/00000000-0000-0000-0000-000000000002.parquet, 1/1/1/00000000-0000-0000-0000-000000000003.parquet]]}, projection=[foo, host, load, time] |" - "| | ProjectionExec: expr=[foo@1 as foo, host@2 as host, load@3 as load, time@4 as time] |" - "| | DeduplicateExec: [host@2 ASC,time@4 ASC] |" - "| | SortPreservingMergeExec: [host@2 ASC,time@4 ASC,__chunk_order@0 ASC] |" - - "| | ParquetExec: limit=None, partitions={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000004.parquet], [1/1/1/00000000-0000-0000-0000-000000000005.parquet]]}, output_ordering=[host@2 ASC, time@4 ASC, __chunk_order@0 ASC], projection=[__chunk_order, foo, host, load, time] |" + - "| | ParquetExec: file_groups={2 groups: [[1/1/1/00000000-0000-0000-0000-000000000004.parquet], [1/1/1/00000000-0000-0000-0000-000000000005.parquet]]}, projection=[__chunk_order, foo, host, load, time], output_ordering=[host@2 ASC, time@4 ASC, __chunk_order@0 ASC] |" - "| | |" - "----------" "### diff --git a/workspace-hack/Cargo.toml b/workspace-hack/Cargo.toml index 763595b17e..0d07e07fff 100644 --- a/workspace-hack/Cargo.toml +++ b/workspace-hack/Cargo.toml @@ -30,9 +30,9 @@ bytes = { version = "1" } chrono = { version = "0.4", default-features = false, features = ["alloc", "clock", "serde"] } crossbeam-utils = { version = "0.8" } crypto-common = { version = "0.1", default-features = false, features = ["std"] } -datafusion = { git = "https://github.com/apache/arrow-datafusion.git", rev = "2787e7a36a6be83d91201df20827d3695f933300" } -datafusion-optimizer = { git = "https://github.com/apache/arrow-datafusion.git", rev = "2787e7a36a6be83d91201df20827d3695f933300", default-features = false, features = ["crypto_expressions", "regex_expressions", "unicode_expressions"] } -datafusion-physical-expr = { git = "https://github.com/apache/arrow-datafusion.git", rev = "2787e7a36a6be83d91201df20827d3695f933300", default-features = false, features = ["crypto_expressions", "regex_expressions", "unicode_expressions"] } +datafusion = { git = "https://github.com/apache/arrow-datafusion.git", rev = "06e9f53637f20dd91bef43b74942ec36c38c22d5" } +datafusion-optimizer = { git = "https://github.com/apache/arrow-datafusion.git", rev = "06e9f53637f20dd91bef43b74942ec36c38c22d5", default-features = false, features = ["crypto_expressions", "regex_expressions", "unicode_expressions"] } +datafusion-physical-expr = { git = "https://github.com/apache/arrow-datafusion.git", rev = "06e9f53637f20dd91bef43b74942ec36c38c22d5", default-features = false, features = ["crypto_expressions", "regex_expressions", "unicode_expressions"] } digest = { version = "0.10", features = ["mac", "std"] } either = { version = "1" } fixedbitset = { version = "0.4" }