Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DUCKDB_TYPE_UHUGEINT breaks compatibility with C api clients #10634

Closed
1 task done
Giorgi opened this issue Feb 13, 2024 · 4 comments · Fixed by #10649
Closed
1 task done

DUCKDB_TYPE_UHUGEINT breaks compatibility with C api clients #10634

Giorgi opened this issue Feb 13, 2024 · 4 comments · Fixed by #10649

Comments

@Giorgi
Copy link
Contributor

Giorgi commented Feb 13, 2024

What happens?

In the DUCKDB_TYPE enum a new member, DUCKDB_TYPE_UHUGEINT was inserted in the middle causing all other member values to increment. This breaks compatibility with every library that uses C Api.

To Reproduce

Try using an existing library with DuckDB 0.10.0

OS:

Doesn't matter

DuckDB Version:

0.10.0

DuckDB Client:

Any client via C API

Full Name:

Giorgi Dalakishvili

Affiliation:

Space International

Have you tried this on the latest nightly build?

I have tested with a nightly build

Have you tried the steps to reproduce? Do they include all relevant data and configuration? Does the issue you report still appear there?

  • Yes, I have
@ak-coram
Copy link
Contributor

I'm not sure this is a good idea since it essentially would break compatibility again (with 0.10.0), but I agree that this should be done for similar changes in the future.

@Mytherin
Copy link
Collaborator

Mytherin commented Feb 13, 2024

Thanks for the report! It is indeed unfortunate that this broke C ABI compatibility in a way that could have been avoided. I will submit a patch to add explicit enum numbering and add a warning to ensure we don't break this again in the future.

@Giorgi
Copy link
Contributor Author

Giorgi commented Feb 13, 2024

There are lots of libraries that are compatible with DuckDB <=0.9.2 that all broke with today's release. I'm sure most of them will not be updated by the time a bug-fix release 0.10.1 is released. The last time it was released in just two weeks after the previous release. In my opinion, it would be better to break compatibility with 0.10.0 (if there is anything that will be broken at all) and have everything work again rather than have it permanently broken for so many existing libraries.

@Giorgi
Copy link
Contributor Author

Giorgi commented Feb 14, 2024

Thanks @Mytherin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants