Skip to content

Commit

Permalink
SliceRange finish and start fixes + remove bug fix. (tested with Long…
Browse files Browse the repository at this point in the history
…Type,UTF8Type and TimeUUIDType)
  • Loading branch information
Vadim Derkach committed May 5, 2010
1 parent 3c809d9 commit 9b85071
Showing 1 changed file with 20 additions and 20 deletions.
40 changes: 20 additions & 20 deletions phpcassa.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

class CassandraConn {
const DEFAULT_THRIFT_PORT = 9160;

static private $connections = array();
static private $last_error;

Expand All @@ -43,7 +43,7 @@ static public function add_node($host, $port=self::DEFAULT_THRIFT_PORT) {
}
return FALSE;
}

// Default client
static public function get_client($write_mode = false) {
// * Try to connect to every cassandra node in order
Expand Down Expand Up @@ -77,7 +77,7 @@ class CassandraUtil {
static public function uuid1($node="", $ns="") {
return UUID::generate(UUID::UUID_TIME,UUID::FMT_STRING, $node, $ns);
}

// Time
static public function get_time() {
// use microtime where possible, stolen from pandra
Expand All @@ -93,7 +93,7 @@ class CassandraCF {
const DEFAULT_ROW_LIMIT = 100; // default max # of rows for get_range()
const DEFAULT_COLUMN_TYPE = "UTF8String";
const DEFAULT_SUBCOLUMN_TYPE = null;

public $keyspace;
public $column_family;
public $is_super;
Expand All @@ -102,7 +102,7 @@ class CassandraCF {
public $column_type; // CompareWith (TODO: actually use this)
public $subcolumn_type; // CompareSubcolumnsWith (TODO: actually use this)
public $parse_columns;

/*
BytesType: Simple sort by byte value. No validation is performed.
AsciiType: Like BytesType, but validates that the input can be parsed as US-ASCII.
Expand All @@ -111,7 +111,7 @@ class CassandraCF {
LexicalUUIDType: A 128bit UUID, compared lexically (by byte value)
TimeUUIDType: a 128bit version 1 UUID, compared by timestamp
*/

public function __construct($keyspace, $column_family,
$is_super=false,
$column_type=self::DEFAULT_COLUMN_TYPE,
Expand Down Expand Up @@ -142,8 +142,8 @@ public function get($key, $super_column=NULL, $slice_start="", $slice_finish="",
$slice_range = new cassandra_SliceRange();
$slice_range->count = $column_count;
$slice_range->reversed = $column_reversed;
$slice_range->start = $slice_start;
$slice_range->finish = $slice_finish;
$slice_range->start = $slice_start?$this->unparse_column_name($slice_start,true):"";
$slice_range->finish = $slice_finish?$this->unparse_column_name($slice_finish,true):"";
$predicate = new cassandra_SlicePredicate();
$predicate->slice_range = $slice_range;

Expand All @@ -159,8 +159,8 @@ public function multiget($keys, $slice_start="", $slice_finish="") {
$column_parent->super_column = NULL;

$slice_range = new cassandra_SliceRange();
$slice_range->start = $slice_start;
$slice_range->finish = $slice_finish;
$slice_range->start = $slice_start?$this->unparse_column_name($slice_start,true):"";
$slice_range->finish = $slice_finish?$this->unparse_column_name($slice_finish,true):"";
$predicate = new cassandra_SlicePredicate();
$predicate->slice_range = $slice_range;

Expand Down Expand Up @@ -191,8 +191,8 @@ public function get_range($start_key="", $finish_key="", $row_count=self::DEFAUL
$column_parent->super_column = NULL;

$slice_range = new cassandra_SliceRange();
$slice_range->start = $slice_start;
$slice_range->finish = $slice_finish;
$slice_range->start = $slice_start?$this->unparse_column_name($slice_start,true):"";
$slice_range->finish = $slice_finish?$this->unparse_column_name($slice_finish,true):"";
$predicate = new cassandra_SlicePredicate();
$predicate->slice_range = $slice_range;

Expand All @@ -215,24 +215,24 @@ public function insert($key, $columns) {

return $resp;
}

public function remove($key, $column_name=null) {
$timestamp = CassandraUtil::get_time();

$column_path = new cassandra_ColumnPath();
$column_path->column_family = $this->column_family;
if($this->is_super) {
$column_path->super_column = $this->unparse_column_name($column_name, true);
$column_path->super_column = $this->unparse_column_name($column_name, false);
} else {
$column_path->column = $this->unparse_column_name($column_name, false);
$column_path->column = $this->unparse_column_name($column_name, true);
}

$client = CassandraConn::get_client();
$resp = $client->remove($this->keyspace, $key, $column_path, $timestamp, $this->write_consistency_level);

return $resp;
}

// Wrappers
public function get_list($key, $key_name='key', $slice_start="", $slice_finish="") {
// Must be on supercols!
Expand All @@ -244,7 +244,7 @@ public function get_list($key, $key_name='key', $slice_start="", $slice_finish="
}
return $ret;
}

public function get_range_list($key_name='key', $start_key="", $finish_key="",
$row_count=self::DEFAULT_ROW_LIMIT, $slice_start="", $slice_finish="") {
$resp = $this->get_range($start_key, $finish_key, $row_count, $slice_start, $slice_finish);
Expand All @@ -257,7 +257,7 @@ public function get_range_list($key_name='key', $start_key="", $finish_key="",
}
return $ret;
}

// Helpers for parsing Cassandra's thrift objects into PHP arrays
public function keyslices_to_array($keyslices) {
$ret = null;
Expand Down Expand Up @@ -354,7 +354,7 @@ public function parse_column_name($column_name, $is_column=true) {
return $column_name;
}
}

public function unparse_column_name($column_name, $is_column=true) {
if(!$this->parse_columns) return $column_name;
if(!$column_name) return NULL;
Expand All @@ -367,7 +367,7 @@ public function unparse_column_name($column_name, $is_column=true) {
} else {
return $column_name;
}
}
}
}

?>

0 comments on commit 9b85071

Please sign in to comment.