duckdb 0.8.2-dev2090.0 → 0.8.2-dev2208.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_functions.cpp +2 -1
- 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 +25 -1
- package/src/duckdb/extension/parquet/parquet_reader.cpp +3 -0
- package/src/duckdb/extension/parquet/serialize_parquet.cpp +26 -0
- package/src/duckdb/src/catalog/catalog.cpp +2 -6
- package/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp +1 -4
- package/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp +0 -4
- package/src/duckdb/src/catalog/catalog_entry/type_catalog_entry.cpp +7 -26
- package/src/duckdb/src/catalog/catalog_set.cpp +0 -63
- package/src/duckdb/src/catalog/dependency_manager.cpp +0 -36
- package/src/duckdb/src/common/extra_type_info.cpp +24 -46
- package/src/duckdb/src/common/field_writer.cpp +0 -1
- package/src/duckdb/src/common/file_system.cpp +6 -6
- package/src/duckdb/src/common/filename_pattern.cpp +1 -1
- package/src/duckdb/src/common/gzip_file_system.cpp +7 -12
- package/src/duckdb/src/common/local_file_system.cpp +17 -14
- package/src/duckdb/src/common/multi_file_reader.cpp +8 -5
- package/src/duckdb/src/common/serializer/buffered_file_reader.cpp +0 -9
- package/src/duckdb/src/common/serializer/format_serializer.cpp +15 -0
- package/src/duckdb/src/common/types.cpp +12 -56
- package/src/duckdb/src/common/virtual_file_system.cpp +4 -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/core_functions/scalar/union/union_tag.cpp +1 -1
- package/src/duckdb/src/execution/column_binding_resolver.cpp +3 -7
- package/src/duckdb/src/execution/operator/persistent/physical_copy_to_file.cpp +1 -1
- package/src/duckdb/src/execution/operator/scan/physical_table_scan.cpp +0 -10
- package/src/duckdb/src/execution/operator/schema/physical_attach.cpp +2 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +2 -6
- package/src/duckdb/src/execution/physical_plan/plan_asof_join.cpp +1 -2
- package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +14 -1
- package/src/duckdb/src/execution/physical_plan/plan_create_index.cpp +3 -17
- package/src/duckdb/src/execution/physical_plan/plan_delim_join.cpp +2 -5
- package/src/duckdb/src/execution/physical_plan_generator.cpp +1 -5
- 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/cast/string_cast.cpp +0 -1
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +27 -0
- package/src/duckdb/src/function/scalar_function.cpp +5 -20
- package/src/duckdb/src/function/table/read_csv.cpp +20 -1
- package/src/duckdb/src/function/table/system/test_all_types.cpp +4 -4
- 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/catalog/catalog_entry/table_catalog_entry.hpp +0 -2
- package/src/duckdb/src/include/duckdb/catalog/catalog_entry/type_catalog_entry.hpp +1 -4
- package/src/duckdb/src/include/duckdb/catalog/catalog_set.hpp +0 -6
- package/src/duckdb/src/include/duckdb/common/extra_type_info.hpp +2 -6
- package/src/duckdb/src/include/duckdb/common/field_writer.hpp +0 -4
- package/src/duckdb/src/include/duckdb/common/file_system.hpp +8 -8
- package/src/duckdb/src/include/duckdb/common/filename_pattern.hpp +1 -1
- 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 +3 -1
- package/src/duckdb/src/include/duckdb/common/opener_file_system.hpp +4 -0
- package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_reader.hpp +0 -4
- 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/common/serializer.hpp +0 -7
- package/src/duckdb/src/include/duckdb/common/types/timestamp.hpp +14 -10
- package/src/duckdb/src/include/duckdb/common/types.hpp +5 -10
- package/src/duckdb/src/include/duckdb/common/virtual_file_system.hpp +2 -0
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_reader_options.hpp +2 -0
- package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_table_scan.hpp +0 -4
- package/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp +3 -2
- 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 -3
- 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/main/attached_database.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/deliminator.hpp +2 -2
- 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/logical_tokens.hpp +0 -2
- package/src/duckdb/src/include/duckdb/planner/operator/list.hpp +1 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_comparison_join.hpp +2 -4
- package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_to_file.hpp +2 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_create_index.hpp +10 -7
- package/src/duckdb/src/include/duckdb/planner/operator/logical_extension_operator.hpp +5 -0
- package/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +7 -1
- package/src/duckdb/src/include/duckdb/planner/operator_extension.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/table_filter.hpp +7 -1
- package/src/duckdb/src/include/duckdb/storage/meta_block_reader.hpp +0 -3
- package/src/duckdb/src/main/attached_database.cpp +2 -2
- package/src/duckdb/src/main/database.cpp +1 -1
- package/src/duckdb/src/main/db_instance_cache.cpp +14 -6
- package/src/duckdb/src/main/extension/extension_helper.cpp +13 -0
- package/src/duckdb/src/main/extension/extension_install.cpp +1 -1
- package/src/duckdb/src/optimizer/column_lifetime_analyzer.cpp +1 -2
- package/src/duckdb/src/optimizer/compressed_materialization.cpp +0 -1
- package/src/duckdb/src/optimizer/deliminator.cpp +7 -7
- package/src/duckdb/src/optimizer/unnest_rewriter.cpp +3 -5
- package/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +16 -1
- package/src/duckdb/src/parser/transform/statement/transform_create_type.cpp +1 -1
- package/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp +3 -3
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +7 -23
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +0 -24
- package/src/duckdb/src/planner/binder/tableref/plan_joinref.cpp +3 -5
- 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/logical_operator.cpp +1 -6
- package/src/duckdb/src/planner/logical_operator_visitor.cpp +3 -6
- package/src/duckdb/src/planner/operator/logical_comparison_join.cpp +2 -14
- package/src/duckdb/src/planner/operator/logical_copy_to_file.cpp +8 -0
- package/src/duckdb/src/planner/operator/logical_create_index.cpp +21 -12
- package/src/duckdb/src/planner/operator/logical_extension_operator.cpp +24 -0
- package/src/duckdb/src/planner/operator/logical_get.cpp +69 -0
- package/src/duckdb/src/planner/planner.cpp +0 -1
- package/src/duckdb/src/storage/checkpoint_manager.cpp +1 -5
- package/src/duckdb/src/storage/meta_block_reader.cpp +0 -9
- package/src/duckdb/src/storage/serialization/serialize_create_info.cpp +2 -0
- package/src/duckdb/src/storage/serialization/serialize_expression.cpp +9 -0
- package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +33 -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/src/storage/storage_info.cpp +1 -1
- package/src/duckdb/src/storage/wal_replay.cpp +1 -3
- package/src/duckdb/ub_src_common_serializer.cpp +2 -0
- package/src/duckdb/ub_src_planner_operator.cpp +0 -4
- package/src/duckdb/ub_src_storage_serialization.cpp +2 -0
- package/src/statement.cpp +0 -2
- package/test/columns.test.ts +1 -2
- package/src/duckdb/src/include/duckdb/planner/operator/logical_asof_join.hpp +0 -27
- package/src/duckdb/src/include/duckdb/planner/operator/logical_delim_join.hpp +0 -32
- package/src/duckdb/src/planner/operator/logical_asof_join.cpp +0 -14
- package/src/duckdb/src/planner/operator/logical_delim_join.cpp +0 -25
@@ -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
|
@@ -36,7 +36,6 @@ bool WriteAheadLog::Replay(AttachedDatabase &database, string &path) {
|
|
36
36
|
// first deserialize the WAL to look for a checkpoint flag
|
37
37
|
// if there is a checkpoint flag, we might have already flushed the contents of the WAL to disk
|
38
38
|
ReplayState checkpoint_state(database, *con.context, *initial_reader);
|
39
|
-
initial_reader->SetCatalog(checkpoint_state.catalog);
|
40
39
|
checkpoint_state.deserialize_only = true;
|
41
40
|
try {
|
42
41
|
while (true) {
|
@@ -73,7 +72,6 @@ bool WriteAheadLog::Replay(AttachedDatabase &database, string &path) {
|
|
73
72
|
|
74
73
|
// we need to recover from the WAL: actually set up the replay state
|
75
74
|
BufferedFileReader reader(FileSystem::Get(database), path.c_str(), con.context.get());
|
76
|
-
reader.SetCatalog(checkpoint_state.catalog);
|
77
75
|
ReplayState state(database, *con.context, reader);
|
78
76
|
|
79
77
|
// replay the WAL
|
@@ -284,7 +282,7 @@ void ReplayState::ReplayDropSchema() {
|
|
284
282
|
void ReplayState::ReplayCreateType() {
|
285
283
|
auto info = TypeCatalogEntry::Deserialize(source);
|
286
284
|
info->on_conflict = OnCreateConflict::IGNORE_ON_CONFLICT;
|
287
|
-
catalog.CreateType(context,
|
285
|
+
catalog.CreateType(context, info->Cast<CreateTypeInfo>());
|
288
286
|
}
|
289
287
|
|
290
288
|
void ReplayState::ReplayDropType() {
|
@@ -2,8 +2,6 @@
|
|
2
2
|
|
3
3
|
#include "src/planner/operator/logical_any_join.cpp"
|
4
4
|
|
5
|
-
#include "src/planner/operator/logical_asof_join.cpp"
|
6
|
-
|
7
5
|
#include "src/planner/operator/logical_column_data_get.cpp"
|
8
6
|
|
9
7
|
#include "src/planner/operator/logical_comparison_join.cpp"
|
@@ -24,8 +22,6 @@
|
|
24
22
|
|
25
23
|
#include "src/planner/operator/logical_delim_get.cpp"
|
26
24
|
|
27
|
-
#include "src/planner/operator/logical_delim_join.cpp"
|
28
|
-
|
29
25
|
#include "src/planner/operator/logical_dependent_join.cpp"
|
30
26
|
|
31
27
|
#include "src/planner/operator/logical_distinct.cpp"
|
@@ -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"
|
package/src/statement.cpp
CHANGED
@@ -548,7 +548,6 @@ static Napi::Value TypeToObject(Napi::Env &env, const duckdb::LogicalType &type)
|
|
548
548
|
obj.Set("value", TypeToObject(env, value_type));
|
549
549
|
} break;
|
550
550
|
case duckdb::LogicalTypeId::ENUM: {
|
551
|
-
auto name = duckdb::EnumType::GetTypeName(type);
|
552
551
|
auto &values_vec = duckdb::EnumType::GetValuesInsertOrder(type);
|
553
552
|
auto enum_size = duckdb::EnumType::GetSize(type);
|
554
553
|
auto arr = Napi::Array::New(env, enum_size);
|
@@ -556,7 +555,6 @@ static Napi::Value TypeToObject(Napi::Env &env, const duckdb::LogicalType &type)
|
|
556
555
|
auto child_name = values_vec.GetValue(i).GetValue<duckdb::string>();
|
557
556
|
arr.Set(i, child_name);
|
558
557
|
}
|
559
|
-
obj.Set("name", name);
|
560
558
|
obj.Set("values", arr);
|
561
559
|
} break;
|
562
560
|
case duckdb::LogicalTypeId::UNION: {
|
package/test/columns.test.ts
CHANGED
@@ -1,27 +0,0 @@
|
|
1
|
-
//===----------------------------------------------------------------------===//
|
2
|
-
// DuckDB
|
3
|
-
//
|
4
|
-
// duckdb/planner/operator/logical_asof_join.hpp
|
5
|
-
//
|
6
|
-
//
|
7
|
-
//===----------------------------------------------------------------------===//
|
8
|
-
|
9
|
-
#pragma once
|
10
|
-
|
11
|
-
#include "duckdb/planner/operator/logical_comparison_join.hpp"
|
12
|
-
|
13
|
-
namespace duckdb {
|
14
|
-
|
15
|
-
//! LogicalAsOfJoin represents a temporal-style join with one less-than inequality.
|
16
|
-
//! This inequality matches the greatest value on the right that satisfies the condition.
|
17
|
-
class LogicalAsOfJoin : public LogicalComparisonJoin {
|
18
|
-
public:
|
19
|
-
static constexpr const LogicalOperatorType TYPE = LogicalOperatorType::LOGICAL_ASOF_JOIN;
|
20
|
-
|
21
|
-
public:
|
22
|
-
explicit LogicalAsOfJoin(JoinType type);
|
23
|
-
|
24
|
-
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
25
|
-
};
|
26
|
-
|
27
|
-
} // namespace duckdb
|
@@ -1,32 +0,0 @@
|
|
1
|
-
//===----------------------------------------------------------------------===//
|
2
|
-
// DuckDB
|
3
|
-
//
|
4
|
-
// duckdb/planner/operator/logical_delim_join.hpp
|
5
|
-
//
|
6
|
-
//
|
7
|
-
//===----------------------------------------------------------------------===//
|
8
|
-
|
9
|
-
#pragma once
|
10
|
-
|
11
|
-
#include "duckdb/planner/operator/logical_comparison_join.hpp"
|
12
|
-
|
13
|
-
namespace duckdb {
|
14
|
-
|
15
|
-
//! LogicalDelimJoin represents a special "duplicate eliminated" join. This join type is only used for subquery
|
16
|
-
//! flattening, and involves performing duplicate elimination on the LEFT side which is then pushed into the RIGHT side.
|
17
|
-
class LogicalDelimJoin : public LogicalComparisonJoin {
|
18
|
-
public:
|
19
|
-
static constexpr const LogicalOperatorType TYPE = LogicalOperatorType::LOGICAL_DELIM_JOIN;
|
20
|
-
|
21
|
-
public:
|
22
|
-
explicit LogicalDelimJoin(JoinType type);
|
23
|
-
|
24
|
-
//! The set of columns that will be duplicate eliminated from the LHS and pushed into the RHS
|
25
|
-
vector<unique_ptr<Expression>> duplicate_eliminated_columns;
|
26
|
-
|
27
|
-
public:
|
28
|
-
void Serialize(FieldWriter &writer) const override;
|
29
|
-
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
30
|
-
};
|
31
|
-
|
32
|
-
} // namespace duckdb
|
@@ -1,14 +0,0 @@
|
|
1
|
-
#include "duckdb/planner/operator/logical_asof_join.hpp"
|
2
|
-
|
3
|
-
namespace duckdb {
|
4
|
-
|
5
|
-
LogicalAsOfJoin::LogicalAsOfJoin(JoinType type) : LogicalComparisonJoin(type, LogicalOperatorType::LOGICAL_ASOF_JOIN) {
|
6
|
-
}
|
7
|
-
|
8
|
-
unique_ptr<LogicalOperator> LogicalAsOfJoin::Deserialize(LogicalDeserializationState &state, FieldReader &reader) {
|
9
|
-
auto result = make_uniq<LogicalAsOfJoin>(JoinType::INVALID);
|
10
|
-
LogicalComparisonJoin::Deserialize(*result, state, reader);
|
11
|
-
return std::move(result);
|
12
|
-
}
|
13
|
-
|
14
|
-
} // namespace duckdb
|
@@ -1,25 +0,0 @@
|
|
1
|
-
#include "duckdb/common/field_writer.hpp"
|
2
|
-
#include "duckdb/planner/operator/logical_delim_join.hpp"
|
3
|
-
|
4
|
-
namespace duckdb {
|
5
|
-
|
6
|
-
LogicalDelimJoin::LogicalDelimJoin(JoinType type)
|
7
|
-
: LogicalComparisonJoin(type, LogicalOperatorType::LOGICAL_DELIM_JOIN) {
|
8
|
-
}
|
9
|
-
|
10
|
-
void LogicalDelimJoin::Serialize(FieldWriter &writer) const {
|
11
|
-
LogicalComparisonJoin::Serialize(writer);
|
12
|
-
if (type != LogicalOperatorType::LOGICAL_DELIM_JOIN) {
|
13
|
-
throw InternalException("LogicalDelimJoin needs to have type LOGICAL_DELIM_JOIN");
|
14
|
-
}
|
15
|
-
writer.WriteSerializableList(duplicate_eliminated_columns);
|
16
|
-
}
|
17
|
-
|
18
|
-
unique_ptr<LogicalOperator> LogicalDelimJoin::Deserialize(LogicalDeserializationState &state, FieldReader &reader) {
|
19
|
-
auto result = make_uniq<LogicalDelimJoin>(JoinType::INVALID);
|
20
|
-
LogicalComparisonJoin::Deserialize(*result, state, reader);
|
21
|
-
result->duplicate_eliminated_columns = reader.ReadRequiredSerializableList<Expression>(state.gstate);
|
22
|
-
return std::move(result);
|
23
|
-
}
|
24
|
-
|
25
|
-
} // namespace duckdb
|