diff options
author | Florian Pritz <bluewind@xinu.at> | 2021-02-21 11:18:58 +0100 |
---|---|---|
committer | Florian Pritz <bluewind@xinu.at> | 2021-02-21 11:18:58 +0100 |
commit | 08510ba2faa4785339ca7093ba0fa7052ff5d0c8 (patch) | |
tree | 108365fe3624295d70a677642b300fd458e7c569 /system/database/drivers/pdo/subdrivers/pdo_oci_forge.php | |
parent | 29e6c8ad462a426f4bc6d380646e434e3361a21d (diff) | |
parent | 0925b5099919300a239909588351a6482c5e792d (diff) |
PHP8: Merge remote-tracking branch 'upstream/3.1-stable' into dev
Signed-off-by: Florian Pritz <bluewind@xinu.at>
Diffstat (limited to 'system/database/drivers/pdo/subdrivers/pdo_oci_forge.php')
-rw-r--r-- | system/database/drivers/pdo/subdrivers/pdo_oci_forge.php | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php index b5d3eb143..0700d6369 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_oci_forge extends CI_DB_pdo_forge { @@ -150,9 +150,33 @@ class CI_DB_pdo_oci_forge extends CI_DB_pdo_forge { */ protected function _attr_auto_increment(&$attributes, &$field) { - // Not supported - sequences and triggers must be used instead + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'number') !== FALSE && version_compare($this->db->version(), '12.1', '>=')) + { + $field['auto_increment'] = ' GENERATED ALWAYS AS IDENTITY'; + } + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + return $this->db->escape_identifiers($field['name']) + .' '.$field['type'].$field['length'] + .$field['unsigned'] + .$field['default'] + .$field['auto_increment'] + .$field['null'] + .$field['unique']; } + // -------------------------------------------------------------------- + /** * Field attribute TYPE * |