This is an automated email from the ASF dual-hosted git repository.
morningman pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
from c8b130ad82a [fix](variable) support set ON and ALL to variable (#58287)
add a13241b76c7 [feature](reader) Optimize Complex Type Column Reading
with Column Pruning (#57204)
No new revisions were added by this update.
Summary of changes:
be/src/http/action/debug_point_action.cpp | 1 -
be/src/olap/iterators.h | 4 +-
be/src/olap/rowset/beta_rowset_reader.cpp | 4 +
be/src/olap/rowset/rowset_reader_context.h | 5 +
be/src/olap/rowset/segment_v2/column_reader.cpp | 361 +-
be/src/olap/rowset/segment_v2/column_reader.h | 70 +-
be/src/olap/rowset/segment_v2/segment.cpp | 16 +
be/src/olap/tablet_reader.cpp | 3 +
be/src/olap/tablet_reader.h | 4 +
be/src/olap/tablet_schema.cpp | 19 +
be/src/olap/tablet_schema.h | 10 +
be/src/runtime/descriptors.cpp | 58 +-
be/src/runtime/descriptors.h | 14 +
be/src/vec/columns/column_map.cpp | 1 +
be/src/vec/data_types/data_type_factory.cpp | 3 +-
be/src/vec/exec/format/orc/vorc_reader.cpp | 377 +-
be/src/vec/exec/format/orc/vorc_reader.h | 21 +-
be/src/vec/exec/format/parquet/schema_desc.cpp | 87 +-
be/src/vec/exec/format/parquet/schema_desc.h | 30 +-
.../exec/format/parquet/vparquet_column_reader.cpp | 207 +-
.../exec/format/parquet/vparquet_column_reader.h | 101 +-
.../exec/format/parquet/vparquet_group_reader.cpp | 27 +-
.../exec/format/parquet/vparquet_group_reader.h | 8 +-
be/src/vec/exec/format/parquet/vparquet_reader.cpp | 50 +-
be/src/vec/exec/format/parquet/vparquet_reader.h | 6 +-
.../table/hive/hive_orc_nested_column_utils.cpp | 168 +
.../table/hive/hive_orc_nested_column_utils.h | 43 +
.../hive/hive_parquet_nested_column_utils.cpp | 171 +
.../table/hive/hive_parquet_nested_column_utils.h | 41 +
be/src/vec/exec/format/table/hive_reader.cpp | 271 +-
be/src/vec/exec/format/table/hive_reader.h | 14 +
.../iceberg/iceberg_orc_nested_column_utils.cpp | 168 +
.../iceberg/iceberg_orc_nested_column_utils.h | 44 +
.../iceberg_parquet_nested_column_utils.cpp | 172 +
.../iceberg/iceberg_parquet_nested_column_utils.h | 42 +
be/src/vec/exec/format/table/iceberg_reader.cpp | 162 +-
be/src/vec/exec/format/table/iceberg_reader.h | 7 +
.../format/table/nested_column_access_helper.h | 82 +
.../vec/exec/format/table/table_format_reader.cpp | 21 +-
be/src/vec/exec/format/table/table_format_reader.h | 36 +
be/src/vec/exec/scan/file_scanner.cpp | 6 +-
be/src/vec/exec/scan/file_scanner.h | 2 +-
be/src/vec/exec/scan/olap_scanner.cpp | 22 +-
be/src/vec/functions/function.cpp | 3 +
...4897963-0081-4127-bebe-35dc7dc1edeb-0-00001.orc | Bin 0 -> 2277 bytes
...4897963-0081-4127-bebe-35dc7dc1edeb-0-00001.orc | Bin 0 -> 2334 bytes
...2c4c8-e0bd-4db6-b550-6323977446a4.metadata.json | 145 +
...66011-3129-4bfb-9b4b-c1510c566d73.metadata.json | 176 +
.../6a876742-85c2-4f84-ae24-292482fa9288-m0.avro | Bin 0 -> 8175 bytes
...212-1-6a876742-85c2-4f84-ae24-292482fa9288.avro | Bin 0 -> 4264 bytes
...aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet | Bin 0 -> 4068 bytes
...aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet | Bin 0 -> 4020 bytes
...aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet | Bin 0 -> 4043 bytes
...aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet | Bin 0 -> 4082 bytes
...aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet | Bin 0 -> 4067 bytes
...aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet | Bin 0 -> 4047 bytes
...aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet | Bin 0 -> 4077 bytes
...aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet | Bin 0 -> 4147 bytes
...38ed9-31af-46c8-9274-506c7f2709c9.metadata.json | 145 +
...4732d-f823-4900-8185-3eb3cb23e4a9.metadata.json | 176 +
.../51fb6058-7fc2-4791-96a9-f3111933728a-m0.avro | Bin 0 -> 8783 bytes
...552-1-51fb6058-7fc2-4791-96a9-f3111933728a.avro | Bin 0 -> 4264 bytes
...a144c37-16a4-47c6-96db-0007175b5c90-0-00001.orc | Bin 0 -> 7181 bytes
...20949-0948-4f33-bcf4-5b6bcb0cd400.metadata.json | 548 ++
...ddc20-6aa8-4864-9d15-546dd5a6bae4.metadata.json | 579 ++
.../d9aed717-61ef-422b-b044-a16ca31f9e86-m0.avro | 1 +
...228-1-d9aed717-61ef-422b-b044-a16ca31f9e86.avro | Bin 0 -> 4261 bytes
...35f-d581-40e4-8d56-a929aded99e4-0-00001.parquet | Bin 0 -> 21586 bytes
...ae7dc-be1a-410b-ae74-7cf04ad10765.metadata.json | 548 ++
...56265-e89e-4c9f-a0fb-7f3075d4e8f9.metadata.json | 579 ++
.../bee22dff-a1d3-420d-bfba-c1b4193ab0df-m0.avro | 5 +
...002-1-bee22dff-a1d3-420d-bfba-c1b4193ab0df.avro | Bin 0 -> 4262 bytes
.../test_data/nested_user_profiles_orc/_SUCCESS} | 0
...f23-05d1-4043-a533-b155ef52b720-c000.snappy.orc | Bin 0 -> 8396 bytes
.../nested_user_profiles_parquet/_SUCCESS} | 0
...1a03-4efc-ab51-557e9369a1f9-c000.snappy.parquet | Bin 0 -> 21157 bytes
.../olap/rowset/segment_v2/column_reader_test.cpp | 220 +
.../exec/format/parquet/parquet_thrift_test.cpp | 12 +-
.../hive/hive_reader_create_column_ids_test.cpp | 1193 +++
.../exec/format/table/hive/hive_reader_test.cpp | 740 ++
.../iceberg_reader_create_column_ids_test.cpp | 1184 +++
.../format/table/iceberg/iceberg_reader_test.cpp | 733 ++
contrib/apache-orc | 2 +-
.../org/apache/doris/analysis/AccessPathInfo.java | 38 +
.../org/apache/doris/analysis/SlotDescriptor.java | 43 +
.../org/apache/doris/datasource/FileScanNode.java | 15 +-
.../doris/datasource/hive/HMSExternalTable.java | 40 +
.../doris/datasource/hive/source/HiveScanNode.java | 37 +-
.../org/apache/doris/nereids/StatementContext.java | 9 +
.../glue/translator/PhysicalPlanTranslator.java | 5 +-
.../glue/translator/PlanTranslatorContext.java | 18 +
.../doris/nereids/jobs/executor/Rewriter.java | 6 +
.../org/apache/doris/nereids/rules/RuleSet.java | 2 +
.../org/apache/doris/nereids/rules/RuleType.java | 8 +
.../doris/nereids/rules/analysis/BindRelation.java | 9 +-
.../nereids/rules/analysis/ExpressionAnalyzer.java | 10 +
.../nereids/rules/analysis/NormalizeAggregate.java | 3 +-
.../rules/expression/ExpressionNormalization.java | 2 +
.../rules/expression/ExpressionRuleType.java | 1 +
.../expression/rules/NormalizeStructElement.java | 66 +
.../rewrite/AccessPathExpressionCollector.java | 511 ++
.../rules/rewrite/AccessPathPlanCollector.java | 176 +
.../nereids/rules/rewrite/NestedColumnPruning.java | 486 ++
.../nereids/rules/rewrite/PushDownProject.java | 412 ++
.../nereids/rules/rewrite/SlotTypeReplacer.java | 728 ++
.../rules/rewrite/VariantSubPathPruning.java | 3 +-
.../org/apache/doris/nereids/trees/TreeNode.java | 2 +-
.../trees/expressions/PreferPushDownProject.java | 41 +
.../nereids/trees/expressions/SlotReference.java | 56 +-
.../expressions/functions/scalar/ArrayFirst.java | 6 +
.../expressions/functions/scalar/ArrayLast.java | 6 +
.../expressions/functions/scalar/ArrayMap.java | 3 +-
.../expressions/functions/scalar/ElementAt.java | 4 +-
.../functions/scalar/HighOrderFunction.java | 3 +-
.../functions/scalar/MapContainsEntry.java | 3 +-
.../functions/scalar/MapContainsKey.java | 3 +-
.../functions/scalar/MapContainsValue.java | 3 +-
.../expressions/functions/scalar/MapEntries.java | 3 +-
.../expressions/functions/scalar/MapKeys.java | 3 +-
.../expressions/functions/scalar/MapValues.java | 3 +-
.../functions/scalar/StructElement.java | 9 +-
.../trees/expressions/functions/table/File.java | 8 +-
.../trees/expressions/functions/table/Hdfs.java | 9 +-
.../trees/expressions/functions/table/Local.java | 9 +-
.../trees/expressions/functions/table/S3.java | 9 +-
.../expressions/visitor/ScalarFunctionVisitor.java | 14 +-
.../trees/plans/logical/LogicalFileScan.java | 82 +-
.../trees/plans/logical/LogicalHudiScan.java | 22 +-
.../trees/plans/logical/LogicalOlapScan.java | 24 +-
.../trees/plans/logical/LogicalTVFRelation.java | 23 +-
.../plans/logical/SupportPruneNestedColumn.java | 24 +
.../logical/SupportPruneNestedColumnFormats.java | 42 +
.../org/apache/doris/nereids/types/ArrayType.java | 2 +-
.../org/apache/doris/nereids/types/MapType.java | 2 +-
.../doris/nereids/types/NestedColumnPrunable.java | 22 +
.../apache/doris/nereids/types/StructField.java | 3 +-
.../org/apache/doris/nereids/types/StructType.java | 10 +-
.../apache/doris/planner/MaterializationNode.java | 2 +
.../org/apache/doris/planner/OlapScanNode.java | 3 +
.../java/org/apache/doris/planner/PlanNode.java | 113 +-
.../java/org/apache/doris/qe/SessionVariable.java | 9 +
.../rules/rewrite/PruneNestedColumnTest.java | 652 ++
.../apache/doris/utframe/TestWithFeService.java | 4 +-
gensrc/proto/descriptors.proto | 45 +
gensrc/thrift/Descriptors.thrift | 48 +-
.../complex_types/test_pruned_columns.out | 31 +
regression-test/data/nereids_arith_p0/decimal.out | 7600 +++++++++----------
regression-test/data/nereids_arith_p0/integer.out | 7644 ++++++++++----------
regression-test/data/nereids_arith_p0/string.out | 4332 +++++------
.../complex_types/test_pruned_columns.groovy | 88 +
150 files changed, 23515 insertions(+), 10085 deletions(-)
create mode 100644
be/src/vec/exec/format/table/hive/hive_orc_nested_column_utils.cpp
create mode 100644
be/src/vec/exec/format/table/hive/hive_orc_nested_column_utils.h
create mode 100644
be/src/vec/exec/format/table/hive/hive_parquet_nested_column_utils.cpp
create mode 100644
be/src/vec/exec/format/table/hive/hive_parquet_nested_column_utils.h
create mode 100644
be/src/vec/exec/format/table/iceberg/iceberg_orc_nested_column_utils.cpp
create mode 100644
be/src/vec/exec/format/table/iceberg/iceberg_orc_nested_column_utils.h
create mode 100644
be/src/vec/exec/format/table/iceberg/iceberg_parquet_nested_column_utils.cpp
create mode 100644
be/src/vec/exec/format/table/iceberg/iceberg_parquet_nested_column_utils.h
create mode 100644 be/src/vec/exec/format/table/nested_column_access_helper.h
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_orc/data/00000-0-e4897963-0081-4127-bebe-35dc7dc1edeb-0-00001.orc
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_orc/data/00001-1-e4897963-0081-4127-bebe-35dc7dc1edeb-0-00001.orc
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_orc/metadata/00000-aa52c4c8-e0bd-4db6-b550-6323977446a4.metadata.json
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_orc/metadata/00001-88a66011-3129-4bfb-9b4b-c1510c566d73.metadata.json
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_orc/metadata/6a876742-85c2-4f84-ae24-292482fa9288-m0.avro
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_orc/metadata/snap-2197982135324349212-1-6a876742-85c2-4f84-ae24-292482fa9288.avro
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00000-0-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00001-1-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00002-2-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00003-3-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00004-4-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00005-5-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00006-6-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00007-7-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_parquet/metadata/00000-30938ed9-31af-46c8-9274-506c7f2709c9.metadata.json
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_parquet/metadata/00001-b1b4732d-f823-4900-8185-3eb3cb23e4a9.metadata.json
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_parquet/metadata/51fb6058-7fc2-4791-96a9-f3111933728a-m0.avro
create mode 100644
be/test/exec/test_data/complex_user_profiles_iceberg_parquet/metadata/snap-1689809712605583552-1-51fb6058-7fc2-4791-96a9-f3111933728a.avro
create mode 100644
be/test/exec/test_data/nested_user_profiles_iceberg_orc/data/00000-8-5a144c37-16a4-47c6-96db-0007175b5c90-0-00001.orc
create mode 100644
be/test/exec/test_data/nested_user_profiles_iceberg_orc/metadata/00000-daa20949-0948-4f33-bcf4-5b6bcb0cd400.metadata.json
create mode 100644
be/test/exec/test_data/nested_user_profiles_iceberg_orc/metadata/00001-5c6ddc20-6aa8-4864-9d15-546dd5a6bae4.metadata.json
create mode 100644
be/test/exec/test_data/nested_user_profiles_iceberg_orc/metadata/d9aed717-61ef-422b-b044-a16ca31f9e86-m0.avro
create mode 100644
be/test/exec/test_data/nested_user_profiles_iceberg_orc/metadata/snap-514179801967160228-1-d9aed717-61ef-422b-b044-a16ca31f9e86.avro
create mode 100644
be/test/exec/test_data/nested_user_profiles_iceberg_parquet/data/00000-9-a7e0135f-d581-40e4-8d56-a929aded99e4-0-00001.parquet
create mode 100644
be/test/exec/test_data/nested_user_profiles_iceberg_parquet/metadata/00000-ed5ae7dc-be1a-410b-ae74-7cf04ad10765.metadata.json
create mode 100644
be/test/exec/test_data/nested_user_profiles_iceberg_parquet/metadata/00001-a1156265-e89e-4c9f-a0fb-7f3075d4e8f9.metadata.json
create mode 100644
be/test/exec/test_data/nested_user_profiles_iceberg_parquet/metadata/bee22dff-a1d3-420d-bfba-c1b4193ab0df-m0.avro
create mode 100644
be/test/exec/test_data/nested_user_profiles_iceberg_parquet/metadata/snap-6622777947381868002-1-bee22dff-a1d3-420d-bfba-c1b4193ab0df.avro
copy be/{src/pch/pch.cc =>
test/exec/test_data/nested_user_profiles_orc/_SUCCESS} (100%)
create mode 100644
be/test/exec/test_data/nested_user_profiles_orc/part-00000-62614f23-05d1-4043-a533-b155ef52b720-c000.snappy.orc
copy be/{src/pch/pch.cc =>
test/exec/test_data/nested_user_profiles_parquet/_SUCCESS} (100%)
create mode 100644
be/test/exec/test_data/nested_user_profiles_parquet/part-00000-64a7a390-1a03-4efc-ab51-557e9369a1f9-c000.snappy.parquet
create mode 100644 be/test/olap/rowset/segment_v2/column_reader_test.cpp
create mode 100644
be/test/vec/exec/format/table/hive/hive_reader_create_column_ids_test.cpp
create mode 100644 be/test/vec/exec/format/table/hive/hive_reader_test.cpp
create mode 100644
be/test/vec/exec/format/table/iceberg/iceberg_reader_create_column_ids_test.cpp
create mode 100644
be/test/vec/exec/format/table/iceberg/iceberg_reader_test.cpp
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/analysis/AccessPathInfo.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/NormalizeStructElement.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/AccessPathExpressionCollector.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/AccessPathPlanCollector.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/NestedColumnPruning.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownProject.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/SlotTypeReplacer.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/PreferPushDownProject.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/SupportPruneNestedColumn.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/SupportPruneNestedColumnFormats.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/types/NestedColumnPrunable.java
create mode 100644
fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/PruneNestedColumnTest.java
create mode 100644
regression-test/data/datatype_p0/complex_types/test_pruned_columns.out
create mode 100644
regression-test/suites/datatype_p0/complex_types/test_pruned_columns.groovy
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]