duckdb 0.7.2-dev1898.0 → 0.7.2-dev2144.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 (181) hide show
  1. package/binding.gyp +2 -0
  2. package/package.json +1 -1
  3. package/src/data_chunk.cpp +13 -1
  4. package/src/duckdb/extension/parquet/include/parquet_writer.hpp +1 -1
  5. package/src/duckdb/extension/parquet/parquet_metadata.cpp +4 -2
  6. package/src/duckdb/src/catalog/catalog_entry/duck_index_entry.cpp +1 -1
  7. package/src/duckdb/src/common/arrow/arrow_appender.cpp +69 -44
  8. package/src/duckdb/src/common/arrow/arrow_converter.cpp +1 -1
  9. package/src/duckdb/src/common/arrow/arrow_wrapper.cpp +20 -2
  10. package/src/duckdb/src/common/box_renderer.cpp +4 -2
  11. package/src/duckdb/src/common/constants.cpp +10 -1
  12. package/src/duckdb/src/common/filename_pattern.cpp +41 -0
  13. package/src/duckdb/src/common/hive_partitioning.cpp +144 -15
  14. package/src/duckdb/src/common/radix_partitioning.cpp +101 -369
  15. package/src/duckdb/src/common/row_operations/row_aggregate.cpp +8 -9
  16. package/src/duckdb/src/common/row_operations/row_external.cpp +1 -1
  17. package/src/duckdb/src/common/row_operations/row_gather.cpp +5 -3
  18. package/src/duckdb/src/common/row_operations/row_match.cpp +117 -22
  19. package/src/duckdb/src/common/row_operations/row_scatter.cpp +2 -2
  20. package/src/duckdb/src/common/sort/partition_state.cpp +1 -1
  21. package/src/duckdb/src/common/sort/sort_state.cpp +2 -1
  22. package/src/duckdb/src/common/sort/sorted_block.cpp +1 -1
  23. package/src/duckdb/src/common/types/{column_data_allocator.cpp → column/column_data_allocator.cpp} +2 -2
  24. package/src/duckdb/src/common/types/{column_data_collection.cpp → column/column_data_collection.cpp} +22 -4
  25. package/src/duckdb/src/common/types/{column_data_collection_segment.cpp → column/column_data_collection_segment.cpp} +2 -1
  26. package/src/duckdb/src/common/types/{column_data_consumer.cpp → column/column_data_consumer.cpp} +1 -1
  27. package/src/duckdb/src/common/types/{partitioned_column_data.cpp → column/partitioned_column_data.cpp} +11 -9
  28. package/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp +316 -0
  29. package/src/duckdb/src/common/types/{row_data_collection.cpp → row/row_data_collection.cpp} +1 -1
  30. package/src/duckdb/src/common/types/{row_data_collection_scanner.cpp → row/row_data_collection_scanner.cpp} +2 -2
  31. package/src/duckdb/src/common/types/{row_layout.cpp → row/row_layout.cpp} +1 -1
  32. package/src/duckdb/src/common/types/row/tuple_data_allocator.cpp +465 -0
  33. package/src/duckdb/src/common/types/row/tuple_data_collection.cpp +511 -0
  34. package/src/duckdb/src/common/types/row/tuple_data_iterator.cpp +96 -0
  35. package/src/duckdb/src/common/types/row/tuple_data_layout.cpp +119 -0
  36. package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +1200 -0
  37. package/src/duckdb/src/common/types/row/tuple_data_segment.cpp +170 -0
  38. package/src/duckdb/src/common/types/vector.cpp +1 -1
  39. package/src/duckdb/src/execution/aggregate_hashtable.cpp +252 -290
  40. package/src/duckdb/src/execution/join_hashtable.cpp +192 -328
  41. package/src/duckdb/src/execution/operator/aggregate/physical_window.cpp +4 -4
  42. package/src/duckdb/src/execution/operator/helper/physical_execute.cpp +3 -3
  43. package/src/duckdb/src/execution/operator/helper/physical_limit_percent.cpp +2 -3
  44. package/src/duckdb/src/execution/operator/helper/physical_result_collector.cpp +2 -3
  45. package/src/duckdb/src/execution/operator/join/perfect_hash_join_executor.cpp +36 -21
  46. package/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp +2 -2
  47. package/src/duckdb/src/execution/operator/join/physical_cross_product.cpp +1 -1
  48. package/src/duckdb/src/execution/operator/join/physical_delim_join.cpp +2 -2
  49. package/src/duckdb/src/execution/operator/join/physical_hash_join.cpp +166 -144
  50. package/src/duckdb/src/execution/operator/join/physical_index_join.cpp +5 -5
  51. package/src/duckdb/src/execution/operator/join/physical_join.cpp +2 -10
  52. package/src/duckdb/src/execution/operator/join/physical_positional_join.cpp +0 -1
  53. package/src/duckdb/src/execution/operator/order/physical_top_n.cpp +2 -2
  54. package/src/duckdb/src/execution/operator/persistent/physical_copy_to_file.cpp +13 -11
  55. package/src/duckdb/src/execution/operator/persistent/physical_delete.cpp +3 -2
  56. package/src/duckdb/src/execution/operator/persistent/physical_export.cpp +25 -24
  57. package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +1 -1
  58. package/src/duckdb/src/execution/operator/persistent/physical_update.cpp +4 -3
  59. package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +1 -1
  60. package/src/duckdb/src/execution/operator/set/physical_recursive_cte.cpp +3 -3
  61. package/src/duckdb/src/execution/partitionable_hashtable.cpp +9 -37
  62. package/src/duckdb/src/execution/physical_operator.cpp +1 -1
  63. package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +19 -18
  64. package/src/duckdb/src/execution/physical_plan/plan_copy_to_file.cpp +2 -1
  65. package/src/duckdb/src/execution/physical_plan/plan_execute.cpp +2 -2
  66. package/src/duckdb/src/execution/physical_plan/plan_explain.cpp +5 -6
  67. package/src/duckdb/src/execution/physical_plan/plan_expression_get.cpp +2 -2
  68. package/src/duckdb/src/execution/physical_plan/plan_recursive_cte.cpp +3 -3
  69. package/src/duckdb/src/execution/physical_plan_generator.cpp +1 -1
  70. package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +39 -17
  71. package/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +2 -2
  72. package/src/duckdb/src/function/table/pragma_detailed_profiling_output.cpp +5 -5
  73. package/src/duckdb/src/function/table/pragma_last_profiling_output.cpp +2 -2
  74. package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
  75. package/src/duckdb/src/include/duckdb/catalog/catalog_entry/index_catalog_entry.hpp +1 -1
  76. package/src/duckdb/src/include/duckdb/common/arrow/arrow_appender.hpp +1 -1
  77. package/src/duckdb/src/include/duckdb/common/constants.hpp +2 -0
  78. package/src/duckdb/src/include/duckdb/common/exception.hpp +3 -0
  79. package/src/duckdb/src/include/duckdb/common/fast_mem.hpp +528 -0
  80. package/src/duckdb/src/include/duckdb/common/filename_pattern.hpp +34 -0
  81. package/src/duckdb/src/include/duckdb/common/helper.hpp +10 -0
  82. package/src/duckdb/src/include/duckdb/common/hive_partitioning.hpp +13 -3
  83. package/src/duckdb/src/include/duckdb/common/optional_ptr.hpp +8 -0
  84. package/src/duckdb/src/include/duckdb/common/perfect_map_set.hpp +34 -0
  85. package/src/duckdb/src/include/duckdb/common/radix_partitioning.hpp +80 -27
  86. package/src/duckdb/src/include/duckdb/common/reference_map.hpp +38 -0
  87. package/src/duckdb/src/include/duckdb/common/row_operations/row_operations.hpp +7 -6
  88. package/src/duckdb/src/include/duckdb/common/sort/comparators.hpp +1 -1
  89. package/src/duckdb/src/include/duckdb/common/sort/partition_state.hpp +1 -1
  90. package/src/duckdb/src/include/duckdb/common/sort/sort.hpp +1 -1
  91. package/src/duckdb/src/include/duckdb/common/sort/sorted_block.hpp +2 -2
  92. package/src/duckdb/src/include/duckdb/common/types/batched_data_collection.hpp +1 -1
  93. package/src/duckdb/src/include/duckdb/common/types/{column_data_allocator.hpp → column/column_data_allocator.hpp} +4 -4
  94. package/src/duckdb/src/include/duckdb/common/types/{column_data_collection.hpp → column/column_data_collection.hpp} +2 -2
  95. package/src/duckdb/src/include/duckdb/common/types/{column_data_collection_iterators.hpp → column/column_data_collection_iterators.hpp} +2 -2
  96. package/src/duckdb/src/include/duckdb/common/types/{column_data_collection_segment.hpp → column/column_data_collection_segment.hpp} +3 -3
  97. package/src/duckdb/src/include/duckdb/common/types/{column_data_consumer.hpp → column/column_data_consumer.hpp} +8 -4
  98. package/src/duckdb/src/include/duckdb/common/types/{column_data_scan_states.hpp → column/column_data_scan_states.hpp} +1 -1
  99. package/src/duckdb/src/include/duckdb/common/types/{partitioned_column_data.hpp → column/partitioned_column_data.hpp} +15 -7
  100. package/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +140 -0
  101. package/src/duckdb/src/include/duckdb/common/types/{row_data_collection.hpp → row/row_data_collection.hpp} +1 -1
  102. package/src/duckdb/src/include/duckdb/common/types/{row_data_collection_scanner.hpp → row/row_data_collection_scanner.hpp} +2 -2
  103. package/src/duckdb/src/include/duckdb/common/types/{row_layout.hpp → row/row_layout.hpp} +3 -1
  104. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_allocator.hpp +116 -0
  105. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_collection.hpp +239 -0
  106. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_iterator.hpp +64 -0
  107. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_layout.hpp +113 -0
  108. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_segment.hpp +124 -0
  109. package/src/duckdb/src/include/duckdb/common/types/row/tuple_data_states.hpp +74 -0
  110. package/src/duckdb/src/include/duckdb/common/types/validity_mask.hpp +3 -0
  111. package/src/duckdb/src/include/duckdb/common/types/value.hpp +4 -12
  112. package/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp +34 -31
  113. package/src/duckdb/src/include/duckdb/execution/base_aggregate_hashtable.hpp +2 -2
  114. package/src/duckdb/src/include/duckdb/execution/execution_context.hpp +3 -2
  115. package/src/duckdb/src/include/duckdb/execution/expression_executor.hpp +1 -1
  116. package/src/duckdb/src/include/duckdb/execution/join_hashtable.hpp +41 -67
  117. package/src/duckdb/src/include/duckdb/execution/nested_loop_join.hpp +1 -1
  118. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_execute.hpp +2 -2
  119. package/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp +1 -1
  120. package/src/duckdb/src/include/duckdb/execution/operator/join/outer_join_marker.hpp +2 -2
  121. package/src/duckdb/src/include/duckdb/execution/operator/join/perfect_hash_join_executor.hpp +1 -1
  122. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_cross_product.hpp +1 -1
  123. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_hash_join.hpp +0 -2
  124. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_index_join.hpp +2 -2
  125. package/src/duckdb/src/include/duckdb/execution/operator/join/physical_positional_join.hpp +1 -1
  126. package/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_copy_to_file.hpp +4 -1
  127. package/src/duckdb/src/include/duckdb/execution/operator/scan/physical_column_data_scan.hpp +1 -1
  128. package/src/duckdb/src/include/duckdb/execution/operator/set/physical_recursive_cte.hpp +1 -1
  129. package/src/duckdb/src/include/duckdb/execution/partitionable_hashtable.hpp +2 -2
  130. package/src/duckdb/src/include/duckdb/main/materialized_query_result.hpp +1 -1
  131. package/src/duckdb/src/include/duckdb/main/query_result.hpp +14 -1
  132. package/src/duckdb/src/include/duckdb/optimizer/expression_rewriter.hpp +3 -3
  133. package/src/duckdb/src/include/duckdb/optimizer/join_order/cardinality_estimator.hpp +16 -16
  134. package/src/duckdb/src/include/duckdb/optimizer/join_order/join_node.hpp +8 -8
  135. package/src/duckdb/src/include/duckdb/optimizer/join_order/join_order_optimizer.hpp +23 -15
  136. package/src/duckdb/src/include/duckdb/optimizer/join_order/join_relation.hpp +9 -10
  137. package/src/duckdb/src/include/duckdb/optimizer/join_order/query_graph.hpp +18 -11
  138. package/src/duckdb/src/include/duckdb/parallel/meta_pipeline.hpp +1 -1
  139. package/src/duckdb/src/include/duckdb/parser/parsed_data/exported_table_data.hpp +5 -1
  140. package/src/duckdb/src/include/duckdb/parser/parsed_data/vacuum_info.hpp +3 -2
  141. package/src/duckdb/src/include/duckdb/parser/query_error_context.hpp +4 -2
  142. package/src/duckdb/src/include/duckdb/parser/transformer.hpp +9 -35
  143. package/src/duckdb/src/include/duckdb/planner/binder.hpp +24 -23
  144. package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +3 -3
  145. package/src/duckdb/src/include/duckdb/planner/operator/logical_column_data_get.hpp +1 -1
  146. package/src/duckdb/src/include/duckdb/planner/operator/logical_copy_to_file.hpp +3 -1
  147. package/src/duckdb/src/include/duckdb/storage/table/table_index_list.hpp +1 -1
  148. package/src/duckdb/src/main/appender.cpp +6 -6
  149. package/src/duckdb/src/main/client_context.cpp +1 -1
  150. package/src/duckdb/src/main/connection.cpp +2 -2
  151. package/src/duckdb/src/main/query_result.cpp +13 -0
  152. package/src/duckdb/src/optimizer/expression_rewriter.cpp +4 -4
  153. package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +91 -105
  154. package/src/duckdb/src/optimizer/join_order/join_node.cpp +5 -8
  155. package/src/duckdb/src/optimizer/join_order/join_order_optimizer.cpp +163 -160
  156. package/src/duckdb/src/optimizer/join_order/join_relation_set.cpp +30 -30
  157. package/src/duckdb/src/optimizer/join_order/query_graph.cpp +37 -38
  158. package/src/duckdb/src/parallel/executor.cpp +1 -1
  159. package/src/duckdb/src/parallel/meta_pipeline.cpp +2 -2
  160. package/src/duckdb/src/parser/transform/helpers/transform_cte.cpp +1 -1
  161. package/src/duckdb/src/parser/transform/tableref/transform_subquery.cpp +1 -1
  162. package/src/duckdb/src/parser/transformer.cpp +50 -9
  163. package/src/duckdb/src/planner/binder/statement/bind_copy.cpp +15 -5
  164. package/src/duckdb/src/planner/binder/statement/bind_create.cpp +19 -17
  165. package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +4 -4
  166. package/src/duckdb/src/planner/binder/statement/bind_export.cpp +20 -21
  167. package/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp +24 -22
  168. package/src/duckdb/src/planner/binder/tableref/bind_subqueryref.cpp +2 -2
  169. package/src/duckdb/src/planner/binder.cpp +16 -19
  170. package/src/duckdb/src/planner/expression_binder.cpp +8 -8
  171. package/src/duckdb/src/planner/operator/logical_copy_to_file.cpp +3 -3
  172. package/src/duckdb/src/storage/checkpoint_manager.cpp +23 -23
  173. package/src/duckdb/src/storage/standard_buffer_manager.cpp +1 -1
  174. package/src/duckdb/src/storage/table_index_list.cpp +3 -3
  175. package/src/duckdb/src/verification/statement_verifier.cpp +1 -1
  176. package/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +5552 -5598
  177. package/src/duckdb/ub_src_common.cpp +2 -0
  178. package/src/duckdb/ub_src_common_types.cpp +0 -16
  179. package/src/duckdb/ub_src_common_types_column.cpp +10 -0
  180. package/src/duckdb/ub_src_common_types_row.cpp +20 -0
  181. package/test/udf.test.ts +9 -0
@@ -1,8 +1,9 @@
1
1
  #include "duckdb/execution/radix_partitioned_hashtable.hpp"
2
- #include "duckdb/parallel/task_scheduler.hpp"
2
+
3
3
  #include "duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp"
4
- #include "duckdb/planner/expression/bound_reference_expression.hpp"
5
4
  #include "duckdb/parallel/event.hpp"
5
+ #include "duckdb/parallel/task_scheduler.hpp"
6
+ #include "duckdb/planner/expression/bound_reference_expression.hpp"
6
7
 
7
8
  namespace duckdb {
8
9
 
@@ -334,7 +335,7 @@ public:
334
335
  //! The current position to scan the HT for output tuples
335
336
  idx_t ht_index;
336
337
  //! The set of aggregate scan states
337
- unique_ptr<AggregateHTScanState[]> ht_scan_states;
338
+ unique_ptr<TupleDataParallelScanState[]> ht_scan_states;
338
339
  atomic<bool> initialized;
339
340
  atomic<bool> finished;
340
341
  };
@@ -352,8 +353,12 @@ public:
352
353
 
353
354
  //! Materialized GROUP BY expressions & aggregates
354
355
  DataChunk scan_chunk;
356
+ //! HT index
357
+ idx_t ht_index = DConstants::INVALID_INDEX;
355
358
  //! A reference to the current HT that we are scanning
356
359
  shared_ptr<GroupedAggregateHashTable> ht;
360
+ //! Scan state for the current HT
361
+ TupleDataLocalScanState scan_state;
357
362
  };
358
363
 
359
364
  unique_ptr<GlobalSourceState> RadixPartitionedHashTable::GetGlobalSourceState(ClientContext &context) const {
@@ -372,7 +377,7 @@ idx_t RadixPartitionedHashTable::Size(GlobalSinkState &sink_state) const {
372
377
 
373
378
  idx_t count = 0;
374
379
  for (const auto &ht : gstate.finalized_hts) {
375
- count += ht->Size();
380
+ count += ht->Count();
376
381
  }
377
382
  return count;
378
383
  }
@@ -425,20 +430,32 @@ void RadixPartitionedHashTable::GetData(ExecutionContext &context, DataChunk &ch
425
430
  idx_t elements_found = 0;
426
431
 
427
432
  lstate.scan_chunk.Reset();
428
- lstate.ht.reset();
429
433
  if (!state.initialized) {
430
434
  lock_guard<mutex> l(state.lock);
431
- if (!state.ht_scan_states) {
435
+ if (!state.initialized) {
436
+ auto &finalized_hts = gstate.finalized_hts;
432
437
  state.ht_scan_states =
433
- unique_ptr<AggregateHTScanState[]>(new AggregateHTScanState[gstate.finalized_hts.size()]);
434
- } else {
435
- D_ASSERT(state.initialized);
438
+ unique_ptr<TupleDataParallelScanState[]>(new TupleDataParallelScanState[finalized_hts.size()]);
439
+
440
+ const auto &layout = gstate.finalized_hts[0]->GetDataCollection().GetLayout();
441
+ vector<column_t> column_ids;
442
+ column_ids.reserve(layout.ColumnCount() - 1);
443
+ for (idx_t col_idx = 0; col_idx < layout.ColumnCount() - 1; col_idx++) {
444
+ column_ids.emplace_back(col_idx);
445
+ }
446
+
447
+ for (idx_t ht_idx = 0; ht_idx < finalized_hts.size(); ht_idx++) {
448
+ gstate.finalized_hts[ht_idx]->GetDataCollection().InitializeScan(
449
+ state.ht_scan_states.get()[ht_idx].scan_state, column_ids);
450
+ }
451
+ state.initialized = true;
436
452
  }
437
- state.initialized = true;
438
453
  }
454
+
455
+ auto &local_scan_state = lstate.scan_state;
439
456
  while (true) {
457
+ D_ASSERT(state.ht_scan_states);
440
458
  idx_t ht_index;
441
-
442
459
  {
443
460
  lock_guard<mutex> l(state.lock);
444
461
  ht_index = state.ht_index;
@@ -446,17 +463,22 @@ void RadixPartitionedHashTable::GetData(ExecutionContext &context, DataChunk &ch
446
463
  state.finished = true;
447
464
  return;
448
465
  }
449
- D_ASSERT(ht_index < gstate.finalized_hts.size());
450
- lstate.ht = gstate.finalized_hts[ht_index];
451
- D_ASSERT(lstate.ht);
452
466
  }
453
- D_ASSERT(state.ht_scan_states);
454
- auto &scan_state = state.ht_scan_states[ht_index];
467
+ D_ASSERT(ht_index < gstate.finalized_hts.size());
468
+ if (lstate.ht_index != DConstants::INVALID_INDEX && ht_index != lstate.ht_index) {
469
+ lstate.ht->GetDataCollection().FinalizePinState(local_scan_state.pin_state);
470
+ }
471
+ lstate.ht_index = ht_index;
472
+ lstate.ht = gstate.finalized_hts[ht_index];
455
473
  D_ASSERT(lstate.ht);
456
- elements_found = lstate.ht->Scan(scan_state, lstate.scan_chunk);
474
+
475
+ auto &global_scan_state = state.ht_scan_states[ht_index];
476
+ elements_found = lstate.ht->Scan(global_scan_state, local_scan_state, lstate.scan_chunk);
457
477
  if (elements_found > 0) {
458
478
  break;
459
479
  }
480
+ lstate.ht->GetDataCollection().FinalizePinState(local_scan_state.pin_state);
481
+
460
482
  // move to the next hash table
461
483
  lock_guard<mutex> l(state.lock);
462
484
  ht_index++;
@@ -1,6 +1,6 @@
1
- #include "duckdb/function/aggregate_function.hpp"
2
1
  #include "duckdb/common/sort/sort.hpp"
3
- #include "duckdb/common/types/column_data_collection.hpp"
2
+ #include "duckdb/common/types/column/column_data_collection.hpp"
3
+ #include "duckdb/function/aggregate_function.hpp"
4
4
  #include "duckdb/function/function_binder.hpp"
5
5
  #include "duckdb/storage/buffer_manager.hpp"
6
6
  #include "duckdb/planner/expression/bound_aggregate_expression.hpp"
@@ -1,12 +1,12 @@
1
- #include "duckdb/function/table/system_functions.hpp"
2
1
  #include "duckdb/catalog/catalog_entry/table_catalog_entry.hpp"
3
2
  #include "duckdb/catalog/catalog_entry/view_catalog_entry.hpp"
4
- #include "duckdb/planner/constraints/bound_not_null_constraint.hpp"
5
- #include "duckdb/main/query_profiler.hpp"
3
+ #include "duckdb/common/limits.hpp"
4
+ #include "duckdb/common/types/column/column_data_collection.hpp"
5
+ #include "duckdb/function/table/system_functions.hpp"
6
6
  #include "duckdb/main/client_context.hpp"
7
7
  #include "duckdb/main/client_data.hpp"
8
- #include "duckdb/common/limits.hpp"
9
- #include "duckdb/common/types/column_data_collection.hpp"
8
+ #include "duckdb/main/query_profiler.hpp"
9
+ #include "duckdb/planner/constraints/bound_not_null_constraint.hpp"
10
10
 
11
11
  namespace duckdb {
12
12
 
@@ -1,12 +1,12 @@
1
1
  #include "duckdb/catalog/catalog_entry/table_catalog_entry.hpp"
2
2
  #include "duckdb/catalog/catalog_entry/view_catalog_entry.hpp"
3
3
  #include "duckdb/common/limits.hpp"
4
+ #include "duckdb/common/types/column/column_data_collection.hpp"
4
5
  #include "duckdb/function/table/system_functions.hpp"
5
6
  #include "duckdb/main/client_context.hpp"
6
7
  #include "duckdb/main/client_data.hpp"
7
- #include "duckdb/planner/constraints/bound_not_null_constraint.hpp"
8
8
  #include "duckdb/main/query_profiler.hpp"
9
- #include "duckdb/common/types/column_data_collection.hpp"
9
+ #include "duckdb/planner/constraints/bound_not_null_constraint.hpp"
10
10
 
11
11
  namespace duckdb {
12
12
 
@@ -1,8 +1,8 @@
1
1
  #ifndef DUCKDB_VERSION
2
- #define DUCKDB_VERSION "0.7.2-dev1898"
2
+ #define DUCKDB_VERSION "0.7.2-dev2144"
3
3
  #endif
4
4
  #ifndef DUCKDB_SOURCE_ID
5
- #define DUCKDB_SOURCE_ID "eaf507009f"
5
+ #define DUCKDB_SOURCE_ID "82211fc11b"
6
6
  #endif
7
7
  #include "duckdb/function/table/system_functions.hpp"
8
8
  #include "duckdb/main/database.hpp"
@@ -27,7 +27,7 @@ public:
27
27
  //! Create an IndexCatalogEntry and initialize storage for it
28
28
  IndexCatalogEntry(Catalog *catalog, SchemaCatalogEntry *schema, CreateIndexInfo *info);
29
29
 
30
- Index *index;
30
+ optional_ptr<Index> index;
31
31
  string sql;
32
32
  vector<unique_ptr<ParsedExpression>> expressions;
33
33
  vector<unique_ptr<ParsedExpression>> parsed_expressions;
@@ -23,7 +23,7 @@ public:
23
23
  DUCKDB_API ~ArrowAppender();
24
24
 
25
25
  //! Append a data chunk to the underlying arrow array
26
- DUCKDB_API void Append(DataChunk &input);
26
+ DUCKDB_API void Append(DataChunk &input, idx_t from, idx_t to, idx_t input_size);
27
27
  //! Returns the underlying arrow array
28
28
  DUCKDB_API ArrowArray Finalize();
29
29
 
@@ -110,6 +110,8 @@ struct PhysicalIndex {
110
110
  }
111
111
  };
112
112
 
113
+ DUCKDB_API bool IsPowerOfTwo(uint64_t v);
113
114
  DUCKDB_API uint64_t NextPowerOfTwo(uint64_t v);
115
+ DUCKDB_API uint64_t PreviousPowerOfTwo(uint64_t v);
114
116
 
115
117
  } // namespace duckdb
@@ -121,6 +121,9 @@ public:
121
121
  DUCKDB_API static bool UncaughtException();
122
122
 
123
123
  DUCKDB_API static string GetStackTrace(int max_depth = 120);
124
+ DUCKDB_API static string FormatStackTrace(string message = "") {
125
+ return (message + "\n" + GetStackTrace());
126
+ }
124
127
 
125
128
  private:
126
129
  string exception_message_;