Skip to content

Upgrade to DuckDB v2.0.0 - #12

Merged
avaitla merged 1 commit into
mainfrom
duckdb-v2.0.0
Oct 23, 2026
Merged

avaitla merged 1 commit into
mainfrom
duckdb-v2.0.0

Conversation

@avaitla

@avaitla avaitla commented Oct 23, 2026

Copy link
Copy Markdown
Owner

Summary

  • Bump duckdb submodule to v2.0.0 (d54cbbe) and extension-ci-tools to v2.0-cyanoptera (b8d325c, the v2.0 counterpart of v1.5-variegata).
  • Target v2.0.0 / v2.0-cyanoptera in MainDistributionPipeline.yml and Release.yml; note in RELEASE_NOTES.md.

C++ API changes in v2.0

v1.5 v2.0
Parser(context.GetParserOptions()) — now private Parser(context)
BoundStatement::names was vector<string> now vector<Identifier> → GetIdentifierName()
named_parameters.find(string) map keyed by Identifier → find(Identifier(name))
TableFunction::named_parameters[...] = type — removed fun.GetSignature().AddKeywordOnly(name, type, Value())

Keyword-only parameters without a default are required in v2.0, so each one gets a NULL default. FindParam already treats NULL as absent, so behavior is unchanged, including the extension's own "pk is required" error.

User-visible differences:

  • "No function matches" errors now render the signature as table_diff(col0 VARCHAR, col1 VARCHAR, /, *, pk ANY, …).
  • Named parameters match case-insensitively (PK := 'id' works).

Test plan

  • make release against v2.0.0 builds cleanly
  • make test: 10/10 test files pass
  • Manual smoke test: loaded the built duck_diff.duckdb_extension into the v2.0.0 shell; table_diff / table_diff_summary return correct results
  • CI distribution pipeline green on all platforms

🤖 Generated with Claude Code

Bump duckdb submodule to v2.0.0 (d54cbbe) and extension-ci-tools to the
v2.0-cyanoptera tip (b8d325c); target v2.0.0 in MainDistributionPipeline.yml
and Release.yml.

Adapt to v2.0 C++ API changes:
- ClientContext::GetParserOptions() is private; construct Parser(context).
- BoundStatement::names is vector<Identifier>; convert via GetIdentifierName().
- named_argument_map_t is keyed by Identifier; look up with Identifier(name).
- TableFunction::named_parameters is gone; declare keyword-only parameters
  on the signature. They get NULL defaults so they stay optional (keyword-only
  parameters without a default are required in v2.0), and FindParam already
  treats NULL as "not passed".

Co-Authored-By: Claude <noreply@anthropic.com>
@avaitla
avaitla merged commit 9473cbc into main Oct 23, 2026
22 of 24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant