fix broken alterCol function
authorLars Kneschke <l.kneschke@metaways.de>
Tue, 10 Feb 2015 08:12:14 +0000 (09:12 +0100)
committerPhilipp Schüle <p.schuele@metaways.de>
Tue, 10 Feb 2015 10:16:01 +0000 (11:16 +0100)
- previous preg_match matched not only the DEFAULT value but also the
following NOT NULL
- default value is property of $_declaration => no need to guess it with
preg_match

Change-Id: I1e6c80e65608db706dd55da4f3c63d7ebcb8b555
Reviewed-on: http://gerrit.tine20.com/customers/1628
Tested-by: Jenkins CI (http://ci.tine20.com/)
Reviewed-by: Philipp Schüle <p.schuele@metaways.de>
tine20/Setup/Backend/Pgsql.php

index 9a9b084..6a543b4 100644 (file)
@@ -297,8 +297,8 @@ class Setup_Backend_Pgsql extends Setup_Backend_Abstract
             $this->execQueryVoid($statement);
         }
         
-        if (preg_match('/(?P<DEFAULT>DEFAULT .*)/', $fieldDeclaration, $matches)) {
-            $statement = $baseStatement . ' ALTER COLUMN ' . $quotedName . ' SET ' . $matches['DEFAULT'];
+        if (isset($_declaration->default)) {
+            $statement = $baseStatement . ' ALTER COLUMN ' . $quotedName . ' SET ' . $this->_db->quoteInto("DEFAULT ?", $_declaration->default);
             $this->execQueryVoid($statement);
         }
     }