Commit Graph

60 Commits

Author SHA1 Message Date
Xinchen Hui
c081ce628f Bump year 2014-01-03 11:08:10 +08:00
Christopher Jones
12f9939b79 Bump mininum requirements for PHP OCI8 2.0 to PHP 5.2 and Oracle
client library 10.2 (Note this will connect to Oracle Database 8.1.7
onwards). Use the older OCI8 1.4 from PECL if using an earlier PHP
version or older Oracle client library support is necessary.
2013-10-07 17:23:11 -07:00
Christopher Jones
5ac7c533a0 More OCI8 DTrace probe updates.
Change php.ini-* doc to match an earlier change to config.w32
2013-09-26 21:12:11 -07:00
Christopher Jones
43289d664c Remove obsolete flag 2013-09-06 10:12:16 -07:00
Christopher Jones
4b778faa80 Make oci_set_*($connection,...) errors retrievable via oci_error($connection).
Improve some error handling to produce error text on some rare edge cases.
Disambiguate the Oracle library function call return status values from ORA error numbers.
Review and unify error data types.
2013-09-05 18:18:29 -07:00
Christopher Jones
d7ffca590b Allow OCI8 to be DTrace-enabled independently of core PHP's DTrace
status.  The proviso is OCI8 must be built "shared" when DTrace is
enabled.  This implementation (i) works around an incomplete core PHP
solution for extension tracing (ii) avoid any issues with DOF section
location and the complexities of needing to merge all provider .d
files for static builds (iii) allows OCI8 to be DTrace-enabled when
doing PECL installs of OCI8 on PHP versions without core PHP DTrace
support.

This is an initial patch i.e. it will undergo further testing.
2013-08-30 17:37:44 -07:00
Christopher Jones
49cd21e71c OCI8 2.0: add oci8-check-connection probe and do some renaming 2013-08-27 16:41:02 -07:00
Christopher Jones
8aca4e45bb Leave it to DTrace FBT to trace underlying library calls 2013-08-26 14:20:58 -07:00
Christopher Jones
85b66e9e21 OCI8 extension: Allow Implicit Result Set statement resources to inherit the parent's current prefetch count 2013-07-26 13:34:45 -07:00
Christopher Jones
bfc3c223da Initial PHP OCI8 2.0.0-dev commit.
Includes Oracle Database 12c Implicit Result Set support, DTrace
support, and various code cleanups.

See package.xml for details.
2013-07-24 15:33:22 -07:00
Carson McDonald
0c11cab919 Typo fix: recieved to received 2013-03-07 23:05:05 +01:00
Xinchen Hui
a666285bc2 Happy New Year 2013-01-01 16:37:09 +08:00
Christopher Jones
131dd88505 Fixed bug #63265 (Add ORA-00028 to the PHP_OCI_HANDLE_ERROR macro)
Improve high availability for explicitly terminated connections.
2012-10-18 17:33:51 -07:00
Felipe Pena
e4ca0ed09f - Year++ 2012-01-01 13:15:04 +00:00
Christopher Jones
cf8bf9f2f0 Add explicit casts to remove some of Pierre's snapshot build warnings 2011-07-27 00:04:23 +00:00
Christopher Jones
f4009b52a3 Add oci_client_version() returning the runtime Oracle client library version - predominantly useful for the test suite 2011-06-10 17:38:07 +00:00
Felipe Pena
927bf09c29 - Year++ 2011-01-01 02:19:59 +00:00
Christopher Jones
5e8e34bac8 Fixed bug #49560 (oci8: using LOBs causes slow PHP shutdown)
- Improved descriptor refcounting to remove unneeded items sooner
 - Replaced n^2 list traversal during descriptor list destruction
2010-01-06 18:58:16 +00:00
Sebastian Bergmann
9ba1e81665 sed -i "s#1997-2009#1997-2010#g" **/*.c **/*.h **/*.php 2010-01-03 09:23:27 +00:00
Christopher Jones
2769ae0444 1. Introduce connection attribute functions:
oci_set_module_name
         oci_set_action
         oci_set_client_info
         oci_set_client_identifier
      
       These functions set values that are visible and used by the
       database.  They aid tracing, authentication and auditing.

    2. Introduce connection attribute function:

         oci_set_edition

       Oracle 11g R2 "editions" allow multiple versions of DB objects
       to exist at one time.  By setting different editions, two
       different versions of an application can run concurrently,
       making upgrades or A/B testing easier.

    3. Introduce OCI_NO_AUTO_COMMIT as an alias for the OCI_DEFAULT
       constant (which is not the default value) used by oci_execute().

    4. Allow the oci_set_prefetch value to be 0.  This is important in
       some cases using REF CURSORS in Oracle 11gR2.

    5. Set the DRIVER_NAME attribute of Oracle Database 11gR2
       connections to aid application tracing.  The value used is to
       "PHP OCI8" followed by the OCI8 version number.  Note the
       version number may get truncated in DB views such as
       v$session_connect_info.

    6. Generate an error if an invalid resource type is used in
       oci_bind_by_name

[DOC] Documentation will be added for the changes
2009-10-06 22:36:32 +00:00
Christopher Jones
10ff16d21b MFH: Make non-public prototype match the type passed at call 2009-03-09 20:58:51 +00:00
Christopher Jones
bce3f3afe8 MFH: Bug #47243 (Crash at shutdown on Windows) 2009-03-09 20:09:07 +00:00
Sebastian Bergmann
08659c2dcd MFH: Bump copyright year, 3 of 3. 2008-12-31 11:15:49 +00:00
Christopher Jones
1c1c98c620 MFH
1. Merged ARG_INFO patch (Felipe)

2. Allow empty username & password so Oracle can do non-password based
authentication, i.e. "External Authentication".
http://news.php.net/php.internals/37545

[DOC]

A new OCI_CRED_EXT flag can be passed as the "session_mode" parameter
to oci_connect(), oci_new_connect() and oci_pconnect().

  $c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT);

This tells Oracle to do external or OS authentication, if configured
in the database.

OCI_CRED_EXT can only be used with username of "/" and a empty
password.  Oci8.privileged_connection may be On or Off.  OCI_CRED_EXT
is not supported on Windows for security reasons.

The new flag may be combined with the existing OCI_SYSOPER or
OCI_SYSDBA modes (note: oci8.privileged_connection needs to be On for
OCI_SYSDBA and OCI_SYSOPER), e.g.:

  $c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT+OCI_SYSOPER);
2008-07-16 22:16:03 +00:00
Christopher Jones
b8e1d4d4e5 MFB: OCI8: Remove macros obsoleted by rev 1.55.2.3.2.11.2.1 when Oracle 8 support was dropped 2008-06-05 23:43:10 +00:00
Christopher Jones
08eaa56798 MFH
Code:
  - Do scope-end release for oci_pconnect (oci8.old_oci_close_semantics=1 gives old behavior)
  - Fix session reuse with 10.2 client libs
  - Fix the Ping macro version check for 10.2
  - Add type check associated with zend_list_find
  - Code connection re-organized for reuse
  - Format comments
  - WS changes
  - Prepare for new PECL release
Tests:
  - Add new tests
  - Rationalize password tests
  - Revert use of __DIR__ so tests will work with PHP 5.2
  - Update some skipifs to make tests more portable
2008-04-18 00:05:27 +00:00
Christopher Jones
ceb2193b7c rename PHP_OCI8_VERSION in preparation for peclversioning RFC. Remove obsolete HAVE_OCI8_ATTR_STATEMENT macro 2008-03-25 02:00:32 +00:00
Christopher Jones
c401491ca0 Further improvements to error handling 2008-03-22 01:27:50 +00:00
Christopher Jones
b9f72771a6 MFH
Cleaned up whitespace

Fixed bug #44372 (compilation with Oracle 10gR1 libraries)
http://bugs.php.net/bug.php?id=44372

Updated updated error number list to improve re-connection
behavior after a database restart.

Guard against potential internal list corruption after ping
removes old oci_pconnect() information.

Fix ini_set("oci8.connection_class", "abc") to get an appropriate
persistent connection.

Ping at oci8.ping_interval for oci_connect() and oci_new_connect()
when DRCP connections are used. This improves non-persistent
connection reliability if a database gets restarted.
2008-03-12 01:26:44 +00:00
Christopher Jones
b4b099ae19 MFH: OCI8: fix bug #44008 (OCI-Lob->close) & bug #44206 (ref cursor leak) 2008-02-25 23:50:51 +00:00
Christopher Jones
07a79208b6 Streamlined code and incorporated review comments. Respect oci8.ping_interval when oci_pconnect called multiple times in a script. Changed OCIServerVersion to OCIPing (http://pecl.php.net/bugs/bug.php?id=11976) 2008-02-16 01:20:22 +00:00
Christopher Jones
87dcb8df8e Merge DRCP & FAN support. PHP6 sync will happen later 2008-01-31 01:33:30 +00:00
Christopher Jones
ed50a373b1 MFB: fix #43497 (OCI8 XML/getClobVal aka temporary LOBs leak UGA memory) 2008-01-15 20:44:31 +00:00
Sebastian Bergmann
d1dded8751 MFH: Bump copyright year, 2 of 2. 2007-12-31 07:17:19 +00:00
Christopher Jones
a289952c47 MFH: oci8: flush persistent connection after password change 2007-08-06 20:32:55 +00:00
Antony Dovgal
9efa1d8914 MFH: fix #42134 (oci_error() returns false after oci_new_collection() fails) 2007-07-31 19:21:08 +00:00
Antony Dovgal
e79091eb13 MFH 2007-07-09 09:08:59 +00:00
Antony Dovgal
26cf62d293 MFH: fix PECL bug #10194 (crash in Oracle client when memory limit reached in the callback)
preallocate the required buffer, so that it would fail earlier.
2007-03-29 09:33:04 +00:00
Antony Dovgal
37b4db2d00 allocate descriptors dynamically 2007-03-01 22:27:44 +00:00
Antony Dovgal
32c2c7a510 MFH 2007-02-13 20:19:56 +00:00
Antony Dovgal
8e49f0c54c MFH 2007-02-12 09:36:23 +00:00
Antony Dovgal
4f6f150490 MFH: fix segfault on rebindinging and rexecuting a statement with LOBs
fix compile failure in ZTS mode when collections support is missing
2007-01-31 13:55:43 +00:00
Antony Dovgal
12d54fa683 MFH: fix #40078 (ORA-01405 when fetching NULL values using oci_bind_array_by_name()) 2007-01-11 11:27:52 +00:00
Sebastian Bergmann
4223aa4d5e MFH: Bump year. 2007-01-01 09:36:18 +00:00
Antony Dovgal
f8d4de338b MFH: fix #39732 (oci_bind_array_by_name doesn't work on Solaris 64bit) 2006-12-08 20:56:29 +00:00
Antony Dovgal
88e827f3f1 MFH 2006-11-10 23:03:32 +00:00
Antony Dovgal
7563d4f573 fix possible issue with negative values in oci_set_prefetch
(reported by Chris Jones)
2006-11-10 20:13:36 +00:00
Antony Dovgal
4106eee7c7 fix segfault in ZTS mode when statements containing sub-statements are destroyed in wrong order 2006-11-10 16:33:41 +00:00
Antony Dovgal
08a9ab02ba minor improvements 2006-08-22 11:09:12 +00:00
Antony Dovgal
70e59e2999 MFH: fix PECL bug #8112 (OCI8 persistent connections misbehave when Apache process times out) 2006-08-21 16:41:13 +00:00