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.
- package/package.json +1 -1
- package/src/data_chunk.cpp +1 -1
- package/src/duckdb/extension/icu/icu-extension.cpp +2 -2
- package/src/duckdb/extension/icu/icu-makedate.cpp +52 -0
- package/src/duckdb/extension/icu/icu-strptime.cpp +1 -1
- package/src/duckdb/extension/icu/third_party/icu/i18n/calendar.cpp +4 -0
- package/src/duckdb/extension/icu/third_party/icu/i18n/dangical.cpp +28 -28
- package/src/duckdb/extension/icu/third_party/icu/i18n/dangical.h +4 -4
- package/src/duckdb/extension/json/include/json_common.hpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_create.cpp +1 -1
- package/src/duckdb/extension/json/json_functions/json_transform.cpp +1 -1
- package/src/duckdb/extension/json/json_functions.cpp +2 -2
- package/src/duckdb/extension/json/json_serializer.cpp +1 -1
- package/src/duckdb/extension/parquet/column_reader.cpp +1 -1
- package/src/duckdb/extension/parquet/column_writer.cpp +3 -3
- package/src/duckdb/src/catalog/catalog_entry/scalar_macro_catalog_entry.cpp +2 -2
- package/src/duckdb/src/common/arrow/arrow_appender.cpp +2 -2
- package/src/duckdb/src/common/operator/cast_operators.cpp +24 -25
- package/src/duckdb/src/common/row_operations/row_heap_scatter.cpp +2 -2
- package/src/duckdb/src/common/row_operations/row_scatter.cpp +1 -1
- package/src/duckdb/src/common/types/bit.cpp +18 -18
- package/src/duckdb/src/common/types/blob.cpp +7 -7
- package/src/duckdb/src/common/types/column/column_data_allocator.cpp +1 -1
- package/src/duckdb/src/common/types/column/column_data_collection.cpp +1 -1
- package/src/duckdb/src/common/types/hash.cpp +1 -1
- package/src/duckdb/src/common/types/hyperloglog.cpp +1 -1
- package/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp +2 -2
- package/src/duckdb/src/common/types/string_heap.cpp +2 -2
- package/src/duckdb/src/common/types/string_type.cpp +2 -2
- package/src/duckdb/src/common/types/timestamp.cpp +1 -1
- package/src/duckdb/src/common/types/vector.cpp +7 -7
- package/src/duckdb/src/execution/index/art/art_key.cpp +2 -2
- package/src/duckdb/src/execution/operator/persistent/base_csv_reader.cpp +1 -1
- package/src/duckdb/src/execution/operator/schema/physical_create_type.cpp +1 -1
- package/src/duckdb/src/function/aggregate/distributive/arg_min_max.cpp +2 -2
- package/src/duckdb/src/function/aggregate/distributive/bitagg.cpp +2 -2
- package/src/duckdb/src/function/aggregate/distributive/bitstring_agg.cpp +2 -2
- package/src/duckdb/src/function/aggregate/distributive/first.cpp +2 -2
- package/src/duckdb/src/function/aggregate/distributive/kurtosis.cpp +3 -2
- package/src/duckdb/src/function/aggregate/distributive/minmax.cpp +2 -2
- package/src/duckdb/src/function/aggregate/distributive/skew.cpp +5 -1
- package/src/duckdb/src/function/aggregate/distributive/string_agg.cpp +1 -1
- package/src/duckdb/src/function/cast/list_casts.cpp +1 -1
- package/src/duckdb/src/function/cast/struct_cast.cpp +1 -1
- package/src/duckdb/src/function/cast/vector_cast_helpers.cpp +3 -3
- package/src/duckdb/src/function/scalar/bit/bitstring.cpp +1 -1
- package/src/duckdb/src/function/scalar/blob/encode.cpp +1 -1
- package/src/duckdb/src/function/scalar/date/strftime.cpp +3 -3
- package/src/duckdb/src/function/scalar/generic/current_setting.cpp +1 -1
- package/src/duckdb/src/function/scalar/string/ascii.cpp +1 -1
- package/src/duckdb/src/function/scalar/string/caseconvert.cpp +2 -2
- package/src/duckdb/src/function/scalar/string/concat.cpp +6 -6
- package/src/duckdb/src/function/scalar/string/contains.cpp +2 -2
- package/src/duckdb/src/function/scalar/string/damerau_levenshtein.cpp +2 -2
- package/src/duckdb/src/function/scalar/string/hex.cpp +4 -4
- package/src/duckdb/src/function/scalar/string/instr.cpp +1 -1
- package/src/duckdb/src/function/scalar/string/jaccard.cpp +1 -1
- package/src/duckdb/src/function/scalar/string/jaro_winkler.cpp +5 -5
- package/src/duckdb/src/function/scalar/string/length.cpp +1 -1
- package/src/duckdb/src/function/scalar/string/levenshtein.cpp +2 -2
- package/src/duckdb/src/function/scalar/string/like.cpp +10 -11
- package/src/duckdb/src/function/scalar/string/mismatches.cpp +2 -2
- package/src/duckdb/src/function/scalar/string/nfc_normalize.cpp +1 -1
- package/src/duckdb/src/function/scalar/string/pad.cpp +3 -3
- package/src/duckdb/src/function/scalar/string/prefix.cpp +2 -2
- package/src/duckdb/src/function/scalar/string/printf.cpp +1 -1
- package/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +4 -4
- package/src/duckdb/src/function/scalar/string/repeat.cpp +1 -1
- package/src/duckdb/src/function/scalar/string/replace.cpp +3 -3
- package/src/duckdb/src/function/scalar/string/reverse.cpp +1 -1
- package/src/duckdb/src/function/scalar/string/starts_with.cpp +2 -2
- package/src/duckdb/src/function/scalar/string/string_split.cpp +3 -3
- package/src/duckdb/src/function/scalar/string/strip_accents.cpp +2 -2
- package/src/duckdb/src/function/scalar/string/substring.cpp +3 -3
- package/src/duckdb/src/function/scalar/string/suffix.cpp +2 -2
- package/src/duckdb/src/function/scalar/string/translate.cpp +3 -3
- package/src/duckdb/src/function/scalar/string/trim.cpp +3 -3
- package/src/duckdb/src/function/scalar/struct/struct_extract.cpp +1 -1
- package/src/duckdb/src/function/scalar/system/aggregate_export.cpp +5 -7
- package/src/duckdb/src/function/scalar/union/union_extract.cpp +1 -1
- package/src/duckdb/src/function/table/copy_csv.cpp +1 -1
- package/src/duckdb/src/function/table/system/duckdb_functions.cpp +2 -2
- package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
- package/src/duckdb/src/include/duckdb/common/crypto/md5.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/radix.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +8 -6
- package/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/macro_function.hpp +17 -0
- package/src/duckdb/src/include/duckdb/function/scalar/regexp.hpp +1 -1
- package/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +2 -2
- package/src/duckdb/src/include/duckdb/function/scalar_macro_function.hpp +3 -0
- package/src/duckdb/src/include/duckdb/function/table_macro_function.hpp +3 -0
- package/src/duckdb/src/include/duckdb/main/capi/cast/utils.hpp +1 -1
- package/src/duckdb/src/include/duckdb/optimizer/cse_optimizer.hpp +1 -1
- package/src/duckdb/src/include/duckdb/parser/transformer.hpp +1 -0
- package/src/duckdb/src/include/duckdb/planner/binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/aggregate_binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/alter_binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/base_select_binder.hpp +4 -3
- package/src/duckdb/src/include/duckdb/planner/expression_binder/check_binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/constant_binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/group_binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/having_binder.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/expression_binder/index_binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/insert_binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/lateral_binder.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/expression_binder/qualify_binder.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/expression_binder/relation_binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/returning_binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/table_function_binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/update_binder.hpp +1 -1
- package/src/duckdb/src/include/duckdb/planner/expression_binder/where_binder.hpp +2 -2
- package/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +12 -9
- package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +1 -1
- package/src/duckdb/src/main/capi/cast/from_decimal-c.cpp +1 -1
- package/src/duckdb/src/main/capi/result-c.cpp +2 -2
- package/src/duckdb/src/optimizer/cse_optimizer.cpp +9 -8
- package/src/duckdb/src/parser/expression/subquery_expression.cpp +1 -1
- package/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +2 -0
- package/src/duckdb/src/parser/transform/statement/transform_select_node.cpp +33 -29
- package/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp +6 -5
- package/src/duckdb/src/planner/binder/expression/bind_cast_expression.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_collate_expression.cpp +2 -2
- package/src/duckdb/src/planner/binder/expression/bind_columnref_expression.cpp +1 -1
- package/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +8 -7
- package/src/duckdb/src/planner/binder/expression/bind_lambda.cpp +2 -2
- package/src/duckdb/src/planner/binder/expression/bind_macro_expression.cpp +6 -6
- package/src/duckdb/src/planner/binder/expression/bind_operator_expression.cpp +2 -2
- package/src/duckdb/src/planner/binder/expression/bind_subquery_expression.cpp +1 -1
- package/src/duckdb/src/planner/binder/query_node/bind_table_macro_node.cpp +1 -1
- package/src/duckdb/src/planner/binder/query_node/plan_select_node.cpp +8 -8
- package/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp +5 -5
- package/src/duckdb/src/planner/binder/statement/bind_create.cpp +2 -2
- package/src/duckdb/src/planner/binder/statement/bind_delete.cpp +1 -1
- package/src/duckdb/src/planner/binder/statement/bind_update.cpp +2 -2
- package/src/duckdb/src/planner/binder/tableref/plan_expressionlistref.cpp +1 -1
- package/src/duckdb/src/planner/binder/tableref/plan_joinref.cpp +4 -4
- package/src/duckdb/src/planner/expression.cpp +2 -1
- package/src/duckdb/src/planner/expression_binder/aggregate_binder.cpp +2 -2
- package/src/duckdb/src/planner/expression_binder/alter_binder.cpp +2 -2
- package/src/duckdb/src/planner/expression_binder/base_select_binder.cpp +4 -4
- package/src/duckdb/src/planner/expression_binder/check_binder.cpp +4 -4
- package/src/duckdb/src/planner/expression_binder/column_alias_binder.cpp +1 -1
- package/src/duckdb/src/planner/expression_binder/constant_binder.cpp +3 -3
- package/src/duckdb/src/planner/expression_binder/group_binder.cpp +2 -2
- package/src/duckdb/src/planner/expression_binder/having_binder.cpp +4 -4
- package/src/duckdb/src/planner/expression_binder/index_binder.cpp +2 -2
- package/src/duckdb/src/planner/expression_binder/insert_binder.cpp +2 -2
- package/src/duckdb/src/planner/expression_binder/lateral_binder.cpp +3 -3
- package/src/duckdb/src/planner/expression_binder/qualify_binder.cpp +4 -4
- package/src/duckdb/src/planner/expression_binder/relation_binder.cpp +2 -2
- package/src/duckdb/src/planner/expression_binder/returning_binder.cpp +2 -2
- package/src/duckdb/src/planner/expression_binder/table_function_binder.cpp +3 -3
- package/src/duckdb/src/planner/expression_binder/update_binder.cpp +2 -2
- package/src/duckdb/src/planner/expression_binder/where_binder.cpp +4 -4
- package/src/duckdb/src/planner/expression_binder.cpp +12 -12
- package/src/duckdb/src/storage/checkpoint/write_overflow_strings_to_disk.cpp +2 -2
- package/src/duckdb/src/storage/compression/dictionary_compression.cpp +1 -1
- package/src/duckdb/src/storage/compression/fsst.cpp +3 -3
- package/src/duckdb/src/storage/compression/string_uncompressed.cpp +1 -1
- package/src/duckdb/src/storage/statistics/string_stats.cpp +2 -2
- 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>
|
11
|
-
auto &expr =
|
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(
|
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>
|
32
|
+
BindResult TableFunctionBinder::BindExpression(unique_ptr<ParsedExpression> &expr_ptr, idx_t depth,
|
33
33
|
bool root_expression) {
|
34
|
-
auto &expr =
|
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>
|
9
|
-
auto &expr =
|
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>
|
13
|
-
auto &expr =
|
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>
|
29
|
-
auto &expr =
|
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>
|
32
|
-
auto &expr_ref =
|
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(
|
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(
|
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
|
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(
|
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
|
211
|
-
result = BoundCastExpression::AddCastToType(context, std::move(result),
|
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>
|
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 =
|
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
|
-
|
239
|
-
auto &be =
|
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.
|
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.
|
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.
|
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.
|
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].
|
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.
|
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.
|
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.
|
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.
|
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 =
|
381
|
-
|
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.
|
618
|
+
Napi::ArrayBuffer::New(env, (void *)blob.GetData(), blob.GetSize(), deleter, data_chunk_ptr);
|
619
619
|
|
620
620
|
deferred.Resolve(array_buffer);
|
621
621
|
}
|