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

Reply via email to