/**
 * Returns sql statement according to the column and index specifications as
 * requested
 *
 * @param boolean $is_create_tbl true if requirement is to get the statement
 *                               for table creation
 *
 * @return string sql statement
 */
function PMA_getColumnCreationStatements($is_create_tbl = true)
{
    $sql_statement = "";
    list($field_cnt, $field_primary, $field_index, $field_unique, $field_fulltext, $field_spatial) = PMA_getIndexedColumns();
    $definitions = PMA_buildColumnCreationStatement($field_cnt, $is_create_tbl);
    // Builds the PRIMARY KEY statements
    $primary_key_statements = PMA_buildIndexStatements(isset($field_primary[0]) ? $field_primary[0] : array(), " PRIMARY KEY ", $is_create_tbl);
    $definitions = array_merge($definitions, $primary_key_statements);
    // Builds the INDEX statements
    $definitions = PMA_mergeIndexStatements($definitions, $is_create_tbl, $field_index, "INDEX");
    // Builds the UNIQUE statements
    $definitions = PMA_mergeIndexStatements($definitions, $is_create_tbl, $field_unique, "UNIQUE");
    // Builds the FULLTEXT statements
    $definitions = PMA_mergeIndexStatements($definitions, $is_create_tbl, $field_fulltext, "FULLTEXT");
    // Builds the SPATIAL statements
    $definitions = PMA_mergeIndexStatements($definitions, $is_create_tbl, $field_spatial, "SPATIAL");
    if (count($definitions)) {
        $sql_statement = implode(', ', $definitions);
    }
    $sql_statement = preg_replace('@, $@', '', $sql_statement);
    return $sql_statement;
}
Example #2
0
/**
 * Returns sql statement according to the column and index specifications as
 * requested
 *
 * @param boolean $is_create_tbl true if requirement is to get the statement
 *                               for table creation
 *
 * @return string sql statement
 */
function PMA_getColumnCreationStatements($is_create_tbl = true)
{
    $definitions = array();
    $sql_statement = "";
    list($field_cnt, $field_primary, $field_index, $field_unique, $field_fulltext) = PMA_getIndexedColumns();
    $definitions = PMA_buildColumnCreationStatement($field_cnt, $field_primary, $is_create_tbl);
    // Builds the primary keys statements
    $primary_key_statements = PMA_buildIndexStatements($field_primary, " PRIMARY KEY ", $is_create_tbl);
    $definitions = array_merge($definitions, $primary_key_statements);
    // Builds the indexes statements
    $index_statements = PMA_buildIndexStatements($field_index, " INDEX ", $is_create_tbl);
    $definitions = array_merge($definitions, $index_statements);
    // Builds the uniques statements
    $unique_statements = PMA_buildIndexStatements($field_unique, " UNIQUE ", $is_create_tbl);
    $definitions = array_merge($definitions, $unique_statements);
    // Builds the fulltext statements
    $fulltext_statements = PMA_buildIndexStatements($field_fulltext, " FULLTEXT ", $is_create_tbl);
    $definitions = array_merge($definitions, $fulltext_statements);
    if (count($definitions)) {
        $sql_statement = implode(', ', $definitions);
    }
    $sql_statement = preg_replace('@, $@', '', $sql_statement);
    return $sql_statement;
}