phpcassa doesn't actually support CQL at all yet, it just doesn't stop you
from grabbing the connection and trying to run a cql query anyways.  So, I
would expect quite a few things to randomly break.

Additionally, you need to set the CQL API version to 3.0.0 (I believe)
using set_cql_version() on the connection in order to use cql3-specific
behavior.

On Fri, Jul 6, 2012 at 5:37 PM, Marco Matarazzo <marco.matara...@hexkeep.com
> wrote:

> Greetings.
>
> I am experiencing problems using a cassandra DB with phpcassa, but I am
> unable to understand if the error is on phpcassa client itself or on
> cassandra… As far as I understand, phpcassa just "pass" it to the thrift
> layer, and errors I am seeing are coming back from cassandra itself, so I
> guess it's some sort of cassandra problem (or, more easily, I am doing
> something wrong but I don't know what). I hope I'm not too far from true.
>
>
> I am using CQL3 from php pages, and I wrote a class that basically wraps
> this behaviour:
>
>                 $this->pool=new
> \phpcassa\Connection\ConnectionPool($keyspace,$servers);
>                 […yadda yadda…]
>                 $client=$this->pool->get()->client;
>
> $result=$client->prepare_cql_query($query,\Cassandra\Compression::NONE);
>                 $itemid=$result->itemId;
>                 return $client->execute_prepared_cql_query($itemid,$args);
>
> This works ALMOST always. Sometimes, hovewere, I get "random" errors on
> queries that works. When I say "Query that works" it means that on error i
> dump on screen the value of $query and $args, and this is always a valid
> query that works, bot on the same page if I simply reload it, and on cqlsh
> -3, with the very same parameters.
>
>
> Sample errors, and relative queries and CF schemas are:
>
> ===
>
> Executing [SELECT qt FROM cargobays USING CONSISTENCY QUORUM WHERE
> corporation_id = ? and station_id = ? and item_id = ?] with
> (edd051f0-44aa-4bc3-ad08-3174abcd1a0d,1110129,10025)
> error: No indexed columns present in by-columns clause with "equals"
> operator
>
> cqlsh:goh_release> describe columnfamily cargobays
>
> CREATE TABLE cargobays (
>   corporation_id ascii,
>   station_id ascii,
>   item_id ascii,
>   qt ascii,
>   PRIMARY KEY (corporation_id, station_id, item_id)
> ) WITH COMPACT STORAGE AND
>   comment='' AND
>   caching='KEYS_ONLY' AND
>   read_repair_chance=0.100000 AND
>   gc_grace_seconds=864000 AND
>   min_compaction_threshold=4 AND
>   max_compaction_threshold=32 AND
>   replicate_on_write='true' AND
>   compaction_strategy_class='SizeTieredCompactionStrategy' AND
>   compression_parameters:sstable_compression='SnappyCompressor';
>
> ===
>
> Executing [UPDATE agents_skill USING CONSISTENCY QUORUM SET value = ?
> WHERE agent_id = ? and skill = ?] with
> (3,b716738b-95e6-4e22-9924-5334ee7f2f5d,pilot)
> error: line 1:78 mismatched input 'and' expecting EOF
>
> cqlsh:goh_release> describe columnfamily agents_skill ;
>
> CREATE TABLE agents_skill (
>   agent_id ascii,
>   skill ascii,
>   value ascii,
>   PRIMARY KEY (agent_id, skill)
> ) WITH COMPACT STORAGE AND
>   comment='' AND
>   caching='KEYS_ONLY' AND
>   read_repair_chance=0.100000 AND
>   gc_grace_seconds=864000 AND
>   min_compaction_threshold=4 AND
>   max_compaction_threshold=32 AND
>   replicate_on_write='true' AND
>   compaction_strategy_class='SizeTieredCompactionStrategy' AND
>   compression_parameters:sstable_compression='SnappyCompressor';
>
>
> We have a cluster of 3 nodes, and the keyspace is defined as follow:
>
> CREATE KEYSPACE v_release WITH strategy_class = 'SimpleStrategy'
>   AND strategy_options:replication_factor = '3';
>
>
> We're using (packaged) Cassandra 1.1.2 on an Ubuntu LTS 12.04.
>
>
> I really hope it's something that can be sorted out, because we're pretty
> lost here.
>
> Thank you.
>
> --
> Marco Matarazzo
>
>
>
>
>


-- 
Tyler Hobbs
DataStax <http://datastax.com/>

Reply via email to