--- /dev/null
+--TEST--
+Sybase-CT unbuffered query
+--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();
+ var_dump($db);
+
+ // Test #1: num_rows
+ $q= sybase_unbuffered_query('select name from master..systypes', $db);
+ var_dump($q);
+ $i= 0;
+ while ($r= sybase_fetch_assoc($q)) {
+ $i++;
+ }
+ var_dump($i, sybase_num_rows($q), $i == sybase_num_rows($q), $q);
+ sybase_free_result($q);
+ var_dump($q);
+
+ // Test #2: after sybase_free_result, this should be an invalid resource
+ var_dump(sybase_num_rows($q));
+
+ // Test #3: Seeking
+ $q= sybase_unbuffered_query('select name from master..systypes', $db);
+ var_dump($q);
+ $j= 0;
+ sybase_data_seek($q, 4);
+ while ($r= sybase_fetch_assoc($q)) {
+ $j++;
+ }
+ var_dump($i, $j, $i - $j);
+
+ // Test #4: Auto-cancel
+ $q= sybase_unbuffered_query('select name from master..systypes', $db);
+ var_dump($q);
+ sybase_fetch_assoc($q);
+ $q= sybase_unbuffered_query('select name from master..systypes', $db);
+ var_dump($q);
+ sybase_fetch_assoc($q);
+ sybase_free_result($q);
+
+ sybase_close($db);
+?>
+--EXPECTF--
+resource(%d) of type (sybase-ct link)
+resource(%d) of type (sybase-ct result)
+int(%d)
+int(%d)
+bool(true)
+resource(%d) of type (sybase-ct result)
+resource(%d) of type (Unknown)
+
+Warning: sybase_num_rows(): %d is not a valid Sybase result resource in %s/test_unbuffered_query.php on line %d
+NULL
+resource(%d) of type (sybase-ct result)
+int(%d)
+int(%d)
+int(4)
+resource(%d) of type (sybase-ct result)
+
+Notice: sybase_unbuffered_query(): called without first fetching all rows from a previous unbuffered query in %s/test_unbuffered_query.php on line %d
+resource(%d) of type (sybase-ct result)