From ac496694fed0b61f07b6935989757fcc55ee1d35 Mon Sep 17 00:00:00 2001 From: hawk__ Date: Fri, 26 Aug 2011 21:59:01 +0000 Subject: [PATCH] Improved INDEX creation support git-svn-id: https://plugins.svn.wordpress.org/postgresql-for-wordpress/trunk@429262 b8457f37-d9ea-0310-8a92-e5e31aec5664 --- pg4wp/driver_pgsql_install.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pg4wp/driver_pgsql_install.php b/pg4wp/driver_pgsql_install.php index 953c1d1..e39b6b0 100644 --- a/pg4wp/driver_pgsql_install.php +++ b/pg4wp/driver_pgsql_install.php @@ -163,13 +163,14 @@ WHERE pg_class.relname='$table_name' AND pg_attribute.attnum>=1 AND NOT pg_attri } // Support for INDEX creation - $pattern = '/,\s+(UNIQUE |)KEY\s+([^\s]+)\s+\(([^\)]+)\)/'; + $pattern = '/,\s+(UNIQUE |)KEY\s+([^\s]+)\s+\(((?:[\w]+(?:\([\d]+\))?[,]?)*)\)/'; if( preg_match_all( $pattern, $sql, $matches, PREG_SET_ORDER)) foreach( $matches as $match) { $unique = $match[1]; $index = $match[2]; $columns = $match[3]; + $columns = preg_replace( '/\(\d+\)/', '', $columns); // Workaround for index name duplicate $index = $table.'_'.$index; $sql .= "\nCREATE {$unique}INDEX $index ON $table ($columns);";