<?php

$key_space = 'png';
$column_family = 'png';
$column_family_date = 'date';

require_once 'Cassandra.php';


// list of seed servers to randomly connect to
// all the parameters are optional and default to given values
$servers = array(
	array(
		'host' => '127.0.0.1',
		'port' => 9160,
		'use-framed-transport' => true,
		'send-timeout-ms' => 1000,
		'receive-timeout-ms' => 1000
	)
);

$cassandra = Cassandra::createInstance($servers);

try {
	$cassandra->dropKeyspace($key_space);
} catch (Exception $e) {}


$cassandra->createKeyspace($key_space);
$cassandra->useKeyspace($key_space);
$cassandra->setMaxCallRetries(5);

$cassandra->createStandardColumnFamily(
	$key_space, // keyspace name
	$column_family, // the column-family name
	array( // list of columns with metadata
		array(
			'name' => 'name',
			'type' => Cassandra::TYPE_INTEGER,
			'index-type' => Cassandra::INDEX_KEYS, // create secondary index
			'index-name' => 'NameIdx'
		),
		array(
			'name' => 'content',
			'type' => Cassandra::TYPE_BYTES,
		),
		array(
			'name' => 'type',
			'type' => Cassandra::TYPE_UTF8,
		),
		array(
			'name' => 'date',
			'type' => Cassandra::TYPE_INTEGER,
			'index-type' => Cassandra::INDEX_KEYS,
			'index-name' => 'DateIdx'
		),
		array(
			'name' => 'hour',
			'type' => Cassandra::TYPE_INTEGER,
			'index-type' => Cassandra::INDEX_KEYS,
			'index-name' => 'HourIdx'
		)
	)
// actually accepts more parameters with reasonable defaults
);

$cassandra->createStandardColumnFamily(
	$key_space, // keyspace name
	$column_family_date, // the column-family name
	array( // list of columns with metadata
		array(
			'name' => 'date',
			'type' => Cassandra::TYPE_INTEGER,
			'index-type' => Cassandra::INDEX_KEYS, // create secondary index
			'index-name' => 'DateIdx'
		),
		array(
			'name' => '00',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '01',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '02',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '03',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '04',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '05',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '06',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '07',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '08',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '09',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '10',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '11',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '12',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '13',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '14',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '15',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '16',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '17',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '18',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '19',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '20',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '21',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '22',
			'type' => Cassandra::TYPE_INTEGER,
		),
		array(
			'name' => '23',
			'type' => Cassandra::TYPE_INTEGER,
		)
	)
// actually accepts more parameters with reasonable defaults
);

$schema = $cassandra->getKeyspaceSchema($key_space);
echo 'Schema: <pre>'.print_r($schema, true).'</pre><hr/>';

function extend($hour_i){
	if ($hour_i < 11) return ("0".$hour_i);
	else return $hour_i;
}
?>