MongoDB: Prepare for alter index
This commit is contained in:
parent
63a04ff753
commit
91bb94eda6
|
@ -480,7 +480,7 @@ WHERE OBJECT_NAME(i.object_id) = " . q($table)
|
||||||
} elseif (!queries(($val[0] != "PRIMARY"
|
} elseif (!queries(($val[0] != "PRIMARY"
|
||||||
? "CREATE $val[0] " . ($val[0] != "INDEX" ? "INDEX " : "") . idf_escape($val[1] != "" ? $val[1] : uniqid($table . "_")) . " ON " . table($table)
|
? "CREATE $val[0] " . ($val[0] != "INDEX" ? "INDEX " : "") . idf_escape($val[1] != "" ? $val[1] : uniqid($table . "_")) . " ON " . table($table)
|
||||||
: "ALTER TABLE " . table($table) . " ADD PRIMARY KEY"
|
: "ALTER TABLE " . table($table) . " ADD PRIMARY KEY"
|
||||||
) . " $val[2]")) {
|
) . " (" . implode(", ", $val[2]) . ")")) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -672,14 +672,14 @@ if (!defined("DRIVER")) {
|
||||||
|
|
||||||
/** Run commands to alter indexes
|
/** Run commands to alter indexes
|
||||||
* @param string escaped table name
|
* @param string escaped table name
|
||||||
* @param array of array("index type", "name", "(columns definition)") or array("index type", "name", "DROP")
|
* @param array of array("index type", "name", array("column definition", ...)) or array("index type", "name", "DROP")
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
function alter_indexes($table, $alter) {
|
function alter_indexes($table, $alter) {
|
||||||
foreach ($alter as $key => $val) {
|
foreach ($alter as $key => $val) {
|
||||||
$alter[$key] = ($val[2] == "DROP"
|
$alter[$key] = ($val[2] == "DROP"
|
||||||
? "\nDROP INDEX " . idf_escape($val[1])
|
? "\nDROP INDEX " . idf_escape($val[1])
|
||||||
: "\nADD $val[0] " . ($val[0] == "PRIMARY" ? "KEY " : "") . ($val[1] != "" ? idf_escape($val[1]) . " " : "") . $val[2]
|
: "\nADD $val[0] " . ($val[0] == "PRIMARY" ? "KEY " : "") . ($val[1] != "" ? idf_escape($val[1]) . " " : "") . "(" . implode(", ", $val[2]) . ")"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return queries("ALTER TABLE " . table($table) . implode(",", $alter));
|
return queries("ALTER TABLE " . table($table) . implode(",", $alter));
|
||||||
|
|
|
@ -439,12 +439,12 @@ ORDER BY conkey, conname") as $row) {
|
||||||
//! descending UNIQUE indexes results in syntax error
|
//! descending UNIQUE indexes results in syntax error
|
||||||
$create[] = ($val[2] == "DROP"
|
$create[] = ($val[2] == "DROP"
|
||||||
? "\nDROP CONSTRAINT " . idf_escape($val[1])
|
? "\nDROP CONSTRAINT " . idf_escape($val[1])
|
||||||
: "\nADD" . ($val[1] != "" ? " CONSTRAINT " . idf_escape($val[1]) : "") . " $val[0] " . ($val[0] == "PRIMARY" ? "KEY " : "") . $val[2]
|
: "\nADD" . ($val[1] != "" ? " CONSTRAINT " . idf_escape($val[1]) : "") . " $val[0] " . ($val[0] == "PRIMARY" ? "KEY " : "") . "(" . implode(", ", $val[2]) . ")"
|
||||||
);
|
);
|
||||||
} elseif ($val[2] == "DROP") {
|
} elseif ($val[2] == "DROP") {
|
||||||
$drop[] = idf_escape($val[1]);
|
$drop[] = idf_escape($val[1]);
|
||||||
} else {
|
} else {
|
||||||
$queries[] = "CREATE INDEX " . idf_escape($val[1] != "" ? $val[1] : uniqid($table . "_")) . " ON " . table($table) . " $val[2]";
|
$queries[] = "CREATE INDEX " . idf_escape($val[1] != "" ? $val[1] : uniqid($table . "_")) . " ON " . table($table) . " (" . implode(", ", $val[2]) . ")";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($create) {
|
if ($create) {
|
||||||
|
|
|
@ -600,7 +600,7 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
|
||||||
foreach (array_reverse($alter) as $val) {
|
foreach (array_reverse($alter) as $val) {
|
||||||
if (!queries($val[2] == "DROP"
|
if (!queries($val[2] == "DROP"
|
||||||
? "DROP INDEX " . idf_escape($val[1])
|
? "DROP INDEX " . idf_escape($val[1])
|
||||||
: index_sql($table, $val[0], $val[1], $val[2])
|
: index_sql($table, $val[0], $val[1], "(" . implode(", ", $val[2]) . ")")
|
||||||
)) {
|
)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,7 @@ if ($_POST && !$error && !$_POST["add"] && !$_POST["drop_col"]) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$alter[] = array($index["type"], $name, "(" . implode(", ", $set) . ")");
|
$alter[] = array($index["type"], $name, $set);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue