[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