Commit Graph

38 Commits

Author SHA1 Message Date
Antony Dovgal
f3c0c42b76 use safe_emalloc() 2006-12-25 21:45:09 +00:00
Antony Dovgal
afd25b61a4 fix oci_bind_array_by_name() with SQLT_ODT type
fix tests
2006-11-23 15:23:10 +00:00
Antony Dovgal
f63754eb19 fix oci_bind_array_by_name() in Unicode mode 2006-11-23 14:20:59 +00:00
Antony Dovgal
869aa78e1e MFB 2006-11-10 21:55:05 +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
Antony Dovgal
974b0ad2cd fix segfault in ZTS mode when statements containing sub-statements are destroyed in wrong order 2006-11-10 16:33:28 +00:00
Antony Dovgal
03301dee3f fix win32 build 2006-10-13 14:26:14 +00:00
Antony Dovgal
77c5edbb3e use connection character set when reading LOB data 2006-10-12 10:02:34 +00:00
Antony Dovgal
d3bae72721 fix PECL bug #8816 (issue in php_oci_statement_fetch with more than one piecewise column)
patch by jeff at badtz-maru dot com
2006-10-06 12:46:08 +00:00
Antony Dovgal
0a5cb31537 fix leak when binding a variable to the same placeholder several times 2006-09-12 11:42:25 +00:00
Antony Dovgal
a10691e3b9 last portion of z/Z fixes 2006-08-31 16:14:43 +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
225fb6a51a fix #38161 (oci_bind_by_name() returns garbage when Oracle didn't set the variable) 2006-08-09 12:13:30 +00:00
Antony Dovgal
f9fd102d73 fix leak on failure 2006-08-09 11:48:50 +00:00
Antony Dovgal
06aa83600e fix #37581 (oci_bind_array_by_name clobbers input array when using SQLT_AFC, AVC) 2006-07-31 10:28:46 +00:00
Antony Dovgal
5cf81310c7 fix #38173 (Freeing nested cursors causes OCI8 to segfault) 2006-07-30 20:50:53 +00:00
Antony Dovgal
000cf5ca7f MF51: fix #37059 (oci_bind_by_name() doesn't support RAW and LONG RAW fields)
add tests
2006-04-12 19:22:12 +00:00
Antony Dovgal
612fbc1b6b MFB: Added support for BINARY_DOUBLE and BINARY_FLOAT to PDO_OCI and OCI8 (also fixes bug #36764) 2006-03-18 22:06:45 +00:00
Antony Dovgal
cc318c4f4f fix #36403 (oci_execute() no longer supports OCI_DESCRIBE_ONLY) 2006-02-15 20:43:37 +00:00
Antony Dovgal
760d8cda46 MF51: fix #36010 (Segfault when re-creating and re-executing statements with bound parameters) 2006-02-03 14:48:24 +00:00
Antony Dovgal
2697320c20 fix #36235 (ocicolumnname delivers empty results before a succesfull ocifetch) 2006-01-31 18:36:59 +00:00
Antony Dovgal
f14d1152fe fix #36096 (oci_result() returns garbage after oci_fetch() failed) 2006-01-20 11:01:36 +00:00
foobar
251c5173fd bump year and license version 2006-01-01 13:10:10 +00:00
Antony Dovgal
0b8250468c improve error message 2005-12-08 22:05:44 +00:00
Antony Dovgal
f698b6ea42 add 1 to the max_length to keep \0 at its place 2005-12-08 21:22:38 +00:00
Antony Dovgal
d93c613429 MF51: use strlen() to get correct element length 2005-12-06 18:54:33 +00:00
Antony Dovgal
1d74918ddd MF51: fix Win32 compile failure 2005-12-01 19:26:31 +00:00
Antony Dovgal
4f906aa23f fix potential problem in php_oci_bind_post_exec() when OCIDateToText() fails 2005-12-01 13:46:05 +00:00
Antony Dovgal
066fb72fdd Initial implementation of oci_bind_array_by_name()
At the moment we support only these types:
SQLT_NUM, SQLT_INT, SQLT_LNG - integer/long
SQLT_FLT - float
SQLT_AFC, SQLT_CHR, SQLT_VCS, SQLT_AVC, SQLT_STR, SQLT_LVC - char/varchar
SQLT_ODT - date

More supported types may follow.
2005-11-22 16:30:36 +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
dce4c522af the last 64bit fix 2005-09-26 16:48:24 +00:00
Antony Dovgal
98899d1083 fix problem appearing when binding empty values 2005-09-09 14:00:03 +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