From 7ade8b7944d10f4fd1583789309cf003a3eac6f7 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 22 Nov 2012 13:12:22 +0200 Subject: Fix modify_column() issues (#2020) --- system/database/drivers/postgre/postgre_forge.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'system/database/drivers/postgre/postgre_forge.php') diff --git a/system/database/drivers/postgre/postgre_forge.php b/system/database/drivers/postgre/postgre_forge.php index 425622fac..5e378385c 100644 --- a/system/database/drivers/postgre/postgre_forge.php +++ b/system/database/drivers/postgre/postgre_forge.php @@ -96,7 +96,7 @@ class CI_DB_postgre_forge extends CI_DB_forge { $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table); $sqls = array(); - for ($i = 0, $c = count($field), $sql .= $alter_type.' '; $i < $c; $i++) + for ($i = 0, $c = count($field); $i < $c; $i++) { if ($field[$i]['_literal'] !== FALSE) { @@ -105,24 +105,25 @@ class CI_DB_postgre_forge extends CI_DB_forge { if (version_compare($this->db->version(), '8', '>=') && isset($field[$i]['type'])) { - $sqls[] = $sql.' TYPE '.$field[$i]['type'].$field[$i]['length']; + $sqls[] = $sql.' ALTER COLUMN '.$this->db->escape_identifiers($field[$i]['name']) + .' TYPE '.$field[$i]['type'].$field[$i]['length']; } if ( ! empty($field[$i]['default'])) { - $sqls[] = $sql.' ALTER '.$this->db->escape_identifiers($field[$i]['name']) - .' SET '.$field[$i]['default']; + $sqls[] = $sql.' ALTER COLUMN '.$this->db->escape_identifiers($field[$i]['name']) + .' SET DEFAULT '.$field[$i]['default']; } if (isset($field[$i]['null'])) { - $sqls[] = $sql.' ALTER '.$this->db->escape_identifiers($field[$i]['name']) + $sqls[] = $sql.' ALTER COLUMN '.$this->db->escape_identifiers($field[$i]['name']) .($field[$i]['null'] === TRUE ? ' DROP NOT NULL' : ' SET NOT NULL'); } if ( ! empty($field[$i]['new_name'])) { - $sqls[] = $sql.' RENAME '.$this->db->escape_identifiers($field[$i]['name']) + $sqls[] = $sql.' RENAME COLUMN '.$this->db->escape_identifiers($field[$i]['name']) .' TO '.$this->db->escape_identifiers($field[$i]['new_name']); } } -- cgit v1.2.3-24-g4f1b