@@ -174,10 +174,11 @@ static unsafe_unique_array<data_t> ReadExtensionFileFromDisk(FileSystem &fs, con
174174 return in_buffer;
175175}
176176
177- static void WriteExtensionFileToDisk (FileSystem &fs, const string &path, void *data, idx_t data_size) {
177+ static void WriteExtensionFileToDisk (QueryContext &query_context, FileSystem &fs, const string &path, void *data,
178+ idx_t data_size) {
178179 auto target_file = fs.OpenFile (path, FileFlags::FILE_FLAGS_WRITE | FileFlags::FILE_FLAGS_APPEND |
179180 FileFlags::FILE_FLAGS_FILE_CREATE_NEW);
180- target_file->Write (data, data_size);
181+ target_file->Write (query_context, data, data_size);
181182 target_file->Close ();
182183 target_file.reset ();
183184}
@@ -236,10 +237,11 @@ static void CheckExtensionMetadataOnInstall(DatabaseInstance &db, void *in_buffe
236237// 1. Crash after extension removal: extension is now uninstalled, metadata file still present
237238// 2. Crash after metadata removal: extension is now uninstalled, extension dir is clean
238239// 3. Crash after extension move: extension is now uninstalled, new metadata file present
239- static void WriteExtensionFiles (FileSystem &fs, const string &temp_path, const string &local_extension_path,
240- void *in_buffer, idx_t file_size, ExtensionInstallInfo &info) {
240+ static void WriteExtensionFiles (QueryContext &query_context, FileSystem &fs, const string &temp_path,
241+ const string &local_extension_path, void *in_buffer, idx_t file_size,
242+ ExtensionInstallInfo &info) {
241243 // Write extension to tmp file
242- WriteExtensionFileToDisk (fs, temp_path, in_buffer, file_size);
244+ WriteExtensionFileToDisk (query_context, fs, temp_path, in_buffer, file_size);
243245
244246 // Write metadata to tmp file
245247 auto metadata_tmp_path = temp_path + " .info" ;
@@ -327,7 +329,9 @@ static unique_ptr<ExtensionInstallInfo> DirectInstallExtension(DatabaseInstance
327329 info.repository_url = options.repository ->path ;
328330 }
329331
330- WriteExtensionFiles (fs, temp_path, local_extension_path, extension_decompressed, extension_decompressed_size, info);
332+ QueryContext query_context (context);
333+ WriteExtensionFiles (query_context, fs, temp_path, local_extension_path, extension_decompressed,
334+ extension_decompressed_size, info);
331335
332336 return make_uniq<ExtensionInstallInfo>(info);
333337}
@@ -416,8 +420,9 @@ static unique_ptr<ExtensionInstallInfo> InstallFromHttpUrl(DatabaseInstance &db,
416420 info.full_path = url;
417421 }
418422
423+ QueryContext query_context (context);
419424 auto fs = FileSystem::CreateLocal ();
420- WriteExtensionFiles (*fs, temp_path, local_extension_path, (void *)decompressed_body.data (),
425+ WriteExtensionFiles (query_context, *fs, temp_path, local_extension_path, (void *)decompressed_body.data (),
421426 decompressed_body.size (), info);
422427
423428 return make_uniq<ExtensionInstallInfo>(info);
0 commit comments