@@ -70,10 +70,13 @@ duckdb::string ExtensionHelper::DefaultExtensionFolder(FileSystem &fs) {
70
70
return res;
71
71
}
72
72
73
- string ExtensionHelper::ExtensionDirectory (DatabaseInstance &db, FileSystem &fs) {
74
- #ifdef WASM_LOADABLE_EXTENSIONS
75
- throw PermissionException (" ExtensionDirectory functionality is not supported in duckdb-wasm" );
76
- #endif
73
+ string ExtensionHelper::GetExtensionDirectoryPath (ClientContext &context) {
74
+ auto &db = DatabaseInstance::GetDatabase (context);
75
+ auto &fs = FileSystem::GetFileSystem (context);
76
+ return GetExtensionDirectoryPath (db, fs);
77
+ }
78
+
79
+ string ExtensionHelper::GetExtensionDirectoryPath (DatabaseInstance &db, FileSystem &fs) {
77
80
string extension_directory;
78
81
auto &config = db.config ;
79
82
if (!config.options .extension_directory .empty ()) { // create the extension directory if not present
@@ -83,10 +86,19 @@ string ExtensionHelper::ExtensionDirectory(DatabaseInstance &db, FileSystem &fs)
83
86
} else { // otherwise default to home
84
87
extension_directory = DefaultExtensionFolder (fs);
85
88
}
89
+
90
+ extension_directory = fs.ConvertSeparators (extension_directory);
91
+ // expand ~ in extension directory
92
+ extension_directory = fs.ExpandPath (extension_directory);
93
+ return extension_directory;
94
+ }
95
+
96
+ string ExtensionHelper::ExtensionDirectory (DatabaseInstance &db, FileSystem &fs) {
97
+ #ifdef WASM_LOADABLE_EXTENSIONS
98
+ throw PermissionException (" ExtensionDirectory functionality is not supported in duckdb-wasm" );
99
+ #endif
100
+ string extension_directory = GetExtensionDirectoryPath (db, fs);
86
101
{
87
- extension_directory = fs.ConvertSeparators (extension_directory);
88
- // expand ~ in extension directory
89
- extension_directory = fs.ExpandPath (extension_directory);
90
102
if (!fs.DirectoryExists (extension_directory)) {
91
103
auto sep = fs.PathSeparator (extension_directory);
92
104
auto splits = StringUtil::Split (extension_directory, sep);
0 commit comments