duckdb 0.7.2-dev3666.0 → 0.7.2-dev3763.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 (115) hide show
  1. package/package.json +1 -1
  2. package/src/database.cpp +0 -1
  3. package/src/duckdb/extension/json/json_functions/json_transform.cpp +1 -1
  4. package/src/duckdb/extension/json/json_functions/read_json.cpp +4 -4
  5. package/src/duckdb/extension/json/json_functions/read_json_objects.cpp +1 -1
  6. package/src/duckdb/extension/json/json_scan.cpp +16 -12
  7. package/src/duckdb/src/common/arrow/arrow_converter.cpp +4 -4
  8. package/src/duckdb/src/common/compressed_file_system.cpp +2 -2
  9. package/src/duckdb/src/common/exception.cpp +17 -0
  10. package/src/duckdb/src/common/exception_format_value.cpp +14 -0
  11. package/src/duckdb/src/common/file_system.cpp +53 -31
  12. package/src/duckdb/src/common/local_file_system.cpp +5 -3
  13. package/src/duckdb/src/common/row_operations/row_gather.cpp +2 -2
  14. package/src/duckdb/src/common/serializer/binary_deserializer.cpp +1 -1
  15. package/src/duckdb/src/common/serializer/buffered_file_reader.cpp +1 -1
  16. package/src/duckdb/src/common/serializer/buffered_file_writer.cpp +1 -1
  17. package/src/duckdb/src/common/serializer/buffered_serializer.cpp +3 -3
  18. package/src/duckdb/src/common/serializer.cpp +1 -1
  19. package/src/duckdb/src/common/sort/radix_sort.cpp +5 -5
  20. package/src/duckdb/src/common/string_util.cpp +6 -2
  21. package/src/duckdb/src/common/types/bit.cpp +2 -2
  22. package/src/duckdb/src/common/types/blob.cpp +2 -2
  23. package/src/duckdb/src/common/types/data_chunk.cpp +2 -2
  24. package/src/duckdb/src/common/types/date.cpp +1 -1
  25. package/src/duckdb/src/common/types/decimal.cpp +2 -2
  26. package/src/duckdb/src/common/types/selection_vector.cpp +1 -1
  27. package/src/duckdb/src/common/types/time.cpp +1 -1
  28. package/src/duckdb/src/common/types/vector.cpp +7 -7
  29. package/src/duckdb/src/common/types.cpp +1 -1
  30. package/src/duckdb/src/common/windows_util.cpp +2 -2
  31. package/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +1 -1
  32. package/src/duckdb/src/core_functions/scalar/list/list_lambdas.cpp +1 -1
  33. package/src/duckdb/src/core_functions/scalar/string/printf.cpp +1 -1
  34. package/src/duckdb/src/execution/aggregate_hashtable.cpp +1 -1
  35. package/src/duckdb/src/execution/join_hashtable.cpp +3 -3
  36. package/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp +2 -2
  37. package/src/duckdb/src/execution/operator/join/outer_join_marker.cpp +1 -1
  38. package/src/duckdb/src/execution/operator/join/perfect_hash_join_executor.cpp +1 -1
  39. package/src/duckdb/src/execution/operator/join/physical_range_join.cpp +1 -1
  40. package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +1 -1
  41. package/src/duckdb/src/execution/operator/persistent/physical_export.cpp +2 -2
  42. package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +91 -30
  43. package/src/duckdb/src/execution/operator/projection/physical_pivot.cpp +1 -1
  44. package/src/duckdb/src/execution/operator/schema/physical_create_index.cpp +1 -1
  45. package/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp +2 -2
  46. package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +3 -3
  47. package/src/duckdb/src/execution/window_segment_tree.cpp +1 -1
  48. package/src/duckdb/src/function/pragma/pragma_queries.cpp +2 -2
  49. package/src/duckdb/src/function/scalar/strftime_format.cpp +1 -1
  50. package/src/duckdb/src/function/scalar/string/concat.cpp +1 -1
  51. package/src/duckdb/src/function/scalar/string/like.cpp +2 -2
  52. package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +5 -5
  53. package/src/duckdb/src/function/table/copy_csv.cpp +1 -1
  54. package/src/duckdb/src/function/table/read_csv.cpp +3 -0
  55. package/src/duckdb/src/function/table/table_scan.cpp +7 -3
  56. package/src/duckdb/src/function/table/version/pragma_version.cpp +4 -6
  57. package/src/duckdb/src/include/duckdb/common/compressed_file_system.hpp +2 -2
  58. package/src/duckdb/src/include/duckdb/common/exception_format_value.hpp +26 -0
  59. package/src/duckdb/src/include/duckdb/common/file_system.hpp +6 -0
  60. package/src/duckdb/src/include/duckdb/common/helper.hpp +9 -9
  61. package/src/duckdb/src/include/duckdb/common/http_state.hpp +2 -2
  62. package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_reader.hpp +1 -1
  63. package/src/duckdb/src/include/duckdb/common/serializer/buffered_file_writer.hpp +1 -1
  64. package/src/duckdb/src/include/duckdb/common/serializer/buffered_serializer.hpp +2 -2
  65. package/src/duckdb/src/include/duckdb/common/sort/duckdb_pdqsort.hpp +10 -10
  66. package/src/duckdb/src/include/duckdb/common/string_util.hpp +20 -0
  67. package/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +1 -1
  68. package/src/duckdb/src/include/duckdb/common/types/selection_vector.hpp +1 -1
  69. package/src/duckdb/src/include/duckdb/common/types/validity_mask.hpp +3 -3
  70. package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +4 -4
  71. package/src/duckdb/src/include/duckdb/common/unique_ptr.hpp +8 -8
  72. package/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp +1 -1
  73. package/src/duckdb/src/include/duckdb/execution/join_hashtable.hpp +3 -3
  74. package/src/duckdb/src/include/duckdb/execution/operator/join/outer_join_marker.hpp +1 -1
  75. package/src/duckdb/src/include/duckdb/execution/operator/join/perfect_hash_join_executor.hpp +1 -1
  76. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_range_join.hpp +1 -1
  77. package/src/duckdb/src/include/duckdb/execution/operator/persistent/buffered_csv_reader.hpp +2 -2
  78. package/src/duckdb/src/include/duckdb/execution/operator/persistent/parallel_csv_reader.hpp +2 -2
  79. package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_insert.hpp +2 -3
  80. package/src/duckdb/src/include/duckdb/execution/perfect_aggregate_hashtable.hpp +2 -2
  81. package/src/duckdb/src/include/duckdb/execution/window_segment_tree.hpp +1 -1
  82. package/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +1 -1
  83. package/src/duckdb/src/include/duckdb/main/client_data.hpp +1 -1
  84. package/src/duckdb/src/include/duckdb/optimizer/join_order/join_relation.hpp +3 -3
  85. package/src/duckdb/src/include/duckdb/parser/expression/function_expression.hpp +1 -1
  86. package/src/duckdb/src/include/duckdb/parser/expression/operator_expression.hpp +2 -2
  87. package/src/duckdb/src/include/duckdb/parser/keyword_helper.hpp +5 -0
  88. package/src/duckdb/src/include/duckdb/storage/data_table.hpp +4 -0
  89. package/src/duckdb/src/include/duckdb/storage/statistics/base_statistics.hpp +1 -1
  90. package/src/duckdb/src/include/duckdb/storage/table/append_state.hpp +1 -1
  91. package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +1 -1
  92. package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +5 -5
  93. package/src/duckdb/src/include/duckdb/storage/table/update_segment.hpp +2 -2
  94. package/src/duckdb/src/include/duckdb/transaction/local_storage.hpp +1 -1
  95. package/src/duckdb/src/main/client_context.cpp +4 -4
  96. package/src/duckdb/src/main/db_instance_cache.cpp +5 -3
  97. package/src/duckdb/src/main/extension/extension_install.cpp +22 -18
  98. package/src/duckdb/src/optimizer/join_order/join_relation_set.cpp +5 -5
  99. package/src/duckdb/src/parser/expression/collate_expression.cpp +1 -1
  100. package/src/duckdb/src/parser/keyword_helper.cpp +11 -1
  101. package/src/duckdb/src/parser/query_node/select_node.cpp +1 -1
  102. package/src/duckdb/src/parser/statement/copy_statement.cpp +2 -2
  103. package/src/duckdb/src/parser/tableref.cpp +1 -1
  104. package/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp +7 -1
  105. package/src/duckdb/src/planner/expression_binder/index_binder.cpp +1 -1
  106. package/src/duckdb/src/storage/checkpoint/write_overflow_strings_to_disk.cpp +1 -1
  107. package/src/duckdb/src/storage/compression/string_uncompressed.cpp +2 -2
  108. package/src/duckdb/src/storage/data_table.cpp +75 -44
  109. package/src/duckdb/src/storage/local_storage.cpp +1 -1
  110. package/src/duckdb/src/storage/statistics/list_stats.cpp +1 -1
  111. package/src/duckdb/src/storage/statistics/struct_stats.cpp +1 -1
  112. package/src/duckdb/src/storage/storage_manager.cpp +3 -0
  113. package/src/duckdb/src/storage/table/row_group.cpp +11 -11
  114. package/src/duckdb/src/storage/table/scan_state.cpp +1 -1
  115. package/src/duckdb/src/storage/table/update_segment.cpp +6 -6
@@ -81,7 +81,7 @@ idx_t RowGroup::GetColumnCount() const {
81
81
  return columns.size();
82
82
  }
83
83
 
84
- ColumnData &RowGroup::GetColumn(idx_t c) {
84
+ ColumnData &RowGroup::GetColumn(storage_t c) {
85
85
  D_ASSERT(c < columns.size());
86
86
  if (!is_loaded) {
87
87
  // not being lazy loaded
@@ -155,7 +155,7 @@ void ColumnScanState::Initialize(const LogicalType &type) {
155
155
 
156
156
  void CollectionScanState::Initialize(const vector<LogicalType> &types) {
157
157
  auto &column_ids = GetColumnIds();
158
- column_scans = make_unsafe_array<ColumnScanState>(column_ids.size());
158
+ column_scans = make_unsafe_uniq_array<ColumnScanState>(column_ids.size());
159
159
  for (idx_t i = 0; i < column_ids.size(); i++) {
160
160
  if (column_ids[i] == COLUMN_IDENTIFIER_ROW_ID) {
161
161
  continue;
@@ -179,7 +179,7 @@ bool RowGroup::InitializeScanWithOffset(CollectionScanState &state, idx_t vector
179
179
  this->start > state.max_row ? 0 : MinValue<idx_t>(this->count, state.max_row - this->start);
180
180
  D_ASSERT(state.column_scans);
181
181
  for (idx_t i = 0; i < column_ids.size(); i++) {
182
- auto column = column_ids[i];
182
+ const auto &column = column_ids[i];
183
183
  if (column != COLUMN_IDENTIFIER_ROW_ID) {
184
184
  auto &column_data = GetColumn(column);
185
185
  column_data.InitializeScanWithOffset(state.column_scans[i], start + vector_offset * STANDARD_VECTOR_SIZE);
@@ -334,9 +334,9 @@ void RowGroup::CommitDropColumn(idx_t column_idx) {
334
334
 
335
335
  void RowGroup::NextVector(CollectionScanState &state) {
336
336
  state.vector_index++;
337
- auto &column_ids = state.GetColumnIds();
337
+ const auto &column_ids = state.GetColumnIds();
338
338
  for (idx_t i = 0; i < column_ids.size(); i++) {
339
- auto column = column_ids[i];
339
+ const auto &column = column_ids[i];
340
340
  if (column == COLUMN_IDENTIFIER_ROW_ID) {
341
341
  continue;
342
342
  }
@@ -345,11 +345,11 @@ void RowGroup::NextVector(CollectionScanState &state) {
345
345
  }
346
346
  }
347
347
 
348
- bool RowGroup::CheckZonemap(TableFilterSet &filters, const vector<column_t> &column_ids) {
348
+ bool RowGroup::CheckZonemap(TableFilterSet &filters, const vector<storage_t> &column_ids) {
349
349
  for (auto &entry : filters.filters) {
350
350
  auto column_index = entry.first;
351
351
  auto &filter = entry.second;
352
- auto base_column_index = column_ids[column_index];
352
+ const auto &base_column_index = column_ids[column_index];
353
353
  if (!GetColumn(base_column_index).CheckZonemap(*filter)) {
354
354
  return false;
355
355
  }
@@ -366,7 +366,7 @@ bool RowGroup::CheckZonemapSegments(CollectionScanState &state) {
366
366
  for (auto &entry : filters->filters) {
367
367
  D_ASSERT(entry.first < column_ids.size());
368
368
  auto column_idx = entry.first;
369
- auto base_column_idx = column_ids[column_idx];
369
+ const auto &base_column_idx = column_ids[column_idx];
370
370
  bool read_segment = GetColumn(base_column_idx).CheckZonemap(state.column_scans[column_idx], *entry.second);
371
371
  if (!read_segment) {
372
372
  idx_t target_row =
@@ -398,7 +398,7 @@ void RowGroup::TemplatedScan(TransactionData transaction, CollectionScanState &s
398
398
  const bool ALLOW_UPDATES = TYPE != TableScanType::TABLE_SCAN_COMMITTED_ROWS_DISALLOW_UPDATES &&
399
399
  TYPE != TableScanType::TABLE_SCAN_COMMITTED_ROWS_OMIT_PERMANENTLY_DELETED;
400
400
  auto table_filters = state.GetFilters();
401
- auto &column_ids = state.GetColumnIds();
401
+ const auto &column_ids = state.GetColumnIds();
402
402
  auto adaptive_filter = state.GetAdaptiveFilter();
403
403
  while (true) {
404
404
  if (state.vector_index * STANDARD_VECTOR_SIZE >= state.max_row_group_row) {
@@ -436,7 +436,7 @@ void RowGroup::TemplatedScan(TransactionData transaction, CollectionScanState &s
436
436
  if (count == max_count && !table_filters) {
437
437
  // scan all vectors completely: full scan without deletions or table filters
438
438
  for (idx_t i = 0; i < column_ids.size(); i++) {
439
- auto column = column_ids[i];
439
+ const auto &column = column_ids[i];
440
440
  if (column == COLUMN_IDENTIFIER_ROW_ID) {
441
441
  // scan row id
442
442
  D_ASSERT(result.data[i].GetType().InternalType() == ROW_TYPE);
@@ -695,7 +695,7 @@ void RowGroup::InitializeAppend(RowGroupAppendState &append_state) {
695
695
  append_state.row_group = this;
696
696
  append_state.offset_in_row_group = this->count;
697
697
  // for each column, initialize the append state
698
- append_state.states = make_unsafe_array<ColumnAppendState>(GetColumnCount());
698
+ append_state.states = make_unsafe_uniq_array<ColumnAppendState>(GetColumnCount());
699
699
  for (idx_t i = 0; i < GetColumnCount(); i++) {
700
700
  auto &col_data = GetColumn(i);
701
701
  col_data.InitializeAppend(append_state.states[i]);
@@ -55,7 +55,7 @@ void ColumnScanState::Next(idx_t count) {
55
55
  }
56
56
  }
57
57
 
58
- const vector<column_t> &CollectionScanState::GetColumnIds() {
58
+ const vector<storage_t> &CollectionScanState::GetColumnIds() {
59
59
  return parent.GetColumnIds();
60
60
  }
61
61
 
@@ -1043,8 +1043,8 @@ static idx_t SortSelectionVector(SelectionVector &sel, idx_t count, row_t *ids)
1043
1043
  }
1044
1044
 
1045
1045
  UpdateInfo *CreateEmptyUpdateInfo(TransactionData transaction, idx_t type_size, idx_t count,
1046
- unsafe_array_ptr<char> &data) {
1047
- data = make_unsafe_array<char>(sizeof(UpdateInfo) + (sizeof(sel_t) + type_size) * STANDARD_VECTOR_SIZE);
1046
+ unsafe_unique_array<char> &data) {
1047
+ data = make_unsafe_uniq_array<char>(sizeof(UpdateInfo) + (sizeof(sel_t) + type_size) * STANDARD_VECTOR_SIZE);
1048
1048
  auto update_info = (UpdateInfo *)data.get();
1049
1049
  update_info->max = STANDARD_VECTOR_SIZE;
1050
1050
  update_info->tuples = (sel_t *)(((data_ptr_t)update_info) + sizeof(UpdateInfo));
@@ -1110,7 +1110,7 @@ void UpdateSegment::Update(TransactionData transaction, idx_t column_index, Vect
1110
1110
  }
1111
1111
  node = node->next;
1112
1112
  }
1113
- unsafe_array_ptr<char> update_info_data;
1113
+ unsafe_unique_array<char> update_info_data;
1114
1114
  if (!node) {
1115
1115
  // no updates made yet by this transaction: initially the update info to empty
1116
1116
  if (transaction.transaction) {
@@ -1145,8 +1145,8 @@ void UpdateSegment::Update(TransactionData transaction, idx_t column_index, Vect
1145
1145
  auto result = make_uniq<UpdateNodeData>();
1146
1146
 
1147
1147
  result->info = make_uniq<UpdateInfo>();
1148
- result->tuples = make_unsafe_array<sel_t>(STANDARD_VECTOR_SIZE);
1149
- result->tuple_data = make_unsafe_array<data_t>(STANDARD_VECTOR_SIZE * type_size);
1148
+ result->tuples = make_unsafe_uniq_array<sel_t>(STANDARD_VECTOR_SIZE);
1149
+ result->tuple_data = make_unsafe_uniq_array<data_t>(STANDARD_VECTOR_SIZE * type_size);
1150
1150
  result->info->tuples = result->tuples.get();
1151
1151
  result->info->tuple_data = result->tuple_data.get();
1152
1152
  result->info->version_number = TRANSACTION_ID_START - 1;
@@ -1154,7 +1154,7 @@ void UpdateSegment::Update(TransactionData transaction, idx_t column_index, Vect
1154
1154
  InitializeUpdateInfo(*result->info, ids, sel, count, vector_index, vector_offset);
1155
1155
 
1156
1156
  // now create the transaction level update info in the undo log
1157
- unsafe_array_ptr<char> update_info_data;
1157
+ unsafe_unique_array<char> update_info_data;
1158
1158
  UpdateInfo *transaction_node;
1159
1159
  if (transaction.transaction) {
1160
1160
  transaction_node = transaction.transaction->CreateUpdateInfo(type_size, count);