Skip to content

Commit f26628a

Browse files
committed
Actually untangle patches
1 parent 5457db5 commit f26628a

File tree

2 files changed

+49
-60
lines changed

2 files changed

+49
-60
lines changed

patches/duckdb/extension_install_rework.patch

Lines changed: 49 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
diff --git a/src/include/duckdb/main/database.hpp b/src/include/duckdb/main/database.hpp
2-
index ed956daa64..d4774faac5 100644
2+
index d3c5fb9bd5..b3d0aaa09e 100644
33
--- a/src/include/duckdb/main/database.hpp
44
+++ b/src/include/duckdb/main/database.hpp
5-
@@ -97,6 +97,10 @@ private:
6-
shared_ptr<LogManager> log_manager;
5+
@@ -100,6 +100,10 @@ private:
6+
unique_ptr<ExternalFileCache> external_file_cache;
77

88
duckdb_ext_api_v1 (*create_api_v1)();
99
+public:
@@ -31,13 +31,35 @@ index 6ccd1a1156..8040f537b6 100644
3131
//! Debugging repositories (target local, relative paths that are produced by DuckDB's build system)
3232
static constexpr const char *BUILD_DEBUG_REPOSITORY_PATH = "./build/debug/repository";
3333
diff --git a/src/main/database.cpp b/src/main/database.cpp
34-
index 084dab6f30..6e21356bd9 100644
34+
index db6e1ed445..eef90bcf48 100644
3535
--- a/src/main/database.cpp
3636
+++ b/src/main/database.cpp
37-
@@ -344,6 +344,28 @@ DuckDB::DuckDB(DatabaseInstance &instance_p) : instance(instance_p.shared_from_t
37+
@@ -356,6 +356,50 @@ DuckDB::DuckDB(DatabaseInstance &instance_p) : instance(instance_p.shared_from_t
3838
DuckDB::~DuckDB() {
3939
}
4040

41+
+unordered_map<string, string> DatabaseInstance::extensionsRepos = {};
42+
+
43+
+void DatabaseInstance::SetPreferredRepository(const string& extension, const string &repository) {
44+
+ auto &x = extensionsRepos;
45+
+ auto it = x.find(extension);
46+
+ if (it != x.end()) {
47+
+ it->second=repository;
48+
+ } else {
49+
+ x.emplace(extension, repository);
50+
+ }
51+
+}
52+
+
53+
+string DatabaseInstance::GetPreferredRepository(const string& extension) {
54+
+ const auto &x = extensionsRepos;
55+
+ auto it = x.find(extension);
56+
+ if (it != x.end()) {
57+
+ return it->second;
58+
+ }
59+
+ return "";
60+
+}
61+
+
62+
+
4163
+unordered_map<string, string> DatabaseInstance::extensionsRepos = {};
4264
+
4365
+void DatabaseInstance::SetPreferredRepository(const string& extension, const string &repository) {
@@ -63,19 +85,30 @@ index 084dab6f30..6e21356bd9 100644
6385
SecretManager &DatabaseInstance::GetSecretManager() {
6486
return *config.secret_manager;
6587
}
88+
@@ -507,6 +551,10 @@ idx_t DuckDB::NumberOfThreads() {
89+
90+
bool DatabaseInstance::ExtensionIsLoaded(const std::string &name) {
91+
auto extension_name = ExtensionHelper::GetExtensionName(name);
92+
+ if (extension_name == "httpfs") {
93+
+ ExtensionInstallInfo info;
94+
+ SetExtensionLoaded(extension_name, info);
95+
+ }
96+
auto it = loaded_extensions_info.find(extension_name);
97+
return it != loaded_extensions_info.end() && it->second.is_loaded;
98+
}
6699
diff --git a/src/main/extension/extension_helper.cpp b/src/main/extension/extension_helper.cpp
67-
index c7b613226a..00885ee6a4 100644
100+
index 3aaf507faa..be084ef030 100644
68101
--- a/src/main/extension/extension_helper.cpp
69102
+++ b/src/main/extension/extension_helper.cpp
70-
@@ -326,7 +326,6 @@ vector<ExtensionUpdateResult> ExtensionHelper::UpdateExtensions(ClientContext &c
103+
@@ -337,7 +337,6 @@ vector<ExtensionUpdateResult> ExtensionHelper::UpdateExtensions(ClientContext &c
71104
vector<ExtensionUpdateResult> result;
72105
DatabaseInstance &db = DatabaseInstance::GetDatabase(context);
73106

74107
-#ifndef WASM_LOADABLE_EXTENSIONS
75108
case_insensitive_set_t seen_extensions;
76109

77110
// scan the install directory for installed extensions
78-
@@ -343,7 +342,6 @@ vector<ExtensionUpdateResult> ExtensionHelper::UpdateExtensions(ClientContext &c
111+
@@ -354,7 +353,6 @@ vector<ExtensionUpdateResult> ExtensionHelper::UpdateExtensions(ClientContext &c
79112

80113
result.push_back(UpdateExtensionInternal(context, db, fs, fs.JoinPath(ext_directory, path), extension_name));
81114
});
@@ -84,10 +117,10 @@ index c7b613226a..00885ee6a4 100644
84117
return result;
85118
}
86119
diff --git a/src/main/extension/extension_install.cpp b/src/main/extension/extension_install.cpp
87-
index e8ab595ab0..fb3e6371a3 100644
120+
index 2ea03b8e49..d8c710f153 100644
88121
--- a/src/main/extension/extension_install.cpp
89122
+++ b/src/main/extension/extension_install.cpp
90-
@@ -155,6 +155,9 @@ bool ExtensionHelper::CreateSuggestions(const string &extension_name, string &me
123+
@@ -145,6 +145,9 @@ bool ExtensionHelper::CreateSuggestions(const string &extension_name, string &me
91124
unique_ptr<ExtensionInstallInfo> ExtensionHelper::InstallExtension(DatabaseInstance &db, FileSystem &fs,
92125
const string &extension,
93126
ExtensionInstallOptions &options) {
@@ -97,7 +130,7 @@ index e8ab595ab0..fb3e6371a3 100644
97130
#ifdef WASM_LOADABLE_EXTENSIONS
98131
// Install is currently a no-op
99132
return nullptr;
100-
@@ -165,6 +168,9 @@ unique_ptr<ExtensionInstallInfo> ExtensionHelper::InstallExtension(DatabaseInsta
133+
@@ -155,6 +158,9 @@ unique_ptr<ExtensionInstallInfo> ExtensionHelper::InstallExtension(DatabaseInsta
101134

102135
unique_ptr<ExtensionInstallInfo> ExtensionHelper::InstallExtension(ClientContext &context, const string &extension,
103136
ExtensionInstallOptions &options) {
@@ -117,10 +150,10 @@ index e8ab595ab0..fb3e6371a3 100644
117150
#else
118151
string default_endpoint = ExtensionRepository::DEFAULT_REPOSITORY_URL;
119152
diff --git a/src/main/extension/extension_load.cpp b/src/main/extension/extension_load.cpp
120-
index 84b28fef09..ea2ebba1cd 100644
153+
index 6e4bb18796..188931a84d 100644
121154
--- a/src/main/extension/extension_load.cpp
122155
+++ b/src/main/extension/extension_load.cpp
123-
@@ -328,7 +328,20 @@ bool ExtensionHelper::TryInitialLoad(DatabaseInstance &db, FileSystem &fs, const
156+
@@ -327,7 +327,20 @@ bool ExtensionHelper::TryInitialLoad(DatabaseInstance &db, FileSystem &fs, const
124157
direct_load = false;
125158
string extension_name = ApplyExtensionAlias(extension);
126159
#ifdef WASM_LOADABLE_EXTENSIONS
@@ -142,7 +175,7 @@ index 84b28fef09..ea2ebba1cd 100644
142175
string url = ExtensionFinalizeUrlTemplate(url_template, extension_name);
143176

144177
char *str = (char *)EM_ASM_PTR(
145-
@@ -369,35 +382,31 @@ bool ExtensionHelper::TryInitialLoad(DatabaseInstance &db, FileSystem &fs, const
178+
@@ -368,35 +381,31 @@ bool ExtensionHelper::TryInitialLoad(DatabaseInstance &db, FileSystem &fs, const
146179
direct_load = true;
147180
filename = fs.ExpandPath(filename);
148181
}
@@ -198,7 +231,7 @@ index 84b28fef09..ea2ebba1cd 100644
198231

199232
if (!metadata_mismatch_error.empty()) {
200233
throw InvalidInputException(metadata_mismatch_error);
201-
@@ -414,26 +423,192 @@ bool ExtensionHelper::TryInitialLoad(DatabaseInstance &db, FileSystem &fs, const
234+
@@ -413,26 +422,192 @@ bool ExtensionHelper::TryInitialLoad(DatabaseInstance &db, FileSystem &fs, const
202235
}
203236
}
204237

@@ -401,7 +434,7 @@ index 84b28fef09..ea2ebba1cd 100644
401434
#else
402435
auto dopen_from = filename;
403436
#endif
404-
@@ -449,28 +624,30 @@ bool ExtensionHelper::TryInitialLoad(DatabaseInstance &db, FileSystem &fs, const
437+
@@ -448,28 +623,30 @@ bool ExtensionHelper::TryInitialLoad(DatabaseInstance &db, FileSystem &fs, const
405438
result.filebase = lowercase_extension_name;
406439
result.filename = filename;
407440
result.lib_hdl = lib_hdl;

patches/duckdb/no_httpfs.patch

Lines changed: 0 additions & 44 deletions
This file was deleted.

0 commit comments

Comments
 (0)