|
1 | 1 | # @markup markdown |
2 | 2 |
|
| 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 | + |
3 | 55 | 2.2.6.1 (2018-09-16) |
4 | 56 | ==================== |
5 | 57 |
|
|
0 commit comments