Ruby-oci8 2.0.5

Ruby-oci8 2.0.5 is released. This is the Oracle module using OCI8 API.

http://rubyforge.org/projects/ruby-oci8/

The next release will be 2.1.0 which doesn’t support Oracle8 (8.0)
and Oracle 8i (8.1) anymore.

  • New Features

    • Support Rubinius.

      I just now found that temporary LOBs causes SEGV when they are GCed
      on
      rubinius 1.2.3. It works fine on the latest rubinius in github.

    • OraNumber#has_decimal_part? → boolean

      OraNumber(10).has_decimal_part? # => false
      OraNumber(10.1).has_decimal_part? # => true

    • Limitted support for OraNumber’s positive and negative infinity.

      They are converted to ‘~’ and ‘-~’ respectively as described in
      URL:http://www.ixora.com.au/notes/infinity.htm.

    • OCI8.properties is added to control ruby-oci8 behaviour.
      It supports :bind_string_as_nchar only for now.

    • OCI8.properties[:bind_string_as_nchar] is added.

      You need to set “OCI8.properties[:bind_string_as_nchar] = true”
      if the database character set is not UTF-8 and NCHAR/NVARCHAR2
      columns
      contain characters which cannot be converted to the database
      character set.
      See:
      http://rubyforge.org/forum/forum.php?thread_id=48838&forum_id=1078

  • Fixed issues

    • Fix InvalidHandle errors on Rails.
      (reported by Jordan Curzon and Aaron Qian)
      See:
      http://rubyforge.org/forum/forum.php?thread_id=49751&forum_id=1078

    • Raise “OCIError: ORA-01805: possible error in date/time operation”
      when Oracle 11gR2’s client and server timezone versions are not same
      instead of raising a exception “undefined method `*’ for
      nil:NilClass.”
      See:
      http://rubyforge.org/forum/forum.php?thread_id=49102&forum_id=1078

    • Fix unexpectedly disconnect when failed-logon connections is GC’ed
      and the connection object’s address is accidentally same with
      an alive connection.

    • Fix segmentation fault when calling OCI8::Cursor#[] for
      closed statement object’s (reported by Hugo L. Borges)

    • Fix a bug that a string is bound to RAW.
      Its encoding had been convertd to OCI.encoding incorrectly.

    • Fix memory leaks when temporary lobs are used.

    • Fix a problem to assign NULL bind value to object type bind
      variables.
      (reported by Raimonds Simanovskis)

    • Support LOB datatypes in object type.
      (reported by Michael Sexton)

    • Fix to compile on cygwin. The declaration of ‘boolean’ in Oracle
      conflicts with that of latest cygwin.
      (reported by Don Hill).

    • Fix to complie for the 32-bit ruby which was compiled on x86_64
      linux
      and configured without ‘–build’, ‘–host’ nor ‘–target’.
      The RUBY_PLATFORM is ‘x86_64-linux’ even though the ruby is 32-bit.
      (reported by Jason Renschler)

    • Fix wrong dependencies in Makefile when running ‘make -jNNN (where
      NNN >= 2)’
      (contributed by Alyano Alyanos. See bug #28129 on rubyforge.)

    • Fix to compile on HP-UX. Duplicated const qualifiers prevented HP-UX
      cc
      from compiling. (reported by Sebastian YEPES)