setName() public method

Sets the name of the index
public setName ( string $name ) : void
$name string index name
return void
Example #1
0
 /**
  * Function to get the sql query for index creation or edit
  *
  * @param Index $index  current index
  * @param bool  &$error whether error occurred or not
  *
  * @return string
  */
 public function getSqlQueryForIndexCreateOrEdit($index, &$error)
 {
     // $sql_query is the one displayed in the query box
     $sql_query = sprintf('ALTER TABLE %s.%s', Util::backquote($this->_db_name), Util::backquote($this->_name));
     // Drops the old index
     if (!empty($_REQUEST['old_index'])) {
         if ($_REQUEST['old_index'] == 'PRIMARY') {
             $sql_query .= ' DROP PRIMARY KEY,';
         } else {
             $sql_query .= sprintf(' DROP INDEX %s,', Util::backquote($_REQUEST['old_index']));
         }
     }
     // end if
     // Builds the new one
     switch ($index->getChoice()) {
         case 'PRIMARY':
             if ($index->getName() == '') {
                 $index->setName('PRIMARY');
             } elseif ($index->getName() != 'PRIMARY') {
                 $error = Message::error(__('The name of the primary key must be "PRIMARY"!'));
             }
             $sql_query .= ' ADD PRIMARY KEY';
             break;
         case 'FULLTEXT':
         case 'UNIQUE':
         case 'INDEX':
         case 'SPATIAL':
             if ($index->getName() == 'PRIMARY') {
                 $error = Message::error(__('Can\'t rename index to PRIMARY!'));
             }
             $sql_query .= sprintf(' ADD %s ', $index->getChoice());
             if ($index->getName()) {
                 $sql_query .= Util::backquote($index->getName());
             }
             break;
     }
     // end switch
     $index_fields = array();
     foreach ($index->getColumns() as $key => $column) {
         $index_fields[$key] = Util::backquote($column->getName());
         if ($column->getSubPart()) {
             $index_fields[$key] .= '(' . $column->getSubPart() . ')';
         }
     }
     // end while
     if (empty($index_fields)) {
         $error = Message::error(__('No index parts defined!'));
     } else {
         $sql_query .= ' (' . implode(', ', $index_fields) . ')';
     }
     $keyBlockSizes = $index->getKeyBlockSize();
     if (!empty($keyBlockSizes)) {
         $sql_query .= sprintf(' KEY_BLOCK_SIZE = ', Util::sqlAddSlashes($keyBlockSizes));
     }
     // specifying index type is allowed only for primary, unique and index only
     $type = $index->getType();
     if ($index->getChoice() != 'SPATIAL' && $index->getChoice() != 'FULLTEXT' && in_array($type, Index::getIndexTypes())) {
         $sql_query .= ' USING ' . $type;
     }
     $parser = $index->getParser();
     if ($index->getChoice() == 'FULLTEXT' && !empty($parser)) {
         $sql_query .= ' WITH PARSER ' . Util::sqlAddSlashes($parser);
     }
     $comment = $index->getComment();
     if (!empty($comment)) {
         $sql_query .= sprintf(" COMMENT '%s'", Util::sqlAddSlashes($comment));
     }
     $sql_query .= ';';
     return $sql_query;
 }
Example #2
0
 /**
  * Creates(if not already created) and returns the corresponding Index object
  *
  * @param string $schema     database name
  * @param string $table      table name
  * @param string $index_name index name
  *
  * @return Index corresponding Index object
  */
 public static function singleton($schema, $table, $index_name = '')
 {
     Index::_loadIndexes($table, $schema);
     if (!isset(Index::$_registry[$schema][$table][$index_name])) {
         $index = new Index();
         if (strlen($index_name) > 0) {
             $index->setName($index_name);
             Index::$_registry[$schema][$table][$index->getName()] = $index;
         }
         return $index;
     } else {
         return Index::$_registry[$schema][$table][$index_name];
     }
 }