From 999f51a7bd190463c7a8a070c03d2caf54bdfc42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miloslav=20H=C5=AFla?= Date: Fri, 17 Apr 2015 15:22:45 +0200 Subject: [PATCH] OracleDriver: cast type NUMBER(p, 0) as an INTEGER In many cases, Oracle returns integers as a NUMBER(8,0). Type NUMBER is casted to (float) which is unnecessary in this case. --- dibi/drivers/DibiOracleDriver.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dibi/drivers/DibiOracleDriver.php b/dibi/drivers/DibiOracleDriver.php index f4d17ae0..7ec760f6 100644 --- a/dibi/drivers/DibiOracleDriver.php +++ b/dibi/drivers/DibiOracleDriver.php @@ -365,11 +365,12 @@ class DibiOracleDriver extends DibiObject implements IDibiDriver, IDibiResultDri $count = oci_num_fields($this->resultSet); $columns = array(); for ($i = 1; $i <= $count; $i++) { + $type = oci_field_type($this->resultSet, $i); $columns[] = array( 'name' => oci_field_name($this->resultSet, $i), 'table' => NULL, 'fullname' => oci_field_name($this->resultSet, $i), - 'nativetype'=> oci_field_type($this->resultSet, $i), + 'nativetype' => $type === 'NUMBER' && oci_field_scale($this->resultSet, $i) === 0 ? 'INTEGER' : $type, ); } return $columns;