Skip to content

Commit e1fb811

Browse files
Copilotlmangani
andauthored
Update extension for DuckDB v1.4 compatibility (#35)
* Initial plan * Update extension for DuckDB v1.4 compatibility - Changed Load method signature from Load(DuckDB &db) to Load(ExtensionLoader &loader) - Replaced ExtensionUtil::RegisterFunction with loader.RegisterFunction - Replaced old C API entry points with DUCKDB_CPP_EXTENSION_ENTRY macro - Updated vcpkg.json with overlay-triplets configuration - Updated workflow to use v1.4-andium branch Co-authored-by: lmangani <1423657+lmangani@users.noreply.github.com> * Complete DuckDB v1.4 compatibility update Co-authored-by: lmangani <1423657+lmangani@users.noreply.github.com> * Fix ExtensionUtil removal and GetDatabase API changes - Remove ExtensionUtil include (class removed in DuckDB v1.4) - Change loader.GetDatabase() to loader.GetDatabaseInstance() - Update both chsql_extension.cpp and chsql_system.cpp Co-authored-by: lmangani <1423657+lmangani@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: lmangani <1423657+lmangani@users.noreply.github.com>
1 parent 1dd557e commit e1fb811

7 files changed

Lines changed: 39 additions & 38 deletions

File tree

.github/workflows/MainDistributionPipeline.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,18 @@ concurrency:
1212
cancel-in-progress: true
1313

1414
jobs:
15-
# duckdb-next-build:
15+
duckdb-next-build:
16+
name: Build extension binaries
17+
uses: duckdb/extension-ci-tools/.github/workflows/_extension_distribution.yml@main
18+
with:
19+
duckdb_version: v1.4-andium
20+
ci_tools_version: main
21+
extension_name: chsql
22+
23+
# duckdb-stable-build:
1624
# name: Build extension binaries
1725
# uses: duckdb/extension-ci-tools/.github/workflows/_extension_distribution.yml@main
1826
# with:
1927
# duckdb_version: main
2028
# ci_tools_version: main
2129
# extension_name: chsql
22-
23-
duckdb-stable-build:
24-
name: Build extension binaries
25-
uses: duckdb/extension-ci-tools/.github/workflows/_extension_distribution.yml@main
26-
with:
27-
duckdb_version: main
28-
ci_tools_version: main
29-
extension_name: chsql

_codeql_detected_source_root

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.

chsql/src/chsql_extension.cpp

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
#include "duckdb/common/exception.hpp"
66
#include "duckdb/common/string_util.hpp"
77
#include "duckdb/function/scalar_function.hpp"
8-
#include "duckdb/main/extension_util.hpp"
98
#include "duckdb/parser/parsed_data/create_scalar_function_info.hpp"
109
#include "duckdb/catalog/default/default_functions.hpp"
1110
#include "duckdb/catalog/default/default_table_functions.hpp"
@@ -186,35 +185,35 @@ static const DefaultTableMacro chsql_table_macros[] = {
186185
};
187186
// clang-format on
188187

189-
static void LoadInternal(DatabaseInstance &instance)
188+
static void LoadInternal(ExtensionLoader &loader)
190189
{
191190
// Macros
192191
for (idx_t index = 0; chsql_macros[index].name != nullptr; index++)
193192
{
194193
auto info = DefaultFunctionGenerator::CreateInternalMacroInfo(chsql_macros[index]);
195-
ExtensionUtil::RegisterFunction(instance, *info);
194+
loader.RegisterFunction(*info);
196195
}
197196
// Table Macros
198197
for (idx_t index = 0; chsql_table_macros[index].name != nullptr; index++)
199198
{
200199
auto table_info = DefaultTableFunctionGenerator::CreateTableMacroInfo(chsql_table_macros[index]);
201-
ExtensionUtil::RegisterFunction(instance, *table_info);
200+
loader.RegisterFunction(*table_info);
202201
}
203-
ExtensionUtil::RegisterFunction(instance, ReadParquetOrderedFunction());
202+
loader.RegisterFunction(ReadParquetOrderedFunction());
204203
// Flock
205-
ExtensionUtil::RegisterFunction(instance, DuckFlockTableFunction());
204+
loader.RegisterFunction(DuckFlockTableFunction());
206205
// System Table
207-
RegisterSystemFunctions(instance);
206+
RegisterSystemFunctions(loader);
208207
// Register Views
209-
Connection con(Catalog::GetSystemCatalog(instance).GetDatabase());
208+
Connection con(Catalog::GetSystemCatalog(loader.GetDatabaseInstance()).GetDatabase());
210209
con.BeginTransaction();
211210
CreateSystemViews(con);
212211
con.Commit();
213212
}
214213

215-
void ChsqlExtension::Load(DuckDB &db)
214+
void ChsqlExtension::Load(ExtensionLoader &loader)
216215
{
217-
LoadInternal(*db.instance);
216+
LoadInternal(loader);
218217
}
219218
std::string ChsqlExtension::Name()
220219
{
@@ -235,15 +234,9 @@ static const DefaultTableMacro chsql_table_macros[] = {
235234
extern "C"
236235
{
237236

238-
DUCKDB_EXTENSION_API void chsql_init(duckdb::DatabaseInstance &db)
237+
DUCKDB_CPP_EXTENSION_ENTRY(chsql, loader)
239238
{
240-
duckdb::DuckDB db_wrapper(db);
241-
db_wrapper.LoadExtension<duckdb::ChsqlExtension>();
242-
}
243-
244-
DUCKDB_EXTENSION_API const char *chsql_version()
245-
{
246-
return duckdb::DuckDB::LibraryVersion();
239+
duckdb::LoadInternal(loader);
247240
}
248241
}
249242

chsql/src/chsql_system.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#include "chsql_system.hpp"
22
#include "duckdb/function/table_function.hpp"
33
#include "duckdb/function/scalar_function.hpp"
4-
#include "duckdb/main/extension_util.hpp"
54
#include "duckdb/main/client_context.hpp"
65
#include "duckdb/catalog/catalog.hpp"
76
#include "duckdb/main/connection.hpp"
@@ -559,30 +558,30 @@ static unique_ptr<FunctionData> SystemDisksBind(ClientContext &context, TableFun
559558
}
560559

561560
// -- Registration function
562-
void RegisterSystemFunctions(DatabaseInstance &instance) {
561+
void RegisterSystemFunctions(ExtensionLoader &loader) {
563562
// Register system.databases table function
564563
auto databases_func = TableFunction("system_databases", {}, SystemDatabasesFunction, SystemDatabasesBind);
565-
ExtensionUtil::RegisterFunction(instance, databases_func);
564+
loader.RegisterFunction(databases_func);
566565

567566
// Register system.tables table function
568567
auto tables_func = TableFunction("system_tables", {}, SystemTablesFunction, SystemTablesBind);
569-
ExtensionUtil::RegisterFunction(instance, tables_func);
568+
loader.RegisterFunction(tables_func);
570569

571570
// Register system.columns table function
572571
auto columns_func = TableFunction("system_columns", {}, SystemColumnsFunction, SystemColumnsBind);
573-
ExtensionUtil::RegisterFunction(instance, columns_func);
572+
loader.RegisterFunction(columns_func);
574573

575574
// Register system.functions table function
576575
auto functions_func = TableFunction("system_functions", {}, SystemFunctionsFunction, SystemFunctionsBind);
577-
ExtensionUtil::RegisterFunction(instance, functions_func);
576+
loader.RegisterFunction(functions_func);
578577

579578
// Register system.uptime scalar function
580579
auto uptime_func = ScalarFunction("uptime", {}, LogicalType::BIGINT, SystemUptimeFunction);
581-
ExtensionUtil::RegisterFunction(instance, uptime_func);
580+
loader.RegisterFunction(uptime_func);
582581

583582
// Register system.disks table function
584583
auto disks_func = TableFunction("system_disks", {}, SystemDisksFunction, SystemDisksBind);
585-
ExtensionUtil::RegisterFunction(instance, disks_func);
584+
loader.RegisterFunction(disks_func);
586585
}
587586

588587
void CreateSystemViews(Connection &con) {

chsql/src/include/chsql_extension.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace duckdb
88
class ChsqlExtension : public Extension
99
{
1010
public:
11-
void Load(DuckDB &db) override;
11+
void Load(ExtensionLoader &loader) override;
1212
std::string Name() override;
1313
std::string Version() const override;
1414
};

chsql/src/include/chsql_system.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace duckdb {
66

7-
void RegisterSystemFunctions(DatabaseInstance &instance);
7+
void RegisterSystemFunctions(ExtensionLoader &loader);
88
void CreateSystemViews(Connection &con);
99

1010
} // namespace duckdb

chsql/vcpkg.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
11
{
2-
"dependencies": []
2+
"dependencies": [],
3+
"vcpkg-configuration": {
4+
"overlay-ports": [
5+
"../extension-ci-tools/vcpkg_ports"
6+
],
7+
"overlay-triplets": [
8+
"../extension-ci-tools/toolchains"
9+
]
10+
}
311
}

0 commit comments

Comments
 (0)