CASSANDRA-20102: Support octet_length and length functions #3707
+207
−0
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.
Previously users would either have to read the data and check the length themselves or enable UDF and register UDFs to check the length of columns. This patch adds a subset of the SQL99 (binary) string functions: "octet_length" defined on all types and "length" defined on UTF8 strings.
Currently this just supports the
OCTET_LENGTH
SQL99 function for returning number of bytes and not the helpers likeBIT_LENGTH
orCHAR_LENGTH
(or the rest) and supports theLENGTH
function from PostgreSQL which is the number of UTF8 codepoints similar to JavaString#length()
.Test coverage includes unit tests and fuzz tests, but I need to port the fuzz test to quicktheories.