NAME
Protocol::CassandraCQL::Type
- represents a Cassandra CQL data type
DESCRIPTION
Objects in this class represent distinct types that may be found in Cassandra CQL3, either as columns in query result rows, or as bind parameters to prepared statements. It is used by Protocol::CassandraCQL::ColumnMeta.
CONSTRUCTOR
$type = Protocol::CassandraCQL::Type->from_frame( $frame )
Returns a new type object initialised by parsing the type information in the given message frame.
METHODS
$name = $type->name
Returns a string representation of the type name.
$bytes = $type->encode( $v )
Encodes the given perl data into a bytestring.
$v = $type->decode( $bytes )
Decodes the given bytestring into perl data.
$message = $type->validate( $v )
Validates whether the given perl data is valid for this type. If so, returns false. Otherwise, returns an error message explaining why.
COLLECTION TYPES
$etype = $type->element_type
Returns the type of the elements in the list or set, for LIST
and SET
types.
$ktype = $type->key_type
$vtype = $type->value_type
Returns the type of the keys and values in the map, for MAP
types.
DATA ENCODINGS
The following encodings to and from perl data are supported:
ASCII
To or from a string scalar, which must contain only US-ASCII codepoints (i.e. ord
<= 127).
BIGINT, BOOLEAN, COUNTER, DECIMAL, FLOAT, INT
To or from a numeric scalar.
BLOB
To or from an opaque string scalar of bytes.
DECIMAL
To or from an instance of Math::BigFloat, or from a regular numeric scalar.
TIMESTAMP
To or from a numeric scalar, representing a UNIX epoch timestamp as a float to the nearest milisecond.
UUID, TIMEUUID
To or from a string containing hex digits and hyphens, in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
.
VARCHAR
To or from a string scalar containing Unicode characters.
VARINT
To or from an instance of Math::BigInt, or from a regular numeric scalar.
LIST, SET
To or from an ARRAY
reference containing elements.
MAP
To or from a HASH
reference, where the keys used must be of some string type.
SPONSORS
This code was paid for by
Perceptyx http://www.perceptyx.com/
Shadowcat Systems http://www.shadow.cat
AUTHOR
Paul Evans <leonerd@leonerd.org.uk>