1313
1414#ifdef _WIN32
1515#define OPEN_COMMAND " start"
16+ #undef CreateDirectory // avoid being transformed to `CreateDirectoryA`
1617#elif __linux__
1718#define OPEN_COMMAND " xdg-open"
1819#else
@@ -81,7 +82,12 @@ void InitStorageExtension(duckdb::DatabaseInstance &db) {
8182 config.storage_extensions [STORAGE_EXTENSION_KEY] = std::move (ext);
8283}
8384
85+ #ifdef DUCKDB_CPP_EXTENSION_ENTRY
86+ static void LoadInternal (ExtensionLoader &loader) {
87+ auto &instance = loader.GetDatabaseInstance ();
88+ #else
8489static void LoadInternal (DatabaseInstance &instance) {
90+ #endif
8591 InitStorageExtension (instance);
8692
8793 // If the server is already running we need to update the database instance
@@ -128,11 +134,20 @@ static void LoadInternal(DatabaseInstance &instance) {
128134 TableFunction tf (" ui_is_started" , {}, IsUIStartedTableFunc,
129135 internal::SingleBoolResultBind,
130136 RunOnceTableFunctionState::Init);
137+ #ifdef DUCKDB_CPP_EXTENSION_ENTRY
138+ loader.RegisterFunction (tf);
139+ #else
131140 ExtensionUtil::RegisterFunction (instance, tf);
141+ #endif
132142 }
133143}
134144
145+ #ifdef DUCKDB_CPP_EXTENSION_ENTRY
146+ void UiExtension::Load (ExtensionLoader &loader) { LoadInternal (loader); }
147+ #else
135148void UiExtension::Load (DuckDB &db) { LoadInternal (*db.instance ); }
149+ #endif
150+
136151std::string UiExtension::Name () { return " ui" ; }
137152
138153std::string UiExtension::Version () const { return UI_EXTENSION_VERSION; }
@@ -141,10 +156,14 @@ std::string UiExtension::Version() const { return UI_EXTENSION_VERSION; }
141156
142157extern " C" {
143158
159+ #ifdef DUCKDB_CPP_EXTENSION_ENTRY
160+ DUCKDB_CPP_EXTENSION_ENTRY (ui, loader) { duckdb::LoadInternal (loader); }
161+ #else
144162DUCKDB_EXTENSION_API void ui_init (duckdb::DatabaseInstance &db) {
145163 duckdb::DuckDB db_wrapper (db);
146164 db_wrapper.LoadExtension <duckdb::UiExtension>();
147165}
166+ #endif
148167
149168DUCKDB_EXTENSION_API const char *ui_version () {
150169 return duckdb::DuckDB::LibraryVersion ();
0 commit comments