Doctrine DBAL
  1. Doctrine DBAL
  2. DBAL-263

[GH-137] Support OCI8 statements crossing transactions [DBAL-202]

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Security Level: All
    • Labels:
      None

      Description

      This issue is created automatically through a Github pull request on behalf of dpb587:

      Url: https://github.com/doctrine/dbal/pull/137

      Message:

      Bug Fix: yes
      Feature addition: no
      Backwards compatibility break: no
      [![Build Status](https://secure.travis-ci.org/dpb587/dbal.png?branch=ticket-dbal-202)](http://travis-ci.org/dpb587/dbal)

      Scenario is documented in JIRA DBAL-202(http://www.doctrine-project.org/jira/browse/DBAL-202). Basically in oci8 if you prepare a statement outside of a transaction, start a transaction, execute the statement, rollback the transaction - the statement will still have been executed. Whether it's the correct behavior or not, it seems like it should match PDO's behavior.

      This implementation affects the API, so it should probably be carefully reviewed.

      A separate test script is available at https://gist.github.com/2515100(gist.github.com/2515100).

      $ php -v ; php --re oci8 | head -1
      PHP 5.3.3-7+squeeze3 with Suhosin-Patch (cli) (built: Jun 28 2011 08:24:40)
      Copyright (c) 1997-2009 The PHP Group
      Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
      with Xdebug v2.1.1, Copyright (c) 2002-2011, by Derick Rethans
      with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH
      Extension [ <persistent> extension #52 oci8 version 1.4.2 ] {
      $ phpunit -c oci8.phpunit.xml.dist tests/Doctrine/Tests/DBAL/Driver/OCI8/OCI8StatementTest.php
      PHPUnit 3.5.13 by Sebastian Bergmann.

      ..

      Time: 0 seconds, Memory: 7.50Mb

      OK (2 tests, 2 assertions)
      $ phpunit -c oci8.phpunit.xml.dist tests/Doctrine/Tests/DBAL/Functional/Ticket/DBAL202Test.php
      PHPUnit 3.5.13 by Sebastian Bergmann.

      ..

      Time: 7 seconds, Memory: 9.50Mb
      OK (2 tests, 6 assertions)

      I had to drop the the following tests to run through the oracle test suite (seemed like my test user didn't have enough permissions for the temp db tests), but all other tests pass.

      $ rm tests/Doctrine/Tests/DBAL/Functional/TemporaryTableTest.php
      $ rm tests/Doctrine/Tests/DBAL/Functional/TableGeneratorTest.php # see pull 136
      $ rm tests/Doctrine/Tests/DBAL/Functional/Schema/OracleSchemaManagerTest.php
      $ phpunit -c oci8.phpunit.xml.dist
      PHPUnit 3.5.13 by Sebastian Bergmann.

      ............................................................... 63 / 747 ( 8%)
      .......SSSS.....S........S......................S...........S.. 126 / 747 ( 16%)
      .............................SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS 189 / 747 ( 25%)
      SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS 252 / 747 ( 33%)
      SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS.............S........ 315 / 747 ( 42%)
      ...S...S...SSS................................................. 378 / 747 ( 50%)
      ............................................................... 441 / 747 ( 59%)
      .....SSS....................................................... 504 / 747 ( 67%)
      ............................................................... 567 / 747 ( 75%)
      ..............S................................................ 630 / 747 ( 84%)
      ............................................................... 693 / 747 ( 92%)
      ......................................................

      Time: 33 seconds, Memory: 46.00Mb

      OK, but incomplete or skipped tests!
      Tests: 747, Assertions: 1145, Skipped: 156.

        Activity

        Hide
        Benjamin Eberlei added a comment -

        A related Github Pull-Request [GH-137] was closed
        https://github.com/doctrine/dbal/pull/137

        Show
        Benjamin Eberlei added a comment - A related Github Pull-Request [GH-137] was closed https://github.com/doctrine/dbal/pull/137
        Hide
        Benjamin Eberlei added a comment -

        Fixed

        Show
        Benjamin Eberlei added a comment - Fixed

          People

          • Assignee:
            Benjamin Eberlei
            Reporter:
            Benjamin Eberlei
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: