@@ -25,8 +25,8 @@ class DuckDBToSubstrait {
25
25
plan.Clear ();
26
26
}
27
27
// ! Serializes the substrait plan to a string
28
- string SerializeToString ();
29
- string SerializeToJson ();
28
+ string SerializeToString () const ;
29
+ string SerializeToJson () const ;
30
30
31
31
private:
32
32
// ! Transform DuckDB Plan to Substrait Plan
@@ -60,33 +60,33 @@ class DuckDBToSubstrait {
60
60
static substrait::Rel *TransformDummyScan ();
61
61
// ! Methods to transform different LogicalGet Types (e.g., Table, Parquet)
62
62
// ! To Substrait;
63
- void TransformTableScanToSubstrait (LogicalGet &dget, substrait::ReadRel *sget);
63
+ void TransformTableScanToSubstrait (LogicalGet &dget, substrait::ReadRel *sget) const ;
64
64
void TransformParquetScanToSubstrait (LogicalGet &dget, substrait::ReadRel *sget, BindInfo &bind_info,
65
- FunctionData &bind_data);
65
+ const FunctionData &bind_data) const ;
66
66
67
67
// ! Methods to transform DuckDBConstants to Substrait Expressions
68
- static void TransformConstant (Value &dval, substrait::Expression &sexpr);
69
- static void TransformInteger (Value &dval, substrait::Expression &sexpr);
70
- static void TransformDouble (Value &dval, substrait::Expression &sexpr);
71
- static void TransformBigInt (Value &dval, substrait::Expression &sexpr);
72
- static void TransformDate (Value &dval, substrait::Expression &sexpr);
73
- static void TransformVarchar (Value &dval, substrait::Expression &sexpr);
74
- static void TransformBoolean (Value &dval, substrait::Expression &sexpr);
75
- static void TransformDecimal (Value &dval, substrait::Expression &sexpr);
76
- static void TransformHugeInt (Value &dval, substrait::Expression &sexpr);
77
- static void TransformSmallInt (Value &dval, substrait::Expression &sexpr);
78
- static void TransformFloat (Value &dval, substrait::Expression &sexpr);
79
- static void TransformTime (Value &dval, substrait::Expression &sexpr);
80
- static void TransformInterval (Value &dval, substrait::Expression &sexpr);
81
- static void TransformTimestamp (Value &dval, substrait::Expression &sexpr);
82
- static void TransformEnum (Value &dval, substrait::Expression &sexpr);
68
+ static void TransformConstant (const Value &dval, substrait::Expression &sexpr);
69
+ static void TransformInteger (const Value &dval, substrait::Expression &sexpr);
70
+ static void TransformDouble (const Value &dval, substrait::Expression &sexpr);
71
+ static void TransformBigInt (const Value &dval, substrait::Expression &sexpr);
72
+ static void TransformDate (const Value &dval, substrait::Expression &sexpr);
73
+ static void TransformVarchar (const Value &dval, substrait::Expression &sexpr);
74
+ static void TransformBoolean (const Value &dval, substrait::Expression &sexpr);
75
+ static void TransformDecimal (const Value &dval, substrait::Expression &sexpr);
76
+ static void TransformHugeInt (const Value &dval, substrait::Expression &sexpr);
77
+ static void TransformSmallInt (const Value &dval, substrait::Expression &sexpr);
78
+ static void TransformFloat (const Value &dval, substrait::Expression &sexpr);
79
+ static void TransformTime (const Value &dval, substrait::Expression &sexpr);
80
+ static void TransformInterval (const Value &dval, substrait::Expression &sexpr);
81
+ static void TransformTimestamp (const Value &dval, substrait::Expression &sexpr);
82
+ static void TransformEnum (const Value &dval, substrait::Expression &sexpr);
83
83
84
84
// ! Methods to transform a DuckDB Expression to a Substrait Expression
85
85
void TransformExpr (Expression &dexpr, substrait::Expression &sexpr, uint64_t col_offset = 0 );
86
86
static void TransformBoundRefExpression (Expression &dexpr, substrait::Expression &sexpr, uint64_t col_offset);
87
87
void TransformCastExpression (Expression &dexpr, substrait::Expression &sexpr, uint64_t col_offset);
88
88
void TransformFunctionExpression (Expression &dexpr, substrait::Expression &sexpr, uint64_t col_offset);
89
- void TransformConstantExpression (Expression &dexpr, substrait::Expression &sexpr);
89
+ static void TransformConstantExpression (Expression &dexpr, substrait::Expression &sexpr);
90
90
void TransformComparisonExpression (Expression &dexpr, substrait::Expression &sexpr);
91
91
void TransformConjunctionExpression (Expression &dexpr, substrait::Expression &sexpr, uint64_t col_offset);
92
92
void TransformNotNullExpression (Expression &dexpr, substrait::Expression &sexpr, uint64_t col_offset);
@@ -96,23 +96,23 @@ class DuckDBToSubstrait {
96
96
void TransformInExpression (Expression &dexpr, substrait::Expression &sexpr);
97
97
98
98
// ! Transforms a DuckDB Logical Type into a Substrait Type
99
- :: substrait::Type DuckToSubstraitType (const LogicalType &type, BaseStatistics *column_statistics = nullptr ,
100
- bool not_null = false );
99
+ static substrait::Type DuckToSubstraitType (const LogicalType &type, BaseStatistics *column_statistics = nullptr ,
100
+ bool not_null = false );
101
101
102
102
// ! Methods to transform DuckDB Filters to Substrait Expression
103
103
substrait::Expression *TransformFilter (uint64_t col_idx, LogicalType &column_type, TableFilter &dfilter,
104
104
LogicalType &return_type);
105
- substrait::Expression *TransformIsNotNullFilter (uint64_t col_idx, LogicalType &column_type, TableFilter &dfilter ,
106
- LogicalType &return_type);
105
+ substrait::Expression *TransformIsNotNullFilter (uint64_t col_idx, const LogicalType &column_type,
106
+ TableFilter &dfilter, const LogicalType &return_type);
107
107
substrait::Expression *TransformConjuctionAndFilter (uint64_t col_idx, LogicalType &column_type,
108
108
TableFilter &dfilter, LogicalType &return_type);
109
- substrait::Expression *TransformConstantComparisonFilter (uint64_t col_idx, LogicalType &column_type,
110
- TableFilter &dfilter, LogicalType &return_type);
109
+ substrait::Expression *TransformConstantComparisonFilter (uint64_t col_idx, const LogicalType &column_type,
110
+ TableFilter &dfilter, const LogicalType &return_type);
111
111
112
112
// ! Transforms DuckDB Join Conditions to Substrait Expression
113
- substrait::Expression *TransformJoinCond (JoinCondition &dcond, uint64_t left_ncol);
113
+ substrait::Expression *TransformJoinCond (const JoinCondition &dcond, uint64_t left_ncol);
114
114
// ! Transforms DuckDB Sort Order to Substrait Sort Order
115
- void TransformOrder (BoundOrderByNode &dordf, substrait::SortField &sordf);
115
+ void TransformOrder (const BoundOrderByNode &dordf, substrait::SortField &sordf);
116
116
117
117
static void AllocateFunctionArgument (substrait::Expression_ScalarFunction *scalar_fun,
118
118
substrait::Expression *value);
@@ -121,7 +121,7 @@ class DuckDBToSubstrait {
121
121
122
122
// ! Creates a Conjunction
123
123
template <typename T, typename FUNC>
124
- substrait::Expression *CreateConjunction (T &source, FUNC f) {
124
+ substrait::Expression *CreateConjunction (T &source, const FUNC f) {
125
125
substrait::Expression *res = nullptr ;
126
126
for (auto &ele : source) {
127
127
auto child_expression = f (ele);
0 commit comments