--- /dev/null
+--TEST--
+sqlite: fetch all
+--INI--
+sqlite.assoc_case=0
+--SKIPIF--
+<?php # vim:ft=php
+if (!extension_loaded("sqlite")) print "skip"; ?>
+--FILE--
+<?php
+include "blankdb.inc";
+
+$data = array(
+ "one",
+ "two",
+ "three"
+ );
+
+sqlite_query("CREATE TABLE strings(a VARCHAR)", $db);
+
+foreach ($data as $str) {
+ sqlite_query("INSERT INTO strings VALUES('$str')", $db);
+}
+
+echo "unbuffered twice\n";
+$r = sqlite_unbuffered_query("SELECT a from strings", $db, SQLITE_NUM);
+var_dump(sqlite_fetch_all($r));
+var_dump(sqlite_fetch_all($r));
+
+echo "unbuffered with fetch_array\n";
+$r = sqlite_unbuffered_query("SELECT a from strings", $db, SQLITE_NUM);
+var_dump(sqlite_fetch_array($r));
+var_dump(sqlite_fetch_all($r));
+
+echo "buffered\n";
+$r = sqlite_query("SELECT a from strings", $db, SQLITE_NUM);
+var_dump(sqlite_fetch_all($r));
+var_dump(sqlite_fetch_array($r));
+var_dump(sqlite_fetch_all($r));
+
+echo "DONE!\n";
+?>
+--EXPECTF--
+unbuffered twice
+array(3) {
+ [0]=>
+ array(1) {
+ [0]=>
+ string(3) "one"
+ }
+ [1]=>
+ array(1) {
+ [0]=>
+ string(3) "two"
+ }
+ [2]=>
+ array(1) {
+ [0]=>
+ string(5) "three"
+ }
+}
+
+Notice: sqlite_fetch_all(): One or more rowsets were already returned in %ssqlite_014.php on line %d
+array(0) {
+}
+unbuffered with fetch_array
+array(1) {
+ [0]=>
+ string(3) "one"
+}
+array(2) {
+ [0]=>
+ array(1) {
+ [0]=>
+ string(3) "two"
+ }
+ [1]=>
+ array(1) {
+ [0]=>
+ string(5) "three"
+ }
+}
+buffered
+array(3) {
+ [0]=>
+ array(1) {
+ [0]=>
+ string(3) "one"
+ }
+ [1]=>
+ array(1) {
+ [0]=>
+ string(3) "two"
+ }
+ [2]=>
+ array(1) {
+ [0]=>
+ string(5) "three"
+ }
+}
+bool(false)
+array(3) {
+ [0]=>
+ array(1) {
+ [0]=>
+ string(3) "one"
+ }
+ [1]=>
+ array(1) {
+ [0]=>
+ string(3) "two"
+ }
+ [2]=>
+ array(1) {
+ [0]=>
+ string(5) "three"
+ }
+}
+DONE!