[ruby-oci8-commit] [366] trunk/ruby-oci8: * NEWS: add changes between 2.0.2 and 2.0.3.

nobody at rubyforge.org nobody at rubyforge.org
Wed Oct 21 09:45:05 EDT 2009


Revision: 366
Author:   kubo
Date:     2009-10-21 09:45:04 -0400 (Wed, 21 Oct 2009)

Log Message:
-----------
* NEWS: add changes between 2.0.2 and 2.0.3.
* VERSION, Makefile: change the version to 2.0.3.
* ext/oci8/oci8.c: fix typo.
* ext/oci8/apiwrap.yml: add OCIIntervalFromText() prototype.

Modified Paths:
--------------
    trunk/ruby-oci8/ChangeLog
    trunk/ruby-oci8/Makefile
    trunk/ruby-oci8/NEWS
    trunk/ruby-oci8/VERSION
    trunk/ruby-oci8/ext/oci8/apiwrap.yml
    trunk/ruby-oci8/ext/oci8/oci8.c

Modified: trunk/ruby-oci8/ChangeLog
===================================================================
--- trunk/ruby-oci8/ChangeLog	2009-10-18 13:46:48 UTC (rev 365)
+++ trunk/ruby-oci8/ChangeLog	2009-10-21 13:45:04 UTC (rev 366)
@@ -1,3 +1,9 @@
+2009-10-21  KUBO Takehiro  <kubo at jiubao.org>
+	* NEWS: add changes between 2.0.2 and 2.0.3.
+	* VERSION, Makefile: change the version to 2.0.3.
+	* ext/oci8/oci8.c: fix typo.
+	* ext/oci8/apiwrap.yml: add OCIIntervalFromText() prototype.
+
 2009-10-18  KUBO Takehiro  <kubo at jiubao.org>
 	* ext/oci8/ocidatetime.c: Add workarounds for Oracle 9.2.0.1.
 	* lib/oci8/datetime.rb: Change the unit of OCI8::BindType::IntervalDS
@@ -2,3 +8,3 @@
 	    from day to second. Add OCI8::BindType::IntervalDS.unit and
-	    OCI8::BindType::IntervalDS.unit.
+	    OCI8::BindType::IntervalDS.unit=.
 	* test/test_datetime.rb: Fix tests for the above changes.

Modified: trunk/ruby-oci8/Makefile
===================================================================
--- trunk/ruby-oci8/Makefile	2009-10-18 13:46:48 UTC (rev 365)
+++ trunk/ruby-oci8/Makefile	2009-10-21 13:45:04 UTC (rev 366)
@@ -59,7 +59,7 @@
 #
 RUBY_18 = c:\ruby
 RUBY_191 = c:\ruby-1.9.1
-GEMPKG = ruby-oci8-2.0.2-x86-mswin32-60.gem
+GEMPKG = ruby-oci8-2.0.3-x86-mswin32-60.gem
 
 ext\oci8\oci8lib_18.so:
 	$(RUBY_18)\bin\ruby -r fileutils -e "FileUtils.rm_rf('ruby18')"

Modified: trunk/ruby-oci8/NEWS
===================================================================
--- trunk/ruby-oci8/NEWS	2009-10-18 13:46:48 UTC (rev 365)
+++ trunk/ruby-oci8/NEWS	2009-10-21 13:45:04 UTC (rev 366)
@@ -1,3 +1,129 @@
+2.0.3:
+
+* Imcompatible Changes
+
+  - Number column in a SQL statement
+
+    Changes the default data type for number column which fit neither
+    Integer nor Float from OraNumber to BigDecimal.
+
+      conn.exec("select 1.0 from dual") do |row|
+        p row[0] # => BigDecimal("1") if the ruby-oci8 version is 2.0.3.
+                 # => OraNumber(1) if the version is 2.0.2.
+      end
+
+  - Priority of OraNumber within numerical types
+
+    The return types of basic arithmetic operations with other numerical
+    types are changed.
+
+    2.0.3:
+      OraNumber + Integer    => OraNumber  (OraNumber wins.)
+      OraNumber + Float      => Float      (OraNumber loses.)
+      OraNumber + Rational   => Rational   (OraNumber loses.)
+      OraNumber + BigDecimal => BigDecimal (OraNumber loses.)
+
+    2.0.2:
+      OraNumber + Integer    => OraNumber  (OraNumber wins always.)
+      OraNumber + Float      => OraNumber
+      OraNumber + Rational   => OraNumber
+      OraNumber + BigDecimal => OraNumber
+
+  - Interval day to second
+
+    The retrived value of Oracle data type "interval day to second"
+    was changed from the number of days as a Rational to the number
+    of seconds as a Float by default.
+    Use OCI8::BindType::IntervalDS.unit = :day to make it compatible
+    with the previous versions.
+
+      conn.exec("select to_dsinterval('0 00:00:01') from dual") do |row|
+        p row[0] # => 1.0 if the version is 2.0.3 and
+                 #    OCI8::BindType::IntervalDS.unit is :second.
+                 # => (1/86400) if the version is 2.0.3 and
+		 #    OCI8::BindType::IntervalDS.unit is :day or
+		 #    the version is 2.0.2.
+      end
+
+  - Date, timestamp, timestamp with time zone data types and ruby 1.9.2
+
+    These data types are retrived always as Time values when the
+    ruby version is 1.9.2 because the Time class is enhanced to
+    represent any time zone and is free from year 2038 problem.
+
+    Prior to ruby 1.9.2, if the time cannot be represented by
+    Unix time or the time zone is neither utc nor local, they are
+    retrived as DateTime values.
+
+  - Non-blocking mode and ruby 1.9
+
+    non-blocking mode is enabled by default when the ruby is 1.9.
+
+* New Features
+
+  - BigDecimal and Rational are availabe as bind values.
+
+  - New methods OCI8#module=, OCI8#action= and OCI8#client_info= are added.
+
+    These methods change the module name, the action name and the client_info
+    in the current session respectively.
+
+    After Oracle 10g client, these don't perform network round trips.
+    The change is reflected to the server by the next round trip such as
+    OCI8#exec, OCI8#ping, etc.
+
+    Prior to Oracle 10g client, these call PL/SQL functions such as
+    DBMS_APPLICATION_INFO.SET_MODULE, DBMS_APPLICATION_INFO.SET_ACTION,
+    and DBMS_APPLICATION_INFO.SET_CLIENT_INFO internally.
+    The change is reflected immediately by a network round trip.
+
+  - OCI8::BindType.default_timezone
+
+    The default time zone of Time or DateTime values.
+    This parameter is used only when
+    (1) date values are fetched and the Oracle client version is 8.x
+    or
+    (2) object types have date data type attributes.
+
+    Note that if the Oracle client version is 9i or upper, the time
+    zone is determined by the session time zone. The default value
+    is local time zone. You can change it to GMT by executing the
+    following SQL statement for each connection.
+
+       alter session set time_zone = '00:00'
+
+* Other specification changes
+
+  - Add a global function OraNumber(obj) as a shortcut of OraNumber.new(obj)
+    as Rational and BigDecimal do.
+
+  - Fix to accept nil attribute in object type's
+    constructors. This works only for simple data types such as number,
+    string. But it doesn't for complex types such as object types.
+    (requested by Remi Gagnon)
+
+  - add DATE datatype support in object types.
+
+  - Change OCI8::LOB#write to accept an object which is not a String and
+    doesn't respond to 'to_str' as IO#write does.
+    (requested by Christopher Jones)
+
+  - Change the initial polling interval of
+    non-blocking mode for ruby 1.8 from 100 msec to 10 msec, which
+    is same with ruby-oci8 1.0.
+
+* Fixed installation issues.
+
+  - Fix oraconf.rb for ruby 1.8.5 with Oracle 8.x which needs some object
+    files to link with.
+    (reported by Jayson Cena)
+
+  - Fix oraconf.rb for ruby 1.9.2 preview1.
+    (pointed by Raimonds Simanovskis)
+
+  - Fix oraconf.rb to compile for AIX instant clients.
+    (reported by Kazuya Teramoto)
+
 2.0.2:
 
 * add new methods

Modified: trunk/ruby-oci8/VERSION
===================================================================
--- trunk/ruby-oci8/VERSION	2009-10-18 13:46:48 UTC (rev 365)
+++ trunk/ruby-oci8/VERSION	2009-10-21 13:45:04 UTC (rev 366)
@@ -1 +1 @@
-2.0.2
+2.0.3

Modified: trunk/ruby-oci8/ext/oci8/apiwrap.yml
===================================================================
--- trunk/ruby-oci8/ext/oci8/apiwrap.yml	2009-10-18 13:46:48 UTC (rev 365)
+++ trunk/ruby-oci8/ext/oci8/apiwrap.yml	2009-10-21 13:45:04 UTC (rev 366)
@@ -1077,6 +1077,15 @@
             - ub4 *fsec
 
 # round trip: 0 (not docmented. I guess.)
+OCIIntervalFromText:
+  :version: 900
+  :args:    - dvoid *hndl
+            - OCIError *err
+            - CONST OraText *inpstr
+            - size_t str_len
+            - OCIInterval *result
+
+# round trip: 0 (not docmented. I guess.)
 OCIDateTimeGetTimeZoneOffset:
   :version: 900
   :args:    - dvoid *hndl

Modified: trunk/ruby-oci8/ext/oci8/oci8.c
===================================================================
--- trunk/ruby-oci8/ext/oci8/oci8.c	2009-10-18 13:46:48 UTC (rev 365)
+++ trunk/ruby-oci8/ext/oci8/oci8.c	2009-10-21 13:45:04 UTC (rev 366)
@@ -721,7 +721,7 @@
  *
  * <b>(new in 2.0.3)</b>
  *
- * Sets the name of the current current module. This information is
+ * Sets the name of the current module. This information is
  * stored in the V$SESSION view and is also stored in the V$SQL view
  * and the V$SQLAREA view when a SQL statement is executed and the SQL
  * statement is first parsed in the Oracle server.




More information about the ruby-oci8-commit mailing list