Protocol::CassandraCQL::Client - a minimal Cassandra CQL client
Protocol::CassandraCQL::Client
use Protocol::CassandraCQL::Client; use Protocol::CassandraCQL qw( CONSISTENCY_QUORUM ); my $cass = Protocol::CassandraCQL::Client->new( PeerHost => "localhost", Keyspace => "my-keyspace", ); my ( undef, $result ) = $cass->query( "SELECT v FROM numbers" ); foreach my $row ( $result->rows_hash ) { say "We have a number $row->{v}"; }
This subclass of IO::Socket::IP implements a client that can execute queries on a Cassandra CQL database. It is not intended as a complete client, is simply provides enough functionallity to test that the protocol handling is working, and is used to implement the bundled examples/cqlsh utility.
For a more complete client, see instead Net::Async::CassandraCQL.
Takes the following arguments in addition to those accepted by IO::Socket::IP:
Authentication credentials if required by the server.
If defined, selects the keyspace to USE after connection.
USE
Sends a message with the given opcode and Protocol::CassandraCQL::Frame for the message body. Waits for a response to be received, and returns it.
If the response opcode is OPCODE_ERROR then the error message string is thrown directly as an exception; this method will only return in non-error cases.
OPCODE_ERROR
Performs a CQL query. The returned values will depend on the type of query:
For USE queries, the type is keyspace and $result is a string giving the name of the new keyspace.
keyspace
$result
For CREATE, ALTER and DROP queries, the type is schema_change and $result is a 3-element ARRAY reference containing the type of change, the keyspace and the table name.
CREATE
ALTER
DROP
schema_change
For SELECT queries, the type is rows and $result is an instance of Protocol::CassandraCQL::Result containing the returned row data.
SELECT
rows
For other queries, such as INSERT, UPDATE and DELETE, the method returns nothing.
INSERT
UPDATE
DELETE
A convenient shortcut to the USE $keyspace query which escapes the keyspace name.
USE $keyspace
This code was paid for by
Perceptyx http://www.perceptyx.com/
Shadowcat Systems http://www.shadow.cat
Paul Evans <leonerd@leonerd.org.uk>
To install Protocol::CassandraCQL, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Protocol::CassandraCQL
CPAN shell
perl -MCPAN -e shell install Protocol::CassandraCQL
For more information on module installation, please visit the detailed CPAN module installation guide.