duckdb 0.8.2-dev3458.0 → 0.8.2-dev3949.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 +2 -0
- package/package.json +1 -1
- package/src/duckdb/extension/icu/icu_extension.cpp +5 -5
- package/src/duckdb/extension/json/include/json_deserializer.hpp +7 -16
- package/src/duckdb/extension/json/include/json_serializer.hpp +9 -15
- package/src/duckdb/extension/json/json_deserializer.cpp +29 -67
- package/src/duckdb/extension/json/json_scan.cpp +1 -1
- package/src/duckdb/extension/json/json_serializer.cpp +26 -69
- package/src/duckdb/src/common/enum_util.cpp +119 -7
- package/src/duckdb/src/common/extra_type_info.cpp +7 -3
- package/src/duckdb/src/common/radix_partitioning.cpp +8 -31
- package/src/duckdb/src/common/row_operations/row_aggregate.cpp +18 -3
- package/src/duckdb/src/common/serializer/binary_deserializer.cpp +62 -77
- package/src/duckdb/src/common/serializer/binary_serializer.cpp +84 -84
- package/src/duckdb/src/common/serializer/format_serializer.cpp +1 -1
- package/src/duckdb/src/common/sort/partition_state.cpp +41 -33
- package/src/duckdb/src/common/types/data_chunk.cpp +44 -8
- package/src/duckdb/src/common/types/hyperloglog.cpp +21 -0
- package/src/duckdb/src/common/types/interval.cpp +3 -0
- package/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp +252 -126
- package/src/duckdb/src/common/types/row/row_layout.cpp +3 -31
- package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +40 -32
- package/src/duckdb/src/common/types/row/tuple_data_collection.cpp +39 -26
- package/src/duckdb/src/common/types/row/tuple_data_layout.cpp +11 -1
- package/src/duckdb/src/common/types/row/tuple_data_segment.cpp +21 -16
- package/src/duckdb/src/common/types/value.cpp +63 -42
- package/src/duckdb/src/common/types/vector.cpp +33 -67
- package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +3 -2
- package/src/duckdb/src/execution/aggregate_hashtable.cpp +222 -364
- package/src/duckdb/src/execution/join_hashtable.cpp +5 -6
- package/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp +240 -310
- package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +202 -173
- package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +36 -2
- package/src/duckdb/src/execution/operator/{persistent → csv_scanner}/base_csv_reader.cpp +58 -162
- package/src/duckdb/src/execution/operator/csv_scanner/buffered_csv_reader.cpp +434 -0
- package/src/duckdb/src/execution/operator/csv_scanner/csv_buffer.cpp +80 -0
- package/src/duckdb/src/execution/operator/csv_scanner/csv_buffer_manager.cpp +90 -0
- package/src/duckdb/src/execution/operator/csv_scanner/csv_file_handle.cpp +95 -0
- package/src/duckdb/src/execution/operator/{persistent → csv_scanner}/csv_reader_options.cpp +47 -28
- package/src/duckdb/src/execution/operator/csv_scanner/csv_state_machine.cpp +35 -0
- package/src/duckdb/src/execution/operator/csv_scanner/csv_state_machine_cache.cpp +107 -0
- package/src/duckdb/src/execution/operator/{persistent → csv_scanner}/parallel_csv_reader.cpp +44 -44
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/csv_sniffer.cpp +52 -0
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp +336 -0
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/header_detection.cpp +165 -0
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_detection.cpp +398 -0
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_refinement.cpp +175 -0
- package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_replacement.cpp +39 -0
- package/src/duckdb/src/execution/operator/join/physical_asof_join.cpp +1 -1
- package/src/duckdb/src/execution/operator/set/physical_recursive_cte.cpp +1 -2
- package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +614 -574
- package/src/duckdb/src/execution/window_executor.cpp +6 -5
- package/src/duckdb/src/function/cast/cast_function_set.cpp +1 -0
- package/src/duckdb/src/function/scalar/strftime_format.cpp +4 -4
- package/src/duckdb/src/function/table/copy_csv.cpp +94 -96
- package/src/duckdb/src/function/table/read_csv.cpp +150 -136
- package/src/duckdb/src/function/table/table_scan.cpp +0 -2
- package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
- package/src/duckdb/src/include/duckdb/common/enum_util.hpp +24 -0
- package/src/duckdb/src/include/duckdb/common/file_opener.hpp +9 -0
- package/src/duckdb/src/include/duckdb/common/fixed_size_map.hpp +208 -0
- package/src/duckdb/src/include/duckdb/common/optional_idx.hpp +3 -0
- package/src/duckdb/src/include/duckdb/common/perfect_map_set.hpp +2 -1
- package/src/duckdb/src/include/duckdb/common/printer.hpp +11 -0
- package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +43 -30
- package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +36 -35
- package/src/duckdb/src/include/duckdb/common/serializer/deserialization_data.hpp +18 -0
- package/src/duckdb/src/include/duckdb/common/serializer/encoding_util.hpp +132 -0
- package/src/duckdb/src/include/duckdb/common/serializer/format_deserializer.hpp +125 -150
- package/src/duckdb/src/include/duckdb/common/serializer/format_serializer.hpp +119 -107
- package/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp +2 -1
- package/src/duckdb/src/include/duckdb/common/shared_ptr.hpp +8 -0
- package/src/duckdb/src/include/duckdb/common/sort/partition_state.hpp +13 -7
- package/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +5 -0
- package/src/duckdb/src/include/duckdb/common/types/hyperloglog.hpp +7 -1
- package/src/duckdb/src/include/duckdb/common/types/interval.hpp +7 -0
- package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +41 -9
- package/src/duckdb/src/include/duckdb/common/types/row/row_data_collection_scanner.hpp +5 -0
- package/src/duckdb/src/include/duckdb/common/types/row/row_layout.hpp +1 -23
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_allocator.hpp +14 -8
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_collection.hpp +6 -3
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_layout.hpp +7 -0
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_segment.hpp +13 -8
- package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_states.hpp +3 -2
- package/src/duckdb/src/include/duckdb/common/types/vector.hpp +3 -3
- package/src/duckdb/src/include/duckdb/common/vector.hpp +2 -2
- package/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp +125 -146
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp +5 -4
- package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_window.hpp +4 -3
- package/src/duckdb/src/include/duckdb/execution/operator/{persistent → scan/csv}/base_csv_reader.hpp +17 -17
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/buffered_csv_reader.hpp +72 -0
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_buffer.hpp +110 -0
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_buffer_manager.hpp +103 -0
- package/src/duckdb/src/include/duckdb/execution/operator/{persistent → scan/csv}/csv_file_handle.hpp +8 -15
- package/src/duckdb/src/include/duckdb/execution/operator/{persistent → scan/csv}/csv_line_info.hpp +1 -1
- package/src/duckdb/src/include/duckdb/execution/operator/{persistent → scan/csv}/csv_reader_options.hpp +52 -28
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_sniffer.hpp +127 -0
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_state_machine.hpp +75 -0
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_state_machine_cache.hpp +51 -0
- package/src/duckdb/src/include/duckdb/execution/operator/{persistent → scan/csv}/parallel_csv_reader.hpp +21 -27
- package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/quote_rules.hpp +21 -0
- package/src/duckdb/src/include/duckdb/execution/radix_partitioned_hashtable.hpp +18 -27
- package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +5 -6
- package/src/duckdb/src/include/duckdb/function/scalar/strftime_format.hpp +4 -4
- package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +17 -12
- package/src/duckdb/src/include/duckdb/main/client_context_file_opener.hpp +1 -0
- package/src/duckdb/src/include/duckdb/main/client_data.hpp +2 -1
- package/src/duckdb/src/include/duckdb/main/config.hpp +1 -0
- package/src/duckdb/src/include/duckdb/main/connection.hpp +2 -2
- package/src/duckdb/src/include/duckdb/main/relation/read_csv_relation.hpp +6 -6
- package/src/duckdb/src/include/duckdb/parallel/event.hpp +12 -1
- package/src/duckdb/src/include/duckdb/storage/block.hpp +6 -0
- package/src/duckdb/src/include/duckdb/storage/buffer/block_handle.hpp +3 -0
- package/src/duckdb/src/include/duckdb/storage/statistics/base_statistics.hpp +7 -3
- package/src/duckdb/src/include/duckdb/storage/statistics/column_statistics.hpp +4 -0
- package/src/duckdb/src/include/duckdb/storage/statistics/distinct_statistics.hpp +5 -0
- package/src/duckdb/src/include/duckdb/storage/statistics/list_stats.hpp +3 -0
- package/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats.hpp +3 -0
- package/src/duckdb/src/include/duckdb/storage/statistics/string_stats.hpp +3 -0
- package/src/duckdb/src/include/duckdb/storage/statistics/struct_stats.hpp +3 -0
- package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +15 -3
- package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +4 -0
- package/src/duckdb/src/include/duckdb/storage/table/table_statistics.hpp +5 -0
- package/src/duckdb/src/include/duckdb/verification/deserialized_statement_verifier_v2.hpp +6 -0
- package/src/duckdb/src/include/duckdb/verification/statement_verifier.hpp +1 -0
- package/src/duckdb/src/include/duckdb.h +12 -0
- package/src/duckdb/src/main/capi/logical_types-c.cpp +22 -0
- package/src/duckdb/src/main/client_context_file_opener.cpp +17 -0
- package/src/duckdb/src/main/client_verify.cpp +1 -0
- package/src/duckdb/src/main/config.cpp +2 -2
- package/src/duckdb/src/main/connection.cpp +3 -3
- package/src/duckdb/src/main/relation/read_csv_relation.cpp +19 -13
- package/src/duckdb/src/parallel/pipeline_finish_event.cpp +1 -1
- package/src/duckdb/src/parser/tableref/pivotref.cpp +0 -16
- package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +1 -1
- package/src/duckdb/src/planner/binder/statement/bind_export.cpp +41 -25
- package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +4 -4
- package/src/duckdb/src/planner/expression/bound_window_expression.cpp +10 -10
- package/src/duckdb/src/planner/logical_operator.cpp +1 -1
- package/src/duckdb/src/planner/planner.cpp +1 -1
- package/src/duckdb/src/storage/checkpoint_manager.cpp +4 -3
- package/src/duckdb/src/storage/serialization/serialize_constraint.cpp +1 -1
- package/src/duckdb/src/storage/serialization/serialize_create_info.cpp +5 -5
- package/src/duckdb/src/storage/serialization/serialize_expression.cpp +10 -10
- package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +20 -20
- package/src/duckdb/src/storage/serialization/serialize_macro_function.cpp +2 -2
- package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +118 -89
- package/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +3 -3
- package/src/duckdb/src/storage/serialization/serialize_parsed_expression.cpp +27 -27
- package/src/duckdb/src/storage/serialization/serialize_query_node.cpp +16 -16
- package/src/duckdb/src/storage/serialization/serialize_result_modifier.cpp +8 -8
- package/src/duckdb/src/storage/serialization/serialize_statement.cpp +1 -1
- package/src/duckdb/src/storage/serialization/serialize_storage.cpp +39 -0
- package/src/duckdb/src/storage/serialization/serialize_tableref.cpp +9 -9
- package/src/duckdb/src/storage/statistics/base_statistics.cpp +67 -4
- package/src/duckdb/src/storage/statistics/column_statistics.cpp +16 -0
- package/src/duckdb/src/storage/statistics/list_stats.cpp +21 -0
- package/src/duckdb/src/storage/statistics/numeric_stats.cpp +126 -1
- package/src/duckdb/src/storage/statistics/string_stats.cpp +23 -0
- package/src/duckdb/src/storage/statistics/struct_stats.cpp +27 -0
- package/src/duckdb/src/storage/storage_info.cpp +1 -1
- package/src/duckdb/src/storage/table/chunk_info.cpp +82 -3
- package/src/duckdb/src/storage/table/row_group.cpp +68 -1
- package/src/duckdb/src/storage/table/table_statistics.cpp +21 -0
- package/src/duckdb/src/storage/wal_replay.cpp +2 -2
- package/src/duckdb/src/verification/deserialized_statement_verifier_v2.cpp +15 -1
- package/src/duckdb/src/verification/statement_verifier.cpp +2 -0
- package/src/duckdb/third_party/utf8proc/include/utf8proc_wrapper.hpp +8 -0
- package/src/duckdb/ub_src_execution.cpp +0 -2
- package/src/duckdb/ub_src_execution_operator_csv_scanner.cpp +18 -0
- package/src/duckdb/ub_src_execution_operator_csv_scanner_sniffer.cpp +12 -0
- package/src/duckdb/ub_src_execution_operator_persistent.cpp +0 -12
- package/src/duckdb/ub_src_storage_serialization.cpp +2 -0
- package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +0 -1487
- package/src/duckdb/src/execution/operator/persistent/csv_buffer.cpp +0 -72
- package/src/duckdb/src/execution/operator/persistent/csv_file_handle.cpp +0 -158
- package/src/duckdb/src/execution/partitionable_hashtable.cpp +0 -207
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/buffered_csv_reader.hpp +0 -133
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_buffer.hpp +0 -74
- package/src/duckdb/src/include/duckdb/execution/partitionable_hashtable.hpp +0 -73
@@ -99,7 +99,7 @@ void Vector::Reference(const Value &value) {
|
|
99
99
|
}
|
100
100
|
}
|
101
101
|
|
102
|
-
void Vector::Reference(Vector &other) {
|
102
|
+
void Vector::Reference(const Vector &other) {
|
103
103
|
if (other.GetType().id() != GetType().id()) {
|
104
104
|
throw InternalException("Vector::Reference used on vector of different type");
|
105
105
|
}
|
@@ -107,12 +107,12 @@ void Vector::Reference(Vector &other) {
|
|
107
107
|
Reinterpret(other);
|
108
108
|
}
|
109
109
|
|
110
|
-
void Vector::ReferenceAndSetType(Vector &other) {
|
110
|
+
void Vector::ReferenceAndSetType(const Vector &other) {
|
111
111
|
type = other.GetType();
|
112
112
|
Reference(other);
|
113
113
|
}
|
114
114
|
|
115
|
-
void Vector::Reinterpret(Vector &other) {
|
115
|
+
void Vector::Reinterpret(const Vector &other) {
|
116
116
|
vector_type = other.vector_type;
|
117
117
|
AssignSharedPointer(buffer, other.buffer);
|
118
118
|
AssignSharedPointer(auxiliary, other.auxiliary);
|
@@ -1021,14 +1021,11 @@ void Vector::FormatSerialize(FormatSerializer &serializer, idx_t count) {
|
|
1021
1021
|
auto strings = UnifiedVectorFormat::GetData<string_t>(vdata);
|
1022
1022
|
|
1023
1023
|
// Serialize data as a list
|
1024
|
-
serializer.
|
1025
|
-
serializer.OnListBegin(count);
|
1026
|
-
for (idx_t i = 0; i < count; i++) {
|
1024
|
+
serializer.WriteList(102, "data", count, [&](FormatSerializer::List &list, idx_t i) {
|
1027
1025
|
auto idx = vdata.sel->get_index(i);
|
1028
1026
|
auto str = !vdata.validity.RowIsValid(idx) ? NullValue<string_t>() : strings[idx];
|
1029
|
-
|
1030
|
-
}
|
1031
|
-
serializer.OnListEnd(count);
|
1027
|
+
list.WriteElement(str);
|
1028
|
+
});
|
1032
1029
|
break;
|
1033
1030
|
}
|
1034
1031
|
case PhysicalType::STRUCT: {
|
@@ -1036,14 +1033,9 @@ void Vector::FormatSerialize(FormatSerializer &serializer, idx_t count) {
|
|
1036
1033
|
auto &entries = StructVector::GetEntries(*this);
|
1037
1034
|
|
1038
1035
|
// Serialize entries as a list
|
1039
|
-
serializer.
|
1040
|
-
|
1041
|
-
|
1042
|
-
serializer.OnObjectBegin();
|
1043
|
-
entry->FormatSerialize(serializer, count);
|
1044
|
-
serializer.OnObjectEnd();
|
1045
|
-
}
|
1046
|
-
serializer.OnListEnd(entries.size());
|
1036
|
+
serializer.WriteList(103, "children", count, [&](FormatSerializer::List &list, idx_t i) {
|
1037
|
+
list.WriteObject([&](FormatSerializer &object) { entries[i]->FormatSerialize(object, count); });
|
1038
|
+
});
|
1047
1039
|
break;
|
1048
1040
|
}
|
1049
1041
|
case PhysicalType::LIST: {
|
@@ -1060,19 +1052,14 @@ void Vector::FormatSerialize(FormatSerializer &serializer, idx_t count) {
|
|
1060
1052
|
entries[i].length = source.length;
|
1061
1053
|
}
|
1062
1054
|
serializer.WriteProperty(104, "list_size", list_size);
|
1063
|
-
serializer.
|
1064
|
-
|
1065
|
-
|
1066
|
-
|
1067
|
-
|
1068
|
-
|
1069
|
-
|
1070
|
-
|
1071
|
-
serializer.OnListEnd(count);
|
1072
|
-
serializer.SetTag(106, "child");
|
1073
|
-
serializer.OnObjectBegin();
|
1074
|
-
child.FormatSerialize(serializer, list_size);
|
1075
|
-
serializer.OnObjectEnd();
|
1055
|
+
serializer.WriteList(105, "entries", count, [&](FormatSerializer::List &list, idx_t i) {
|
1056
|
+
list.WriteObject([&](FormatSerializer &object) {
|
1057
|
+
object.WriteProperty(100, "offset", entries[i].offset);
|
1058
|
+
object.WriteProperty(101, "length", entries[i].length);
|
1059
|
+
});
|
1060
|
+
});
|
1061
|
+
serializer.WriteObject(106, "child",
|
1062
|
+
[&](FormatSerializer &object) { child.FormatSerialize(object, list_size); });
|
1076
1063
|
break;
|
1077
1064
|
}
|
1078
1065
|
default:
|
@@ -1103,35 +1090,20 @@ void Vector::FormatDeserialize(FormatDeserializer &deserializer, idx_t count) {
|
|
1103
1090
|
switch (logical_type.InternalType()) {
|
1104
1091
|
case PhysicalType::VARCHAR: {
|
1105
1092
|
auto strings = FlatVector::GetData<string_t>(*this);
|
1106
|
-
deserializer.
|
1107
|
-
|
1108
|
-
D_ASSERT(read_count == count);
|
1109
|
-
(void)read_count; // otherwise unused variable error in release mode
|
1110
|
-
for (idx_t i = 0; i < count; i++) {
|
1111
|
-
// read the strings
|
1112
|
-
auto str = deserializer.ReadString();
|
1113
|
-
// now add the string to the StringHeap of the vector
|
1114
|
-
// and write the pointer into the vector
|
1093
|
+
deserializer.ReadList(102, "data", [&](FormatDeserializer::List &list, idx_t i) {
|
1094
|
+
auto str = list.ReadElement<string>();
|
1115
1095
|
if (validity.RowIsValid(i)) {
|
1116
1096
|
strings[i] = StringVector::AddStringOrBlob(*this, str);
|
1117
1097
|
}
|
1118
|
-
}
|
1119
|
-
deserializer.OnListEnd();
|
1098
|
+
});
|
1120
1099
|
break;
|
1121
1100
|
}
|
1122
1101
|
case PhysicalType::STRUCT: {
|
1123
1102
|
auto &entries = StructVector::GetEntries(*this);
|
1124
1103
|
// Deserialize entries as a list
|
1125
|
-
deserializer.
|
1126
|
-
|
1127
|
-
|
1128
|
-
(void)read_size;
|
1129
|
-
for (auto &entry : entries) {
|
1130
|
-
deserializer.OnObjectBegin();
|
1131
|
-
entry->FormatDeserialize(deserializer, count);
|
1132
|
-
deserializer.OnObjectEnd();
|
1133
|
-
}
|
1134
|
-
deserializer.OnListEnd();
|
1104
|
+
deserializer.ReadList(103, "children", [&](FormatDeserializer::List &list, idx_t i) {
|
1105
|
+
list.ReadObject([&](FormatDeserializer &obj) { entries[i]->FormatDeserialize(obj, count); });
|
1106
|
+
});
|
1135
1107
|
break;
|
1136
1108
|
}
|
1137
1109
|
case PhysicalType::LIST: {
|
@@ -1142,24 +1114,18 @@ void Vector::FormatDeserialize(FormatDeserializer &deserializer, idx_t count) {
|
|
1142
1114
|
|
1143
1115
|
// Read the entries
|
1144
1116
|
auto list_entries = FlatVector::GetData<list_entry_t>(*this);
|
1145
|
-
deserializer.
|
1146
|
-
|
1147
|
-
|
1148
|
-
|
1149
|
-
|
1150
|
-
|
1151
|
-
deserializer.ReadProperty(100, "offset", list_entries[i].offset);
|
1152
|
-
deserializer.ReadProperty(101, "length", list_entries[i].length);
|
1153
|
-
deserializer.OnObjectEnd();
|
1154
|
-
}
|
1155
|
-
deserializer.OnListEnd();
|
1117
|
+
deserializer.ReadList(105, "entries", [&](FormatDeserializer::List &list, idx_t i) {
|
1118
|
+
list.ReadObject([&](FormatDeserializer &obj) {
|
1119
|
+
list_entries[i].offset = obj.ReadProperty<uint64_t>(100, "offset");
|
1120
|
+
list_entries[i].length = obj.ReadProperty<uint64_t>(101, "length");
|
1121
|
+
});
|
1122
|
+
});
|
1156
1123
|
|
1157
1124
|
// Read the child vector
|
1158
|
-
deserializer.
|
1159
|
-
|
1160
|
-
|
1161
|
-
|
1162
|
-
deserializer.OnObjectEnd();
|
1125
|
+
deserializer.ReadObject(106, "child", [&](FormatDeserializer &obj) {
|
1126
|
+
auto &child = ListVector::GetEntry(*this);
|
1127
|
+
child.FormatDeserialize(obj, list_size);
|
1128
|
+
});
|
1163
1129
|
break;
|
1164
1130
|
}
|
1165
1131
|
default:
|
@@ -35,12 +35,13 @@ public:
|
|
35
35
|
const ScalarFunction &function) {
|
36
36
|
auto &bind_data = bind_data_p->Cast<ListLambdaBindData>();
|
37
37
|
serializer.WriteProperty(100, "stype", bind_data.stype);
|
38
|
-
serializer.
|
38
|
+
serializer.WritePropertyWithDefault(101, "lambda_expr", bind_data.lambda_expr, unique_ptr<Expression>());
|
39
39
|
}
|
40
40
|
|
41
41
|
static unique_ptr<FunctionData> FormatDeserialize(FormatDeserializer &deserializer, ScalarFunction &function) {
|
42
42
|
auto stype = deserializer.ReadProperty<LogicalType>(100, "stype");
|
43
|
-
auto lambda_expr =
|
43
|
+
auto lambda_expr =
|
44
|
+
deserializer.ReadPropertyWithDefault<unique_ptr<Expression>>(101, "lambda_expr", unique_ptr<Expression>());
|
44
45
|
return make_uniq<ListLambdaBindData>(stype, std::move(lambda_expr));
|
45
46
|
}
|
46
47
|
};
|