]> granicus.if.org Git - php/commitdiff
- Initial release
authorTimm Friebe <thekid@php.net>
Sat, 24 Jan 2004 02:54:33 +0000 (02:54 +0000)
committerTimm Friebe <thekid@php.net>
Sat, 24 Jan 2004 02:54:33 +0000 (02:54 +0000)
ext/sybase_ct/tests/bug26407.phpt [new file with mode: 0644]

diff --git a/ext/sybase_ct/tests/bug26407.phpt b/ext/sybase_ct/tests/bug26407.phpt
new file mode 100644 (file)
index 0000000..b599c73
--- /dev/null
@@ -0,0 +1,91 @@
+--TEST--
+Sybase-CT bug #26407 (Result set fetching broken around transactions)
+--SKIPIF--
+<?php require('skipif.inc'); ?>
+--FILE--
+<?php
+/* This file is part of PHP test framework for ext/sybase_ct
+ *
+ * $Id$ 
+ */
+
+  require('test.inc');
+
+  $db= sybase_connect_ex();
+
+  // Create temporary table
+  $table= basename(__FILE__, '.php');
+  var_dump(sybase_query('create table #'.$table.' ( the_big_answer int )', $db));
+
+  // I
+  var_dump(sybase_select_ex($db, '
+    begin transaction
+      -- anything producing a result set here will fail;
+      -- however, print or update statements will work
+      select "foo" 
+    commit
+    -- anything afterwards will fail, too
+  '));  
+
+  // II
+  var_dump(sybase_select_ex($db, '
+    begin transaction
+      -- no result returned...
+      update #'.$table.' set the_big_answer=42
+    commit
+  '));
+  
+  // III
+  var_dump(sybase_select_ex($db, '
+    select "foo"
+    begin transaction
+      -- do anything, even return a result set
+    commit
+    select "bar"   
+  '));
+
+  sybase_close($db);
+?>
+--EXPECTF--
+bool(true)
+>>> Query: 
+    begin transaction
+      -- anything producing a result set here will fail;
+      -- however, print or update statements will work
+      select "foo" 
+    commit
+    -- anything afterwards will fail, too
+  
+<<< Return: resource
+array(1) {
+  [0]=>
+  array(1) {
+    ["computed"]=>
+    string(3) "foo"
+  }
+}
+>>> Query: 
+    begin transaction
+      -- no result returned...
+      update #bug26407 set the_big_answer=42
+    commit
+  
+<<< Return: boolean
+bool(true)
+>>> Query: 
+    select "foo"
+    begin transaction
+      -- do anything, even return a result set
+    commit
+    select "bar"   
+  
+
+Notice: sybase_query(): Sybase:  Unexpected results, cancelling current in %s/test.inc on line %d
+<<< Return: resource
+array(1) {
+  [0]=>
+  array(1) {
+    ["computed"]=>
+    string(3) "foo"
+  }
+}