duckdb 0.8.2-dev2090.0 → 0.8.2-dev2133.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.gyp +3 -0
- package/package.json +1 -1
- package/src/duckdb/extension/json/buffered_json_reader.cpp +2 -0
- package/src/duckdb/extension/json/include/buffered_json_reader.hpp +5 -19
- package/src/duckdb/extension/json/include/json_enums.hpp +60 -0
- package/src/duckdb/extension/json/include/json_scan.hpp +14 -10
- package/src/duckdb/extension/json/include/json_transform.hpp +3 -0
- package/src/duckdb/extension/json/json_enums.cpp +105 -0
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +2 -0
- package/src/duckdb/extension/json/json_scan.cpp +44 -0
- package/src/duckdb/extension/json/serialize_json.cpp +92 -0
- package/src/duckdb/extension/parquet/include/parquet_reader.hpp +3 -0
- package/src/duckdb/extension/parquet/parquet_extension.cpp +23 -0
- package/src/duckdb/extension/parquet/parquet_reader.cpp +3 -0
- package/src/duckdb/extension/parquet/serialize_parquet.cpp +26 -0
- package/src/duckdb/src/common/local_file_system.cpp +17 -14
- package/src/duckdb/src/common/serializer/format_serializer.cpp +15 -0
- package/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +26 -0
- package/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +47 -0
- package/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +28 -0
- package/src/duckdb/src/core_functions/scalar/date/strftime.cpp +10 -0
- package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +22 -3
- package/src/duckdb/src/function/aggregate/distributive/count.cpp +0 -11
- package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +1 -9
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +27 -0
- package/src/duckdb/src/function/scalar_function.cpp +2 -1
- package/src/duckdb/src/function/table/read_csv.cpp +18 -0
- package/src/duckdb/src/function/table/table_scan.cpp +35 -0
- package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
- package/src/duckdb/src/function/table_function.cpp +4 -3
- package/src/duckdb/src/include/duckdb/common/multi_file_reader.hpp +5 -1
- package/src/duckdb/src/include/duckdb/common/multi_file_reader_options.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/serializer/format_deserializer.hpp +32 -0
- package/src/duckdb/src/include/duckdb/common/serializer/format_serializer.hpp +45 -15
- package/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp +10 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_reader_options.hpp +2 -0
- package/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +11 -2
- package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +81 -0
- package/src/duckdb/src/include/duckdb/function/scalar/strftime_format.hpp +8 -0
- package/src/duckdb/src/include/duckdb/function/scalar_function.hpp +8 -0
- package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +7 -0
- package/src/duckdb/src/include/duckdb/function/table_function.hpp +8 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_aggregate_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_function_expression.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/expression/bound_window_expression.hpp +3 -0
- package/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/filter/constant_filter.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/filter/null_filter.hpp +4 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_to_file.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +7 -1
- package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +7 -1
- package/src/duckdb/src/main/extension/extension_helper.cpp +13 -0
- package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +23 -0
- package/src/duckdb/src/planner/expression/bound_function_expression.cpp +22 -0
- package/src/duckdb/src/planner/expression/bound_window_expression.cpp +47 -0
- package/src/duckdb/src/planner/operator/logical_copy_to_file.cpp +8 -0
- package/src/duckdb/src/planner/operator/logical_get.cpp +69 -0
- package/src/duckdb/src/storage/serialization/serialize_expression.cpp +9 -0
- package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +6 -0
- package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +190 -0
- package/src/duckdb/src/storage/serialization/serialize_table_filter.cpp +97 -0
- package/src/duckdb/ub_src_common_serializer.cpp +2 -0
- package/src/duckdb/ub_src_storage_serialization.cpp +2 -0
@@ -162,4 +162,51 @@ unique_ptr<Expression> BoundWindowExpression::Deserialize(ExpressionDeserializat
|
|
162
162
|
return std::move(result);
|
163
163
|
}
|
164
164
|
|
165
|
+
void BoundWindowExpression::FormatSerialize(FormatSerializer &serializer) const {
|
166
|
+
Expression::FormatSerialize(serializer);
|
167
|
+
serializer.WriteProperty("return_type", return_type);
|
168
|
+
serializer.WriteProperty("children", children);
|
169
|
+
if (type == ExpressionType::WINDOW_AGGREGATE) {
|
170
|
+
D_ASSERT(aggregate);
|
171
|
+
FunctionSerializer::FormatSerialize(serializer, *aggregate, bind_info.get());
|
172
|
+
}
|
173
|
+
serializer.WriteProperty("partitions", partitions);
|
174
|
+
serializer.WriteProperty("orders", orders);
|
175
|
+
serializer.WriteOptionalProperty("filters", filter_expr);
|
176
|
+
serializer.WriteProperty("ignore_nulls", ignore_nulls);
|
177
|
+
serializer.WriteProperty("start", start);
|
178
|
+
serializer.WriteProperty("end", end);
|
179
|
+
serializer.WriteOptionalProperty("start_expr", start_expr);
|
180
|
+
serializer.WriteOptionalProperty("end_expr", end_expr);
|
181
|
+
serializer.WriteOptionalProperty("offset_expr", offset_expr);
|
182
|
+
serializer.WriteOptionalProperty("default_expr", default_expr);
|
183
|
+
}
|
184
|
+
|
185
|
+
unique_ptr<Expression> BoundWindowExpression::FormatDeserialize(FormatDeserializer &deserializer) {
|
186
|
+
auto expression_type = deserializer.Get<ExpressionType>();
|
187
|
+
auto return_type = deserializer.ReadProperty<LogicalType>("return_type");
|
188
|
+
auto children = deserializer.ReadProperty<vector<unique_ptr<Expression>>>("children");
|
189
|
+
unique_ptr<AggregateFunction> aggregate;
|
190
|
+
unique_ptr<FunctionData> bind_info;
|
191
|
+
if (expression_type == ExpressionType::WINDOW_AGGREGATE) {
|
192
|
+
auto entry = FunctionSerializer::FormatDeserialize<AggregateFunction, AggregateFunctionCatalogEntry>(
|
193
|
+
deserializer, CatalogType::AGGREGATE_FUNCTION_ENTRY, children);
|
194
|
+
aggregate = make_uniq<AggregateFunction>(std::move(entry.first));
|
195
|
+
bind_info = std::move(entry.second);
|
196
|
+
}
|
197
|
+
auto result =
|
198
|
+
make_uniq<BoundWindowExpression>(expression_type, return_type, std::move(aggregate), std::move(bind_info));
|
199
|
+
deserializer.ReadProperty("partitions", result->partitions);
|
200
|
+
deserializer.ReadProperty("orders", result->orders);
|
201
|
+
deserializer.ReadOptionalProperty("filters", result->filter_expr);
|
202
|
+
deserializer.ReadProperty("ignore_nulls", result->ignore_nulls);
|
203
|
+
deserializer.ReadProperty("start", result->start);
|
204
|
+
deserializer.ReadProperty("end", result->end);
|
205
|
+
deserializer.ReadOptionalProperty("start_expr", result->start_expr);
|
206
|
+
deserializer.ReadOptionalProperty("end_expr", result->end_expr);
|
207
|
+
deserializer.ReadOptionalProperty("offset_expr", result->offset_expr);
|
208
|
+
deserializer.ReadOptionalProperty("default_expr", result->default_expr);
|
209
|
+
return std::move(result);
|
210
|
+
}
|
211
|
+
|
165
212
|
} // namespace duckdb
|
@@ -59,6 +59,14 @@ unique_ptr<LogicalOperator> LogicalCopyToFile::Deserialize(LogicalDeserializatio
|
|
59
59
|
return std::move(result);
|
60
60
|
}
|
61
61
|
|
62
|
+
void LogicalCopyToFile::FormatSerialize(FormatSerializer &serializer) const {
|
63
|
+
throw SerializationException("LogicalCopyToFile not implemented yet");
|
64
|
+
}
|
65
|
+
|
66
|
+
unique_ptr<LogicalOperator> LogicalCopyToFile::FormatDeserialize(FormatDeserializer &deserializer) {
|
67
|
+
throw SerializationException("LogicalCopyToFile not implemented yet");
|
68
|
+
}
|
69
|
+
|
62
70
|
idx_t LogicalCopyToFile::EstimateCardinality(ClientContext &context) {
|
63
71
|
return 1;
|
64
72
|
}
|
@@ -8,9 +8,14 @@
|
|
8
8
|
#include "duckdb/function/table/table_scan.hpp"
|
9
9
|
#include "duckdb/main/config.hpp"
|
10
10
|
#include "duckdb/storage/data_table.hpp"
|
11
|
+
#include "duckdb/common/serializer/format_serializer.hpp"
|
12
|
+
#include "duckdb/common/serializer/format_deserializer.hpp"
|
11
13
|
|
12
14
|
namespace duckdb {
|
13
15
|
|
16
|
+
LogicalGet::LogicalGet() : LogicalOperator(LogicalOperatorType::LOGICAL_GET) {
|
17
|
+
}
|
18
|
+
|
14
19
|
LogicalGet::LogicalGet(idx_t table_index, TableFunction function, unique_ptr<FunctionData> bind_data,
|
15
20
|
vector<LogicalType> returned_types, vector<string> returned_names)
|
16
21
|
: LogicalOperator(LogicalOperatorType::LOGICAL_GET), table_index(table_index), function(std::move(function)),
|
@@ -199,6 +204,70 @@ unique_ptr<LogicalOperator> LogicalGet::Deserialize(LogicalDeserializationState
|
|
199
204
|
return std::move(result);
|
200
205
|
}
|
201
206
|
|
207
|
+
void LogicalGet::FormatSerialize(FormatSerializer &serializer) const {
|
208
|
+
LogicalOperator::FormatSerialize(serializer);
|
209
|
+
serializer.WriteProperty("table_index", table_index);
|
210
|
+
serializer.WriteProperty("returned_types", returned_types);
|
211
|
+
serializer.WriteProperty("names", names);
|
212
|
+
serializer.WriteProperty("column_ids", column_ids);
|
213
|
+
serializer.WriteProperty("projection_ids", projection_ids);
|
214
|
+
serializer.WriteProperty("table_filters", table_filters);
|
215
|
+
FunctionSerializer::FormatSerialize(serializer, function, bind_data.get());
|
216
|
+
if (!function.format_serialize) {
|
217
|
+
D_ASSERT(!function.format_deserialize);
|
218
|
+
// no serialize method: serialize input values and named_parameters for rebinding purposes
|
219
|
+
serializer.WriteProperty("parameters", parameters);
|
220
|
+
serializer.WriteProperty("named_parameters", named_parameters);
|
221
|
+
serializer.WriteProperty("input_table_types", input_table_types);
|
222
|
+
serializer.WriteProperty("input_table_names", input_table_names);
|
223
|
+
}
|
224
|
+
serializer.WriteProperty("projected_input", projected_input);
|
225
|
+
}
|
226
|
+
|
227
|
+
unique_ptr<LogicalOperator> LogicalGet::FormatDeserialize(FormatDeserializer &deserializer) {
|
228
|
+
auto result = unique_ptr<LogicalGet>(new LogicalGet());
|
229
|
+
deserializer.ReadProperty("table_index", result->table_index);
|
230
|
+
deserializer.ReadProperty("returned_types", result->returned_types);
|
231
|
+
deserializer.ReadProperty("names", result->names);
|
232
|
+
deserializer.ReadProperty("column_ids", result->column_ids);
|
233
|
+
deserializer.ReadProperty("projection_ids", result->projection_ids);
|
234
|
+
deserializer.ReadProperty("table_filters", result->table_filters);
|
235
|
+
auto entry = FunctionSerializer::FormatDeserializeBase<TableFunction, TableFunctionCatalogEntry>(
|
236
|
+
deserializer, CatalogType::TABLE_FUNCTION_ENTRY);
|
237
|
+
auto &function = entry.first;
|
238
|
+
auto has_serialize = entry.second;
|
239
|
+
|
240
|
+
unique_ptr<FunctionData> bind_data;
|
241
|
+
if (!has_serialize) {
|
242
|
+
deserializer.ReadProperty("parameters", result->parameters);
|
243
|
+
deserializer.ReadProperty("named_parameters", result->named_parameters);
|
244
|
+
deserializer.ReadProperty("input_table_types", result->input_table_types);
|
245
|
+
deserializer.ReadProperty("input_table_names", result->input_table_names);
|
246
|
+
TableFunctionBindInput input(result->parameters, result->named_parameters, result->input_table_types,
|
247
|
+
result->input_table_names, function.function_info.get());
|
248
|
+
|
249
|
+
vector<LogicalType> bind_return_types;
|
250
|
+
vector<string> bind_names;
|
251
|
+
if (!function.bind) {
|
252
|
+
throw InternalException("Table function \"%s\" has neither bind nor (de)serialize", function.name);
|
253
|
+
}
|
254
|
+
bind_data = function.bind(deserializer.Get<ClientContext &>(), input, bind_return_types, bind_names);
|
255
|
+
if (result->returned_types != bind_return_types) {
|
256
|
+
throw SerializationException(
|
257
|
+
"Table function deserialization failure - bind returned different return types than were serialized");
|
258
|
+
}
|
259
|
+
// names can actually be different because of aliases - only the sizes cannot be different
|
260
|
+
if (result->names.size() != bind_names.size()) {
|
261
|
+
throw SerializationException(
|
262
|
+
"Table function deserialization failure - bind returned different returned names than were serialized");
|
263
|
+
}
|
264
|
+
} else {
|
265
|
+
bind_data = FunctionSerializer::FunctionDeserialize(deserializer, function);
|
266
|
+
}
|
267
|
+
deserializer.ReadProperty("projected_input", result->projected_input);
|
268
|
+
return std::move(result);
|
269
|
+
}
|
270
|
+
|
202
271
|
vector<idx_t> LogicalGet::GetTableIndex() const {
|
203
272
|
return vector<idx_t> {table_index};
|
204
273
|
}
|
@@ -22,6 +22,9 @@ unique_ptr<Expression> Expression::FormatDeserialize(FormatDeserializer &deseria
|
|
22
22
|
deserializer.Set<ExpressionType>(type);
|
23
23
|
unique_ptr<Expression> result;
|
24
24
|
switch (expression_class) {
|
25
|
+
case ExpressionClass::BOUND_AGGREGATE:
|
26
|
+
result = BoundAggregateExpression::FormatDeserialize(deserializer);
|
27
|
+
break;
|
25
28
|
case ExpressionClass::BOUND_BETWEEN:
|
26
29
|
result = BoundBetweenExpression::FormatDeserialize(deserializer);
|
27
30
|
break;
|
@@ -46,6 +49,9 @@ unique_ptr<Expression> Expression::FormatDeserialize(FormatDeserializer &deseria
|
|
46
49
|
case ExpressionClass::BOUND_DEFAULT:
|
47
50
|
result = BoundDefaultExpression::FormatDeserialize(deserializer);
|
48
51
|
break;
|
52
|
+
case ExpressionClass::BOUND_FUNCTION:
|
53
|
+
result = BoundFunctionExpression::FormatDeserialize(deserializer);
|
54
|
+
break;
|
49
55
|
case ExpressionClass::BOUND_LAMBDA:
|
50
56
|
result = BoundLambdaExpression::FormatDeserialize(deserializer);
|
51
57
|
break;
|
@@ -64,6 +70,9 @@ unique_ptr<Expression> Expression::FormatDeserialize(FormatDeserializer &deseria
|
|
64
70
|
case ExpressionClass::BOUND_UNNEST:
|
65
71
|
result = BoundUnnestExpression::FormatDeserialize(deserializer);
|
66
72
|
break;
|
73
|
+
case ExpressionClass::BOUND_WINDOW:
|
74
|
+
result = BoundWindowExpression::FormatDeserialize(deserializer);
|
75
|
+
break;
|
67
76
|
default:
|
68
77
|
throw SerializationException("Unsupported type for deserialization of Expression!");
|
69
78
|
}
|
@@ -40,6 +40,9 @@ unique_ptr<LogicalOperator> LogicalOperator::FormatDeserialize(FormatDeserialize
|
|
40
40
|
case LogicalOperatorType::LOGICAL_COMPARISON_JOIN:
|
41
41
|
result = LogicalComparisonJoin::FormatDeserialize(deserializer);
|
42
42
|
break;
|
43
|
+
case LogicalOperatorType::LOGICAL_COPY_TO_FILE:
|
44
|
+
result = LogicalCopyToFile::FormatDeserialize(deserializer);
|
45
|
+
break;
|
43
46
|
case LogicalOperatorType::LOGICAL_CREATE_MACRO:
|
44
47
|
result = LogicalCreate::FormatDeserialize(deserializer);
|
45
48
|
break;
|
@@ -97,6 +100,9 @@ unique_ptr<LogicalOperator> LogicalOperator::FormatDeserialize(FormatDeserialize
|
|
97
100
|
case LogicalOperatorType::LOGICAL_FILTER:
|
98
101
|
result = LogicalFilter::FormatDeserialize(deserializer);
|
99
102
|
break;
|
103
|
+
case LogicalOperatorType::LOGICAL_GET:
|
104
|
+
result = LogicalGet::FormatDeserialize(deserializer);
|
105
|
+
break;
|
100
106
|
case LogicalOperatorType::LOGICAL_INSERT:
|
101
107
|
result = LogicalInsert::FormatDeserialize(deserializer);
|
102
108
|
break;
|
@@ -22,6 +22,12 @@
|
|
22
22
|
#include "duckdb/planner/expression/bound_parameter_data.hpp"
|
23
23
|
#include "duckdb/planner/joinside.hpp"
|
24
24
|
#include "duckdb/parser/parsed_data/vacuum_info.hpp"
|
25
|
+
#include "duckdb/planner/table_filter.hpp"
|
26
|
+
#include "duckdb/common/multi_file_reader_options.hpp"
|
27
|
+
#include "duckdb/common/multi_file_reader.hpp"
|
28
|
+
#include "duckdb/execution/operator/persistent/csv_reader_options.hpp"
|
29
|
+
#include "duckdb/function/scalar/strftime_format.hpp"
|
30
|
+
#include "duckdb/function/table/read_csv.hpp"
|
25
31
|
|
26
32
|
namespace duckdb {
|
27
33
|
|
@@ -79,6 +85,86 @@ BoundPivotInfo BoundPivotInfo::FormatDeserialize(FormatDeserializer &deserialize
|
|
79
85
|
return result;
|
80
86
|
}
|
81
87
|
|
88
|
+
void BufferedCSVReaderOptions::FormatSerialize(FormatSerializer &serializer) const {
|
89
|
+
serializer.WriteProperty("has_delimiter", has_delimiter);
|
90
|
+
serializer.WriteProperty("delimiter", delimiter);
|
91
|
+
serializer.WriteProperty("has_quote", has_quote);
|
92
|
+
serializer.WriteProperty("quote", quote);
|
93
|
+
serializer.WriteProperty("has_escape", has_escape);
|
94
|
+
serializer.WriteProperty("escape", escape);
|
95
|
+
serializer.WriteProperty("has_header", has_header);
|
96
|
+
serializer.WriteProperty("header", header);
|
97
|
+
serializer.WriteProperty("ignore_errors", ignore_errors);
|
98
|
+
serializer.WriteProperty("num_cols", num_cols);
|
99
|
+
serializer.WriteProperty("buffer_sample_size", buffer_sample_size);
|
100
|
+
serializer.WriteProperty("null_str", null_str);
|
101
|
+
serializer.WriteProperty("compression", compression);
|
102
|
+
serializer.WriteProperty("new_line", new_line);
|
103
|
+
serializer.WriteProperty("allow_quoted_nulls", allow_quoted_nulls);
|
104
|
+
serializer.WriteProperty("skip_rows", skip_rows);
|
105
|
+
serializer.WriteProperty("skip_rows_set", skip_rows_set);
|
106
|
+
serializer.WriteProperty("maximum_line_size", maximum_line_size);
|
107
|
+
serializer.WriteProperty("normalize_names", normalize_names);
|
108
|
+
serializer.WriteProperty("force_not_null", force_not_null);
|
109
|
+
serializer.WriteProperty("all_varchar", all_varchar);
|
110
|
+
serializer.WriteProperty("sample_chunk_size", sample_chunk_size);
|
111
|
+
serializer.WriteProperty("sample_chunks", sample_chunks);
|
112
|
+
serializer.WriteProperty("auto_detect", auto_detect);
|
113
|
+
serializer.WriteProperty("file_path", file_path);
|
114
|
+
serializer.WriteProperty("decimal_separator", decimal_separator);
|
115
|
+
serializer.WriteProperty("null_padding", null_padding);
|
116
|
+
serializer.WriteProperty("buffer_size", buffer_size);
|
117
|
+
serializer.WriteProperty("file_options", file_options);
|
118
|
+
serializer.WriteProperty("force_quote", force_quote);
|
119
|
+
serializer.WriteProperty("date_format", date_format);
|
120
|
+
serializer.WriteProperty("has_format", has_format);
|
121
|
+
serializer.WriteProperty("rejects_table_name", rejects_table_name);
|
122
|
+
serializer.WriteProperty("rejects_limit", rejects_limit);
|
123
|
+
serializer.WriteProperty("rejects_recovery_columns", rejects_recovery_columns);
|
124
|
+
serializer.WriteProperty("rejects_recovery_column_ids", rejects_recovery_column_ids);
|
125
|
+
}
|
126
|
+
|
127
|
+
BufferedCSVReaderOptions BufferedCSVReaderOptions::FormatDeserialize(FormatDeserializer &deserializer) {
|
128
|
+
BufferedCSVReaderOptions result;
|
129
|
+
deserializer.ReadProperty("has_delimiter", result.has_delimiter);
|
130
|
+
deserializer.ReadProperty("delimiter", result.delimiter);
|
131
|
+
deserializer.ReadProperty("has_quote", result.has_quote);
|
132
|
+
deserializer.ReadProperty("quote", result.quote);
|
133
|
+
deserializer.ReadProperty("has_escape", result.has_escape);
|
134
|
+
deserializer.ReadProperty("escape", result.escape);
|
135
|
+
deserializer.ReadProperty("has_header", result.has_header);
|
136
|
+
deserializer.ReadProperty("header", result.header);
|
137
|
+
deserializer.ReadProperty("ignore_errors", result.ignore_errors);
|
138
|
+
deserializer.ReadProperty("num_cols", result.num_cols);
|
139
|
+
deserializer.ReadProperty("buffer_sample_size", result.buffer_sample_size);
|
140
|
+
deserializer.ReadProperty("null_str", result.null_str);
|
141
|
+
deserializer.ReadProperty("compression", result.compression);
|
142
|
+
deserializer.ReadProperty("new_line", result.new_line);
|
143
|
+
deserializer.ReadProperty("allow_quoted_nulls", result.allow_quoted_nulls);
|
144
|
+
deserializer.ReadProperty("skip_rows", result.skip_rows);
|
145
|
+
deserializer.ReadProperty("skip_rows_set", result.skip_rows_set);
|
146
|
+
deserializer.ReadProperty("maximum_line_size", result.maximum_line_size);
|
147
|
+
deserializer.ReadProperty("normalize_names", result.normalize_names);
|
148
|
+
deserializer.ReadProperty("force_not_null", result.force_not_null);
|
149
|
+
deserializer.ReadProperty("all_varchar", result.all_varchar);
|
150
|
+
deserializer.ReadProperty("sample_chunk_size", result.sample_chunk_size);
|
151
|
+
deserializer.ReadProperty("sample_chunks", result.sample_chunks);
|
152
|
+
deserializer.ReadProperty("auto_detect", result.auto_detect);
|
153
|
+
deserializer.ReadProperty("file_path", result.file_path);
|
154
|
+
deserializer.ReadProperty("decimal_separator", result.decimal_separator);
|
155
|
+
deserializer.ReadProperty("null_padding", result.null_padding);
|
156
|
+
deserializer.ReadProperty("buffer_size", result.buffer_size);
|
157
|
+
deserializer.ReadProperty("file_options", result.file_options);
|
158
|
+
deserializer.ReadProperty("force_quote", result.force_quote);
|
159
|
+
deserializer.ReadProperty("date_format", result.date_format);
|
160
|
+
deserializer.ReadProperty("has_format", result.has_format);
|
161
|
+
deserializer.ReadProperty("rejects_table_name", result.rejects_table_name);
|
162
|
+
deserializer.ReadProperty("rejects_limit", result.rejects_limit);
|
163
|
+
deserializer.ReadProperty("rejects_recovery_columns", result.rejects_recovery_columns);
|
164
|
+
deserializer.ReadProperty("rejects_recovery_column_ids", result.rejects_recovery_column_ids);
|
165
|
+
return result;
|
166
|
+
}
|
167
|
+
|
82
168
|
void CaseCheck::FormatSerialize(FormatSerializer &serializer) const {
|
83
169
|
serializer.WriteProperty("when_expr", *when_expr);
|
84
170
|
serializer.WriteProperty("then_expr", *then_expr);
|
@@ -121,6 +207,18 @@ ColumnDefinition ColumnDefinition::FormatDeserialize(FormatDeserializer &deseria
|
|
121
207
|
return result;
|
122
208
|
}
|
123
209
|
|
210
|
+
void ColumnInfo::FormatSerialize(FormatSerializer &serializer) const {
|
211
|
+
serializer.WriteProperty("names", names);
|
212
|
+
serializer.WriteProperty("types", types);
|
213
|
+
}
|
214
|
+
|
215
|
+
ColumnInfo ColumnInfo::FormatDeserialize(FormatDeserializer &deserializer) {
|
216
|
+
ColumnInfo result;
|
217
|
+
deserializer.ReadProperty("names", result.names);
|
218
|
+
deserializer.ReadProperty("types", result.types);
|
219
|
+
return result;
|
220
|
+
}
|
221
|
+
|
124
222
|
void ColumnList::FormatSerialize(FormatSerializer &serializer) const {
|
125
223
|
serializer.WriteProperty("columns", columns);
|
126
224
|
}
|
@@ -155,6 +253,18 @@ CommonTableExpressionMap CommonTableExpressionMap::FormatDeserialize(FormatDeser
|
|
155
253
|
return result;
|
156
254
|
}
|
157
255
|
|
256
|
+
void HivePartitioningIndex::FormatSerialize(FormatSerializer &serializer) const {
|
257
|
+
serializer.WriteProperty("value", value);
|
258
|
+
serializer.WriteProperty("index", index);
|
259
|
+
}
|
260
|
+
|
261
|
+
HivePartitioningIndex HivePartitioningIndex::FormatDeserialize(FormatDeserializer &deserializer) {
|
262
|
+
auto value = deserializer.ReadProperty<string>("value");
|
263
|
+
auto index = deserializer.ReadProperty<idx_t>("index");
|
264
|
+
HivePartitioningIndex result(std::move(value), index);
|
265
|
+
return result;
|
266
|
+
}
|
267
|
+
|
158
268
|
void JoinCondition::FormatSerialize(FormatSerializer &serializer) const {
|
159
269
|
serializer.WriteProperty("left", *left);
|
160
270
|
serializer.WriteProperty("right", *right);
|
@@ -181,6 +291,38 @@ LogicalType LogicalType::FormatDeserialize(FormatDeserializer &deserializer) {
|
|
181
291
|
return result;
|
182
292
|
}
|
183
293
|
|
294
|
+
void MultiFileReaderBindData::FormatSerialize(FormatSerializer &serializer) const {
|
295
|
+
serializer.WriteProperty("filename_idx", filename_idx);
|
296
|
+
serializer.WriteProperty("hive_partitioning_indexes", hive_partitioning_indexes);
|
297
|
+
}
|
298
|
+
|
299
|
+
MultiFileReaderBindData MultiFileReaderBindData::FormatDeserialize(FormatDeserializer &deserializer) {
|
300
|
+
MultiFileReaderBindData result;
|
301
|
+
deserializer.ReadProperty("filename_idx", result.filename_idx);
|
302
|
+
deserializer.ReadProperty("hive_partitioning_indexes", result.hive_partitioning_indexes);
|
303
|
+
return result;
|
304
|
+
}
|
305
|
+
|
306
|
+
void MultiFileReaderOptions::FormatSerialize(FormatSerializer &serializer) const {
|
307
|
+
serializer.WriteProperty("filename", filename);
|
308
|
+
serializer.WriteProperty("hive_partitioning", hive_partitioning);
|
309
|
+
serializer.WriteProperty("auto_detect_hive_partitioning", auto_detect_hive_partitioning);
|
310
|
+
serializer.WriteProperty("union_by_name", union_by_name);
|
311
|
+
serializer.WriteProperty("hive_types_autocast", hive_types_autocast);
|
312
|
+
serializer.WriteProperty("hive_types_schema", hive_types_schema);
|
313
|
+
}
|
314
|
+
|
315
|
+
MultiFileReaderOptions MultiFileReaderOptions::FormatDeserialize(FormatDeserializer &deserializer) {
|
316
|
+
MultiFileReaderOptions result;
|
317
|
+
deserializer.ReadProperty("filename", result.filename);
|
318
|
+
deserializer.ReadProperty("hive_partitioning", result.hive_partitioning);
|
319
|
+
deserializer.ReadProperty("auto_detect_hive_partitioning", result.auto_detect_hive_partitioning);
|
320
|
+
deserializer.ReadProperty("union_by_name", result.union_by_name);
|
321
|
+
deserializer.ReadProperty("hive_types_autocast", result.hive_types_autocast);
|
322
|
+
deserializer.ReadProperty("hive_types_schema", result.hive_types_schema);
|
323
|
+
return result;
|
324
|
+
}
|
325
|
+
|
184
326
|
void OrderByNode::FormatSerialize(FormatSerializer &serializer) const {
|
185
327
|
serializer.WriteProperty("type", type);
|
186
328
|
serializer.WriteProperty("null_order", null_order);
|
@@ -211,6 +353,34 @@ PivotColumn PivotColumn::FormatDeserialize(FormatDeserializer &deserializer) {
|
|
211
353
|
return result;
|
212
354
|
}
|
213
355
|
|
356
|
+
void ReadCSVData::FormatSerialize(FormatSerializer &serializer) const {
|
357
|
+
serializer.WriteProperty("files", files);
|
358
|
+
serializer.WriteProperty("csv_types", csv_types);
|
359
|
+
serializer.WriteProperty("csv_names", csv_names);
|
360
|
+
serializer.WriteProperty("return_types", return_types);
|
361
|
+
serializer.WriteProperty("return_names", return_names);
|
362
|
+
serializer.WriteProperty("filename_col_idx", filename_col_idx);
|
363
|
+
serializer.WriteProperty("options", options);
|
364
|
+
serializer.WriteProperty("single_threaded", single_threaded);
|
365
|
+
serializer.WriteProperty("reader_bind", reader_bind);
|
366
|
+
serializer.WriteProperty("column_info", column_info);
|
367
|
+
}
|
368
|
+
|
369
|
+
unique_ptr<ReadCSVData> ReadCSVData::FormatDeserialize(FormatDeserializer &deserializer) {
|
370
|
+
auto result = duckdb::unique_ptr<ReadCSVData>(new ReadCSVData());
|
371
|
+
deserializer.ReadProperty("files", result->files);
|
372
|
+
deserializer.ReadProperty("csv_types", result->csv_types);
|
373
|
+
deserializer.ReadProperty("csv_names", result->csv_names);
|
374
|
+
deserializer.ReadProperty("return_types", result->return_types);
|
375
|
+
deserializer.ReadProperty("return_names", result->return_names);
|
376
|
+
deserializer.ReadProperty("filename_col_idx", result->filename_col_idx);
|
377
|
+
deserializer.ReadProperty("options", result->options);
|
378
|
+
deserializer.ReadProperty("single_threaded", result->single_threaded);
|
379
|
+
deserializer.ReadProperty("reader_bind", result->reader_bind);
|
380
|
+
deserializer.ReadProperty("column_info", result->column_info);
|
381
|
+
return result;
|
382
|
+
}
|
383
|
+
|
214
384
|
void SampleOptions::FormatSerialize(FormatSerializer &serializer) const {
|
215
385
|
serializer.WriteProperty("sample_size", sample_size);
|
216
386
|
serializer.WriteProperty("is_percentage", is_percentage);
|
@@ -227,6 +397,26 @@ unique_ptr<SampleOptions> SampleOptions::FormatDeserialize(FormatDeserializer &d
|
|
227
397
|
return result;
|
228
398
|
}
|
229
399
|
|
400
|
+
void StrpTimeFormat::FormatSerialize(FormatSerializer &serializer) const {
|
401
|
+
serializer.WriteProperty("format_specifier", format_specifier);
|
402
|
+
}
|
403
|
+
|
404
|
+
StrpTimeFormat StrpTimeFormat::FormatDeserialize(FormatDeserializer &deserializer) {
|
405
|
+
auto format_specifier = deserializer.ReadProperty<string>("format_specifier");
|
406
|
+
StrpTimeFormat result(format_specifier);
|
407
|
+
return result;
|
408
|
+
}
|
409
|
+
|
410
|
+
void TableFilterSet::FormatSerialize(FormatSerializer &serializer) const {
|
411
|
+
serializer.WriteProperty("filters", filters);
|
412
|
+
}
|
413
|
+
|
414
|
+
TableFilterSet TableFilterSet::FormatDeserialize(FormatDeserializer &deserializer) {
|
415
|
+
TableFilterSet result;
|
416
|
+
deserializer.ReadProperty("filters", result.filters);
|
417
|
+
return result;
|
418
|
+
}
|
419
|
+
|
230
420
|
void VacuumOptions::FormatSerialize(FormatSerializer &serializer) const {
|
231
421
|
serializer.WriteProperty("vacuum", vacuum);
|
232
422
|
serializer.WriteProperty("analyze", analyze);
|
@@ -0,0 +1,97 @@
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
2
|
+
// This file is automatically generated by scripts/generate_serialization.py
|
3
|
+
// Do not edit this file manually, your changes will be overwritten
|
4
|
+
//===----------------------------------------------------------------------===//
|
5
|
+
|
6
|
+
#include "duckdb/common/serializer/format_serializer.hpp"
|
7
|
+
#include "duckdb/common/serializer/format_deserializer.hpp"
|
8
|
+
#include "duckdb/planner/table_filter.hpp"
|
9
|
+
#include "duckdb/planner/filter/null_filter.hpp"
|
10
|
+
#include "duckdb/planner/filter/constant_filter.hpp"
|
11
|
+
#include "duckdb/planner/filter/conjunction_filter.hpp"
|
12
|
+
|
13
|
+
namespace duckdb {
|
14
|
+
|
15
|
+
void TableFilter::FormatSerialize(FormatSerializer &serializer) const {
|
16
|
+
serializer.WriteProperty("filter_type", filter_type);
|
17
|
+
}
|
18
|
+
|
19
|
+
unique_ptr<TableFilter> TableFilter::FormatDeserialize(FormatDeserializer &deserializer) {
|
20
|
+
auto filter_type = deserializer.ReadProperty<TableFilterType>("filter_type");
|
21
|
+
unique_ptr<TableFilter> result;
|
22
|
+
switch (filter_type) {
|
23
|
+
case TableFilterType::CONJUNCTION_AND:
|
24
|
+
result = ConjunctionAndFilter::FormatDeserialize(deserializer);
|
25
|
+
break;
|
26
|
+
case TableFilterType::CONJUNCTION_OR:
|
27
|
+
result = ConjunctionOrFilter::FormatDeserialize(deserializer);
|
28
|
+
break;
|
29
|
+
case TableFilterType::CONSTANT_COMPARISON:
|
30
|
+
result = ConstantFilter::FormatDeserialize(deserializer);
|
31
|
+
break;
|
32
|
+
case TableFilterType::IS_NOT_NULL:
|
33
|
+
result = IsNotNullFilter::FormatDeserialize(deserializer);
|
34
|
+
break;
|
35
|
+
case TableFilterType::IS_NULL:
|
36
|
+
result = IsNullFilter::FormatDeserialize(deserializer);
|
37
|
+
break;
|
38
|
+
default:
|
39
|
+
throw SerializationException("Unsupported type for deserialization of TableFilter!");
|
40
|
+
}
|
41
|
+
return result;
|
42
|
+
}
|
43
|
+
|
44
|
+
void ConjunctionAndFilter::FormatSerialize(FormatSerializer &serializer) const {
|
45
|
+
TableFilter::FormatSerialize(serializer);
|
46
|
+
serializer.WriteProperty("child_filters", child_filters);
|
47
|
+
}
|
48
|
+
|
49
|
+
unique_ptr<TableFilter> ConjunctionAndFilter::FormatDeserialize(FormatDeserializer &deserializer) {
|
50
|
+
auto result = duckdb::unique_ptr<ConjunctionAndFilter>(new ConjunctionAndFilter());
|
51
|
+
deserializer.ReadProperty("child_filters", result->child_filters);
|
52
|
+
return std::move(result);
|
53
|
+
}
|
54
|
+
|
55
|
+
void ConjunctionOrFilter::FormatSerialize(FormatSerializer &serializer) const {
|
56
|
+
TableFilter::FormatSerialize(serializer);
|
57
|
+
serializer.WriteProperty("child_filters", child_filters);
|
58
|
+
}
|
59
|
+
|
60
|
+
unique_ptr<TableFilter> ConjunctionOrFilter::FormatDeserialize(FormatDeserializer &deserializer) {
|
61
|
+
auto result = duckdb::unique_ptr<ConjunctionOrFilter>(new ConjunctionOrFilter());
|
62
|
+
deserializer.ReadProperty("child_filters", result->child_filters);
|
63
|
+
return std::move(result);
|
64
|
+
}
|
65
|
+
|
66
|
+
void ConstantFilter::FormatSerialize(FormatSerializer &serializer) const {
|
67
|
+
TableFilter::FormatSerialize(serializer);
|
68
|
+
serializer.WriteProperty("comparison_type", comparison_type);
|
69
|
+
serializer.WriteProperty("constant", constant);
|
70
|
+
}
|
71
|
+
|
72
|
+
unique_ptr<TableFilter> ConstantFilter::FormatDeserialize(FormatDeserializer &deserializer) {
|
73
|
+
auto comparison_type = deserializer.ReadProperty<ExpressionType>("comparison_type");
|
74
|
+
auto constant = deserializer.ReadProperty<Value>("constant");
|
75
|
+
auto result = duckdb::unique_ptr<ConstantFilter>(new ConstantFilter(comparison_type, constant));
|
76
|
+
return std::move(result);
|
77
|
+
}
|
78
|
+
|
79
|
+
void IsNotNullFilter::FormatSerialize(FormatSerializer &serializer) const {
|
80
|
+
TableFilter::FormatSerialize(serializer);
|
81
|
+
}
|
82
|
+
|
83
|
+
unique_ptr<TableFilter> IsNotNullFilter::FormatDeserialize(FormatDeserializer &deserializer) {
|
84
|
+
auto result = duckdb::unique_ptr<IsNotNullFilter>(new IsNotNullFilter());
|
85
|
+
return std::move(result);
|
86
|
+
}
|
87
|
+
|
88
|
+
void IsNullFilter::FormatSerialize(FormatSerializer &serializer) const {
|
89
|
+
TableFilter::FormatSerialize(serializer);
|
90
|
+
}
|
91
|
+
|
92
|
+
unique_ptr<TableFilter> IsNullFilter::FormatDeserialize(FormatDeserializer &deserializer) {
|
93
|
+
auto result = duckdb::unique_ptr<IsNullFilter>(new IsNullFilter());
|
94
|
+
return std::move(result);
|
95
|
+
}
|
96
|
+
|
97
|
+
} // namespace duckdb
|
@@ -20,6 +20,8 @@
|
|
20
20
|
|
21
21
|
#include "src/storage/serialization/serialize_statement.cpp"
|
22
22
|
|
23
|
+
#include "src/storage/serialization/serialize_table_filter.cpp"
|
24
|
+
|
23
25
|
#include "src/storage/serialization/serialize_tableref.cpp"
|
24
26
|
|
25
27
|
#include "src/storage/serialization/serialize_types.cpp"
|