Merge branch 'develop-olympus' into develop

* develop-olympus:
  [ticket/9685] Test for databases that are able to nest transactions
  [ticket/9685] Consistently name the new sql_buffer_nested_transactions function
This commit is contained in:
Andreas Fischer 2011-06-02 23:32:12 +02:00
commit 672c333ace
3 changed files with 26 additions and 2 deletions

View file

@ -246,7 +246,7 @@ class dbal
* *
* @return bool Whether buffering is required. * @return bool Whether buffering is required.
*/ */
function sql_buffer_nested_transaction() function sql_buffer_nested_transactions()
{ {
return false; return false;
} }

View file

@ -261,7 +261,7 @@ class dbal_mssqlnative extends dbal
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
function sql_buffer_nested_transaction() function sql_buffer_nested_transactions()
{ {
return true; return true;
} }

View file

@ -8,6 +8,7 @@
*/ */
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php';
class phpbb_dbal_select_test extends phpbb_database_test_case class phpbb_dbal_select_test extends phpbb_database_test_case
{ {
@ -317,4 +318,27 @@ class phpbb_dbal_select_test extends phpbb_database_test_case
$db->sql_freeresult($result); $db->sql_freeresult($result);
} }
function test_nested_transactions()
{
$db = $this->new_dbal();
// nested transactions should work on systems that do not require
// buffering of nested transactions, so ignore the ones that need
// buffering
if ($db->sql_buffer_nested_transactions())
{
return;
}
$sql = 'SELECT user_id FROM phpbb_users ORDER BY user_id ASC';
$result1 = $db->sql_query($sql);
$db->sql_transaction('begin');
$result2 = $db->sql_query($sql);
$row = $db->sql_fetchrow($result2);
$db->sql_transaction('commit');
$this->assertEquals('1', $row['user_id']);
}
} }