-
Notifications
You must be signed in to change notification settings - Fork 286
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
Feature: add support for text and uuid type control columns #683
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is an awesome PR! Thank you!
Some questions and syntax corrections to review
Thanks, have pushed a new commit addressing all the changes |
Hi @keithf4, just wanted to follow up on this, hope this addresses the changes. Let me know if there's anything else needed from my side |
Yes, I am keeping an eye on it! One additional note on the |
Good to hear! I understand this may take some time, will try not to bump it up too often :) |
This looks really good! Only have one more ask and it doesn't have to be done as part of this commit either (I may have this merged before you even get to it). Any chance you could write a test with the uuid7 datatype with this? I understand it has another non-default datatype requirement, but since that was one of the main reasons for requesting this feature, I'd like to have a test for it since it may be a common usage going forward. Make a subfolder in the |
Good point, I missed this scenario. I have the commit ready, I can push to this same branch if you'd like to keep everything together before merging. Otherwise, happy to raise a separate PR. Let me know. |
Anxious to try this. 😄 |
Go ahead and commit to this branch. Sorry I missed your first reply. |
c182d93
to
1a3e51a
Compare
Done, have pushed the change. There are some conflicts now with development branch though, and I wasn't able to rebase because there are failing tests on development. Is this something you can take up when merging? Otherwise, I can rebase once development is stable again |
Hmm didn't realize failing tests would block that. I'll try and get it fixed when I have a chance. |
I fixed the merge conflicts for now.
|
I hope development is not failing only for me? If not, could I suggest holding off this merge until that is fixed? |
Apologies, yeah, the original test you copied that one off of is failing as well. I'll look into that and see what's going on and let you know if anything in your test needs fixing as well. |
I've fixed the issue with |
I tested merging development into your fork and the uuid tests seem to be passing. Would appreciate if you could do the same just to double-check then push the upstream merge to this PR. If all looks good on your end, this will be the last feature merge before 5.2 release. Just need to finish some other unit tests then |
This change introduces two new parameters on create_parent, a pair of encoder/decoder functions that users can define to describe how a text/uuid column maps to time information. Once we derive time from the column, we can leverage existing time partitioning logic to manage partitions for text columns. Allowing users to define functions brings flexibility to support various formats of identifiers such as UUIDv7, ULID, Snowflake IDs etc. As a convenience, encoder/decoder functions are included for UUIDv7 given the widespread standard.
simplify time based partitioning condition expressions fix sub-partitioning using text/uuid control type on sub partitions revert change to fix sort order for time columns in show_partitions()
convert partition bounds to timestamp in show_partitions to ensure that the result is time-ordered
add tests for sub-partitioning with uuid7 column improve test comments to describe column data types clearly
Thanks, can confirm it's passing for me too. Just wanted to clarify once on how to proceed next. I generally prefer to rebase PR changes with the trunk, only merging into trunk and not the other way. This way the history is cleaner and the PR only has changes pertaining to it. Would it be okay if I reverted your merge commits on this branch, instead rebase the original changes with development? I'll need to force push this branch, but the history should be cleaner in the end. Or let me know if I should do it another way. |
Sure if that works for you, go ahead. Hopefully the commits I did can help you fix the conflicts that I resolved with them. If not, I'm happy to try and resolve them as well if they're still there. |
b75de50
to
c37290a
Compare
Yep, I'm cross checking the conflicts with this. Have rebased and pushed, hope this should be good now |
fix upstream conflict in run_maintenance query
This change introduces two new parameters on create_parent, a pair of encoder/decoder functions that users can define to describe how a text/uuid column maps to time information. Once we derive time from the column, we can leverage existing time partitioning logic to manage partitions for text columns.
Allowing users to define functions brings flexibility to support various formats of identifiers such as UUIDv7, ULID, Snowflake IDs etc. As a convenience, encoder/decoder functions are included for UUIDv7 given the widespread standard.
Issue tracker: #528