duckdb 0.7.2-dev2320.0 → 0.7.2-dev2366.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 (162) hide show
  1. package/package.json +1 -1
  2. package/src/data_chunk.cpp +1 -1
  3. package/src/duckdb/extension/icu/icu-extension.cpp +2 -2
  4. package/src/duckdb/extension/icu/icu-makedate.cpp +52 -0
  5. package/src/duckdb/extension/icu/icu-strptime.cpp +1 -1
  6. package/src/duckdb/extension/icu/third_party/icu/i18n/calendar.cpp +4 -0
  7. package/src/duckdb/extension/icu/third_party/icu/i18n/dangical.cpp +28 -28
  8. package/src/duckdb/extension/icu/third_party/icu/i18n/dangical.h +4 -4
  9. package/src/duckdb/extension/json/include/json_common.hpp +1 -1
  10. package/src/duckdb/extension/json/json_functions/json_create.cpp +1 -1
  11. package/src/duckdb/extension/json/json_functions/json_transform.cpp +1 -1
  12. package/src/duckdb/extension/json/json_functions.cpp +2 -2
  13. package/src/duckdb/extension/json/json_serializer.cpp +1 -1
  14. package/src/duckdb/extension/parquet/column_reader.cpp +1 -1
  15. package/src/duckdb/extension/parquet/column_writer.cpp +3 -3
  16. package/src/duckdb/src/catalog/catalog_entry/scalar_macro_catalog_entry.cpp +2 -2
  17. package/src/duckdb/src/common/arrow/arrow_appender.cpp +2 -2
  18. package/src/duckdb/src/common/operator/cast_operators.cpp +24 -25
  19. package/src/duckdb/src/common/row_operations/row_heap_scatter.cpp +2 -2
  20. package/src/duckdb/src/common/row_operations/row_scatter.cpp +1 -1
  21. package/src/duckdb/src/common/types/bit.cpp +18 -18
  22. package/src/duckdb/src/common/types/blob.cpp +7 -7
  23. package/src/duckdb/src/common/types/column/column_data_allocator.cpp +1 -1
  24. package/src/duckdb/src/common/types/column/column_data_collection.cpp +1 -1
  25. package/src/duckdb/src/common/types/hash.cpp +1 -1
  26. package/src/duckdb/src/common/types/hyperloglog.cpp +1 -1
  27. package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +2 -2
  28. package/src/duckdb/src/common/types/string_heap.cpp +2 -2
  29. package/src/duckdb/src/common/types/string_type.cpp +2 -2
  30. package/src/duckdb/src/common/types/timestamp.cpp +1 -1
  31. package/src/duckdb/src/common/types/vector.cpp +7 -7
  32. package/src/duckdb/src/execution/index/art/art_key.cpp +2 -2
  33. package/src/duckdb/src/execution/operator/persistent/base_csv_reader.cpp +1 -1
  34. package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +1 -1
  35. package/src/duckdb/src/function/aggregate/distributive/arg_min_max.cpp +2 -2
  36. package/src/duckdb/src/function/aggregate/distributive/bitagg.cpp +2 -2
  37. package/src/duckdb/src/function/aggregate/distributive/bitstring_agg.cpp +2 -2
  38. package/src/duckdb/src/function/aggregate/distributive/first.cpp +2 -2
  39. package/src/duckdb/src/function/aggregate/distributive/kurtosis.cpp +3 -2
  40. package/src/duckdb/src/function/aggregate/distributive/minmax.cpp +2 -2
  41. package/src/duckdb/src/function/aggregate/distributive/skew.cpp +5 -1
  42. package/src/duckdb/src/function/aggregate/distributive/string_agg.cpp +1 -1
  43. package/src/duckdb/src/function/cast/list_casts.cpp +1 -1
  44. package/src/duckdb/src/function/cast/struct_cast.cpp +1 -1
  45. package/src/duckdb/src/function/cast/vector_cast_helpers.cpp +3 -3
  46. package/src/duckdb/src/function/scalar/bit/bitstring.cpp +1 -1
  47. package/src/duckdb/src/function/scalar/blob/encode.cpp +1 -1
  48. package/src/duckdb/src/function/scalar/date/strftime.cpp +3 -3
  49. package/src/duckdb/src/function/scalar/generic/current_setting.cpp +1 -1
  50. package/src/duckdb/src/function/scalar/string/ascii.cpp +1 -1
  51. package/src/duckdb/src/function/scalar/string/caseconvert.cpp +2 -2
  52. package/src/duckdb/src/function/scalar/string/concat.cpp +6 -6
  53. package/src/duckdb/src/function/scalar/string/contains.cpp +2 -2
  54. package/src/duckdb/src/function/scalar/string/damerau_levenshtein.cpp +2 -2
  55. package/src/duckdb/src/function/scalar/string/hex.cpp +4 -4
  56. package/src/duckdb/src/function/scalar/string/instr.cpp +1 -1
  57. package/src/duckdb/src/function/scalar/string/jaccard.cpp +1 -1
  58. package/src/duckdb/src/function/scalar/string/jaro_winkler.cpp +5 -5
  59. package/src/duckdb/src/function/scalar/string/length.cpp +1 -1
  60. package/src/duckdb/src/function/scalar/string/levenshtein.cpp +2 -2
  61. package/src/duckdb/src/function/scalar/string/like.cpp +10 -11
  62. package/src/duckdb/src/function/scalar/string/mismatches.cpp +2 -2
  63. package/src/duckdb/src/function/scalar/string/nfc_normalize.cpp +1 -1
  64. package/src/duckdb/src/function/scalar/string/pad.cpp +3 -3
  65. package/src/duckdb/src/function/scalar/string/prefix.cpp +2 -2
  66. package/src/duckdb/src/function/scalar/string/printf.cpp +1 -1
  67. package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +4 -4
  68. package/src/duckdb/src/function/scalar/string/repeat.cpp +1 -1
  69. package/src/duckdb/src/function/scalar/string/replace.cpp +3 -3
  70. package/src/duckdb/src/function/scalar/string/reverse.cpp +1 -1
  71. package/src/duckdb/src/function/scalar/string/starts_with.cpp +2 -2
  72. package/src/duckdb/src/function/scalar/string/string_split.cpp +3 -3
  73. package/src/duckdb/src/function/scalar/string/strip_accents.cpp +2 -2
  74. package/src/duckdb/src/function/scalar/string/substring.cpp +3 -3
  75. package/src/duckdb/src/function/scalar/string/suffix.cpp +2 -2
  76. package/src/duckdb/src/function/scalar/string/translate.cpp +3 -3
  77. package/src/duckdb/src/function/scalar/string/trim.cpp +3 -3
  78. package/src/duckdb/src/function/scalar/struct/struct_extract.cpp +1 -1
  79. package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +5 -7
  80. package/src/duckdb/src/function/scalar/union/union_extract.cpp +1 -1
  81. package/src/duckdb/src/function/table/copy_csv.cpp +1 -1
  82. package/src/duckdb/src/function/table/system/duckdb_functions.cpp +2 -2
  83. package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
  84. package/src/duckdb/src/include/duckdb/common/crypto/md5.hpp +1 -1
  85. package/src/duckdb/src/include/duckdb/common/radix.hpp +1 -1
  86. package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +8 -6
  87. package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +1 -1
  88. package/src/duckdb/src/include/duckdb/function/macro_function.hpp +17 -0
  89. package/src/duckdb/src/include/duckdb/function/scalar/regexp.hpp +1 -1
  90. package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +2 -2
  91. package/src/duckdb/src/include/duckdb/function/scalar_macro_function.hpp +3 -0
  92. package/src/duckdb/src/include/duckdb/function/table_macro_function.hpp +3 -0
  93. package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +1 -1
  94. package/src/duckdb/src/include/duckdb/optimizer/cse_optimizer.hpp +1 -1
  95. package/src/duckdb/src/include/duckdb/parser/transformer.hpp +1 -0
  96. package/src/duckdb/src/include/duckdb/planner/binder.hpp +1 -1
  97. package/src/duckdb/src/include/duckdb/planner/expression_binder/aggregate_binder.hpp +1 -1
  98. package/src/duckdb/src/include/duckdb/planner/expression_binder/alter_binder.hpp +1 -1
  99. package/src/duckdb/src/include/duckdb/planner/expression_binder/base_select_binder.hpp +4 -3
  100. package/src/duckdb/src/include/duckdb/planner/expression_binder/check_binder.hpp +1 -1
  101. package/src/duckdb/src/include/duckdb/planner/expression_binder/constant_binder.hpp +1 -1
  102. package/src/duckdb/src/include/duckdb/planner/expression_binder/group_binder.hpp +1 -1
  103. package/src/duckdb/src/include/duckdb/planner/expression_binder/having_binder.hpp +2 -2
  104. package/src/duckdb/src/include/duckdb/planner/expression_binder/index_binder.hpp +1 -1
  105. package/src/duckdb/src/include/duckdb/planner/expression_binder/insert_binder.hpp +1 -1
  106. package/src/duckdb/src/include/duckdb/planner/expression_binder/lateral_binder.hpp +2 -2
  107. package/src/duckdb/src/include/duckdb/planner/expression_binder/qualify_binder.hpp +2 -2
  108. package/src/duckdb/src/include/duckdb/planner/expression_binder/relation_binder.hpp +1 -1
  109. package/src/duckdb/src/include/duckdb/planner/expression_binder/returning_binder.hpp +1 -1
  110. package/src/duckdb/src/include/duckdb/planner/expression_binder/table_function_binder.hpp +1 -1
  111. package/src/duckdb/src/include/duckdb/planner/expression_binder/update_binder.hpp +1 -1
  112. package/src/duckdb/src/include/duckdb/planner/expression_binder/where_binder.hpp +2 -2
  113. package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +12 -9
  114. package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +1 -1
  115. package/src/duckdb/src/main/capi/cast/from_decimal-c.cpp +1 -1
  116. package/src/duckdb/src/main/capi/result-c.cpp +2 -2
  117. package/src/duckdb/src/optimizer/cse_optimizer.cpp +9 -8
  118. package/src/duckdb/src/parser/expression/subquery_expression.cpp +1 -1
  119. package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +2 -0
  120. package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +33 -29
  121. package/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp +6 -5
  122. package/src/duckdb/src/planner/binder/expression/bind_cast_expression.cpp +1 -1
  123. package/src/duckdb/src/planner/binder/expression/bind_collate_expression.cpp +2 -2
  124. package/src/duckdb/src/planner/binder/expression/bind_columnref_expression.cpp +1 -1
  125. package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +8 -7
  126. package/src/duckdb/src/planner/binder/expression/bind_lambda.cpp +2 -2
  127. package/src/duckdb/src/planner/binder/expression/bind_macro_expression.cpp +6 -6
  128. package/src/duckdb/src/planner/binder/expression/bind_operator_expression.cpp +2 -2
  129. package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +1 -1
  130. package/src/duckdb/src/planner/binder/query_node/bind_table_macro_node.cpp +1 -1
  131. package/src/duckdb/src/planner/binder/query_node/plan_select_node.cpp +8 -8
  132. package/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp +5 -5
  133. package/src/duckdb/src/planner/binder/statement/bind_create.cpp +2 -2
  134. package/src/duckdb/src/planner/binder/statement/bind_delete.cpp +1 -1
  135. package/src/duckdb/src/planner/binder/statement/bind_update.cpp +2 -2
  136. package/src/duckdb/src/planner/binder/tableref/plan_expressionlistref.cpp +1 -1
  137. package/src/duckdb/src/planner/binder/tableref/plan_joinref.cpp +4 -4
  138. package/src/duckdb/src/planner/expression.cpp +2 -1
  139. package/src/duckdb/src/planner/expression_binder/aggregate_binder.cpp +2 -2
  140. package/src/duckdb/src/planner/expression_binder/alter_binder.cpp +2 -2
  141. package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +4 -4
  142. package/src/duckdb/src/planner/expression_binder/check_binder.cpp +4 -4
  143. package/src/duckdb/src/planner/expression_binder/column_alias_binder.cpp +1 -1
  144. package/src/duckdb/src/planner/expression_binder/constant_binder.cpp +3 -3
  145. package/src/duckdb/src/planner/expression_binder/group_binder.cpp +2 -2
  146. package/src/duckdb/src/planner/expression_binder/having_binder.cpp +4 -4
  147. package/src/duckdb/src/planner/expression_binder/index_binder.cpp +2 -2
  148. package/src/duckdb/src/planner/expression_binder/insert_binder.cpp +2 -2
  149. package/src/duckdb/src/planner/expression_binder/lateral_binder.cpp +3 -3
  150. package/src/duckdb/src/planner/expression_binder/qualify_binder.cpp +4 -4
  151. package/src/duckdb/src/planner/expression_binder/relation_binder.cpp +2 -2
  152. package/src/duckdb/src/planner/expression_binder/returning_binder.cpp +2 -2
  153. package/src/duckdb/src/planner/expression_binder/table_function_binder.cpp +3 -3
  154. package/src/duckdb/src/planner/expression_binder/update_binder.cpp +2 -2
  155. package/src/duckdb/src/planner/expression_binder/where_binder.cpp +4 -4
  156. package/src/duckdb/src/planner/expression_binder.cpp +12 -12
  157. package/src/duckdb/src/storage/checkpoint/write_overflow_strings_to_disk.cpp +2 -2
  158. package/src/duckdb/src/storage/compression/dictionary_compression.cpp +1 -1
  159. package/src/duckdb/src/storage/compression/fsst.cpp +3 -3
  160. package/src/duckdb/src/storage/compression/string_uncompressed.cpp +1 -1
  161. package/src/duckdb/src/storage/statistics/string_stats.cpp +2 -2
  162. package/src/statement.cpp +3 -3
@@ -7,8 +7,8 @@ namespace duckdb {
7
7
  ReturningBinder::ReturningBinder(Binder &binder, ClientContext &context) : ExpressionBinder(binder, context) {
8
8
  }
9
9
 
10
- BindResult ReturningBinder::BindExpression(unique_ptr<ParsedExpression> *expr_ptr, idx_t depth, bool root_expression) {
11
- auto &expr = **expr_ptr;
10
+ BindResult ReturningBinder::BindExpression(unique_ptr<ParsedExpression> &expr_ptr, idx_t depth, bool root_expression) {
11
+ auto &expr = *expr_ptr;
12
12
  switch (expr.GetExpressionClass()) {
13
13
  case ExpressionClass::SUBQUERY:
14
14
  return BindResult("SUBQUERY is not supported in returning statements");
@@ -22,16 +22,16 @@ BindResult TableFunctionBinder::BindColumnReference(ColumnRefExpression &expr, i
22
22
  }
23
23
  auto value_function = ExpressionBinder::GetSQLValueFunction(expr.GetColumnName());
24
24
  if (value_function) {
25
- return BindExpression(&value_function, depth, root_expression);
25
+ return BindExpression(value_function, depth, root_expression);
26
26
  }
27
27
 
28
28
  auto result_name = StringUtil::Join(expr.column_names, ".");
29
29
  return BindResult(make_uniq<BoundConstantExpression>(Value(result_name)));
30
30
  }
31
31
 
32
- BindResult TableFunctionBinder::BindExpression(unique_ptr<ParsedExpression> *expr_ptr, idx_t depth,
32
+ BindResult TableFunctionBinder::BindExpression(unique_ptr<ParsedExpression> &expr_ptr, idx_t depth,
33
33
  bool root_expression) {
34
- auto &expr = **expr_ptr;
34
+ auto &expr = *expr_ptr;
35
35
  switch (expr.GetExpressionClass()) {
36
36
  case ExpressionClass::COLUMN_REF:
37
37
  return BindColumnReference(expr.Cast<ColumnRefExpression>(), depth, root_expression);
@@ -5,8 +5,8 @@ namespace duckdb {
5
5
  UpdateBinder::UpdateBinder(Binder &binder, ClientContext &context) : ExpressionBinder(binder, context) {
6
6
  }
7
7
 
8
- BindResult UpdateBinder::BindExpression(unique_ptr<ParsedExpression> *expr_ptr, idx_t depth, bool root_expression) {
9
- auto &expr = **expr_ptr;
8
+ BindResult UpdateBinder::BindExpression(unique_ptr<ParsedExpression> &expr_ptr, idx_t depth, bool root_expression) {
9
+ auto &expr = *expr_ptr;
10
10
  switch (expr.expression_class) {
11
11
  case ExpressionClass::WINDOW:
12
12
  return BindResult("window functions are not allowed in UPDATE");
@@ -9,8 +9,8 @@ WhereBinder::WhereBinder(Binder &binder, ClientContext &context, optional_ptr<Co
9
9
  target_type = LogicalType(LogicalTypeId::BOOLEAN);
10
10
  }
11
11
 
12
- BindResult WhereBinder::BindColumnRef(unique_ptr<ParsedExpression> *expr_ptr, idx_t depth, bool root_expression) {
13
- auto &expr = (*expr_ptr)->Cast<ColumnRefExpression>();
12
+ BindResult WhereBinder::BindColumnRef(unique_ptr<ParsedExpression> &expr_ptr, idx_t depth, bool root_expression) {
13
+ auto &expr = expr_ptr->Cast<ColumnRefExpression>();
14
14
  auto result = ExpressionBinder::BindExpression(expr_ptr, depth);
15
15
  if (!result.HasError() || !column_alias_binder) {
16
16
  return result;
@@ -25,8 +25,8 @@ BindResult WhereBinder::BindColumnRef(unique_ptr<ParsedExpression> *expr_ptr, id
25
25
  return result;
26
26
  }
27
27
 
28
- BindResult WhereBinder::BindExpression(unique_ptr<ParsedExpression> *expr_ptr, idx_t depth, bool root_expression) {
29
- auto &expr = **expr_ptr;
28
+ BindResult WhereBinder::BindExpression(unique_ptr<ParsedExpression> &expr_ptr, idx_t depth, bool root_expression) {
29
+ auto &expr = *expr_ptr;
30
30
  switch (expr.GetExpressionClass()) {
31
31
  case ExpressionClass::DEFAULT:
32
32
  return BindResult("WHERE clause cannot contain DEFAULT clause");
@@ -28,8 +28,8 @@ ExpressionBinder::~ExpressionBinder() {
28
28
  }
29
29
  }
30
30
 
31
- BindResult ExpressionBinder::BindExpression(unique_ptr<ParsedExpression> *expr, idx_t depth, bool root_expression) {
32
- auto &expr_ref = **expr;
31
+ BindResult ExpressionBinder::BindExpression(unique_ptr<ParsedExpression> &expr, idx_t depth, bool root_expression) {
32
+ auto &expr_ref = *expr;
33
33
  switch (expr_ref.expression_class) {
34
34
  case ExpressionClass::BETWEEN:
35
35
  return BindExpression(expr_ref.Cast<BetweenExpression>(), depth);
@@ -84,7 +84,7 @@ bool ExpressionBinder::BindCorrelatedColumns(unique_ptr<ParsedExpression> &expr)
84
84
  while (!active_binders.empty()) {
85
85
  auto &next_binder = active_binders.back().get();
86
86
  ExpressionBinder::QualifyColumnNames(next_binder.binder, expr);
87
- auto bind_result = next_binder.Bind(&expr, depth);
87
+ auto bind_result = next_binder.Bind(expr, depth);
88
88
  if (bind_result.empty()) {
89
89
  success = true;
90
90
  break;
@@ -98,7 +98,7 @@ bool ExpressionBinder::BindCorrelatedColumns(unique_ptr<ParsedExpression> &expr)
98
98
 
99
99
  void ExpressionBinder::BindChild(unique_ptr<ParsedExpression> &expr, idx_t depth, string &error) {
100
100
  if (expr) {
101
- string bind_error = Bind(&expr, depth);
101
+ string bind_error = Bind(expr, depth);
102
102
  if (error.empty()) {
103
103
  error = bind_error;
104
104
  }
@@ -184,10 +184,10 @@ LogicalType ExpressionBinder::ExchangeNullType(const LogicalType &type) {
184
184
  return ExchangeType(type, LogicalTypeId::SQLNULL, LogicalType::INTEGER);
185
185
  }
186
186
 
187
- unique_ptr<Expression> ExpressionBinder::Bind(unique_ptr<ParsedExpression> &expr, LogicalType *result_type,
187
+ unique_ptr<Expression> ExpressionBinder::Bind(unique_ptr<ParsedExpression> &expr, optional_ptr<LogicalType> result_type,
188
188
  bool root_expression) {
189
189
  // bind the main expression
190
- auto error_msg = Bind(&expr, 0, root_expression);
190
+ auto error_msg = Bind(expr, 0, root_expression);
191
191
  if (!error_msg.empty()) {
192
192
  // failed to bind: try to bind correlated columns in the expression (if any)
193
193
  bool success = BindCorrelatedColumns(expr);
@@ -207,8 +207,8 @@ unique_ptr<Expression> ExpressionBinder::Bind(unique_ptr<ParsedExpression> &expr
207
207
  // SQL NULL type is only used internally in the binder
208
208
  // cast to INTEGER if we encounter it outside of the binder
209
209
  if (ContainsNullType(result->return_type)) {
210
- auto result_type = ExchangeNullType(result->return_type);
211
- result = BoundCastExpression::AddCastToType(context, std::move(result), result_type);
210
+ auto exchanged_type = ExchangeNullType(result->return_type);
211
+ result = BoundCastExpression::AddCastToType(context, std::move(result), exchanged_type);
212
212
  }
213
213
  }
214
214
  if (result->return_type.id() == LogicalTypeId::UNKNOWN) {
@@ -221,9 +221,9 @@ unique_ptr<Expression> ExpressionBinder::Bind(unique_ptr<ParsedExpression> &expr
221
221
  return result;
222
222
  }
223
223
 
224
- string ExpressionBinder::Bind(unique_ptr<ParsedExpression> *expr, idx_t depth, bool root_expression) {
224
+ string ExpressionBinder::Bind(unique_ptr<ParsedExpression> &expr, idx_t depth, bool root_expression) {
225
225
  // bind the node, but only if it has not been bound yet
226
- auto &expression = **expr;
226
+ auto &expression = *expr;
227
227
  auto alias = expression.alias;
228
228
  if (expression.GetExpressionClass() == ExpressionClass::BOUND_EXPRESSION) {
229
229
  // already bound, don't bind it again
@@ -235,8 +235,8 @@ string ExpressionBinder::Bind(unique_ptr<ParsedExpression> *expr, idx_t depth, b
235
235
  return result.error;
236
236
  }
237
237
  // successfully bound: replace the node with a BoundExpression
238
- *expr = make_uniq<BoundExpression>(std::move(result.expression));
239
- auto &be = (*expr)->Cast<BoundExpression>();
238
+ expr = make_uniq<BoundExpression>(std::move(result.expression));
239
+ auto &be = expr->Cast<BoundExpression>();
240
240
  be.alias = alias;
241
241
  if (!alias.empty()) {
242
242
  be.expr->alias = alias;
@@ -33,7 +33,7 @@ void WriteOverflowStringsToDisk::WriteString(string_t string, block_id_t &result
33
33
  size_t compressed_size = 0;
34
34
  compressed_size = s.MaxCompressedLength(uncompressed_size);
35
35
  auto compressed_buf = unique_ptr<data_t[]>(new data_t[compressed_size]);
36
- s.Compress((const char *)string.GetDataUnsafe(), uncompressed_size, (char *)compressed_buf.get(), &compressed_size);
36
+ s.Compress((const char *)string.GetData(), uncompressed_size, (char *)compressed_buf.get(), &compressed_size);
37
37
  string_t compressed_string((const char *)compressed_buf.get(), compressed_size);
38
38
 
39
39
  // store sizes
@@ -43,7 +43,7 @@ void WriteOverflowStringsToDisk::WriteString(string_t string, block_id_t &result
43
43
 
44
44
  // now write the remainder of the string
45
45
  offset += 2 * sizeof(uint32_t);
46
- auto strptr = compressed_string.GetDataUnsafe();
46
+ auto strptr = compressed_string.GetData();
47
47
  uint32_t remaining = compressed_size;
48
48
  while (remaining > 0) {
49
49
  uint32_t to_write = MinValue<uint32_t>(remaining, STRING_SPACE - offset);
@@ -208,7 +208,7 @@ public:
208
208
  // Copy string to dict
209
209
  current_dictionary.size += str.GetSize();
210
210
  auto dict_pos = current_end_ptr - current_dictionary.size;
211
- memcpy(dict_pos, str.GetDataUnsafe(), str.GetSize());
211
+ memcpy(dict_pos, str.GetData(), str.GetSize());
212
212
  current_dictionary.Verify();
213
213
  D_ASSERT(current_dictionary.end == Storage::BLOCK_SIZE);
214
214
 
@@ -155,7 +155,7 @@ idx_t FSSTStorage::StringFinalAnalyze(AnalyzeState &state_p) {
155
155
  vector<unsigned char *> fsst_string_ptrs;
156
156
  for (auto &str : state.fsst_strings) {
157
157
  fsst_string_sizes.push_back(str.GetSize());
158
- fsst_string_ptrs.push_back((unsigned char *)str.GetDataUnsafe());
158
+ fsst_string_ptrs.push_back((unsigned char *)str.GetData());
159
159
  }
160
160
 
161
161
  state.fsst_encoder = duckdb_fsst_create(string_count, &fsst_string_sizes[0], &fsst_string_ptrs[0], 0);
@@ -431,7 +431,7 @@ void FSSTStorage::Compress(CompressionState &state_p, Vector &scan_vector, idx_t
431
431
  total_count++;
432
432
  total_size += data[idx].GetSize();
433
433
  sizes_in.push_back(data[idx].GetSize());
434
- strings_in.push_back((unsigned char *)data[idx].GetDataUnsafe());
434
+ strings_in.push_back((unsigned char *)data[idx].GetData());
435
435
  }
436
436
 
437
437
  // Only Nulls or empty strings in this vector, nothing to compress
@@ -669,7 +669,7 @@ void FSSTStorage::StringFetchRow(ColumnSegment &segment, ColumnFetchState &state
669
669
  segment, dict, result, base_ptr, delta_decode_buffer[offsets.unused_delta_decoded_values], string_length);
670
670
 
671
671
  result_data[result_idx] = FSSTPrimitives::DecompressValue(
672
- (void *)&decoder, result, (unsigned char *)compressed_string.GetDataUnsafe(), compressed_string.GetSize());
672
+ (void *)&decoder, result, (unsigned char *)compressed_string.GetData(), compressed_string.GetSize());
673
673
  } else {
674
674
  // There's no fsst symtable, this only happens for empty strings or nulls, we can just emit an empty string
675
675
  result_data[result_idx] = string_t(nullptr, 0);
@@ -267,7 +267,7 @@ void UncompressedStringStorage::WriteStringMemory(ColumnSegment &segment, string
267
267
  auto ptr = handle.Ptr() + state.head->offset;
268
268
  Store<uint32_t>(string.GetSize(), ptr);
269
269
  ptr += sizeof(uint32_t);
270
- memcpy(ptr, string.GetDataUnsafe(), string.GetSize());
270
+ memcpy(ptr, string.GetData(), string.GetSize());
271
271
  state.head->offset += total_length;
272
272
  }
273
273
 
@@ -116,7 +116,7 @@ static void ConstructValue(const_data_ptr_t data, idx_t size, data_t target[]) {
116
116
  }
117
117
 
118
118
  void StringStats::Update(BaseStatistics &stats, const string_t &value) {
119
- auto data = (const_data_ptr_t)value.GetDataUnsafe();
119
+ auto data = (const_data_ptr_t)value.GetData();
120
120
  auto size = value.GetSize();
121
121
 
122
122
  //! we can only fit 8 bytes, so we might need to trim our string
@@ -238,7 +238,7 @@ void StringStats::Verify(const BaseStatistics &stats, Vector &vector, const Sele
238
238
  continue;
239
239
  }
240
240
  auto value = data[index];
241
- auto data = value.GetDataUnsafe();
241
+ auto data = value.GetData();
242
242
  auto len = value.GetSize();
243
243
  // LCOV_EXCL_START
244
244
  if (string_data.has_max_string_length && len > string_data.max_string_length) {
package/src/statement.cpp CHANGED
@@ -377,8 +377,8 @@ struct RunPreparedTask : public Task {
377
377
  // query results, the string data is owned by the QueryResult
378
378
  auto result_ref_ptr = new std::shared_ptr<duckdb::QueryResult>(result_ptr);
379
379
 
380
- auto array_buffer = Napi::ArrayBuffer::New(env, (void *)blob.GetDataUnsafe(), blob.GetSize(),
381
- deleter, result_ref_ptr);
380
+ auto array_buffer =
381
+ Napi::ArrayBuffer::New(env, (void *)blob.GetData(), blob.GetSize(), deleter, result_ref_ptr);
382
382
 
383
383
  auto typed_array = Napi::Uint8Array::New(env, blob.GetSize(), array_buffer, 0);
384
384
 
@@ -615,7 +615,7 @@ struct GetNextArrowIpcTask : public Task {
615
615
  delete static_cast<unique_ptr<duckdb::DataChunk> *>(hint);
616
616
  };
617
617
  auto array_buffer =
618
- Napi::ArrayBuffer::New(env, (void *)blob.GetDataUnsafe(), blob.GetSize(), deleter, data_chunk_ptr);
618
+ Napi::ArrayBuffer::New(env, (void *)blob.GetData(), blob.GetSize(), deleter, data_chunk_ptr);
619
619
 
620
620
  deferred.Resolve(array_buffer);
621
621
  }