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.
Files changed (180) hide show
  1. package/binding.gyp +2 -0
  2. package/package.json +1 -1
  3. package/src/duckdb/extension/icu/icu_extension.cpp +5 -5
  4. package/src/duckdb/extension/json/include/json_deserializer.hpp +7 -16
  5. package/src/duckdb/extension/json/include/json_serializer.hpp +9 -15
  6. package/src/duckdb/extension/json/json_deserializer.cpp +29 -67
  7. package/src/duckdb/extension/json/json_scan.cpp +1 -1
  8. package/src/duckdb/extension/json/json_serializer.cpp +26 -69
  9. package/src/duckdb/src/common/enum_util.cpp +119 -7
  10. package/src/duckdb/src/common/extra_type_info.cpp +7 -3
  11. package/src/duckdb/src/common/radix_partitioning.cpp +8 -31
  12. package/src/duckdb/src/common/row_operations/row_aggregate.cpp +18 -3
  13. package/src/duckdb/src/common/serializer/binary_deserializer.cpp +62 -77
  14. package/src/duckdb/src/common/serializer/binary_serializer.cpp +84 -84
  15. package/src/duckdb/src/common/serializer/format_serializer.cpp +1 -1
  16. package/src/duckdb/src/common/sort/partition_state.cpp +41 -33
  17. package/src/duckdb/src/common/types/data_chunk.cpp +44 -8
  18. package/src/duckdb/src/common/types/hyperloglog.cpp +21 -0
  19. package/src/duckdb/src/common/types/interval.cpp +3 -0
  20. package/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp +252 -126
  21. package/src/duckdb/src/common/types/row/row_layout.cpp +3 -31
  22. package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +40 -32
  23. package/src/duckdb/src/common/types/row/tuple_data_collection.cpp +39 -26
  24. package/src/duckdb/src/common/types/row/tuple_data_layout.cpp +11 -1
  25. package/src/duckdb/src/common/types/row/tuple_data_segment.cpp +21 -16
  26. package/src/duckdb/src/common/types/value.cpp +63 -42
  27. package/src/duckdb/src/common/types/vector.cpp +33 -67
  28. package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +3 -2
  29. package/src/duckdb/src/execution/aggregate_hashtable.cpp +222 -364
  30. package/src/duckdb/src/execution/join_hashtable.cpp +5 -6
  31. package/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp +240 -310
  32. package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +202 -173
  33. package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +36 -2
  34. package/src/duckdb/src/execution/operator/{persistent → csv_scanner}/base_csv_reader.cpp +58 -162
  35. package/src/duckdb/src/execution/operator/csv_scanner/buffered_csv_reader.cpp +434 -0
  36. package/src/duckdb/src/execution/operator/csv_scanner/csv_buffer.cpp +80 -0
  37. package/src/duckdb/src/execution/operator/csv_scanner/csv_buffer_manager.cpp +90 -0
  38. package/src/duckdb/src/execution/operator/csv_scanner/csv_file_handle.cpp +95 -0
  39. package/src/duckdb/src/execution/operator/{persistent → csv_scanner}/csv_reader_options.cpp +47 -28
  40. package/src/duckdb/src/execution/operator/csv_scanner/csv_state_machine.cpp +35 -0
  41. package/src/duckdb/src/execution/operator/csv_scanner/csv_state_machine_cache.cpp +107 -0
  42. package/src/duckdb/src/execution/operator/{persistent → csv_scanner}/parallel_csv_reader.cpp +44 -44
  43. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/csv_sniffer.cpp +52 -0
  44. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp +336 -0
  45. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/header_detection.cpp +165 -0
  46. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_detection.cpp +398 -0
  47. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_refinement.cpp +175 -0
  48. package/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_replacement.cpp +39 -0
  49. package/src/duckdb/src/execution/operator/join/physical_asof_join.cpp +1 -1
  50. package/src/duckdb/src/execution/operator/set/physical_recursive_cte.cpp +1 -2
  51. package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +614 -574
  52. package/src/duckdb/src/execution/window_executor.cpp +6 -5
  53. package/src/duckdb/src/function/cast/cast_function_set.cpp +1 -0
  54. package/src/duckdb/src/function/scalar/strftime_format.cpp +4 -4
  55. package/src/duckdb/src/function/table/copy_csv.cpp +94 -96
  56. package/src/duckdb/src/function/table/read_csv.cpp +150 -136
  57. package/src/duckdb/src/function/table/table_scan.cpp +0 -2
  58. package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
  59. package/src/duckdb/src/include/duckdb/common/enum_util.hpp +24 -0
  60. package/src/duckdb/src/include/duckdb/common/file_opener.hpp +9 -0
  61. package/src/duckdb/src/include/duckdb/common/fixed_size_map.hpp +208 -0
  62. package/src/duckdb/src/include/duckdb/common/optional_idx.hpp +3 -0
  63. package/src/duckdb/src/include/duckdb/common/perfect_map_set.hpp +2 -1
  64. package/src/duckdb/src/include/duckdb/common/printer.hpp +11 -0
  65. package/src/duckdb/src/include/duckdb/common/serializer/binary_deserializer.hpp +43 -30
  66. package/src/duckdb/src/include/duckdb/common/serializer/binary_serializer.hpp +36 -35
  67. package/src/duckdb/src/include/duckdb/common/serializer/deserialization_data.hpp +18 -0
  68. package/src/duckdb/src/include/duckdb/common/serializer/encoding_util.hpp +132 -0
  69. package/src/duckdb/src/include/duckdb/common/serializer/format_deserializer.hpp +125 -150
  70. package/src/duckdb/src/include/duckdb/common/serializer/format_serializer.hpp +119 -107
  71. package/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp +2 -1
  72. package/src/duckdb/src/include/duckdb/common/shared_ptr.hpp +8 -0
  73. package/src/duckdb/src/include/duckdb/common/sort/partition_state.hpp +13 -7
  74. package/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +5 -0
  75. package/src/duckdb/src/include/duckdb/common/types/hyperloglog.hpp +7 -1
  76. package/src/duckdb/src/include/duckdb/common/types/interval.hpp +7 -0
  77. package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +41 -9
  78. package/src/duckdb/src/include/duckdb/common/types/row/row_data_collection_scanner.hpp +5 -0
  79. package/src/duckdb/src/include/duckdb/common/types/row/row_layout.hpp +1 -23
  80. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_allocator.hpp +14 -8
  81. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_collection.hpp +6 -3
  82. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_layout.hpp +7 -0
  83. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_segment.hpp +13 -8
  84. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_states.hpp +3 -2
  85. package/src/duckdb/src/include/duckdb/common/types/vector.hpp +3 -3
  86. package/src/duckdb/src/include/duckdb/common/vector.hpp +2 -2
  87. package/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp +125 -146
  88. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp +5 -4
  89. package/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_window.hpp +4 -3
  90. package/src/duckdb/src/include/duckdb/execution/operator/{persistent → scan/csv}/base_csv_reader.hpp +17 -17
  91. package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/buffered_csv_reader.hpp +72 -0
  92. package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_buffer.hpp +110 -0
  93. package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_buffer_manager.hpp +103 -0
  94. package/src/duckdb/src/include/duckdb/execution/operator/{persistent → scan/csv}/csv_file_handle.hpp +8 -15
  95. package/src/duckdb/src/include/duckdb/execution/operator/{persistent → scan/csv}/csv_line_info.hpp +1 -1
  96. package/src/duckdb/src/include/duckdb/execution/operator/{persistent → scan/csv}/csv_reader_options.hpp +52 -28
  97. package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_sniffer.hpp +127 -0
  98. package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_state_machine.hpp +75 -0
  99. package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/csv_state_machine_cache.hpp +51 -0
  100. package/src/duckdb/src/include/duckdb/execution/operator/{persistent → scan/csv}/parallel_csv_reader.hpp +21 -27
  101. package/src/duckdb/src/include/duckdb/execution/operator/scan/csv/quote_rules.hpp +21 -0
  102. package/src/duckdb/src/include/duckdb/execution/radix_partitioned_hashtable.hpp +18 -27
  103. package/src/duckdb/src/include/duckdb/function/function_serialization.hpp +5 -6
  104. package/src/duckdb/src/include/duckdb/function/scalar/strftime_format.hpp +4 -4
  105. package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +17 -12
  106. package/src/duckdb/src/include/duckdb/main/client_context_file_opener.hpp +1 -0
  107. package/src/duckdb/src/include/duckdb/main/client_data.hpp +2 -1
  108. package/src/duckdb/src/include/duckdb/main/config.hpp +1 -0
  109. package/src/duckdb/src/include/duckdb/main/connection.hpp +2 -2
  110. package/src/duckdb/src/include/duckdb/main/relation/read_csv_relation.hpp +6 -6
  111. package/src/duckdb/src/include/duckdb/parallel/event.hpp +12 -1
  112. package/src/duckdb/src/include/duckdb/storage/block.hpp +6 -0
  113. package/src/duckdb/src/include/duckdb/storage/buffer/block_handle.hpp +3 -0
  114. package/src/duckdb/src/include/duckdb/storage/statistics/base_statistics.hpp +7 -3
  115. package/src/duckdb/src/include/duckdb/storage/statistics/column_statistics.hpp +4 -0
  116. package/src/duckdb/src/include/duckdb/storage/statistics/distinct_statistics.hpp +5 -0
  117. package/src/duckdb/src/include/duckdb/storage/statistics/list_stats.hpp +3 -0
  118. package/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats.hpp +3 -0
  119. package/src/duckdb/src/include/duckdb/storage/statistics/string_stats.hpp +3 -0
  120. package/src/duckdb/src/include/duckdb/storage/statistics/struct_stats.hpp +3 -0
  121. package/src/duckdb/src/include/duckdb/storage/table/chunk_info.hpp +15 -3
  122. package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +4 -0
  123. package/src/duckdb/src/include/duckdb/storage/table/table_statistics.hpp +5 -0
  124. package/src/duckdb/src/include/duckdb/verification/deserialized_statement_verifier_v2.hpp +6 -0
  125. package/src/duckdb/src/include/duckdb/verification/statement_verifier.hpp +1 -0
  126. package/src/duckdb/src/include/duckdb.h +12 -0
  127. package/src/duckdb/src/main/capi/logical_types-c.cpp +22 -0
  128. package/src/duckdb/src/main/client_context_file_opener.cpp +17 -0
  129. package/src/duckdb/src/main/client_verify.cpp +1 -0
  130. package/src/duckdb/src/main/config.cpp +2 -2
  131. package/src/duckdb/src/main/connection.cpp +3 -3
  132. package/src/duckdb/src/main/relation/read_csv_relation.cpp +19 -13
  133. package/src/duckdb/src/parallel/pipeline_finish_event.cpp +1 -1
  134. package/src/duckdb/src/parser/tableref/pivotref.cpp +0 -16
  135. package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +1 -1
  136. package/src/duckdb/src/planner/binder/statement/bind_export.cpp +41 -25
  137. package/src/duckdb/src/planner/expression/bound_aggregate_expression.cpp +4 -4
  138. package/src/duckdb/src/planner/expression/bound_window_expression.cpp +10 -10
  139. package/src/duckdb/src/planner/logical_operator.cpp +1 -1
  140. package/src/duckdb/src/planner/planner.cpp +1 -1
  141. package/src/duckdb/src/storage/checkpoint_manager.cpp +4 -3
  142. package/src/duckdb/src/storage/serialization/serialize_constraint.cpp +1 -1
  143. package/src/duckdb/src/storage/serialization/serialize_create_info.cpp +5 -5
  144. package/src/duckdb/src/storage/serialization/serialize_expression.cpp +10 -10
  145. package/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +20 -20
  146. package/src/duckdb/src/storage/serialization/serialize_macro_function.cpp +2 -2
  147. package/src/duckdb/src/storage/serialization/serialize_nodes.cpp +118 -89
  148. package/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +3 -3
  149. package/src/duckdb/src/storage/serialization/serialize_parsed_expression.cpp +27 -27
  150. package/src/duckdb/src/storage/serialization/serialize_query_node.cpp +16 -16
  151. package/src/duckdb/src/storage/serialization/serialize_result_modifier.cpp +8 -8
  152. package/src/duckdb/src/storage/serialization/serialize_statement.cpp +1 -1
  153. package/src/duckdb/src/storage/serialization/serialize_storage.cpp +39 -0
  154. package/src/duckdb/src/storage/serialization/serialize_tableref.cpp +9 -9
  155. package/src/duckdb/src/storage/statistics/base_statistics.cpp +67 -4
  156. package/src/duckdb/src/storage/statistics/column_statistics.cpp +16 -0
  157. package/src/duckdb/src/storage/statistics/list_stats.cpp +21 -0
  158. package/src/duckdb/src/storage/statistics/numeric_stats.cpp +126 -1
  159. package/src/duckdb/src/storage/statistics/string_stats.cpp +23 -0
  160. package/src/duckdb/src/storage/statistics/struct_stats.cpp +27 -0
  161. package/src/duckdb/src/storage/storage_info.cpp +1 -1
  162. package/src/duckdb/src/storage/table/chunk_info.cpp +82 -3
  163. package/src/duckdb/src/storage/table/row_group.cpp +68 -1
  164. package/src/duckdb/src/storage/table/table_statistics.cpp +21 -0
  165. package/src/duckdb/src/storage/wal_replay.cpp +2 -2
  166. package/src/duckdb/src/verification/deserialized_statement_verifier_v2.cpp +15 -1
  167. package/src/duckdb/src/verification/statement_verifier.cpp +2 -0
  168. package/src/duckdb/third_party/utf8proc/include/utf8proc_wrapper.hpp +8 -0
  169. package/src/duckdb/ub_src_execution.cpp +0 -2
  170. package/src/duckdb/ub_src_execution_operator_csv_scanner.cpp +18 -0
  171. package/src/duckdb/ub_src_execution_operator_csv_scanner_sniffer.cpp +12 -0
  172. package/src/duckdb/ub_src_execution_operator_persistent.cpp +0 -12
  173. package/src/duckdb/ub_src_storage_serialization.cpp +2 -0
  174. package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +0 -1487
  175. package/src/duckdb/src/execution/operator/persistent/csv_buffer.cpp +0 -72
  176. package/src/duckdb/src/execution/operator/persistent/csv_file_handle.cpp +0 -158
  177. package/src/duckdb/src/execution/partitionable_hashtable.cpp +0 -207
  178. package/src/duckdb/src/include/duckdb/execution/operator/persistent/buffered_csv_reader.hpp +0 -133
  179. package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_buffer.hpp +0 -74
  180. package/src/duckdb/src/include/duckdb/execution/partitionable_hashtable.hpp +0 -73
@@ -1,6 +1,5 @@
1
1
  #include "duckdb/storage/table/row_group.hpp"
2
2
  #include "duckdb/common/types/vector.hpp"
3
- #include "duckdb/transaction/transaction.hpp"
4
3
  #include "duckdb/common/exception.hpp"
5
4
  #include "duckdb/common/field_writer.hpp"
6
5
  #include "duckdb/storage/table/column_data.hpp"
@@ -18,6 +17,8 @@
18
17
  #include "duckdb/transaction/duck_transaction.hpp"
19
18
  #include "duckdb/storage/table/append_state.hpp"
20
19
  #include "duckdb/storage/table/scan_state.hpp"
20
+ #include "duckdb/common/serializer/format_serializer.hpp"
21
+ #include "duckdb/common/serializer/format_deserializer.hpp"
21
22
 
22
23
  namespace duckdb {
23
24
 
@@ -927,6 +928,72 @@ RowGroupPointer RowGroup::Deserialize(Deserializer &main_source, const vector<Lo
927
928
  return result;
928
929
  }
929
930
 
931
+ void RowGroup::FormatSerialize(RowGroupPointer &pointer, FormatSerializer &serializer) {
932
+ serializer.WriteProperty(100, "row_start", pointer.row_start);
933
+ serializer.WriteProperty(101, "tuple_count", pointer.tuple_count);
934
+ serializer.WriteProperty(102, "data_pointers", pointer.data_pointers);
935
+
936
+ // Checkpoint deletes
937
+ auto versions = pointer.versions.get();
938
+
939
+ if (!versions) {
940
+ // no version information: write nothing
941
+ serializer.WriteProperty(103, "versions_count", 0);
942
+ return;
943
+ }
944
+ // first count how many ChunkInfo's we need to deserialize
945
+ idx_t chunk_info_count = 0;
946
+ idx_t idx_map[ROW_GROUP_VECTOR_COUNT];
947
+ for (idx_t vector_idx = 0; vector_idx < RowGroup::ROW_GROUP_VECTOR_COUNT; vector_idx++) {
948
+ auto chunk_info = versions->info[vector_idx].get();
949
+ if (!chunk_info) {
950
+ continue;
951
+ }
952
+ idx_map[chunk_info_count++] = vector_idx;
953
+ }
954
+
955
+ // now serialize the actual version information
956
+ serializer.WriteProperty(103, "versions_count", chunk_info_count);
957
+ serializer.WriteList(104, "versions", chunk_info_count, [&](FormatSerializer::List &list, idx_t i) {
958
+ auto vector_idx = idx_map[i];
959
+ auto chunk_info = versions->info[vector_idx].get();
960
+ list.WriteObject([&](FormatSerializer &obj) {
961
+ obj.WriteProperty(100, "vector_index", vector_idx);
962
+ obj.WriteProperty(101, "chunk_info", const_cast<const ChunkInfo *>(chunk_info));
963
+ });
964
+ });
965
+ }
966
+
967
+ RowGroupPointer RowGroup::FormatDeserialize(FormatDeserializer &deserializer) {
968
+ RowGroupPointer result;
969
+ result.row_start = deserializer.ReadProperty<uint64_t>(100, "row_start");
970
+ result.tuple_count = deserializer.ReadProperty<uint64_t>(101, "tuple_count");
971
+ result.data_pointers = deserializer.ReadProperty<vector<MetaBlockPointer>>(102, "data_pointers");
972
+ result.versions = nullptr;
973
+ // Deserialize Deletes
974
+ auto chunk_count = deserializer.ReadProperty<idx_t>(103, "versions_count");
975
+ if (chunk_count == 0) {
976
+ // no deletes
977
+ return result;
978
+ }
979
+
980
+ auto version_info = make_shared<VersionNode>();
981
+ deserializer.ReadList(104, "versions", [&](FormatDeserializer::List &list, idx_t i) {
982
+ list.ReadObject([&](FormatDeserializer &obj) {
983
+ auto vector_index = obj.ReadProperty<idx_t>(100, "vector_index");
984
+ if (vector_index >= RowGroup::ROW_GROUP_VECTOR_COUNT) {
985
+ throw Exception("In DeserializeDeletes, vector_index is out of range for the row group. Corrupted "
986
+ "file?");
987
+ }
988
+ version_info->info[vector_index] = obj.ReadProperty<unique_ptr<ChunkInfo>>(101, "chunk_info");
989
+ });
990
+ });
991
+
992
+ result.versions = version_info;
993
+
994
+ return result;
995
+ }
996
+
930
997
  //===--------------------------------------------------------------------===//
931
998
  // GetColumnSegmentInfo
932
999
  //===--------------------------------------------------------------------===//
@@ -1,5 +1,7 @@
1
1
  #include "duckdb/storage/table/table_statistics.hpp"
2
2
  #include "duckdb/storage/table/persistent_table_data.hpp"
3
+ #include "duckdb/common/serializer/format_serializer.hpp"
4
+ #include "duckdb/common/serializer/format_deserializer.hpp"
3
5
 
4
6
  namespace duckdb {
5
7
 
@@ -112,6 +114,25 @@ void TableStatistics::Deserialize(Deserializer &source, ColumnList &columns) {
112
114
  }
113
115
  }
114
116
 
117
+ void TableStatistics::FormatSerialize(FormatSerializer &serializer) {
118
+ auto column_count = column_stats.size();
119
+ serializer.WriteList(100, "column_stats", column_count,
120
+ [&](FormatSerializer::List &list, idx_t i) { list.WriteElement(column_stats[i]); });
121
+ }
122
+
123
+ void TableStatistics::FormatDeserialize(FormatDeserializer &deserializer, ColumnList &columns) {
124
+ auto physical_columns = columns.Physical();
125
+ auto iter = physical_columns.begin();
126
+ deserializer.ReadList(100, "column_stats", [&](FormatDeserializer::List &list, idx_t i) {
127
+ auto &col = *iter.operator++();
128
+ auto type = col.GetType();
129
+ deserializer.Set<LogicalType &>(type);
130
+ auto stats = ColumnStatistics::FormatDeserialize(deserializer);
131
+ deserializer.Unset<LogicalType>();
132
+ column_stats.push_back(std::move(stats));
133
+ });
134
+ }
135
+
115
136
  unique_ptr<TableStatisticsLock> TableStatistics::GetLock() {
116
137
  return make_uniq<TableStatisticsLock>(stats_lock);
117
138
  }
@@ -53,7 +53,7 @@ bool WriteAheadLog::Replay(AttachedDatabase &database, string &path) {
53
53
  }
54
54
  }
55
55
  } catch (std::exception &ex) { // LCOV_EXCL_START
56
- Printer::Print(StringUtil::Format("Exception in WAL playback during initial read: %s\n", ex.what()));
56
+ Printer::PrintF("Exception in WAL playback during initial read: %s\n", ex.what());
57
57
  return false;
58
58
  } catch (...) {
59
59
  Printer::Print("Unknown Exception in WAL playback during initial read");
@@ -99,7 +99,7 @@ bool WriteAheadLog::Replay(AttachedDatabase &database, string &path) {
99
99
  }
100
100
  } catch (std::exception &ex) { // LCOV_EXCL_START
101
101
  // FIXME: this should report a proper warning in the connection
102
- Printer::Print(StringUtil::Format("Exception in WAL playback: %s\n", ex.what()));
102
+ Printer::PrintF("Exception in WAL playback: %s\n", ex.what());
103
103
  // exception thrown in WAL replay: rollback
104
104
  con.Rollback();
105
105
  } catch (...) {
@@ -11,10 +11,24 @@ DeserializedStatementVerifierV2::DeserializedStatementVerifierV2(unique_ptr<SQLS
11
11
  unique_ptr<StatementVerifier> DeserializedStatementVerifierV2::Create(const SQLStatement &statement) {
12
12
  auto &select_stmt = statement.Cast<SelectStatement>();
13
13
 
14
- auto blob = BinarySerializer::Serialize(select_stmt);
14
+ auto blob = BinarySerializer::Serialize(select_stmt, true);
15
15
  auto result = BinaryDeserializer::Deserialize<SelectStatement>(blob.data(), blob.size());
16
16
 
17
17
  return make_uniq<DeserializedStatementVerifierV2>(std::move(result));
18
18
  }
19
19
 
20
+ DeserializedStatementVerifierNoDefaultV2::DeserializedStatementVerifierNoDefaultV2(unique_ptr<SQLStatement> statement_p)
21
+ : StatementVerifier(VerificationType::DESERIALIZED_V2_NO_DEFAULT, "Deserialized V2 without default values",
22
+ std::move(statement_p)) {
23
+ }
24
+
25
+ unique_ptr<StatementVerifier> DeserializedStatementVerifierNoDefaultV2::Create(const SQLStatement &statement) {
26
+ auto &select_stmt = statement.Cast<SelectStatement>();
27
+
28
+ auto blob = BinarySerializer::Serialize(select_stmt, false);
29
+ auto result = BinaryDeserializer::Deserialize<SelectStatement>(blob.data(), blob.size());
30
+
31
+ return make_uniq<DeserializedStatementVerifierNoDefaultV2>(std::move(result));
32
+ }
33
+
20
34
  } // namespace duckdb
@@ -35,6 +35,8 @@ unique_ptr<StatementVerifier> StatementVerifier::Create(VerificationType type, c
35
35
  return DeserializedStatementVerifier::Create(statement_p);
36
36
  case VerificationType::DESERIALIZED_V2:
37
37
  return DeserializedStatementVerifierV2::Create(statement_p);
38
+ case VerificationType::DESERIALIZED_V2_NO_DEFAULT:
39
+ return DeserializedStatementVerifierNoDefaultV2::Create(statement_p);
38
40
  case VerificationType::PARSED:
39
41
  return ParsedStatementVerifier::Create(statement_p);
40
42
  case VerificationType::UNOPTIMIZED:
@@ -1,3 +1,11 @@
1
+ //===----------------------------------------------------------------------===//
2
+ // DuckDB
3
+ //
4
+ // utf8proc_wrapper.hpp
5
+ //
6
+ //
7
+ //===----------------------------------------------------------------------===//
8
+
1
9
  #pragma once
2
10
 
3
11
  #include <string>
@@ -12,8 +12,6 @@
12
12
 
13
13
  #include "src/execution/join_hashtable.cpp"
14
14
 
15
- #include "src/execution/partitionable_hashtable.cpp"
16
-
17
15
  #include "src/execution/perfect_aggregate_hashtable.cpp"
18
16
 
19
17
  #include "src/execution/physical_operator.cpp"
@@ -0,0 +1,18 @@
1
+ #include "src/execution/operator/csv_scanner/base_csv_reader.cpp"
2
+
3
+ #include "src/execution/operator/csv_scanner/buffered_csv_reader.cpp"
4
+
5
+ #include "src/execution/operator/csv_scanner/csv_buffer.cpp"
6
+
7
+ #include "src/execution/operator/csv_scanner/csv_buffer_manager.cpp"
8
+
9
+ #include "src/execution/operator/csv_scanner/csv_file_handle.cpp"
10
+
11
+ #include "src/execution/operator/csv_scanner/csv_reader_options.cpp"
12
+
13
+ #include "src/execution/operator/csv_scanner/csv_state_machine.cpp"
14
+
15
+ #include "src/execution/operator/csv_scanner/csv_state_machine_cache.cpp"
16
+
17
+ #include "src/execution/operator/csv_scanner/parallel_csv_reader.cpp"
18
+
@@ -0,0 +1,12 @@
1
+ #include "src/execution/operator/csv_scanner/sniffer/csv_sniffer.cpp"
2
+
3
+ #include "src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp"
4
+
5
+ #include "src/execution/operator/csv_scanner/sniffer/header_detection.cpp"
6
+
7
+ #include "src/execution/operator/csv_scanner/sniffer/type_detection.cpp"
8
+
9
+ #include "src/execution/operator/csv_scanner/sniffer/type_refinement.cpp"
10
+
11
+ #include "src/execution/operator/csv_scanner/sniffer/type_replacement.cpp"
12
+
@@ -1,15 +1,3 @@
1
- #include "src/execution/operator/persistent/base_csv_reader.cpp"
2
-
3
- #include "src/execution/operator/persistent/buffered_csv_reader.cpp"
4
-
5
- #include "src/execution/operator/persistent/parallel_csv_reader.cpp"
6
-
7
- #include "src/execution/operator/persistent/csv_buffer.cpp"
8
-
9
- #include "src/execution/operator/persistent/csv_file_handle.cpp"
10
-
11
- #include "src/execution/operator/persistent/csv_reader_options.cpp"
12
-
13
1
  #include "src/execution/operator/persistent/csv_rejects_table.cpp"
14
2
 
15
3
  #include "src/execution/operator/persistent/physical_fixed_batch_copy.cpp"
@@ -26,3 +26,5 @@
26
26
 
27
27
  #include "src/storage/serialization/serialize_types.cpp"
28
28
 
29
+ #include "src/storage/serialization/serialize_storage.cpp"
30
+