ruby-oci8 1.0.7-x86-mswin32-60 → 2.0.1-x86-mswin32-60

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. data/ChangeLog +1289 -383
  2. data/Makefile +48 -12
  3. data/NEWS +5 -419
  4. data/README +56 -385
  5. data/VERSION +1 -1
  6. data/dist-files +27 -27
  7. data/lib/.document +2 -0
  8. data/lib/dbd/OCI8.rb +2 -17
  9. data/lib/oci8.rb +48 -1622
  10. data/lib/oci8.rb.in +48 -1622
  11. data/lib/oci8/.document +5 -0
  12. data/lib/oci8/compat.rb +108 -0
  13. data/lib/oci8/datetime.rb +491 -0
  14. data/lib/oci8/encoding-init.rb +40 -0
  15. data/lib/oci8/encoding.yml +537 -0
  16. data/lib/oci8/metadata.rb +2077 -0
  17. data/lib/oci8/object.rb +548 -0
  18. data/lib/oci8/oci8.rb +798 -0
  19. data/lib/oci8/oracle_version.rb +144 -0
  20. data/lib/oci8lib_18.so +0 -0
  21. data/lib/oci8lib_191.so +0 -0
  22. data/metaconfig +3 -3
  23. data/ruby-oci8.gemspec +24 -15
  24. data/setup.rb +4 -4
  25. data/test/config.rb +64 -84
  26. data/test/test_all.rb +14 -21
  27. data/test/test_array_dml.rb +333 -0
  28. data/test/test_bind_raw.rb +18 -25
  29. data/test/test_bind_time.rb +78 -91
  30. data/test/test_break.rb +37 -35
  31. data/test/test_clob.rb +33 -89
  32. data/test/test_connstr.rb +5 -4
  33. data/test/test_datetime.rb +469 -0
  34. data/test/test_dbi.rb +99 -60
  35. data/test/test_dbi_clob.rb +3 -8
  36. data/test/test_metadata.rb +65 -51
  37. data/test/test_oci8.rb +151 -55
  38. data/test/test_oracle_version.rb +70 -0
  39. data/test/test_oradate.rb +76 -83
  40. data/test/test_oranumber.rb +405 -71
  41. data/test/test_rowid.rb +6 -11
  42. metadata +21 -25
  43. data/ext/oci8/oci8lib.so +0 -0
  44. data/ruby-oci8.spec +0 -62
  45. data/support/README +0 -4
  46. data/support/runit/assert.rb +0 -281
  47. data/support/runit/cui/testrunner.rb +0 -101
  48. data/support/runit/error.rb +0 -4
  49. data/support/runit/method_mappable.rb +0 -20
  50. data/support/runit/robserver.rb +0 -25
  51. data/support/runit/setuppable.rb +0 -15
  52. data/support/runit/teardownable.rb +0 -16
  53. data/support/runit/testcase.rb +0 -113
  54. data/support/runit/testfailure.rb +0 -25
  55. data/support/runit/testresult.rb +0 -121
  56. data/support/runit/testsuite.rb +0 -43
  57. data/support/runit/version.rb +0 -3
  58. data/test/test_describe.rb +0 -137
data/ChangeLog CHANGED
@@ -1,63 +1,73 @@
1
- 2009-10-21 KUBO Takehiro <kubo@jiubao.org>
2
- * NEWS: add changes between 1.0.6 and 1.0.7.
3
- * VERSION: change version to 1.0.7.
4
-
5
- 2009-10-04 KUBO Takehiro <kubo@jiubao.org>
6
- * ext/oci8/oraconf.rb:
7
- 1. Fix for ruby 1.8.5 with Oracle 8.x which needs some object
8
- files to link with.
9
- (reported by Jayson Cena)
10
- 2. Add additional error message if under the sudo environemnt.
11
- 3. Print not only error message but also the error backtrace when
12
- oraconf.rb fails.
13
-
14
- 2009-09-13 KUBO Takehiro <kubo@jiubao.org>
15
- * ext/oci8/lob.c, ext/oci8/oci8.h, test/test_clob.rb: Change
16
- OCI8::LOB#write to accept an object which is not a String and
17
- doesn't respond to 'to_str' as IO#write does.
18
- (requested by Christopher Jones)
19
-
20
- 2009-09-12 KUBO Takehiro <kubo@jiubao.org>
21
- * ext/oci8/oraconf.rb: Fixed to compile for AIX instant clients.
22
- (reported by Kazuya Teramoto)
23
-
24
- 2009-05-17 KUBO Takehiro <kubo@jiubao.org>
25
- * NEWS: add changes between 1.0.5 and 1.0.6.
26
- * VERSION: change version to 1.0.6.
27
-
28
- 2009-04-14 KUBO Takehiro <kubo@jiubao.org>
29
- * ext/oci8/oraconf.rb: Gets ORACLE_HOME from the Windows regitry
30
- by enumerating subkeys of \\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE.
31
-
32
- 2009-04-12 KUBO Takehiro <kubo@jiubao.org>
33
- * lib/dbd/OCI8.rb: A data dictionary all_constraints doesn't have
34
- index_name column on Oracle 8i or lower. Rewrite
35
- DBI::DBD::OCI8::Database#column by using all_cons_columns.
36
- (backport from ruby-oci8 trunk)
37
-
38
- 2009-04-12 KUBO Takehiro <kubo@jiubao.org>
39
- * ext/oci8/extconf.rb, ext/oci8/oci8.h, ext/oci8/oraconf.rb:
40
- fix a problem when compiling for Oracle 8.0.
41
- (reported by Axel Reinhold as a ruby-oci8 2.0 issue)
42
- * lib/dbd/OCI8.rb: fix DBI::DBD::OCI8::BindType::DBIStatementHandle
43
- to pass a newly added sanity check in dbi 0.4.1.
44
- (reported by Dirk Herzhauser as a ruby-oci8 2.0 issue)
45
- * test/test_all.rb: fix to use dbi installed as a rubygem.
1
+ 2009-03-17 KUBO Takehiro <kubo@jiubao.org>
2
+ * NEWS: add a new file.
3
+ * VERSION: change version to 2.0.1.
4
+ * Makefile: add targets to make a binary gem for Windows.
5
+ * dist-files: add NEWS
6
+ * ext/oci8/extconf.rb, lib/oci8.rb.in: rename oci8lib.so
7
+ to oci8lib_18.so and oci8lib_191.so. The renamed name
8
+ depends on the ruby version.
9
+ * lib/oci8/datetime.rb: fix the fetched type for date column
10
+ when using Oracle 8.x.
11
+ * ruby-oci8.gemspec: fix to make a binary gem which contains
12
+ both oci8lib_18.so and oci8lib_191.so.
46
13
 
47
14
  2009-03-17 KUBO Takehiro <kubo@jiubao.org>
48
- * NEWS: add changes between 1.0.4 and 1.0.5.
49
- * VERSION: change version to 1.0.5.
15
+ * ext/oci8/apiwrap.yml: add prototypes for OCIServerVersion() and
16
+ OCIServerRelease().
17
+ * ext/oci8/oci8.c: (1) add a private method OCI8#oracle_server_vernum,
18
+ which returns Oracle server version number.
19
+ (2) fix a class method OCI8.oracle_client_vernum when using Oracle
20
+ client 10.1 or lower.
21
+ * lib/oci8/datetime.rb: fix year information when fetching a date
22
+ whose year is between A.D. 1 and A.D. 139.
23
+ * lib/oci8/oci8.rb: (1) add OCI8#oracle_server_version.
24
+ * (2) change the default data type for timestamp with time zone
25
+ from DateTime to Time.
50
26
 
51
27
  2009-03-11 KUBO Takehiro <kubo@jiubao.org>
52
28
  * oraconf.rb: fix big/little endian checking problem on Mac OS X ppc.
53
29
  (contributed by unknown. See: Bug ID 24284 on rubyforge.)
54
30
 
31
+ 2009-02-15 KUBO Takehiro <kubo@jiubao.org>
32
+ * ext/oci8/ocidatetime.c: fix array DML and DateTime object problem.
33
+ OCI8::Cursor#bind_param_array(key, array_of_datetime) didn't
34
+ work. (Reported by Leoš Bitto)
35
+ * test/test_array_dml.rb: fix to test array DML and DateTime object.
36
+
37
+ 2009-02-10 KUBO Takehiro <kubo@jiubao.org>
38
+ * ext/oci8/bind.c, ext/oci8/oci8.h, ext/oci8/stmt.c: fix array DML
39
+ and DateTime object problem. It didn't work with bind classes
40
+ which overwrite 'set' and 'get'. (Reported by Leoš Bitto)
41
+ * test/test_array_dml.rb: fix to test array DML and DateTime object.
42
+
55
43
  2009-02-08 KUBO Takehiro <kubo@jiubao.org>
56
- * NEWS: add changes between 1.0.3 and 1.0.4.
57
- * VERSION: change version to 1.0.4.
44
+ * VERSION: change version from 2.0-svn to 2.0.0 to pass ruby
45
+ gem's version string validator.
46
+ * ruby-oci8.gemspec: added.
47
+ * ext/oci8/extconf.rb, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
48
+ ext/oci8/win32.c: 1. add OCI8::Win32Util.dll_path to
49
+ retrieve Oracle home location from the OCI.DLL location.
50
+ 2. add OCI8::Win32Util.enum_homes to get Oracle home and
51
+ NLS_LANG pairs in Windows registry.
52
+ * lib/oci8/encoding-init.rb: get NLS_LANG from Windows registry
53
+ if environment variable NLS_LANG is not set.
54
+ * ext/oci8/oraconf.rb: Change the output encoding of sqlplus to
55
+ US7ASCII by setting NLS_LANG. If the output encoding is
56
+ incompatible with the default external encoding, it raises
57
+ 'invalid byte sequence' when using ruby 1.9.
58
+ * lib/oci8/datetime.rb: fix for ruby 1.9. Ruby 1.9 Time
59
+ class's resolution is nanosecond.
60
+ * dist-files: add dist-files, ruby-oci8.gemspec and ext/oci8/win32.c.
61
+
62
+ 2009-02-06 KUBO Takehiro <kubo@jiubao.org>
63
+ * setup.rb: 1. install lib/**/*.yml flies also.
64
+ (It is pointed by Nate Wiger that encoding.yml is not installed.)
65
+ 2. exclude .svn or .git directories on installation.
66
+ * lib/oci8/oci8.rb: A private method define_a_column was renamed
67
+ to define_one_column to prevent activerecord oracle adapter
68
+ and oracle enhanced adapter from redefining the method.
58
69
  * dist-files: add newly added file names which must be included
59
70
  in gem or tar.gz packages.
60
- * metaconfig: follow the change of dbd/OCI8.rb location.
61
71
 
62
72
  2009-02-01 KUBO Takehiro <kubo@jiubao.org>
63
73
  * lib/dbd/OCI8.rb: add code for ruby-dbi 0.4 type conversion.
@@ -79,115 +89,360 @@
79
89
  3. add DBI::DBD::OCI8.driver_name
80
90
  (changes for ruby-dbi 0.4 contributed by James Cao.)
81
91
 
82
- 2008-12-30 KUBO Takehiro <kubo@jiubao.org>
83
- * ext/oci8/handle.c, ext/oci8/oci8.h, ext/oci8/svcctx.c: add
84
- OCISvcCtx.pid, which returns id of the process where the
85
- OCISvcCtx is created.
86
- * lib/oci8.rb.in: add check code to ensure that the process id
87
- is not changed.
92
+ 2009-01-13 KUBO Takehiro <kubo@jiubao.org>
93
+ * lib/oci8.rb.in, lib/oci8/encoding-init.rb: (ruby 1.9) set
94
+ OCI8.encoding by querying NLS_LANG. If DEFAULT_OCI8_ENCODING
95
+ is defined, use it by default.
96
+ * lib/oci8/encoding.yml: (ruby 1.9) add a new file containing
97
+ mapping table from Oracle characterset name to Ruby encoding
98
+ name.
99
+
100
+ 2009-01-11 KUBO Takehiro <kubo@jiubao.org>
101
+ * ext/oci8/encoding.c: (ruby 1.9) add OCI8.encoding and
102
+ OCI8.encoding= to get and set the encoding of the Oracle
103
+ library.
104
+ * ext/oci8/oci8.h: (ruby 1.9) add macros OCI8StringValue
105
+ and OCI8SafeStringValue which convert the string encoding
106
+ to Oracle librarie's encoding.
107
+ * ext/oci8/oci8.c: OCI8.new raise a SecurityError when specified
108
+ connect string is tainted and $SAFE >= 1.
109
+ * ext/oci8/stmt.c: OCI8#parse raise a SecurityError when specified
110
+ SQL statemenet is tainted and $SAFE >= 1.
111
+ * ext/oci8/metadata.c: OCI8#describe_* raise a SecurityError
112
+ when the object name to be described is tainted and $SAFE >= 1.
113
+ * ext/oci8/lob.c: OCI8::BFILE.new, OCI8::BFILE#dir_alias= and
114
+ OCI8::BFILE#filename= raise a SecurityError when specified
115
+ dir_alias or filename is tainted and $SAFE >= 1.
116
+ * ext/oci8/attr.c, ext/oci8/bind.c, ext/oci8/error.c,
117
+ ext/oci8/object.c, ext/oci8/oci8lib.c, ext/oci8/ocinumber.c:
118
+ (ruby 1.9) converts encoding from/to OCI.encoding.
119
+
120
+ 2009-01-11 KUBO Takehiro <kubo@jiubao.org>
121
+ * ext/oci8/lob.c: concatenate read data at the end, instead of
122
+ appending them for each pieces when reading LOB data.
123
+ * test/test_oranumber.rb: fix for ruby 1.9.
124
+
125
+ 2009-01-04 KUBO Takehiro <kubo@jiubao.org>
126
+ * ext/oci8/oci8.c: delete OCI8.oracle_client_version implemented
127
+ in C. add OCI8.oracle_client_vernum whose value is retrieved
128
+ by OCIClientVersion() if Oracle 10.2 or upper.
129
+ * ext/oci8/oci8.h: add macro rb_define_singleton_method_nodoc,
130
+ which prevents rdoc from gathering the specified method.
131
+ * lib/.document, lib/oci8/.document: add lib/oci8.rb and
132
+ lib/oci8/oracle_version.rb to rdoc targets.
133
+ * lib/oci8.rb.in, lib/oci8/oracle_version.rb: add
134
+ OCI8::OracleVersion OCI8.oracle_client_version.
135
+ * test/config.rb: change version checking code to use
136
+ OCI8::OracleVersion.
137
+ * test/test_all.rb, test/test_oracle_version.rb: add test cases
138
+ of OCI8::OracleVersion.
139
+
140
+ 2009-01-03 KUBO Takehiro <kubo@jiubao.org>
141
+ * ext/oci8/encoding.c, ext/oci8/error.c, ext/oci8/ocinumber.c,
142
+ ext/oci8/oradate.c: use rb_usascii_str_new() or
143
+ rb_usascii_str_new_cstr() when its encoding is always
144
+ us-ascii.
145
+ * ext/oci8/extconf.rb: add type checking for rb_encoding
146
+ for ruby 1.9.
147
+ * ext/oci8/oci8.h: use rb_str_new(), rb_str_new2() and
148
+ rb_tainted_str_new() if rb_usascii_str_new(),
149
+ rb_usascii_str_new_cstr() and rb_external_str_new_with_enc()
150
+ are not usable.
151
+ * ext/oci8/oci8lib.c: use ORAVERNUM macro.
152
+
153
+ 2009-01-03 KUBO Takehiro <kubo@jiubao.org>
154
+ * custom-rdoc.rb: fix for rdoc bundled with ruby 1.9.
155
+ * ext/oci8/apiwrap.yml, ext/oci8/oci8lib.c: set the value of
156
+ OCI8.oracle_client_version by OCIClientVersion() if
157
+ the binary is configured with --with-runtime-check and
158
+ the Oracle client is 10.2 or upper.
159
+ * test/test_oranumber.rb: disable workaround code when
160
+ the Oracle client is 10.2.0.4 or upper.
88
161
 
89
162
  2008-12-30 KUBO Takehiro <kubo@jiubao.org>
90
- * ext/oci8/const.c, ext/oci8/handle.c: suppress compilation warnings.
91
- (contributed by Daniel Berger)
163
+ * ext/oci8/attr.c: rewrite code converting the rowid descriptor
164
+ to string representation by using oci8_exec_sql().
165
+ * ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
166
+ ext/oci8/stmt.c: add check code to ensure that the process id
167
+ is not changed.
92
168
 
93
169
  2008-12-30 KUBO Takehiro <kubo@jiubao.org>
94
170
  * ext/oci8/oraconf.rb: add code to check the cpu type of Mac OS X
95
171
  libclntsh.dylib.
96
172
 
173
+ 2008-12-21 KUBO Takehiro <kubo@jiubao.org>
174
+ * ext/oci8/apiwrap.yml: add OCINlsCharSetNameToId()
175
+ * ext/oci8/encoding.c: add OCI8#charset_name2id and
176
+ OCI8#charset_id2name.
177
+ * ext/oci8/env.c: include <util.h> only when ruby 1.8.
178
+ * ext/oci8/oci8.h: don't include <rubyio.h> which is not used
179
+ anywhere.
180
+ * ext/oci8/ocinumber.c: include <errno.h> to compile
181
+ ruby-oci8 for ruby 1.9.
182
+ * lib/oci8/metadata.rb: comment duplicated typecode.
183
+ * test/test_all.rb: use AutoRunner when it is found.
184
+ Ruby 1.9's test unit does't has AutoRunner.
185
+ * test/test_oranumber.rb: explicity convert actual_val, which is
186
+ passed to before assert_in_delta(), to a Float to prevent
187
+ SEGV in OCINumberSub().
188
+
97
189
  2008-12-14 KUBO Takehiro <kubo@jiubao.org>
98
- * lib/oci8.rb.in:
99
- 1. fix to fetch a rowid column as s String.
100
- 2. change the return type of OCI8::Cursor#rowid from OCIRowid
101
- to String. It is a local call on Oracle 9.0 or upper.
102
- But on Oracle 8.x client, it needs one network roundtrip
103
- to convert OCIRowid to String on server side.
104
- 3. fix OCI8#describe_table to prevent OCIStillExecuting when
105
- non-blocking mode is enabled and it needs a time to
106
- retrieve table information.
107
- * ext/oci8/extconf.rb, ext/oci8/oci8.c: add OCIRowid#to_s
108
- when OCIRowidToChar() is available.
109
- * test/test_all.rb, test/test_rowid.rb: add a rowid test case.
110
- * test/test_dbi_clob.rb: fix to pass tests when the test directory
111
- path is too long.
190
+ * ext/oci8/stmt.c: fix comment.
191
+ * test/test_rowid.rb: add one assertion as ruby-oci8 1.0 branch does.
192
+
193
+ 2008-09-10 KUBO Takehiro <kubo@jiubao.org>
194
+ * ext/oci8/ocidatetime.c: use session time zone when time zone
195
+ is not specified to set bind objects of timestamp with time
196
+ zone datatype.
197
+ * lib/oci8/datetime.rb: add OCI8::BindType::Util.default_timezone
198
+ to get Time or DateTime objects from bind objects of date
199
+ datatype.
200
+ * test/test_datetime.rb: fix test_datetype_duck_typing and add
201
+ test_timezone for the above changes.
202
+
203
+ 2008-09-09 KUBO Takehiro <kubo@jiubao.org>
204
+ * ext/oci8/apiwrap.rb, ext/oci8/apiwrap.yml, ext/oci8/oci8.h,
205
+ ext/oci8/ocidatetime.c, lib/oci8.rb.in, lib/oci8/datetime.rb,
206
+ lib/oci8/metadata.rb, lib/oci8/oci8.rb, test/test_break.rb,
207
+ test/test_datetime.rb, test/test_dbi.rb, test/test_metadata.rb:
208
+ fix Oracle version number mistakes. rename ORAVER_9_1 to
209
+ ORAVER_9_0.
210
+
211
+ 2008-08-31 KUBO Takehiro <kubo@jiubao.org>
212
+ * ext/oci8/bind.c, ext/oci8/stmt.c: disable DYNAMIC_FETCH to fetch
213
+ LONG or LONG RAW columns. It doesn't work well.
214
+ * lib/oci8/metadata.rb: define char_size for Oracle 8i.
215
+ * lib/oci8/oci8.rb: define OCI8::BindType::Long and
216
+ OCI8::BindType::LongRaw as subclasses of OCI8::BindType::String
217
+ and OCI8::BindType::RAW respectively. fix
218
+ OCI8::BindType::String.create and OCI8::BindType::RAW.create
219
+ for strings longer than 4000.
220
+ * test/test_array_dml.rb: add workaround of "ORA-01036: illegal
221
+ variable name/number" by renaming a bind variable name ":N"
222
+ to ":1". I guess this is a problem in the Oracle library.
223
+ * test/test_break.rb, test/test_dbi.rb, test/test_metadata.rb:
224
+ fix test codes for Oracle 8i or lower.
225
+ * test/test_oci8.rb: revise a test for LONG columns.
226
+
227
+ 2008-08-28 KUBO Takehiro <kubo@jiubao.org>
228
+ * ext/oci8/apiwrap.yml: OCINumberSign is unavailable on Oracle 8.
229
+ * lib/DBD/OCI8/OCI8.rb: A data dictionary all_constraints doesn't have
230
+ index_name column on Oracle 8i or lower. Rewrite
231
+ DBI::DBD::OCI8::Database#column by using all_cons_columns.
232
+ * lib/oci8/metadata.rb: raise an error when using
233
+ * test/config.rb: Oracle 8 desn't have database_compatible_level data
234
+ dictionary.
235
+ * test/test_metadata.rb: fix test codes for Oracle 8i or lower.
236
+
237
+ 2008-08-26 KUBO Takehiro <kubo@jiubao.org>
238
+ * ext/oci8/metadata.c: fix bugs when trying to use already freed
239
+ OCI8::Metadata::*.
240
+ * ext/oci8/ocidatetime.c: fix OCI8::BindType::OCIDate#set().
241
+ * ext/oci8/ocinumber.c: undef OraNumber#round_prec and OraNumber
242
+ #shift when using Oracle 8.0.
243
+ * lib/oci8/datetime.rb, lib/oci8/metadata.rb: fix bugs when using
244
+ Oracle 8.0.
245
+ * test/config.rb, test/test_dbi.rb, test/test_metadata.rb,
246
+ test/test_oci8.rb, test/test_oranumber.rb: do same with the
247
+ previous commit.
248
+ * test/test_datetime.rb: disable some test cases when Oracle 8.1
249
+ or lower.
250
+ * test/test_dbi_clob.rb: fix when testing in a deep directory.
251
+
252
+ 2008-08-26 KUBO Takehiro <kubo@jiubao.org>
253
+ * ext/oci8/apiwrap.c.tmpl, ext/oci8/apiwrap.h.tmpl, ext/oci8/apiwrap.rb
254
+ ext/oci8/apiwrap.yml, ext/oci8/bind.c, ext/oci8/extconf.rb,
255
+ ext/oci8/oci8.h, ext/oci8/ocidatetime.c, ext/oci8/xmldb.c,
256
+ lib/oci8.rb.in, lib/oci8/datetime.rb, lib/oci8/metadata.rb,
257
+ lib/oci8/oci8.rb: change oracle version number format.
258
+ For example Oracle 9.1.0's version number was represented as 910
259
+ in ruby-oci8. Now it is 0x09000000. This format is same with
260
+ that of the last argument of OCIServerRelease().
112
261
 
113
262
  2008-08-10 KUBO Takehiro <kubo@jiubao.org>
114
- * NEWS: add changes between 1.0.2 and 1.0.3.
115
- * VERSION: change version to 1.0.3.
116
263
  * ext/oci8/lob.c: add workaround code for a losing character problem
117
264
  when reading CLOB. The problem is happened at the following condition.
118
265
  1. Oracle client version is 10.2.0.4 or 11.1.0.6.
119
266
  (It doesn't depend on Oracle server version.)
120
267
  2. The character set is a variable-length one (e.g. AL32UTF8).
121
- (This probmem was reported by Efren Yevale and Thomas Witt and
122
- fixed with Thomas Witt's help.)
268
+ * dist-files: add lib/oci8/datetime.rb and .document files.
123
269
 
124
270
  2008-08-09 KUBO Takehiro <kubo@jiubao.org>
125
- * ext/oci8/lob.c: fix OCILobLocator#getLength for a lob over 1GB,
126
- which affect OCI8::LOB#size and OCI8::LOB#read. fix
127
- OCILobLocator#read and OCILobLocator#write to set offset over 2GB,
128
- which affect OCI8::LOB#read and OCI8::LOB#write.
129
- (This probmem was reported by Jonathan Hadders.)
271
+ * ext/oci8/lob.c: fix OCI8::LOB#size= when using a lob over 2GB.
272
+ fix the return value of OCI8::LOB#write when writing a string
273
+ over 2GB.
274
+
275
+ 2008-08-05 KUBO Takehiro <kubo@jiubao.org>
276
+ * test/config.rb, test/test_all.rb, test/test_array_dml.rb,
277
+ test/test_bind_raw.rb, test/test_bind_time.rb, test/test_break.rb,
278
+ test/test_clob.rb, test/test_connstr.rb, test/test_datetime.rb,
279
+ test/test_dbi.rb, test/test_dbi_clob.rb, test/test_metadata.rb,
280
+ test/test_object.rb, test/test_oci8.rb, test/test_oradate.rb,
281
+ test/test_oranumber.rb, test/test_rowid.rb:
282
+ fix to run tests in directories outside of 'test' directory.
283
+
284
+ 2008-08-04 KUBO Takehiro <kubo@jiubao.org>
285
+ * ext/oci8/attr.c: If ORA-01000 (maximum open cursors exceeded) when
286
+ converting a rowid descriptor to string representation, run
287
+ GC to cleanup unreferenced statement handles and try again.
288
+ * ext/oci8/oci8.h, ext/oci8/oci8lib.c: add a utility function
289
+ oci8_exec_sql() to execute a SQL statement in C.
290
+ * ext/oci8/encoding.c: use oci8_exec_sql() to run anonymous PL/SQL
291
+ blocks in oci8_charset_id2name() and oci8_charset_name2id().
292
+ * ext/oci8/bind.c, ext/oci8/metadata.c, ext/oci8/ocidatetime.c,
293
+ ext/oci8/ocinumber.c: suppress compiler warnings.
294
+ * ext/oci8/oci8.c: avoid "[BUG] object allocation during garbage
295
+ collection phase" when using ruby 1.9. In GC, just free a
296
+ session handle without rollback.
297
+
298
+ 2008-08-02 KUBO Takehiro <kubo@jiubao.org>
299
+ * ext/oci8/oci8.h, ext/oci8/ocidatetime.c, lib/oci8.rb.in,
300
+ lib/oci8/datetime.rb: change binding code for timestamps
301
+ and intervals. C side is a thin wrapper which converts Oracle's
302
+ date, timestamp and interval values to ruby arrays and vise
303
+ versa. Ruby side converts the arrays to ruby's Time, DateTime,
304
+ Integer (for interval year to month) and Rational (for interval
305
+ day to second).
306
+ * lib/oci8/oci8.rb: change mapping for binding date, timestamp and
307
+ timestamp with local time zone from OCI8::BindType::DateTime
308
+ to OCI8::BindType::Time.
309
+ * test/test_array_dml.rb, test/test_datetime.rb, test/test_dbi.rb,
310
+ test/test_oci8.rb: fix test cases for a change above.
311
+
312
+ 2008-07-17 KUBO Takehiro <kubo@jiubao.org>
313
+ * Makefile: add a rdoc target to make rdoc document.
314
+ * custom-rdoc.rb: add a file which customizes rdoc to handle
315
+ oci8_define_class_under() and oci8_define_bind_class().
316
+ * ext/oci8/.document: add a new file for rdoc.
317
+ * ext/oci8/bind.c, ext/oci8/oci8.h: rename cOCIBind to cOCI8BindTypeBase,
318
+ which is same name used in custom-rdoc.rb.
319
+ * ext/oci8/oci8.c, ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c:
320
+ delete code in comment for vanilla rdoc which doesn't know what
321
+ oci8_define_class_under() and oci8_define_bind_class() do.
322
+ * ext/oci8/oradate.c: fix rdoc comments.
323
+
324
+ 2008-07-13 KUBO Takehiro <kubo@jiubao.org>
325
+ * ext/oci8/stmt.c: (1) add rdoc comments. (2) OCI8::Cursor#type
326
+ returns a Fixnum when the type is not undocumented value instead
327
+ of raising an exception.
328
+ * lib/.document, lib/oci8/.document: add new files for rdoc.
329
+ * lib/oci8/metadata.rb: fix OCI8::Metadata::Scheme#inspect.
330
+ * lib/oci8/object.rb: don't put OCI8::BindArgumentHelper, which is
331
+ not used by users, to rdoc.
332
+ * lib/oci8/oci8.rb: (1) fix rdoc comments. (2) change the return
333
+ value of OCI8#exec when the SQL statement is a PL/SQL block.
334
+ (3) change the method of customize the bind type for NUMBER
335
+ without precision and scale to same with ruby-oci8 1.0 as follows
336
+ OCI8::BindType::Mapping[:number_unknown_prec] = ...
337
+ OCI8::BindType::Mapping[:number_no_prec_setting] = ...
130
338
 
131
339
  2008-07-12 KUBO Takehiro <kubo@jiubao.org>
132
- * lib/oci8.rb.in: (1) add #to_json to OraDate too.
133
- (2) fix a bug when using Oracle 8i and dbd. OCI_ATTR_FSPRECISION
134
- is for TIMESTAMP data type which is new in Oracle 9i.
135
- (This probmem was reported by Glauco Magnelli.)
136
-
137
- 2008-07-07 KUBO Takehiro <kubo@jiubao.org>
138
- * lib/oci8.rb.in: fix the problem that OraNumber#to_json returns
139
- "{}" when using Rails. (This issue is reported by Alex Moore)
140
- Object#to_json is added by active_support. But active_support
141
- doesn't know what OraNumber is.
142
- * ext/oci8/oraconf.rb: merge chages in ruby-oci8 trunk.
340
+ * lib/oci8/oci8.rb: add OraNumber#to_json and OraDate#to_json.
341
+ * lib/oci8/metadata.rb: define char_used?, char_size, fsprecision
342
+ and lfprecision methods to subclasses of OCI8::Metadata::Base
343
+ onln when Oracie 9i or upper. They ara unavailable on Oracle
344
+ 8.1 or lower.
143
345
 
144
- 2008-07-05 KUBO Takehiro <kubo@jiubao.org>
145
- * ext/oci8/oraconf.rb: prints more information on checking
146
- LD_LIBRARY_PATH.
147
-
148
- 2008-06-26 KUBO Takehiro <kubo@jiubao.org>
149
- * NEWS: add changes between 1.0.1 and 1.0.2.
150
- * VERSION: change version to 1.0.2.
151
- * Makefile: add targets 'gem' and 'binary_gem' to make pure ruby
152
- and binary gems.
153
- * ruby-oci8.spec: rename to ruby-oci8.spec.in.
154
- * ruby-oci8.spec.in: rename from ruby-oci8.spec and set version
155
- string from 'VERSION' file.
156
- * ruby-oci8.gemspec: added.
157
- * dist-files: add files to ruby-oci8 source packages for gemspec.
158
- * test/test_clob.rb: fix to pass tests in a deep directory.
346
+ 2008-07-06 KUBO Takehiro <kubo@jiubao.org>
347
+ * ext/oci8/oci8.h: add comments.
159
348
 
160
- 2008-06-24 KUBO Takehiro <kubo@jiubao.org>
161
- * ext/oci8/handle.c: fix a segv bug in gc mark. (Thanks to authorNari)
162
- * ext/oci8/oraconf.rb: fix for windows Oracle 11g instant client.
163
- * test/config.rb, test/test_bind_raw.rb, test/test_bind_time.rb,
164
- test/test_break.rb, test/test_clob.rb, test/test_connstr.rb,
165
- test/test_dbi.rb, test/test_dbi_clob.rb, test/test_describe.rb,
166
- test/test_metadata.rb, test/test_oci8.rb, test/test_oradate.rb,
167
- test/test_oranumber.rb:
168
- fix to run tests in directories outside of 'test' directory.
349
+ 2008-07-05 KUBO Takehiro <kubo@jiubao.org>
350
+ * ext/oci8/oraconf.rb:
351
+ 1. prints more information on checking LD_LIBRARY_PATH.
352
+ 2. fix for windows Oracle 11g instant client.
353
+ 3. fix for intel mac instant client.
354
+ * ext/oci8/object.c, lib/oci8/object.rb, lib/oci8/oci8.rb:
355
+ fix to pass an array of Oracle objects to a procedure.
169
356
 
170
357
  2008-04-27 KUBO Takehiro <kubo@jiubao.org>
171
- * NEWS: add changes between 1.0.0 and 1.0.1.
172
- * VERSION: update to 1.0.1.
173
- * ext/oci8/extconf.rb: raise error if the ruby is 1.9.
174
- * ext/oci8/oraconf.rb: fix for intel mac instant client.
358
+ * ext/oci8/stmt.c, lib/oci8/oci8.rb: fix typo.
359
+ (pointed by Liming)
360
+ * dist-files: fix added and deleted files.
175
361
 
176
362
  2008-04-08 KUBO Takehiro <kubo@jiubao.org>
177
- * ext/oci8/oraconf.rb: add error messages for the beta
178
- version of intel mac oracle instant client. But the production
179
- version may not need this.
180
- * lib/oci8.rb.in: change the spec of OCI8#exec and OCI8::Cursor#exec.
181
- Before this change, the number of rows had been returned
182
- only when the SQL statement is update, delete or insert
183
- statement. After this, it is returned when the SQL statement
184
- is not select statement. For example OCI8#exec had returned
185
- true for MERGE statement (pointed by Jim Cain). But now it is
186
- the number of rows processed.
187
- * ext/oci8/oradate.c, ext/oci8/oranumber.c: fix some (not all) warnings
188
- in compilation by HP-UX C compiler.
189
- * ext/oci8/stmt.c: fix a compilation warning. iter's type is ub4. It
190
- cannot be minus value.
363
+ * metaconfig: add '-w' when running test cases.
364
+ * test/test_metadata.rb: suppress warning: "shadowing outer local variable - i."
365
+ * ext/oci8/stmt.c: suppress warning: "warning: instance variable
366
+ @max_array_size not initialized" at lib/oci8/oci8.rb:375.
367
+
368
+ 2008-03-29 KUBO Takehiro <kubo@jiubao.org>
369
+ * ext/oci8/encoding.c, ext/oci8/extconf.rb, ext/oci8/oci8.h
370
+ ext/oci8/oci8lib.c: add a new file encoding.c.
371
+ oci8_charset_id2name() is added to convert Oracle charset
372
+ id to charset name. If the Oracle client version is 9iR2
373
+ or upper, it uses OCINlsCharSetIdToName(). If 9iR1 or lower,
374
+ it uses PL/SQL function nls_charset_name() and converts
375
+ at the server side.
376
+ * ext/oci8/metadata.c: use oci8_charset_id2name() instead of
377
+ OCINlsCharSetIdToName().
378
+
379
+ 2008-03-29 KUBO Takehiro <kubo@jiubao.org>
380
+ * ext/oci8/extconf.rb, ext/oci8/oci8lib.c, ext/oci8/oci8.h:
381
+ When '--with-runtime-check' is passed to extconf.rb, oci8lib.so
382
+ is no longer linked to an Oracle client library at compilation
383
+ time. It tries to search the Oracle client library at runtime.
384
+ * ext/oci8/bind.c: define OCI8::BindType::BinaryDouble when
385
+ oracle_client_version's value is 10g or later, not when SQLT_BDOUBLE
386
+ is declared. This is for runtime check.
387
+
388
+ 2008-03-22 KUBO Takehiro <kubo@jiubao.org>
389
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/object.c, ext/oci8/oci8.h,
390
+ ext/oci8/oci8lib.c, ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c,
391
+ ext/oci8/oradate.c, ext/oci8/stmt.c: add qualifier 'const' to
392
+ oci8_bind_*class_t values. These are read only.
393
+
394
+ 2008-03-22 KUBO Takehiro <kubo@jiubao.org>
395
+ * ext/oci8/.: add apiwrap.[ch] to svn:ignore property.
396
+ * ext/oci8/apiwrap.c.tmpl, ext/oci8/apiwrap.rb, ext/oci8/apiwrap.yml:
397
+ add alternative code if OCINumberSetPi(), OCINumberIsInt() is
398
+ not found.
399
+ * ext/oci8/oci8.h: delete unused macros. add LIKELY and UNLIKELY
400
+ macros and use the former in oci8_get_errhp().
401
+ * ext/oci8/oci8.h, ext/oci8/oci8lib.c: change the scope of
402
+ oci8_base_class to static.
403
+ * ext/oci8/ocinumber.c: fix OraNumber#** and OraNumber#<=>. raise
404
+ exceptions when OraNumber#round_prec or OraNumber#shift is called
405
+ and the Oracle client version is 8.0.
406
+ * test/test_oranumber.rb: add testcass for all OraNumber methods.
407
+
408
+ 2008-03-19 KUBO Takehiro <kubo@jiubao.org>
409
+ * ext/oci8/ocinumber.c, lib/oci8/compat.rb, lib/oci8/object.rb
410
+ lib/oci8/oci8.rb, test/test_oci8.rb:
411
+ 1. OCINumber, which is a new object in 2.0, become OraNumber.
412
+ This means OraNumber become a true numeric class.
413
+ 2. Rdoc comments in ocinumber.c are fixed.
414
+
415
+ 2008-03-08 KUBO Takehiro <kubo@jiubao.org>
416
+ * ext/oci8/extconf.rb, ext/oci8/oci8lib.c, ext/oci8/rowid.c:
417
+ rowid.c is deleted. OCIRowid is no longer in use.
418
+ * ext/oci8/oci8.h, ext/oci8/attr.c: oci8_get_rowid_attr()
419
+ is moved from rowid.c and returns a String instead of
420
+ an OCIRowid object.
421
+ * ext/oci8/stmt.c: fix a rdoc comment of OCI8::Cursor#rowid.
422
+ * lib/oci8/oci8.rb: fetch a rowid value as a String.
423
+ * test/test_all.rb, test/test_rowid.rb: add a rowid testcase.
424
+
425
+ 2008-03-07 KUBO Takehiro <kubo@jiubao.org>
426
+ * ext/oci8/apiwrap.c.tmpl, ext/oci8/apiwrap.rb, ext/oci8/apiwrap.yml:
427
+ add all OCI functions to 'apiwrap.yml'.
428
+ * ext/oci8/object.c: use OCIObjectPin_nb() instead of OCIObjectPin().
429
+ * ext/oci8/oci8lib.c: call OCIBreak in rb_thread_blocking_region()
430
+ to prevent the thread from being blocked.
431
+
432
+ 2008-03-06 KUBO Takehiro <kubo@jiubao.org>
433
+ * ext/oci8/apiwrap.c.tmpl, ext/oci8/apiwrap.h.tmpl:
434
+ rewrite apiwrap.[ch].tmpl. All non-static variables
435
+ and functions have 'oci8_' prefix name.
436
+ * ext/oci8/apiwrap.rb, ext/oci8/apiwrap.yml,
437
+ ext/oci8/extconf.rb: change format of apiwrap.yml
438
+ to use both OCIAttrGet() and OCIAttrGet_nb().
439
+ * ext/oci8/oci8.c, test/config.rb: add OCI8.oracle_client_version.
440
+
441
+ 2008-03-05 KUBO Takehiro <kubo@jiubao.org>
442
+ * ext/oci8/env.c, ext/oci8/oci8.h: use native API to get a thread
443
+ local errhp (ruby 1.9 only)
444
+ pthread: pthread_getspecific()
445
+ win32: TlsGetValue()
191
446
 
192
447
  2008-03-04 KUBO Takehiro <kubo@jiubao.org>
193
448
  * ext/oci8/extconf.rb: output a message to say 'install
@@ -196,56 +451,224 @@
196
451
  development package are required to compile extension
197
452
  libraries on Linux.
198
453
 
454
+ 2008-03-04 KUBO Takehiro <kubo@jiubao.org>
455
+ * ext/oci8/ocinumber.c: fix for ruby-1.9.0-1.
456
+ The arguments of rb_num_coerce_cmp() and rb_num_coerce_bin()
457
+ are changed in ruby-1.9.0-1.
458
+
459
+ 2008-2-27 Liming Lian <liming.lian@oracle.com>
460
+ Add new feature: Array DML
461
+ * lib/oci8/oci8.rb: add three new methods for Array DML to OCI8::Cursor:
462
+ max_array_size=, bind_param_array and exec_array
463
+ 1) OCI8::Cursor#max_array_size=: set the maximum array size for OCI8::Cursor#bind_param_array.
464
+ This method should be called before OCI8::Cursor#bind_param_array
465
+ 2) OCI8::Cursor#bind_param_array: bind array explicitly. This method is used to bind an array of
466
+ values to a placeholder embedded in the prepared statement which is to be executed with
467
+ OCI8::Cursor#exec_array
468
+ 3) OCI8::Cursor#exec_array: executes the SQL statement assigned the cursor with array bindings.
469
+ This implementation currently only supports non-data returning statements (INSERT, UPDATE, DELETE
470
+ but not SELECT). All binding arrays should be the same size and this size will be used as iteration
471
+ count for OCIStmtExecute()
472
+ * ext/oci8/stmt.c: add support for Array DML
473
+ 1) Change the parameters for invoking OCIBindByPos and OCIBindByName because
474
+ currently we only support Array DML for non-PL/SQL binds.
475
+ 2) Add a new parameter "Value iteration_count" to function oci8_stmt_execute.
476
+ This parameter indicates iteration count for OCIStmtExecute. For Non-Array DML,
477
+ you should set this parameter "nil"
478
+ 3) Add three new functions: each_value, clear_binds_iterator_proc, oci8_stmt_clear_binds.
479
+ Those functions are used to clear all binds from OCI8::Cursor. When calling OCI8::Cursor#max_array_size,
480
+ all the binds will be clean from cursor if instance variable max_array_size of cursor is set before.
481
+ * test/test_array_dml.rb(added): add test cases for Array DML
482
+ * test/test_all.rb: call test cases for Array DML
483
+
199
484
  2008-02-17 KUBO Takehiro <kubo@jiubao.org>
200
- * test/config.rb, test/test_break.rb, test/test_dbi.rb,
201
- test/test_dbi_clob.rb, test/test_metadata.rb, test/test_oci8.rb
202
- sleep a few seconds and retry if an attempt to connect to
203
- a database server fails and its error code is ORA-12516
204
- or ORA-12520 in test cases.
205
-
206
- 2008-01-12 KUBO Takehiro <kubo@jiubao.org>
207
- * lib/oci8.rb.in: fix OCI8#non_blocking = false problem.
208
- Once the connection became non-bocking mode, it could
209
- not be reset to blocking mode.
210
- (This problem is reported by Cagdas Gerede.)
211
- * test/test_break.rb: add a testcase to test the above problem.
212
-
213
- 2008-01-12 KUBO Takehiro <kubo@jiubao.org>
214
- * ext/oci8/oradate.c, ext/oci8/oranumber.c: fix SEGV bugs.
215
- OraDate.new made a core dump on x86_64 linux.
216
- (This problem is reported by Alun Eyre.)
485
+ * Makefile: add format_c_source target to fix indentation by
486
+ astyle. <URL:http://astyle.sourceforge.net>
487
+ * ext/oci8/error.c, ext/oci8/lob.c, ext/oci8/metadata.c,
488
+ ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
489
+ ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c,
490
+ ext/oci8/oradate.c, ext/oci8/stmt.c, ext/oci8/xmldb.c:
491
+ fix indentation by astyle.
492
+ The command line options are as follows.
493
+ astyle --style=linux --indent=spaces=4 --brackets=linux ext/oci8/*.[ch]
494
+
495
+ 2008-02-17 KUBO Takehiro <kubo@jiubao.org>
496
+ * ext/oci8/object.c, ext/oci8/stmt.c:
497
+ change from:
498
+ switch (fixnum_value) {
499
+ case INT2FIX(INT_CONSTANT):
500
+ ....;
501
+ to:
502
+ switch (FIX2INT(fixnum_value)) {
503
+ case INT_CONSTANT:
504
+ ....;
505
+ "case INT2FIX(INT_CONSTANT)" confuses astyle.
506
+ astyle's URL: http://astyle.sourceforge.net
507
+ * test/config.rb: sleep 5 seconds and retry again when
508
+ ORA-12516 or ORA-12520. One second was too short on
509
+ my new linux box.
510
+ * test/test_oci8.rb: fix a test case for x86_64 linux.
511
+
512
+ 2008-01-14 KUBO Takehiro <kubo@jiubao.org>
513
+ * ext/oci8/extconf.rb: add checking code for intern.h, util.h,
514
+ ruby/util.h, ruby_errinfo and rb_errinfo.
515
+ * ext/oci8/env.c: define a header file to be included by
516
+ HAVE_RUBY_UTIL_H and HAVE_UTIL_H, not by RUBY_VM.
517
+ * ext/oci8/oci8.h: define a header file to be included by
518
+ HAVE_INTERN_H, not by RUBY_VM. use HAVE_RB_ERRINFO and
519
+ HAVE_RUBY_ERRINFO to define rb_errinfo() as a macro.
520
+ * ext/oci8/oci8.c: use rb_eval_string() instead of rb_reg_new()
521
+ for not to use RUBY_VM.
522
+
523
+ 2008-01-14 KUBO Takehiro <kubo@jiubao.org>
524
+ * ext/oci8/oci8.h ext/oci8/oci8lib.c: rename variable name
525
+ cOCIHandle to oci8_cOCIHandle to use outside of oci8lib.c.
526
+ * ext/oci8/metadata.c: use oci8_cOCIHandle instead of rb_cObject
527
+ to hold a descrbe handle. check parent object's handle type
528
+ in oci8_metadata_create().
529
+
530
+ 2008-01-14 KUBO Takehiro <kubo@jiubao.org>
531
+ * ext/oci8/apiwrap.c.tmpl: fix a bug on runtime-api check.
532
+ * ext/oci8/ocidatetime.c, test/test_datetime.rb: use
533
+ DateTime.parse('0001-01-01 00:00:00.1') instead of
534
+ DateTime.parse('00:00:00.1'). The latter doesn't work
535
+ on ruby 1.8.5 or earlier.
536
+ * test/config.rb: revert the previous commit and add
537
+ get_oci8_connection() and get_dbi_connection() to the
538
+ base class of test cases. When an attempt to connect fails
539
+ by ORA-12516 or ORA-12520, their methods sleep one seconds
540
+ and try again more once.
541
+ delete unused method setup_lowapi().
542
+ * test/test_bind_raw.rb, test/test_bind_time.rb,
543
+ test/test_break.rb, test/test_clob.rb, test/test_datetime.rb,
544
+ test/test_dbi.rb, test/test_dbi_clob.rb, test/test_metadata.rb,
545
+ test/test_object.rb, test/test_oci8.rb, test/test_oradate.rb,
546
+ test_oranumber.rb: revert the previous commit and use
547
+ get_oci8_connection() or get_dbi_connection() to make a
548
+ connection.
549
+
550
+ 2008-01-08 KUBO Takehiro <kubo@jiubao.org>
551
+ * test/config.rb, test/test_bind_raw.rb, test/test_bind_time.rb,
552
+ test/test_break.rb, test/test_clob.rb, test/test_datetime.rb,
553
+ test/test_dbi.rb, test/test_dbi_clob.rb, test/test_metadata.rb,
554
+ test/test_object.rb, test/test_oci8.rb, test/test_oradate.rb,
555
+ test_oranumber.rb: use one OCI8 session for all OCI8 test cases
556
+ and use one DBI session for all DBI test cases.
557
+ Before this changes, connection/disconnection were called
558
+ for each tests. If they are done too frequently and the Oracle
559
+ server is on a remote server, the following error is raised.
560
+ OCIError: ORA-12516: TNS:listener could not find available
561
+ handler with matching protocol stack
217
562
 
218
563
  2008-01-04 KUBO Takehiro <kubo@jiubao.org>
219
- * ext/oci8/define.c, lib/oci8.rb.in: support cursors in a result
220
- set without re-defining the define handle.
564
+ * ext/oci8/oci8.h, ext/oci8/stmt.c: 1. add a 'pre_fetch_hook'
565
+ callback function to oci8_bind_class_t. This function is
566
+ called before OCIStmtFetch in OCI8::Cursor#fetch.
567
+ 2. allocate OCIStmt handle by pre_fetch_hook when a result set
568
+ has cursors.
569
+ 3. change 'init' callback function's prototype in
570
+ oci8_bind_class_t.
571
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/object.c,
572
+ ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c,
573
+ ext/oci8/oradate.c, ext/oci8/rowid.c: changes causes by above 1
574
+ and 3.
221
575
  * test/test_oci8.rb: delete re-defining in a test case for cursors
222
576
  in a result set.
223
577
 
578
+ 2008-01-03 KUBO Takehiro <kubo@jiubao.org>
579
+ * ext/oci8/error.c: fix a SEGV bug when an error is raised in GC.
580
+ make a custom backtrace entry only when 'caller' returns an Array.
581
+
224
582
  2007-12-29 KUBO Takehiro <kubo@jiubao.org>
225
- * lib/oci8.rb.in: support cursors in a result set. For example:
226
- SELECT column1 A, column2 B, CURSOR(SELECT * FROM table2) C
227
- FROM table1
228
- (contributed by Randy Gordon)
583
+ * lib/oci8/metadata.rb, lib/oci8/oci8.rb: support cursors in a
584
+ result set. For example:
585
+ SELECT column1 A, column2 B, CURSOR(SELECT * FROM table2) C
586
+ FROM table1
587
+ (port from changes in 1.0.0, which is contributed by Randy Gordon)
229
588
  * test/test_oci8.rb: add a testcase for cursors in a result set.
230
589
 
231
590
  2007-12-23 KUBO Takehiro <kubo@jiubao.org>
232
591
  * ext/oci8/oraconf.rb: fix for official x86_64 rpms.
233
592
  (contributed by Pat.)
234
593
 
235
- 2007-11-25 KUBO Takehiro <kubo@jiubao.org>
236
- release as 1.0.0 again.
237
- * ext/oci8/stmt.c, test/test_dbi.rb: fix a problem when binding
238
- ''(empty string) via dbi.
239
-
240
- 2007-11-25 KUBO Takehiro <kubo@jiubao.org>
241
- * NEWS: add changes between 1.0.0-rc3 and 1.0.0.
242
- * VERSION: change version to 1.0.0.
243
- * dist-files: add test/test_metadata.rb.
244
- * lib/DBD/OCI8/OCI8.rb, lib/oci8.rb.in, test/test_metadata.rb:
245
- rename OCI8::Metadata::Column#is_null? to
246
- OCI8::Metadata::Column#nullable?.
594
+ 2007-12-04 KUBO Takehiro <kubo@jiubao.org>
595
+ * ext/oci8/stmt.c, lib/oci8/oci8.rb: delete a private method
596
+ OCI8::Curosr#__connection and use @con instead.
597
+
598
+ 2007-12-04 KUBO Takehiro <kubo@jiubao.org>
599
+ * ext/oci8/extconf.rb: compile xmldb.o by default.
600
+ * ext/oci8/lob.c, ext/oci8/metadata.c, ext/oci8/oci8.c: use
601
+ functions which ends with _nb instead of normal OCI functions
602
+ if they may block ruby itself. delete BUILD_FOR_ORACLE_* macros
603
+ and use have_OCI* instead.
604
+ * ext/oci8/oci8.h: delete unused macros; BUILD_FOR_ORACLE_*,
605
+ Get_Int_With_Default, oci_rc2, oci_rc, and _D_.
606
+ * ext/oci8/oci8lib.c, ext/oci8/oci8.c: change the default value
607
+ of executing_thread member in oci8_svcctx_t.
608
+ * ext/oci8/xmldb.c: disabled for a while.
609
+
610
+ 2007-12-04 KUBO Takehiro <kubo@jiubao.org>
611
+ * ext/oci8/apiwrap.c.tmpl, ext/oci8/apiwrap.h.tmpl, ext/oci8/apiwrap.rb:
612
+ change function declares of runtime-check.
613
+ add oracle_client_version.
614
+ * ext/oci8/apiwrap.yml: add OCI function prototypes.
615
+ * ext/oci8/extconf.rb: check oracle_client_version by existent functions
616
+ in OCI libraries. delete BUILD_FOR_ORACLE_VERSION_MAJOR and
617
+ BUILD_FOR_ORACLE_VERSION_MINOR macros. add ORACLE_CLIENT_VERSION.
618
+ * ext/oci8/oci8.h: use ORACLE_CLIENT_VERSION instead of
619
+ BUILD_FOR_ORACLE_VERSION_MAJOR and BUILD_FOR_ORACLE_VERSION_MINOR
620
+ macros.
621
+ * ext/oci8/ocidatetime.c: fix for ruby 1.8.
622
+ * ext/oci8/tdo.c: delete an unused file.
623
+
624
+ 2007-12-03 KUBO Takehiro <kubo@jiubao.org>
625
+ * ext/oci8/apiwrap.c.tmpl: move rboci_blocking_region() and
626
+ find_symbol() to ext/oci8/oci8lib.c and rename to
627
+ oci8_blocking_region() and oci8_find_symbol() respectively.
628
+ * ext/oci8/bind.c: use RFLOAT_VALUE macro for ruby 1.9.
629
+ * ext/oci8/oci8.h: define a macro RFLOAT_VALUE if it is not defined.
630
+ add prototypes oci8_blocking_region() and oci8_find_symbol().
631
+ * ext/oci8/oci8lib.c: add oci8_blocking_region() and oci8_find_symbol().
632
+ * ext/oci8/ocidatetime.c: add workaround code for ruby 1.9 VM bug.
633
+ * lib/DBD/OCI8/OCI8.rb, lib/oci8/metadata.rb, test/test_metadata.rb:
634
+ rename OCI8::Metadata::Column#is_null? to
635
+ OCI8::Metadata::Column#nullable? as ruby 1.0.0 does.
636
+ * test/test_dbi.rb: add testcase to check binding ''(empty string)
637
+ via dbi as ruby 1.0.0 does.
247
638
  * test/test_oci8.rb: add asserts binding Nan, +Infinity and
248
- -Inifinty.
639
+ -Inifinty as ruby 1.0.0 does.
640
+
641
+ 2007-11-23 KUBO Takehiro <kubo@jiubao.org>
642
+ * ext/oci8/apiwrap.c.tmpl, ext/oci8/apiwrap.h.tmpl, ext/oci8/apiwrap.rb
643
+ ext/oci8/apiwrap.yml, ext/oci8/extconf.rb, ext/oci8/oci8.h
644
+ ext/oci8/oci8lib.c: add a framework to check whether an OCI functions
645
+ exists at run-time.
646
+ * ext/oci8/lob.c: check whether OCILobIsTemporary and OCILobLocatorAssign
647
+ exist at run-time.
648
+ * ext/oci8/rowid.c: use new framework to check whether OCIRowidToChar
649
+ exists at run-time.
650
+
651
+ 2007-11-20 KUBO Takehiro <kubo@jiubao.org>
652
+ * ext/oci8/extconf.rb, , ext/oci8/apiwrap.c.tmpl,
653
+ ext/oci8/apiwrap.h.tmpl, ext/oci8/apiwrap.rb,
654
+ ext/oci8/apiwrap.yml: add new files for non-blocking
655
+ executions. These use rb_thread_blocking_region in
656
+ ruby 1.9.
657
+ * ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/stmt.c:
658
+ use new non-blocking execution API for OCI8#exec and
659
+ OCI8::CUrsor#fetch.
660
+ * test/test_break.rb: add comment and add sleep to pass
661
+ test_blocking_mode.
662
+
663
+ 2007-11-19 KUBO Takehiro <kubo@jiubao.org>
664
+ * ext/oci8/ocidatetime.c, test/test_datetime.rb: fix for a change
665
+ of DateTime#fsec_fractions in ruby 1.9.
666
+ * ext/oci8/stmt.c: rename OCI8::Cursor#__defineByPos to
667
+ OCI8::Cursor#__define.
668
+ * test/test_oci8.rb: add test_select_number.
669
+ * lib/oci8/oci8.rb: add OCI8::BindType::Base.create which acts as
670
+ a factory method. move bindtype specific code to create method
671
+ of OCI8::BindType::Base's subclasses.
249
672
 
250
673
  2007-11-18 KUBO Takehiro <kubo@jiubao.org>
251
674
  * lib/DBD/OCI8/OCI8.rb: add StatementHandle#column_info.
@@ -255,43 +678,61 @@
255
678
 
256
679
  2007-11-17 KUBO Takehiro <kubo@jiubao.org>
257
680
  * ext/oci8/error.c: add OCIError#initialize(msg, code = nil).
258
- * lib/oci8.rb.in: add OCI8#describe_table(table_name),
259
- OCI8::Metadata::Table and OCI8::Metadata::View.
260
- * test/test_metadata.rb: fix test_metadata for OCI8#describe_table.
261
- add test_error_describe_table.
681
+ * ext/oci8/metadata.c, lib/oci8/metadata.rb: rename char_semantics
682
+ method to "char_used?". change the return value of data_type
683
+ method when the data_type is NCHAR, NVARCHAR2 or NCLOB.
684
+ * test/test_all.rb, test/test_metadata.rb: add a testcase for
685
+ OCI8::Cursor#column_metadata and OCI8#describe_table.
262
686
 
263
687
  2007-11-17 KUBO Takehiro <kubo@jiubao.org>
264
- * lib/oci8.rb.in: OCI8::Cursor#fetch_hash accepts a block now.
265
- OCI8#commit and OCI8#rollback return self now. They had returned
266
- an OCISvcCtx which is internally used.
688
+ * lib/oci8/oci8.rb: OCI8::Cursor#fetch_hash accepts a block now.
267
689
  * test/test_oci8.rb: add a test for fetch_hash with a block.
268
- * ext/oci8/oci8.h: fix a potential bug.
269
- http://rubyforge.org/forum/forum.php?thread_id=19213&forum_id=1078
270
- * ext/oci8/attr.c: fix signedness. Logically this won't be related with
271
- the following URL's problem. But there is a few possibility.
272
- http://rubyforge.org/forum/forum.php?thread_id=15158&forum_id=1078
273
-
274
- 2007-11-16 KUBO Takehiro <kubo@jiubao.org>
275
- * lib/oci8.rb.in: add OCI8::Cursor#column_metadata and a new class
276
- OCI8::Metadata::Column.
277
- * test/test_all.rb, test/test_metadata.rb: add testcases for
278
- OCI8::Metadata::Column.
279
-
280
- 2007-11-16 KUBO Takehiro <kubo@jiubao.org>
281
- * ext/oci8/ocinumber.c, test/test_oci8.rb: fix a BUG to bind
282
- Bignum. This bug was added in ruby-oci8 1.0.0-rc2.
690
+ * ext/oci8/metadata.c: fix for 64-bit windows.
691
+
692
+ 2007-11-12 KUBO Takehiro <kubo@jiubao.org>
693
+ * ext/oci8/stmt.c, lib/oci8/oci8.rb: add OCI8::Cursor#column_metadata.
694
+ * ext/oci8/metadata.c, ext/oci8/oci8.h, ext/oci8/stmt.c: Change
695
+ the lifetime of OCI8::Metadata::Base. It depended on the connection,
696
+ but now it depends on what it describes. For example OCI8::cursor
697
+ for OCI8::Cursor#column_metadata.
698
+ * ext/oci8/env.c, ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
699
+ ext/oci8/oraconf.rb, setup.rb: fix for ruby 1.9. Not full tests are
700
+ not passed on ruby 1.9.
701
+
702
+ 2007-11-11 KUBO Takehiro <kubo@jiubao.org>
703
+ * ext/oci8/oci8.c, lib/oci8/metadata.rb, test/test_datetime.rb:
704
+ suppress warnings 'instance variable @xxxx not initialized' when
705
+ running ruby with '-w' option. (suggested by Daniel Berger.)
283
706
 
284
707
  2007-11-11 KUBO Takehiro <kubo@jiubao.org>
285
- * test/config.rb, test/test_dbi.rb, test/test_describe.rb,
286
- test/test_oci8.rb: add 'purge' option to 'drop table' statement
287
- when Oracle 10g or upper.
288
- * ext/oci8/bind.c, ext/oci8/const.c, ext/oci8/oci8.h, ext/oci8/stmt.c,
289
- lib/oci8.rb.in, test/test_oci8.rb: add OCI8::BindType::BinaryDouble
290
- when SQLT_BDOUBLE is defined.
708
+ * test/config.rb, test/test_dbi.rb, test/test_oci8.rb:
709
+ add 'purge' option to 'drop table' statement when Oracle 10g
710
+ or upper.
711
+ * ext/oci8/bind.c: add OCI8::BindType::BinaryDouble when SQLT_BDOUBLE
712
+ is defined.
713
+ * lib/oci8/compat.rb: add OCI8::SQLT_IBFLOAT, OCI8::SQLT_IBDOUBLE and
714
+ OCI8::SQLT_BFILE for compatibility with 1.0.
715
+ * lib/oci8/metadata.rb, lib/oci8/object.rb, lib/oci8/oci8.rb:
716
+ rename :bfloat and :bdouble to :binary_float and :binary_double
717
+ respectively.
718
+ * lib/oci8/oci8.rb: use OCI8::BindType::BinaryDouble for :binary_float
719
+ and :binary_double column when BinaryDouble is available.
720
+ * test/test_oci8.rb: bind as binary_double explicitly in
721
+ test_binary_float.
722
+
723
+ 2007-10-15 KUBO Takehiro <kubo@jiubao.org>
724
+ * lib/oci8/object.rb: quick fix to get and set object
725
+ attributes without explicitly setting default_connection.
726
+ I am now wavering about what to do.
291
727
 
292
728
  2007-10-14 KUBO Takehiro <kubo@jiubao.org>
729
+ * ext/oci8/oraconf.rb: fix a problem to compile with a
730
+ third-party x86_64 rpm package. '--with-instant-client'
731
+ option become obsolete and is ignored.
293
732
  * ext/oci8/oraconf.rb: fix for FreeBSD oracle8-client port.
294
733
  Not all tests are passed on FreeBSD yet.
734
+ * lib/oci8/object.rb: fix a problem when convertion ruby class
735
+ name to oracle object name fails.
295
736
 
296
737
  2007-10-11 KUBO Takehiro <kubo@jiubao.org>
297
738
  * lib/DBD/OCI8/OCI8.rb: add DatabaseHandle#columns for DBI.
@@ -301,21 +742,47 @@
301
742
  * lib/DBD/OCI8/OCI8.rb: fix external OS authentication.
302
743
  I applied Dan Fitch's patch to improper location.
303
744
 
745
+ 2007-07-24 KUBO Takehiro <kubo@jiubao.org>
746
+ * ext/oci8/object.c, lib/oci8/object.rb: support binary_double,
747
+ binary_float and object member of object datatype.
748
+ * test/setup_test_object.sql, test/test_object.rb: add testcase for
749
+ binary_double, binary_float, embedded object, array of raw, array
750
+ of binary_double, array of binary_float, array of object in object
751
+ datatype.
752
+
753
+ 2007-07-07 KUBO Takehiro <kubo@jiubao.org>
754
+ * ext/oci8/object.c: support array of number in OCI8::NamedCollection.
755
+ * test/setup_test_object.sql, test/test_object.rb: fix a testcase
756
+ to test array of number.
757
+
758
+ 2007-07-05 KUBO Takehiro <kubo@jiubao.org>
759
+ * lib/oci8/object.rb, ext/oci8/object.c: add OCI8::NamedCollection
760
+ to support collection datatypes. add OCI8::NamedType#attributes
761
+ and #attributes= instead of OCI8::NamedType#copy_attributes_from
762
+ and #copy_attributes_to. and others.
763
+ * lib/oci8/oci8.rb: add OCI8#username.
764
+ * test/test_object.rb: add a testcase for array of varchar2.
765
+
766
+ 2007-07-04 KUBO Takehiro <kubo@jiubao.org>
767
+ * ext/oci8/object.c, lib/oci8/object.rb, lib/oci8/oci8.rb:
768
+ delete OCI8::NamedType module and OCI8::NamedType::Base class
769
+ and add OCI8::Object module, OCI8::Object::Base class and
770
+ OCI8::NamedType class. In the user view, OCI8::NamedType::Base
771
+ become OCI8::Object::Base. The reason is that 'named type' is used
772
+ only by OCI documents, and Other Oracle manuals use Oracle Object.
773
+ * ext/oci8/oci8.c: free all dependent objects in advance to
774
+ disconnecting a connection.
775
+ * lib/oci8/metadata.rb: add OCI8::Metadata::Type#type_metadata.
776
+ fix typos.
777
+ * test/setup_test_object.sql, test/test_object.rb: add a testcase for
778
+ Oracle Objects.
779
+
304
780
  2007-07-03 KUBO Takehiro <kubo@jiubao.org>
305
781
  * lib/DBD/OCI8/OCI8.rb: fix for external OS authentication.
306
782
  (contributed by Dan Fitch)
307
783
 
308
- 2007-07-01 KUBO Takehiro <kubo@jiubao.org>
309
- * NEWS: add changes between 1.0.0-rc2 and 1.0.0-rc3.
310
- * VERSION: change version to 1.0.0-rc3.
311
- * ext/oci8/oraconf.rb: fix a problem to compile with a
312
- third-party x86_64 rpm package. '--with-instant-client'
313
- option become obsolete and is ignored.
314
- * test/test_oci8.rb: skip test_binary_float test when the testing
315
- server version is 9i or earlier.
316
-
317
784
  2007-06-26 KUBO Takehiro <kubo@jiubao.org>
318
- * lib/oci8.rb.in: add external OS authentication. (suggested by Dan Fitch)
785
+ * ext/oci8/oci8.c: add external OS authentication. (suggested by Dan Fitch)
319
786
  conn = OCI8.new('/')
320
787
  or
321
788
  conn = OCI8.new(nil, nil)
@@ -326,121 +793,280 @@
326
793
  check what cpu is it for. (linux x86, x86_64 and ia64 only)
327
794
 
328
795
  2007-06-05 KUBO Takehiro <kubo@jiubao.org>
329
- * ext/oci8/oraconf.rb: use 'File.exist?' instead of deprecated
330
- method 'File.exists?'.
331
- * lib/oci8.rb.in: fix to bind an OCI8::NCLOB value on Oralce 9i.
332
- add a mapping to fetch a timestamp column value as an OraDate.
333
-
334
- 2007-05-18 KUBO Takehiro <kubo@jiubao.org>
335
- * ext/oci8/oraconf.rb: fix for Oracle 11g.
336
-
337
- 2007-05-17 KUBO Takehiro <kubo@jiubao.org>
338
- * ext/oci8/oraconf.rb: add the output of sqlplus to mkmf.log
339
-
340
- 2007-04-22 KUBO Takehiro <kubo@jiubao.org>
341
- * ext/oci8/error.c: fix errors when compiled by gcc-4.1.
342
- * NEWS: fix typo.
343
-
344
- 2007-04-22 KUBO Takehiro <kubo@jiubao.org>
345
- * NEWS: add changes between 1.0.0-rc2 and 0.1.16
346
- * ruby-oci8.spec: fix hardcoded sitearch dir.
347
- * VERSION: change version to 1.0.0-rc2
348
- * ext/oci8/extconf.rb, ext/oci8/lob.c: check whether
349
- OCILobCreateTemporary is available.
350
- * dist-files: add test/test_connstr.rb.
796
+ * ext/oci8/oraconf.rb: copy oraconf.rb of ruby-oci8-1.0 branch.
797
+ * ext/oci8/lob.c, ext/oci8/oci8.h, ext/oci8/stmt.c: fix to bind
798
+ an OCI8::NCLOB value on Oralce 9i.
799
+ * test/test_oci8.rb: add testcases for binary_double datatype
800
+ and OCI8::NCLOB.new.
801
+
802
+ 2007-05-20 KUBO Takehiro <kubo@jiubao.org>
803
+ * lib/oci8/object.rb, ext/oci8/object.c: add new files.
804
+ * ext/oci8/bind.c: fix to bind object type.
805
+ * ext/oci8/extconf.rb: use object.c instead of tdo.c.
806
+ * ext/oci8/metadata.c: add OCI8::Metadata::Base#tdo_id.
807
+ * ext/oci8/oci8.h: add new prototypes; oci8_set_ocinumber(),
808
+ oci8_set_integer() and Init_oci_object(). delete Init_oci_tdo().
809
+ * ext/oci8/oci8lib.c: use Init_oci_object() instead of Init_oci_tdo().
810
+ * ext/oci8/ocinumber.c: export oci8_set_ocinumber() and
811
+ oci8_set_integer().
812
+ * ext/oci8/stmt.c: fix to bind object type.
813
+ * lib/oci8.rb.in: add requiring 'oci8/object.rb'.
814
+ * lib/oci8/metadata.rb: add OCI8::Metadata::TypeMethod#has_result?
815
+ fix comments.
816
+ * lib/oci8/oci8.rb: fix to bind object type.
817
+
818
+ 2007-05-12 KUBO Takehiro <kubo@jiubao.org>
819
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/oci8.h,
820
+ ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c, ext/oci8/oradate.c,
821
+ ext/oci8/rowid.c, ext/oci8/stmt.c, ext/oci8/tdo.c:
822
+ change a callback function's argument type used internally
823
+ in OCI8::BindType::Base#set().
824
+ * ext/oci8/metadata.c, lib/oci8/metadata.rb: change the internal
825
+ structure of OCI8::Metadata::Base.
826
+
827
+ 2007-05-10 KUBO Takehiro <kubo@jiubao.org>
828
+ * lib/oci8/oci8.rb: 1. move the location of setting
829
+ OCI8::BindType::Mapping to the end of the file.
830
+ 2. set :xmltype to OCI8::BindType::Mapping's key when
831
+ the fetched column is XMLTYPE.
832
+
833
+ 2007-05-03 KUBO Takehiro <kubo@jiubao.org>
834
+ * ext/oci8/extconf.rb: add '--with-oracle-version' option to
835
+ make a binary for the specified oracle version.
836
+ get the oracle client version from available OCI functions.
837
+ * ext/oci8/lob.c, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
838
+ ext/oci8/rowid.c, ext/oci8/tdo.c, ext/oci8/xmldb.c: use
839
+ BUILD_FOR_ORACLE_major_minor macros instead of HAVE_xxx
840
+ macros.
841
+ * ext/oci8/oci8.c: delete unsed code.
842
+ * dist-files: add ext/oci8/xmldb.c and test/test_connstr.rb.
843
+
844
+ 2007-05-01 KUBO Takehiro <kubo@jiubao.org>
845
+ * ext/oci8/bind.c: fix to return nil for LONG null column.
846
+ * ext/oci8/env.c: use OCIInitialize() and OCIEnvInit() instead
847
+ of OCIEnvCreate() on every Oracle version.
848
+ * ext/oci8/env.c, ext/oci8/error.c, ext/oci8/oci8.h: raise
849
+ "OCI Library Initialization Error" when Oracle can't supply
850
+ the error message.
851
+ * ext/oci8/oci8.c: raise OCIException instead of TypeError.
852
+ * lib/oci8/metadata.rb: fix typo in comment.
853
+ * VERSION: change to 2.0-svn.
854
+
855
+ 2007-04-30 KUBO Takehiro <kubo@jiubao.org>
856
+ * ext/oci8/extconf.rb, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
857
+ ext/oci8/tdo.c: enable XML support when Oracle 10g.
858
+ * ext/oci8/xmldb.c: add oci8_make_rexml() to support XML for reading.
859
+ * ext/oci8/lob.c: fix compiler warnings.
860
+ * ext/oci8/error.c: fix a bit.
861
+
862
+ 2007-04-28 KUBO Takehiro <kubo@jiubao.org>
863
+ * lib/oci8/oci8.rb: fetch NCLOB column value as an OCI8::NCLOB. fetch
864
+ BINARY_DOUBLE and BINARY_FLOAT column as a Float.
865
+ * lib/oci8/metadata.rb: OCI8::Metadata::Column#data_type can return
866
+ :nclob, :bfloat and :bdouble now.
867
+ * ext/oci8/extconf.rb: check whether OCILobCreateTemporary exists.
868
+ * ext/oci8/lob.c: add OCI8::NCLOB.
869
+ * ext/oci8/oci8.h: add oci8_make_nclob().
870
+ * ext/oci8/tdo.c: use oci8_make_nclob().
871
+
872
+ 2007-04-26 KUBO Takehiro <kubo@jiubao.org>
873
+ * lib/oci8/oci8.rb: fetch BFILE as OCI8::BFILE.
874
+ * ext/oci8/lob.c: add OCI8::BFILE.
875
+ * ext/oci8/oci8.h: add oci8_make_bfile().
876
+ * ext/oci8/tdo.c: use oci8_make_bfile().
877
+ * ext/oci8/stmt.c: use oci8_get_error_code().
351
878
 
352
879
  2007-04-21 KUBO Takehiro <kubo@jiubao.org>
353
- * ext/oci8/error.c, ext/oci8/oci8.h: add the error line number
354
- in C code to OCIException's backtrace.
355
-
356
- 2007-04-19 KUBO Takehiro <kubo@jiubao.org>
357
- * lib/oci8.rb.in: add OCI8::NCLOB and add new method to bind
358
- CLOB/NCLOB/BLOB.
359
- * ext/oci8/lob.c: add OCILobLocator#create_temporary.
360
- * test/test_oci8.rb: add two testcases for BINARY_FLOAT and
361
- CLOB/NCLOB/BLOB.
362
-
363
- 2007-04-18 KUBO Takehiro <kubo@jiubao.org>
364
- * ext/oci8/bind.c, ext/oci8/handle.c, ext/oci8/oci8.h, ext/oci8/stmt.c
365
- lib/oci8.rb.in: change the internal structure to enable
366
- OCIBind#set(anOCIHandle).
367
-
368
- 2007-04-17 KUBO Takehiro <kubo@jiubao.org>
369
- * ext/oci8/attr.c, ext/oci8/lob.c, lib/oci8.rb.in: fix a problem
370
- when reading NCLOB.
371
- (This problem is reported by Dmitry Zadvornykh.)
372
- * lib/oci8.rb.in: fix a probmen when fetching BINARY_FLOAT.
373
- (This problem is reported by Duncan McCaffery.)
374
-
375
- 2007-04-16 KUBO Takehiro <kubo@jiubao.org>
376
- * ruby-oci8.spec: add a rpm spec file. (contributed by Brian Candler)
377
- * dist-files: add ruby-oci8.spec.
378
- * ext/oci8/oraconf.rb: fix for oracle 8.x and gcc on AIX.
379
-
380
- 2007-02-14 Oracle Corporation (commited by KUBO Takehiro <kubo@jiubao.org>)
381
- * lib/oci8.rb.in: add a private method parse_connect_string to support
880
+ * ext/oci8/error.c: change a way to set the error line number to the
881
+ OCIException's backtrace.
882
+
883
+ 2007-02-15 KUBO Takehiro <kubo@jiubao.org>
884
+ no new features. fix to suppress warnings and to compile with ruby 1.9.
885
+ * ext/oci8/attr.c, ext/oci8/lob.c, ext/oci8/metadata.c, ext/oci8/oci8.c,
886
+ ext/oci8/oci8.h, ext/oci8/oci8lib.c, ext/oci8/rowid.c, ext/oci8/stmt.c,
887
+ ext/oci8/tdo.c: use union to suppress warnings: dereferencing type-punned
888
+ pointer will break strict-aliasing rules.
889
+ * ext/oci8/bind.c: change a format string tu suppress a warning.
890
+ * ext/oci8/error.c: use rb_errinfo() instead of ruby_errinfo to compile with ruby 1.9.
891
+ * ext/oci8/oci8.h: define rb_errinfo() as ruby_errinfo when compling with ruby 1.8.
892
+ * ext/oci8/oci8lib.c: delete unused macros OCI_DEFAULT and OCI_COMMIT_ON_SUCCESS.
893
+ * ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c: fix bugs.
894
+ * ext/oci8/oraconf.rb: use File.exist? instead of File.exists?. The latter become obsolete on ruby 1.9.
895
+ * lib/oci8/compat.rb: fix for ruby 1.9. Class.constants returns an array of Symbols in 1.9.
896
+
897
+ 2007-02-14 Oracle Corporation (modified for 2.0 by KUBO Takehiro <kubo@jiubao.org>)
898
+ * ext/oci8/oci8.c: add a private method parse_connect_string to support
382
899
  "username/password[@(tns_name|//host[:port]/service_name)][ as (sysdba|sysoper)]".
900
+ (The original code, contributed by Oracle, is written
901
+ for ruby-oci8 1.0. Kubo rewrite it for 2.0.)
383
902
  * test/test_connstr.rb: add test cases for parse_connect_string.
384
903
  * test/test_all.rb: call test cases for parse_connect_string.
385
904
 
905
+ 2007-02-14 KUBO Takehiro <kubo@jiubao.org>
906
+ * ext/oci8/ocinumber.c: fix a bug created by the previous commit.
907
+
386
908
  2007-01-28 KUBO Takehiro <kubo@jiubao.org>
387
909
  * ext/oci8/oci8.h: add TO_ORATEXT, TO_CHARPTR and RSTRING_ORATEXT
388
910
  macros to suppress 'differ in signedness' warinings.
389
- * ext/oci8/attr.c, ext/oci8/bind.c, ext/oci8/error.c, ext/oci8/lob.c,
390
- ext/oci8/ocinumber.c, ext/oci8/oranumber.c, ext/oci8/server.c,
391
- ext/oci8/stmt.c: use TO_ORATEXT, TO_CHARPTR and RSTRING_ORATEXT
392
- macros to suppress 'differ in signedness' warinings.
393
-
394
- 2007-01-20 KUBO Takehiro <kubo@jiubao.org>
395
- * lib/oci8.rb.in: don't call OCIEnv.create when initializing.
396
- * release as 1.0.0-rc1.
397
-
398
- 2007-01-19 KUBO Takehiro <kubo@jiubao.org>
399
- * ext/oci8/oraconf.rb: fix bugs on windows created by the previous commit.
911
+ * ext/oci8/attr.c, ext/oci8/error.c, ext/oci8/metadata.c,
912
+ ext/oci8/oci8.c, ext/oci8/ocinumber.c, ext/oci8/rowid.c,
913
+ ext/oci8/stmt.c, ext/oci8/tdo.c: use TO_ORATEXT, TO_CHARPTR and
914
+ RSTRING_ORATEXT macros to suppress 'differ in signedness'
915
+ warinings.
400
916
 
401
917
  2007-01-08 KUBO Takehiro <kubo@jiubao.org>
402
- * ext/oci8/oraconf.rb: check whether Full Client or Instant Client by checking
403
- load library path.
404
-
405
- 2007-01-03 KUBO Takehiro <kubo@jiubao.org>
406
- * ext/oci8/env.c: raise "OCI Library Initialization Error" message
407
- if no message can not be retrieved while OCIEnv.create.
408
918
  * ext/oci8/oraconf.rb, ext/oci8/extconf.rb: refactor oraconf.rb.
409
- * lib/oci8.rb.in: don't raise OCIError on requireing oci8. raise
410
- the error when connecting to the Oracle. (for active record)
411
-
412
- 2006-12-09 KUBO Takehiro <kubo@jiubao.org>
413
- * ext/oci8/env.c, ext/oci8/handle.c, ext/oci8/oci8.c, ext/oci8/oci8.h,
414
- ext/oci8/stmt.c: add OCIFileLocator.
415
- * ext/oci8/lob.c: fix OCILobLocator#open to accept a second argument.
416
- add OCIFileLocator#name, OCIFileLocator#set_name and
417
- OCIFileLocator#exists?
418
- * ext/oci8/svcctx.c: add OCISvcCtx#close_all_files.
419
- * lib/oci8.rb.in: add OCI8::BFILE and OCI8::BindType::BFILE.
919
+ check whether Full Client or Instant Client by checking load
920
+ library path.
921
+
922
+ 2006-12-27 KUBO Takehiro <kubo@jiubao.org>
923
+ * ext/oci8/oci8.c: ignore an exception during GC.
924
+
925
+ 2006-12-22 KUBO Takehiro <kubo@jiubao.org>
926
+ * ext/oci8/oci8.h, ext/oci8/oci8lib.c: add new structure
927
+ members to oci8_base_t to handle parent-children tree.
928
+ add new functions oci8_link_to_parent() and
929
+ oci8_unlink_from_parent().
930
+ In prior to free the object's content. free all its children.
931
+ * ext/oci8/bind.c, ext/oci8/stmt.c:
932
+ use oci8_base_t's structure members instead of oci8_bind_t
933
+ and oci8_stmt_t's members.
934
+ * ext/oci8/lob.c, ext/oci8/metadata.c, ext/oci8/tdo.c:
935
+ link to the connection which creates the LOB, Metadata, TDO objects.
936
+ These objects are freed when the connection is disconnected.
937
+ * ext/oci8/oci8.c: call logoff explicitly when the connection object
938
+ is freed.
939
+
940
+ 2006-12-19 KUBO Takehiro <kubo@jiubao.org>
941
+ * ext/oci8/tdo.c: fix a GC problem.
942
+ * ext/oci8/stmt.c: add OCI8::Cursor#prefetch_rows=
943
+ * ext/oci8/oci8.c: add OCI8#prefetch_rows=. add comments for rdoc.
944
+ * doc/oci8-ja.rb: add comments for rdoc.
945
+
946
+ 2006-12-14 KUBO Takehiro <kubo@jiubao.org>
947
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/oci8.h,
948
+ ext/oci8/ocidatetime.c ext/oci8/ocinumber.c, ext/oci8/oradate.c,
949
+ ext/oci8/rowid.c, ext/oci8/stmt.c, ext/oci8/tdo.c: add PL/SQL
950
+ table support. unify the variable names of oci8_bind_t.
951
+ * lib/oci8/oci8.rb: add PL/SQL table support.
952
+
953
+ 2006-12-13 KUBO Takehiro <kubo@jiubao.org>
954
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/oci8.h, ext/oci8/stmt.c:
955
+ delete oci8_bind_handle_t and use oci8_hp_obj_t.
956
+ (prepare to bind an array)
957
+ * ext/oci8/bind.c: fix for alignment.
958
+ (prepare to bind an array)
959
+
960
+ 2006-12-12 KUBO Takehiro <kubo@jiubao.org>
961
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/oci8.h,
962
+ ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c, ext/oci8/oradate.c,
963
+ ext/oci8/rowid.c, ext/oci8/stmt.c, ext/oci8/tdo.c, lib/oci8/oci8.rb:
964
+ change arguments of internal bind-init functions.
965
+ (refactoring)
966
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/oci8.h,
967
+ ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c, ext/oci8/oradate.c,
968
+ ext/oci8/rowid.c, ext/oci8/stmt.c, ext/oci8/tdo.c:
969
+ split bind-init callback to init and init_elem.
970
+ (prepare to bind an array)
971
+ * ext/oci8/bind.c, ext/oci8/oci8.h, ext/oci8/stmt.c:
972
+ change arguments of piece-width-fetch callbacks.
973
+ (prepare to bind an array)
974
+
975
+ 2006-12-07 KUBO Takehiro <kubo@jiubao.org>
976
+ * ext/oci8/bind.c, ext/oci8/oci8.h, ext/oci8/stmt.c, ext/oci8/tdo.c:
977
+ delete rlen and use_rlen from oci8_bind_t.
978
+ * ext/oci8/rowid.c: change the bind type for ROWID not to use rlen.
420
979
 
421
980
  2006-12-05 KUBO Takehiro <kubo@jiubao.org>
422
- * ext/oci8/attr.c, ext/oci8/bind.c, ext/oci8/error.c, ext/oci8/oci8.h,
423
- ext/oci8/ocinumber.c, ext/oci8/oradate.c, ext/oci8/oranumber.c,
424
- ext/oci8/stmt.c: use RSTRING_LEN, RSTRING_PTR, RARRAY_LEN and RARRAY_PTR
425
- macros.
981
+ * ext/oci8/attr.c, ext/oci8/bind.c, ext/oci8/error.c, ext/oci8/lob.c,
982
+ ext/oci8/metadata.c, ext/oci8/oci8.c, ext/oci8/oci8.h,
983
+ ext/oci8/ocidatetime.c, ext/oci8/ocinumber.c, ext/oci8/oradate.c,
984
+ ext/oci8/rowid.c, ext/oci8/stmt.c, ext/oci8/tdo.c:
985
+ use RSTRING_LEN, RSTRING_PTR, RARRAY_LEN and RARRAY_PTR macros.
986
+
987
+ 2006-11-25 KUBO Takehiro <kubo@jiubao.org>
988
+ * doc/oci8-ja.rb: add a new file for Japanese rdoc document.
989
+ * ext/oci8/ocidatetime.c: add comments for rdoc.
990
+ * test/test_datetime.rb: add testcases for OCI8::BindType::DateTime.
991
+
992
+ 2006-11-23 KUBO Takehiro <kubo@jiubao.org>
993
+ * dist-files, ext/oci8/extconf.rb, ext/oci8/oci8.h, ext/oci8/oci8lib.c,
994
+ ext/oci8/oranumber.c: delete OraNumber implemented by C.
995
+ * ext/oci8/metadata.c: use oci8_make_integer() instead of ora_number_to_str()
996
+ which was implemented in oranumber.c.
997
+ * ext/oci8/ocinumber.c: add OCINumber#initialize_copy for OCINumber#copy.
998
+ * lib/oci8.rb.in: delete "require 'oci8/interval.rb'".
999
+ * lib/oci8/oci8.rb: remove OraNumber-related code.
1000
+ * lib/oci8/compat.rb: add emulation code of OraNumber by using OCINumber.
1001
+ * test_oranumber.rb: use assert_in_delta when comparing Float value.
1002
+
1003
+ 2006-11-22 KUBO Takehiro <kubo@jiubao.org>
1004
+ * ext/oci8/ocidatetime.c: bind types for interval_ym and interval_ds
1005
+ are now Rational instread of OCI8::IntervalYM and OCI8::IntervalDS.
1006
+ * lib/oci8/interval.rb: delete OCI8::IntervalYM and OCI8::IntervalDS.
1007
+ * lib/oci8/oci8.rb: delete OCI8::IntervalYM and OCI8::IntervalDS.
1008
+ * test/test_all.rb: call testcases for timestamps and intervals.
1009
+ * test/test_datetime.rb: add testcases for timestamps and intervals.
1010
+
1011
+ 2006-11-19 KUBO Takehiro <kubo@jiubao.org>
1012
+ * ext/oci8/oci8.c: fix the default value of OCI8#long_read_len.
1013
+ * ext/oci8/stmt.c: fix bug when execute RENAME statement.
1014
+ * test/test_oci8.rb: add testcases for above two problems.
1015
+ The testcases are contributed by Pete Schwamb.
1016
+
1017
+ 2006-11-18 KUBO Takehiro <kubo@jiubao.org>
1018
+ * ext/oci8/tdo.c: add a new class OCI8::TDO to fetch Oracle's
1019
+ object types.
1020
+ * ext/oci8/bind.c, ext/oci8/extconf.rb, ext/oci8/lob.c,
1021
+ ext/oci8/oci8.h, ext/oci8/oci8lib.c, ext/oci8/stmt.c,
1022
+ lib/oci8/oci8.rb: use OCI8::TDO to fetch Oracle's object
1023
+ types.
1024
+ * ext/oci8/lob.c: add oci8_make_clob() and oci8_make_blob()
1025
+ for OCI8::TDO.
1026
+ * ext/oci8/metadata.c: export cOCI8MetadataBase for OCI8::TDO.
1027
+ * ext/oci8/error.c: prepend error line in C to the exception's
1028
+ backtrace for debug.
426
1029
 
427
1030
  2006-11-18 KUBO Takehiro <kubo@jiubao.org>
428
1031
  * ext/oci8/oraconf.rb: add check code whether oci.h exists.
429
1032
 
430
- 2006-08-20 KUBO Takehiro <kubo@jiubao.org>
431
- * ext/oci8/oraconf.rb: add error code for intel mac.
432
- * NEWS: add a new file.
1033
+ 2006-11-09 KUBO Takehiro <kubo@jiubao.org>
1034
+ * ext/oci8/oci8.h, ext/oci8/ocinumber.c: rename make_oci_number()
1035
+ and make_integer to oci8_make_ocinumber() and oci8_make_integer().
1036
+ add oci8_make_float().
1037
+ * ext/oci8/oci8.h, ext/oci8/ocidatetime.c, lib/oci8/oci8.rb: add
1038
+ oci8_make_datetime_from_ocidate(), oci8_make_datetime_from_ocidatetime(),
1039
+ oci8_make_interval_ym() and oci8_make_interval_ds().
1040
+ OCI8::BindType::IntervalYM#get return an OCI8::IntervalYM instead of an array.
1041
+ OCI8::BindType::IntervalDS#get return an OCI8::IntervalDS instead of an array.
1042
+ OCI8::BindType::DateTime#get return a DateTime instead of an array.
1043
+
1044
+ 2006-11-04 KUBO Takehiro <kubo@jiubao.org>
1045
+ * ext/oci8/oci8.h: add callbacks for piecewise operations.
1046
+ * ext/oci8/oraconf.rb: add an error message for intel mac.
1047
+ * ext/oci8/bind.c: add OCI8::BindType::Long and
1048
+ OCI8::BindType::LongRaw.
1049
+ * ext/oci8/stmt.c: fix OCI8::Cursor#define, OCI8::Cursor#bind_param,
1050
+ OCI8::Cursor#exec and OCI8::Cursor#fetch for piecewise operations.
1051
+ * ext/oci8/lob.c, ext/oci8/oradate.c, ext/oci8/ocinumber.c,
1052
+ ext/oci8/rowid.c, ext/oci8/ocidatetime.c, ext/oci8/oranumber.c:
1053
+ follow up the change of piecewise operations.
1054
+ * lib/oci8/oci8.rb: use OCI8::BindType::Long and
1055
+ OCI8::BindType::LongRaw for LONG and LONG RAW respectively.
433
1056
 
434
1057
  2006-08-18 KUBO Takehiro <kubo@jiubao.org>
435
1058
  * ext/oci8/oradate.c: add OraDate.hash().
436
1059
  * ext/oci8/oranumber.c: OraNumber.new() now accepts a String.
437
- * lib/oci8.rb.in: add YAML support for OraDate and OraNumber.
1060
+ * lib/oci8/oci8.rb: add YAML support for OraDate and OraNumber.
438
1061
  * test/test_oranumber.rb: add testcases for OraNumber.new(aString).
439
1062
 
440
1063
  2006-08-17 KUBO Takehiro <kubo@jiubao.org>
441
- * ext/oci8/oci8.h, ext/oci8/bind.c, ext/oci8/stmt.c:
1064
+ * ext/oci8/bind.c:
442
1065
  Use long instead of int to bind Fixnum.
443
- http://rubyforge.org/forum/forum.php?thread_id=7955&forum_id=1078
1066
+ * lib/oci8.rb.in: add a workaround code on cygwin version.
1067
+ Cygwin manages environment variables by itself. They don't
1068
+ synchroize with Win32's ones. set some Oracle's environment
1069
+ variables to win32.
444
1070
 
445
1071
  2006-08-03 KUBO Takehiro <kubo@jiubao.org>
446
1072
  * lib/oci8.rb.in: add a workaround code on cygwin version.
@@ -453,130 +1079,410 @@
453
1079
  and OraDate._load.
454
1080
  * ext/oci8/oranumber.c: add OraNumber#dup, OraNumber#clone,
455
1081
  OraNumber#_dump and OraNumber._load.
1082
+ * ext/oci8/rowid.c: add OCIRowid#dup, OCIRowid#clone.
1083
+ These methods raise an error when using Oracle 8.x.
456
1084
  * test/test_oradate.rb: add tests for OraDate#dup, OraDate#clone,
457
1085
  OraDate#_dump and OraDate._load.
458
1086
  * test/test_oranumber.rb: add tests for OraNumber#dup,
459
1087
  OraNumber#clone, OraNumber#_dump and OraNumber._load.
460
- * test/test_dbi.rb, test/test_oci8.rb, ext/oci8/oraconf.rb,
461
- ext/oci8/extconf.rb, lib/oci8.rb.in, ext/oci8/ocinumber.c:
462
- fix for ruby 1.6.
1088
+
1089
+ 2006-07-22 KUBO Takehiro <kubo@jiubao.org>
1090
+ * ext/oci8/metadata.c, lib/oci8/metadata.rb: add a type_metadata method
1091
+ to OCI8::Metadata::Table, OCI8::Metadata::View, OCI8::Metadata::TypeAttr,
1092
+ OCI8::Metadata::Collection, OCI8::Metadata::Column, OCI8::Metadata::Argument
1093
+ OCI8::Metadata::TypeArgument and OCI8::Metadata::TypeResult.
463
1094
 
464
1095
  2006-07-21 KUBO Takehiro <kubo@jiubao.org>
465
- * ext/oci8/oci8.h, ext/oci8/bind.c, ext/oci8/stmt.c, lib/oci8.rb.in:
466
- Support LONG and LONG RAW longer than 65535 bytes.
1096
+ * ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/bind.c, ext/oci8/stmt.c,
1097
+ lib/oci8/oci8.rb: Support LONG and LONG RAW longer than 65535 bytes.
467
1098
  Add OCI8#long_read_len and OCI8#long_read_len= to set max long
468
1099
  length.
469
1100
  * ext/oci8/oraconf.rb: fix typo.
470
1101
 
471
1102
  2006-07-20 KUBO Takehiro <kubo@jiubao.org>
472
- * ext/oci8/oci8.c, ext/oci8/env.c: move workaround code for
473
- instant client environment variable problem from
474
- ext/oci8/oci8.c to ext/oci8/env.c.
475
- * ext/oci8/oraconf.rb: check a c develop file when linux.
476
- * VERSION, Makefile, ext/oci8/extconf.rb: read version string from
477
- the VERSION file.
478
- * lib/oci8.rb.in: use OCIEnv.create when it exists.
479
-
480
- 2006-04-23 KUBO Takehiro <kubo@jiubao.org>
481
- * ext/oci8/extconf.rb: disable OCIServerRelease checking.
482
- That's because mswin32 binary is for 8.1 or later, but 8.1.5
483
- doesn't have OCIServerRelease.
484
- * ext/oci8/oci8.c: call ruby_setenv on loading oci8lib.so. This is
485
- a workaround for the following problem: OCIInitialize()
486
- implicitly set environment variables. But is make environment
487
- variables invalid when setting $0.
488
- * ext/oci8/oraconf.rb: fix for OracleXE windows version. OracleXE's
1103
+ * ext/oci8/oci8.h, ext/oci8/rowid.c, ext/oci8/oci8lib.c: change
1104
+ Rowid's internal structure when OCIRowidToChar is available.
1105
+ The new structure can be passed to Marshal.
1106
+ * VERSION, Makefile, ext/oci8/extconf.rb:
1107
+ read version string from the VERSION file.
1108
+
1109
+ 2006-06-27 KUBO Takehiro <kubo@jiubao.org>
1110
+ Many method move to C layer. Add support of Timestamp, Interval
1111
+ year to month and Interval day to second. Oracle's Date become
1112
+ DateTime instead of OraDate.
1113
+ * ext/oci8/env.c: 1. delete code registering ruby_xmalloc(),
1114
+ ruby_xrealloc() and ruby_xfree() to OCI library. These
1115
+ API cannot be called only in ruby VM's native thread.
1116
+ 2. add workaround code to avoid breaking ENV.
1117
+ * ext/oci8/oci8.c: move OCI8#parse from ruby to C layer.
1118
+ * ext/oci8/oci8.h, ext/oci8/oci8lib.c: add oci8_id_* variables.
1119
+ * ext/oci8/ocidatetime.c: delete OCIDateTime and OCIInterval.
1120
+ add OCI8::BindType::DateTime, OCI8::BindType::IntervalYM and
1121
+ OCI8::BindType::IntervalDS.
1122
+ * ext/oci8/ocinumber.c: delete OCI8::Math::E, OCINumber#trunc
1123
+ and OCINumber#sign. add OCINumber#truncate and
1124
+ OCI8::BindType::Integer.
1125
+ * ext/oci8/oraconf.rb:fix for OracleXE windows version. OracleXE's
489
1126
  registry path is \\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_XE.
490
-
491
- 2006-04-23 KUBO Takehiro <kubo@jiubao.org>
492
- * Makefile: change version to 0.1.15.
493
- * README: add note for Intel Mac.
494
- * ext/oci8/extconf.rb: change version to 0.1.15.
495
-
496
- 2006-04-05 KUBO Takehiro <kubo@jiubao.org>
497
- * ext/oci8/attr.c: Fix segmentation fault while GC runs at exit.
498
- It was caused by freeing OCIEnv before freeing OCIRowid.
499
- Now when freeing OCIEnv, OCIRowid is freed in advance.
500
- * ext/oci8/const.c, ext/oci8/handle.c, ext/oci8/oci8.h, ext/oci8/stmt.c:
501
- Fix a memory leak when binding a placeholder which is already
502
- bound. In C layer, bind handles were registered to an Array.
503
- There is no chance to unregister it except closing Cursor.
504
- Now bind handles are registered to a Hash. When already bound
505
- placeholder is bound, the old bind handle is unregistered.
506
- * lib/oci8.rb.in: initialize @prefetch_rows.
1127
+ * ext/oci8/oranumber.c: move OCI8::BindType::Integer to ocinumber.c
1128
+ * ext/oci8/stmt.c: OCI8::Cursor#initialize become private.
1129
+ move OCI8::Cursor#fetch, OCI8::Cursor#[], OCI8::Cursor#[]=,
1130
+ OCI8::Cursor#keys from ruby to C layer. add a private method
1131
+ OCI8::Cursor#__defined?
1132
+ * lib/oci8/oci8.rb: many methods move to C layer.
1133
+ * lib/oci8/interval.rb: add OCI8::IntervalYM an OCI8::IntervalDS.
1134
+ * lib/ocidatetime.rb: deleted.
1135
+ * test/test_dbi.rb: fix test script which retrieving Date.
1136
+ * test/test_oci8.rb: fix test script which retrieving Date.
507
1137
 
508
1138
  2006-03-05 KUBO Takehiro <kubo@jiubao.org>
509
1139
  * ext/oci8/oraconf.rb: add check_ruby_header to warn when
510
1140
  broken darwin ruby.
511
1141
  add export #{ld_path} in check_instant_client().
512
1142
 
513
- 2006-02-26 KUBO Takehiro <kubo@jiubao.org>
514
- release as 0.1.14.
515
- * ext/oci8/const.c: add OCI_PTYPE_UNK.
516
-
517
1143
  2006-02-25 KUBO Takehiro <kubo@jiubao.org>
518
- * Makefile: change version to 0.1.14.
519
- * ext/oci8/bind.c: fix to accept OCIBind#set(aNumeric).
520
- * ext/oci8/extconf.rb: change version to 0.1.14.
521
- fix to compile ocinumber.c also.
522
- * ext/oci8/oci8.h: add set_oci_vnumber() prototype.
523
- * ext/oci8/ocinumber.c: add a new file for set_oci_vnumber().
524
- * lib/oci8.rb.in: setup OCI environment as an object mode.
525
-
526
- 2006-02-17 KUBO Takehiro <kubo@jiubao.org>
527
- * README: fix documentation bug.
528
- * ext/oci8/attr.c: add attrGet(OCI_ATTR_SERVER) and attrSet(OCI_ATTR_DESC_PUBLIC, -1).
529
- * ext/oci8/env.c: delete code to register malloc/realloc/free callbacks.
530
- * ext/oci8/handle.c: free memory by calling xfree(), not by free()
531
- in oci8_handle_cleanup().
532
- * lib/oci8.rb.in: use OCIEnv#logon for non-privilege login.
533
- add OCI8#prefetch_rows= and OCI8::Cursor#prefetch_rows=.
534
- use @srv instead of @svc in OCI8#non_blocking= for
535
- non-privilege login.
536
- * lib/DBD/OCI8/OCI8.rb: fix to work with ruby-oci8 0.1 and ruby-oci8 0.2 either.
537
-
538
- 2005-10-15 KUBO Takehiro <kubo@jiubao.org>
539
- * ext/oci8/handle.c: fix memory leaks. 700k per 10000 queries.
540
- fixed by Nathaniel Talbott. Thank you!
1144
+ * ext/oci8/metadata.c: set default value zero in C of private method
1145
+ OCI::Metadata::Base#__get_*. add a private method
1146
+ OCI::Metadata::Base#__charset_name.
1147
+ * lib/DBD/OCI8/OCI8.rb: fix to work with ruby-oci8 0.1 also.
1148
+ * lib/oci8/metadata.rb: refactor and add comments for rdoc.
1149
+
1150
+ 2006-02-11 KUBO Takehiro <kubo@jiubao.org>
1151
+ * lib/oci8.rb.in: require oci8/compat.rb also.
1152
+ * lib/oci8/compat.rb: add a new file. Old version's features
1153
+ are moved from lib/oci8/oci8.rb.
1154
+ * lib/oci8/metadata.rb: data_type's return value become symbol
1155
+ instead of number.
1156
+ * lib/oci8/oci8.rb: Old version's features are moved to
1157
+ lib/oci8/compat.rb.
1158
+
1159
+ 2006-02-09 KUBO Takehiro <kubo@jiubao.org>
1160
+ add OCI8::Metadata module.
1161
+ * ext/oci8/error.c: add oci8_get_error_code().
1162
+ * ext/oci8/extconf.rb: delete param.o and add metadata.o.
1163
+ * ext/oci8/metadata.c: add a new file.
1164
+ * ext/oci8/oci8.h: add oci8_get_error_code(), Init_oci8_metadata(),
1165
+ oci8_metadata_create() and ora_number_to_str().
1166
+ delete and oci8_param_create().
1167
+ * ext/oci8/oci8lib.c: call Init_oci8_metadata() instead of
1168
+ Init_oci8_param().
1169
+ * ext/oci8/oranumber.c: export ora_number_to_str().
1170
+ * ext/oci8/param.c: deleted.
1171
+ * ext/oci8/stmt.c: call oci8_metadata_create instead of
1172
+ oci8_param_create().
1173
+ * lib/oci8.rb.in: require 'oci8/metadata.rb'
1174
+ * lib/oci8/metadata.rb: add a new file.
1175
+
1176
+ 2006-02-08 KUBO Takehiro <kubo@jiubao.org>
1177
+ * lib/oci8.rb: move almost code to lib/oci8/oci8.rb.
1178
+ * lib/oci8/oci8.rb: moved from lib/oci8.rb.
1179
+
1180
+ 2006-02-04 KUBO Takehiro <kubo@jiubao.org>
1181
+ merge OCIStmt to OCi8::Curosr.
1182
+ * ext/oci8/oci8.c: implement OCI8::autocommit? and OCI8::autocommit=
1183
+ in C layer.
1184
+ * ext/oci8/oci8.h: fix oci8_svcctx_t structure to support
1185
+ OCI8::autocommit in C layer. fix Init_oci8_stmt() prototype.
1186
+ * ext/oci8/oci8lib.c: fix Init_oci8_stmt().
1187
+ * ext/oci8/stmt.c: OCIStmt become OCI8::Cursor. Almost OCIStmt's
1188
+ methods become private methods, which are called by ruby layer.
1189
+ * lib/oci8.rb.in: delete OCI8::autocommit?, OCI8::autocommit=,
1190
+
1191
+ 2006-02-02 KUBO Takehiro <kubo@jiubao.org>
1192
+ move non-blocking handling code from oci8.rb to oci8lib.so.
1193
+ * ext/oci8/error.c: add OCIBreak class.
1194
+ * ext/oci8/oci8.c: move oci8_svcctx_t to oci8.h.
1195
+ change oci8_commit(), oci8_rollback(), oci8_non_blocking_p()
1196
+ and oci8_set_non_blocking() to use oci_rc macro.
1197
+ change oci8_break() for oci_rc macro.
1198
+ delete oci8_reset(). OCIReset is called in oci_rc macro now.
1199
+ change oci8_get_svcctx() scope to global.
1200
+ implement OCI8#commit, OCI8#rollback, OCI8#non_blocking?,
1201
+ OCI8#non_blocking=, OCI8#break in C layer.
1202
+ * ext/oci8/oci8.h: move oci8_svcctx_t from oci8.c.
1203
+ implement oci_rc2 and oci_rc macro.
1204
+ * ext/oci8/stmt.c: change oci8_stmt_execute() and oci8_stmt_fetch()
1205
+ to use oci_rc macro.
1206
+ * lib/oci8.rb.in: delete non-blocking handling code.
1207
+ delete OCI8#commit, OCI8#rollback, OCI8#non_blocking?,
1208
+ OCI8#non_blocking=, OCI8#break from ruby layer.
1209
+
1210
+ 2006-01-29 KUBO Takehiro <kubo@jiubao.org>
1211
+ * ext/oci8/oci8lib.c: rename OCI8Base to OCIHandle.
1212
+
1213
+ 2006-01-28 KUBO Takehiro <kubo@jiubao.org>
1214
+ * ext/oci8/const.c: delete this file.
1215
+ delete global constants OCI_TYPECODE_*.
1216
+ * ext/oci8/extconf.rb: delete const.o from compilation objects.
1217
+ * ext/oci8/oci8lib.c: move oci8_id_new, OCI_DEFAULT and
1218
+ OCI_COMMIT_ON_SUCCESS from const.c.
1219
+ rename Init_oci8_svcctx() to Init_oci8().
1220
+ * ext/oci8/oci8.c: rename Init_oci8_svcctx() to Init_oci8().
1221
+ * ext/oci8/oci8.h: rename Init_oci8_svcctx() to Init_oci8() and so on...
1222
+
1223
+ 2006-01-28 KUBO Takehiro <kubo@jiubao.org>
1224
+ * ext/oci8/bind.c, ext/oci8/error.c, ext/oci8/oci8.c,
1225
+ ext/oci8/ocidatetime.c, ext/oci8/oradate.c,
1226
+ ext/oci8/oranumber.c, ext/oci8/param.c, ext/oci8/rowid.c,
1227
+ ext/oci8/stmt.c: fix indentation.
1228
+ * .cvsignore, ext/oci8/.cvsignore: added.
1229
+
1230
+ 2005-10-22 KUBO Takehiro <kubo@jiubao.org>
1231
+ * ext/oci8/oci8lib.c, ext/oci8/oci8.c, ext/oci8/svcctx.c, ext/oci8/extconf.rb:
1232
+ oci8.c is renamed to oci8lib.c.
1233
+ svcctx.c is renamed to oci8.c.
1234
+
1235
+ 2005-10-22 KUBO Takehiro <kubo@jiubao.org>
1236
+ * ext/oci8/ocidatetime.c: fix to bind OCIDateTime.
541
1237
  * ext/oci8/oraconf.rb: add -R to linker on Solaris and Linux.
542
1238
  http://rubyforge.org/tracker/index.php?func=detail&aid=2148&group_id=256&atid=1051
543
- * lib/oci8.rb.in: add DateTime suppport. suggested by Daniel Berger.
1239
+ * ext/oci8/svcctx.c: change a setter name. __non_blocking= doesn't work. use
1240
+ __set_non_blocking instead.
1241
+ * lib/oci8.rb.in: add ruby's Datetime support.
1242
+ * lib/ocidatetime.rb: add a ruby's Datetime support file.
1243
+ * test/test_all.rb: fix
1244
+ * test/test_break.rb: add two assesion to check a non_blocking status.
544
1245
  * test/test_dbi.rb, test/test_oci8.rb: testcases for DateTime.
545
1246
  * test/test_oradate.rb: delete an unsuccessfull testcase, which depends on libc implementation.
546
- * README: add bind-types.
547
- * Makefile, ext/oci8/extconf.rb: change version to 0.1.13.
548
1247
 
549
- 2005-07-20 KUBO Takehiro <kubo@jiubao.org>
550
- * README: rewrite.
551
- * ext/oci8/oraconf.rb: 1. try $libs which works on many cases then
552
- get from demo_rdbms.mk. 2. don't read sysliblist when instant client.
553
- 3. rewrie OraConf#check_lp64().
554
- * Makefile, ext/oci8/extconf.rb: change version to 0.1.12.
1248
+ 2005-07-17 KUBO Takehiro <kubo@jiubao.org>
1249
+ * ext/oci8/lob.c, ext/oci8/oci8.c, ext/oci8/oci8.h, lib/oci8.rb.in:
1250
+ delete OCILobLocator. implement OCI8::LOB by C instead of ruby.
1251
+ * ext/oci8/svcctx.c: add more check in oci8_get_svcctx().
1252
+
1253
+ 2005-07-17 KUBO Takehiro <kubo@jiubao.org>
1254
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/oci8.h, ext/oci8/ocidatetime.c,
1255
+ ext/oci8/ocinumber.c, ext/oci8/oradate.c, ext/oci8/oranumber.c,
1256
+ ext/oci8/rowid.c, ext/oci8/stmt.c, ext/oci8/svcctx.c:
1257
+ change arguments of (oci8_bind_class_t *)->init(). change the return
1258
+ value of oci8_get_svcctx(). add oci8_get_oci_session().
1259
+ * lib/oci8.rb.in: change arguments of OCI8::BindType:Base.new().
555
1260
 
556
1261
  2005-07-16 KUBO Takehiro <kubo@jiubao.org>
557
1262
  * metaconfig: move "require 'base64'" and "require 'zlib'" to the
558
1263
  next line of "def get_zcontent(file)" for a ruby which doesn't
559
1264
  have 'zlib'.
560
1265
 
1266
+ 2005-07-10 KUBO Takehiro <kubo@jiubao.org>
1267
+ * ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/svcctx.c, lib/oci8.rb.in:
1268
+ OCISvcCtx class is merged to OCI8 class. OCISvcCtx's public instance
1269
+ methods become OCI8's private instance methods.
1270
+ * ext/oci8/depend: deleted.
1271
+
1272
+ 2005-07-10 KUBO Takehiro <kubo@jiubao.org>
1273
+ * Makefile, ext/oci8/extconf.rb: change version to 0.2.0-alpha.
1274
+ * ext/oci8/extconf.rb: add "ocidatetime.o" to $objs. add '--with-instant-client'
1275
+ to Makefile when setup.rb is called with '--with-instant-client'.
1276
+ * ext/oci8/oci8.c: add oci8_base_class. fix bug in oci8_handle_initialize().
1277
+ call Init_oci_datetime() in Init_oci8().
1278
+ * ext/oci8/oci8.h: add macros oci_lc, CHECK_STRING, TO_STRING_PTR and TO_STRING_LEN.
1279
+ * ext/oci8/ocinumber.c: add oci8_get_ocinumber().
1280
+ * ext/oci8/ocidatetime.c: add a new file for OCIDateTime.
1281
+
1282
+ 2005-07-09 KUBO Takehiro <kubo@jiubao.org>
1283
+ * ext/oci8/bind.c, ext/oci8/lob.c, ext/oci8/oci8.h, ext/oci8/oradate.c,
1284
+ ext/oci8/oranumber.c, ext/oci8/rowid.c, ext/oci8/stmt.c:
1285
+ use doubly linked list to free OCI8::BindType::*.
1286
+ * ext/oci8/extconf.rb, ext/oci8/oci8.c, ext/oci8/ocinumber.c: add OCINumber.
1287
+
1288
+ 2005-07-03 KUBO Takehiro <kubo@jiubao.org>
1289
+ * ext/oci8/*.c, ext/oci8/*.h: remove oci8_handle_t and oci8_base_class_t.
1290
+ use oci8_base_t and oci8_bind_t instead of them. use oci8_base_class_t
1291
+ and oci8_bind_class_t.
1292
+ * ext/oci8/descriptor.c, ext/oci8/handle.c: removed.
1293
+ * ext/oci8/rowid.c: added.
1294
+
1295
+ 2005-07-01 KUBO Takehiro <kubo@jiubao.org>
1296
+ * ext/oci8/oraconf.rb: try default $libs then get from demo_rdbms.mk.
1297
+
1298
+ 2005-06-29 KUBO Takehiro <kubo@jiubao.org>
1299
+ * ext/oci8/oraconf.rb: don't read sysliblist when instant client.
1300
+
1301
+ 2005-06-12 KUBO Takehiro <kubo@jiubao.org>
1302
+ * ext/oci8/const.c: delete unused constants.
1303
+ move some oci_id_* to ext/oci8/error.c.
1304
+ move oci8_sym_*stmt to ext/oci8/stmt.c.
1305
+ * ext/oci8/error.c:
1306
+ move some oci_id_* from ext/oci8/const.c.
1307
+ move subclasses of cOCIException from ext/oci8/oci8.c.
1308
+ * ext/oci8/extconf.rb: add have_func("localtime_r").
1309
+ * ext/oci8/handle.c: delete explicit OCIParam.
1310
+ * ext/oci8/lob.c: delete #ifdef OCI8_USE_CALLBACK_LOB_READ.
1311
+ * ext/oci8/oci8.c:
1312
+ move subclasses of cOCIException to ext/oci8/error.c.
1313
+ move cOraDate to ext/oci8/oradate.c.
1314
+ move cOraNumber to ext/oci8/oranumber.c.
1315
+ * ext/oci8/oci8.h:
1316
+ move ora_date_t to ext/oci8/oradate.c.
1317
+ move ora_number_t and ora_vnumber_t to ext/oci8/oranumber.c.
1318
+ * ext/oci8/oradate.c: fix indentation.
1319
+ move cOraDate from ext/oci8/oci8.c.
1320
+ move ora_date_t from ext/oci8/oci8.h.
1321
+ * ext/oci8/oranumber.c: fix indentation.
1322
+ move cOraNumber from ext/oci8/oci8.c.
1323
+ move ora_number_t and ora_vnumber_t from ext/oci8/oci8.h.
1324
+ * ext/oci8/param.c: delete OCIParam#paramGet().
1325
+ * ext/oci8/stmt.c:
1326
+ move oci8_sym_*stmt from ext/oci8/const.c.
1327
+ fix OCIStmt#prepare() and OCIStmt#execute().
1328
+
1329
+ 2005-06-12 KUBO Takehiro <kubo@jiubao.org>
1330
+ * ext/oci8/bind.c: add oci8_register_bind_type().
1331
+ move bind_rowid* to ext/oci8/descriptor.c.
1332
+ move bind_clob* and bind_blob* to ext/oci8/lob.c.
1333
+ move bind_oradate* to ext/oci8/oradate.c.
1334
+ move bind_oranumber* and bind_integer* to ext/oci8/oranumber.c.
1335
+ move bind_stmt* to ext/oci8/stmt.c.
1336
+ * ext/oci8/const.c: add oci8_sym_*_stmt. delete ruby constants OCI_STMT_*.
1337
+ * ext/oci8/descriptor.c: move bind_rowid* from ext/oci8/bind.c.
1338
+ * ext/oci8/lob.c: move bind_clob* and bind_blob* from ext/oci8/bind.c.
1339
+ * ext/oci8/oci8.c: change initialization order for oci8_register_bind_type().
1340
+ * ext/oci8/oci8.h: add oci8_register_bind_type(). add oci8_sym_*_stmt.
1341
+ * ext/oci8/oradate.c: move bind_oradate* from ext/oci8/bind.c.
1342
+ oci8_set_ora_date() become a static function.
1343
+ delete oci8_get_ora_date().
1344
+ * ext/oci8/oranumber.c: move bind_oranumber* and bind_integer* from ext/oci8/bind.c.
1345
+ * ext/oci8/stmt.c: move bind_stmt* from ext/oci8/bind.c.
1346
+ OCIStmt#stmt_type returns a Symbol instead of a Fixnum.
1347
+ * lib/oci8.rb.in: OCI8::Cursor#type returns a Symbol instead of a Fixnum.
1348
+
1349
+ 2005-06-12 KUBO Takehiro <kubo@jiubao.org>
1350
+ * ext/oci8/extconf.rb: add have_func("OCILobLocatorAssign").
1351
+ * ext/oci8/lob.c: delete OCILobLocator#getChunkSize().
1352
+ use OCILobAssign instead of OCILobLocatorAssign on Oracle 8.
1353
+ * ext/oci8/attr.c, ext/oci8/oci8.h: delete OCI*#attrGet(), OCI*#attrSet().
1354
+ * ext/oci8/const.c: delete OCI_ATTR_* constants.
1355
+ * ext/oci8/descriptor.c: delete OCIDescriptor#attrGet(), OCIDescriptor#attrSet().
1356
+ * ext/oci8/handle.c: delete OCIHandle#attrGet(), OCIHandle#attrSet().
1357
+ * ext/oci8/param.c: add OCIParam#name, OCIParam#data_type, OCIParam#data_size,
1358
+ OCIParam#precision and OCIParam#scale.
1359
+ * ext/oci8/stmt.c: add OCIStmt#stmt_type, OCIStmt#row_count, OCIStmt#rowid and
1360
+ OCIStmt#param_count.
1361
+ * lib/oci8.rb.in: use OCIParam#name, OCIParam#data_type, OCIParam#data_size,
1362
+ OCIParam#precision, OCIParam#scale, OCIStmt#stmt_type, OCIStmt#row_count,
1363
+ OCIStmt#rowid and OCIStmt#param_count instead of OCIHandle#attrGet() and
1364
+ OCIDescriptor#attrGet().
1365
+
1366
+ 2005-06-12 KUBO Takehiro <kubo@jiubao.org>
1367
+ * ext/oci8/oraconf.rb: rewrie OraConf#check_lp64().
1368
+ * ext/oci8/bind.c, ext/oci8/descriptor.c, ext/oci8/env.c,
1369
+ ext/oci8/handle.c, ext/oci8/lob.c, ext/oci8/oci8.h,
1370
+ ext/oci8/stmt.c, ext/oci8/svcctx.c, lib/oci8.rb.in:
1371
+ delete an OCIEnv instance from each instance method's argument.
1372
+ get it from the internal global variable in C.
1373
+ * ext/oci8/oci8.c, lib/DBD/OCI8/OCI8.rb: change the OCIBind class name
1374
+ to OCI8::BindType::Base.
1375
+ * lib/oci8.rb.in: fix typo rb_eArgError to ArgumentError.
1376
+
1377
+ 2005-06-08 KUBO Takehiro <kubo@jiubao.org>
1378
+ * ext/oci8/oraconf.rb: test __64BIT__ to check whether lp64. (for AIX 64bit)
1379
+
561
1380
  2005-05-31 KUBO Takehiro <kubo@jiubao.org>
562
1381
  * ext/oci8/oraconf.rb: fix for cygwin. fix for oracle instant client.
563
1382
  * metaconfig: add distbin task.
564
1383
 
565
1384
  2005-05-29 KUBO Takehiro <kubo@jiubao.org>
566
- * lib/oci8.rb.in: add OCI8::BindType::Mapping[:number_unknown_prec]
567
- and OCI8::BindType::Mapping[:number_no_prec_setting].
568
- * ext/oci8/oraconf.rb: copy from oraconf.rb of ruby-oci8 0.2.
569
- * ext/oci8/lob.c: delete OCILobLocator#getChunkSize on Oracle 8.0.
570
- use OCILobAssign() instead of OCILobLocatorAssign() on Oracle 8.0.
571
- * ext/oci8/extconf.rb: add have_func("OCILobGetChunkSize") and
572
- have_func("OCILobLocatorAssign") for Oracle 8.0.
573
- * Makefile, ext/oci8/extconf.rb: change version to 0.1.11
574
- * README: add '5. How to customize fetched datatypes.'
1385
+ * ext/oci8/oraconf.rb: change the detection logic for Multiple
1386
+ Oracle Homes on Windows.
1387
+
1388
+ 2005-05-24 KUBO Takehiro <kubo@jiubao.org>
1389
+ * ext/oci8/oraconf.rb: use "-L#{@oracle_home}/lib(32) -lclntsh" as
1390
+ a last resort.
1391
+
1392
+ 2005-04-14 KUBO Takehiro <kubo@jiubao.org>
1393
+ * ext/oci8/oraconf.rb: fix for Cygwin with Oracle instant client.
1394
+ add Oraconf#lp64, which is true when long and pointer are 64 bits.
1395
+ improve error message.
1396
+
1397
+ 2005-04-10 KUBO Takehiro <kubo@jiubao.org>
1398
+ * README: change the document format for rdoc.
1399
+ * ext/oci8/bind.c, ext/oci8/descriptor.c, ext/oci8/env.c,
1400
+ ext/oci8/error.c, ext/oci8/const.c, ext/oci8/handle.c
1401
+ ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/stmt.c:
1402
+ change bind_type_t structure. bind_* variables in binc.c
1403
+ become OCI8::BindType::* which are subclasses of OCIBind.
1404
+ add envh member to oci8_handle_t and oci8_bind_handle_t.
1405
+ add OCIRowid#initialize.
1406
+ delete macros to compile on ruby 1.6.
1407
+ * lib/oci8.rb.in: add comments for rdoc.
1408
+ change OCI8::BindType::*.
1409
+ * lib/DBD/OCI8/OCI8.rb
1410
+ change DBI::DBD::OCI8::BindType::*.
1411
+
1412
+ 2005-04-06 KUBO Takehiro <kubo@jiubao.org>
1413
+ * ext/oci8/oci8.h, ext/oci8/handle.c: delete enum oci8_bind_type.
1414
+ add oci8_bind_type_t.
1415
+ * ext/oci8/bind.c: add oci8_bind_type_t structures bind_string, bind_raw,
1416
+ bind_fixnum, bind_float, bind_oradate, bind_integer, bind_oranumber,
1417
+ bind_rowid, bind_clob, bind_blob, and bind_stmt.
1418
+ add oci8_bind_type_set() and oci8_bind_type_get() to get/set
1419
+ an oci8_bind_type_t structure.
1420
+ delete oci8_get_value() and oci8_set_value(), use
1421
+ (oci8_bind_type_t*)->get()/set() instead.
1422
+ * ext/oci8/stmt.c: change check_bind_type() by using oci8_bind_type_t.
1423
+ change oci8_define_by_pos(), oci8_bind_by_pos() and oci8_bind_by_name().
1424
+ * ext/oci8/MANIFEST, ext/oci8/depend, ext/oci8/extconf.rb, ext/oci8/oci8.c,
1425
+ ext/oci8/define.c: delete define.c and Init_define().
1426
+ * lib/oci8.rb.in: change OCI8::BindType::Float, OCI8::BindType::Fixnum,
1427
+ OCI8::BindType::Integer and OCI8::BindType::OraNumber for in-bind.
1428
+
1429
+ 2005-04-03 KUBO Takehiro <kubo@jiubao.org>
1430
+ * ext/oci8/oraconf.rb: improve Oracle instance client check:
1431
+ 1. add more strict libclntsh.so check.
1432
+ 2. change LD_LIBRARY_PATH message by its platform.
1433
+ 3. add '-Wl,-rpath,#{lib_dir}' to $libs when Linux.
1434
+ * ext/oci8/MANIFEST, ext/oci8/depend, ext/oci8/extconf.rb:
1435
+ delete server.c and session.c.
1436
+ * ext/oci8/attr.c: delete OCISvcCtx#attrGet(OCI_ATTR_NONBLOCKING_MODE),
1437
+ OCISvcCtx#attrSet(OCI_ATTR_NONBLOCKING_MODE, nil),
1438
+ OCISvcCtx#attrSet(OCI_ATTR_SERVER, aOCIServer),
1439
+ OCISvcCtx#attrSet(OCI_ATTR_SESSION, aOCISession).
1440
+ * ext/oci8/const.c: delete constants unused by high-level API.
1441
+ delete oci8_id_server, oci8_id_session.
1442
+ * ext/oci8/handle.c, ext/oci8/descriptor.c: use ruby1.8 allocation
1443
+ framework.
1444
+ * ext/oci8/env.c: add OCIEnv.new. delete OCIEnv.initialise(),
1445
+ OCIEnv.init(), OCIEnv.create(), OCIEnv.terminate(),
1446
+ OCIEnv#alloc(), OCIEnv#logon().
1447
+ * ext/oci8/oci8.c, ext/oci8/oci8.h: use ruby1.8 allocation
1448
+ framework. delete OCIServer and OCISession.
1449
+ * ext/oci8/lob.c: add OCILobLocator.new
1450
+ * ext/oci8/stmt.c: add OCIStmt.new
1451
+ * ext/oci8/svcctx.c: add OCISvcCtx.new, OCISvcCtx#non_blocking?,
1452
+ OCISvcCtx#non_blocking=
1453
+ * ext/oci8/server.c, ext/oci8/session.c: deleted.
1454
+ * lib/oci8.rb.in: use OCIEnv.new and OCISvcCtx.new instead of
1455
+ OCIEnv.create, OCIEnv#alloc, OCISession#begin, OCIServer#attach.
1456
+ use OCISvcCtx.logoff instead of OCISession#end, OCIServer#detach,
1457
+ OCISvcCtx.free. use OCISvcCtx#non_blocking? instead of
1458
+ OCISvcCtx#attrGet(OCI_ATTR_NONBLOCKING_MODE).
1459
+ use OCISvcCtx#non_blocking= instead of
1460
+ OCISvcCtx#attrSet(OCI_ATTR_NONBLOCKING_MODE, nil).
1461
+ use <OCICLASS>.new(anOCIEnv) instead of
1462
+ OCIEnv#alloc(<OCIClass>)
1463
+ * lib/DBD/OCI8/OCI8.rb: use OCIStmt.new(env) instead of
1464
+ env.alloc(OCIStmt).
1465
+
1466
+ 2005-03-27 KUBO Takehiro <kubo@jiubao.org>
1467
+ * ext/oci8/server.c: delete OCIServer#version, OCIServer#break, OCIServer#reset.
1468
+ * ext/oci8/stmt.c: OCIStmt#bindByName accepts a symbol as a bind name.
1469
+ * lib/oci8.rb.in: add OCI8::LOB#sync, OCI8::LOB#sync= and OCI8::LOB#flush.
1470
+ * test/test_bind_raw.rb, test/test_bind_time.rb, test/test_clob.rb,
1471
+ test/test_oradate.rb, test/test_oranumber.rb: use OCI8 high-level API
1472
+ instead of low-level API.
575
1473
 
576
1474
  2005-03-24 KUBO Takehiro <kubo@jiubao.org>
577
- * branch as oci8-0-1.
578
1475
  * oci8.rb.in: fix bug on binding Time or Date.
579
- * Makefile, ext/oci8/extconf.rb: change version to 0.1.10.1
1476
+ * support/*: deleted.
1477
+ * test/*.rb: use 'test/unit' instead of runit.
1478
+ ruby 1.6.8 won't be supported by this commit.
1479
+ * ext/oci8/MANIFEST, ext/oci8/depend, ext/oci8/describe.c(deleted),
1480
+ ext/oci8/env.c, ext/oci8/extconf.rb, ext/oci8/handle.c,
1481
+ ext/oci8/oci8.c, ext/oci8/oci8.h, ext/oci8/svcctx.c:
1482
+ delete OCIDescribe and OCISvcCtx#describeAny. OCIDescribe isn't used by
1483
+ oci8 high-level API.
1484
+ * test/test_all.rb, test/test_describe.rb(deleted): delete OCIDescribe
1485
+ test cases.
580
1486
 
581
1487
  2005-03-23 KUBO Takehiro <kubo@jiubao.org>
582
1488
  * oci8.rb.in, OCI8.rb: