Ruby-oci8 0.1.15

ruby-oci8 0.1.15 is released.
This is a Oracle module using OCI8 API.

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

What’s new:

  • no new features. :-<

  • suppress memory usage when binding a placeholder which is already
    bound.

    require ‘oci8’
    conn = OCI8.new(‘ruby’, ‘oci8’)
    cursor = conn.parse(‘select * from foo where key = :key’)
    0.upto(10000) do |key|
    # bind values had not freed until cursor.close.
    # Now they are freed when GC is run.
    cursor.bind_param(‘key’, key)
    cursor.exec
    … fetch …
    end

  • fix potentially segmentation fault while exiting process.
    When exiting process, ruby’s objects are GCed with unexpectable
    order. If an OCIEnv instance was GCed in prior to OCIRowid objects,
    it caused segmentation fault.

  • add a workaround code when setting $0.
    The following code made enviroment variables empty strings on
    Unix when using ruby 1.8.4, ruby-oci8 0.1.14 and Oracle 10.1.0.
    (Oracle 10.2.0 and ruby 1.8.2 doesn’t have this problem.)

    require ‘oci8’
    ENV[‘HOME’] # → valid value
    $0 = ‘foo’
    ENV[‘HOME’] # → ‘’

  • fix registry search path on compilation.
    (OracleXE Windows version)