ruby-oci8 2.0.4-x86-mingw32

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