ruby-oci8 2.1.1 → 2.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog CHANGED
@@ -1,3 +1,21 @@
1
+ 2012-04-28 KUBO Takehiro <kubo@jiubao.org>
2
+ * NEWS: add changes between 2.1.2 and 2.1.1
3
+ * VERSION: change the version to 2.1.2.
4
+
5
+ 2012-04-28 KUBO Takehiro <kubo@jiubao.org>
6
+ * lib/oci8/oci8.rb, lib/oci8/properties.rb: disable statement caching by default.
7
+ This is workaround about a SIGSEGV issue.
8
+ See: https://github.com/rsim/oracle-enhanced/issues/162
9
+
10
+ 2012-04-28 KUBO Takehiro <kubo@jiubao.org>
11
+ * ext/oci8/oci8lib.c: delete code which overwrites signal handlers
12
+ registered by ruby. This was committed by mistake.
13
+ See: http://rubyforge.org/forum/forum.php?thread_id=50690&forum_id=1078
14
+
15
+ 2012-04-24 KUBO Takehiro <kubo@jiubao.org>
16
+ * ext/oci8/metadata.c: fix internal heap error in OCI.
17
+ (github issue #12 reported by Yasuo Honda)
18
+
1
19
  2012-04-22 KUBO Takehiro <kubo@jiubao.org>
2
20
  * VERSION: update to 2.1.1.
3
21
  * README.md: add links.
data/NEWS CHANGED
@@ -1,5 +1,26 @@
1
1
  # @markup markdown
2
2
 
3
+ 2.1.2
4
+ =====
5
+
6
+ Specification changes
7
+ ---------------------
8
+
9
+ ### Statement caching in OCI is disabled by default.
10
+
11
+ This is workaround about a SIGSEGV issue.
12
+ See: [oracle enhanced issue #162](https://github.com/rsim/oracle-enhanced/issues/162)
13
+ Fixed Issues
14
+ ------------
15
+
16
+ - delete code which overwrites signal handlers registered by ruby.
17
+ See: [rubyforge thread 50690](http://rubyforge.org/forum/forum.php?thread_id=50690&forum_id=1078)
18
+
19
+ - fix internal heap error in OCI.
20
+ See: [github issue #12](https://github.com/kubo/ruby-oci8/issues/12)
21
+
22
+ (reported by Yasuo Honda)
23
+
3
24
  2.1.1
4
25
  =====
5
26
 
@@ -16,6 +37,8 @@ The default cache size is 20. It can be changed as follows.
16
37
  # change the size to 100.
17
38
  OCI8.properties[:statement_cache_size] = 100
18
39
 
40
+ Note: The default size was changed to zero in 2.1.2.
41
+
19
42
  Specification changes
20
43
  ---------------------
21
44
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.1.1
1
+ 2.1.2
@@ -29,6 +29,11 @@ static void oci8_metadata_mark(oci8_base_t *base)
29
29
  rb_gc_mark(md->svc);
30
30
  }
31
31
 
32
+ static void oci8_metadata_free(oci8_base_t *base)
33
+ {
34
+ base->type = 0; /* to prevent OCIDescriptorFree */
35
+ }
36
+
32
37
  VALUE oci8_metadata_create(OCIParam *parmhp, VALUE svc, VALUE parent)
33
38
  {
34
39
  oci8_metadata_t *md;
@@ -199,7 +204,7 @@ static VALUE metadata_get_tdo_id(VALUE self)
199
204
 
200
205
  oci8_base_vtable_t oci8_metadata_vtable = {
201
206
  oci8_metadata_mark,
202
- NULL,
207
+ oci8_metadata_free,
203
208
  sizeof(oci8_metadata_t),
204
209
  };
205
210
 
@@ -1,15 +1,10 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2002-2011 KUBO Takehiro <kubo@jiubao.org>
3
+ * Copyright (C) 2002-2012 KUBO Takehiro <kubo@jiubao.org>
4
4
  */
5
5
 
6
6
  #include "oci8.h"
7
7
 
8
- #define DEBUG_CORE_FILE 1
9
- #ifdef DEBUG_CORE_FILE
10
- #include <signal.h>
11
- #endif
12
-
13
8
  ID oci8_id_at_last_error;
14
9
  ID oci8_id_new;
15
10
  ID oci8_id_get;
@@ -145,10 +140,6 @@ Init_oci8lib()
145
140
  #ifdef USE_WIN32_C
146
141
  Init_oci8_win32(cOCI8);
147
142
  #endif
148
-
149
- #ifdef DEBUG_CORE_FILE
150
- signal(SIGSEGV, SIG_DFL);
151
- #endif
152
143
  }
153
144
 
154
145
  VALUE oci8_define_class(const char *name, oci8_base_vtable_t *vptr)
@@ -119,6 +119,7 @@ class OCI8
119
119
  end
120
120
 
121
121
  stmt_cache_size = OCI8.properties[:statement_cache_size]
122
+ stmt_cache_size = nil if stmt_cache_size == 0
122
123
 
123
124
  if mode.nil? and cred.nil?
124
125
  # logon by the OCI function OCILogon2().
@@ -1,6 +1,6 @@
1
1
  # properties.rb -- implements OCI8.properties
2
2
  #
3
- # Copyright (C) 2010-2011 KUBO Takehiro <kubo@jiubao.org>
3
+ # Copyright (C) 2010-2012 KUBO Takehiro <kubo@jiubao.org>
4
4
 
5
5
  #
6
6
  class OCI8
@@ -9,7 +9,7 @@ class OCI8
9
9
  :length_semantics => :byte,
10
10
  :bind_string_as_nchar => false,
11
11
  :float_conversion_type => :ruby,
12
- :statement_cache_size => 20,
12
+ :statement_cache_size => 0,
13
13
  }
14
14
 
15
15
  if OCI8.oracle_client_version < OCI8::ORAVER_9_2
@@ -89,7 +89,8 @@ class OCI8
89
89
  # [:statement_cache_size]
90
90
  # (new in 2.1.1)
91
91
  #
92
- # The statement cache size per each session. The default value is 20 statements.
92
+ # The statement cache size per each session. The default size is 0, which
93
+ # means no statement cache, since 2.1.2. It was 20 in 2.1.1.
93
94
  # This feature is available on Oracle 9iR2 or later.
94
95
  # See: http://docs.oracle.com/cd/E11882_01/appdev.112/e10646/oci09adv.htm#i471377
95
96
  #
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-oci8
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-22 00:00:00.000000000 Z
12
+ date: 2012-04-28 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: ! 'ruby-oci8 is a ruby interface for Oracle using OCI8 API. It is available
15
15
  with Oracle8, Oracle8i, Oracle9i, Oracle10g and Oracle Instant Client.
@@ -129,10 +129,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
129
  version: '0'
130
130
  requirements: []
131
131
  rubyforge_project: ruby-oci8
132
- rubygems_version: 1.8.11
132
+ rubygems_version: 1.8.23
133
133
  signing_key:
134
134
  specification_version: 3
135
135
  summary: Ruby interface for Oracle using OCI8 API
136
136
  test_files:
137
137
  - test/test_all.rb
138
- has_rdoc: yard