Skip to content

Commit 81de9d4

Browse files
duckdblabs-botgithub-actions[bot]
authored andcommitted
Update vendored DuckDB sources to eda01835de
1 parent 2007bd0 commit 81de9d4

File tree

161 files changed

+4014
-1490
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

161 files changed

+4014
-1490
lines changed

CMakeLists.txt

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -340,47 +340,47 @@ set(DUCKDB_SRC_FILES
340340
src/duckdb/third_party/zstd/dict/divsufsort.cpp
341341
src/duckdb/third_party/zstd/dict/fastcover.cpp
342342
src/duckdb/third_party/zstd/dict/zdict.cpp
343+
src/duckdb/extension/core_functions/core_functions_extension.cpp
343344
src/duckdb/extension/core_functions/lambda_functions.cpp
344345
src/duckdb/extension/core_functions/function_list.cpp
345-
src/duckdb/extension/core_functions/core_functions_extension.cpp
346-
src/duckdb/ub_extension_core_functions_scalar_bit.cpp
346+
src/duckdb/ub_extension_core_functions_aggregate_nested.cpp
347+
src/duckdb/ub_extension_core_functions_aggregate_holistic.cpp
348+
src/duckdb/ub_extension_core_functions_aggregate_regression.cpp
349+
src/duckdb/ub_extension_core_functions_aggregate_algebraic.cpp
350+
src/duckdb/ub_extension_core_functions_aggregate_distributive.cpp
351+
src/duckdb/ub_extension_core_functions_scalar_string.cpp
352+
src/duckdb/ub_extension_core_functions_scalar_enum.cpp
347353
src/duckdb/ub_extension_core_functions_scalar_blob.cpp
354+
src/duckdb/ub_extension_core_functions_scalar_map.cpp
355+
src/duckdb/ub_extension_core_functions_scalar_array.cpp
356+
src/duckdb/ub_extension_core_functions_scalar_bit.cpp
348357
src/duckdb/ub_extension_core_functions_scalar_union.cpp
349358
src/duckdb/ub_extension_core_functions_scalar_debug.cpp
350-
src/duckdb/ub_extension_core_functions_scalar_math.cpp
351-
src/duckdb/ub_extension_core_functions_scalar_array.cpp
352-
src/duckdb/ub_extension_core_functions_scalar_list.cpp
353-
src/duckdb/ub_extension_core_functions_scalar_date.cpp
354-
src/duckdb/ub_extension_core_functions_scalar_random.cpp
355-
src/duckdb/ub_extension_core_functions_scalar_generic.cpp
356359
src/duckdb/ub_extension_core_functions_scalar_struct.cpp
357-
src/duckdb/ub_extension_core_functions_scalar_map.cpp
358-
src/duckdb/ub_extension_core_functions_scalar_string.cpp
359-
src/duckdb/ub_extension_core_functions_scalar_enum.cpp
360+
src/duckdb/ub_extension_core_functions_scalar_random.cpp
361+
src/duckdb/ub_extension_core_functions_scalar_date.cpp
362+
src/duckdb/ub_extension_core_functions_scalar_list.cpp
363+
src/duckdb/ub_extension_core_functions_scalar_math.cpp
360364
src/duckdb/ub_extension_core_functions_scalar_operators.cpp
361-
src/duckdb/ub_extension_core_functions_aggregate_nested.cpp
362-
src/duckdb/ub_extension_core_functions_aggregate_holistic.cpp
363-
src/duckdb/ub_extension_core_functions_aggregate_regression.cpp
364-
src/duckdb/ub_extension_core_functions_aggregate_distributive.cpp
365-
src/duckdb/ub_extension_core_functions_aggregate_algebraic.cpp
366-
src/duckdb/extension/parquet/parquet_reader.cpp
367-
src/duckdb/extension/parquet/parquet_multi_file_info.cpp
368-
src/duckdb/extension/parquet/column_writer.cpp
369-
src/duckdb/extension/parquet/parquet_timestamp.cpp
370-
src/duckdb/extension/parquet/parquet_float16.cpp
371-
src/duckdb/extension/parquet/geo_parquet.cpp
365+
src/duckdb/ub_extension_core_functions_scalar_generic.cpp
372366
src/duckdb/extension/parquet/parquet_extension.cpp
367+
src/duckdb/extension/parquet/parquet_file_metadata_cache.cpp
368+
src/duckdb/extension/parquet/serialize_parquet.cpp
369+
src/duckdb/extension/parquet/parquet_metadata.cpp
373370
src/duckdb/extension/parquet/parquet_crypto.cpp
371+
src/duckdb/extension/parquet/parquet_float16.cpp
374372
src/duckdb/extension/parquet/parquet_writer.cpp
375-
src/duckdb/extension/parquet/parquet_file_metadata_cache.cpp
376373
src/duckdb/extension/parquet/parquet_statistics.cpp
377-
src/duckdb/extension/parquet/parquet_metadata.cpp
378-
src/duckdb/extension/parquet/serialize_parquet.cpp
379-
src/duckdb/extension/parquet/zstd_file_system.cpp
380374
src/duckdb/extension/parquet/column_reader.cpp
375+
src/duckdb/extension/parquet/parquet_reader.cpp
376+
src/duckdb/extension/parquet/column_writer.cpp
377+
src/duckdb/extension/parquet/geo_parquet.cpp
378+
src/duckdb/extension/parquet/parquet_timestamp.cpp
379+
src/duckdb/extension/parquet/parquet_multi_file_info.cpp
380+
src/duckdb/extension/parquet/zstd_file_system.cpp
381381
src/duckdb/ub_extension_parquet_decoder.cpp
382-
src/duckdb/ub_extension_parquet_reader.cpp
383382
src/duckdb/ub_extension_parquet_writer.cpp
383+
src/duckdb/ub_extension_parquet_reader.cpp
384384
src/duckdb/third_party/parquet/parquet_types.cpp
385385
src/duckdb/third_party/thrift/thrift/protocol/TProtocol.cpp
386386
src/duckdb/third_party/thrift/thrift/transport/TTransportException.cpp
@@ -419,32 +419,32 @@ set(DUCKDB_SRC_FILES
419419
src/duckdb/third_party/brotli/enc/metablock.cpp
420420
src/duckdb/third_party/brotli/enc/static_dict.cpp
421421
src/duckdb/third_party/brotli/enc/utf8_util.cpp
422-
src/duckdb/extension/icu/./icu-datefunc.cpp
423-
src/duckdb/extension/icu/./icu-list-range.cpp
424-
src/duckdb/extension/icu/./icu-datetrunc.cpp
425-
src/duckdb/extension/icu/./icu-makedate.cpp
426-
src/duckdb/extension/icu/./icu-timebucket.cpp
427-
src/duckdb/extension/icu/./icu_extension.cpp
428-
src/duckdb/extension/icu/./icu-current.cpp
429-
src/duckdb/extension/icu/./icu-datepart.cpp
430422
src/duckdb/extension/icu/./icu-datesub.cpp
431-
src/duckdb/extension/icu/./icu-table-range.cpp
432-
src/duckdb/extension/icu/./icu-dateadd.cpp
423+
src/duckdb/extension/icu/./icu_extension.cpp
424+
src/duckdb/extension/icu/./icu-list-range.cpp
433425
src/duckdb/extension/icu/./icu-strptime.cpp
426+
src/duckdb/extension/icu/./icu-dateadd.cpp
427+
src/duckdb/extension/icu/./icu-table-range.cpp
428+
src/duckdb/extension/icu/./icu-current.cpp
429+
src/duckdb/extension/icu/./icu-timebucket.cpp
434430
src/duckdb/extension/icu/./icu-timezone.cpp
431+
src/duckdb/extension/icu/./icu-datepart.cpp
432+
src/duckdb/extension/icu/./icu-datefunc.cpp
433+
src/duckdb/extension/icu/./icu-makedate.cpp
434+
src/duckdb/extension/icu/./icu-datetrunc.cpp
435435
src/duckdb/ub_extension_icu_third_party_icu_common.cpp
436436
src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp
437437
src/duckdb/extension/icu/third_party/icu/stubdata/stubdata.cpp
438-
src/duckdb/extension/json/json_serializer.cpp
439-
src/duckdb/extension/json/json_multi_file_info.cpp
440-
src/duckdb/extension/json/serialize_json.cpp
438+
src/duckdb/extension/json/json_extension.cpp
441439
src/duckdb/extension/json/json_enums.cpp
440+
src/duckdb/extension/json/json_multi_file_info.cpp
442441
src/duckdb/extension/json/json_reader.cpp
442+
src/duckdb/extension/json/json_serializer.cpp
443443
src/duckdb/extension/json/json_common.cpp
444444
src/duckdb/extension/json/json_functions.cpp
445-
src/duckdb/extension/json/json_deserializer.cpp
445+
src/duckdb/extension/json/serialize_json.cpp
446446
src/duckdb/extension/json/json_scan.cpp
447-
src/duckdb/extension/json/json_extension.cpp
447+
src/duckdb/extension/json/json_deserializer.cpp
448448
src/duckdb/ub_extension_json_json_functions.cpp)
449449

450450
set(JEMALLOC_SRC_FILES

src/duckdb/extension/core_functions/include/core_functions/scalar/date_functions.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,7 @@ struct TimeTZSortKeyFun {
465465
static constexpr const char *Name = "timetz_byte_comparable";
466466
static constexpr const char *Parameters = "time_tz";
467467
static constexpr const char *Description = "Converts a TIME WITH TIME ZONE to an integer sort key";
468-
static constexpr const char *Example = "timetz_byte_comparable('18:18:16.21-07:00'::TIME_TZ)";
468+
static constexpr const char *Example = "timetz_byte_comparable('18:18:16.21-07:00'::TIMETZ)";
469469
static constexpr const char *Categories = "";
470470

471471
static ScalarFunction GetFunction();

src/duckdb/extension/core_functions/lambda_functions.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,15 +229,15 @@ void ListLambdaBindData::Serialize(Serializer &serializer, const optional_ptr<Fu
229229
serializer.WriteProperty(100, "return_type", bind_data.return_type);
230230
serializer.WritePropertyWithDefault(101, "lambda_expr", bind_data.lambda_expr, unique_ptr<Expression>());
231231
serializer.WriteProperty(102, "has_index", bind_data.has_index);
232-
serializer.WriteProperty(103, "has_initial", bind_data.has_initial);
232+
serializer.WritePropertyWithDefault<bool>(103, "has_initial", bind_data.has_initial, false);
233233
}
234234

235235
unique_ptr<FunctionData> ListLambdaBindData::Deserialize(Deserializer &deserializer, ScalarFunction &) {
236236
auto return_type = deserializer.ReadProperty<LogicalType>(100, "return_type");
237237
auto lambda_expr = deserializer.ReadPropertyWithExplicitDefault<unique_ptr<Expression>>(101, "lambda_expr",
238238
unique_ptr<Expression>());
239239
auto has_index = deserializer.ReadProperty<bool>(102, "has_index");
240-
auto has_initial = deserializer.ReadProperty<bool>(103, "has_initial");
240+
auto has_initial = deserializer.ReadPropertyWithExplicitDefault<bool>(103, "has_initial", false);
241241
return make_uniq<ListLambdaBindData>(return_type, std::move(lambda_expr), has_index, has_initial);
242242
}
243243

src/duckdb/extension/core_functions/scalar/array/array_functions.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@ namespace duckdb {
77
static unique_ptr<FunctionData> ArrayGenericBinaryBind(ClientContext &context, ScalarFunction &bound_function,
88
vector<unique_ptr<Expression>> &arguments) {
99

10-
const auto lhs_is_param = arguments[0]->HasParameter();
11-
const auto rhs_is_param = arguments[1]->HasParameter();
12-
13-
if (lhs_is_param && rhs_is_param) {
14-
throw ParameterNotResolvedException();
15-
}
16-
1710
const auto &lhs_type = arguments[0]->return_type;
1811
const auto &rhs_type = arguments[1]->return_type;
1912

20-
bound_function.arguments[0] = lhs_is_param ? rhs_type : lhs_type;
21-
bound_function.arguments[1] = rhs_is_param ? lhs_type : rhs_type;
13+
if (lhs_type.IsUnknown() && rhs_type.IsUnknown()) {
14+
bound_function.arguments[0] = rhs_type;
15+
bound_function.arguments[1] = lhs_type;
16+
bound_function.return_type = LogicalType::UNKNOWN;
17+
return nullptr;
18+
}
19+
20+
bound_function.arguments[0] = lhs_type.IsUnknown() ? rhs_type : lhs_type;
21+
bound_function.arguments[1] = rhs_type.IsUnknown() ? lhs_type : rhs_type;
2222

2323
if (bound_function.arguments[0].id() != LogicalTypeId::ARRAY ||
2424
bound_function.arguments[1].id() != LogicalTypeId::ARRAY) {

src/duckdb/extension/core_functions/scalar/list/flatten.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,9 @@ static unique_ptr<FunctionData> ListFlattenBind(ClientContext &context, ScalarFu
162162

163163
auto &input_type = arguments[0]->return_type;
164164
bound_function.arguments[0] = input_type;
165-
if (input_type.id() == LogicalTypeId::UNKNOWN) {
166-
bound_function.arguments[0] = LogicalType(LogicalTypeId::UNKNOWN);
167-
bound_function.return_type = LogicalType(LogicalTypeId::SQLNULL);
165+
if (input_type.IsUnknown()) {
166+
bound_function.arguments[0] = LogicalType::UNKNOWN;
167+
bound_function.return_type = LogicalType::UNKNOWN;
168168
return nullptr;
169169
}
170170
D_ASSERT(input_type.id() == LogicalTypeId::LIST);
@@ -174,9 +174,9 @@ static unique_ptr<FunctionData> ListFlattenBind(ClientContext &context, ScalarFu
174174
bound_function.return_type = input_type;
175175
return make_uniq<VariableReturnBindData>(bound_function.return_type);
176176
}
177-
if (child_type.id() == LogicalTypeId::UNKNOWN) {
178-
bound_function.arguments[0] = LogicalType(LogicalTypeId::UNKNOWN);
179-
bound_function.return_type = LogicalType(LogicalTypeId::SQLNULL);
177+
if (child_type.IsUnknown()) {
178+
bound_function.arguments[0] = LogicalType::UNKNOWN;
179+
bound_function.return_type = LogicalType::UNKNOWN;
180180
return nullptr;
181181
}
182182
D_ASSERT(child_type.id() == LogicalTypeId::LIST);

src/duckdb/extension/core_functions/scalar/list/list_has_any_or_all.cpp

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,29 +12,29 @@ static unique_ptr<FunctionData> ListHasAnyOrAllBind(ClientContext &context, Scal
1212
arguments[0] = BoundCastExpression::AddArrayCastToList(context, std::move(arguments[0]));
1313
arguments[1] = BoundCastExpression::AddArrayCastToList(context, std::move(arguments[1]));
1414

15-
const auto lhs_is_param = arguments[0]->HasParameter();
16-
const auto rhs_is_param = arguments[1]->HasParameter();
15+
const auto &lhs_type = arguments[0]->return_type;
16+
const auto &rhs_type = arguments[1]->return_type;
1717

18-
if (lhs_is_param && rhs_is_param) {
19-
throw ParameterNotResolvedException();
18+
if (lhs_type.IsUnknown() && rhs_type.IsUnknown()) {
19+
bound_function.arguments[0] = rhs_type;
20+
bound_function.arguments[1] = lhs_type;
21+
bound_function.return_type = LogicalType::UNKNOWN;
22+
return nullptr;
2023
}
2124

22-
const auto &lhs_list = arguments[0]->return_type;
23-
const auto &rhs_list = arguments[1]->return_type;
25+
// LHS and RHS must have the same input type.
26+
// Thus, we can proceed binding, even if we only know the type of one of the arguments.
2427

25-
if (lhs_is_param) {
26-
bound_function.arguments[0] = rhs_list;
27-
bound_function.arguments[1] = rhs_list;
28-
return nullptr;
29-
}
30-
if (rhs_is_param) {
31-
bound_function.arguments[0] = lhs_list;
32-
bound_function.arguments[1] = lhs_list;
28+
if (lhs_type.IsUnknown() || rhs_type.IsUnknown()) {
29+
bound_function.arguments[0] = lhs_type.IsUnknown() ? rhs_type : lhs_type;
30+
bound_function.arguments[1] = rhs_type.IsUnknown() ? lhs_type : rhs_type;
3331
return nullptr;
3432
}
3533

36-
bound_function.arguments[0] = lhs_list;
37-
bound_function.arguments[1] = rhs_list;
34+
// Ensure the lists have the same child type, else throw.
35+
36+
bound_function.arguments[0] = lhs_type;
37+
bound_function.arguments[1] = rhs_type;
3838

3939
const auto &lhs_child = ListType::GetChildType(bound_function.arguments[0]);
4040
const auto &rhs_child = ListType::GetChildType(bound_function.arguments[1]);

src/duckdb/extension/json/include/json_multi_file_info.hpp

Lines changed: 31 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -18,48 +18,37 @@ class JSONFileReaderOptions : public BaseFileReaderOptions {
1818
JSONReaderOptions options;
1919
};
2020

21-
struct JSONMultiFileInfo {
22-
static unique_ptr<BaseFileReaderOptions> InitializeOptions(ClientContext &context,
23-
optional_ptr<TableFunctionInfo> info);
24-
static bool ParseCopyOption(ClientContext &context, const string &key, const vector<Value> &values,
25-
BaseFileReaderOptions &options, vector<string> &expected_names,
26-
vector<LogicalType> &expected_types);
27-
static bool ParseOption(ClientContext &context, const string &key, const Value &val, MultiFileOptions &file_options,
28-
BaseFileReaderOptions &options);
29-
static void FinalizeCopyBind(ClientContext &context, BaseFileReaderOptions &options,
30-
const vector<string> &expected_names, const vector<LogicalType> &expected_types);
31-
static unique_ptr<TableFunctionData> InitializeBindData(MultiFileBindData &multi_file_data,
32-
unique_ptr<BaseFileReaderOptions> options);
33-
static void BindReader(ClientContext &context, vector<LogicalType> &return_types, vector<string> &names,
34-
MultiFileBindData &bind_data);
35-
static void FinalizeBindData(MultiFileBindData &multi_file_data);
36-
static void GetBindInfo(const TableFunctionData &bind_data, BindInfo &info);
37-
static optional_idx MaxThreads(const MultiFileBindData &bind_data, const MultiFileGlobalState &global_state,
38-
FileExpandResult expand_result);
39-
static unique_ptr<GlobalTableFunctionState>
40-
InitializeGlobalState(ClientContext &context, MultiFileBindData &bind_data, MultiFileGlobalState &global_state);
41-
static unique_ptr<LocalTableFunctionState> InitializeLocalState(ExecutionContext &context,
42-
GlobalTableFunctionState &global_state);
43-
static shared_ptr<BaseFileReader> CreateReader(ClientContext &context, GlobalTableFunctionState &gstate,
44-
BaseUnionData &union_data, const MultiFileBindData &bind_data_p);
45-
static shared_ptr<BaseFileReader> CreateReader(ClientContext &context, GlobalTableFunctionState &gstate,
46-
const OpenFileInfo &file, idx_t file_idx,
47-
const MultiFileBindData &bind_data);
48-
static shared_ptr<BaseFileReader> CreateReader(ClientContext &context, const OpenFileInfo &file,
49-
JSONReaderOptions &options, const MultiFileOptions &file_options);
50-
static shared_ptr<BaseUnionData> GetUnionData(shared_ptr<BaseFileReader> scan_p, idx_t file_idx);
51-
static void FinalizeReader(ClientContext &context, BaseFileReader &reader, GlobalTableFunctionState &gstate_p);
52-
static bool TryInitializeScan(ClientContext &context, shared_ptr<BaseFileReader> &reader,
53-
GlobalTableFunctionState &gstate, LocalTableFunctionState &lstate);
54-
static void Scan(ClientContext &context, BaseFileReader &reader, GlobalTableFunctionState &global_state,
55-
LocalTableFunctionState &local_state, DataChunk &chunk);
56-
static void FinishFile(ClientContext &context, GlobalTableFunctionState &global_state, BaseFileReader &reader);
57-
static void FinishReading(ClientContext &context, GlobalTableFunctionState &global_state,
58-
LocalTableFunctionState &local_state);
59-
static unique_ptr<NodeStatistics> GetCardinality(const MultiFileBindData &bind_data, idx_t file_count);
60-
static unique_ptr<BaseStatistics> GetStatistics(ClientContext &context, BaseFileReader &reader, const string &name);
61-
static double GetProgressInFile(ClientContext &context, const BaseFileReader &reader);
62-
static void GetVirtualColumns(ClientContext &context, MultiFileBindData &bind_data, virtual_column_map_t &result);
21+
struct JSONMultiFileInfo : MultiFileReaderInterface {
22+
static unique_ptr<MultiFileReaderInterface> InitializeInterface(ClientContext &context, MultiFileReader &reader,
23+
MultiFileList &file_list);
24+
25+
unique_ptr<BaseFileReaderOptions> InitializeOptions(ClientContext &context,
26+
optional_ptr<TableFunctionInfo> info) override;
27+
bool ParseCopyOption(ClientContext &context, const string &key, const vector<Value> &values,
28+
BaseFileReaderOptions &options, vector<string> &expected_names,
29+
vector<LogicalType> &expected_types) override;
30+
bool ParseOption(ClientContext &context, const string &key, const Value &val, MultiFileOptions &file_options,
31+
BaseFileReaderOptions &options) override;
32+
void FinalizeCopyBind(ClientContext &context, BaseFileReaderOptions &options, const vector<string> &expected_names,
33+
const vector<LogicalType> &expected_types) override;
34+
unique_ptr<TableFunctionData> InitializeBindData(MultiFileBindData &multi_file_data,
35+
unique_ptr<BaseFileReaderOptions> options) override;
36+
void BindReader(ClientContext &context, vector<LogicalType> &return_types, vector<string> &names,
37+
MultiFileBindData &bind_data) override;
38+
optional_idx MaxThreads(const MultiFileBindData &bind_data, const MultiFileGlobalState &global_state,
39+
FileExpandResult expand_result) override;
40+
unique_ptr<GlobalTableFunctionState> InitializeGlobalState(ClientContext &context, MultiFileBindData &bind_data,
41+
MultiFileGlobalState &global_state) override;
42+
unique_ptr<LocalTableFunctionState> InitializeLocalState(ExecutionContext &context,
43+
GlobalTableFunctionState &global_state) override;
44+
shared_ptr<BaseFileReader> CreateReader(ClientContext &context, GlobalTableFunctionState &gstate,
45+
BaseUnionData &union_data, const MultiFileBindData &bind_data_p) override;
46+
shared_ptr<BaseFileReader> CreateReader(ClientContext &context, GlobalTableFunctionState &gstate,
47+
const OpenFileInfo &file, idx_t file_idx,
48+
const MultiFileBindData &bind_data) override;
49+
void FinishReading(ClientContext &context, GlobalTableFunctionState &global_state,
50+
LocalTableFunctionState &local_state) override;
51+
unique_ptr<NodeStatistics> GetCardinality(const MultiFileBindData &bind_data, idx_t file_count) override;
6352
};
6453

6554
} // namespace duckdb

0 commit comments

Comments
 (0)