if (end($_SESSION['browse_data_offset_key']) != $offset_key && $pos != 'prev') { $_SESSION['browse_data_offset_key'][] = $offset_key; // Don't keep more then 100 previous key if (count($_SESSION['browse_data_offset_key']) > 100) { array_shift($_SESSION['browse_data_offset_key']); } } } $nb_rows = 5; if (isset($_GET['nb_rows']) && is_numeric($_GET['nb_rows']) && $_GET['nb_rows'] > 0) { $nb_rows = $_GET['nb_rows']; } $vw_vars['nb_rows'] = $nb_rows; $included_header = true; echo getHTML('header.php'); $output = $column_family->get_range($offset_key, '', $nb_rows, null); $vw_vars['results'] = ''; $nb_results = 0; foreach ($output as $key => $value) { $vw_row_vars['key'] = $key; $vw_row_vars['value'] = $value; $vw_row_vars['keyspace_name'] = $keyspace_name; $vw_row_vars['columnfamily_name'] = $columnfamily_name; $vw_row_vars['comparator_type'] = $cf_def->comparator_type; $vw_row_vars['show_actions_link'] = true; $vw_vars['results'] .= getHTML('columnfamily_browse_data_row.php', $vw_row_vars); $nb_results++; } $vw_vars['show_begin_page_link'] = $offset_key != ''; $vw_vars['show_prev_page_link'] = $offset_key != '' && count($_SESSION['browse_data_offset_key']) > 0; // We got the number of rows we asked for, display "Next Page" link
public function test_insert_get_range() { $this->require_opp(); $cl = ConsistencyLevel::ONE; $cf = new ColumnFamily($this->pool, 'Standard1', true, true, $read_consistency_level = $cl, $write_consistency_level = $cl, $buffer_size = 10); $keys = array(); $columns = array('c' => 'v'); foreach (range(100, 200) as $i) { $keys[] = 'key' . $i; $cf->insert('key' . $i, $columns); } # Keys at the end that we don't want foreach (range(201, 300) as $i) { $cf->insert('key' . $i, $columns); } # Buffer size = 10; rowcount is divisible by buffer size $count = 0; foreach ($cf->get_range() as $key => $cols) { $this->assertContains($key, $keys); unset($keys[$key]); $count++; } $this->assertEquals($count, 100); # Fetch a single row $count = 0; foreach ($cf->get_range($key_start = '', $key_finish = '', $row_count = 1) as $key => $cols) { $this->assertContains($key, array($keys[0])); $count++; } $this->assertEquals(1, $count); # Buffer size larger than row count $cf = new ColumnFamily($this->pool, 'Standard1', true, true, $read_consistency_level = $cl, $write_consistency_level = $cl, $buffer_size = 1000); $count = 0; foreach ($cf->get_range($key_start = '', $key_finish = '', $row_count = 100) as $key => $cols) { $this->assertContains($key, $keys); unset($keys[$key]); $count++; } $this->assertEquals($count, 100); # Buffer size larger than row count, less than total number of rows $cf = new ColumnFamily($this->pool, 'Standard1', true, true, $read_consistency_level = $cl, $write_consistency_level = $cl, $buffer_size = 150); $count = 0; foreach ($cf->get_range($key_start = '', $key_finish = '', $row_count = 100) as $key => $cols) { $this->assertContains($key, $keys); unset($keys[$key]); $count++; } $this->assertEquals($count, 100); # Odd number for batch size $cf = new ColumnFamily($this->pool, 'Standard1', true, true, $read_consistency_level = $cl, $write_consistency_level = $cl, $buffer_size = 7); $count = 0; $rows = $cf->get_range($key_start = '', $key_finish = '', $row_count = 100); foreach ($rows as $key => $cols) { $this->assertContains($key, $keys); unset($keys[$key]); $count++; } $this->assertEquals($count, 100); # Smallest buffer size available $cf = new ColumnFamily($this->pool, 'Standard1', true, true, $read_consistency_level = $cl, $write_consistency_level = $cl, $buffer_size = 2); $count = 0; $rows = $cf->get_range($key_start = '', $key_finish = '', $row_count = 100); foreach ($rows as $key => $cols) { $this->assertContains($key, $keys); unset($keys[$key]); $count++; } $this->assertEquals($count, 100); # Put the remaining keys in our list foreach (range(201, 300) as $i) { $keys[] = 'key' . $i; } # Row count above total number of rows $cf = new ColumnFamily($this->pool, 'Standard1', true, true, $read_consistency_level = $cl, $write_consistency_level = $cl, $buffer_size = 2); $count = 0; foreach ($cf->get_range($key_start = '', $key_finish = '', $row_count = 10000) as $key => $cols) { $this->assertContains($key, $keys); unset($keys[$key]); $count++; } $this->assertEquals($count, 201); # Row count above total number of rows $cf = new ColumnFamily($this->pool, 'Standard1', true, true, $read_consistency_level = $cl, $write_consistency_level = $cl, $buffer_size = 7); $count = 0; foreach ($cf->get_range($key_start = '', $key_finish = '', $row_count = 10000) as $key => $cols) { $this->assertContains($key, $keys); unset($keys[$key]); $count++; } $this->assertEquals($count, 201); # Row count above total number of rows, buffer_size = total number of rows $cf = new ColumnFamily($this->pool, 'Standard1', true, true, $read_consistency_level = $cl, $write_consistency_level = $cl, $buffer_size = 201); $count = 0; foreach ($cf->get_range($key_start = '', $key_finish = '', $row_count = 10000) as $key => $cols) { $this->assertContains($key, $keys); unset($keys[$key]); $count++; } $this->assertEquals($count, 201); # Row count above total number of rows, buffer_size > total number of rows $cf = new ColumnFamily($this->pool, 'Standard1', true, true, $read_consistency_level = $cl, $write_consistency_level = $cl, $buffer_size = 10000); $count = 0; foreach ($cf->get_range($key_start = '', $key_finish = '', $row_count = 10000) as $key => $cols) { $this->assertContains($key, $keys); unset($keys[$key]); $count++; } $this->assertEquals($count, 201); $cf->truncate(); }
echo " " . $uuid->time . ", " . $message . "\n"; list($uuid, $message) = $logs[1]; echo " " . $uuid->time . ", " . $message . "\n\n"; // Fetch the last log for both users at once $slice = new ColumnSlice('', '', $count = 1, $reversed = true); $rows = $user_logs->multiget(array($user1_id, $user2_id), $slice); foreach ($rows as $row) { list($user_id, $logs) = $row; $log = $logs[0]; echo "Most recent log for {$user_id}:\n"; echo " " . $log[0]->time . ": " . $log[1] . "\n"; } echo "\n"; // Fetch the first column for each row in the CF: $slice = new ColumnSlice('', '', $count = 1); foreach ($user_logs->get_range('', '', 10, $slice) as $row) { list($user_id, $logs) = $row; $log = $logs[0]; echo "First log for {$user_id}:\n"; echo " " . $log[0]->time . ": " . $log[1] . "\n"; } echo "\n\n\n"; echo "Using ColumnFamily::OBJECT_FORMAT\n"; echo "================================\n\n"; $user_logs->return_format = ColumnFamily::OBJECT_FORMAT; // Pull the first two logs back out $slice = new ColumnSlice('', '', $count = 2); $logs = $user_logs->get($user1_id, $slice); echo "First two logs for user1: \n"; $uuid = $logs[0]->name; $message = $logs[0]->value;