summaryrefslogtreecommitdiffstats
path: root/system/database/drivers
diff options
context:
space:
mode:
authorkenjis <kenji.uui@gmail.com>2016-06-26 13:49:07 +0200
committerkenjis <kenji.uui@gmail.com>2016-06-27 13:55:25 +0200
commite947ff5e84e46cef404c7403e0d94b206c1a6404 (patch)
tree4c5a26e65ba107bfe1acef99e8519b2ea538171b /system/database/drivers
parentd9566cd6cd3e88badde75a9c0b690cef47d1ddc1 (diff)
Fix oci8_forge
* Oracle does not have `create table if exists` * Oracle has only NUMBER for integer Signed-off-by: Kenji Suzuki <kenji.uui@gmail.com>
Diffstat (limited to 'system/database/drivers')
-rw-r--r--system/database/drivers/oci8/oci8_forge.php37
-rw-r--r--system/database/drivers/pdo/subdrivers/pdo_oci_forge.php35
2 files changed, 72 insertions, 0 deletions
diff --git a/system/database/drivers/oci8/oci8_forge.php b/system/database/drivers/oci8/oci8_forge.php
index 1ca559a32..989c7a8b7 100644
--- a/system/database/drivers/oci8/oci8_forge.php
+++ b/system/database/drivers/oci8/oci8_forge.php
@@ -54,6 +54,13 @@ class CI_DB_oci8_forge extends CI_DB_forge {
protected $_create_database = FALSE;
/**
+ * CREATE TABLE IF statement
+ *
+ * @var string
+ */
+ protected $_create_table_if = FALSE;
+
+ /**
* DROP DATABASE statement
*
* @var string
@@ -146,4 +153,34 @@ class CI_DB_oci8_forge extends CI_DB_forge {
// Not supported - sequences and triggers must be used instead
}
+ // --------------------------------------------------------------------
+
+ /**
+ * Field attribute TYPE
+ *
+ * Performs a data type mapping between different databases.
+ *
+ * @param array &$attributes
+ * @return void
+ */
+ protected function _attr_type(&$attributes)
+ {
+ switch (strtoupper($attributes['TYPE']))
+ {
+ case 'TINYINT':
+ $attributes['TYPE'] = 'NUMBER';
+ return;
+ case 'MEDIUMINT':
+ $attributes['TYPE'] = 'NUMBER';
+ return;
+ case 'INT':
+ $attributes['TYPE'] = 'NUMBER';
+ return;
+ case 'BIGINT':
+ $attributes['TYPE'] = 'NUMBER';
+ return;
+ default: return;
+ }
+ }
+
}
diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php
index d0b7be8f2..f7b7f8f5a 100644
--- a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php
+++ b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php
@@ -54,6 +54,13 @@ class CI_DB_pdo_oci_forge extends CI_DB_pdo_forge {
protected $_create_database = FALSE;
/**
+ * CREATE TABLE IF statement
+ *
+ * @var string
+ */
+ protected $_create_table_if = FALSE;
+
+ /**
* DROP DATABASE statement
*
* @var string
@@ -146,4 +153,32 @@ class CI_DB_pdo_oci_forge extends CI_DB_pdo_forge {
// Not supported - sequences and triggers must be used instead
}
+ /**
+ * Field attribute TYPE
+ *
+ * Performs a data type mapping between different databases.
+ *
+ * @param array &$attributes
+ * @return void
+ */
+ protected function _attr_type(&$attributes)
+ {
+ switch (strtoupper($attributes['TYPE']))
+ {
+ case 'TINYINT':
+ $attributes['TYPE'] = 'NUMBER';
+ return;
+ case 'MEDIUMINT':
+ $attributes['TYPE'] = 'NUMBER';
+ return;
+ case 'INT':
+ $attributes['TYPE'] = 'NUMBER';
+ return;
+ case 'BIGINT':
+ $attributes['TYPE'] = 'NUMBER';
+ return;
+ default: return;
+ }
+ }
+
}