Replies: 2 comments 7 replies
|
Hi @apatrida can you share a bit more about what you mean with ducklake support here? Or what you are doing exactly? |
4 replies
|
@pdet 1.0 is out, congrats! where do we go from here. We have read/write Trino and are updating to any changes from 1.x and about to take our core catalog management and isolate it into a JVM package (and likely Kotlin mutli-platform for native/wasm/other platforms) for general use across plugins, and then add to Doris as well. Full read/write. But, there are issues. Can we find a way to track and talk about all issues that other dialects/engines will face? |
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Given I am about to start write support for our ducklake implementation, I have not checked everything, but some issues come up at first glance:
Spec vs actual column schema drift — ducklake_column has default_value_type and default_value_dialect in practice but these aren't in the spec docs. ducklake_schema_versions has table_id in practice. Implementers need to handle optional columns gracefully or they'll break on real catalogs.
snapshot_changes.changes_made format undocumented — values like inlined_insert:tablename, inline_flush:..., merge_adjacent:... aren't specified. If we want to write interoperable change entries, we're guessing at the format.
partial_max in ducklake_data_file — often populated in real catalogs, not well documented. Unclear semantics for implementers.
No schema for snapshot commit protocol — the spec describes the tables but not the write protocol (what order to insert rows, how to allocate IDs, atomicity requirements). Every implementer has to reverse-engineer this from DuckDB's behavior.
No guidance on concurrent writers — the spec doesn't address what happens when two engines write to the same catalog simultaneously. Optimistic locking? Last-writer-wins? Undefined.
All reactions