duckdb 0.7.2-dev1034.0 → 0.7.2-dev1146.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/duckdb/extension/icu/third_party/icu/stubdata/stubdata.cpp +1 -1
- package/src/duckdb/extension/parquet/parquet-extension.cpp +2 -1
- package/src/duckdb/src/common/hive_partitioning.cpp +3 -1
- package/src/duckdb/src/common/progress_bar/progress_bar.cpp +7 -0
- package/src/duckdb/src/common/serializer/enum_serializer.cpp +6 -6
- package/src/duckdb/src/common/sort/comparators.cpp +14 -5
- package/src/duckdb/src/common/types/column_data_collection_segment.cpp +1 -4
- package/src/duckdb/src/common/types/interval.cpp +0 -41
- package/src/duckdb/src/common/types/list_segment.cpp +658 -0
- package/src/duckdb/src/common/types/string_heap.cpp +1 -1
- package/src/duckdb/src/common/types/string_type.cpp +1 -1
- package/src/duckdb/src/common/types/validity_mask.cpp +24 -7
- package/src/duckdb/src/common/types/vector.cpp +3 -7
- package/src/duckdb/src/common/value_operations/comparison_operations.cpp +14 -22
- package/src/duckdb/src/common/vector_operations/comparison_operators.cpp +10 -10
- package/src/duckdb/src/common/vector_operations/is_distinct_from.cpp +11 -10
- package/src/duckdb/src/execution/expression_executor/execute_comparison.cpp +2 -2
- package/src/duckdb/src/execution/index/art/art.cpp +13 -0
- package/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp +1 -1
- package/src/duckdb/src/execution/operator/join/physical_hash_join.cpp +2 -0
- package/src/duckdb/src/execution/operator/join/physical_index_join.cpp +1 -0
- package/src/duckdb/src/execution/operator/join/physical_join.cpp +0 -3
- package/src/duckdb/src/execution/operator/persistent/base_csv_reader.cpp +5 -1
- package/src/duckdb/src/execution/operator/persistent/buffered_csv_reader.cpp +18 -5
- package/src/duckdb/src/execution/operator/persistent/csv_reader_options.cpp +3 -0
- package/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +2 -1
- package/src/duckdb/src/execution/operator/persistent/physical_delete.cpp +1 -3
- package/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +1 -0
- package/src/duckdb/src/execution/operator/set/physical_recursive_cte.cpp +0 -4
- package/src/duckdb/src/execution/physical_plan/plan_aggregate.cpp +1 -0
- package/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +1 -1
- package/src/duckdb/src/execution/physical_plan/plan_create_index.cpp +2 -1
- package/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +18 -10
- package/src/duckdb/src/function/aggregate/nested/list.cpp +6 -712
- package/src/duckdb/src/function/cast_rules.cpp +9 -4
- package/src/duckdb/src/function/scalar/list/list_sort.cpp +25 -18
- package/src/duckdb/src/function/table/read_csv.cpp +5 -0
- package/src/duckdb/src/function/table/table_scan.cpp +8 -11
- package/src/duckdb/src/function/table/version/pragma_version.cpp +2 -2
- package/src/duckdb/src/include/duckdb/common/helper.hpp +1 -1
- package/src/duckdb/src/include/duckdb/common/operator/comparison_operators.hpp +45 -149
- package/src/duckdb/src/include/duckdb/common/progress_bar/progress_bar.hpp +2 -0
- package/src/duckdb/src/include/duckdb/common/types/interval.hpp +39 -3
- package/src/duckdb/src/include/duckdb/common/types/list_segment.hpp +70 -0
- package/src/duckdb/src/include/duckdb/common/types/string_type.hpp +73 -3
- package/src/duckdb/src/include/duckdb/common/types/validity_mask.hpp +4 -1
- package/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +1 -12
- package/src/duckdb/src/include/duckdb/execution/operator/persistent/csv_reader_options.hpp +4 -0
- package/src/duckdb/src/include/duckdb/main/client_config.hpp +2 -0
- package/src/duckdb/src/include/duckdb/storage/compression/chimp/chimp_scan.hpp +1 -0
- package/src/duckdb/src/include/duckdb/storage/compression/patas/patas_scan.hpp +1 -0
- package/src/duckdb/src/include/duckdb/storage/data_pointer.hpp +0 -2
- package/src/duckdb/src/include/duckdb/storage/data_table.hpp +1 -0
- package/src/duckdb/src/include/duckdb/storage/index.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +1 -1
- package/src/duckdb/src/include/duckdb/storage/table/column_data.hpp +18 -7
- package/src/duckdb/src/include/duckdb/storage/table/column_segment.hpp +0 -3
- package/src/duckdb/src/include/duckdb/storage/table/column_segment_tree.hpp +18 -0
- package/src/duckdb/src/include/duckdb/storage/table/persistent_table_data.hpp +0 -1
- package/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +35 -43
- package/src/duckdb/src/include/duckdb/storage/table/row_group_collection.hpp +18 -5
- package/src/duckdb/src/include/duckdb/storage/table/row_group_segment_tree.hpp +2 -4
- package/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +12 -29
- package/src/duckdb/src/include/duckdb/storage/table/segment_base.hpp +2 -3
- package/src/duckdb/src/include/duckdb/storage/table/segment_tree.hpp +11 -1
- package/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +0 -4
- package/src/duckdb/src/include/duckdb/transaction/local_storage.hpp +4 -1
- package/src/duckdb/src/include/duckdb.h +21 -0
- package/src/duckdb/src/main/capi/table_function-c.cpp +23 -0
- package/src/duckdb/src/main/settings/settings.cpp +20 -8
- package/src/duckdb/src/optimizer/filter_combiner.cpp +2 -5
- package/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +2 -0
- package/src/duckdb/src/optimizer/join_order/join_order_optimizer.cpp +1 -0
- package/src/duckdb/src/parallel/meta_pipeline.cpp +0 -3
- package/src/duckdb/src/parser/transform/expression/transform_function.cpp +22 -0
- package/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +1 -0
- package/src/duckdb/src/storage/compression/bitpacking.cpp +1 -1
- package/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp +2 -1
- package/src/duckdb/src/storage/compression/numeric_constant.cpp +1 -1
- package/src/duckdb/src/storage/compression/rle.cpp +1 -0
- package/src/duckdb/src/storage/compression/validity_uncompressed.cpp +1 -1
- package/src/duckdb/src/storage/data_table.cpp +3 -3
- package/src/duckdb/src/storage/local_storage.cpp +7 -0
- package/src/duckdb/src/storage/storage_info.cpp +1 -1
- package/src/duckdb/src/storage/table/column_data.cpp +75 -18
- package/src/duckdb/src/storage/table/column_data_checkpointer.cpp +3 -1
- package/src/duckdb/src/storage/table/column_segment.cpp +17 -31
- package/src/duckdb/src/storage/table/list_column_data.cpp +9 -12
- package/src/duckdb/src/storage/table/row_group.cpp +200 -136
- package/src/duckdb/src/storage/table/row_group_collection.cpp +75 -45
- package/src/duckdb/src/storage/table/scan_state.cpp +31 -38
- package/src/duckdb/src/storage/table/standard_column_data.cpp +4 -6
- package/src/duckdb/src/storage/table/struct_column_data.cpp +11 -18
- package/src/duckdb/src/storage/table/update_segment.cpp +3 -0
- package/src/duckdb/ub_src_common_types.cpp +2 -0
|
@@ -122,7 +122,8 @@ struct ParquetWriteGlobalState : public GlobalFunctionData {
|
|
|
122
122
|
};
|
|
123
123
|
|
|
124
124
|
struct ParquetWriteLocalState : public LocalFunctionData {
|
|
125
|
-
explicit ParquetWriteLocalState(ClientContext &context, const vector<LogicalType> &types)
|
|
125
|
+
explicit ParquetWriteLocalState(ClientContext &context, const vector<LogicalType> &types)
|
|
126
|
+
: buffer(Allocator::Get(context), types) {
|
|
126
127
|
}
|
|
127
128
|
|
|
128
129
|
ColumnDataCollection buffer;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
#include "duckdb/common/hive_partitioning.hpp"
|
|
2
|
-
#include "duckdb/optimizer/statistics_propagator.hpp"
|
|
3
2
|
#include "duckdb/planner/table_filter.hpp"
|
|
4
3
|
#include "duckdb/execution/expression_executor.hpp"
|
|
5
4
|
#include "duckdb/optimizer/filter_combiner.hpp"
|
|
6
5
|
#include "duckdb/planner/expression_iterator.hpp"
|
|
6
|
+
#include "duckdb/planner/expression/bound_constant_expression.hpp"
|
|
7
|
+
#include "duckdb/planner/expression/bound_columnref_expression.hpp"
|
|
8
|
+
#include "duckdb/planner/expression/bound_reference_expression.hpp"
|
|
7
9
|
#include "re2/re2.h"
|
|
8
10
|
|
|
9
11
|
namespace duckdb {
|
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
namespace duckdb {
|
|
6
6
|
|
|
7
|
+
void ProgressBar::SystemOverrideCheck(ClientConfig &config) {
|
|
8
|
+
if (config.system_progress_bar_disable_reason != nullptr) {
|
|
9
|
+
throw InvalidInputException("Could not change the progress bar setting because: '%s'",
|
|
10
|
+
config.system_progress_bar_disable_reason);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
7
14
|
unique_ptr<ProgressBarDisplay> ProgressBar::DefaultProgressBarDisplay() {
|
|
8
15
|
return make_unique<TerminalProgressBarDisplay>();
|
|
9
16
|
}
|
|
@@ -24,11 +24,11 @@ template <>
|
|
|
24
24
|
OrderType EnumSerializer::StringToEnum(const char *value) {
|
|
25
25
|
if (StringUtil::Equals(value, "INVALID")) {
|
|
26
26
|
return OrderType::INVALID;
|
|
27
|
-
} else if (StringUtil::Equals(value, "ORDER_DEFAULT")) {
|
|
27
|
+
} else if (StringUtil::Equals(value, "ORDER_DEFAULT") || StringUtil::Equals(value, "DEFAULT")) {
|
|
28
28
|
return OrderType::ORDER_DEFAULT;
|
|
29
|
-
} else if (StringUtil::Equals(value, "ASCENDING")) {
|
|
29
|
+
} else if (StringUtil::Equals(value, "ASCENDING") || StringUtil::Equals(value, "ASC")) {
|
|
30
30
|
return OrderType::ASCENDING;
|
|
31
|
-
} else if (StringUtil::Equals(value, "DESCENDING")) {
|
|
31
|
+
} else if (StringUtil::Equals(value, "DESCENDING") || StringUtil::Equals(value, "DESC")) {
|
|
32
32
|
return OrderType::DESCENDING;
|
|
33
33
|
} else {
|
|
34
34
|
throw NotImplementedException("FromString not implemented for enum value");
|
|
@@ -58,11 +58,11 @@ template <>
|
|
|
58
58
|
OrderByNullType EnumSerializer::StringToEnum(const char *value) {
|
|
59
59
|
if (StringUtil::Equals(value, "INVALID")) {
|
|
60
60
|
return OrderByNullType::INVALID;
|
|
61
|
-
} else if (StringUtil::Equals(value, "ORDER_DEFAULT")) {
|
|
61
|
+
} else if (StringUtil::Equals(value, "ORDER_DEFAULT") || StringUtil::Equals(value, "DEFAULT")) {
|
|
62
62
|
return OrderByNullType::ORDER_DEFAULT;
|
|
63
|
-
} else if (StringUtil::Equals(value, "NULLS_FIRST")) {
|
|
63
|
+
} else if (StringUtil::Equals(value, "NULLS_FIRST") || StringUtil::Equals(value, "NULLS FIRST")) {
|
|
64
64
|
return OrderByNullType::NULLS_FIRST;
|
|
65
|
-
} else if (StringUtil::Equals(value, "NULLS_LAST")) {
|
|
65
|
+
} else if (StringUtil::Equals(value, "NULLS_LAST") || StringUtil::Equals(value, "NULLS LAST")) {
|
|
66
66
|
return OrderByNullType::NULLS_LAST;
|
|
67
67
|
} else {
|
|
68
68
|
throw NotImplementedException("FromString not implemented for enum value");
|
|
@@ -163,17 +163,26 @@ int Comparators::CompareStringAndAdvance(data_ptr_t &left_ptr, data_ptr_t &right
|
|
|
163
163
|
if (!valid) {
|
|
164
164
|
return 0;
|
|
165
165
|
}
|
|
166
|
-
// Construct the string_t
|
|
167
166
|
uint32_t left_string_size = Load<uint32_t>(left_ptr);
|
|
168
167
|
uint32_t right_string_size = Load<uint32_t>(right_ptr);
|
|
169
168
|
left_ptr += sizeof(uint32_t);
|
|
170
169
|
right_ptr += sizeof(uint32_t);
|
|
171
|
-
|
|
172
|
-
|
|
170
|
+
auto memcmp_res = memcmp((const char *)left_ptr, (const char *)right_ptr,
|
|
171
|
+
std::min<uint32_t>(left_string_size, right_string_size));
|
|
172
|
+
|
|
173
173
|
left_ptr += left_string_size;
|
|
174
174
|
right_ptr += right_string_size;
|
|
175
|
-
|
|
176
|
-
|
|
175
|
+
|
|
176
|
+
if (memcmp_res != 0) {
|
|
177
|
+
return memcmp_res;
|
|
178
|
+
}
|
|
179
|
+
if (left_string_size == right_string_size) {
|
|
180
|
+
return 0;
|
|
181
|
+
}
|
|
182
|
+
if (left_string_size < right_string_size) {
|
|
183
|
+
return -1;
|
|
184
|
+
}
|
|
185
|
+
return 1;
|
|
177
186
|
}
|
|
178
187
|
|
|
179
188
|
int Comparators::CompareStructAndAdvance(data_ptr_t &left_ptr, data_ptr_t &right_ptr,
|
|
@@ -169,11 +169,8 @@ idx_t ColumnDataCollectionSegment::ReadVectorInternal(ChunkManagementState &stat
|
|
|
169
169
|
if (type_size > 0) {
|
|
170
170
|
memcpy(target_data + current_offset * type_size, base_ptr, current_vdata.count * type_size);
|
|
171
171
|
}
|
|
172
|
-
// FIXME: use bitwise operations here
|
|
173
172
|
ValidityMask current_validity(validity_data);
|
|
174
|
-
|
|
175
|
-
target_validity.Set(current_offset + k, current_validity.RowIsValid(k));
|
|
176
|
-
}
|
|
173
|
+
target_validity.SliceInPlace(current_validity, current_offset, 0, current_vdata.count);
|
|
177
174
|
current_offset += current_vdata.count;
|
|
178
175
|
next_index = current_vdata.next_data;
|
|
179
176
|
}
|
|
@@ -397,47 +397,6 @@ interval_t Interval::FromMicro(int64_t delta_us) {
|
|
|
397
397
|
return result;
|
|
398
398
|
}
|
|
399
399
|
|
|
400
|
-
static void NormalizeIntervalEntries(interval_t input, int64_t &months, int64_t &days, int64_t µs) {
|
|
401
|
-
int64_t extra_months_d = input.days / Interval::DAYS_PER_MONTH;
|
|
402
|
-
int64_t extra_months_micros = input.micros / Interval::MICROS_PER_MONTH;
|
|
403
|
-
input.days -= extra_months_d * Interval::DAYS_PER_MONTH;
|
|
404
|
-
input.micros -= extra_months_micros * Interval::MICROS_PER_MONTH;
|
|
405
|
-
|
|
406
|
-
int64_t extra_days_micros = input.micros / Interval::MICROS_PER_DAY;
|
|
407
|
-
input.micros -= extra_days_micros * Interval::MICROS_PER_DAY;
|
|
408
|
-
|
|
409
|
-
months = input.months + extra_months_d + extra_months_micros;
|
|
410
|
-
days = input.days + extra_days_micros;
|
|
411
|
-
micros = input.micros;
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
bool Interval::Equals(interval_t left, interval_t right) {
|
|
415
|
-
return left.months == right.months && left.days == right.days && left.micros == right.micros;
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
bool Interval::GreaterThan(interval_t left, interval_t right) {
|
|
419
|
-
int64_t lmonths, ldays, lmicros;
|
|
420
|
-
int64_t rmonths, rdays, rmicros;
|
|
421
|
-
NormalizeIntervalEntries(left, lmonths, ldays, lmicros);
|
|
422
|
-
NormalizeIntervalEntries(right, rmonths, rdays, rmicros);
|
|
423
|
-
|
|
424
|
-
if (lmonths > rmonths) {
|
|
425
|
-
return true;
|
|
426
|
-
} else if (lmonths < rmonths) {
|
|
427
|
-
return false;
|
|
428
|
-
}
|
|
429
|
-
if (ldays > rdays) {
|
|
430
|
-
return true;
|
|
431
|
-
} else if (ldays < rdays) {
|
|
432
|
-
return false;
|
|
433
|
-
}
|
|
434
|
-
return lmicros > rmicros;
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
bool Interval::GreaterThanEquals(interval_t left, interval_t right) {
|
|
438
|
-
return GreaterThan(left, right) || Equals(left, right);
|
|
439
|
-
}
|
|
440
|
-
|
|
441
400
|
interval_t Interval::Invert(interval_t interval) {
|
|
442
401
|
interval.days = -interval.days;
|
|
443
402
|
interval.micros = -interval.micros;
|