Add Rowid data type and YQL key generators - #39
Draft
zinal wants to merge 10 commits into
Draft
Conversation
Co-authored-by: Maksim Zinal <zinal@ydb.tech>
Co-authored-by: Maksim Zinal <zinal@ydb.tech>
Co-authored-by: Maksim Zinal <zinal@ydb.tech>
Co-authored-by: Maksim Zinal <zinal@ydb.tech>
Co-authored-by: Maksim Zinal <zinal@ydb.tech>
Co-authored-by: Maksim Zinal <zinal@ydb.tech>
Co-authored-by: Maksim Zinal <zinal@ydb.tech>
Co-authored-by: Maksim Zinal <zinal@ydb.tech>
Co-authored-by: Maksim Zinal <zinal@ydb.tech>
Co-authored-by: Maksim Zinal <zinal@ydb.tech>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changelog entry
Add new
Rowidprimitive type (14-byte opaque key) andRowid::*YQL generators for row/column table primary keys.Spec: https://gist.github.com/zinal/13445422ef0c5a7cdad0c3ae9d657767
Reference Uuid generators PR: ydb-platform#45923
Changelog category
Description for reviewers
This PR proposes end-to-end support for the new
Rowiddata type from the pk_generation design, plus YQL generators mirroring the Uuid UDF API.Type design
NYql.NProto.Rowid = 0x1205, publicYdb.Type.ROWIDceil(14*8/6)=19)bytes_valuewith length 14 (notlow_128/high_128)TCell::MaxInlineSize()andTUnboxedValuePodembedded buffer (14)YQL API (
RowidUDF module)Optional dependency args work like
RandomUuid()/ Uuid PR generators.Bit layouts (per spec):
[12 prefix][31 ts sec][5 rand][64 rand][31 ts sec][1 rand][80 rand]What this PR wires
NTypeIds, SDKEPrimitiveTypeTRowid : char[14], registry, cell compare/hashRowidydb_convert,mkql_proto, JSON/YSON/value formatting, SHOW CREATE, KQP literalsTRowidValue, parser/builder, Base64ToString()ydbdIntentionally deferred / follow-ups
FixedSizeBinary(14)path (currently variablebinary(), like DyNumber)Test plan
./ya make --build relwithdebinfo -tA ydb/library/yql/udfs/common/rowid/ut./ya make --build relwithdebinfo -tA ydb/library/yql/udfs/common/rowid/test./ya make --build relwithdebinfo -tA yql/essentials/types/rowidydb_convert,mkql_proto, SDK value, JSON/YSON value paths