diff --git a/.github/workflows/MainDistributionPipeline.yml b/.github/workflows/MainDistributionPipeline.yml index 46e0f4a..7f22952 100644 --- a/.github/workflows/MainDistributionPipeline.yml +++ b/.github/workflows/MainDistributionPipeline.yml @@ -12,18 +12,18 @@ concurrency: cancel-in-progress: true jobs: - # duckdb-next-build: + duckdb-next-build: + name: Build extension binaries + uses: duckdb/extension-ci-tools/.github/workflows/_extension_distribution.yml@main + with: + duckdb_version: v1.4-andium + ci_tools_version: main + extension_name: chsql + + # duckdb-stable-build: # name: Build extension binaries # uses: duckdb/extension-ci-tools/.github/workflows/_extension_distribution.yml@main # with: # duckdb_version: main # ci_tools_version: main # extension_name: chsql - - duckdb-stable-build: - name: Build extension binaries - uses: duckdb/extension-ci-tools/.github/workflows/_extension_distribution.yml@main - with: - duckdb_version: main - ci_tools_version: main - extension_name: chsql diff --git a/_codeql_detected_source_root b/_codeql_detected_source_root new file mode 120000 index 0000000..945c9b4 --- /dev/null +++ b/_codeql_detected_source_root @@ -0,0 +1 @@ +. \ No newline at end of file diff --git a/chsql/src/chsql_extension.cpp b/chsql/src/chsql_extension.cpp index 4a8b871..cd9bb2e 100644 --- a/chsql/src/chsql_extension.cpp +++ b/chsql/src/chsql_extension.cpp @@ -5,7 +5,6 @@ #include "duckdb/common/exception.hpp" #include "duckdb/common/string_util.hpp" #include "duckdb/function/scalar_function.hpp" -#include "duckdb/main/extension_util.hpp" #include "duckdb/parser/parsed_data/create_scalar_function_info.hpp" #include "duckdb/catalog/default/default_functions.hpp" #include "duckdb/catalog/default/default_table_functions.hpp" @@ -186,35 +185,35 @@ static const DefaultTableMacro chsql_table_macros[] = { }; // clang-format on - static void LoadInternal(DatabaseInstance &instance) + static void LoadInternal(ExtensionLoader &loader) { // Macros for (idx_t index = 0; chsql_macros[index].name != nullptr; index++) { auto info = DefaultFunctionGenerator::CreateInternalMacroInfo(chsql_macros[index]); - ExtensionUtil::RegisterFunction(instance, *info); + loader.RegisterFunction(*info); } // Table Macros for (idx_t index = 0; chsql_table_macros[index].name != nullptr; index++) { auto table_info = DefaultTableFunctionGenerator::CreateTableMacroInfo(chsql_table_macros[index]); - ExtensionUtil::RegisterFunction(instance, *table_info); + loader.RegisterFunction(*table_info); } - ExtensionUtil::RegisterFunction(instance, ReadParquetOrderedFunction()); + loader.RegisterFunction(ReadParquetOrderedFunction()); // Flock - ExtensionUtil::RegisterFunction(instance, DuckFlockTableFunction()); + loader.RegisterFunction(DuckFlockTableFunction()); // System Table - RegisterSystemFunctions(instance); + RegisterSystemFunctions(loader); // Register Views - Connection con(Catalog::GetSystemCatalog(instance).GetDatabase()); + Connection con(Catalog::GetSystemCatalog(loader.GetDatabaseInstance()).GetDatabase()); con.BeginTransaction(); CreateSystemViews(con); con.Commit(); } - void ChsqlExtension::Load(DuckDB &db) + void ChsqlExtension::Load(ExtensionLoader &loader) { - LoadInternal(*db.instance); + LoadInternal(loader); } std::string ChsqlExtension::Name() { @@ -235,15 +234,9 @@ static const DefaultTableMacro chsql_table_macros[] = { extern "C" { - DUCKDB_EXTENSION_API void chsql_init(duckdb::DatabaseInstance &db) + DUCKDB_CPP_EXTENSION_ENTRY(chsql, loader) { - duckdb::DuckDB db_wrapper(db); - db_wrapper.LoadExtension(); - } - - DUCKDB_EXTENSION_API const char *chsql_version() - { - return duckdb::DuckDB::LibraryVersion(); + duckdb::LoadInternal(loader); } } diff --git a/chsql/src/chsql_system.cpp b/chsql/src/chsql_system.cpp index 992ba09..1485ea5 100644 --- a/chsql/src/chsql_system.cpp +++ b/chsql/src/chsql_system.cpp @@ -1,7 +1,6 @@ #include "chsql_system.hpp" #include "duckdb/function/table_function.hpp" #include "duckdb/function/scalar_function.hpp" -#include "duckdb/main/extension_util.hpp" #include "duckdb/main/client_context.hpp" #include "duckdb/catalog/catalog.hpp" #include "duckdb/main/connection.hpp" @@ -559,30 +558,30 @@ static unique_ptr SystemDisksBind(ClientContext &context, TableFun } // -- Registration function -void RegisterSystemFunctions(DatabaseInstance &instance) { +void RegisterSystemFunctions(ExtensionLoader &loader) { // Register system.databases table function auto databases_func = TableFunction("system_databases", {}, SystemDatabasesFunction, SystemDatabasesBind); - ExtensionUtil::RegisterFunction(instance, databases_func); + loader.RegisterFunction(databases_func); // Register system.tables table function auto tables_func = TableFunction("system_tables", {}, SystemTablesFunction, SystemTablesBind); - ExtensionUtil::RegisterFunction(instance, tables_func); + loader.RegisterFunction(tables_func); // Register system.columns table function auto columns_func = TableFunction("system_columns", {}, SystemColumnsFunction, SystemColumnsBind); - ExtensionUtil::RegisterFunction(instance, columns_func); + loader.RegisterFunction(columns_func); // Register system.functions table function auto functions_func = TableFunction("system_functions", {}, SystemFunctionsFunction, SystemFunctionsBind); - ExtensionUtil::RegisterFunction(instance, functions_func); + loader.RegisterFunction(functions_func); // Register system.uptime scalar function auto uptime_func = ScalarFunction("uptime", {}, LogicalType::BIGINT, SystemUptimeFunction); - ExtensionUtil::RegisterFunction(instance, uptime_func); + loader.RegisterFunction(uptime_func); // Register system.disks table function auto disks_func = TableFunction("system_disks", {}, SystemDisksFunction, SystemDisksBind); - ExtensionUtil::RegisterFunction(instance, disks_func); + loader.RegisterFunction(disks_func); } void CreateSystemViews(Connection &con) { diff --git a/chsql/src/include/chsql_extension.hpp b/chsql/src/include/chsql_extension.hpp index 50440bf..dc83f9e 100644 --- a/chsql/src/include/chsql_extension.hpp +++ b/chsql/src/include/chsql_extension.hpp @@ -8,7 +8,7 @@ namespace duckdb class ChsqlExtension : public Extension { public: - void Load(DuckDB &db) override; + void Load(ExtensionLoader &loader) override; std::string Name() override; std::string Version() const override; }; diff --git a/chsql/src/include/chsql_system.hpp b/chsql/src/include/chsql_system.hpp index 47e7b5a..b34837f 100644 --- a/chsql/src/include/chsql_system.hpp +++ b/chsql/src/include/chsql_system.hpp @@ -4,7 +4,7 @@ namespace duckdb { -void RegisterSystemFunctions(DatabaseInstance &instance); +void RegisterSystemFunctions(ExtensionLoader &loader); void CreateSystemViews(Connection &con); } // namespace duckdb diff --git a/chsql/vcpkg.json b/chsql/vcpkg.json index 0b8fa67..5724479 100644 --- a/chsql/vcpkg.json +++ b/chsql/vcpkg.json @@ -1,3 +1,11 @@ { - "dependencies": [] + "dependencies": [], + "vcpkg-configuration": { + "overlay-ports": [ + "../extension-ci-tools/vcpkg_ports" + ], + "overlay-triplets": [ + "../extension-ci-tools/toolchains" + ] + } } \ No newline at end of file