Skip to content

Commit 0a80b6f

Browse files
committed
vendor: Update vendored sources to duckdb/duckdb@81b4ef6
Fix handling of quotes in ToString() of search_path in current_setting (duckdb/duckdb#19162) [ci] Change logic for saving caches: Github variable that decides what gets cached (duckdb/duckdb#19150) Allow implicit casts from `JSON[]` to `JSON` again (duckdb/duckdb#19141) Fix bug in merge into when condition is in parenthesis (duckdb/duckdb#19137)
1 parent f272cfd commit 0a80b6f

File tree

4 files changed

+16
-8
lines changed

4 files changed

+16
-8
lines changed

R/version.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Generated by rconfigure.py, do not edit by hand
22
# DuckDB version information
33

4-
duckdb_version <- "1.4.1-dev82"
4+
duckdb_version <- "1.4.1-dev91"
55

66
# Function to get DuckDB version without establishing a connection
77
get_duckdb_version <- function() {

src/duckdb/src/catalog/catalog_search_path.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ string CatalogSearchEntry::ToString() const {
2424

2525
string CatalogSearchEntry::WriteOptionallyQuoted(const string &input) {
2626
for (idx_t i = 0; i < input.size(); i++) {
27-
if (input[i] == '.' || input[i] == ',') {
28-
return "\"" + input + "\"";
27+
if (input[i] == '.' || input[i] == ',' || input[i] == '"') {
28+
return "\"" + StringUtil::Replace(input, "\"", "\"\"") + "\"";
2929
}
3030
}
3131
return input;

src/duckdb/src/function/table/version/pragma_version.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#ifndef DUCKDB_PATCH_VERSION
2-
#define DUCKDB_PATCH_VERSION "1-dev82"
2+
#define DUCKDB_PATCH_VERSION "1-dev91"
33
#endif
44
#ifndef DUCKDB_MINOR_VERSION
55
#define DUCKDB_MINOR_VERSION 4
@@ -8,10 +8,10 @@
88
#define DUCKDB_MAJOR_VERSION 1
99
#endif
1010
#ifndef DUCKDB_VERSION
11-
#define DUCKDB_VERSION "v1.4.1-dev82"
11+
#define DUCKDB_VERSION "v1.4.1-dev91"
1212
#endif
1313
#ifndef DUCKDB_SOURCE_ID
14-
#define DUCKDB_SOURCE_ID "922691fc7f"
14+
#define DUCKDB_SOURCE_ID "81b4ef640b"
1515
#endif
1616
#include "duckdb/function/table/system_functions.hpp"
1717
#include "duckdb/main/database.hpp"

src/duckdb/src/planner/binder/statement/bind_merge_into.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,10 +232,18 @@ BoundStatement Binder::Bind(MergeIntoStatement &stmt) {
232232
auto bound_join_node = Bind(join);
233233

234234
auto root = CreatePlan(*bound_join_node);
235+
auto join_ref = reference<LogicalOperator>(*root);
236+
while (join_ref.get().children.size() == 1) {
237+
join_ref = *join_ref.get().children[0];
238+
}
239+
if (join_ref.get().children.size() != 2) {
240+
throw NotImplementedException("Expected a join after binding a join operator - but got a %s",
241+
join_ref.get().type);
242+
}
235243
// kind of hacky, CreatePlan turns a RIGHT join into a LEFT join so the children get reversed from what we need
236244
bool inverted = join.type == JoinType::RIGHT;
237-
auto &source = root->children[inverted ? 1 : 0];
238-
auto &get = root->children[inverted ? 0 : 1]->Cast<LogicalGet>();
245+
auto &source = join_ref.get().children[inverted ? 1 : 0];
246+
auto &get = join_ref.get().children[inverted ? 0 : 1]->Cast<LogicalGet>();
239247

240248
auto merge_into = make_uniq<LogicalMergeInto>(table);
241249
merge_into->table_index = GenerateTableIndex();

0 commit comments

Comments
 (0)