ruby-oci8 1.0.7 → 2.0.0

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