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

Support setting of schema-creation timestamp [WIP] #5260

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

johnkerl
Copy link
Contributor

@johnkerl johnkerl commented Aug 27, 2024

Long description to be typed up.

See also:

Clean and tested against tiledbsoma acceptance cases as a patch on 2.25.0; iterating on clean patch against tip of dev.

Unit-test cases upcoming.


TYPE: FEATURE
DESC: to be typed up

@ihnorton ihnorton requested review from teo-tsirpanis and removed request for teo-tsirpanis October 8, 2024 12:19
teo-tsirpanis added a commit that referenced this pull request Apr 4, 2025
This work builds on the work originally done by @johnkerl in
#5260 which introduced the
`tiledb_array_schema_alloc_at_timestamp` to the C API. As iterated from
the previous PR, this removes the CPP API addition and adds unit testing
for creating a schema at specific timestamps and further schema
evolution at specific timestamps for adding and dropping attributes,
extending enumerations, and resizing the current domain.

The motivation for the PR is outlined in more detail
[here](https://app.shortcut.com/tiledb-inc/story/47660/core-c-c-api-support-to-set-initial-array-schema-timestamp#activity-53864).
TileDB-SOMA has had a longstanding
[support](single-cell-data/TileDB-SOMA#1001) to
create `SOMAArray`s at a given `tiledb_timestamp`. However, there is no
way to set the initial `ArraySchema` file timestamp, and it is always
written to the current timestamp. This limitation causes issues for
performing schema evolutions at a timestamp, specifically with
[extending
enumerations](single-cell-data/TileDB-SOMA#2879)
and [resizing
arrays](https://app.shortcut.com/tiledb-inc/story/61254/python-array-resize-and-time-travel-not-working-correctly).

To discourage misuse of this feature, we have limited its availability
to the C API and added a warning to emphasize that is to be used with
caution.

---
TYPE: FEATURE | C_API 
DESC: Support setting of schema-creation timestamp

---------

Co-authored-by: John Kerl <kerl.john.r@gmail.com>
Co-authored-by: Theodore Tsirpanis <teo@tsirpanis.gr>
Co-authored-by: Beka Davis <31743465+bekadavis9@users.noreply.github.com>
Co-authored-by: Ypatia Tsavliri <ypatia@tiledb.com>
Co-authored-by: Isaiah Norton <isaiah@tiledb.io>
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