/** * Adds a supercolumn object to this super cf, overwrites existing supercolumn * @param PandraSuperColumn $columnObj */ public function addColumnObj(PandraSuperColumn $columnObj) { if ($columnObj->getName() === NULL) { throw new RuntimeException('SuperColumn has no name'); } $this->_columns[$columnObj->getName()] = $columnObj; }
/** * Helper function to add a Super Column instance to this Super Column Family * @param PandraSuperColumn $scObj * @return PandraSuperColumn */ public function addSuper(PandraSuperColumn $scObj) { $superName = $scObj->getName(); $scObj->setParentCF($this); $this->_columns[$superName] = $scObj; return $this->getColumn($superName); }
require_once '../config.php'; PandraCore::connect('default', 'localhost'); $ks = 'Keyspace1'; $cfName = 'SuperColumnUUID1'; $keyID = 'PandraTestUUID1'; $superName = 'Super1'; // Create a TimeUUID supercolumn $sc = new PandraSuperColumn($superName, $keyID, $ks, NULL, PandraColumnContainer::TYPE_UUID); $sc->setColumnFamilyName($cfName); // generate 5 timestamped columns for ($i = 1; $i <= 5; $i++) { $sc->addColumn(UUID::v1())->setValue($i); } echo 'Saving SuperColumn...<br>'; print_r($sc->toJSON()); $sc->save(); // get slice of the 5 most recent entries (count = 5, reversed = true) echo '<br><br>Loading via SuperColumn container...<br>'; $scNew = new PandraSuperColumn($superName, $keyID, $ks, NULL, PandraColumnContainer::TYPE_UUID); $scNew->setColumnFamilyName($cfName); $scNew->limit(5)->load(); echo '<br>Loaded...<br>'; print_r($scNew->toJSON()); echo '<br><br>Loading SuperColumn Slice...<br>'; $result = PandraCore::getCFSlice($ks, $keyID, new cassandra_ColumnParent(array('column_family' => $cfName, 'super_column' => $superName)), new PandraSlicePredicate(PandraSlicePredicate::TYPE_RANGE, array('start' => '', 'finish' => '', 'count' => 5, 'reversed' => true))); var_dump($result); $scNew = new PandraSuperColumn($superName, $keyID, $ks, NULL, PandraColumnContainer::TYPE_UUID); $scNew->setColumnFamilyName($cfName); $scNew->populate($result); echo '<br>Imported...<br>'; print_r($scNew->toJSON());