From 67d7129b99d4d5150c562165410118dd96c85509 Mon Sep 17 00:00:00 2001 From: Kevin Locke Date: Sat, 6 Jun 2015 21:11:05 -0600 Subject: [PATCH] Fix CHANGE COLUMN matching The current regex for matching ALTER TABLE CHANGE COLUMN does not match against a statement where there is nothing after the column data type, resulting in errors such as: Error running : ALTER TABLE wp_ngg_pictures CHANGE COLUMN meta_data meta_data LONGTEXT ---- converted to ---- ALTER TABLE wp_ngg_pictures CHANGE COLUMN meta_data meta_data LONGTEXT ----> ERROR: syntax error at or near "CHANGE" LINE 1: ALTER TABLE wp_ngg_pictures CHANGE COLUMN meta_data meta_dat... ^ Fix this by making the space before NOT NULL optional. Signed-off-by: Kevin Locke --- pg4wp/driver_pgsql_install.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pg4wp/driver_pgsql_install.php b/pg4wp/driver_pgsql_install.php index 08778ba..7f53687 100644 --- a/pg4wp/driver_pgsql_install.php +++ b/pg4wp/driver_pgsql_install.php @@ -123,7 +123,7 @@ WHERE '.$where : '').';'; elseif( 0 === strpos( $sql, 'ALTER TABLE')) { $logto = 'ALTER'; - $pattern = '/ALTER TABLE\s+(\w+)\s+CHANGE COLUMN\s+([^\s]+)\s+([^\s]+)\s+([^ ]+)( unsigned|)\s+(NOT NULL|)\s*(default (.+)|)/'; + $pattern = '/ALTER TABLE\s+(\w+)\s+CHANGE COLUMN\s+([^\s]+)\s+([^\s]+)\s+([^ ]+)( unsigned|)\s*(NOT NULL|)\s*(default (.+)|)/'; if( 1 === preg_match( $pattern, $sql, $matches)) { $table = $matches[1];