ruby-oci8 2.2.6.1 → 2.2.7
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +52 -3
- data/NEWS +106 -54
- data/dist-files +1 -1
- data/docs/install-instant-client.md +1 -0
- data/ext/oci8/apiwrap.yml +20 -0
- data/ext/oci8/bind.c +364 -3
- data/ext/oci8/lob.c +22 -29
- data/ext/oci8/object.c +37 -24
- data/ext/oci8/oci8.c +9 -11
- data/ext/oci8/oraconf.rb +2 -2
- data/ext/oci8/stmt.c +47 -12
- data/lib/oci8.rb +1 -1
- data/lib/oci8/bindtype.rb +0 -14
- data/lib/oci8/check_load_error.rb +51 -16
- data/lib/oci8/cursor.rb +46 -13
- data/lib/oci8/oci8.rb +1 -1
- data/lib/oci8/version.rb +1 -1
- data/ruby-oci8.gemspec +1 -2
- data/test/README.md +40 -0
- data/test/config.rb +1 -1
- data/test/test_oci8.rb +154 -43
- metadata +4 -6
- data/test/README +0 -42
data/ChangeLog
CHANGED
@@ -1,11 +1,60 @@
|
|
1
|
-
|
2
|
-
* NEWS: Add changes between 2.2.6 and 2.2.
|
3
|
-
* lib/oci8/version.rb: Update to 2.2.
|
1
|
+
2019-01-06 Kubo Takehiro <kubo@jiubao.org>
|
2
|
+
* NEWS: Add changes between 2.2.6.1 and 2.2.7.
|
3
|
+
* lib/oci8/version.rb: Update to 2.2.7
|
4
|
+
|
5
|
+
2019-01-06 Kubo Takehiro <kubo@jiubao.org>
|
6
|
+
* mkpkg-win32.rb, ruby-oci8.gemspec: Build binary gems for ruby 2.6
|
7
|
+
on Windows.
|
8
|
+
|
9
|
+
2019-01-06 Kubo Takehiro <kubo@jiubao.org>
|
10
|
+
* ext/oci8/oci8.c: Updata doc comments for OCI8#long_read_len
|
11
|
+
and OCI8#long_read_len=. These are deprecated.
|
12
|
+
|
13
|
+
2019-01-03 Kubo Takehiro <kubo@jiubao.org>
|
14
|
+
* lib/oci8/check_load_error.rb: Use fiddle instead of Win32API
|
15
|
+
to call WIN32 functions.
|
16
|
+
|
17
|
+
2019-01-03 Kubo Takehiro <kubo@jiubao.org>
|
18
|
+
* lib/oci8/check_load_error.rb: Add more error diagnostics
|
19
|
+
when 'require "oci8"' fails with "OCI.DLL: 126(The specified
|
20
|
+
module could not be found.)".
|
21
|
+
|
22
|
+
2019-01-03 Kubo Takehiro <kubo@jiubao.org>
|
23
|
+
* lib/oci8.rb, lib/oci8/check_load_error.rb: Exclude empty
|
24
|
+
parts of PATH on Windows.
|
25
|
+
|
26
|
+
2018-12-23 Kubo Takehiro <kubo@jiubao.org>
|
27
|
+
* lib/oci8/check_load_error.rb: Check OCI.DLL archtecture
|
28
|
+
when load error. It worked for ruby installer but not
|
29
|
+
for ruby installer2.
|
30
|
+
|
31
|
+
2018-12-23 Kubo Takehiro <kubo@jiubao.org>
|
32
|
+
* docs/install-instant-client.md: Add information about
|
33
|
+
the MSVC redistributable package required by Oracle 18.3 client.
|
4
34
|
|
5
35
|
2018-09-16 Kubo Takehiro <kubo@jiubao.org>
|
6
36
|
* ext/oci8/hook_funcs.c: Fix "No shared library is found to hook." on macOS.
|
7
37
|
(oracle-enhanced issue #1768)
|
8
38
|
|
39
|
+
2018-09-11 Kubo Takehiro <kubo@jiubao.org>
|
40
|
+
* ext/oci8/object.c, lib/oci8/cursor.rb: Change the internal structure
|
41
|
+
about object type binding to use array fetching for object types.
|
42
|
+
|
43
|
+
2018-09-09 Kubo Takehiro <kubo@jiubao.org>
|
44
|
+
* ext/oci8/lob.c: Read lob data without checking readable size to
|
45
|
+
reduce number of network round trips from two to one.
|
46
|
+
|
47
|
+
2018-09-05 Kubo Takehiro <kubo@jiubao.org>
|
48
|
+
* ext/oci8/bind.c, ext/oci8/stmt.c, lib/oci8/cursor.rb,
|
49
|
+
lib/oci8/oci8.rb, test/test_oci8.rb: Use array fetching when
|
50
|
+
LOB colums are in a query and no object types are in the query.
|
51
|
+
|
52
|
+
2018-09-02 Kubo Takehiro <kubo@jiubao.org>
|
53
|
+
* ext/oci8/apiwrap.yml, ext/oci8/bind.c, ext/oci8/stmt.c,
|
54
|
+
lib/oci8/bindtype.rb, test/test_oci8.rb: Rewrite OCI8::BindType::Long
|
55
|
+
and OCI8::BindType::LongRaw to handle up to 2 gigabyte data using
|
56
|
+
dynamically allocated buffers.
|
57
|
+
|
9
58
|
2018-08-22 Kubo Takehiro <kubo@jiubao.org>
|
10
59
|
* NEWS: Add changes between 2.2.5.1 and 2.2.6
|
11
60
|
* lib/oci8/version.rb: Update to 2.2.6
|
data/NEWS
CHANGED
@@ -1,15 +1,67 @@
|
|
1
1
|
# @markup markdown
|
2
2
|
|
3
|
-
2.2.
|
4
|
-
|
3
|
+
2.2.7 (2019-01-06)
|
4
|
+
==================
|
5
|
+
|
6
|
+
Incompatible Changes
|
7
|
+
--------------------
|
8
|
+
|
9
|
+
### `OCI8#long_read_len` and `OCI8#long_read_len=` do nothing.
|
10
|
+
|
11
|
+
When `LONG`, `LONG RAW` or `XMLTYPE` data were fetched, the data were
|
12
|
+
truncated at `OCI8#long_read_len`. The maximum size of data had
|
13
|
+
been 4 gigabytes since this release.
|
14
|
+
|
15
|
+
`OCI8#long_read_len` and `OCI8#long_read_len=` remain for code-compatibility
|
16
|
+
but do nothing.
|
17
|
+
|
18
|
+
Improvement
|
19
|
+
-----------
|
20
|
+
|
21
|
+
### The number of network round trips was reduced when LOB data are read.
|
22
|
+
|
23
|
+
When LOB data are read, ruby-oci8 before 2.2.7 does the followings:
|
24
|
+
|
25
|
+
1. Gets the size of the LOB.
|
26
|
+
2. Allocate buffer to hold the data.
|
27
|
+
3. Read the LOB contents.
|
28
|
+
|
29
|
+
This requires two round trips.
|
30
|
+
|
31
|
+
It now does the followings:
|
32
|
+
|
33
|
+
1. Request the server to get LOB contents up to 4 gigabytes.
|
34
|
+
2. Read the LOB contents and allocate buffer when the size is insufficient.
|
35
|
+
3. If the total length of received data is less than 4 gigabytes, all data
|
36
|
+
are read. If not, go to the first step to read next 4 gigabytes.
|
37
|
+
|
38
|
+
This requires only one round trip if the size is less than 4 gigabytes.
|
39
|
+
|
40
|
+
### Use array fetching instead of prefetching when LOB columns are in queries
|
41
|
+
|
42
|
+
When LOB columns are in queries, prefetching doesn't seem to work. Rows
|
43
|
+
are fetched one by one according to data captured by network packet sniffer.
|
44
|
+
So array fetching is used instead of prefetching to reduce the number of
|
45
|
+
network round trips.
|
46
|
+
|
47
|
+
### Add error diagnostics when `'require "oci8"'` fails on Windows.
|
48
|
+
|
49
|
+
When `'require "oci8"'` fails with "OCI.DLL: 126(The specified module could not be found.)"
|
50
|
+
on Windows, the cause is not always that OCI.DLL is not found. It may
|
51
|
+
be incorrect architecture, missing dependent DLLs and so on.
|
52
|
+
Ruby-oci8 checks PATH and DLL files when the error is raised and change
|
53
|
+
the error message to reasonable one as possible.
|
54
|
+
|
55
|
+
2.2.6.1 (2018-09-16)
|
56
|
+
====================
|
5
57
|
|
6
58
|
Fixed issue
|
7
59
|
-----------
|
8
60
|
Fix "No shared library is found to hook." on macOS.
|
9
61
|
(rsim/oracle-enhanced#1768)
|
10
62
|
|
11
|
-
2.2.6
|
12
|
-
|
63
|
+
2.2.6 (2018-08-22)
|
64
|
+
==================
|
13
65
|
|
14
66
|
This release fixed issues about Oracle 18c except one.
|
15
67
|
|
@@ -47,8 +99,8 @@ communication channel."
|
|
47
99
|
|
48
100
|
(github issue #185)
|
49
101
|
|
50
|
-
2.2.5.1
|
51
|
-
|
102
|
+
2.2.5.1 (2017-12-27)
|
103
|
+
====================
|
52
104
|
|
53
105
|
No updates except tests. The version number was changed just to release
|
54
106
|
binary gems for ruby 2.5 on Windows.
|
@@ -57,8 +109,8 @@ binary gems for ruby 2.5 on Windows.
|
|
57
109
|
|
58
110
|
(github issue #180, #181)
|
59
111
|
|
60
|
-
2.2.5
|
61
|
-
|
112
|
+
2.2.5 (2017-10-21)
|
113
|
+
==================
|
62
114
|
|
63
115
|
New Features
|
64
116
|
------------
|
@@ -115,8 +167,8 @@ Other Changes
|
|
115
167
|
See {file:docs/number-type-mapping.md Number Type Mapping between Oracle and Ruby}.
|
116
168
|
(github issue #173)
|
117
169
|
|
118
|
-
2.2.4.1
|
119
|
-
|
170
|
+
2.2.4.1 (2017-06-17)
|
171
|
+
====================
|
120
172
|
|
121
173
|
Fixed issue
|
122
174
|
-----------
|
@@ -130,8 +182,8 @@ differently, it may cause unexpected behavior.
|
|
130
182
|
|
131
183
|
### Fix compilation errors in 2.2.4 on cygwin
|
132
184
|
|
133
|
-
2.2.4
|
134
|
-
|
185
|
+
2.2.4 (2017-06-11)
|
186
|
+
==================
|
135
187
|
|
136
188
|
New Features
|
137
189
|
------------
|
@@ -169,8 +221,8 @@ Use Win32::Registry instead of Win32API to compile ruby-oci8 on the latest cygwi
|
|
169
221
|
|
170
222
|
(contributed by davidbrs. [github issue #156](https://github.com/kubo/ruby-oci8/issues/156))
|
171
223
|
|
172
|
-
2.2.3
|
173
|
-
|
224
|
+
2.2.3 (2016-12-27)
|
225
|
+
==================
|
174
226
|
|
175
227
|
New Features
|
176
228
|
------------
|
@@ -183,8 +235,8 @@ New Features
|
|
183
235
|
- Suppress warnings outputted by Minitest in ruby 2.4.0
|
184
236
|
- Suppress warnings when compiling with ruby 2.4.0
|
185
237
|
|
186
|
-
2.2.2
|
187
|
-
|
238
|
+
2.2.2 (2016-04-24)
|
239
|
+
==================
|
188
240
|
|
189
241
|
New Features
|
190
242
|
------------
|
@@ -230,8 +282,8 @@ Other Changes
|
|
230
282
|
- Check the default value of DYLD_FALLBACK_LIBRARY_PATH after checking OCI_DIR on installation. (OS X only)
|
231
283
|
|
232
284
|
|
233
|
-
2.2.1
|
234
|
-
|
285
|
+
2.2.1 (2015-11-01)
|
286
|
+
==================
|
235
287
|
|
236
288
|
New Features
|
237
289
|
------------
|
@@ -259,16 +311,16 @@ Other Changes
|
|
259
311
|
|
260
312
|
- Delete unused code which was added to support old Oracle and ruby 1.8.
|
261
313
|
|
262
|
-
2.2.0.2
|
263
|
-
|
314
|
+
2.2.0.2 (2015-10-12)
|
315
|
+
====================
|
264
316
|
|
265
317
|
Nothing was changed except the version.
|
266
318
|
|
267
319
|
The forth version was incremented to release binary gems for mingw32.
|
268
320
|
The binary gems for 2.2.0.1 didn't work by faultily packaging.
|
269
321
|
|
270
|
-
2.2.0.1
|
271
|
-
|
322
|
+
2.2.0.1 (2015-10-11)
|
323
|
+
====================
|
272
324
|
|
273
325
|
If ruby-oci8 2.2.0 is installed, you have no need to update it to
|
274
326
|
2.2.0.1. Source code itself was not changed between 2.2.0 and 2.2.0.1.
|
@@ -284,8 +336,8 @@ Ruby-oci8 2.2.0 documents had not been generated in rubydoc.info
|
|
284
336
|
though the URLs are displayed on installation failure. They were
|
285
337
|
changed to documents generated by the latest github repository.
|
286
338
|
|
287
|
-
2.2.0
|
288
|
-
|
339
|
+
2.2.0 (2015-10-04)
|
340
|
+
==================
|
289
341
|
|
290
342
|
### Drop ruby 1.8 support
|
291
343
|
|
@@ -326,8 +378,8 @@ Other Changes
|
|
326
378
|
- Add OCI8.charset_name2id and OCI8.charset_id2name.
|
327
379
|
Mark OCI8#charset_name2id and OCI8#charset_id2name as deprecated.
|
328
380
|
|
329
|
-
2.1.8
|
330
|
-
|
381
|
+
2.1.8 (2015-04-04)
|
382
|
+
==================
|
331
383
|
|
332
384
|
New Features
|
333
385
|
------------
|
@@ -387,8 +439,8 @@ Fixed Issues
|
|
387
439
|
- Don't use SYM2ID on ruby 2.2.0 or later not to make symbols unGCable
|
388
440
|
by [Symbol GC](http://www.infoq.com/news/2014/12/ruby-2.2.0-released).
|
389
441
|
|
390
|
-
2.1.7
|
391
|
-
|
442
|
+
2.1.7 (2014-02-02)
|
443
|
+
==================
|
392
444
|
|
393
445
|
New Features
|
394
446
|
------------
|
@@ -400,8 +452,8 @@ Fixed Issues
|
|
400
452
|
|
401
453
|
- Fix OCI8#describe_table to follow synonyms in a remote database.
|
402
454
|
|
403
|
-
2.1.6
|
404
|
-
|
455
|
+
2.1.6 (2013-12-29)
|
456
|
+
==================
|
405
457
|
|
406
458
|
New Features
|
407
459
|
------------
|
@@ -441,8 +493,8 @@ Fixed Issues
|
|
441
493
|
- fix SEGV when one connection is used by more than two threads and temporary
|
442
494
|
lobs are freed by GC.
|
443
495
|
|
444
|
-
2.1.5
|
445
|
-
|
496
|
+
2.1.5 (2013-03-09)
|
497
|
+
==================
|
446
498
|
|
447
499
|
New Features
|
448
500
|
------------
|
@@ -462,8 +514,8 @@ Fixed Issues
|
|
462
514
|
instant client is 11.2.0.3 for Solaris x86 32-bit, the ruby
|
463
515
|
version is 1.9.3 or upper and the ruby is compiled by gcc.
|
464
516
|
|
465
|
-
2.1.4
|
466
|
-
|
517
|
+
2.1.4 (2013-01-06)
|
518
|
+
==================
|
467
519
|
|
468
520
|
New Features
|
469
521
|
------------
|
@@ -503,8 +555,8 @@ Fixed Issues
|
|
503
555
|
|
504
556
|
(reported by Brian Henderson)
|
505
557
|
|
506
|
-
2.1.3
|
507
|
-
|
558
|
+
2.1.3 (2012-11-11)
|
559
|
+
==================
|
508
560
|
|
509
561
|
New Features
|
510
562
|
------------
|
@@ -561,8 +613,8 @@ Fixed Issues
|
|
561
613
|
- Fix #<NoMethodError: undefined method `timezone' for Time:Class>
|
562
614
|
when ruby is less than 1.9.2 and an object type's time attribute is accessed.
|
563
615
|
|
564
|
-
2.1.2
|
565
|
-
|
616
|
+
2.1.2 (2012-04-28)
|
617
|
+
==================
|
566
618
|
|
567
619
|
Specification changes
|
568
620
|
---------------------
|
@@ -583,8 +635,8 @@ Fixed Issues
|
|
583
635
|
|
584
636
|
(reported by Yasuo Honda)
|
585
637
|
|
586
|
-
2.1.1
|
587
|
-
|
638
|
+
2.1.1 (2012-04-22)
|
639
|
+
==================
|
588
640
|
|
589
641
|
New Features
|
590
642
|
------------
|
@@ -631,8 +683,8 @@ Fixed Issues
|
|
631
683
|
|
632
684
|
(repored by Leoš Bitto)
|
633
685
|
|
634
|
-
2.1.0
|
635
|
-
|
686
|
+
2.1.0 (2011-12-13)
|
687
|
+
==================
|
636
688
|
|
637
689
|
New Features
|
638
690
|
------------
|
@@ -747,8 +799,8 @@ Fixed Issues
|
|
747
799
|
|
748
800
|
(reported by jbirdjavi)
|
749
801
|
|
750
|
-
2.0.6
|
751
|
-
|
802
|
+
2.0.6 (2011-06-14)
|
803
|
+
==================
|
752
804
|
|
753
805
|
Fixed issues
|
754
806
|
------------
|
@@ -759,8 +811,8 @@ Fixed issues
|
|
759
811
|
a closed OCI handle's method is called. It was chaned in 2.0.5
|
760
812
|
by mistake.
|
761
813
|
|
762
|
-
2.0.5
|
763
|
-
|
814
|
+
2.0.5 (2011-06-12)
|
815
|
+
==================
|
764
816
|
|
765
817
|
New Features
|
766
818
|
------------
|
@@ -848,8 +900,8 @@ Fixed issues
|
|
848
900
|
|
849
901
|
(reported by Sebastian YEPES)
|
850
902
|
|
851
|
-
2.0.4
|
852
|
-
|
903
|
+
2.0.4 (2010-02-28)
|
904
|
+
==================
|
853
905
|
|
854
906
|
New Features
|
855
907
|
------------
|
@@ -910,8 +962,8 @@ Fixed issues
|
|
910
962
|
|
911
963
|
(reported by Raimonds Simanovskis)
|
912
964
|
|
913
|
-
2.0.3
|
914
|
-
|
965
|
+
2.0.3 (2009-10-21)
|
966
|
+
==================
|
915
967
|
|
916
968
|
Incompatible Changes
|
917
969
|
--------------------
|
@@ -1051,8 +1103,8 @@ Fixed installation issues
|
|
1051
1103
|
|
1052
1104
|
(reported by Kazuya Teramoto)
|
1053
1105
|
|
1054
|
-
2.0.2
|
1055
|
-
|
1106
|
+
2.0.2 (2009-05-17)
|
1107
|
+
==================
|
1056
1108
|
|
1057
1109
|
* add new methods
|
1058
1110
|
- {OCI8#select_one}
|
@@ -1092,8 +1144,8 @@ Fixed installation issues
|
|
1092
1144
|
* [ruby 1.9] fix to bind string data by the length got from String#bytesize
|
1093
1145
|
converted to {OCI8.encoding}, not by String#size.
|
1094
1146
|
|
1095
|
-
2.0.1
|
1096
|
-
|
1147
|
+
2.0.1 (2009-03-17)
|
1148
|
+
==================
|
1097
1149
|
|
1098
1150
|
* release a binary gem for Windows, which contains libraries for both
|
1099
1151
|
ruby 1.8 and ruby 1.9.1.
|
data/dist-files
CHANGED
@@ -110,6 +110,7 @@ Package" or copy a runtime library to the directory where `ruby.exe` resides.
|
|
110
110
|
|
111
111
|
| Oracle Version | Package | Runtime Library|
|
112
112
|
|---|---|---|
|
113
|
+
| 18.3 | [Microsoft Visual C++ 2013 Redistributable Package][2013] | MSVCR120.DLL |
|
113
114
|
| 12.2.0.x | [Microsoft Visual C++ 2013 Redistributable Package][2013] | MSVCR120.DLL |
|
114
115
|
| 12.1.0.x | [Microsoft Visual C++ 2010 Redistributable Package][2010] | MSVCR100.DLL |
|
115
116
|
| 11.2.0.x | Microsoft Visual C++ 2005 SP1 Redistributable Package ([x86][2005SP1_x86], [x64][2005SP1_x64]) | MSVCR80.DLL(The file version must be 8.0.50727.762.) |
|
data/ext/oci8/apiwrap.yml
CHANGED
@@ -83,6 +83,17 @@ OCIBindByPos:
|
|
83
83
|
- ub4 *curelep
|
84
84
|
- ub4 mode
|
85
85
|
|
86
|
+
# round trip: 0
|
87
|
+
OCIBindDynamic:
|
88
|
+
:version: 800
|
89
|
+
:args:
|
90
|
+
- OCIBind *bindp
|
91
|
+
- OCIError *errhp
|
92
|
+
- void *ictxp
|
93
|
+
- OCICallbackInBind icbfp
|
94
|
+
- void *octxp
|
95
|
+
- OCICallbackOutBind ocbfp
|
96
|
+
|
86
97
|
# round trip: 0
|
87
98
|
OCIBindObject:
|
88
99
|
:version: 800
|
@@ -180,6 +191,15 @@ OCIDefineByPos:
|
|
180
191
|
- ub2 *rcodep
|
181
192
|
- ub4 mode
|
182
193
|
|
194
|
+
# round trip: 0
|
195
|
+
OCIDefineDynamic:
|
196
|
+
:version: 800
|
197
|
+
:args:
|
198
|
+
- OCIDefine *defnp
|
199
|
+
- OCIError *errhp
|
200
|
+
- dvoid *octxp
|
201
|
+
- OCICallbackDefine ocbfp
|
202
|
+
|
183
203
|
# round trip: 0
|
184
204
|
OCIDefineObject:
|
185
205
|
:version: 800
|