Commit Graph

26 Commits

Author SHA1 Message Date
Sebastian Bergmann
3717df72ae Bump year. 2007-01-01 09:29:37 +00:00
Antony Dovgal
da56bcc2b1 fix LOBs internal position in Unicode mode 2006-12-12 10:31:22 +00:00
Antony Dovgal
5f1b060f73 OCILobGetChunkSize() does not like BFILEs, return read_length right away 2006-12-12 09:28:07 +00:00
Antony Dovgal
a14c81e3c2 fix #39732 (oci_bind_array_by_name doesn't work on Solaris 64bit) 2006-12-08 20:55:14 +00:00
Antony Dovgal
b616c7ffee fix type mess (thanks again, Chris) 2006-11-10 23:03:23 +00:00
Antony Dovgal
86a8604a81 fix build with old client versions 2006-11-10 21:57:04 +00:00
Antony Dovgal
d99f05f1a2 add _not yet 100% complete_ Unicode support
collections, statements and BLOBs seem to be working ok
though there are still some things to be done in order to make oci_bind_array_by_name() work with U-strings

Notes:
- in Unicode mode OCI8 always speaks to Oracle server using UTF-16, so all the conversions are done by the client lib.
This is why character set parameter of oci_connect() and NLS_LANG are ignored in U-mode.

- BLOBs and CLOBs behave quite differently in U-mode.
Reading data from a CLOB would result in Unicode string, while BLOBs would return binary string.
Also, all LOB utilities work with _bytes_ when BLOB is used and _characters_ when it's CLOB.
It's not that obvious, but it does make a lot of sense to me.
2006-11-10 16:56:19 +00:00
Hannes Magnusson
176b72284c Error message clean up
(patch by Matt W (php_lists -AT- realpain.com))
2006-10-08 13:34:24 +00:00
Antony Dovgal
bfccf875f1 minor improvements
dropped unused parameters, changed long to int where it should be int
2006-08-22 11:08:28 +00:00
Antony Dovgal
f069754ab8 fix PECL bug #8112 (OCI8 persistent connections misbehave when Apache process times out) 2006-08-21 16:40:46 +00:00
Antony Dovgal
1789473eba minor CS/WS fixes 2006-08-15 13:08:18 +00:00
Antony Dovgal
e16bd0c0f0 add support for NCLOBs
fix #35973 (Error ORA-24806 occurs when trying to fetch a NCLOB field)
2006-08-09 15:23:50 +00:00
Antony Dovgal
4d7663363b happy birthday commit, yay =)
this patch should fix Unicode LOB problems using callbacks to read LOBs
the patch also includes an optimization: using chunk_size*X buffer should speed up LOB reading a bit

many thanks to Massimo Squillace <msquillace at sogei dot it> for the patch.
2006-06-07 13:36:19 +00:00
Antony Dovgal
469040660e attempt to fix OCILobRead2() related problems 2006-05-20 13:46:41 +00:00
Antony Dovgal
be7135bc8e fix #36934 (OCILob->read() doesn't move internal pointer when reading 0's)
no support for Unicode CLOBs in Oracle < 10, sorry.
2006-04-05 14:07:16 +00:00
Antony Dovgal
0ba446fa06 reimplement php_oci_lob_read() and fix PECL bug #5995
now the function dosn't try to read data by blocks, as this is nearly impossible
to do with Unicode and regular LOBs in the same time
2006-03-21 15:07:14 +00:00
Andi Gutmans
e94e25e621 Start nuking safe_mode. Still a lot of work to do... 2006-02-19 00:55:22 +00:00
Antony Dovgal
1e3efec941 delete descriptor from the hash and avoid crashes on commit/rollback 2006-01-05 13:40:10 +00:00
foobar
251c5173fd bump year and license version 2006-01-01 13:10:10 +00:00
Antony Dovgal
21b1f3279b Unicode related patchset
fixes two problems:
- wrong offset counting and ..
- OCI_NEED_DATA error when reading unicode CLOBs (fixes PECL bug #5719)
2005-10-26 18:52:00 +00:00
Antony Dovgal
f15f20ffa2 fix #33383 (crash when retrieving empty BLOBs) 2005-10-10 10:16:58 +00:00
Antony Dovgal
cc96f31ac7 fix PECL bug #5571 (oci_new_connect() not closed by oci_close()) 2005-10-03 13:02:14 +00:00
Antony Dovgal
bf69d23a21 more 64-bit fixes 2005-09-25 23:46:28 +00:00
Antony Dovgal
4a2b8cb6d0 fix credits 2005-09-06 21:42:26 +00:00
Edin Kadribasic
e18b812ba6 Remove utf-8 chars 2005-09-06 21:30:28 +00:00
Antony Dovgal
3df94e1112 Updated OCI8 driver
This updated fixes (this list is not complete):
-------------------
#33915 - crash in _oci_close_session
#26393 - Segfault during request shutdown in _oci_close_session() (oci8.c:2443)

#32741 - hang on ociexecute() with collections (only with 10g, works with 9i)
#32325 - can't retrieve collection using OCI8
#33583 - Apache1.3.33 Segmentation fault with php5 & OCI_New_Collection

#32361 - connection oci_connect stay persist after process the php
#29013 - multiple logins cause handles become invalid
#28944 - OCITypeByName: OCI-21522 with two connections

Fixed by connection handling rewrite.

#32140 - NVARCHAR columns are truncated
#31042 - oci_fetch_* sets field value to false
#27156 - OCIFetchInto returns false as column value when column contains >1 umlaut

Fixed by multiplying buffer size by 3.

#33866 - OCIlogon do not returns conn resource for account with expired paswd
#33365 - logon fails when password expires

Fixed by adding new oci_password_change() call syntax.

#33159 - DB-connect via webserver fails after DB-restart ORA-24327
#30808 - oci8 cannot connect after restarting DB
#30127 - lost oracle connection. need restart apache.
#29902 - oci8 doesn't disconnect sessions, overloads oracle server
#29779 - (the same issue with the Oracle server going offline)
#26829 - Killed Oracle Sessions openned with OCIPLogon()

Fixed by adding oci8.ping_interval option.

#32988ext/oci8: OCI doesn't support DB external authentication

Fixed by adding support of external credentials (turned off by default).

Added new INI options:
----------------------
oci8.ping_interval
oci8.max_persistent
oci8.persistent_timeout
oci8.privileged_connect
oci8.statement_cache_size
oci8.default_prefetch
oci8.old_oci_close_semantics

See the updated docs for the detailed descriptions.

Major changes:
--------------
- connection handling algorithm rewritten. That should add stability and fix all non-reproducible crashes etc;
- extension refactored and divided into several files to improve readability and to make it easier to maintain;
- added support of statement caching;
- added support of privileged connections using external credentials;
- added new INI options to manage persistent connections;
- fixed oci_close() to close connections correctly.
2005-09-06 19:31:59 +00:00