From 0c46e61ba144dbbcbbfd644665ff75c34337fe3c Mon Sep 17 00:00:00 2001 From: Ioannis Igoumenos Date: Mon, 23 Oct 2023 17:11:56 +0300 Subject: [PATCH] improve index list query creators --- app/src/Lib/Util/CmgMySQLSchemaManager.php | 2 +- app/src/Lib/Util/CmgPostgreSQLSchemaManager.php | 9 ++++++--- app/src/Lib/Util/SchemaManager.php | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/src/Lib/Util/CmgMySQLSchemaManager.php b/app/src/Lib/Util/CmgMySQLSchemaManager.php index 384a31a48..e8169a56e 100644 --- a/app/src/Lib/Util/CmgMySQLSchemaManager.php +++ b/app/src/Lib/Util/CmgMySQLSchemaManager.php @@ -53,7 +53,7 @@ protected function selectIndexColumns(string $databaseName, ?string $tableName = $sql .= <<<'SQL' NON_UNIQUE AS Non_Unique, INDEX_NAME AS Key_name, - CONCAT(COALESCE(COLUMN_NAME, ''), COALESCE(EXPRESSION, '')) AS Column_Name, + CONCAT(COALESCE(COLUMN_NAME, ''), COALESCE(CONCAT('(', EXPRESSION, ')' ), '')) AS Column_Name, SUB_PART AS Sub_Part, INDEX_TYPE AS Index_Type, EXPRESSION AS Expression diff --git a/app/src/Lib/Util/CmgPostgreSQLSchemaManager.php b/app/src/Lib/Util/CmgPostgreSQLSchemaManager.php index ec3e1c20e..a1c946264 100644 --- a/app/src/Lib/Util/CmgPostgreSQLSchemaManager.php +++ b/app/src/Lib/Util/CmgPostgreSQLSchemaManager.php @@ -54,9 +54,12 @@ protected function selectIndexColumns(string $databaseName, ?string $tableName = i.indexprs, i.indrelid, ARRAY( - SELECT pg_get_indexdef(i.indexrelid, k + 1, true) - FROM generate_subscripts(i.indkey, 1) AS k - ORDER BY k + SELECT regexp_replace(pg_get_indexdef(i.indexrelid, k + 1, true), + '::.*[^()]', -- regular expression tha matches the type of the column + '', -- replace with empty space + 'g') + FROM generate_subscripts(i.indkey, 1) as k + ORDER BY k ) AS indkey_names, pg_get_expr(indpred, indrelid) AS "where" FROM pg_index i diff --git a/app/src/Lib/Util/SchemaManager.php b/app/src/Lib/Util/SchemaManager.php index 3f64b2c58..416f4e95a 100644 --- a/app/src/Lib/Util/SchemaManager.php +++ b/app/src/Lib/Util/SchemaManager.php @@ -349,7 +349,7 @@ protected function processSchema( // SchemaManager provides info about the database $sm = $this->conn->createSchemaManager(); - + // This is the current database representation $curSchema = $sm->introspectSchema();