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