/**
  * @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();
 }