Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Protocol::CassandraCQLUserlContributed PeProtocol::CassandraCQL::ColumnMeta(3)

       "Protocol::CassandraCQL::ColumnMeta" - stores the column	metadata of a
       Cassandra CQL query

       Objects in this class interpret the column metadata from	a message
       frame containing	a "OPCODE_RESULT" response to a	query giving
       "RESULT_ROWS" or	"RESULT_PREPARED". It provides lookup of column	names
       and type	information, and provides a convenient accessor	to the
       encoding	and decoding support functions,	allowing encoding of
       bytestrings from	perl data when executing a prepared statement, and
       decoding	of bytestrings to perl data when obtaining query results.

       It is also subclassed as	Protocol::CassandraCQL::Result.

   $meta = Protocol::CassandraCQL::ColumnMeta->from_frame( $frame, $version )
       Returns a new column metadata object initialised	from the given message
       frame at	the given CQL version number. (Version will default to 1 if
       not supplied, but this may become a required parameter in a future

   $meta = Protocol::CassandraCQL::ColumnMeta->new( %args )
       Returns a new column metadata object initialised	directly from the
       given column data. This constructor is intended for use by unit test
       scripts,	to create metadata directly from mocked	connection objects or

       It takes	the following named arguments:

       columns => ARRAY[ARRAY[STR, STR,	STR, STR]]
	       An ARRAY	reference containing the data about individual
	       columns.	Each row is represented	by an ARRAY reference
	       containing four strings;	giving the three components of its
	       name, and the name of its type:

		[ $keyspace, $table, $column, $typename	]

   $n =	$meta->columns
       Returns the number of columns

   $name = $meta->column_name( $idx )
   ( $keyspace,	$table,	$column	) = $meta->column_name(	$idx )
       Returns the name	of the column at the given (0-based) index; either as
       three separate strings, or all joined by	".".

   $name = $meta->column_shortname( $idx )
       Returns the short name of the column; which will	be just	the column
       name unless it requires the table or keyspace name as well to make it
       unique within the set.

   $type = $meta->column_type( $idx )
       Returns the type	of the column at the given index as an instance	of

   $idx	= $meta->find_column( $name )
       Returns the index of the	given named column. The	name may be given as
       "keyspace.table.column",	or "table.column" or "column" if they are
       unique within the set. Returns "undef" if no such column	exists.

   @bytes = $meta->encode_data(	@data )
       Returns a list of encoded bytestrings from the given data according to
       the type	of each	column.	Checks each value is valid; if not throws an
       exception explaining which column failed	and why.

       An exception is thrown if the wrong number of values is passed.

   @data = $meta->decode_data( @bytes )
       Returns a list of decoded data from the given encoded bytestrings
       according to the	type of	each column.

   $bytes = $meta->paging_state
       Returns the CQLv2+ paging state,	if it was contained in the given
       frame. This would be returned in	an "OPCODE_RESULT" message to a	query
       or execute request that requested paging.

   $bool = $meta->has_metadata
       Returns a boolean indicating whether the	column metadata	(field names
       and types) is actually defined. Normally	this would be true, except if
       the object is an	instance of Protocol::CassandraCQL::Result returned by
       executing a prepared statement with metadata specifically disabled.

       This code was paid for by

       o Perceptyx <>

       o Shadowcat Systems <>

       Paul Evans <>

perl v5.32.1			  2021-11Protocol::CassandraCQL::ColumnMeta(3)


Want to link to this manual page? Use this URL:

home | help