/** * @param bool $pack_keys whether or not keys are automatically packed/unpacked * * Available since Cassandra 0.8.0. */ public function set_autopack_keys($pack_keys) { if ($pack_keys) { $this->autopack_keys = true; if (property_exists('\\cassandra\\CfDef', "key_validation_class")) { $this->key_type = DataType::get_type_for($this->cfdef->key_validation_class); } else { $this->key_type = new BytesType(); } } else { $this->autopack_keys = false; } }
protected function _alter_column($keyspace, $column_family, $column, $data_type = self::KEEP, $index_type = self::KEEP, $index_name = self::KEEP) { $this->client->set_keyspace($keyspace); $cfdef = $this->get_cfdef($keyspace, $column_family); if ($cfdef->column_type == 'Super') { $col_name_type = DataType::get_type_for($cfdef->subcomparator_type); } else { $col_name_type = DataType::get_type_for($cfdef->comparator_type); } $packed_name = $col_name_type->pack($column); $col_def = null; $col_meta = $cfdef->column_metadata; for ($i = 0; $i < count($col_meta); $i++) { $temp_col_def = $col_meta[$i]; if ($temp_col_def->name === $packed_name) { $col_def = $temp_col_def; unset($col_meta[$i]); break; } } if ($col_def === null) { $col_def = new ColumnDef(); $col_def->name = $packed_name; } if ($data_type !== self::KEEP) { $col_def->validation_class = self::qualify_class_name($data_type); } if ($index_type !== self::KEEP) { $col_def->index_type = $index_type; } if ($index_name !== self::KEEP) { $col_def->index_name = $index_name; } $col_meta[] = $col_def; $cfdef->column_metadata = $col_meta; $this->client->system_update_column_family($cfdef); $this->wait_for_agreement(); }