mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-30 03:30:49 +00:00
" A good portion of the values that one would want to be examine with scylla-tools will be partition or clustering keys. While examining them was possible before too, especially for single component keys, it required manually extracting the components from it, so they can be individually examined. This series adds support for working with keys directly, by adding prefixable and full compound type support. When passing --prefix-compound or --full-compound, multiple types can be passed, which will form the compound type. Example: $ scylla_types --print --prefix-compound -t TimeUUIDType -t Int32Type 0010d00819896f6b11ea00000000001c571b000400000010 (d0081989-6f6b-11ea-0000-0000001c571b, 16) Another feature added in this series is validation. For this, `compound_type::validate()` had to be implemented first. We already use this in our code, but currently has a no-op body. Example: $ scylla-types --validate --full-compound -t TimeUUIDType -t Int32Type 0010d00819896f6b11ea00000000001c571b0004000000 0010d00819896f6b11ea00000000001c571b0004000000: INVALID - seastar::internal::backtraced<marshal_exception> (marshaling error: compound_type iterator - not enough bytes, expected 4, got 3 Backtrace: 0x1b2e30f 0x85c9d5 0x85cb07 0x85cc7b 0x85cd7c 0x85d2d7 0x844e03 0x84241b 0x84490b 0x844ae5 0x19c0362 0x19c0741 0x19c13d1 0x19c4b44 0x8aeb7a 0x8aeca7 0x19ebc90 0x19fb8d5 0x1a12b49 0x19c4376 0x19c47a6 0x19c4900 0x843373 /lib64/libc.so.6+0x271a2 0x84202d ) Tests: unit(dev) " * 'tools-scylla-types-compound-support/v1' of https://github.com/denesb/scylla: tools/scylla_types: add validation action tools/scylla_types: add compound_type support tools/scylla_types: single source of truth for actions compound_type: implement validate() compound_type: fix const correctness tools: mv scylla_types scylla-types