From: KUBO Takehiro Date: 2007-07-01T22:59:18+09:00 Subject: [ANN] ruby-oci8 1.0.0-rc3 ruby-oci8 1.0.0-rc3 is released. This is a Oracle module using OCI8 API. http://rubyforge.org/projects/ruby-oci8/ What's new. 1. support external OS authentication. (suggested by Dan Fitch) conn = OCI8.new('/') or conn = OCI8.new(nil, nil) 2. incompatible change on connect string. You need to pass only one argument to OCI8.new to parse the first argument as a SQL*Plus-like connect string. For example, OCI8.new('scott/tiger', nil) was parsed as the username is 'scott' and the password is 'tiger' in 1.0.0-rc2. But from now on, it is treated as the username is 'scott/tiger' and the password is nil because it has two arguments. You need to use OCI8.new('scott/tiger') instead. 3. fix NCLOB support on Oracle 9i. (reported by Matthew Noble) 1.0.0-rc2's NCLOB support worked on Oracle 10g only. 4. fix a problem to compile with a third-party x86_64 rpm package. (contributed by Jeff Abbott) The x86_64 source rpm packages are found on the following URLs. http://freshrpms.net/docs/oracle/ http://remi.collet.free.fr/index.php?2007/01/22/279-oracle-instant-client-10203-on-x86_64 5. '--with-instant-client' option become obsolete and is ignored. Use LD_LIBRARY_PATH(Linux), PATH(Windows), etc. to indicate the instant client's location. 6. fix some other minor problems. What will be new in the next release. 1. The vesion will be 1.0.0. 2. No data rounding between ruby's Float and Oracle's BINARY_DOUBLE when using bind variables. In ruby-oci8 1.0.0-rc3 and earlier, even though an Oracle's column is defined as BINARY_DOUBLE, there are data convertions between the server and the client. That's because the network data representation is not BINARY_DOUBLE but Oracle's NUMBER datatype. The client-side's ruby Float become Oracle NUMBER on the network and become BINARY_DOUBLE on the server. Ruby's Flaot and Oracle's BINARY_DOUBLE are both IEEE 754 double precision floating number, but Oracle NUMBER is base-100 floating number. It causes rounding problems. You can store almost same but not exactly same values to the server. In ruby-oci8 1.0.0, the network data representation will be same with BINARY_DOUBLE if the client and server's version is Oracle 10g. There will be no data conversion except changing byte order. Note: Rails cannot store exactly same Float values to the server even though after ruby-oci8 1.0.0 is released. That's because rails doesn't use real bind variables.