ruby-oci8-master 2.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. data/ChangeLog +2321 -0
  2. data/Makefile +88 -0
  3. data/NEWS +303 -0
  4. data/README +76 -0
  5. data/VERSION +1 -0
  6. data/dist-files +83 -0
  7. data/doc/api.en.html +527 -0
  8. data/doc/api.en.rd +554 -0
  9. data/doc/api.ja.html +525 -0
  10. data/doc/api.ja.rd +557 -0
  11. data/doc/manual.css +35 -0
  12. data/ext/oci8/.document +18 -0
  13. data/ext/oci8/MANIFEST +18 -0
  14. data/ext/oci8/apiwrap.c.tmpl +182 -0
  15. data/ext/oci8/apiwrap.h.tmpl +61 -0
  16. data/ext/oci8/apiwrap.rb +91 -0
  17. data/ext/oci8/apiwrap.yml +1455 -0
  18. data/ext/oci8/attr.c +105 -0
  19. data/ext/oci8/bind.c +366 -0
  20. data/ext/oci8/connection_pool.c +199 -0
  21. data/ext/oci8/encoding.c +289 -0
  22. data/ext/oci8/env.c +178 -0
  23. data/ext/oci8/error.c +378 -0
  24. data/ext/oci8/extconf.rb +179 -0
  25. data/ext/oci8/lob.c +805 -0
  26. data/ext/oci8/metadata.c +232 -0
  27. data/ext/oci8/object.c +727 -0
  28. data/ext/oci8/oci8.c +1156 -0
  29. data/ext/oci8/oci8.h +574 -0
  30. data/ext/oci8/oci8lib.c +527 -0
  31. data/ext/oci8/ocidatetime.c +484 -0
  32. data/ext/oci8/ocihandle.c +751 -0
  33. data/ext/oci8/ocinumber.c +1612 -0
  34. data/ext/oci8/oraconf.rb +1119 -0
  35. data/ext/oci8/oradate.c +611 -0
  36. data/ext/oci8/oranumber_util.c +352 -0
  37. data/ext/oci8/oranumber_util.h +24 -0
  38. data/ext/oci8/post-config.rb +5 -0
  39. data/ext/oci8/stmt.c +673 -0
  40. data/ext/oci8/thread_util.c +85 -0
  41. data/ext/oci8/thread_util.h +30 -0
  42. data/ext/oci8/win32.c +137 -0
  43. data/lib/.document +1 -0
  44. data/lib/dbd/OCI8.rb +591 -0
  45. data/lib/oci8.rb.in +94 -0
  46. data/lib/oci8/.document +8 -0
  47. data/lib/oci8/bindtype.rb +349 -0
  48. data/lib/oci8/compat.rb +113 -0
  49. data/lib/oci8/connection_pool.rb +99 -0
  50. data/lib/oci8/datetime.rb +611 -0
  51. data/lib/oci8/encoding-init.rb +74 -0
  52. data/lib/oci8/encoding.yml +537 -0
  53. data/lib/oci8/metadata.rb +2132 -0
  54. data/lib/oci8/object.rb +581 -0
  55. data/lib/oci8/oci8.rb +721 -0
  56. data/lib/oci8/ocihandle.rb +425 -0
  57. data/lib/oci8/oracle_version.rb +144 -0
  58. data/lib/oci8/properties.rb +73 -0
  59. data/metaconfig +142 -0
  60. data/pre-distclean.rb +7 -0
  61. data/ruby-oci8.gemspec +63 -0
  62. data/setup.rb +1331 -0
  63. data/test/README +4 -0
  64. data/test/config.rb +122 -0
  65. data/test/test_all.rb +51 -0
  66. data/test/test_appinfo.rb +63 -0
  67. data/test/test_array_dml.rb +333 -0
  68. data/test/test_bind_raw.rb +46 -0
  69. data/test/test_bind_time.rb +178 -0
  70. data/test/test_break.rb +96 -0
  71. data/test/test_clob.rb +82 -0
  72. data/test/test_connstr.rb +81 -0
  73. data/test/test_datetime.rb +582 -0
  74. data/test/test_dbi.rb +366 -0
  75. data/test/test_dbi_clob.rb +53 -0
  76. data/test/test_encoding.rb +100 -0
  77. data/test/test_error.rb +88 -0
  78. data/test/test_metadata.rb +1399 -0
  79. data/test/test_oci8.rb +434 -0
  80. data/test/test_oracle_version.rb +70 -0
  81. data/test/test_oradate.rb +256 -0
  82. data/test/test_oranumber.rb +746 -0
  83. data/test/test_rowid.rb +33 -0
  84. metadata +137 -0
@@ -0,0 +1,2321 @@
1
+ 2011-11-04 KUBO Takehiro <kubo@jiubao.org>
2
+ * lib/oci8/encoding.yml: fix the mapping from Oracle NLS chacacter set
3
+ to ruby encoding to use CP950 and CP951, which are new encodings
4
+ in ruby 1.9.3.
5
+
6
+ 2011-11-04 KUBO Takehiro <kubo@jiubao.org>
7
+ * ext/oci8/ocinumber.c: add a workaround to avoid a gcc internal
8
+ compiler error when using ruby 1.9.2-p290 on ubuntu 11.10 (64bit).
9
+ (reported by Bob Saveland.)
10
+
11
+ 2011-11-04 KUBO Takehiro <kubo@jiubao.org>
12
+ * ext/oci8/extconf.rb, ext/oci8/oci8.c, ext/oci8/oci8.h,
13
+ test/test_datetime.rb, test/test_metadata.rb: fix to pass tests
14
+ on Oracle 9i.
15
+
16
+ 2011-10-29 KUBO Takehiro <kubo@jiubao.org>
17
+ * ext/oci8/error.c, ext/oci8/oci8.c, lib/oci8/object.rb, lib/oci8/oci8.rb:
18
+ reset OCI8#last_error when OCI8#parse or OCI8#exec is called.
19
+ fix bugs added by the last commit but one.
20
+
21
+ 2011-10-29 KUBO Takehiro <kubo@jiubao.org>
22
+ * ext/oci8/oraconf.rb: use RbConfig::CONFIG instead of obsolete
23
+ Config::CONFIG.
24
+
25
+ 2011-10-22 KUBO Takehiro <kubo@jiubao.org>
26
+ * ext/oci8/attr.c, ext/oci8/bind.c, ext/oci8/connection_pool.c,
27
+ ext/oci8/error.c, ext/oci8/lob.c, ext/oci8/metadata.c,
28
+ ext/oci8/object.c, ext/oci8/oci8.c, ext/oci8/oci8.h,
29
+ ext/oci8/oci8lib.c, ext/oci8/ocidatetime.c, ext/oci8/ocihandle.c,
30
+ ext/oci8/ocinumber.c, ext/oci8/stmt.c: add OCI8#last_error and
31
+ OCI8#last_error=. When an exception is raised associated with a
32
+ connection, the exception is set to OCI8#last_error.
33
+ No OCISuccessWithInfo excpetion is raised from now on. It is
34
+ set to OCI8#last_error instead.
35
+
36
+ 2011-10-22 KUBO Takehiro <kubo@jiubao.org>
37
+ * ext/oci8/error.c, test/test_break.rb, test/test_error.rb: change the super
38
+ class of OCINoData from OCIException to OCIError and fix testcases for
39
+ OCIError and its subclasses.
40
+
41
+ 2011-10-22 KUBO Takehiro <kubo@jiubao.org>
42
+ * ext/oci8/lob.c, ext/oci8/oci8.c, ext/oci8/ocinumber.c:
43
+ delete code for Oracle 8 and Oracle 8i.
44
+
45
+ 2011-10-21 KUBO Takehiro <kubo@jiubao.org>
46
+ * ext/oci8/error.c, ext/oci8/oci8.h: refactor OCIException and its
47
+ subclasses. OCIError#codes and OCIError#messages are deleted.
48
+ * test/test_all.rb, test/test_error.rb: add a testcase to check
49
+ OCIException's methods.
50
+
51
+ 2011-10-21 KUBO Takehiro <kubo@jiubao.org>
52
+ * ext/oci8/oraconf.rb: fix checking code whether 'sys/types.h' is
53
+ available for Ubuntu 11.10 where sys/types.h is not right under
54
+ /usr/include.
55
+
56
+ 2011-10-21 KUBO Takehiro <kubo@jiubao.org>
57
+ * ext/oci8/oraconf.rb: remove code to get linker options for Oracle 8
58
+ and Oracle 8i.
59
+
60
+ 2011-10-17 KUBO Takehiro <kubo@jiubao.org>
61
+ * ext/oci8/oraconf.rb: embed a run-time loading path to the extention
62
+ library oci8lib_*.so compiled for not only full clients, but also
63
+ instant clients on Linux and Solaris.
64
+ (suggested by d c and others.)
65
+
66
+ 2011-10-09 KUBO Takehiro <kubo@jiubao.org>
67
+ * ext/oci8/ocidatetime.c, lib/oci8/datetime.rb, lib/oci8/object.rb:
68
+ add OCI8::BindType::OCITimestamp, OCI8::BindType::LocalDateTime,
69
+ OCI8::BindType::UTCDateTime, OCI8::BindType::LocalTime and
70
+ OCI8::BindType::UTCTime. The first is used for internal use.
71
+ The others are used for timestamp (without time zone) datatype.
72
+
73
+ 2011-10-01 KUBO Takehiro <kubo@jiubao.org>
74
+ * ext/oci8/attr.c, ext/oci8/ocidatetime.c, ext/oci8/oradate.c: delete
75
+ subversion keywords.
76
+ * ext/oci8/env.c, ext/oci8/oci8.h, ext/oci8/thread_util.c,
77
+ ext/oci8/thread_util.h: use thread-local errhp not only at ruby 1.9
78
+ and rubinius, but also ruby 1.8 configured with --enable-pthread.
79
+
80
+ 2011-10-01 KUBO Takehiro <kubo@jiubao.org>
81
+ * ext/oci8/bind.c, ext/oci8/connection_pool.c, ext/oci8/lob.c,
82
+ ext/oci8/metadata.c, ext/oci8/object.c, ext/oci8/oci8.c, ext/oci8/oci8.h,
83
+ ext/oci8/oci8lib.c, ext/oci8/ocidatetime.c, ext/oci8/ocihandle.c,
84
+ ext/oci8/ocinumber.c, ext/oci8/oradate.c, ext/oci8/stmt.c:
85
+ rename oci8_*_class to oci8_*_vtable because they correspond to
86
+ virtual method tables (vtable) in C++.
87
+
88
+ 2011-09-30 KUBO Takehiro <kubo@jiubao.org>
89
+ * ext/oci8/apiwrap.c.tmpl, ext/oci8/oci8lib.c, test/test_break.rb:
90
+ clear an executuing thread information in a connection when a SQL
91
+ executions is canceled by Thread#kill or Timeout::timeout.
92
+ (reported by Aaron Qian)
93
+ See: http://rubyforge.org/forum/forum.php?thread_id=50112&forum_id=1078
94
+
95
+ 2011-09-30 KUBO Takehiro <kubo@jiubao.org>
96
+ * ext/oci8/connection_pool.c: run connection-pool cleanup functions
97
+ in a native thread not to block GC.
98
+ * ext/oci8/oci8.c: use xfree() instead of free() to release memory
99
+ allocated by xmalloc().
100
+
101
+ 2011-08-31 KUBO Takehiro <kubo@jiubao.org>
102
+ * ext/oci8/env.c, ext/oci8/extconf.rb, ext/oci8/oci8.c, ext/oci8/oci8.h,
103
+ ext/oci8/oci8lib.c, ext/oci8/thread_util.c, ext/oci8/thread_util.h:
104
+ run connection-cleanup functions in a native thread to correctly
105
+ release connections in GC.
106
+
107
+ 2011-08-27 KUBO Takehiro <kubo@jiubao.org>
108
+ * ext/oci8/oci8.c, ext/oci8/oci8.h: refactoring for prior arrangement to
109
+ properly release garbage sessions.
110
+
111
+ 2011-08-27 KUBO Takehiro <kubo@jiubao.org>
112
+ * ext/oci8/bind.c, ext/oci8/extconf.rb, ext/oci8/lob.c, ext/oci8/object.c,
113
+ ext/oci8/oci8.h, ext/oci8/oci8lib.c, ext/oci8/ocidatetime.c,
114
+ ext/oci8/ocinumber.c, ext/oci8/oradate.c, ext/oci8/stmt.c,
115
+ ext/oci8/xmldb.c: delete unused and unworkable features: dynamic fetch
116
+ and xmldb.
117
+
118
+ 2011-08-27 KUBO Takehiro <kubo@jiubao.org>
119
+ * ext/oci8/bind.c, lib/oci8/bindtype.rb, lib/oci8/properties.rb: add
120
+ OCI8.properties[:length_semantics].
121
+
122
+ 2011-08-23 KUBO Takehiro <kubo@jiubao.org>
123
+ * ext/oci8/oraconf.rb: warn when the Oracle instant client is
124
+ 64-bit on OS X Lion.
125
+
126
+ 2011-08-19 KUBO Takehiro <kubo@jiubao.org>
127
+ * ext/oci8/bind.c, ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/ocinumber.c,
128
+ lib/oci8/properties.rb: Decimal to float and float to decimal conversions
129
+ are done as exactly ruby does by default. The behavior is customizable by
130
+ OCI8.properties[:float_conversion_type].
131
+
132
+ 2011-08-19 KUBO Takehiro <kubo@jiubao.org>
133
+ * ext/oci8/oraconf.rb: fix a bug not to find the OCI library location listed in
134
+ 'ldconfig -p' when LD_LIBRARY_PATH is set.
135
+ (Reported by Edgars Beigarts.)
136
+
137
+ 2011-07-16 KUBO Takehiro <kubo@jiubao.org>
138
+ * ext/oci8/extconf.rb, ext/oci8/oci8.h: fix for Solaris compiler.
139
+ (Reported by Sanjiv Patel.)
140
+
141
+ 2011-07-16 KUBO Takehiro <kubo@jiubao.org>
142
+ * ext/oci8/oraconf.rb: Fix for Oracle 11g solaris-sparc32 instant client.
143
+ The machine type of Oracle 10g solaris-sparc32 instant client was
144
+ sparc but that of oracle 11g is sparc32plus.
145
+ (Reported by Sanjiv Patel.)
146
+
147
+ 2011-06-15 KUBO Takehiro <kubo@jiubao.org>
148
+ * ext/oci8/apiwrap.yml, ext/oci8/bind.c, ext/oci8/oci8.c, ext/oci8/oci8lib.c,
149
+ lib/oci8/bindtype.rb: drop Oracle 8i support.
150
+ * ext/oci8/ocidatetime.c: OCI8::BindType::OCIDate was deleted.
151
+ * lib/oci8/datetime.rb, test/test_datetime.rb: OCI8::BindType::DateTimeViaOCIDate,
152
+ OCI8::BindType::TimeViaOCIDate, OCI8::BindType::DateTimeViaOCITimestampTZ
153
+ and OCI8::BindType::TimeViaOCITimestampTZ were deleted.
154
+
155
+ 2011-06-14 KUBO Takehiro <kubo@jiubao.org>
156
+ * NEWS: add changes between 2.0.5 and 2.0.6.
157
+ * ext/oci8/apiwrap.yml, ext/oci8/lob.c: fix SEGV when freeing a temporary
158
+ LOB during GC on rubinius 1.2.3.
159
+ * ext/oci8/oci8lib.c: revert the exception type from RuntimeError to
160
+ OCIException when a closed OCI handle's method is called.
161
+ It was chaned in 2.0.5 by mistake.
162
+
163
+ 2011-06-12 KUBO Takehiro <kubo@jiubao.org>
164
+ * NEWS: add changes between 2.0.4 and 2.0.5.
165
+
166
+ 2011-06-12 KUBO Takehiro <kubo@jiubao.org>
167
+ * ext/oci8/oci8lib.c: add __declspec(dllexport) to Init_oci8lib(). The mingw32
168
+ gcc compiler doesn't export functions without it if more than one function
169
+ is declared with it.
170
+ * ext/oci8/oraconf.rb: work around for rubinius 1.2.3, which doesn't support
171
+ Array#pack('P').
172
+ * lib/oci8/oci8.rb: fix a bug introduced by the previous commit.
173
+ * ext/oci8/env.c, ext/oci8/extconf.rb, ext/oci8/oci8.c, ext/oci8/oci8.h,
174
+ ext/oci8/oci8lib.c: Use HAVE_RB_THREAD_BLOCKING_REGION instead of
175
+ HAVE_TYPE_RB_BLOCKING_FUNCTION_T. have_type("rb_blocking_function_t", "ruby.h")
176
+ unexpectedly doesn't work on Visual Studio 2010.
177
+
178
+ 2011-06-10 KUBO Takehiro <kubo@jiubao.org>
179
+ * ext/oci8/apiwrap.yml, lib/oci8/oci8.rb: fix for Psych YAML library.
180
+ * ext/oci8/extconf.rb, ext/oci8/oci8.h, ext/oci8/ocihandle.c: fix to
181
+ work with ruby 1.9.3dev.
182
+
183
+ 2011-06-10 KUBO Takehiro <kubo@jiubao.org>
184
+ * ext/oci8/env.c, ext/oci8/oci8.h: Free OCI error handles on the
185
+ native thread termination, not on the ruby thread termination.
186
+ (reported by Jordan Curzon and Aaron Qian)
187
+ See: http://rubyforge.org/forum/forum.php?thread_id=49751&forum_id=1078
188
+
189
+ 2011-02-21 KUBO Takehiro <kubo@jiubao.org>
190
+ * ext/oci8/lob.c, ext/oci8/metadata.c, ext/oci8/oci8.c,
191
+ ext/oci8/oci8.h, ext/oci8/oci8lib.c, ext/oci8/stmt.c:
192
+ fix segmentation fault when calling OCI8::Cursor#[] for
193
+ closed statement object's (reported by Hugo L. Borges)
194
+
195
+ 2011-02-01 KUBO Takehiro <kubo@jiubao.org>
196
+ * ext/oci8/ocidatetime.c, lib/oci8/datetime.rb: rename
197
+ the name of the class to binding timestamp with time zone
198
+ from OCITimestamp to OCITimestampTZ. OCITimestamp will be
199
+ used for timestamp without time zone.
200
+
201
+ 2011-01-30 KUBO Takehiro <kubo@jiubao.org>
202
+ * ext/oci8/oci8.c: fix SEGV which depends on GC order.
203
+ * ext/oci8/oraconf.rb: check Oracle client's cpu type on Solaris as
204
+ on Linux and Mac OS X. change error messages on Mac OS X to suggest
205
+ to set RC_ARCHS=x86_64 when mkmf.log contains messages such as
206
+ 'missing required architecture i386 in file.'
207
+
208
+ 2010-12-26 KUBO Takehiro <kubo@jiubao.org>
209
+ * ext/oci8/ocinumber.c, lib/oci8/bindtype.rb, test/test_oranumber.rb:
210
+ add OraNumber#has_decimal_part? and OCI8::BindType::BasicNumberType.
211
+
212
+ 2010-12-14 KUBO Takehiro <kubo@jiubao.org>
213
+ * dist-files, lib/oci8.rb.in, lib/oci8/.document, lib/oci8/properties.rb:
214
+ add OCI8.properties to get and set ruby-oci8 global setting.
215
+ * ext/oci8/bind.c, lib/oci8/bindtype.rb: fix NCHAR support and add
216
+ OCI8.properties[:bind_string_as_nchar] to control charset form (CHAR or NCHAR)
217
+ when binding string values.
218
+ See: http://rubyforge.org/forum/forum.php?thread_id=48838&forum_id=1078
219
+
220
+ 2010-12-04 KUBO Takehiro <kubo@jiubao.org>
221
+ * ext/oci8/object.c, ext/oci8/bind.c, lib/oci8/object.rb,
222
+ test/test_object.rb: fix a problem to assign NULL bind value
223
+ to object type bind variables.
224
+ (reported by Raimonds Simanovskis)
225
+ * ext/oci8/oraconf.rb: fix for 32-bit ruby compiled on
226
+ x86_64 linux. (reported by Jason Renschler)
227
+ * ext/oci8/oranumber_util.c, test/test_oranumber.rb:
228
+ suppress warning: unknown conversion type character 'h' in format
229
+
230
+ 2010-12-04 KUBO Takehiro <kubo@jiubao.org>
231
+ * VERSION, ext/oci8/encoding.c, ext/oci8/ocihandle.c: change
232
+ the version number to 2.1.
233
+
234
+ 2010-09-18 KUBO Takehiro <kubo@jiubao.org>
235
+ * ext/oci8/win32.c: undefine boolean to pass compilation on
236
+ Cygwin. (reported by Don Hill).
237
+ * lib/oci8/encoding-init.rb, lib/oci8/encoding.yml: add a
238
+ mapping from ZHT16HKSCS to Big5-HKSCS when the latter
239
+ is available in ruby.
240
+
241
+ 2010-09-12 KUBO Takehiro <kubo@jiubao.org>
242
+ * ext/oci8/env.c, ext/oci8/extconf.rb: suppress warning
243
+ 'use "ruby/util.h" instead of bare "util.h".'
244
+ * test/test_break.rb: make tests insensitive to execution timing.
245
+
246
+ 2010-09-10 KUBO Takehiro <kubo@jiubao.org>
247
+ * test/test_array_dml.rb: delete workaround code. It now works
248
+ fine on rubinius head.
249
+
250
+ 2010-09-07 KUBO Takehiro <kubo@jiubao.org>
251
+ * ext/oci8/extconf.rb, ext/oci8/oci8lib.c: Don't use
252
+ rb_set_end_proc() when it isn't available.
253
+ * ext/oci8/extconf.rb, lib/oci8.rb.in: add RUBY_ENGINE to
254
+ the C extension library name when RUBY_ENGINE is not "ruby."
255
+ * ext/oci8/oci8.c: fix for ruby 1.8.
256
+ * test/test_clob.rb: change a temporarily used table name for test
257
+ from 'test_clob' to 'test_table.'
258
+ * test/test_metadata.rb: delete ruby 1.9 feature to work on ruby 1.8.
259
+ * test/config.rb: add a support function 'drop_type' for future test
260
+ cases.
261
+ * test/test_array_dml.rb: skip test_array_insert1 on rubinius.
262
+ This will be enabled after the rubinius issue #445 is fixed.
263
+
264
+ 2010-09-05 KUBO Takehiro <kubo@jiubao.org>
265
+ * ext/oci8/extconf.rb, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
266
+ ext/oci8/ocinumber.c: use rb_intern() to retrieve IDs of '+', '-',
267
+ '*' and '/' on rubinus.
268
+ * ext/oci8/oradate.c: use rb_call_super() instead of
269
+ rb_obj_init_copy(), which is not declared in rubinus.
270
+
271
+ 2010-08-28 KUBO Takehiro <kubo@jiubao.org>
272
+ * ext/oci8/env.c: fix for rubinius.
273
+
274
+ 2010-08-28 KUBO Takehiro <kubo@jiubao.org>
275
+ * ext/oci8/env.c, ext/oci8/error.c, ext/oci8/extconf.rb, ext/oci8/oci8.c,
276
+ ext/oci8/oci8.h, oci8/oci8lib.c, ext/oci8/ocinumber.c: fix for rubinius.
277
+ Note that this is not enough to compile ruby-oci8 on it.
278
+
279
+ 2010-08-23 KUBO Takehiro <kubo@jiubao.org>
280
+ * lib/oci8/object.rb: fix an error when SDO_GEOMETRY is used
281
+ and $VERBOSE is set.
282
+ * test/test_metadata.rb: (1) fix errors caused by String + Symbol.
283
+ They worked on ruby 1.9.2 but not on 1.8.7 and 1.9.2.
284
+ (2) replace "assert_equal(class, object.class)" with
285
+ "assert_instance_of(class, object)."
286
+ * test/test_oranumber.rb: change a testcase for ruby 1.9.2.
287
+ Math::atan2(0, 0) behaviour was changed in 1.9.2.
288
+
289
+ 2010-08-15 KUBO Takehiro <kubo@jiubao.org>
290
+ * ext/oci8/lob.c, ext/oci8/object.c, ext/oci8/oci8.h,
291
+ lib/oci8/object.rb: support LOB datatypes in Oracle objects.
292
+ (reported by Michael Sexton)
293
+ * ext/oci8/ocihandle.c: fix SEGV in finalizer when temporary LOBs
294
+ are used. This bug was introduced by the previous commit.
295
+
296
+ 2010-08-15 KUBO Takehiro <kubo@jiubao.org>
297
+ * ext/oci8/apiwrap.yml, ext/oci8/lob.c: fix memory leak when temporary
298
+ lobs are used.
299
+
300
+ 2010-06-15 KUBO Takehiro <kubo@jiubao.org>
301
+ * lib/oci8/metadata.rb: rename OCI8::Metadata::Column#type_string
302
+ to #data_type_string and add an alias from the former to the
303
+ latter. fix a return value of OCI8::Metadata::Column#data_type_string
304
+ of REF datatype.
305
+ * test/test_metadata.rb: rename a test method test_metadata to
306
+ test_column_metadata and do refactoring to make test data
307
+ reusable for other metadata classes in future.
308
+
309
+ 2010-06-13 KUBO Takehiro <kubo@jiubao.org>
310
+ * ext/oci8/metadata.c: fix a private method
311
+ OCI8::Metadata::Base#__param to return nil when the specified
312
+ attribute is NULL.
313
+ * lib/oci8/metadata.rb: add rdoc comment of OCI8::Metadata::Type
314
+ and fix other typos. change OCI8::Metadata::Schema#all_objects
315
+ not to raise "ORA-24372: invalid object for describe" by
316
+ invalid objects.
317
+ * test/test_metadata.rb: add tests for OCI8::Metadata::Type.
318
+
319
+ 2010-06-11 KUBO Takehiro <kubo@jiubao.org>
320
+ * lib/oci8/metadata.rb: rename OCI8::Metabase::ProcBase to
321
+ OCI8::Metabase::Subprogram, add #is_standalone? and change
322
+ #obj_id, #obj_name and #obj_schema to work for packaged
323
+ subprograms. Fix rdoc comments.
324
+ * test/test_metadata.rb: add tests for OCI8::Metadata::Function,
325
+ OCI8::Metadata::Procedure and OCI8::Metadata::Package.
326
+
327
+ 2010-06-10 KUBO Takehiro <kubo@jiubao.org>
328
+ * lib/oci8/metadata.rb: revice rdoc comments of OCI8::Metadata::Table
329
+ and OCI8::Metadata::View and delete some unavailable methods
330
+ of OCI8::Metadata::View.
331
+ * test/test_metadata.rb: add tests for OCI8::Metadata::Table and
332
+ OCI8::Metadata::View.
333
+ * README: change the description about the privilege to run tests.
334
+ 'create view' privilege is needed to test OCI8::Metadata::View.
335
+
336
+ 2010-06-01 KUBO Takehiro <kubo@jiubao.org>
337
+ * ext/oci8/extconf.rb, ext/oci8/oci8.c, lib/oci8.rb.in: move
338
+ the location where OCI8::VERSION is defined from oci8.rb to
339
+ oci8lib_*.so. Add code to check the version of oci8.rb and
340
+ oci8lib_*.so.
341
+ * test/test_clob.rb: create test_clob table while executing
342
+ tests.
343
+ * README: delete the instruction to create test_clob before
344
+ executing tests.
345
+
346
+ 2010-05-17 KUBO Takehiro <kubo@jiubao.org>
347
+ * ext/oci8/metadata.c: delete OCI8::Metadata::Base's methods which
348
+ get and set OCI handle attributes.
349
+ * ext/oci8/ocihandle.c: add OCIHandle#attr_get_oradate.
350
+ * lib/oci8/metadata.rb: use OCIHandle#attr_get_* instead of
351
+ obsolete OCI8::Metadata::Base#__*.
352
+
353
+ 2010-05-07 KUBO Takehiro <kubo@jiubao.org>
354
+ * dist-files, ext/oci8/.document, ext/oci8/apiwrap.yml,
355
+ ext/oci8/connection_pool.c, ext/oci8/extconf.rb,ext/oci8/oci8.c,
356
+ ext/oci8/oci8.h, ext/oci8/oci8lib.c, lib/oci8.rb.in,
357
+ lib/oci8/.document, lib/oci8/connection_pool.rb, lib/oci8/oci8.rb,
358
+ lib/oci8/ocihandle.rb: add a new feature OCI8::ConnectionPool.
359
+
360
+ 2010-05-04 KUBO Takehiro <kubo@jiubao.org>
361
+ * ext/oci8/bind.c: fix a bug that a string is bound to RAW,
362
+ its encoding was convertd to OCI.encoding.
363
+ * ext/oci8/encoding.c: delete an unused strcuture.
364
+ * ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/ocihandle.c,
365
+ lib/oci8/oci8.rb: do refactering to make it easy to
366
+ implement new authentication features.
367
+ * lib/oci8.rb.in, lib/oci8/metadata.rb, lib/oci8/ocihandle.rb:
368
+ move constant definitions from metadata.rb to ocihandle.rb.
369
+
370
+ 2010-05-03 KUBO Takehiro <kubo@jiubao.org>
371
+ * ext/oci8/bind.c, ext/oci8/oci8.h, lib/oci8/bindtype.rb:
372
+ change the length semantics from byte to char for string
373
+ bind variables when the Oracle client is 9i or upper.
374
+
375
+ 2010-05-02 KUBO Takehiro <kubo@jiubao.org>
376
+ * lib/oci8/encoding-init.rb: fix for zero-length NLS_LANG.
377
+ fix AL32UTF8's nls_ratio.
378
+ * ext/oci8/stmt.c: fix SEGV when an exception is raised in
379
+ post_bind_hook().
380
+
381
+ 2010-04-27 KUBO Takehiro <kubo@jiubao.org>
382
+ * ext/oci8/lob.c, ext/oci8/object.c, ext/oci8/oci8.h,
383
+ ext/oci8/stmt.c: refactor code to prepare character length
384
+ semantics support.
385
+
386
+ 2010-04-27 KUBO Takehiro <kubo@jiubao.org>
387
+ * ext/oci8/encoding.c: add new methods OCI8.nls_ratio
388
+ and OCI8.nls_ratio=. Comments for rdoc are added and
389
+ revised for OCI8#charset_name2id, OCI8#charset_name2id=,
390
+ OCI8.encoding and OCI8.encoding=.
391
+ * lib/oci8.rb.in, lib/oci8/encoding-init.rb: set
392
+ OCI8.nls_ratio on initialization.
393
+
394
+ 2010-04-23 KUBO Takehiro <kubo@jiubao.org>
395
+ * ext/oci8/oranumber_util.c, test/test_oranumber.rb:
396
+ add limitted support for OraNumber's positive and negative
397
+ infinity. They are converted to '~' and '-~' respectively
398
+ as described in <URL:http://www.ixora.com.au/notes/infinity.htm>.
399
+
400
+ 2010-04-23 KUBO Takehiro <kubo@jiubao.org>
401
+ * Makefile: fix wrong dependencies in Makefile when running
402
+ 'make -jNNN (where NNN >= 2)'
403
+ (contributed by Alyano Alyanos. See bug #28129 on rubyforge.)
404
+
405
+ 2010-03-07 KUBO Takehiro <kubo@jiubao.org>
406
+ * ext/oci8/ocinumber.c: fix to compile on HP-UX.
407
+ Duplicate const qualifiers prevented HP-UX cc from compiling.
408
+ (reported by Sebastian YEPES)
409
+
410
+ 2010-02-28 KUBO Takehiro <kubo@jiubao.org>
411
+ * NEWS: add changes between 2.0.3 and 2.0.4.
412
+ * VERSION: change the version to 2.0.4.
413
+ * ext/oci8/stmt.c: fix segmentation fault when OCI8::Cursor#fetch
414
+ is called prior to OCI8::Cursor#exec.
415
+ * ext/oci8/oci8.c: minor fix in rdoc comment.
416
+
417
+ 2010-02-27 KUBO Takehiro <kubo@jiubao.org>
418
+ * lib/oci8/datetime.rb: fix a problem that fractional seconds are lost
419
+ when Time value is bound to TIMESTAMP.
420
+ (reported by Raimonds Simanovskis)
421
+
422
+ 2010-02-27 KUBO Takehiro <kubo@jiubao.org>
423
+ * ext/oci8/error.c, ext/oci8/extconf.rb, ext/oci8/oci8.h: fix for
424
+ old Oracle versions, which lack declarations of OCIMsg, oraub8,
425
+ orasb8 and OCI_DURATION_PROCESS.
426
+ * ext/oci8/ocihandle.c: fix for mingw compiler.
427
+
428
+ 2010-02-27 KUBO Takehiro <kubo@jiubao.org>
429
+ * ext/oci8/apiwrap.yml, ext/oci8/error.c, ext/oci8/oci8.h,
430
+ ext/oci8/ocinumber.c: fix for Oracle 8.0 client, which doesn't
431
+ have OCIMessageOpen() and OCIMessageGet().
432
+ * ext/oci8/oci8.c: add a new method OCI8.error_message to get
433
+ a error message which depends on NLS_LANGUAGE.
434
+
435
+ 2010-02-09 KUBO Takehiro <kubo@jiubao.org>
436
+ * dist-files: add ext/oci8/oranumber_util.c and
437
+ ext/oci8/oranumber_util.h.
438
+ (reported by Raimonds Simanovskis)
439
+
440
+ 2010-02-07 KUBO Takehiro <kubo@jiubao.org>
441
+ * ext/oci8/ocinumber.c, ext/oci8/oranumber_util.c,
442
+ ext/oci8/oranumber_util.h: change the declaration of
443
+ oranumber_to_str() to prevent buffer overflow by
444
+ unexpected invalid Oracle number internal data.
445
+
446
+ 2010-02-07 KUBO Takehiro <kubo@jiubao.org>
447
+ * ext/oci8/error.c, ext/oci8/oci8.h: add oci8_raise_by_msgno()
448
+ to retrieve a Oracle error message which depends on NLS_LANGUAGE.
449
+ * ext/oci8/oranumber_util.c, ext/oci8/oranumber_util.h,
450
+ ext/oci8/extconf.rb: add handwritten conversion functions from
451
+ OCINumber internal representation to string and vice versa.
452
+ * ext/oci8/ocinumber.c: 1. use handwritten conversion functions
453
+ instead of OCI functions to convert OraNumber to string
454
+ and vice varse. 2. add OraNumber#dump.
455
+ * test/test_oranumber.rb: add test cases to check conversion from
456
+ OraNumber to string and vice varse.
457
+
458
+ 2010-02-02 KUBO Takehiro <kubo@jiubao.org>
459
+ * ext/oci8/ocinumber.c: fix to support NUMBERS with scale larger
460
+ than 38 by using scientific number notation to convert OraNumber
461
+ to BigDecimal. OraNumber#to_i is also fixed.
462
+ (reported by Raimonds Simanovskis)
463
+
464
+ 2010-01-24 KUBO Takehiro <kubo@jiubao.org>
465
+ * ext/oci8/error.c: Use OCIErrorGet() to retrieve the error message
466
+ when the OCI return code is OCI_NO_DATA.
467
+ (reported by Raimonds Simanovskis)
468
+
469
+ 2009-12-06 KUBO Takehiro <kubo@jiubao.org>
470
+ * ext/oci8/object.c: 1. fix segv when GC starts while initializing
471
+ a bind object for object type. (reported by Remi Gagnon)
472
+ 2. fix memory leak about 30 bytes per one bind object for object
473
+ type.
474
+
475
+ 2009-11-03 KUBO Takehiro <kubo@jiubao.org>
476
+ * ext/oci8/object.c: fix segv when binding a collection of string.
477
+ (reported by Raimonds Simanovskis)
478
+
479
+ 2009-10-26 KUBO Takehiro <kubo@jiubao.org>
480
+ * NEW: fix typo.
481
+ * dist-files, ext/oci8/.document: add ocihandle.c.
482
+ * ext/oci8/ocihandle.c: add private methods OCIHandle#attr_get_*,
483
+ OCIHandle#attr_set_* and their rdoc comments.
484
+
485
+ 2009-10-23 KUBO Takehiro <kubo@jiubao.org>
486
+ * ext/oci8/extconf.rb, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
487
+ ext/oci8/ocihandle.c: add ocihandle.c and move OCIHandle
488
+ definitions from oci8lib.c to the file.
489
+
490
+ 2009-10-21 KUBO Takehiro <kubo@jiubao.org>
491
+ * NEWS: add changes between 2.0.2 and 2.0.3.
492
+ * VERSION, Makefile: change the version to 2.0.3.
493
+ * ext/oci8/oci8.c: fix typo.
494
+ * ext/oci8/apiwrap.yml: add OCIIntervalFromText() prototype.
495
+
496
+ 2009-10-18 KUBO Takehiro <kubo@jiubao.org>
497
+ * ext/oci8/ocidatetime.c: Add workarounds for Oracle 9.2.0.1.
498
+ * lib/oci8/datetime.rb: Change the unit of OCI8::BindType::IntervalDS
499
+ from day to second. Add OCI8::BindType::IntervalDS.unit and
500
+ OCI8::BindType::IntervalDS.unit=.
501
+ * test/test_datetime.rb: Fix tests for the above changes.
502
+
503
+ 2009-10-17 KUBO Takehiro <kubo@jiubao.org>
504
+ * ext/oci8/oci8.c: Add a workaround for Oracle 9.2.0.1 when clearing
505
+ a client identifier.
506
+ * ext/oci8/oci8lib.c: Fix a segv when canceling a non-blocking
507
+ execution.
508
+ * test_appinfo.rb: Fix temporarily to prevent a segmentation fault
509
+ under Oracle 9.2.0.1.
510
+ * test/test_oci8.rb: Fix temporarily to prevent a segmentation fault
511
+ under Oracle 9.2.0.1. Fix for BigDecimal bundled in ruby 1.8.5.
512
+ * test/test_oranumber.rb: Fix for Oracle 9.2. Comparing float values
513
+ by <=> is too sensitive to use it in tests.
514
+
515
+ 2009-10-06 KUBO Takehiro <kubo@jiubao.org>
516
+ * ext/oci8/ocinumber.c: Add a global function OraNumber(obj) as a
517
+ shortcut of OraNumber.new(obj) as Rational and BigDecimal do.
518
+ Changes the return type of the four rules of arithmetic;
519
+ addition, subtraction, multiplication and division. It was
520
+ OraNumber, but now it depends on the operand.
521
+ * lib/oci8/bindtype.rb: Add OCI8::BindType::BigDecimal and
522
+ OCI8::BindType::Rational. Change the default data type for
523
+ number column which fit neither Integer nor Float from
524
+ OraNumber to BigDecimal.
525
+ * lib/oci8/oci8.rb: Fix for OCI8::BindType::Mapping to accept
526
+ a class name instead of the class object to support
527
+ OCI8::BindType::BigDecimal and OCI8::BindType::Rational without
528
+ requiring 'bigdecimal' and 'rational'.
529
+ * spec/oranumber_spec.rb: Add a spec file for OraNumber arithmetic.
530
+ * test/test_oci8.rb: Add tests for OCI8::BindType::BigDecimal and
531
+ OCI8::BindType::Rational.
532
+
533
+ 2009-10-04 KUBO Takehiro <kubo@jiubao.org>
534
+ * ext/oci8/oci8.c: Add constants missing in Oracle client prior to 10g.
535
+ * ext/oci8/oraconf.rb:
536
+ 1. Fix for ruby 1.8.5 with Oracle 8.x which needs some object
537
+ files to link with.
538
+ (reported by Jayson Cena)
539
+ 2. Revise the error message under the sudo environemnt.
540
+ 3. Print not only error message but also the error backtrace when
541
+ oraconf.rb fails.
542
+ * lib/oci8/object.rb: Fix to accept nil attribute in object type's
543
+ constructors. This works only for simple data types such as number,
544
+ string. But it doesn't for complex types such as object types.
545
+ (requested by Remi Gagnon)
546
+ * spec/object_type_spec.rb: Add a test for object type's constructors.
547
+
548
+ 2009-09-22 KUBO Takehiro <kubo@jiubao.org>
549
+ * lib/oci8/.document, lib/oci8/datetime.rb: 1. Add
550
+ OCI8::BindType.default_timezone and OCI8::BindType.default_timezone=.
551
+ 2. Change the logic to convert to Time and DateTime to adapt DST.
552
+ 3. Use new features of Time class in ruby 1.9.2 if they are available.
553
+ 4. Add rdoc comments.
554
+ * spec/fetch_datetime8_spec.rb, spec/fetch_datetime_spec.rb,
555
+ spec/fetch_time8_spec.rb, spec/fetch_time_spec.rb,
556
+ spec/spec_helper.rb: Add tests for OCI8::BindType::DateTime and
557
+ OCI8::BindType::Time.
558
+
559
+ 2009-09-13 KUBO Takehiro <kubo@jiubao.org>
560
+ * ext/oci8/lob.c, ext/oci8/oci8.h, test/test_clob.rb: Change
561
+ OCI8::LOB#write to accept an object which is not a String and
562
+ doesn't respond to 'to_str' as IO#write does.
563
+ (requested by Christopher Jones)
564
+
565
+ 2009-09-12 KUBO Takehiro <kubo@jiubao.org>
566
+ * ext/oci8/extconf.rb, lib/oci8.rb.in: Fixed for ruby 1.9.2 preview1.
567
+ (pointed by Raimonds Simanovskis)
568
+
569
+ 2009-09-12 KUBO Takehiro <kubo@jiubao.org>
570
+ * ext/oci8/oraconf.rb: Fixed to compile for AIX instant clients.
571
+ (reported by Kazuya Teramoto)
572
+
573
+ 2009-06-09 KUBO Takehiro <kubo@jiubao.org>
574
+ * ext/oci8/oci8lib.c: Change the initial polling interval of
575
+ non-blocking mode for ruby 1.8 from 100 msec to 10 msec, which
576
+ is same with ruby-oci8 1.0.
577
+ * ext/oci8/oci8.c: Change the default setting of non-blocking mode
578
+ for ruby 1.9 to true. Revise rdoc comments.
579
+
580
+ 2009-06-07 KUBO Takehiro <kubo@jiubao.org>
581
+ * ext/oci8/oci8.c: revise rdoc comments.
582
+
583
+ 2009-06-05 KUBO Takehiro <kubo@jiubao.org>
584
+ * Makefile: check rdoc version when making rdoc documentation.
585
+ The rdoc version must be 2.4.
586
+ * ext/oci8/.document, ext/oci8/oci8.c, lib/.document,
587
+ lib/oci8/.document, lib/oci8/oci8.rb: fix rdoc comments a bit.
588
+
589
+ 2009-05-24 KUBO Takehiro <kubo@jiubao.org>
590
+ * ext/oci8/object.c, lib/oci8/datetime.rb, lib/oci8/object.rb:
591
+ add DATE datatype support in object types.
592
+
593
+ 2009-05-19 KUBO Takehiro <kubo@jiubao.org>
594
+ * ext/oci8/bind.c: delete OCI8::BindType::Fixnum.
595
+ * lib/oci8/compat.rb: add OCI8::BindType::Fixnum as an alias
596
+ of OCI8::BindType::Integer.
597
+ * ext/oci8/extconf.rb: change extconf.rb's argument value of
598
+ '--with-oracle-version' to accept dotted version such as
599
+ '9.2.0.'
600
+ * ext/oci8/oraconf.rb: When extconf.rb fails and it is run
601
+ by sudo command, change the error message to notice that
602
+ 'sudo' may unset environment variables.
603
+
604
+ 2009-05-18 KUBO Takehiro <kubo@jiubao.org>
605
+ * ext/oci8/oci8.c: revise rdoc comments for OCI8#ping and
606
+ OCI8#client_identifier=. Add OCI8#module=, OCI8#action= and
607
+ OCI8#client_info.
608
+ * test/test_appinfo.rb: add test cases for OCI8#module=,
609
+ OCI8#action= and OCI8#client_info.
610
+
611
+ 2009-05-17 KUBO Takehiro <kubo@jiubao.org>
612
+ * NEWS: add changes between 2.0.1 and 2.0.2.
613
+ * VERSION: change version to 2.0.2.
614
+ * dist-files: append newly added files.
615
+ * ext/oci8/oci8.c: fix OCI8#ping not to raise an exception
616
+ when OCIPing() failed. It should returns true or false.
617
+ * ext/oci8/oci8lib.c: Memory allocated by xmalloc() should be
618
+ freed by xfree().
619
+
620
+ 2009-05-17 KUBO Takehiro <kubo@jiubao.org>
621
+ * ext/oci8/error.c, ext/oci8/extconf.rb, ext/oci8/oci8.h:
622
+ fix the native library name in error messages from oci8lib.so
623
+ to oci8lib_18.so or oci8lib_191.so.
624
+ * ext/oci8/ocinumber.c, test/test_oranumber.rb: fix OraNumber.new
625
+ to accept BigDecimal and Rational.
626
+ * ext/oci8/bind.c, test/test_oci8.rb: implicitly convert the
627
+ specified number to Float when the bind handle is for Float.
628
+ * ext/oci8/attr.c: fix for Oracle client which doesn't have
629
+ OCIRowidToChar().
630
+ * ext/oci8/oci8.c, test/test_appinfo.rb, test/test_all.rb, dist-files:
631
+ add new methods OCI8#ping and OCI8#client_identifier=.
632
+ add test cases.
633
+ * ext/oci8/oci8lib.c: fix a bug for Oracle 8.0.
634
+ * lib/oci8/oci8.rb: add a convenient method OCI8#select_one
635
+ to fetch one row.
636
+
637
+ 2009-04-18 KUBO Takehiro <kubo@jiubao.org>
638
+ * lib/oci8/oci8.rb: move OCI8::BindType module to bindtype.rb.
639
+ * lib/oci8/bindtype.rb: added. This defines OCI8::BindType.
640
+ * lib/oci8.rb.in: require 'oci8/bindtype.rb'
641
+
642
+ 2009-04-17 KUBO Takehiro <kubo@jiubao.org>
643
+ * ext/oci8/encoding.c, ext/oci8/lob.c, ext/oci8/metadata.c,
644
+ ext/oci8/oci8.c: suppress "warning C4761: integral size mismatch
645
+ in argument; conversion supplied" when compiled by Visual C++.
646
+
647
+ 2009-04-17 KUBO Takehiro <kubo@jiubao.org>
648
+ * ext/oci8/apiwrap.yml, ext/oci8/env.c, ext/oci8/extconf.rb,
649
+ ext/oci8/oci8.h, ext/oci8/oci8lib.c: OCIEnv is initialized
650
+ when it is needed. This makes a basis to enable an event
651
+ notification after "require 'oci8'."
652
+ * test/test_all.rb: fix a bug added four days ago.
653
+
654
+ 2009-04-14 KUBO Takehiro <kubo@jiubao.org>
655
+ * ext/oci8/oci8.h, ext/oci8/oci8lib.c, ext/oci8/ocinumber.c,
656
+ ext/oci8/metadata.c, ext/oci8/object.c: pass an OCIError to
657
+ OraNumber functions if it can. (This is the first step to
658
+ delay OCIEnv initialization.)
659
+
660
+ 2009-04-14 KUBO Takehiro <kubo@jiubao.org>
661
+ * ext/oci8/oraconf.rb: Gets ORACLE_HOME from the Windows regitry
662
+ by enumerating subkeys of \\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE.
663
+
664
+ 2009-04-12 KUBO Takehiro <kubo@jiubao.org>
665
+ * lib/oci8/oci8.rb, test/test_encoding.rb: The string bind length should
666
+ be got from the string bytesize converted to OCI8.encoding.
667
+
668
+ 2009-04-12 KUBO Takehiro <kubo@jiubao.org>
669
+ * ext/oci8/lob.c: OCI8::BLOB#read should return ASCII-8BIT.
670
+ OCI8::BLOB#write should not convert the specified string
671
+ to OCI8.encoding.
672
+ * test/test_dbi.rb: suppress warning: "shadowing outer local
673
+ variable - i"
674
+ * test/test_all.rb, test/test_encoding.rb: add string encoding
675
+ tests.
676
+
677
+ 2009-04-12 KUBO Takehiro <kubo@jiubao.org>
678
+ * lib/dbd/OCI8.rb: fix DBI::DBD::OCI8::BindType::DBIStatementHandle
679
+ to pass a newly added sanity check in dbi 0.4.1.
680
+ (reported by Dirk Herzhauser)
681
+ * test/test_all.rb: fix to use dbi installed as a rubygem.
682
+
683
+ 2009-04-04 KUBO Takehiro <kubo@jiubao.org>
684
+ * ext/oci8/bind.c: fix an error when executing "select NULL from dual".
685
+ http://rubyforge.org/forum/forum.php?thread_id=32468&forum_id=1078
686
+ (contributed by Raimonds Simanovskis)
687
+
688
+ 2009-03-24 KUBO Takehiro <kubo@jiubao.org>
689
+ * ext/oci8/extconf.rb, ext/oci8/oci8.h, ext/oci8/oraconf.rb:
690
+ fix a problem when compiling with Oracle 8.0.
691
+ (reported by Axel Reinhold)
692
+
693
+ 2009-03-24 KUBO Takehiro <kubo@jiubao.org>
694
+ * ext/oci8/extconf.rb, ext/oci8/oci8.h: fix a problem when
695
+ compiling with Oracle 9.2.
696
+ (reported by Axel Reinhold)
697
+ * ext/oci8/apiwrap.yml: suppres warnings 'discards qualifiers
698
+ from pointer target type' when compiling with Oracle 8i.
699
+
700
+ 2009-03-17 KUBO Takehiro <kubo@jiubao.org>
701
+ * NEWS: add a new file.
702
+ * VERSION: change version to 2.0.1.
703
+ * Makefile: add targets to make a binary gem for Windows.
704
+ * dist-files: add NEWS
705
+ * ext/oci8/extconf.rb, lib/oci8.rb.in: rename oci8lib.so
706
+ to oci8lib_18.so and oci8lib_191.so. The renamed name
707
+ depends on the ruby version.
708
+ * lib/oci8/datetime.rb: fix the fetched type for date column
709
+ when using Oracle 8.x.
710
+ * ruby-oci8.gemspec: fix to make a binary gem which contains
711
+ both oci8lib_18.so and oci8lib_191.so.
712
+
713
+ 2009-03-17 KUBO Takehiro <kubo@jiubao.org>
714
+ * ext/oci8/apiwrap.yml: add prototypes for OCIServerVersion() and
715
+ OCIServerRelease().
716
+ * ext/oci8/oci8.c: (1) add a private method OCI8#oracle_server_vernum,
717
+ which returns Oracle server version number.
718
+ (2) fix a class method OCI8.oracle_client_vernum when using Oracle
719
+ client 10.1 or lower.
720
+ * lib/oci8/datetime.rb: fix year information when fetching a date
721
+ whose year is between A.D. 1 and A.D. 139.
722
+ * lib/oci8/oci8.rb: (1) add OCI8#oracle_server_version.
723
+ * (2) change the default data type for timestamp with time zone
724
+ from DateTime to Time.
725
+
726
+ 2009-03-11 KUBO Takehiro <kubo@jiubao.org>
727
+ * oraconf.rb: fix big/little endian checking problem on Mac OS X ppc.
728
+ (contributed by unknown. See: Bug ID 24284 on rubyforge.)
729
+
730
+ 2009-02-15 KUBO Takehiro <kubo@jiubao.org>
731
+ * ext/oci8/ocidatetime.c: fix array DML and DateTime object problem.
732
+ OCI8::Cursor#bind_param_array(key, array_of_datetime) didn't
733
+ work. (Reported by Leoš Bitto)
734
+ * test/test_array_dml.rb: fix to test array DML and DateTime object.
735
+
736
+ 2009-02-10 KUBO Takehiro <kubo@jiubao.org>
737
+ * ext/oci8/bind.c, ext/oci8/oci8.h, ext/oci8/stmt.c: fix array DML
738
+ and DateTime object problem. It didn't work with bind classes
739
+ which overwrite 'set' and 'get'. (Reported by Leoš Bitto)
740
+ * test/test_array_dml.rb: fix to test array DML and DateTime object.
741
+
742
+ 2009-02-08 KUBO Takehiro <kubo@jiubao.org>
743
+ * VERSION: change version from 2.0-svn to 2.0.0 to pass ruby
744
+ gem's version string validator.
745
+ * ruby-oci8.gemspec: added.
746
+ * ext/oci8/extconf.rb, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
747
+ ext/oci8/win32.c: 1. add OCI8::Win32Util.dll_path to
748
+ retrieve Oracle home location from the OCI.DLL location.
749
+ 2. add OCI8::Win32Util.enum_homes to get Oracle home and
750
+ NLS_LANG pairs in Windows registry.
751
+ * lib/oci8/encoding-init.rb: get NLS_LANG from Windows registry
752
+ if environment variable NLS_LANG is not set.
753
+ * ext/oci8/oraconf.rb: Change the output encoding of sqlplus to
754
+ US7ASCII by setting NLS_LANG. If the output encoding is
755
+ incompatible with the default external encoding, it raises
756
+ 'invalid byte sequence' when using ruby 1.9.
757
+ * lib/oci8/datetime.rb: fix for ruby 1.9. Ruby 1.9 Time
758
+ class's resolution is nanosecond.
759
+ * dist-files: add dist-files, ruby-oci8.gemspec and ext/oci8/win32.c.
760
+
761
+ 2009-02-06 KUBO Takehiro <kubo@jiubao.org>
762
+ * setup.rb: 1. install lib/**/*.yml flies also.
763
+ (It is pointed by Nate Wiger that encoding.yml is not installed.)
764
+ 2. exclude .svn or .git directories on installation.
765
+ * lib/oci8/oci8.rb: A private method define_a_column was renamed
766
+ to define_one_column to prevent activerecord oracle adapter
767
+ and oracle enhanced adapter from redefining the method.
768
+ * dist-files: add newly added file names which must be included
769
+ in gem or tar.gz packages.
770
+
771
+ 2009-02-01 KUBO Takehiro <kubo@jiubao.org>
772
+ * lib/dbd/OCI8.rb: add code for ruby-dbi 0.4 type conversion.
773
+ * test/test_dbi.rb: suppress deprecated warnings while running
774
+ test_bind_dbi_data_type.
775
+ * test/test_dbi_clob.rb: fix a problem when running this
776
+ file directly.
777
+
778
+ 2009-01-31 KUBO Takehiro <kubo@jiubao.org>
779
+ * ext/oci8/oraconf.rb: fix for Oracle 11.1.0.7.0 instant
780
+ client rpm package. The directory tree is a bit different
781
+ with that of 11.1.0.6.0 or earlier.
782
+ (reported by Luis Parravicini.)
783
+
784
+ 2009-01-31 KUBO Takehiro <kubo@jiubao.org>
785
+ * lib/DBD/OCI8/OCI8.rb: renamed to lib/dbd/OCI8.rb.
786
+ * lib/dbd/OCI8.rb: 1. renamed from lib/DBD/OCI8/OCI8.rb
787
+ 2. fix USED_DBD_VERSION from 0.2 to 0.4.
788
+ 3. add DBI::DBD::OCI8.driver_name
789
+ (changes for ruby-dbi 0.4 contributed by James Cao.)
790
+
791
+ 2009-01-13 KUBO Takehiro <kubo@jiubao.org>
792
+ * lib/oci8.rb.in, lib/oci8/encoding-init.rb: (ruby 1.9) set
793
+ OCI8.encoding by querying NLS_LANG. If DEFAULT_OCI8_ENCODING
794
+ is defined, use it by default.
795
+ * lib/oci8/encoding.yml: (ruby 1.9) add a new file containing
796
+ mapping table from Oracle characterset name to Ruby encoding
797
+ name.
798
+
799
+ 2009-01-11 KUBO Takehiro <kubo@jiubao.org>
800
+ * ext/oci8/encoding.c: (ruby 1.9) add OCI8.encoding and
801
+ OCI8.encoding= to get and set the encoding of the Oracle
802
+ library.
803
+ * ext/oci8/oci8.h: (ruby 1.9) add macros OCI8StringValue
804
+ and OCI8SafeStringValue which convert the string encoding
805
+ to Oracle librarie's encoding.
806
+ * ext/oci8/oci8.c: OCI8.new raise a SecurityError when specified
807
+ connect string is tainted and $SAFE >= 1.
808
+ * ext/oci8/stmt.c: OCI8#parse raise a SecurityError when specified
809
+ SQL statemenet is tainted and $SAFE >= 1.
810
+ * ext/oci8/metadata.c: OCI8#describe_* raise a SecurityError
811
+ when the object name to be described is tainted and $SAFE >= 1.
812
+ * ext/oci8/lob.c: OCI8::BFILE.new, OCI8::BFILE#dir_alias= and
813
+ OCI8::BFILE#filename= raise a SecurityError when specified
814
+ dir_alias or filename is tainted and $SAFE >= 1.
815
+ * ext/oci8/attr.c, ext/oci8/bind.c, ext/oci8/error.c,
816
+ ext/oci8/object.c, ext/oci8/oci8lib.c, ext/oci8/ocinumber.c:
817
+ (ruby 1.9) converts encoding from/to OCI.encoding.
818
+
819
+ 2009-01-11 KUBO Takehiro <kubo@jiubao.org>
820
+ * ext/oci8/lob.c: concatenate read data at the end, instead of
821
+ appending them for each pieces when reading LOB data.
822
+ * test/test_oranumber.rb: fix for ruby 1.9.
823
+
824
+ 2009-01-04 KUBO Takehiro <kubo@jiubao.org>
825
+ * ext/oci8/oci8.c: delete OCI8.oracle_client_version implemented
826
+ in C. add OCI8.oracle_client_vernum whose value is retrieved
827
+ by OCIClientVersion() if Oracle 10.2 or upper.
828
+ * ext/oci8/oci8.h: add macro rb_define_singleton_method_nodoc,
829
+ which prevents rdoc from gathering the specified method.
830
+ * lib/.document, lib/oci8/.document: add lib/oci8.rb and
831
+ lib/oci8/oracle_version.rb to rdoc targets.
832
+ * lib/oci8.rb.in, lib/oci8/oracle_version.rb: add
833
+ OCI8::OracleVersion OCI8.oracle_client_version.
834
+ * test/config.rb: change version checking code to use
835
+ OCI8::OracleVersion.
836
+ * test/test_all.rb, test/test_oracle_version.rb: add test cases
837
+ of OCI8::OracleVersion.
838
+
839
+ 2009-01-03 KUBO Takehiro <kubo@jiubao.org>
840
+ * ext/oci8/encoding.c, ext/oci8/error.c, ext/oci8/ocinumber.c,
841
+ ext/oci8/oradate.c: use rb_usascii_str_new() or
842
+ rb_usascii_str_new_cstr() when its encoding is always
843
+ us-ascii.
844
+ * ext/oci8/extconf.rb: add type checking for rb_encoding
845
+ for ruby 1.9.
846
+ * ext/oci8/oci8.h: use rb_str_new(), rb_str_new2() and
847
+ rb_tainted_str_new() if rb_usascii_str_new(),
848
+ rb_usascii_str_new_cstr() and rb_external_str_new_with_enc()
849
+ are not usable.
850
+ * ext/oci8/oci8lib.c: use ORAVERNUM macro.
851
+
852
+ 2009-01-03 KUBO Takehiro <kubo@jiubao.org>
853
+ * custom-rdoc.rb: fix for rdoc bundled with ruby 1.9.
854
+ * ext/oci8/apiwrap.yml, ext/oci8/oci8lib.c: set the value of
855
+ OCI8.oracle_client_version by OCIClientVersion() if
856
+ the binary is configured with --with-runtime-check and
857
+ the Oracle client is 10.2 or upper.
858
+ * test/test_oranumber.rb: disable workaround code when
859
+ the Oracle client is 10.2.0.4 or upper.
860
+
861
+ 2008-12-30 KUBO Takehiro <kubo@jiubao.org>
862
+ * ext/oci8/attr.c: rewrite code converting the rowid descriptor
863
+ to string representation by using oci8_exec_sql().
864
+ * ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
865
+ ext/oci8/stmt.c: add check code to ensure that the process id
866
+ is not changed.
867
+
868
+ 2008-12-30 KUBO Takehiro <kubo@jiubao.org>
869
+ * ext/oci8/oraconf.rb: add code to check the cpu type of Mac OS X
870
+ libclntsh.dylib.
871
+
872
+ 2008-12-21 KUBO Takehiro <kubo@jiubao.org>
873
+ * ext/oci8/apiwrap.yml: add OCINlsCharSetNameToId()
874
+ * ext/oci8/encoding.c: add OCI8#charset_name2id and
875
+ OCI8#charset_id2name.
876
+ * ext/oci8/env.c: include <util.h> only when ruby 1.8.
877
+ * ext/oci8/oci8.h: don't include <rubyio.h> which is not used
878
+ anywhere.
879
+ * ext/oci8/ocinumber.c: include <errno.h> to compile
880
+ ruby-oci8 for ruby 1.9.
881
+ * lib/oci8/metadata.rb: comment duplicated typecode.
882
+ * test/test_all.rb: use AutoRunner when it is found.
883
+ Ruby 1.9's test unit does't has AutoRunner.
884
+ * test/test_oranumber.rb: explicity convert actual_val, which is
885
+ passed to before assert_in_delta(), to a Float to prevent
886
+ SEGV in OCINumberSub().
887
+
888
+ 2008-12-14 KUBO Takehiro <kubo@jiubao.org>
889
+ * ext/oci8/stmt.c: fix comment.
890
+ * test/test_rowid.rb: add one assertion as ruby-oci8 1.0 branch does.
891
+
892
+ 2008-09-10 KUBO Takehiro <kubo@jiubao.org>
893
+ * ext/oci8/ocidatetime.c: use session time zone when time zone
894
+ is not specified to set bind objects of timestamp with time
895
+ zone datatype.
896
+ * lib/oci8/datetime.rb: add OCI8::BindType::Util.default_timezone
897
+ to get Time or DateTime objects from bind objects of date
898
+ datatype.
899
+ * test/test_datetime.rb: fix test_datetype_duck_typing and add
900
+ test_timezone for the above changes.
901
+
902
+ 2008-09-09 KUBO Takehiro <kubo@jiubao.org>
903
+ * ext/oci8/apiwrap.rb, ext/oci8/apiwrap.yml, ext/oci8/oci8.h,
904
+ ext/oci8/ocidatetime.c, lib/oci8.rb.in, lib/oci8/datetime.rb,
905
+ lib/oci8/metadata.rb, lib/oci8/oci8.rb, test/test_break.rb,
906
+ test/test_datetime.rb, test/test_dbi.rb, test/test_metadata.rb:
907
+ fix Oracle version number mistakes. rename ORAVER_9_1 to
908
+ ORAVER_9_0.
909
+
910
+ 2008-08-31 KUBO Takehiro <kubo@jiubao.org>
911
+ * ext/oci8/bind.c, ext/oci8/stmt.c: disable DYNAMIC_FETCH to fetch
912
+ LONG or LONG RAW columns. It doesn't work well.
913
+ * lib/oci8/metadata.rb: define char_size for Oracle 8i.
914
+ * lib/oci8/oci8.rb: define OCI8::BindType::Long and
915
+ OCI8::BindType::LongRaw as subclasses of OCI8::BindType::String
916
+ and OCI8::BindType::RAW respectively. fix
917
+ OCI8::BindType::String.create and OCI8::BindType::RAW.create
918
+ for strings longer than 4000.
919
+ * test/test_array_dml.rb: add workaround of "ORA-01036: illegal
920
+ variable name/number" by renaming a bind variable name ":N"
921
+ to ":1". I guess this is a problem in the Oracle library.
922
+ * test/test_break.rb, test/test_dbi.rb, test/test_metadata.rb:
923
+ fix test codes for Oracle 8i or lower.
924
+ * test/test_oci8.rb: revise a test for LONG columns.
925
+
926
+ 2008-08-28 KUBO Takehiro <kubo@jiubao.org>
927
+ * ext/oci8/apiwrap.yml: OCINumberSign is unavailable on Oracle 8.
928
+ * lib/DBD/OCI8/OCI8.rb: A data dictionary all_constraints doesn't have
929
+ index_name column on Oracle 8i or lower. Rewrite
930
+ DBI::DBD::OCI8::Database#column by using all_cons_columns.
931
+ * lib/oci8/metadata.rb: raise an error when using
932
+ * test/config.rb: Oracle 8 desn't have database_compatible_level data
933
+ dictionary.
934
+ * test/test_metadata.rb: fix test codes for Oracle 8i or lower.
935
+
936
+ 2008-08-26 KUBO Takehiro <kubo@jiubao.org>
937
+ * ext/oci8/metadata.c: fix bugs when trying to use already freed
938
+ OCI8::Metadata::*.
939
+ * ext/oci8/ocidatetime.c: fix OCI8::BindType::OCIDate#set().
940
+ * ext/oci8/ocinumber.c: undef OraNumber#round_prec and OraNumber
941
+ #shift when using Oracle 8.0.
942
+ * lib/oci8/datetime.rb, lib/oci8/metadata.rb: fix bugs when using
943
+ Oracle 8.0.
944
+ * test/config.rb, test/test_dbi.rb, test/test_metadata.rb,
945
+ test/test_oci8.rb, test/test_oranumber.rb: do same with the
946
+ previous commit.
947
+ * test/test_datetime.rb: disable some test cases when Oracle 8.1
948
+ or lower.
949
+ * test/test_dbi_clob.rb: fix when testing in a deep directory.
950
+
951
+ 2008-08-26 KUBO Takehiro <kubo@jiubao.org>
952
+ * ext/oci8/apiwrap.c.tmpl, ext/oci8/apiwrap.h.tmpl, ext/oci8/apiwrap.rb
953
+ ext/oci8/apiwrap.yml, ext/oci8/bind.c, ext/oci8/extconf.rb,
954
+ ext/oci8/oci8.h, ext/oci8/ocidatetime.c, ext/oci8/xmldb.c,
955
+ lib/oci8.rb.in, lib/oci8/datetime.rb, lib/oci8/metadata.rb,
956
+ lib/oci8/oci8.rb: change oracle version number format.
957
+ For example Oracle 9.1.0's version number was represented as 910
958
+ in ruby-oci8. Now it is 0x09000000. This format is same with
959
+ that of the last argument of OCIServerRelease().
960
+
961
+ 2008-08-10 KUBO Takehiro <kubo@jiubao.org>
962
+ * ext/oci8/lob.c: add workaround code for a losing character problem
963
+ when reading CLOB. The problem is happened at the following condition.
964
+ 1. Oracle client version is 10.2.0.4 or 11.1.0.6.
965
+ (It doesn't depend on Oracle server version.)
966
+ 2. The character set is a variable-length one (e.g. AL32UTF8).
967
+ * dist-files: add lib/oci8/datetime.rb and .document files.
968
+
969
+ 2008-08-09 KUBO Takehiro <kubo@jiubao.org>
970
+ * ext/oci8/lob.c: fix OCI8::LOB#size= when using a lob over 2GB.
971
+ fix the return value of OCI8::LOB#write when writing a string
972
+ over 2GB.
973
+
974
+ 2008-08-05 KUBO Takehiro <kubo@jiubao.org>
975
+ * test/config.rb, test/test_all.rb, test/test_array_dml.rb,
976
+ test/test_bind_raw.rb, test/test_bind_time.rb, test/test_break.rb,
977
+ test/test_clob.rb, test/test_connstr.rb, test/test_datetime.rb,
978
+ test/test_dbi.rb, test/test_dbi_clob.rb, test/test_metadata.rb,
979
+ test/test_object.rb, test/test_oci8.rb, test/test_oradate.rb,
980
+ test/test_oranumber.rb, test/test_rowid.rb:
981
+ fix to run tests in directories outside of 'test' directory.
982
+
983
+ 2008-08-04 KUBO Takehiro <kubo@jiubao.org>
984
+ * ext/oci8/attr.c: If ORA-01000 (maximum open cursors exceeded) when
985
+ converting a rowid descriptor to string representation, run
986
+ GC to cleanup unreferenced statement handles and try again.
987
+ * ext/oci8/oci8.h, ext/oci8/oci8lib.c: add a utility function
988
+ oci8_exec_sql() to execute a SQL statement in C.
989
+ * ext/oci8/encoding.c: use oci8_exec_sql() to run anonymous PL/SQL
990
+ blocks in oci8_charset_id2name() and oci8_charset_name2id().
991
+ * ext/oci8/bind.c, ext/oci8/metadata.c, ext/oci8/ocidatetime.c,
992
+ ext/oci8/ocinumber.c: suppress compiler warnings.
993
+ * ext/oci8/oci8.c: avoid "[BUG] object allocation during garbage
994
+ collection phase" when using ruby 1.9. In GC, just free a
995
+ session handle without rollback.
996
+
997
+ 2008-08-02 KUBO Takehiro <kubo@jiubao.org>
998
+ * ext/oci8/oci8.h, ext/oci8/ocidatetime.c, lib/oci8.rb.in,
999
+ lib/oci8/datetime.rb: change binding code for timestamps
1000
+ and intervals. C side is a thin wrapper which converts Oracle's
1001
+ date, timestamp and interval values to ruby arrays and vise
1002
+ versa. Ruby side converts the arrays to ruby's Time, DateTime,
1003
+ Integer (for interval year to month) and Rational (for interval
1004
+ day to second).
1005
+ * lib/oci8/oci8.rb: change mapping for binding date, timestamp and
1006
+ timestamp with local time zone from OCI8::BindType::DateTime
1007
+ to OCI8::BindType::Time.
1008
+ * test/test_array_dml.rb, test/test_datetime.rb, test/test_dbi.rb,
1009
+ test/test_oci8.rb: fix test cases for a change above.
1010
+
1011
+ 2008-07-17 KUBO Takehiro <kubo@jiubao.org>
1012
+ * Makefile: add a rdoc target to make rdoc document.
1013
+ * custom-rdoc.rb: add a file which customizes rdoc to handle
1014
+ oci8_define_class_under() and oci8_define_bind_class().
1015
+ * ext/oci8/.document: add a new file for rdoc.
1016
+ * ext/oci8/bind.c, ext/oci8/oci8.h: rename cOCIBind to cOCI8BindTypeBase,
1017
+ which is same name used in custom-rdoc.rb.
1018
+ * ext/oci8/oci8.c, ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c:
1019
+ delete code in comment for vanilla rdoc which doesn't know what
1020
+ oci8_define_class_under() and oci8_define_bind_class() do.
1021
+ * ext/oci8/oradate.c: fix rdoc comments.
1022
+
1023
+ 2008-07-13 KUBO Takehiro <kubo@jiubao.org>
1024
+ * ext/oci8/stmt.c: (1) add rdoc comments. (2) OCI8::Cursor#type
1025
+ returns a Fixnum when the type is not undocumented value instead
1026
+ of raising an exception.
1027
+ * lib/.document, lib/oci8/.document: add new files for rdoc.
1028
+ * lib/oci8/metadata.rb: fix OCI8::Metadata::Scheme#inspect.
1029
+ * lib/oci8/object.rb: don't put OCI8::BindArgumentHelper, which is
1030
+ not used by users, to rdoc.
1031
+ * lib/oci8/oci8.rb: (1) fix rdoc comments. (2) change the return
1032
+ value of OCI8#exec when the SQL statement is a PL/SQL block.
1033
+ (3) change the method of customize the bind type for NUMBER
1034
+ without precision and scale to same with ruby-oci8 1.0 as follows
1035
+ OCI8::BindType::Mapping[:number_unknown_prec] = ...
1036
+ OCI8::BindType::Mapping[:number_no_prec_setting] = ...
1037
+
1038
+ 2008-07-12 KUBO Takehiro <kubo@jiubao.org>
1039
+ * lib/oci8/oci8.rb: add OraNumber#to_json and OraDate#to_json.
1040
+ * lib/oci8/metadata.rb: define char_used?, char_size, fsprecision
1041
+ and lfprecision methods to subclasses of OCI8::Metadata::Base
1042
+ onln when Oracie 9i or upper. They ara unavailable on Oracle
1043
+ 8.1 or lower.
1044
+
1045
+ 2008-07-06 KUBO Takehiro <kubo@jiubao.org>
1046
+ * ext/oci8/oci8.h: add comments.
1047
+
1048
+ 2008-07-05 KUBO Takehiro <kubo@jiubao.org>
1049
+ * ext/oci8/oraconf.rb:
1050
+ 1. prints more information on checking LD_LIBRARY_PATH.
1051
+ 2. fix for windows Oracle 11g instant client.
1052
+ 3. fix for intel mac instant client.
1053
+ * ext/oci8/object.c, lib/oci8/object.rb, lib/oci8/oci8.rb:
1054
+ fix to pass an array of Oracle objects to a procedure.
1055
+
1056
+ 2008-04-27 KUBO Takehiro <kubo@jiubao.org>
1057
+ * ext/oci8/stmt.c, lib/oci8/oci8.rb: fix typo.
1058
+ (pointed by Liming)
1059
+ * dist-files: fix added and deleted files.
1060
+
1061
+ 2008-04-08 KUBO Takehiro <kubo@jiubao.org>
1062
+ * metaconfig: add '-w' when running test cases.
1063
+ * test/test_metadata.rb: suppress warning: "shadowing outer local variable - i."
1064
+ * ext/oci8/stmt.c: suppress warning: "warning: instance variable
1065
+ @max_array_size not initialized" at lib/oci8/oci8.rb:375.
1066
+
1067
+ 2008-03-29 KUBO Takehiro <kubo@jiubao.org>
1068
+ * ext/oci8/encoding.c, ext/oci8/extconf.rb, ext/oci8/oci8.h
1069
+ ext/oci8/oci8lib.c: add a new file encoding.c.
1070
+ oci8_charset_id2name() is added to convert Oracle charset
1071
+ id to charset name. If the Oracle client version is 9iR2
1072
+ or upper, it uses OCINlsCharSetIdToName(). If 9iR1 or lower,
1073
+ it uses PL/SQL function nls_charset_name() and converts
1074
+ at the server side.
1075
+ * ext/oci8/metadata.c: use oci8_charset_id2name() instead of
1076
+ OCINlsCharSetIdToName().
1077
+
1078
+ 2008-03-29 KUBO Takehiro <kubo@jiubao.org>
1079
+ * ext/oci8/extconf.rb, ext/oci8/oci8lib.c, ext/oci8/oci8.h:
1080
+ When '--with-runtime-check' is passed to extconf.rb, oci8lib.so
1081
+ is no longer linked to an Oracle client library at compilation
1082
+ time. It tries to search the Oracle client library at runtime.
1083
+ * ext/oci8/bind.c: define OCI8::BindType::BinaryDouble when
1084
+ oracle_client_version's value is 10g or later, not when SQLT_BDOUBLE
1085
+ is declared. This is for runtime check.
1086
+
1087
+ 2008-03-22 KUBO Takehiro <kubo@jiubao.org>
1088
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/object.c, ext/oci8/oci8.h,
1089
+ ext/oci8/oci8lib.c, ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c,
1090
+ ext/oci8/oradate.c, ext/oci8/stmt.c: add qualifier 'const' to
1091
+ oci8_bind_*class_t values. These are read only.
1092
+
1093
+ 2008-03-22 KUBO Takehiro <kubo@jiubao.org>
1094
+ * ext/oci8/.: add apiwrap.[ch] to svn:ignore property.
1095
+ * ext/oci8/apiwrap.c.tmpl, ext/oci8/apiwrap.rb, ext/oci8/apiwrap.yml:
1096
+ add alternative code if OCINumberSetPi(), OCINumberIsInt() is
1097
+ not found.
1098
+ * ext/oci8/oci8.h: delete unused macros. add LIKELY and UNLIKELY
1099
+ macros and use the former in oci8_get_errhp().
1100
+ * ext/oci8/oci8.h, ext/oci8/oci8lib.c: change the scope of
1101
+ oci8_base_class to static.
1102
+ * ext/oci8/ocinumber.c: fix OraNumber#** and OraNumber#<=>. raise
1103
+ exceptions when OraNumber#round_prec or OraNumber#shift is called
1104
+ and the Oracle client version is 8.0.
1105
+ * test/test_oranumber.rb: add testcass for all OraNumber methods.
1106
+
1107
+ 2008-03-19 KUBO Takehiro <kubo@jiubao.org>
1108
+ * ext/oci8/ocinumber.c, lib/oci8/compat.rb, lib/oci8/object.rb
1109
+ lib/oci8/oci8.rb, test/test_oci8.rb:
1110
+ 1. OCINumber, which is a new object in 2.0, become OraNumber.
1111
+ This means OraNumber become a true numeric class.
1112
+ 2. Rdoc comments in ocinumber.c are fixed.
1113
+
1114
+ 2008-03-08 KUBO Takehiro <kubo@jiubao.org>
1115
+ * ext/oci8/extconf.rb, ext/oci8/oci8lib.c, ext/oci8/rowid.c:
1116
+ rowid.c is deleted. OCIRowid is no longer in use.
1117
+ * ext/oci8/oci8.h, ext/oci8/attr.c: oci8_get_rowid_attr()
1118
+ is moved from rowid.c and returns a String instead of
1119
+ an OCIRowid object.
1120
+ * ext/oci8/stmt.c: fix a rdoc comment of OCI8::Cursor#rowid.
1121
+ * lib/oci8/oci8.rb: fetch a rowid value as a String.
1122
+ * test/test_all.rb, test/test_rowid.rb: add a rowid testcase.
1123
+
1124
+ 2008-03-07 KUBO Takehiro <kubo@jiubao.org>
1125
+ * ext/oci8/apiwrap.c.tmpl, ext/oci8/apiwrap.rb, ext/oci8/apiwrap.yml:
1126
+ add all OCI functions to 'apiwrap.yml'.
1127
+ * ext/oci8/object.c: use OCIObjectPin_nb() instead of OCIObjectPin().
1128
+ * ext/oci8/oci8lib.c: call OCIBreak in rb_thread_blocking_region()
1129
+ to prevent the thread from being blocked.
1130
+
1131
+ 2008-03-06 KUBO Takehiro <kubo@jiubao.org>
1132
+ * ext/oci8/apiwrap.c.tmpl, ext/oci8/apiwrap.h.tmpl:
1133
+ rewrite apiwrap.[ch].tmpl. All non-static variables
1134
+ and functions have 'oci8_' prefix name.
1135
+ * ext/oci8/apiwrap.rb, ext/oci8/apiwrap.yml,
1136
+ ext/oci8/extconf.rb: change format of apiwrap.yml
1137
+ to use both OCIAttrGet() and OCIAttrGet_nb().
1138
+ * ext/oci8/oci8.c, test/config.rb: add OCI8.oracle_client_version.
1139
+
1140
+ 2008-03-05 KUBO Takehiro <kubo@jiubao.org>
1141
+ * ext/oci8/env.c, ext/oci8/oci8.h: use native API to get a thread
1142
+ local errhp (ruby 1.9 only)
1143
+ pthread: pthread_getspecific()
1144
+ win32: TlsGetValue()
1145
+
1146
+ 2008-03-04 KUBO Takehiro <kubo@jiubao.org>
1147
+ * ext/oci8/extconf.rb: output a message to say 'install
1148
+ a ruby development package' when 'mkmf.rb' is not
1149
+ found and the platform is Linux. Both ruby and its
1150
+ development package are required to compile extension
1151
+ libraries on Linux.
1152
+
1153
+ 2008-03-04 KUBO Takehiro <kubo@jiubao.org>
1154
+ * ext/oci8/ocinumber.c: fix for ruby-1.9.0-1.
1155
+ The arguments of rb_num_coerce_cmp() and rb_num_coerce_bin()
1156
+ are changed in ruby-1.9.0-1.
1157
+
1158
+ 2008-2-27 Liming Lian <liming.lian@oracle.com>
1159
+ Add new feature: Array DML
1160
+ * lib/oci8/oci8.rb: add three new methods for Array DML to OCI8::Cursor:
1161
+ max_array_size=, bind_param_array and exec_array
1162
+ 1) OCI8::Cursor#max_array_size=: set the maximum array size for OCI8::Cursor#bind_param_array.
1163
+ This method should be called before OCI8::Cursor#bind_param_array
1164
+ 2) OCI8::Cursor#bind_param_array: bind array explicitly. This method is used to bind an array of
1165
+ values to a placeholder embedded in the prepared statement which is to be executed with
1166
+ OCI8::Cursor#exec_array
1167
+ 3) OCI8::Cursor#exec_array: executes the SQL statement assigned the cursor with array bindings.
1168
+ This implementation currently only supports non-data returning statements (INSERT, UPDATE, DELETE
1169
+ but not SELECT). All binding arrays should be the same size and this size will be used as iteration
1170
+ count for OCIStmtExecute()
1171
+ * ext/oci8/stmt.c: add support for Array DML
1172
+ 1) Change the parameters for invoking OCIBindByPos and OCIBindByName because
1173
+ currently we only support Array DML for non-PL/SQL binds.
1174
+ 2) Add a new parameter "Value iteration_count" to function oci8_stmt_execute.
1175
+ This parameter indicates iteration count for OCIStmtExecute. For Non-Array DML,
1176
+ you should set this parameter "nil"
1177
+ 3) Add three new functions: each_value, clear_binds_iterator_proc, oci8_stmt_clear_binds.
1178
+ Those functions are used to clear all binds from OCI8::Cursor. When calling OCI8::Cursor#max_array_size,
1179
+ all the binds will be clean from cursor if instance variable max_array_size of cursor is set before.
1180
+ * test/test_array_dml.rb(added): add test cases for Array DML
1181
+ * test/test_all.rb: call test cases for Array DML
1182
+
1183
+ 2008-02-17 KUBO Takehiro <kubo@jiubao.org>
1184
+ * Makefile: add format_c_source target to fix indentation by
1185
+ astyle. <URL:http://astyle.sourceforge.net>
1186
+ * ext/oci8/error.c, ext/oci8/lob.c, ext/oci8/metadata.c,
1187
+ ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
1188
+ ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c,
1189
+ ext/oci8/oradate.c, ext/oci8/stmt.c, ext/oci8/xmldb.c:
1190
+ fix indentation by astyle.
1191
+ The command line options are as follows.
1192
+ astyle --style=linux --indent=spaces=4 --brackets=linux ext/oci8/*.[ch]
1193
+
1194
+ 2008-02-17 KUBO Takehiro <kubo@jiubao.org>
1195
+ * ext/oci8/object.c, ext/oci8/stmt.c:
1196
+ change from:
1197
+ switch (fixnum_value) {
1198
+ case INT2FIX(INT_CONSTANT):
1199
+ ....;
1200
+ to:
1201
+ switch (FIX2INT(fixnum_value)) {
1202
+ case INT_CONSTANT:
1203
+ ....;
1204
+ "case INT2FIX(INT_CONSTANT)" confuses astyle.
1205
+ astyle's URL: http://astyle.sourceforge.net
1206
+ * test/config.rb: sleep 5 seconds and retry again when
1207
+ ORA-12516 or ORA-12520. One second was too short on
1208
+ my new linux box.
1209
+ * test/test_oci8.rb: fix a test case for x86_64 linux.
1210
+
1211
+ 2008-01-14 KUBO Takehiro <kubo@jiubao.org>
1212
+ * ext/oci8/extconf.rb: add checking code for intern.h, util.h,
1213
+ ruby/util.h, ruby_errinfo and rb_errinfo.
1214
+ * ext/oci8/env.c: define a header file to be included by
1215
+ HAVE_RUBY_UTIL_H and HAVE_UTIL_H, not by RUBY_VM.
1216
+ * ext/oci8/oci8.h: define a header file to be included by
1217
+ HAVE_INTERN_H, not by RUBY_VM. use HAVE_RB_ERRINFO and
1218
+ HAVE_RUBY_ERRINFO to define rb_errinfo() as a macro.
1219
+ * ext/oci8/oci8.c: use rb_eval_string() instead of rb_reg_new()
1220
+ for not to use RUBY_VM.
1221
+
1222
+ 2008-01-14 KUBO Takehiro <kubo@jiubao.org>
1223
+ * ext/oci8/oci8.h ext/oci8/oci8lib.c: rename variable name
1224
+ cOCIHandle to oci8_cOCIHandle to use outside of oci8lib.c.
1225
+ * ext/oci8/metadata.c: use oci8_cOCIHandle instead of rb_cObject
1226
+ to hold a descrbe handle. check parent object's handle type
1227
+ in oci8_metadata_create().
1228
+
1229
+ 2008-01-14 KUBO Takehiro <kubo@jiubao.org>
1230
+ * ext/oci8/apiwrap.c.tmpl: fix a bug on runtime-api check.
1231
+ * ext/oci8/ocidatetime.c, test/test_datetime.rb: use
1232
+ DateTime.parse('0001-01-01 00:00:00.1') instead of
1233
+ DateTime.parse('00:00:00.1'). The latter doesn't work
1234
+ on ruby 1.8.5 or earlier.
1235
+ * test/config.rb: revert the previous commit and add
1236
+ get_oci8_connection() and get_dbi_connection() to the
1237
+ base class of test cases. When an attempt to connect fails
1238
+ by ORA-12516 or ORA-12520, their methods sleep one seconds
1239
+ and try again more once.
1240
+ delete unused method setup_lowapi().
1241
+ * test/test_bind_raw.rb, test/test_bind_time.rb,
1242
+ test/test_break.rb, test/test_clob.rb, test/test_datetime.rb,
1243
+ test/test_dbi.rb, test/test_dbi_clob.rb, test/test_metadata.rb,
1244
+ test/test_object.rb, test/test_oci8.rb, test/test_oradate.rb,
1245
+ test_oranumber.rb: revert the previous commit and use
1246
+ get_oci8_connection() or get_dbi_connection() to make a
1247
+ connection.
1248
+
1249
+ 2008-01-08 KUBO Takehiro <kubo@jiubao.org>
1250
+ * test/config.rb, test/test_bind_raw.rb, test/test_bind_time.rb,
1251
+ test/test_break.rb, test/test_clob.rb, test/test_datetime.rb,
1252
+ test/test_dbi.rb, test/test_dbi_clob.rb, test/test_metadata.rb,
1253
+ test/test_object.rb, test/test_oci8.rb, test/test_oradate.rb,
1254
+ test_oranumber.rb: use one OCI8 session for all OCI8 test cases
1255
+ and use one DBI session for all DBI test cases.
1256
+ Before this changes, connection/disconnection were called
1257
+ for each tests. If they are done too frequently and the Oracle
1258
+ server is on a remote server, the following error is raised.
1259
+ OCIError: ORA-12516: TNS:listener could not find available
1260
+ handler with matching protocol stack
1261
+
1262
+ 2008-01-04 KUBO Takehiro <kubo@jiubao.org>
1263
+ * ext/oci8/oci8.h, ext/oci8/stmt.c: 1. add a 'pre_fetch_hook'
1264
+ callback function to oci8_bind_class_t. This function is
1265
+ called before OCIStmtFetch in OCI8::Cursor#fetch.
1266
+ 2. allocate OCIStmt handle by pre_fetch_hook when a result set
1267
+ has cursors.
1268
+ 3. change 'init' callback function's prototype in
1269
+ oci8_bind_class_t.
1270
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/object.c,
1271
+ ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c,
1272
+ ext/oci8/oradate.c, ext/oci8/rowid.c: changes causes by above 1
1273
+ and 3.
1274
+ * test/test_oci8.rb: delete re-defining in a test case for cursors
1275
+ in a result set.
1276
+
1277
+ 2008-01-03 KUBO Takehiro <kubo@jiubao.org>
1278
+ * ext/oci8/error.c: fix a SEGV bug when an error is raised in GC.
1279
+ make a custom backtrace entry only when 'caller' returns an Array.
1280
+
1281
+ 2007-12-29 KUBO Takehiro <kubo@jiubao.org>
1282
+ * lib/oci8/metadata.rb, lib/oci8/oci8.rb: support cursors in a
1283
+ result set. For example:
1284
+ SELECT column1 A, column2 B, CURSOR(SELECT * FROM table2) C
1285
+ FROM table1
1286
+ (port from changes in 1.0.0, which is contributed by Randy Gordon)
1287
+ * test/test_oci8.rb: add a testcase for cursors in a result set.
1288
+
1289
+ 2007-12-23 KUBO Takehiro <kubo@jiubao.org>
1290
+ * ext/oci8/oraconf.rb: fix for official x86_64 rpms.
1291
+ (contributed by Pat.)
1292
+
1293
+ 2007-12-04 KUBO Takehiro <kubo@jiubao.org>
1294
+ * ext/oci8/stmt.c, lib/oci8/oci8.rb: delete a private method
1295
+ OCI8::Curosr#__connection and use @con instead.
1296
+
1297
+ 2007-12-04 KUBO Takehiro <kubo@jiubao.org>
1298
+ * ext/oci8/extconf.rb: compile xmldb.o by default.
1299
+ * ext/oci8/lob.c, ext/oci8/metadata.c, ext/oci8/oci8.c: use
1300
+ functions which ends with _nb instead of normal OCI functions
1301
+ if they may block ruby itself. delete BUILD_FOR_ORACLE_* macros
1302
+ and use have_OCI* instead.
1303
+ * ext/oci8/oci8.h: delete unused macros; BUILD_FOR_ORACLE_*,
1304
+ Get_Int_With_Default, oci_rc2, oci_rc, and _D_.
1305
+ * ext/oci8/oci8lib.c, ext/oci8/oci8.c: change the default value
1306
+ of executing_thread member in oci8_svcctx_t.
1307
+ * ext/oci8/xmldb.c: disabled for a while.
1308
+
1309
+ 2007-12-04 KUBO Takehiro <kubo@jiubao.org>
1310
+ * ext/oci8/apiwrap.c.tmpl, ext/oci8/apiwrap.h.tmpl, ext/oci8/apiwrap.rb:
1311
+ change function declares of runtime-check.
1312
+ add oracle_client_version.
1313
+ * ext/oci8/apiwrap.yml: add OCI function prototypes.
1314
+ * ext/oci8/extconf.rb: check oracle_client_version by existent functions
1315
+ in OCI libraries. delete BUILD_FOR_ORACLE_VERSION_MAJOR and
1316
+ BUILD_FOR_ORACLE_VERSION_MINOR macros. add ORACLE_CLIENT_VERSION.
1317
+ * ext/oci8/oci8.h: use ORACLE_CLIENT_VERSION instead of
1318
+ BUILD_FOR_ORACLE_VERSION_MAJOR and BUILD_FOR_ORACLE_VERSION_MINOR
1319
+ macros.
1320
+ * ext/oci8/ocidatetime.c: fix for ruby 1.8.
1321
+ * ext/oci8/tdo.c: delete an unused file.
1322
+
1323
+ 2007-12-03 KUBO Takehiro <kubo@jiubao.org>
1324
+ * ext/oci8/apiwrap.c.tmpl: move rboci_blocking_region() and
1325
+ find_symbol() to ext/oci8/oci8lib.c and rename to
1326
+ oci8_blocking_region() and oci8_find_symbol() respectively.
1327
+ * ext/oci8/bind.c: use RFLOAT_VALUE macro for ruby 1.9.
1328
+ * ext/oci8/oci8.h: define a macro RFLOAT_VALUE if it is not defined.
1329
+ add prototypes oci8_blocking_region() and oci8_find_symbol().
1330
+ * ext/oci8/oci8lib.c: add oci8_blocking_region() and oci8_find_symbol().
1331
+ * ext/oci8/ocidatetime.c: add workaround code for ruby 1.9 VM bug.
1332
+ * lib/DBD/OCI8/OCI8.rb, lib/oci8/metadata.rb, test/test_metadata.rb:
1333
+ rename OCI8::Metadata::Column#is_null? to
1334
+ OCI8::Metadata::Column#nullable? as ruby 1.0.0 does.
1335
+ * test/test_dbi.rb: add testcase to check binding ''(empty string)
1336
+ via dbi as ruby 1.0.0 does.
1337
+ * test/test_oci8.rb: add asserts binding Nan, +Infinity and
1338
+ -Inifinty as ruby 1.0.0 does.
1339
+
1340
+ 2007-11-23 KUBO Takehiro <kubo@jiubao.org>
1341
+ * ext/oci8/apiwrap.c.tmpl, ext/oci8/apiwrap.h.tmpl, ext/oci8/apiwrap.rb
1342
+ ext/oci8/apiwrap.yml, ext/oci8/extconf.rb, ext/oci8/oci8.h
1343
+ ext/oci8/oci8lib.c: add a framework to check whether an OCI functions
1344
+ exists at run-time.
1345
+ * ext/oci8/lob.c: check whether OCILobIsTemporary and OCILobLocatorAssign
1346
+ exist at run-time.
1347
+ * ext/oci8/rowid.c: use new framework to check whether OCIRowidToChar
1348
+ exists at run-time.
1349
+
1350
+ 2007-11-20 KUBO Takehiro <kubo@jiubao.org>
1351
+ * ext/oci8/extconf.rb, , ext/oci8/apiwrap.c.tmpl,
1352
+ ext/oci8/apiwrap.h.tmpl, ext/oci8/apiwrap.rb,
1353
+ ext/oci8/apiwrap.yml: add new files for non-blocking
1354
+ executions. These use rb_thread_blocking_region in
1355
+ ruby 1.9.
1356
+ * ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/stmt.c:
1357
+ use new non-blocking execution API for OCI8#exec and
1358
+ OCI8::CUrsor#fetch.
1359
+ * test/test_break.rb: add comment and add sleep to pass
1360
+ test_blocking_mode.
1361
+
1362
+ 2007-11-19 KUBO Takehiro <kubo@jiubao.org>
1363
+ * ext/oci8/ocidatetime.c, test/test_datetime.rb: fix for a change
1364
+ of DateTime#fsec_fractions in ruby 1.9.
1365
+ * ext/oci8/stmt.c: rename OCI8::Cursor#__defineByPos to
1366
+ OCI8::Cursor#__define.
1367
+ * test/test_oci8.rb: add test_select_number.
1368
+ * lib/oci8/oci8.rb: add OCI8::BindType::Base.create which acts as
1369
+ a factory method. move bindtype specific code to create method
1370
+ of OCI8::BindType::Base's subclasses.
1371
+
1372
+ 2007-11-18 KUBO Takehiro <kubo@jiubao.org>
1373
+ * lib/DBD/OCI8/OCI8.rb: add StatementHandle#column_info.
1374
+ refine DatabaseHandle#columns.
1375
+ * test/test_dbi.rb: add a testcase for StatementHandle#column_info
1376
+ and DatabaseHandle#columns.
1377
+
1378
+ 2007-11-17 KUBO Takehiro <kubo@jiubao.org>
1379
+ * ext/oci8/error.c: add OCIError#initialize(msg, code = nil).
1380
+ * ext/oci8/metadata.c, lib/oci8/metadata.rb: rename char_semantics
1381
+ method to "char_used?". change the return value of data_type
1382
+ method when the data_type is NCHAR, NVARCHAR2 or NCLOB.
1383
+ * test/test_all.rb, test/test_metadata.rb: add a testcase for
1384
+ OCI8::Cursor#column_metadata and OCI8#describe_table.
1385
+
1386
+ 2007-11-17 KUBO Takehiro <kubo@jiubao.org>
1387
+ * lib/oci8/oci8.rb: OCI8::Cursor#fetch_hash accepts a block now.
1388
+ * test/test_oci8.rb: add a test for fetch_hash with a block.
1389
+ * ext/oci8/metadata.c: fix for 64-bit windows.
1390
+
1391
+ 2007-11-12 KUBO Takehiro <kubo@jiubao.org>
1392
+ * ext/oci8/stmt.c, lib/oci8/oci8.rb: add OCI8::Cursor#column_metadata.
1393
+ * ext/oci8/metadata.c, ext/oci8/oci8.h, ext/oci8/stmt.c: Change
1394
+ the lifetime of OCI8::Metadata::Base. It depended on the connection,
1395
+ but now it depends on what it describes. For example OCI8::cursor
1396
+ for OCI8::Cursor#column_metadata.
1397
+ * ext/oci8/env.c, ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
1398
+ ext/oci8/oraconf.rb, setup.rb: fix for ruby 1.9. Not full tests are
1399
+ not passed on ruby 1.9.
1400
+
1401
+ 2007-11-11 KUBO Takehiro <kubo@jiubao.org>
1402
+ * ext/oci8/oci8.c, lib/oci8/metadata.rb, test/test_datetime.rb:
1403
+ suppress warnings 'instance variable @xxxx not initialized' when
1404
+ running ruby with '-w' option. (suggested by Daniel Berger.)
1405
+
1406
+ 2007-11-11 KUBO Takehiro <kubo@jiubao.org>
1407
+ * test/config.rb, test/test_dbi.rb, test/test_oci8.rb:
1408
+ add 'purge' option to 'drop table' statement when Oracle 10g
1409
+ or upper.
1410
+ * ext/oci8/bind.c: add OCI8::BindType::BinaryDouble when SQLT_BDOUBLE
1411
+ is defined.
1412
+ * lib/oci8/compat.rb: add OCI8::SQLT_IBFLOAT, OCI8::SQLT_IBDOUBLE and
1413
+ OCI8::SQLT_BFILE for compatibility with 1.0.
1414
+ * lib/oci8/metadata.rb, lib/oci8/object.rb, lib/oci8/oci8.rb:
1415
+ rename :bfloat and :bdouble to :binary_float and :binary_double
1416
+ respectively.
1417
+ * lib/oci8/oci8.rb: use OCI8::BindType::BinaryDouble for :binary_float
1418
+ and :binary_double column when BinaryDouble is available.
1419
+ * test/test_oci8.rb: bind as binary_double explicitly in
1420
+ test_binary_float.
1421
+
1422
+ 2007-10-15 KUBO Takehiro <kubo@jiubao.org>
1423
+ * lib/oci8/object.rb: quick fix to get and set object
1424
+ attributes without explicitly setting default_connection.
1425
+ I am now wavering about what to do.
1426
+
1427
+ 2007-10-14 KUBO Takehiro <kubo@jiubao.org>
1428
+ * ext/oci8/oraconf.rb: fix a problem to compile with a
1429
+ third-party x86_64 rpm package. '--with-instant-client'
1430
+ option become obsolete and is ignored.
1431
+ * ext/oci8/oraconf.rb: fix for FreeBSD oracle8-client port.
1432
+ Not all tests are passed on FreeBSD yet.
1433
+ * lib/oci8/object.rb: fix a problem when convertion ruby class
1434
+ name to oracle object name fails.
1435
+
1436
+ 2007-10-11 KUBO Takehiro <kubo@jiubao.org>
1437
+ * lib/DBD/OCI8/OCI8.rb: add DatabaseHandle#columns for DBI.
1438
+ (suggested by Venkat Pa)
1439
+
1440
+ 2007-10-11 KUBO Takehiro <kubo@jiubao.org>
1441
+ * lib/DBD/OCI8/OCI8.rb: fix external OS authentication.
1442
+ I applied Dan Fitch's patch to improper location.
1443
+
1444
+ 2007-07-24 KUBO Takehiro <kubo@jiubao.org>
1445
+ * ext/oci8/object.c, lib/oci8/object.rb: support binary_double,
1446
+ binary_float and object member of object datatype.
1447
+ * test/setup_test_object.sql, test/test_object.rb: add testcase for
1448
+ binary_double, binary_float, embedded object, array of raw, array
1449
+ of binary_double, array of binary_float, array of object in object
1450
+ datatype.
1451
+
1452
+ 2007-07-07 KUBO Takehiro <kubo@jiubao.org>
1453
+ * ext/oci8/object.c: support array of number in OCI8::NamedCollection.
1454
+ * test/setup_test_object.sql, test/test_object.rb: fix a testcase
1455
+ to test array of number.
1456
+
1457
+ 2007-07-05 KUBO Takehiro <kubo@jiubao.org>
1458
+ * lib/oci8/object.rb, ext/oci8/object.c: add OCI8::NamedCollection
1459
+ to support collection datatypes. add OCI8::NamedType#attributes
1460
+ and #attributes= instead of OCI8::NamedType#copy_attributes_from
1461
+ and #copy_attributes_to. and others.
1462
+ * lib/oci8/oci8.rb: add OCI8#username.
1463
+ * test/test_object.rb: add a testcase for array of varchar2.
1464
+
1465
+ 2007-07-04 KUBO Takehiro <kubo@jiubao.org>
1466
+ * ext/oci8/object.c, lib/oci8/object.rb, lib/oci8/oci8.rb:
1467
+ delete OCI8::NamedType module and OCI8::NamedType::Base class
1468
+ and add OCI8::Object module, OCI8::Object::Base class and
1469
+ OCI8::NamedType class. In the user view, OCI8::NamedType::Base
1470
+ become OCI8::Object::Base. The reason is that 'named type' is used
1471
+ only by OCI documents, and Other Oracle manuals use Oracle Object.
1472
+ * ext/oci8/oci8.c: free all dependent objects in advance to
1473
+ disconnecting a connection.
1474
+ * lib/oci8/metadata.rb: add OCI8::Metadata::Type#type_metadata.
1475
+ fix typos.
1476
+ * test/setup_test_object.sql, test/test_object.rb: add a testcase for
1477
+ Oracle Objects.
1478
+
1479
+ 2007-07-03 KUBO Takehiro <kubo@jiubao.org>
1480
+ * lib/DBD/OCI8/OCI8.rb: fix for external OS authentication.
1481
+ (contributed by Dan Fitch)
1482
+
1483
+ 2007-06-26 KUBO Takehiro <kubo@jiubao.org>
1484
+ * ext/oci8/oci8.c: add external OS authentication. (suggested by Dan Fitch)
1485
+ conn = OCI8.new('/')
1486
+ or
1487
+ conn = OCI8.new(nil, nil)
1488
+ * test/test_connstr.rb: fix a testcase for external OS authentication.
1489
+
1490
+ 2007-06-23 KUBO Takehiro <kubo@jiubao.org>
1491
+ * ext/oci8/oraconf.rb: read a shared library's ELF header to
1492
+ check what cpu is it for. (linux x86, x86_64 and ia64 only)
1493
+
1494
+ 2007-06-05 KUBO Takehiro <kubo@jiubao.org>
1495
+ * ext/oci8/oraconf.rb: copy oraconf.rb of ruby-oci8-1.0 branch.
1496
+ * ext/oci8/lob.c, ext/oci8/oci8.h, ext/oci8/stmt.c: fix to bind
1497
+ an OCI8::NCLOB value on Oralce 9i.
1498
+ * test/test_oci8.rb: add testcases for binary_double datatype
1499
+ and OCI8::NCLOB.new.
1500
+
1501
+ 2007-05-20 KUBO Takehiro <kubo@jiubao.org>
1502
+ * lib/oci8/object.rb, ext/oci8/object.c: add new files.
1503
+ * ext/oci8/bind.c: fix to bind object type.
1504
+ * ext/oci8/extconf.rb: use object.c instead of tdo.c.
1505
+ * ext/oci8/metadata.c: add OCI8::Metadata::Base#tdo_id.
1506
+ * ext/oci8/oci8.h: add new prototypes; oci8_set_ocinumber(),
1507
+ oci8_set_integer() and Init_oci_object(). delete Init_oci_tdo().
1508
+ * ext/oci8/oci8lib.c: use Init_oci_object() instead of Init_oci_tdo().
1509
+ * ext/oci8/ocinumber.c: export oci8_set_ocinumber() and
1510
+ oci8_set_integer().
1511
+ * ext/oci8/stmt.c: fix to bind object type.
1512
+ * lib/oci8.rb.in: add requiring 'oci8/object.rb'.
1513
+ * lib/oci8/metadata.rb: add OCI8::Metadata::TypeMethod#has_result?
1514
+ fix comments.
1515
+ * lib/oci8/oci8.rb: fix to bind object type.
1516
+
1517
+ 2007-05-12 KUBO Takehiro <kubo@jiubao.org>
1518
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/oci8.h,
1519
+ ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c, ext/oci8/oradate.c,
1520
+ ext/oci8/rowid.c, ext/oci8/stmt.c, ext/oci8/tdo.c:
1521
+ change a callback function's argument type used internally
1522
+ in OCI8::BindType::Base#set().
1523
+ * ext/oci8/metadata.c, lib/oci8/metadata.rb: change the internal
1524
+ structure of OCI8::Metadata::Base.
1525
+
1526
+ 2007-05-10 KUBO Takehiro <kubo@jiubao.org>
1527
+ * lib/oci8/oci8.rb: 1. move the location of setting
1528
+ OCI8::BindType::Mapping to the end of the file.
1529
+ 2. set :xmltype to OCI8::BindType::Mapping's key when
1530
+ the fetched column is XMLTYPE.
1531
+
1532
+ 2007-05-03 KUBO Takehiro <kubo@jiubao.org>
1533
+ * ext/oci8/extconf.rb: add '--with-oracle-version' option to
1534
+ make a binary for the specified oracle version.
1535
+ get the oracle client version from available OCI functions.
1536
+ * ext/oci8/lob.c, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
1537
+ ext/oci8/rowid.c, ext/oci8/tdo.c, ext/oci8/xmldb.c: use
1538
+ BUILD_FOR_ORACLE_major_minor macros instead of HAVE_xxx
1539
+ macros.
1540
+ * ext/oci8/oci8.c: delete unsed code.
1541
+ * dist-files: add ext/oci8/xmldb.c and test/test_connstr.rb.
1542
+
1543
+ 2007-05-01 KUBO Takehiro <kubo@jiubao.org>
1544
+ * ext/oci8/bind.c: fix to return nil for LONG null column.
1545
+ * ext/oci8/env.c: use OCIInitialize() and OCIEnvInit() instead
1546
+ of OCIEnvCreate() on every Oracle version.
1547
+ * ext/oci8/env.c, ext/oci8/error.c, ext/oci8/oci8.h: raise
1548
+ "OCI Library Initialization Error" when Oracle can't supply
1549
+ the error message.
1550
+ * ext/oci8/oci8.c: raise OCIException instead of TypeError.
1551
+ * lib/oci8/metadata.rb: fix typo in comment.
1552
+ * VERSION: change to 2.0-svn.
1553
+
1554
+ 2007-04-30 KUBO Takehiro <kubo@jiubao.org>
1555
+ * ext/oci8/extconf.rb, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
1556
+ ext/oci8/tdo.c: enable XML support when Oracle 10g.
1557
+ * ext/oci8/xmldb.c: add oci8_make_rexml() to support XML for reading.
1558
+ * ext/oci8/lob.c: fix compiler warnings.
1559
+ * ext/oci8/error.c: fix a bit.
1560
+
1561
+ 2007-04-28 KUBO Takehiro <kubo@jiubao.org>
1562
+ * lib/oci8/oci8.rb: fetch NCLOB column value as an OCI8::NCLOB. fetch
1563
+ BINARY_DOUBLE and BINARY_FLOAT column as a Float.
1564
+ * lib/oci8/metadata.rb: OCI8::Metadata::Column#data_type can return
1565
+ :nclob, :bfloat and :bdouble now.
1566
+ * ext/oci8/extconf.rb: check whether OCILobCreateTemporary exists.
1567
+ * ext/oci8/lob.c: add OCI8::NCLOB.
1568
+ * ext/oci8/oci8.h: add oci8_make_nclob().
1569
+ * ext/oci8/tdo.c: use oci8_make_nclob().
1570
+
1571
+ 2007-04-26 KUBO Takehiro <kubo@jiubao.org>
1572
+ * lib/oci8/oci8.rb: fetch BFILE as OCI8::BFILE.
1573
+ * ext/oci8/lob.c: add OCI8::BFILE.
1574
+ * ext/oci8/oci8.h: add oci8_make_bfile().
1575
+ * ext/oci8/tdo.c: use oci8_make_bfile().
1576
+ * ext/oci8/stmt.c: use oci8_get_error_code().
1577
+
1578
+ 2007-04-21 KUBO Takehiro <kubo@jiubao.org>
1579
+ * ext/oci8/error.c: change a way to set the error line number to the
1580
+ OCIException's backtrace.
1581
+
1582
+ 2007-02-15 KUBO Takehiro <kubo@jiubao.org>
1583
+ no new features. fix to suppress warnings and to compile with ruby 1.9.
1584
+ * ext/oci8/attr.c, ext/oci8/lob.c, ext/oci8/metadata.c, ext/oci8/oci8.c,
1585
+ ext/oci8/oci8.h, ext/oci8/oci8lib.c, ext/oci8/rowid.c, ext/oci8/stmt.c,
1586
+ ext/oci8/tdo.c: use union to suppress warnings: dereferencing type-punned
1587
+ pointer will break strict-aliasing rules.
1588
+ * ext/oci8/bind.c: change a format string tu suppress a warning.
1589
+ * ext/oci8/error.c: use rb_errinfo() instead of ruby_errinfo to compile with ruby 1.9.
1590
+ * ext/oci8/oci8.h: define rb_errinfo() as ruby_errinfo when compling with ruby 1.8.
1591
+ * ext/oci8/oci8lib.c: delete unused macros OCI_DEFAULT and OCI_COMMIT_ON_SUCCESS.
1592
+ * ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c: fix bugs.
1593
+ * ext/oci8/oraconf.rb: use File.exist? instead of File.exists?. The latter become obsolete on ruby 1.9.
1594
+ * lib/oci8/compat.rb: fix for ruby 1.9. Class.constants returns an array of Symbols in 1.9.
1595
+
1596
+ 2007-02-14 Oracle Corporation (modified for 2.0 by KUBO Takehiro <kubo@jiubao.org>)
1597
+ * ext/oci8/oci8.c: add a private method parse_connect_string to support
1598
+ "username/password[@(tns_name|//host[:port]/service_name)][ as (sysdba|sysoper)]".
1599
+ (The original code, contributed by Oracle, is written
1600
+ for ruby-oci8 1.0. Kubo rewrite it for 2.0.)
1601
+ * test/test_connstr.rb: add test cases for parse_connect_string.
1602
+ * test/test_all.rb: call test cases for parse_connect_string.
1603
+
1604
+ 2007-02-14 KUBO Takehiro <kubo@jiubao.org>
1605
+ * ext/oci8/ocinumber.c: fix a bug created by the previous commit.
1606
+
1607
+ 2007-01-28 KUBO Takehiro <kubo@jiubao.org>
1608
+ * ext/oci8/oci8.h: add TO_ORATEXT, TO_CHARPTR and RSTRING_ORATEXT
1609
+ macros to suppress 'differ in signedness' warinings.
1610
+ * ext/oci8/attr.c, ext/oci8/error.c, ext/oci8/metadata.c,
1611
+ ext/oci8/oci8.c, ext/oci8/ocinumber.c, ext/oci8/rowid.c,
1612
+ ext/oci8/stmt.c, ext/oci8/tdo.c: use TO_ORATEXT, TO_CHARPTR and
1613
+ RSTRING_ORATEXT macros to suppress 'differ in signedness'
1614
+ warinings.
1615
+
1616
+ 2007-01-08 KUBO Takehiro <kubo@jiubao.org>
1617
+ * ext/oci8/oraconf.rb, ext/oci8/extconf.rb: refactor oraconf.rb.
1618
+ check whether Full Client or Instant Client by checking load
1619
+ library path.
1620
+
1621
+ 2006-12-27 KUBO Takehiro <kubo@jiubao.org>
1622
+ * ext/oci8/oci8.c: ignore an exception during GC.
1623
+
1624
+ 2006-12-22 KUBO Takehiro <kubo@jiubao.org>
1625
+ * ext/oci8/oci8.h, ext/oci8/oci8lib.c: add new structure
1626
+ members to oci8_base_t to handle parent-children tree.
1627
+ add new functions oci8_link_to_parent() and
1628
+ oci8_unlink_from_parent().
1629
+ In prior to free the object's content. free all its children.
1630
+ * ext/oci8/bind.c, ext/oci8/stmt.c:
1631
+ use oci8_base_t's structure members instead of oci8_bind_t
1632
+ and oci8_stmt_t's members.
1633
+ * ext/oci8/lob.c, ext/oci8/metadata.c, ext/oci8/tdo.c:
1634
+ link to the connection which creates the LOB, Metadata, TDO objects.
1635
+ These objects are freed when the connection is disconnected.
1636
+ * ext/oci8/oci8.c: call logoff explicitly when the connection object
1637
+ is freed.
1638
+
1639
+ 2006-12-19 KUBO Takehiro <kubo@jiubao.org>
1640
+ * ext/oci8/tdo.c: fix a GC problem.
1641
+ * ext/oci8/stmt.c: add OCI8::Cursor#prefetch_rows=
1642
+ * ext/oci8/oci8.c: add OCI8#prefetch_rows=. add comments for rdoc.
1643
+ * doc/oci8-ja.rb: add comments for rdoc.
1644
+
1645
+ 2006-12-14 KUBO Takehiro <kubo@jiubao.org>
1646
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/oci8.h,
1647
+ ext/oci8/ocidatetime.c ext/oci8/ocinumber.c, ext/oci8/oradate.c,
1648
+ ext/oci8/rowid.c, ext/oci8/stmt.c, ext/oci8/tdo.c: add PL/SQL
1649
+ table support. unify the variable names of oci8_bind_t.
1650
+ * lib/oci8/oci8.rb: add PL/SQL table support.
1651
+
1652
+ 2006-12-13 KUBO Takehiro <kubo@jiubao.org>
1653
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/oci8.h, ext/oci8/stmt.c:
1654
+ delete oci8_bind_handle_t and use oci8_hp_obj_t.
1655
+ (prepare to bind an array)
1656
+ * ext/oci8/bind.c: fix for alignment.
1657
+ (prepare to bind an array)
1658
+
1659
+ 2006-12-12 KUBO Takehiro <kubo@jiubao.org>
1660
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/oci8.h,
1661
+ ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c, ext/oci8/oradate.c,
1662
+ ext/oci8/rowid.c, ext/oci8/stmt.c, ext/oci8/tdo.c, lib/oci8/oci8.rb:
1663
+ change arguments of internal bind-init functions.
1664
+ (refactoring)
1665
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/oci8.h,
1666
+ ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c, ext/oci8/oradate.c,
1667
+ ext/oci8/rowid.c, ext/oci8/stmt.c, ext/oci8/tdo.c:
1668
+ split bind-init callback to init and init_elem.
1669
+ (prepare to bind an array)
1670
+ * ext/oci8/bind.c, ext/oci8/oci8.h, ext/oci8/stmt.c:
1671
+ change arguments of piece-width-fetch callbacks.
1672
+ (prepare to bind an array)
1673
+
1674
+ 2006-12-07 KUBO Takehiro <kubo@jiubao.org>
1675
+ * ext/oci8/bind.c, ext/oci8/oci8.h, ext/oci8/stmt.c, ext/oci8/tdo.c:
1676
+ delete rlen and use_rlen from oci8_bind_t.
1677
+ * ext/oci8/rowid.c: change the bind type for ROWID not to use rlen.
1678
+
1679
+ 2006-12-05 KUBO Takehiro <kubo@jiubao.org>
1680
+ * ext/oci8/attr.c, ext/oci8/bind.c, ext/oci8/error.c, ext/oci8/lob.c,
1681
+ ext/oci8/metadata.c, ext/oci8/oci8.c, ext/oci8/oci8.h,
1682
+ ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c, ext/oci8/oradate.c,
1683
+ ext/oci8/rowid.c, ext/oci8/stmt.c, ext/oci8/tdo.c:
1684
+ use RSTRING_LEN, RSTRING_PTR, RARRAY_LEN and RARRAY_PTR macros.
1685
+
1686
+ 2006-11-25 KUBO Takehiro <kubo@jiubao.org>
1687
+ * doc/oci8-ja.rb: add a new file for Japanese rdoc document.
1688
+ * ext/oci8/ocidatetime.c: add comments for rdoc.
1689
+ * test/test_datetime.rb: add testcases for OCI8::BindType::DateTime.
1690
+
1691
+ 2006-11-23 KUBO Takehiro <kubo@jiubao.org>
1692
+ * dist-files, ext/oci8/extconf.rb, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
1693
+ ext/oci8/oranumber.c: delete OraNumber implemented by C.
1694
+ * ext/oci8/metadata.c: use oci8_make_integer() instead of ora_number_to_str()
1695
+ which was implemented in oranumber.c.
1696
+ * ext/oci8/ocinumber.c: add OCINumber#initialize_copy for OCINumber#copy.
1697
+ * lib/oci8.rb.in: delete "require 'oci8/interval.rb'".
1698
+ * lib/oci8/oci8.rb: remove OraNumber-related code.
1699
+ * lib/oci8/compat.rb: add emulation code of OraNumber by using OCINumber.
1700
+ * test_oranumber.rb: use assert_in_delta when comparing Float value.
1701
+
1702
+ 2006-11-22 KUBO Takehiro <kubo@jiubao.org>
1703
+ * ext/oci8/ocidatetime.c: bind types for interval_ym and interval_ds
1704
+ are now Rational instread of OCI8::IntervalYM and OCI8::IntervalDS.
1705
+ * lib/oci8/interval.rb: delete OCI8::IntervalYM and OCI8::IntervalDS.
1706
+ * lib/oci8/oci8.rb: delete OCI8::IntervalYM and OCI8::IntervalDS.
1707
+ * test/test_all.rb: call testcases for timestamps and intervals.
1708
+ * test/test_datetime.rb: add testcases for timestamps and intervals.
1709
+
1710
+ 2006-11-19 KUBO Takehiro <kubo@jiubao.org>
1711
+ * ext/oci8/oci8.c: fix the default value of OCI8#long_read_len.
1712
+ * ext/oci8/stmt.c: fix bug when execute RENAME statement.
1713
+ * test/test_oci8.rb: add testcases for above two problems.
1714
+ The testcases are contributed by Pete Schwamb.
1715
+
1716
+ 2006-11-18 KUBO Takehiro <kubo@jiubao.org>
1717
+ * ext/oci8/tdo.c: add a new class OCI8::TDO to fetch Oracle's
1718
+ object types.
1719
+ * ext/oci8/bind.c, ext/oci8/extconf.rb, ext/oci8/lob.c,
1720
+ ext/oci8/oci8.h, ext/oci8/oci8lib.c, ext/oci8/stmt.c,
1721
+ lib/oci8/oci8.rb: use OCI8::TDO to fetch Oracle's object
1722
+ types.
1723
+ * ext/oci8/lob.c: add oci8_make_clob() and oci8_make_blob()
1724
+ for OCI8::TDO.
1725
+ * ext/oci8/metadata.c: export cOCI8MetadataBase for OCI8::TDO.
1726
+ * ext/oci8/error.c: prepend error line in C to the exception's
1727
+ backtrace for debug.
1728
+
1729
+ 2006-11-18 KUBO Takehiro <kubo@jiubao.org>
1730
+ * ext/oci8/oraconf.rb: add check code whether oci.h exists.
1731
+
1732
+ 2006-11-09 KUBO Takehiro <kubo@jiubao.org>
1733
+ * ext/oci8/oci8.h, ext/oci8/ocinumber.c: rename make_oci_number()
1734
+ and make_integer to oci8_make_ocinumber() and oci8_make_integer().
1735
+ add oci8_make_float().
1736
+ * ext/oci8/oci8.h, ext/oci8/ocidatetime.c, lib/oci8/oci8.rb: add
1737
+ oci8_make_datetime_from_ocidate(), oci8_make_datetime_from_ocidatetime(),
1738
+ oci8_make_interval_ym() and oci8_make_interval_ds().
1739
+ OCI8::BindType::IntervalYM#get return an OCI8::IntervalYM instead of an array.
1740
+ OCI8::BindType::IntervalDS#get return an OCI8::IntervalDS instead of an array.
1741
+ OCI8::BindType::DateTime#get return a DateTime instead of an array.
1742
+
1743
+ 2006-11-04 KUBO Takehiro <kubo@jiubao.org>
1744
+ * ext/oci8/oci8.h: add callbacks for piecewise operations.
1745
+ * ext/oci8/oraconf.rb: add an error message for intel mac.
1746
+ * ext/oci8/bind.c: add OCI8::BindType::Long and
1747
+ OCI8::BindType::LongRaw.
1748
+ * ext/oci8/stmt.c: fix OCI8::Cursor#define, OCI8::Cursor#bind_param,
1749
+ OCI8::Cursor#exec and OCI8::Cursor#fetch for piecewise operations.
1750
+ * ext/oci8/lob.c, ext/oci8/oradate.c, ext/oci8/ocinumber.c,
1751
+ ext/oci8/rowid.c, ext/oci8/ocidatetime.c, ext/oci8/oranumber.c:
1752
+ follow up the change of piecewise operations.
1753
+ * lib/oci8/oci8.rb: use OCI8::BindType::Long and
1754
+ OCI8::BindType::LongRaw for LONG and LONG RAW respectively.
1755
+
1756
+ 2006-08-18 KUBO Takehiro <kubo@jiubao.org>
1757
+ * ext/oci8/oradate.c: add OraDate.hash().
1758
+ * ext/oci8/oranumber.c: OraNumber.new() now accepts a String.
1759
+ * lib/oci8/oci8.rb: add YAML support for OraDate and OraNumber.
1760
+ * test/test_oranumber.rb: add testcases for OraNumber.new(aString).
1761
+
1762
+ 2006-08-17 KUBO Takehiro <kubo@jiubao.org>
1763
+ * ext/oci8/bind.c:
1764
+ Use long instead of int to bind Fixnum.
1765
+ * lib/oci8.rb.in: add a workaround code on cygwin version.
1766
+ Cygwin manages environment variables by itself. They don't
1767
+ synchroize with Win32's ones. set some Oracle's environment
1768
+ variables to win32.
1769
+
1770
+ 2006-08-03 KUBO Takehiro <kubo@jiubao.org>
1771
+ * lib/oci8.rb.in: add a workaround code on cygwin version.
1772
+ Cygwin manages environment variables by itself. They don't
1773
+ synchroize with Win32's ones. set some Oracle's environment
1774
+ variables to win32.
1775
+
1776
+ 2006-07-29 KUBO Takehiro <kubo@jiubao.org>
1777
+ * ext/oci8/oradate.c: add OraDate#dup, OraDate#clone, OraDate#_dump
1778
+ and OraDate._load.
1779
+ * ext/oci8/oranumber.c: add OraNumber#dup, OraNumber#clone,
1780
+ OraNumber#_dump and OraNumber._load.
1781
+ * ext/oci8/rowid.c: add OCIRowid#dup, OCIRowid#clone.
1782
+ These methods raise an error when using Oracle 8.x.
1783
+ * test/test_oradate.rb: add tests for OraDate#dup, OraDate#clone,
1784
+ OraDate#_dump and OraDate._load.
1785
+ * test/test_oranumber.rb: add tests for OraNumber#dup,
1786
+ OraNumber#clone, OraNumber#_dump and OraNumber._load.
1787
+
1788
+ 2006-07-22 KUBO Takehiro <kubo@jiubao.org>
1789
+ * ext/oci8/metadata.c, lib/oci8/metadata.rb: add a type_metadata method
1790
+ to OCI8::Metadata::Table, OCI8::Metadata::View, OCI8::Metadata::TypeAttr,
1791
+ OCI8::Metadata::Collection, OCI8::Metadata::Column, OCI8::Metadata::Argument
1792
+ OCI8::Metadata::TypeArgument and OCI8::Metadata::TypeResult.
1793
+
1794
+ 2006-07-21 KUBO Takehiro <kubo@jiubao.org>
1795
+ * ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/bind.c, ext/oci8/stmt.c,
1796
+ lib/oci8/oci8.rb: Support LONG and LONG RAW longer than 65535 bytes.
1797
+ Add OCI8#long_read_len and OCI8#long_read_len= to set max long
1798
+ length.
1799
+ * ext/oci8/oraconf.rb: fix typo.
1800
+
1801
+ 2006-07-20 KUBO Takehiro <kubo@jiubao.org>
1802
+ * ext/oci8/oci8.h, ext/oci8/rowid.c, ext/oci8/oci8lib.c: change
1803
+ Rowid's internal structure when OCIRowidToChar is available.
1804
+ The new structure can be passed to Marshal.
1805
+ * VERSION, Makefile, ext/oci8/extconf.rb:
1806
+ read version string from the VERSION file.
1807
+
1808
+ 2006-06-27 KUBO Takehiro <kubo@jiubao.org>
1809
+ Many method move to C layer. Add support of Timestamp, Interval
1810
+ year to month and Interval day to second. Oracle's Date become
1811
+ DateTime instead of OraDate.
1812
+ * ext/oci8/env.c: 1. delete code registering ruby_xmalloc(),
1813
+ ruby_xrealloc() and ruby_xfree() to OCI library. These
1814
+ API cannot be called only in ruby VM's native thread.
1815
+ 2. add workaround code to avoid breaking ENV.
1816
+ * ext/oci8/oci8.c: move OCI8#parse from ruby to C layer.
1817
+ * ext/oci8/oci8.h, ext/oci8/oci8lib.c: add oci8_id_* variables.
1818
+ * ext/oci8/ocidatetime.c: delete OCIDateTime and OCIInterval.
1819
+ add OCI8::BindType::DateTime, OCI8::BindType::IntervalYM and
1820
+ OCI8::BindType::IntervalDS.
1821
+ * ext/oci8/ocinumber.c: delete OCI8::Math::E, OCINumber#trunc
1822
+ and OCINumber#sign. add OCINumber#truncate and
1823
+ OCI8::BindType::Integer.
1824
+ * ext/oci8/oraconf.rb:fix for OracleXE windows version. OracleXE's
1825
+ registry path is \\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_XE.
1826
+ * ext/oci8/oranumber.c: move OCI8::BindType::Integer to ocinumber.c
1827
+ * ext/oci8/stmt.c: OCI8::Cursor#initialize become private.
1828
+ move OCI8::Cursor#fetch, OCI8::Cursor#[], OCI8::Cursor#[]=,
1829
+ OCI8::Cursor#keys from ruby to C layer. add a private method
1830
+ OCI8::Cursor#__defined?
1831
+ * lib/oci8/oci8.rb: many methods move to C layer.
1832
+ * lib/oci8/interval.rb: add OCI8::IntervalYM an OCI8::IntervalDS.
1833
+ * lib/ocidatetime.rb: deleted.
1834
+ * test/test_dbi.rb: fix test script which retrieving Date.
1835
+ * test/test_oci8.rb: fix test script which retrieving Date.
1836
+
1837
+ 2006-03-05 KUBO Takehiro <kubo@jiubao.org>
1838
+ * ext/oci8/oraconf.rb: add check_ruby_header to warn when
1839
+ broken darwin ruby.
1840
+ add export #{ld_path} in check_instant_client().
1841
+
1842
+ 2006-02-25 KUBO Takehiro <kubo@jiubao.org>
1843
+ * ext/oci8/metadata.c: set default value zero in C of private method
1844
+ OCI::Metadata::Base#__get_*. add a private method
1845
+ OCI::Metadata::Base#__charset_name.
1846
+ * lib/DBD/OCI8/OCI8.rb: fix to work with ruby-oci8 0.1 also.
1847
+ * lib/oci8/metadata.rb: refactor and add comments for rdoc.
1848
+
1849
+ 2006-02-11 KUBO Takehiro <kubo@jiubao.org>
1850
+ * lib/oci8.rb.in: require oci8/compat.rb also.
1851
+ * lib/oci8/compat.rb: add a new file. Old version's features
1852
+ are moved from lib/oci8/oci8.rb.
1853
+ * lib/oci8/metadata.rb: data_type's return value become symbol
1854
+ instead of number.
1855
+ * lib/oci8/oci8.rb: Old version's features are moved to
1856
+ lib/oci8/compat.rb.
1857
+
1858
+ 2006-02-09 KUBO Takehiro <kubo@jiubao.org>
1859
+ add OCI8::Metadata module.
1860
+ * ext/oci8/error.c: add oci8_get_error_code().
1861
+ * ext/oci8/extconf.rb: delete param.o and add metadata.o.
1862
+ * ext/oci8/metadata.c: add a new file.
1863
+ * ext/oci8/oci8.h: add oci8_get_error_code(), Init_oci8_metadata(),
1864
+ oci8_metadata_create() and ora_number_to_str().
1865
+ delete and oci8_param_create().
1866
+ * ext/oci8/oci8lib.c: call Init_oci8_metadata() instead of
1867
+ Init_oci8_param().
1868
+ * ext/oci8/oranumber.c: export ora_number_to_str().
1869
+ * ext/oci8/param.c: deleted.
1870
+ * ext/oci8/stmt.c: call oci8_metadata_create instead of
1871
+ oci8_param_create().
1872
+ * lib/oci8.rb.in: require 'oci8/metadata.rb'
1873
+ * lib/oci8/metadata.rb: add a new file.
1874
+
1875
+ 2006-02-08 KUBO Takehiro <kubo@jiubao.org>
1876
+ * lib/oci8.rb: move almost code to lib/oci8/oci8.rb.
1877
+ * lib/oci8/oci8.rb: moved from lib/oci8.rb.
1878
+
1879
+ 2006-02-04 KUBO Takehiro <kubo@jiubao.org>
1880
+ merge OCIStmt to OCi8::Curosr.
1881
+ * ext/oci8/oci8.c: implement OCI8::autocommit? and OCI8::autocommit=
1882
+ in C layer.
1883
+ * ext/oci8/oci8.h: fix oci8_svcctx_t structure to support
1884
+ OCI8::autocommit in C layer. fix Init_oci8_stmt() prototype.
1885
+ * ext/oci8/oci8lib.c: fix Init_oci8_stmt().
1886
+ * ext/oci8/stmt.c: OCIStmt become OCI8::Cursor. Almost OCIStmt's
1887
+ methods become private methods, which are called by ruby layer.
1888
+ * lib/oci8.rb.in: delete OCI8::autocommit?, OCI8::autocommit=,
1889
+
1890
+ 2006-02-02 KUBO Takehiro <kubo@jiubao.org>
1891
+ move non-blocking handling code from oci8.rb to oci8lib.so.
1892
+ * ext/oci8/error.c: add OCIBreak class.
1893
+ * ext/oci8/oci8.c: move oci8_svcctx_t to oci8.h.
1894
+ change oci8_commit(), oci8_rollback(), oci8_non_blocking_p()
1895
+ and oci8_set_non_blocking() to use oci_rc macro.
1896
+ change oci8_break() for oci_rc macro.
1897
+ delete oci8_reset(). OCIReset is called in oci_rc macro now.
1898
+ change oci8_get_svcctx() scope to global.
1899
+ implement OCI8#commit, OCI8#rollback, OCI8#non_blocking?,
1900
+ OCI8#non_blocking=, OCI8#break in C layer.
1901
+ * ext/oci8/oci8.h: move oci8_svcctx_t from oci8.c.
1902
+ implement oci_rc2 and oci_rc macro.
1903
+ * ext/oci8/stmt.c: change oci8_stmt_execute() and oci8_stmt_fetch()
1904
+ to use oci_rc macro.
1905
+ * lib/oci8.rb.in: delete non-blocking handling code.
1906
+ delete OCI8#commit, OCI8#rollback, OCI8#non_blocking?,
1907
+ OCI8#non_blocking=, OCI8#break from ruby layer.
1908
+
1909
+ 2006-01-29 KUBO Takehiro <kubo@jiubao.org>
1910
+ * ext/oci8/oci8lib.c: rename OCI8Base to OCIHandle.
1911
+
1912
+ 2006-01-28 KUBO Takehiro <kubo@jiubao.org>
1913
+ * ext/oci8/const.c: delete this file.
1914
+ delete global constants OCI_TYPECODE_*.
1915
+ * ext/oci8/extconf.rb: delete const.o from compilation objects.
1916
+ * ext/oci8/oci8lib.c: move oci8_id_new, OCI_DEFAULT and
1917
+ OCI_COMMIT_ON_SUCCESS from const.c.
1918
+ rename Init_oci8_svcctx() to Init_oci8().
1919
+ * ext/oci8/oci8.c: rename Init_oci8_svcctx() to Init_oci8().
1920
+ * ext/oci8/oci8.h: rename Init_oci8_svcctx() to Init_oci8() and so on...
1921
+
1922
+ 2006-01-28 KUBO Takehiro <kubo@jiubao.org>
1923
+ * ext/oci8/bind.c, ext/oci8/error.c, ext/oci8/oci8.c,
1924
+ ext/oci8/ocidatetime.c, ext/oci8/oradate.c,
1925
+ ext/oci8/oranumber.c, ext/oci8/param.c, ext/oci8/rowid.c,
1926
+ ext/oci8/stmt.c: fix indentation.
1927
+ * .cvsignore, ext/oci8/.cvsignore: added.
1928
+
1929
+ 2005-10-22 KUBO Takehiro <kubo@jiubao.org>
1930
+ * ext/oci8/oci8lib.c, ext/oci8/oci8.c, ext/oci8/svcctx.c, ext/oci8/extconf.rb:
1931
+ oci8.c is renamed to oci8lib.c.
1932
+ svcctx.c is renamed to oci8.c.
1933
+
1934
+ 2005-10-22 KUBO Takehiro <kubo@jiubao.org>
1935
+ * ext/oci8/ocidatetime.c: fix to bind OCIDateTime.
1936
+ * ext/oci8/oraconf.rb: add -R to linker on Solaris and Linux.
1937
+ http://rubyforge.org/tracker/index.php?func=detail&aid=2148&group_id=256&atid=1051
1938
+ * ext/oci8/svcctx.c: change a setter name. __non_blocking= doesn't work. use
1939
+ __set_non_blocking instead.
1940
+ * lib/oci8.rb.in: add ruby's Datetime support.
1941
+ * lib/ocidatetime.rb: add a ruby's Datetime support file.
1942
+ * test/test_all.rb: fix
1943
+ * test/test_break.rb: add two assesion to check a non_blocking status.
1944
+ * test/test_dbi.rb, test/test_oci8.rb: testcases for DateTime.
1945
+ * test/test_oradate.rb: delete an unsuccessfull testcase, which depends on libc implementation.
1946
+
1947
+ 2005-07-17 KUBO Takehiro <kubo@jiubao.org>
1948
+ * ext/oci8/lob.c, ext/oci8/oci8.c, ext/oci8/oci8.h, lib/oci8.rb.in:
1949
+ delete OCILobLocator. implement OCI8::LOB by C instead of ruby.
1950
+ * ext/oci8/svcctx.c: add more check in oci8_get_svcctx().
1951
+
1952
+ 2005-07-17 KUBO Takehiro <kubo@jiubao.org>
1953
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/oci8.h, ext/oci8/ocidatetime.c,
1954
+ ext/oci8/ocinumber.c, ext/oci8/oradate.c, ext/oci8/oranumber.c,
1955
+ ext/oci8/rowid.c, ext/oci8/stmt.c, ext/oci8/svcctx.c:
1956
+ change arguments of (oci8_bind_class_t *)->init(). change the return
1957
+ value of oci8_get_svcctx(). add oci8_get_oci_session().
1958
+ * lib/oci8.rb.in: change arguments of OCI8::BindType:Base.new().
1959
+
1960
+ 2005-07-16 KUBO Takehiro <kubo@jiubao.org>
1961
+ * metaconfig: move "require 'base64'" and "require 'zlib'" to the
1962
+ next line of "def get_zcontent(file)" for a ruby which doesn't
1963
+ have 'zlib'.
1964
+
1965
+ 2005-07-10 KUBO Takehiro <kubo@jiubao.org>
1966
+ * ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/svcctx.c, lib/oci8.rb.in:
1967
+ OCISvcCtx class is merged to OCI8 class. OCISvcCtx's public instance
1968
+ methods become OCI8's private instance methods.
1969
+ * ext/oci8/depend: deleted.
1970
+
1971
+ 2005-07-10 KUBO Takehiro <kubo@jiubao.org>
1972
+ * Makefile, ext/oci8/extconf.rb: change version to 0.2.0-alpha.
1973
+ * ext/oci8/extconf.rb: add "ocidatetime.o" to $objs. add '--with-instant-client'
1974
+ to Makefile when setup.rb is called with '--with-instant-client'.
1975
+ * ext/oci8/oci8.c: add oci8_base_class. fix bug in oci8_handle_initialize().
1976
+ call Init_oci_datetime() in Init_oci8().
1977
+ * ext/oci8/oci8.h: add macros oci_lc, CHECK_STRING, TO_STRING_PTR and TO_STRING_LEN.
1978
+ * ext/oci8/ocinumber.c: add oci8_get_ocinumber().
1979
+ * ext/oci8/ocidatetime.c: add a new file for OCIDateTime.
1980
+
1981
+ 2005-07-09 KUBO Takehiro <kubo@jiubao.org>
1982
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/oci8.h, ext/oci8/oradate.c,
1983
+ ext/oci8/oranumber.c, ext/oci8/rowid.c, ext/oci8/stmt.c:
1984
+ use doubly linked list to free OCI8::BindType::*.
1985
+ * ext/oci8/extconf.rb, ext/oci8/oci8.c, ext/oci8/ocinumber.c: add OCINumber.
1986
+
1987
+ 2005-07-03 KUBO Takehiro <kubo@jiubao.org>
1988
+ * ext/oci8/*.c, ext/oci8/*.h: remove oci8_handle_t and oci8_base_class_t.
1989
+ use oci8_base_t and oci8_bind_t instead of them. use oci8_base_class_t
1990
+ and oci8_bind_class_t.
1991
+ * ext/oci8/descriptor.c, ext/oci8/handle.c: removed.
1992
+ * ext/oci8/rowid.c: added.
1993
+
1994
+ 2005-07-01 KUBO Takehiro <kubo@jiubao.org>
1995
+ * ext/oci8/oraconf.rb: try default $libs then get from demo_rdbms.mk.
1996
+
1997
+ 2005-06-29 KUBO Takehiro <kubo@jiubao.org>
1998
+ * ext/oci8/oraconf.rb: don't read sysliblist when instant client.
1999
+
2000
+ 2005-06-12 KUBO Takehiro <kubo@jiubao.org>
2001
+ * ext/oci8/const.c: delete unused constants.
2002
+ move some oci_id_* to ext/oci8/error.c.
2003
+ move oci8_sym_*stmt to ext/oci8/stmt.c.
2004
+ * ext/oci8/error.c:
2005
+ move some oci_id_* from ext/oci8/const.c.
2006
+ move subclasses of cOCIException from ext/oci8/oci8.c.
2007
+ * ext/oci8/extconf.rb: add have_func("localtime_r").
2008
+ * ext/oci8/handle.c: delete explicit OCIParam.
2009
+ * ext/oci8/lob.c: delete #ifdef OCI8_USE_CALLBACK_LOB_READ.
2010
+ * ext/oci8/oci8.c:
2011
+ move subclasses of cOCIException to ext/oci8/error.c.
2012
+ move cOraDate to ext/oci8/oradate.c.
2013
+ move cOraNumber to ext/oci8/oranumber.c.
2014
+ * ext/oci8/oci8.h:
2015
+ move ora_date_t to ext/oci8/oradate.c.
2016
+ move ora_number_t and ora_vnumber_t to ext/oci8/oranumber.c.
2017
+ * ext/oci8/oradate.c: fix indentation.
2018
+ move cOraDate from ext/oci8/oci8.c.
2019
+ move ora_date_t from ext/oci8/oci8.h.
2020
+ * ext/oci8/oranumber.c: fix indentation.
2021
+ move cOraNumber from ext/oci8/oci8.c.
2022
+ move ora_number_t and ora_vnumber_t from ext/oci8/oci8.h.
2023
+ * ext/oci8/param.c: delete OCIParam#paramGet().
2024
+ * ext/oci8/stmt.c:
2025
+ move oci8_sym_*stmt from ext/oci8/const.c.
2026
+ fix OCIStmt#prepare() and OCIStmt#execute().
2027
+
2028
+ 2005-06-12 KUBO Takehiro <kubo@jiubao.org>
2029
+ * ext/oci8/bind.c: add oci8_register_bind_type().
2030
+ move bind_rowid* to ext/oci8/descriptor.c.
2031
+ move bind_clob* and bind_blob* to ext/oci8/lob.c.
2032
+ move bind_oradate* to ext/oci8/oradate.c.
2033
+ move bind_oranumber* and bind_integer* to ext/oci8/oranumber.c.
2034
+ move bind_stmt* to ext/oci8/stmt.c.
2035
+ * ext/oci8/const.c: add oci8_sym_*_stmt. delete ruby constants OCI_STMT_*.
2036
+ * ext/oci8/descriptor.c: move bind_rowid* from ext/oci8/bind.c.
2037
+ * ext/oci8/lob.c: move bind_clob* and bind_blob* from ext/oci8/bind.c.
2038
+ * ext/oci8/oci8.c: change initialization order for oci8_register_bind_type().
2039
+ * ext/oci8/oci8.h: add oci8_register_bind_type(). add oci8_sym_*_stmt.
2040
+ * ext/oci8/oradate.c: move bind_oradate* from ext/oci8/bind.c.
2041
+ oci8_set_ora_date() become a static function.
2042
+ delete oci8_get_ora_date().
2043
+ * ext/oci8/oranumber.c: move bind_oranumber* and bind_integer* from ext/oci8/bind.c.
2044
+ * ext/oci8/stmt.c: move bind_stmt* from ext/oci8/bind.c.
2045
+ OCIStmt#stmt_type returns a Symbol instead of a Fixnum.
2046
+ * lib/oci8.rb.in: OCI8::Cursor#type returns a Symbol instead of a Fixnum.
2047
+
2048
+ 2005-06-12 KUBO Takehiro <kubo@jiubao.org>
2049
+ * ext/oci8/extconf.rb: add have_func("OCILobLocatorAssign").
2050
+ * ext/oci8/lob.c: delete OCILobLocator#getChunkSize().
2051
+ use OCILobAssign instead of OCILobLocatorAssign on Oracle 8.
2052
+ * ext/oci8/attr.c, ext/oci8/oci8.h: delete OCI*#attrGet(), OCI*#attrSet().
2053
+ * ext/oci8/const.c: delete OCI_ATTR_* constants.
2054
+ * ext/oci8/descriptor.c: delete OCIDescriptor#attrGet(), OCIDescriptor#attrSet().
2055
+ * ext/oci8/handle.c: delete OCIHandle#attrGet(), OCIHandle#attrSet().
2056
+ * ext/oci8/param.c: add OCIParam#name, OCIParam#data_type, OCIParam#data_size,
2057
+ OCIParam#precision and OCIParam#scale.
2058
+ * ext/oci8/stmt.c: add OCIStmt#stmt_type, OCIStmt#row_count, OCIStmt#rowid and
2059
+ OCIStmt#param_count.
2060
+ * lib/oci8.rb.in: use OCIParam#name, OCIParam#data_type, OCIParam#data_size,
2061
+ OCIParam#precision, OCIParam#scale, OCIStmt#stmt_type, OCIStmt#row_count,
2062
+ OCIStmt#rowid and OCIStmt#param_count instead of OCIHandle#attrGet() and
2063
+ OCIDescriptor#attrGet().
2064
+
2065
+ 2005-06-12 KUBO Takehiro <kubo@jiubao.org>
2066
+ * ext/oci8/oraconf.rb: rewrie OraConf#check_lp64().
2067
+ * ext/oci8/bind.c, ext/oci8/descriptor.c, ext/oci8/env.c,
2068
+ ext/oci8/handle.c, ext/oci8/lob.c, ext/oci8/oci8.h,
2069
+ ext/oci8/stmt.c, ext/oci8/svcctx.c, lib/oci8.rb.in:
2070
+ delete an OCIEnv instance from each instance method's argument.
2071
+ get it from the internal global variable in C.
2072
+ * ext/oci8/oci8.c, lib/DBD/OCI8/OCI8.rb: change the OCIBind class name
2073
+ to OCI8::BindType::Base.
2074
+ * lib/oci8.rb.in: fix typo rb_eArgError to ArgumentError.
2075
+
2076
+ 2005-06-08 KUBO Takehiro <kubo@jiubao.org>
2077
+ * ext/oci8/oraconf.rb: test __64BIT__ to check whether lp64. (for AIX 64bit)
2078
+
2079
+ 2005-05-31 KUBO Takehiro <kubo@jiubao.org>
2080
+ * ext/oci8/oraconf.rb: fix for cygwin. fix for oracle instant client.
2081
+ * metaconfig: add distbin task.
2082
+
2083
+ 2005-05-29 KUBO Takehiro <kubo@jiubao.org>
2084
+ * ext/oci8/oraconf.rb: change the detection logic for Multiple
2085
+ Oracle Homes on Windows.
2086
+
2087
+ 2005-05-24 KUBO Takehiro <kubo@jiubao.org>
2088
+ * ext/oci8/oraconf.rb: use "-L#{@oracle_home}/lib(32) -lclntsh" as
2089
+ a last resort.
2090
+
2091
+ 2005-04-14 KUBO Takehiro <kubo@jiubao.org>
2092
+ * ext/oci8/oraconf.rb: fix for Cygwin with Oracle instant client.
2093
+ add Oraconf#lp64, which is true when long and pointer are 64 bits.
2094
+ improve error message.
2095
+
2096
+ 2005-04-10 KUBO Takehiro <kubo@jiubao.org>
2097
+ * README: change the document format for rdoc.
2098
+ * ext/oci8/bind.c, ext/oci8/descriptor.c, ext/oci8/env.c,
2099
+ ext/oci8/error.c, ext/oci8/const.c, ext/oci8/handle.c
2100
+ ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/stmt.c:
2101
+ change bind_type_t structure. bind_* variables in binc.c
2102
+ become OCI8::BindType::* which are subclasses of OCIBind.
2103
+ add envh member to oci8_handle_t and oci8_bind_handle_t.
2104
+ add OCIRowid#initialize.
2105
+ delete macros to compile on ruby 1.6.
2106
+ * lib/oci8.rb.in: add comments for rdoc.
2107
+ change OCI8::BindType::*.
2108
+ * lib/DBD/OCI8/OCI8.rb
2109
+ change DBI::DBD::OCI8::BindType::*.
2110
+
2111
+ 2005-04-06 KUBO Takehiro <kubo@jiubao.org>
2112
+ * ext/oci8/oci8.h, ext/oci8/handle.c: delete enum oci8_bind_type.
2113
+ add oci8_bind_type_t.
2114
+ * ext/oci8/bind.c: add oci8_bind_type_t structures bind_string, bind_raw,
2115
+ bind_fixnum, bind_float, bind_oradate, bind_integer, bind_oranumber,
2116
+ bind_rowid, bind_clob, bind_blob, and bind_stmt.
2117
+ add oci8_bind_type_set() and oci8_bind_type_get() to get/set
2118
+ an oci8_bind_type_t structure.
2119
+ delete oci8_get_value() and oci8_set_value(), use
2120
+ (oci8_bind_type_t*)->get()/set() instead.
2121
+ * ext/oci8/stmt.c: change check_bind_type() by using oci8_bind_type_t.
2122
+ change oci8_define_by_pos(), oci8_bind_by_pos() and oci8_bind_by_name().
2123
+ * ext/oci8/MANIFEST, ext/oci8/depend, ext/oci8/extconf.rb, ext/oci8/oci8.c,
2124
+ ext/oci8/define.c: delete define.c and Init_define().
2125
+ * lib/oci8.rb.in: change OCI8::BindType::Float, OCI8::BindType::Fixnum,
2126
+ OCI8::BindType::Integer and OCI8::BindType::OraNumber for in-bind.
2127
+
2128
+ 2005-04-03 KUBO Takehiro <kubo@jiubao.org>
2129
+ * ext/oci8/oraconf.rb: improve Oracle instance client check:
2130
+ 1. add more strict libclntsh.so check.
2131
+ 2. change LD_LIBRARY_PATH message by its platform.
2132
+ 3. add '-Wl,-rpath,#{lib_dir}' to $libs when Linux.
2133
+ * ext/oci8/MANIFEST, ext/oci8/depend, ext/oci8/extconf.rb:
2134
+ delete server.c and session.c.
2135
+ * ext/oci8/attr.c: delete OCISvcCtx#attrGet(OCI_ATTR_NONBLOCKING_MODE),
2136
+ OCISvcCtx#attrSet(OCI_ATTR_NONBLOCKING_MODE, nil),
2137
+ OCISvcCtx#attrSet(OCI_ATTR_SERVER, aOCIServer),
2138
+ OCISvcCtx#attrSet(OCI_ATTR_SESSION, aOCISession).
2139
+ * ext/oci8/const.c: delete constants unused by high-level API.
2140
+ delete oci8_id_server, oci8_id_session.
2141
+ * ext/oci8/handle.c, ext/oci8/descriptor.c: use ruby1.8 allocation
2142
+ framework.
2143
+ * ext/oci8/env.c: add OCIEnv.new. delete OCIEnv.initialise(),
2144
+ OCIEnv.init(), OCIEnv.create(), OCIEnv.terminate(),
2145
+ OCIEnv#alloc(), OCIEnv#logon().
2146
+ * ext/oci8/oci8.c, ext/oci8/oci8.h: use ruby1.8 allocation
2147
+ framework. delete OCIServer and OCISession.
2148
+ * ext/oci8/lob.c: add OCILobLocator.new
2149
+ * ext/oci8/stmt.c: add OCIStmt.new
2150
+ * ext/oci8/svcctx.c: add OCISvcCtx.new, OCISvcCtx#non_blocking?,
2151
+ OCISvcCtx#non_blocking=
2152
+ * ext/oci8/server.c, ext/oci8/session.c: deleted.
2153
+ * lib/oci8.rb.in: use OCIEnv.new and OCISvcCtx.new instead of
2154
+ OCIEnv.create, OCIEnv#alloc, OCISession#begin, OCIServer#attach.
2155
+ use OCISvcCtx.logoff instead of OCISession#end, OCIServer#detach,
2156
+ OCISvcCtx.free. use OCISvcCtx#non_blocking? instead of
2157
+ OCISvcCtx#attrGet(OCI_ATTR_NONBLOCKING_MODE).
2158
+ use OCISvcCtx#non_blocking= instead of
2159
+ OCISvcCtx#attrSet(OCI_ATTR_NONBLOCKING_MODE, nil).
2160
+ use <OCICLASS>.new(anOCIEnv) instead of
2161
+ OCIEnv#alloc(<OCIClass>)
2162
+ * lib/DBD/OCI8/OCI8.rb: use OCIStmt.new(env) instead of
2163
+ env.alloc(OCIStmt).
2164
+
2165
+ 2005-03-27 KUBO Takehiro <kubo@jiubao.org>
2166
+ * ext/oci8/server.c: delete OCIServer#version, OCIServer#break, OCIServer#reset.
2167
+ * ext/oci8/stmt.c: OCIStmt#bindByName accepts a symbol as a bind name.
2168
+ * lib/oci8.rb.in: add OCI8::LOB#sync, OCI8::LOB#sync= and OCI8::LOB#flush.
2169
+ * test/test_bind_raw.rb, test/test_bind_time.rb, test/test_clob.rb,
2170
+ test/test_oradate.rb, test/test_oranumber.rb: use OCI8 high-level API
2171
+ instead of low-level API.
2172
+
2173
+ 2005-03-24 KUBO Takehiro <kubo@jiubao.org>
2174
+ * oci8.rb.in: fix bug on binding Time or Date.
2175
+ * support/*: deleted.
2176
+ * test/*.rb: use 'test/unit' instead of runit.
2177
+ ruby 1.6.8 won't be supported by this commit.
2178
+ * ext/oci8/MANIFEST, ext/oci8/depend, ext/oci8/describe.c(deleted),
2179
+ ext/oci8/env.c, ext/oci8/extconf.rb, ext/oci8/handle.c,
2180
+ ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/svcctx.c:
2181
+ delete OCIDescribe and OCISvcCtx#describeAny. OCIDescribe isn't used by
2182
+ oci8 high-level API.
2183
+ * test/test_all.rb, test/test_describe.rb(deleted): delete OCIDescribe
2184
+ test cases.
2185
+
2186
+ 2005-03-23 KUBO Takehiro <kubo@jiubao.org>
2187
+ * oci8.rb.in, OCI8.rb:
2188
+ delete OCI8.register_type_fixer, OCI8::TypeFixer.
2189
+ add OCI8::BindType::* instead.
2190
+
2191
+ 2005-03-21 KUBO Takehiro <kubo@jiubao.org>
2192
+ * oci8.rb.in, OCI8.rb: refactoring OCI8::Cursor#define_a_column
2193
+ * Makefile, ext/oci8/extconf.rb: change version to 0.1.10
2194
+
2195
+ 2005-03-20 KUBO Takehiro <kubo@jiubao.org>
2196
+ * ext/oci8/stmt.c, lib/oci8.rb.in, lib/DBD/OCI8/OCI8.rb, test/test_dbi.rb:
2197
+ enable DATE to be bound as a DBI::Date or a DBI::Timestamp.
2198
+
2199
+ 2005-03-20 KUBO Takehiro <kubo@jiubao.org>
2200
+ * ext/oci8/stmt.c, lib/oci8.rb.in, test/test_oci8.rb:
2201
+ bind a ref cursor as an OCI8::Cursor.
2202
+ apply a patch at <URL:http://rubyforge.org/tracker/index.php?func=detail&aid=1409&group_id=256&atid=1053>.
2203
+
2204
+ 2005-01-16 KUBO Takehiro <kubo@jiubao.org>
2205
+
2206
+ * lib/oci8.rb.in: change default bindtype for NUMBER with
2207
+ unspecified scale.
2208
+ (This problem is reported by William Lawson, Dmitry Maksyoma and Andreas Habel)
2209
+ * lib/oci8.rb.in: add OCI8::Cursor.select_number_as=
2210
+ (for someone who want old bindtype)
2211
+ * lib/oci8.rb.in: add OCI8::Cursor#fetch_hash
2212
+ (contributed by Jason Sweat)
2213
+ * ext/oci8/oci8.h, ext/oci8/stmt.c: don't raise an error when OCI_SUCCESS_WITH_INFO.
2214
+ (suggested by Kenji Nishishiro)
2215
+ * ext/ooi8/oraconf.rb: support Oracle Instant Installer.
2216
+ (suggested by Eustaquio Rangel de Oliveira Jr.)
2217
+ * Makefile, ext/oci8/extconf.rb: change version to 0.1.9
2218
+
2219
+ 2004-10-30 KUBO Takehiro <kubo@jiubao.org>
2220
+
2221
+ * pre-distclean.rb: delete a temporary file made by ext/oci8/oraconf.rb.
2222
+ * ext/oci8/oraconf.rb: 1. change object files to an archive file
2223
+ to work around on Oracle 8.1.7. 2. raise error when OCI.H can't
2224
+ be found on Windows.
2225
+
2226
+ 2004-06-21 KUBO Takehiro <kubo@jiubao.org>
2227
+
2228
+ * Makefile, ext/oci8/extconf.rb: change version to 0.1.8-pre1
2229
+ * lib/DBD/OCI8/OCI8.rb: add DBI::DatabaseHandle#tables. add DBI::StatementHandle#func(:bind_value, ...).
2230
+
2231
+ 2004-03-07 KUBO Takehiro <kubo@jiubao.org>
2232
+
2233
+ * ext/oci8/extconf.rb: fix to use setup.rb.
2234
+ * ext/oci8/oraconf.rb: add support Borland C++ Builder.
2235
+ * lib/oci8.rb.in: support OCI8::CLOB.
2236
+ * test/config.rb: CLOB test file depends on NLS_LANG.
2237
+ * test/test_oci8.rb: fix a test method.
2238
+ * test/test_break.rb: break time depends on OS?...
2239
+ * test/test_dbi_clob.rb: add a new file to test CLOB via DBI.
2240
+
2241
+ 2003-09-20 KUBO Takehiro <kubo@jiubao.org>
2242
+
2243
+ * src/handle.c: fix bug of OCI8::BLOB at running GC.
2244
+ * src/stmt.c: accept Bignum as (({type})) of OCI8::Cursor#define.
2245
+ * src/lib/oci8.rb.in: accept OCI8::BLOB as (({type})) of OCI8::Cursor#define.
2246
+ * src/lib/DBD/OCI8/OCI8.rb: add (({define})) function to DBD::OCI8.
2247
+ * src/oranumber.c, src/oci8.h: use rb_cstr_to_dbl instead of strtod for ruby 1.8.
2248
+ * support/runit/cui/testrunner.rb, support/runit/testcase.rb: fix for ruby 1.8.
2249
+ * test/test_dbi.rb: add a test method.
2250
+ * test/test_oci8.rb: fix a test method.
2251
+
2252
+ 2003-08-03 KUBO Takehiro <kubo@jiubao.org>
2253
+
2254
+ * Makefile: update version to 0.1.5
2255
+ * MANIFEST: add test/test_oci8.rb
2256
+ * src/lib/oci8.rb.in: implement OCI8::Cursor#define, OraDate#to_time and OraDate#to_date.
2257
+ * test/test_oci8.rb: add new tests of OCI8::Cursor#define.
2258
+ * test/test_oradate.rb: add new tests of OraDate#to_time and OraDate#to_date.
2259
+ * test/test_all.rb: call test_oci8.rb.
2260
+
2261
+ 2003-07-20 KUBO Takehiro <kubo@jiubao.org>
2262
+
2263
+ * src/stmt.c: When the error "ORA-01000: maximum open cursors
2264
+ exceeded" happens, run garbage collect to close unused cursors
2265
+ and retry automatically.
2266
+
2267
+ 2003-06-07 KUBO Takehiro <kubo@jiubao.org>
2268
+
2269
+ * Makefile: update version to 0.1.4
2270
+ * src/lob.c: add OCILobLocator#clone()
2271
+ * src/bind.c, src/stmt.c, src/lib/oci8.rb.in: fix BLOB support.
2272
+ * src/lib/DBD/OCI8/OCI8.rb: set the backtrace of an original exception
2273
+ to newly created DBI exception.
2274
+ * src/oraconf.rb: retry get_libs with postfix '32' when compilation
2275
+ failed with Oracle 9i on Solaris.
2276
+ * src/oradate.c: add OraDate#<=> and include 'Comparable'.
2277
+ (contributed by Brian Candler)
2278
+ * test/test_oradate.rb: add test cases of OraDate#<=>.
2279
+
2280
+ 2003-04-27 KUBO Takehiro <kubo@jiubao.org>
2281
+
2282
+ * Makefile: update version to 0.1.3
2283
+ * doc/api.*.rd, doc/api.*.html: update document.
2284
+ * src/lob.c: add new LOB APIs.
2285
+ * src/lib/oci8.rb.in: add BLOB support.
2286
+ * src/lib/DBD/OCI8/OCI8.rb: add 'NonBlocking' support(suggested by Brian Candler).
2287
+ raise subclass of DBI::DatabaseError, which depends on its error code.
2288
+
2289
+ 2003-03-08 KUBO Takehiro <kubo@jiubao.org>
2290
+
2291
+ * Makefile: update version to 0.1.2
2292
+ * src/extconf.rb: use Oraconf#cc_is_gcc.
2293
+ * src/oraconf.rb: support Solaris with gcc.
2294
+ * src/handle.c: suppress warning about uninitialized instance variables.
2295
+ * src/oranumber.c, test/test_oranumber.rb: fix serious bug of
2296
+ conversion routine from Oracle internal number format to string.
2297
+
2298
+ 2003-02-01 KUBO Takehiro <kubo@jiubao.org>
2299
+
2300
+ * Makefile: update version to 0.1.1.
2301
+ * src/oraconf.rb: added. Oracle specific features were moved from
2302
+ src/extconf.rb, src/extunix.rb and src/extwin32.rb
2303
+ * src/extunix.rb, src/extwin32.rb: deleted.
2304
+ * src/extconf.rb: use oraconf.rb.
2305
+ * src/error.c, src/oci8.h: use macro RBOCI_NORETURN not NORETURN.
2306
+ * MANIFEST, Makefile: fix for added and deleted files.
2307
+
2308
+ 2002-09-12 KUBO Takehiro <kubo@jiubao.org>
2309
+
2310
+ * Makefile: update version to 0.1.0.
2311
+ * README: support cygwin and mingw32.
2312
+ * test/test_oradate.rb: delete test_now().
2313
+ * src/extconf.rb: support mingw32.
2314
+
2315
+ 2002-09-12 Hitoshi Endoh <h-endoh@mbf.nifty.com>
2316
+
2317
+ * src/extwin32.rb: support cygwin.
2318
+
2319
+ 2002-09-12 KUBO Takehiro <kubo@jiubao.org>
2320
+
2321
+ * ChangeLog: Added.