1
1
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
3
3
--- a/src/include/duckdb/main/database.hpp
4
4
+++ 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 ;
7
7
8
8
duckdb_ext_api_v1 (*create_api_v1)();
9
9
+ public:
@@ -31,10 +31,10 @@ index 6ccd1a1156..8040f537b6 100644
31
31
//! Debugging repositories (target local, relative paths that are produced by DuckDB's build system)
32
32
static constexpr const char *BUILD_DEBUG_REPOSITORY_PATH = "./build/debug/repository";
33
33
diff --git a/src/main/database.cpp b/src/main/database.cpp
34
- index 084dab6f30..6e21356bd9 100644
34
+ index db6e1ed445..d495aab058 100644
35
35
--- a/src/main/database.cpp
36
36
+++ 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 ,28 @@ DuckDB::DuckDB(DatabaseInstance &instance_p) : instance(instance_p.shared_from_t
38
38
DuckDB::~DuckDB() {
39
39
}
40
40
@@ -63,19 +63,30 @@ index 084dab6f30..6e21356bd9 100644
63
63
SecretManager &DatabaseInstance::GetSecretManager() {
64
64
return *config.secret_manager;
65
65
}
66
+ @@ -507,6 +529,10 @@ idx_t DuckDB::NumberOfThreads() {
67
+
68
+ bool DatabaseInstance::ExtensionIsLoaded(const std::string &name) {
69
+ auto extension_name = ExtensionHelper::GetExtensionName(name);
70
+ + if (extension_name == "httpfs") {
71
+ + ExtensionInstallInfo info;
72
+ + SetExtensionLoaded(extension_name, info);
73
+ + }
74
+ auto it = loaded_extensions_info.find(extension_name);
75
+ return it != loaded_extensions_info.end() && it->second.is_loaded;
76
+ }
66
77
diff --git a/src/main/extension/extension_helper.cpp b/src/main/extension/extension_helper.cpp
67
- index c7b613226a..00885ee6a4 100644
78
+ index 3aaf507faa..be084ef030 100644
68
79
--- a/src/main/extension/extension_helper.cpp
69
80
+++ b/src/main/extension/extension_helper.cpp
70
- @@ -326 ,7 +326 ,6 @@ vector<ExtensionUpdateResult> ExtensionHelper::UpdateExtensions(ClientContext &c
81
+ @@ -337 ,7 +337 ,6 @@ vector<ExtensionUpdateResult> ExtensionHelper::UpdateExtensions(ClientContext &c
71
82
vector<ExtensionUpdateResult> result;
72
83
DatabaseInstance &db = DatabaseInstance::GetDatabase(context);
73
84
74
85
- #ifndef WASM_LOADABLE_EXTENSIONS
75
86
case_insensitive_set_t seen_extensions;
76
87
77
88
// scan the install directory for installed extensions
78
- @@ -343 ,7 +342 ,6 @@ vector<ExtensionUpdateResult> ExtensionHelper::UpdateExtensions(ClientContext &c
89
+ @@ -354 ,7 +353 ,6 @@ vector<ExtensionUpdateResult> ExtensionHelper::UpdateExtensions(ClientContext &c
79
90
80
91
result.push_back(UpdateExtensionInternal(context, db, fs, fs.JoinPath(ext_directory, path), extension_name));
81
92
});
@@ -84,10 +95,10 @@ index c7b613226a..00885ee6a4 100644
84
95
return result;
85
96
}
86
97
diff --git a/src/main/extension/extension_install.cpp b/src/main/extension/extension_install.cpp
87
- index e8ab595ab0..fb3e6371a3 100644
98
+ index 2ea03b8e49..d8c710f153 100644
88
99
--- a/src/main/extension/extension_install.cpp
89
100
+++ b/src/main/extension/extension_install.cpp
90
- @@ -155 ,6 +155 ,9 @@ bool ExtensionHelper::CreateSuggestions(const string &extension_name, string &me
101
+ @@ -145 ,6 +145 ,9 @@ bool ExtensionHelper::CreateSuggestions(const string &extension_name, string &me
91
102
unique_ptr<ExtensionInstallInfo> ExtensionHelper::InstallExtension(DatabaseInstance &db, FileSystem &fs,
92
103
const string &extension,
93
104
ExtensionInstallOptions &options) {
@@ -97,7 +108,7 @@ index e8ab595ab0..fb3e6371a3 100644
97
108
#ifdef WASM_LOADABLE_EXTENSIONS
98
109
// Install is currently a no-op
99
110
return nullptr;
100
- @@ -165 ,6 +168 ,9 @@ unique_ptr<ExtensionInstallInfo> ExtensionHelper::InstallExtension(DatabaseInsta
111
+ @@ -155 ,6 +158 ,9 @@ unique_ptr<ExtensionInstallInfo> ExtensionHelper::InstallExtension(DatabaseInsta
101
112
102
113
unique_ptr<ExtensionInstallInfo> ExtensionHelper::InstallExtension(ClientContext &context, const string &extension,
103
114
ExtensionInstallOptions &options) {
@@ -107,20 +118,11 @@ index e8ab595ab0..fb3e6371a3 100644
107
118
#ifdef WASM_LOADABLE_EXTENSIONS
108
119
// Install is currently a no-op
109
120
return nullptr;
110
- @@ -209,7 +215,7 @@ string ExtensionHelper::ExtensionUrlTemplate(optional_ptr<const DatabaseInstance
111
- versioned_path = "/${REVISION}/${PLATFORM}/${NAME}.duckdb_extension";
112
- }
113
- #ifdef WASM_LOADABLE_EXTENSIONS
114
- - string default_endpoint = DEFAULT_REPOSITORY;
115
- + string default_endpoint = ExtensionRepository::DEFAULT_REPOSITORY_URL;
116
- versioned_path = versioned_path + ".wasm";
117
- #else
118
- string default_endpoint = ExtensionRepository::DEFAULT_REPOSITORY_URL;
119
121
diff --git a/src/main/extension/extension_load.cpp b/src/main/extension/extension_load.cpp
120
- index 84b28fef09..ea2ebba1cd 100644
122
+ index 6e4bb18796..188931a84d 100644
121
123
--- a/src/main/extension/extension_load.cpp
122
124
+++ b/src/main/extension/extension_load.cpp
123
- @@ -328 ,7 +328 ,20 @@ bool ExtensionHelper::TryInitialLoad(DatabaseInstance &db, FileSystem &fs, const
125
+ @@ -327 ,7 +327 ,20 @@ bool ExtensionHelper::TryInitialLoad(DatabaseInstance &db, FileSystem &fs, const
124
126
direct_load = false;
125
127
string extension_name = ApplyExtensionAlias(extension);
126
128
#ifdef WASM_LOADABLE_EXTENSIONS
@@ -142,7 +144,7 @@ index 84b28fef09..ea2ebba1cd 100644
142
144
string url = ExtensionFinalizeUrlTemplate(url_template, extension_name);
143
145
144
146
char *str = (char *)EM_ASM_PTR(
145
- @@ -369 ,35 +382 ,31 @@ bool ExtensionHelper::TryInitialLoad(DatabaseInstance &db, FileSystem &fs, const
147
+ @@ -368 ,35 +381 ,31 @@ bool ExtensionHelper::TryInitialLoad(DatabaseInstance &db, FileSystem &fs, const
146
148
direct_load = true;
147
149
filename = fs.ExpandPath(filename);
148
150
}
@@ -198,7 +200,7 @@ index 84b28fef09..ea2ebba1cd 100644
198
200
199
201
if (!metadata_mismatch_error.empty()) {
200
202
throw InvalidInputException(metadata_mismatch_error);
201
- @@ -414 ,26 +423 ,192 @@ bool ExtensionHelper::TryInitialLoad(DatabaseInstance &db, FileSystem &fs, const
203
+ @@ -413 ,26 +422 ,192 @@ bool ExtensionHelper::TryInitialLoad(DatabaseInstance &db, FileSystem &fs, const
202
204
}
203
205
}
204
206
@@ -401,7 +403,7 @@ index 84b28fef09..ea2ebba1cd 100644
401
403
#else
402
404
auto dopen_from = filename;
403
405
#endif
404
- @@ -449 ,28 +624 ,30 @@ bool ExtensionHelper::TryInitialLoad(DatabaseInstance &db, FileSystem &fs, const
406
+ @@ -448 ,28 +623 ,30 @@ bool ExtensionHelper::TryInitialLoad(DatabaseInstance &db, FileSystem &fs, const
405
407
result.filebase = lowercase_extension_name;
406
408
result.filename = filename;
407
409
result.lib_hdl = lib_hdl;
0 commit comments