public function test_get_indexed_slices() { $indexed_cf = new ColumnFamily($this->client, 'Indexed1'); $columns = array('birthdate' => 1); foreach (range(1, 3) as $i) { $indexed_cf->insert('key' . $i, $columns); } $expr = CassandraUtil::create_index_expression($column_name = 'birthdate', $value = 1); $clause = CassandraUtil::create_index_clause(array($expr)); $result = $indexed_cf->get_indexed_slices($clause); self::assertEqual(count($result), 3); foreach (range(1, 3) as $i) { self::assertEqual($result['key' . $i], $columns); } $indexed_cf->truncate(); }
public function test_get_indexed_slices() { $indexed_cf = new ColumnFamily($this->pool, 'Indexed1'); $indexed_cf->truncate(); $columns = array('birthdate' => 1); foreach (range(1, 3) as $i) { $indexed_cf->insert('key' . $i, $columns); } $expr = CassandraUtil::create_index_expression($column_name = 'birthdate', $value = 1); $clause = CassandraUtil::create_index_clause(array($expr), 10000); $result = $indexed_cf->get_indexed_slices($clause); $count = 0; foreach ($result as $key => $cols) { $count++; self::assertEqual($columns, $cols); self::assertEqual($key, "key{$count}"); } self::assertEqual($count, 3); # Insert and remove a matching row at the beginning $indexed_cf->insert('key0', $columns); $indexed_cf->remove('key0'); # Insert and remove a matching row at the end $indexed_cf->insert('key4', $columns); $indexed_cf->remove('key4'); # Remove a matching row from the middle $indexed_cf->remove('key2'); $result = $indexed_cf->get_indexed_slices($clause); $count = 0; foreach ($result as $key => $cols) { $count++; self::assertTrue($key == "key1" || $key == "key3"); } self::assertEqual($count, 2); $indexed_cf->truncate(); $keys = array(); foreach (range(1, 1000) as $i) { $indexed_cf->insert("key{$i}", $columns); if ($i % 50 != 0) { $indexed_cf->remove("key{$i}"); } else { $keys[] = "key{$i}"; } } $count = 0; foreach ($result as $key => $cols) { $count++; self::assertTrue(in_array($key, $keys)); unset($keys[$key]); } self::assertEqual($count, 20); $indexed_cf->truncate(); }