ruby-oci8 2.0.4-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.