Files
scylladb/test
Avi Kivity f4a703fc66 Merge "tools/scylla-types: add compound_type and validation support" from Botond
"
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
2020-05-11 15:28:33 +03:00
..