Fix database create index clause

This commit is contained in:
markjcrane
2026-05-15 20:02:27 +00:00
parent 980a8d5b2d
commit 9b3b33b2ba
+10 -3
View File
@@ -3628,7 +3628,7 @@ class database {
$pg_indexes = $prep_statement->fetchAll(PDO::FETCH_NAMED);
$database_indexes = array();
foreach($pg_indexes as $row) {
$database_indexes[$row['table']][$row['index_name']] = $row['definition'];
$database_indexes[$row['index_name']] = $row['definition'];
}
}
return $database_indexes;
@@ -3692,10 +3692,17 @@ class database {
}
// create the database index - postgresql index name limited to 63 bytes
if ($this->type == 'pgsql' && !isset($database_indexes[$table_name][substr($table_name . "_" . $column_name . "_fkey", 0, 63)])) {
$sql = "CREATE INDEX IF NOT EXISTS " . $table_name . "_" . $column_name . "_fkey ON " . $table_name . " (" . $column_name . ");\n";
$index_name = substr($table_name . "_" . $column_name . "_fkey", 0, 63);
if ($this->type == 'pgsql' && !isset($database_indexes[$index_name])) {
// add the database index
$sql = "CREATE INDEX " . $index_name . " ON " . $table_name . " (" . $column_name . ");\n";
$prep_statement = $this->db->prepare($sql);
$prep_statement->execute();
// add the new index to the database indexes array
$database_indexes[$index_name] = $sql;
// build the results array
$row['table_name'] = $table_name;
$row['column_name'] = $column_name;
$row['sql'] = $sql;