summaryrefslogtreecommitdiffstats
path: root/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php
diff options
context:
space:
mode:
authorAndrey Andreev <narf@bofh.bg>2012-11-12 11:51:14 +0100
committerAndrey Andreev <narf@bofh.bg>2012-11-12 11:51:14 +0100
commitb67277b8063b0e6aab051ce269194255ef83e808 (patch)
treef0ce631b9ee3134de2cf009e4d5f02401f31aaac /system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php
parentb0a97c100f5e7edc5e21ec7d07f768cd3b5618da (diff)
Bring back the AFTER clause for DB Forge add_column()
(it was temporarily removed due to multiple inconsistencies with other drivers) This commit also fixes issue #1988. Also added support for the FIRST clause (again, MySQL and CUBRID only).
Diffstat (limited to 'system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php')
-rw-r--r--system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php31
1 files changed, 30 insertions, 1 deletions
diff --git a/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php b/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php
index d63a4b0a6..e8421ec41 100644
--- a/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php
+++ b/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php
@@ -1,4 +1,4 @@
-<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+<?php
/**
* CodeIgniter
*
@@ -123,6 +123,35 @@ class CI_DB_pdo_cubrid_forge extends CI_DB_pdo_forge {
// --------------------------------------------------------------------
/**
+ * Process column
+ *
+ * @param array $field
+ * @return string
+ */
+ protected function _process_column($field)
+ {
+ $extra_clause = isset($field['after'])
+ ? ' AFTER '.$this->db->escape_identifiers($field['after']) : '';
+
+ if (empty($extra_clause) && isset($field['first']) && $field['first'] === TRUE)
+ {
+ $extra_clause = ' FIRST';
+ }
+
+ return $this->db->escape_identifiers($field['name'])
+ .(empty($field['new_name']) ? '' : $this->db->escape_identifiers($field['new_name']))
+ .' '.$field['type'].$field['length']
+ .$field['unsigned']
+ .$field['null']
+ .$field['default']
+ .$field['auto_increment']
+ .$field['unique']
+ .$extra_clause;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
* Field attribute TYPE
*
* Performs a data type mapping between different databases.