This is an automated email from the ASF dual-hosted git repository. huajianlan pushed a commit to branch nested_column_prune in repository https://gitbox.apache.org/repos/asf/doris.git
commit 18fec2af2b52496b731effa44d9ce465f4e534b7 Author: 924060929 <lanhuaj...@selectdb.com> AuthorDate: Wed Sep 24 17:04:44 2025 +0800 define the interface of nested column prune --- gensrc/thrift/Descriptors.thrift | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gensrc/thrift/Descriptors.thrift b/gensrc/thrift/Descriptors.thrift index 805060fc9cf..517f8d27095 100644 --- a/gensrc/thrift/Descriptors.thrift +++ b/gensrc/thrift/Descriptors.thrift @@ -72,10 +72,50 @@ struct TSlotDescriptor { 13: optional bool need_materialize = true 14: optional bool is_auto_increment = false; // subcolumn path info list for semi structure column(variant) + // deprecated: will be replace to column_access_paths 15: optional list<string> column_paths 16: optional string col_default_value 17: optional Types.TPrimitiveType primitive_type = Types.TPrimitiveType.INVALID_TYPE 18: optional Exprs.TExpr virtual_column_expr + 19: optional TColumnAccessPaths column_access_paths +} + +enum TAccessPathType { + NAME = 1, + // ICEBERG = 2 // implement in the future +} + +struct TColumnNameAccessPath { + // the specification of special path: + // <empty>: access the whole complex column + // *: access every items in the array + // KEYS: only access the keys of map + // VALUES: only access the keys of map + // + // example: + // s: struct< + // data: array< + // map<int, double> + // > + // > + // if we want to access the keys of the map, the path will be: ['data', '*', 'KEYS'], + // if we want to access the whole struct of s, the path will be: [] + 1: required list<string> path + 2: required bool is_predicate +} + +/* +// implement in the future +struct TIcebergColumnAccessPath { + 1: required list<i64> path + 2: required bool is_predicate +} +*/ + +struct TColumnAccessPaths { + 1: required TAccessPathType type + 2: optional list<TColumnNameAccessPath> name_access_paths + // 3: optional list<TIcebergColumnAccessPath> iceberg_column_access_paths // implement in the future } struct TTupleDescriptor { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org