The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Net::Async::CassandraCQL::Query - a Cassandra CQL prepared query

DESCRIPTION

Prepared query objects are returned by the prepare of Net::Async::CassandraCQL to represent a prepared query in the server. They can be executed multiple times, if required, by passing the values of the placeholders to the execute method.

For backward compatibility, as this object class is no longer a subclass of Protocol::CassandraCQL::ColumnMeta, the following methods will be directed to the params_meta instance.

 columns column_name column_shortname column_type find_column
 encode_data decode_data

However, most of them are available more directly as the param* methods. Code should not rely on these temporary redirects remaining in a future version.

METHODS

$id = $query->id

Returns the query ID.

$cql = $query->cql

Returns the original query string used to prepare the query.

$meta = $query->params_meta

Returns a Protocol::CassandraCQL::ColumnMeta instance with the metadata about the bind parameters.

$n_params = $query->params

$name = $query->param_name( $idx )

( $keyspace, $table, $column ) = $query->param_name( $idx )

$name = $query->param_shortname( $idx )

$type = $query->param_type( $idx )

Redirections to the appropriately named method on the params_meta object.

$meta = $query->result_meta

Returns a Protocol::CassandraCQL::ColumnMeta instance with the metadata about the query result. This will only be defined on connections with a cql_version of 2 or above.

$query->execute( $data, $consistency ) ==> ( $type, $result )

Executes the query on the Cassandra connection object that created it, returning a future yielding the result the same way as the query or execute methods.

The contents of the $data reference will be encoded according to the types given in the underlying column metadata. $data may be given as a positional ARRAY reference, or a named HASH reference where the keys give column names.

SPONSORS

This code was paid for by

AUTHOR

Paul Evans <leonerd@leonerd.org.uk>