tony2001 Thu Mar 1 23:28:51 2007 UTC Added files: /php-src/ext/oci8/tests lob_039.phpt lob_038.phpt lob_037.phpt bug40415.phpt
Modified files: /php-src/ext/oci8/tests lob_029.phpt Log: new tests by Chris and me
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/lob_029.phpt?r1=1.2&r2=1.3&diff_format=u Index: php-src/ext/oci8/tests/lob_029.phpt diff -u php-src/ext/oci8/tests/lob_029.phpt:1.2 php-src/ext/oci8/tests/lob_029.phpt:1.3 --- php-src/ext/oci8/tests/lob_029.phpt:1.2 Tue Dec 12 12:57:02 2006 +++ php-src/ext/oci8/tests/lob_029.phpt Thu Mar 1 23:28:51 2007 @@ -1,8 +1,7 @@ --TEST-- reading/writing BFILE LOBs --SKIPIF-- -<?php -if (!extension_loaded('oci8')) die("skip no oci8 extension"); +<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); include "details.inc"; if (empty($oracle_on_localhost)) die("skip this test won't work with remote Oracle"); ?> @@ -12,19 +11,31 @@ require dirname(__FILE__).'/connect.inc'; $realdirname = dirname(__FILE__); -$realfilename = "oci8bfiletest.txt"; -$fullname = $realdirname."/".$realfilename; +$realfilename1 = "oci8bfiletest1.txt"; +$fullname1 = $realdirname."/".$realfilename1; +$realfilename2 = "oci8bfiletest2.txt"; +$fullname2 = $realdirname."/".$realfilename2; +$realfilename3 = "oci8bfiletest3.txt"; +$fullname3 = $realdirname."/".$realfilename3; // Setup $s = oci_parse($c, "create directory TestDir as '$realdirname'"); oci_execute($s); -file_put_contents($fullname, 'Some text in the bfile'); +file_put_contents($fullname1, 'Some text in the bfile 1'); +file_put_contents($fullname2, 'Some text in the bfile 2'); +file_put_contents($fullname3, 'Some text in the bfile 3'); $s = oci_parse($c, "create table FileTest (FileNum number, FileDesc varchar2(30), Image bfile)"); oci_execute($s); -$s = oci_parse($c, "insert into FileTest (FileNum, FileDesc, Image) values (1, 'Description 1', bfilename('TESTDIR', '$realfilename'))"); +$s = oci_parse($c, "insert into FileTest (FileNum, FileDesc, Image) values (1, 'Description 1', bfilename('TESTDIR', '$realfilename1'))"); +oci_execute($s); + +$s = oci_parse($c, "insert into FileTest (FileNum, FileDesc, Image) values (2, 'Description 2', bfilename('TESTDIR', '$realfilename2'))"); +oci_execute($s); + +$s = oci_parse($c, "insert into FileTest (FileNum, FileDesc, Image) values (3, 'Description 3', bfilename('TESTDIR', '$realfilename3'))"); oci_execute($s); // Run tests @@ -37,7 +48,7 @@ var_dump($res); echo "Test 2\n"; -$s = oci_parse($c, "select * from FileTest"); +$s = oci_parse($c, "select * from FileTest order by FileNum"); oci_execute($s); oci_fetch_all($s, $res); var_dump($res); @@ -45,14 +56,16 @@ echo "Test 3\n"; $d = oci_new_descriptor($c, OCI_D_FILE); -$s = oci_parse($c, "insert into FileTest (FileNum, FileDesc, Image) values (2, 'Description 2', bfilename('TESTDIR', '$realfilename')) returning Image into :im"); +$s = oci_parse($c, "insert into FileTest (FileNum, FileDesc, Image) values (2, 'Description 2', bfilename('TESTDIR', '$realfilename1')) returning Image into :im"); oci_bind_by_name($s, ":im", $d, -1, OCI_B_BFILE); oci_execute($s); $r = $d->read(40); var_dump($r); -unlink($fullname); +unlink($fullname1); +unlink($fullname2); +unlink($fullname3); $s = oci_parse($c, "drop table FileTest"); oci_execute($s); @@ -62,63 +75,45 @@ echo "Done\n"; ?> ---EXPECTF-- +--EXPECTF-- Test 1. Check how many rows in the table array(1) { ["NUMROWS"]=> array(1) { [0]=> - string(1) "1" + string(1) "3" } } Test 2 array(3) { ["FILENUM"]=> - array(1) { + array(3) { [0]=> string(1) "1" + [1]=> + string(1) "2" + [2]=> + string(1) "3" } ["FILEDESC"]=> - array(1) { + array(3) { [0]=> string(13) "Description 1" + [1]=> + string(13) "Description 2" + [2]=> + string(13) "Description 3" } ["IMAGE"]=> - array(1) { - [0]=> - string(22) "Some text in the bfile" - } -} -Test 3 -string(22) "Some text in the bfile" -Done ---UEXPECTF-- -Test 1. Check how many rows in the table -array(1) { - [u"NUMROWS"]=> - array(1) { - [0]=> - unicode(1) "1" - } -} -Test 2 -array(3) { - [u"FILENUM"]=> - array(1) { - [0]=> - unicode(1) "1" - } - [u"FILEDESC"]=> - array(1) { - [0]=> - unicode(13) "Description 1" - } - [u"IMAGE"]=> - array(1) { + array(3) { [0]=> - string(22) "Some text in the bfile" + string(24) "Some text in the bfile 1" + [1]=> + string(24) "Some text in the bfile 2" + [2]=> + string(24) "Some text in the bfile 3" } } Test 3 -string(22) "Some text in the bfile" -Done +string(24) "Some text in the bfile 1" +Done \ No newline at end of file http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/lob_039.phpt?view=markup&rev=1.1 Index: php-src/ext/oci8/tests/lob_039.phpt +++ php-src/ext/oci8/tests/lob_039.phpt --TEST-- Test CLOB->write() for multiple inserts --SKIPIF-- <?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?> --FILE-- <?php require dirname(__FILE__).'/connect.inc'; require dirname(__FILE__).'/create_table.inc'; echo "Test 1: CLOB\n"; $ora_sql = "INSERT INTO ".$schema.$table_name." (clob) VALUES (empty_clob()) RETURNING clob INTO :v_clob "; $s = oci_parse($c,$ora_sql); $clob = oci_new_descriptor($c,OCI_DTYPE_LOB); oci_bind_by_name($s,":v_clob", $clob,-1,OCI_B_CLOB); oci_execute($s, OCI_DEFAULT); var_dump($clob->write("clob test 1")); oci_execute($s, OCI_DEFAULT); var_dump($clob->write("clob test 2")); oci_execute($s, OCI_DEFAULT); var_dump($clob->write("clob test 3")); $s = oci_parse($c,"select clob from ".$schema.$table_name); var_dump(oci_execute($s)); oci_fetch_all($s, $res); var_dump($res); require dirname(__FILE__).'/drop_table.inc'; echo "Done\n"; ?> --EXPECT-- Test 1: CLOB int(11) int(11) int(11) bool(true) array(1) { ["CLOB"]=> array(3) { [0]=> string(11) "clob test 1" [1]=> string(11) "clob test 2" [2]=> string(11) "clob test 3" } } Done http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/lob_038.phpt?view=markup&rev=1.1 Index: php-src/ext/oci8/tests/lob_038.phpt +++ php-src/ext/oci8/tests/lob_038.phpt --TEST-- Array fetch CLOB and BLOB --SKIPIF-- <?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?> --FILE-- <?php require dirname(__FILE__).'/connect.inc'; require dirname(__FILE__).'/create_table.inc'; echo "Test 1: CLOB\n"; $ora_sql = "INSERT INTO ".$schema.$table_name." (clob) VALUES (empty_clob()) RETURNING clob INTO :v_clob "; $s = oci_parse($c,$ora_sql); $clob = oci_new_descriptor($c,OCI_DTYPE_LOB); oci_bind_by_name($s,":v_clob", $clob,-1,OCI_B_CLOB); oci_execute($s, OCI_DEFAULT); var_dump($clob->save("clob test 1")); oci_execute($s, OCI_DEFAULT); var_dump($clob->save("clob test 2")); oci_execute($s, OCI_DEFAULT); var_dump($clob->save("clob test 3")); $s = oci_parse($c,"select clob from ".$schema.$table_name); var_dump(oci_execute($s)); oci_fetch_all($s, $res); var_dump($res); echo "Test 1b\n"; $s = oci_parse($c, "select clob from ".$schema.$table_name); var_dump(oci_execute($s, OCI_DEFAULT)); while ($row = oci_fetch_array($s, OCI_ASSOC)) { var_dump($row); $result = $row['CLOB']->load(); var_dump($result); } require dirname(__FILE__).'/drop_table.inc'; echo "Test 2: BLOB\n"; require dirname(__FILE__).'/create_table.inc'; $ora_sql = "INSERT INTO ".$schema.$table_name." (blob) VALUES (empty_blob()) RETURNING blob INTO :v_blob "; $s = oci_parse($c,$ora_sql); $blob = oci_new_descriptor($c,OCI_DTYPE_LOB); oci_bind_by_name($s,":v_blob", $blob,-1,OCI_B_BLOB); oci_execute($s, OCI_DEFAULT); var_dump($blob->save("blob test 1")); oci_execute($s, OCI_DEFAULT); var_dump($blob->save("blob test 2")); oci_execute($s, OCI_DEFAULT); var_dump($blob->save("blob test 3")); $s = oci_parse($c, "select blob from ".$schema.$table_name); var_dump(oci_execute($s)); oci_fetch_all($s, $res); var_dump($res); echo "Test 2b\n"; $s = oci_parse($c, "select blob from ".$schema.$table_name); var_dump(oci_execute($s, OCI_DEFAULT)); while ($row = oci_fetch_array($s, OCI_ASSOC)) { var_dump($row); $result = $row['BLOB']->load(); var_dump($result); } require dirname(__FILE__).'/drop_table.inc'; echo "Done\n"; ?> --EXPECTF-- Test 1: CLOB bool(true) bool(true) bool(true) bool(true) array(1) { ["CLOB"]=> array(3) { [0]=> string(11) "clob test 1" [1]=> string(11) "clob test 2" [2]=> string(11) "clob test 3" } } Test 1b bool(true) array(1) { ["CLOB"]=> object(OCI-Lob)#%d (1) { ["descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(11) "clob test 1" array(1) { ["CLOB"]=> object(OCI-Lob)#%d (1) { ["descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(11) "clob test 2" array(1) { ["CLOB"]=> object(OCI-Lob)#%d (1) { ["descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(11) "clob test 3" Test 2: BLOB bool(true) bool(true) bool(true) bool(true) array(1) { ["BLOB"]=> array(3) { [0]=> string(11) "blob test 1" [1]=> string(11) "blob test 2" [2]=> string(11) "blob test 3" } } Test 2b bool(true) array(1) { ["BLOB"]=> object(OCI-Lob)#%d (1) { ["descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(11) "blob test 1" array(1) { ["BLOB"]=> object(OCI-Lob)#%d (1) { ["descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(11) "blob test 2" array(1) { ["BLOB"]=> object(OCI-Lob)#%d (1) { ["descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(11) "blob test 3" Done --UEXPECTF-- Test 1: CLOB bool(true) bool(true) bool(true) bool(true) array(1) { [u"CLOB"]=> array(3) { [0]=> unicode(11) "clob test 1" [1]=> unicode(11) "clob test 2" [2]=> unicode(11) "clob test 3" } } Test 1b bool(true) array(1) { [u"CLOB"]=> object(OCI-Lob)#%d (1) { [u"descriptor"]=> resource(%d) of type (oci8 descriptor) } } unicode(11) "clob test 1" array(1) { [u"CLOB"]=> object(OCI-Lob)#%d (1) { [u"descriptor"]=> resource(%d) of type (oci8 descriptor) } } unicode(11) "clob test 2" array(1) { [u"CLOB"]=> object(OCI-Lob)#%d (1) { [u"descriptor"]=> resource(%d) of type (oci8 descriptor) } } unicode(11) "clob test 3" Test 2: BLOB bool(true) bool(true) bool(true) bool(true) array(1) { [u"BLOB"]=> array(3) { [0]=> string(22) "b [1]=> string(22) "b [2]=> string(22) "b } } Test 2b bool(true) array(1) { [u"BLOB"]=> object(OCI-Lob)#%d (1) { [u"descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(22) "b array(1) { [u"BLOB"]=> object(OCI-Lob)#%d (1) { [u"descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(22) "b array(1) { [u"BLOB"]=> object(OCI-Lob)#%d (1) { [u"descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(22) "b Done http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/lob_037.phpt?view=markup&rev=1.1 Index: php-src/ext/oci8/tests/lob_037.phpt +++ php-src/ext/oci8/tests/lob_037.phpt --TEST-- Fetching two different lobs and using them after fetch --SKIPIF-- <?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?> --FILE-- <?php require dirname(__FILE__).'/connect.inc'; require dirname(__FILE__).'/create_table.inc'; /* insert the first LOB */ $ora_sql = "INSERT INTO ".$schema.$table_name." (blob) VALUES (empty_blob()) RETURNING blob INTO :v_blob "; $s = oci_parse($c,$ora_sql); $blob = oci_new_descriptor($c,OCI_DTYPE_LOB); oci_bind_by_name($s,":v_blob", $blob,-1,OCI_B_BLOB); oci_execute($s, OCI_DEFAULT); var_dump($blob->write("first lob data")); oci_commit($c); /* insert the second LOB */ $ora_sql = "INSERT INTO ".$schema.$table_name." (blob) VALUES (empty_blob()) RETURNING blob INTO :v_blob "; $s = oci_parse($c,$ora_sql); $blob = oci_new_descriptor($c,OCI_DTYPE_LOB); oci_bind_by_name($s,":v_blob", $blob,-1,OCI_B_BLOB); oci_execute($s, OCI_DEFAULT); var_dump($blob->write("second lob data")); oci_commit($c); /* select both */ $ora_sql = "SELECT blob FROM ".$schema.$table_name; $s = oci_parse($c,$ora_sql); oci_execute($s, OCI_DEFAULT); $rows = array(); $rows[0] = oci_fetch_assoc($s); $rows[1] = oci_fetch_assoc($s); var_dump($rows[0]['BLOB']->read(1000)); var_dump($rows[1]['BLOB']->read(1000)); require dirname(__FILE__).'/drop_table.inc'; echo "Done\n"; ?> --EXPECT-- int(14) int(15) string(14) "first lob data" string(15) "second lob data" Done --UEXPECT-- int(28) int(30) string(28) "f string(30) "s Done http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/bug40415.phpt?view=markup&rev=1.1 Index: php-src/ext/oci8/tests/bug40415.phpt +++ php-src/ext/oci8/tests/bug40415.phpt --TEST-- Bug #40415 (Using oci_fetchall with nested cursors) --SKIPIF-- <?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?> --FILE-- <?php require dirname(__FILE__)."/connect.inc"; // Setup $create_1 = "CREATE TABLE t1 (id1 INTEGER)"; $create_2 = "CREATE TABLE t2 (id2 INTEGER)"; $drop_1 = "DROP TABLE t1"; $drop_2 = "DROP TABLE t2"; $s1 = oci_parse($c, $drop_1); $s2 = oci_parse($c, $drop_2); @oci_execute($s1); @oci_execute($s2); $s1 = oci_parse($c, $create_1); $s2 = oci_parse($c, $create_2); oci_execute($s1); oci_execute($s2); for($i=1; $i < 4; $i++) { $insert = "INSERT INTO t1 VALUES(1".$i.")"; $s = oci_parse($c, $insert); oci_execute($s); } for($i=1; $i < 4; $i++) { $insert = "INSERT INTO t2 VALUES(2".$i.")"; $s = oci_parse($c, $insert); oci_execute($s); } function do_assoc($c) { $query = "SELECT t1.*, CURSOR( SELECT * FROM t2 ) AS CURSOR FROM t1"; $stmt = oci_parse($c, $query); oci_execute($stmt); while ($row = oci_fetch_assoc($stmt)) { print "Got row \"".$row['ID1']."\". Now getting nested cursor:\n"; var_dump(oci_execute($row['CURSOR'])); while ($row_n = oci_fetch_assoc($row['CURSOR']) ) { var_dump($row_n); } } } function do_all($c) { $query = "SELECT t1.*, CURSOR( SELECT * FROM t2 ) AS CURSOR FROM t1"; $stmt = oci_parse($c, $query); oci_execute($stmt); $rc1 = oci_fetch_all($stmt, $res); echo "Rows returned $rc1\n"; var_dump($res); foreach ($res['CURSOR'] as $cv) { echo "Getting nested cursor\n"; var_dump(oci_execute($cv)); $rc2 = oci_fetch_all($cv, $res2); var_dump($res2); } } echo "Test 1: Associate fetch of nested cursor\n"; do_assoc($c); echo "\nTest 2: fetchall of nested cursor\n"; do_all($c); // Cleanup $s1 = oci_parse($c, $drop_1); $s2 = oci_parse($c, $drop_2); @oci_execute($s1); @oci_execute($s2); echo "Done\n"; ?> --EXPECTF-- Test 1: Associate fetch of nested cursor Got row "11". Now getting nested cursor: bool(true) array(1) { ["ID2"]=> string(2) "21" } array(1) { ["ID2"]=> string(2) "22" } array(1) { ["ID2"]=> string(2) "23" } Got row "12". Now getting nested cursor: bool(true) array(1) { ["ID2"]=> string(2) "21" } array(1) { ["ID2"]=> string(2) "22" } array(1) { ["ID2"]=> string(2) "23" } Got row "13". Now getting nested cursor: bool(true) array(1) { ["ID2"]=> string(2) "21" } array(1) { ["ID2"]=> string(2) "22" } array(1) { ["ID2"]=> string(2) "23" } Test 2: fetchall of nested cursor Rows returned 3 array(2) { ["ID1"]=> array(3) { [0]=> string(2) "11" [1]=> string(2) "12" [2]=> string(2) "13" } ["CURSOR"]=> array(3) { [0]=> resource(%d) of type (oci8 statement) [1]=> resource(%d) of type (oci8 statement) [2]=> resource(%d) of type (oci8 statement) } } Getting nested cursor bool(true) array(1) { ["ID2"]=> array(3) { [0]=> string(2) "21" [1]=> string(2) "22" [2]=> string(2) "23" } } Getting nested cursor bool(true) array(1) { ["ID2"]=> array(3) { [0]=> string(2) "21" [1]=> string(2) "22" [2]=> string(2) "23" } } Getting nested cursor bool(true) array(1) { ["ID2"]=> array(3) { [0]=> string(2) "21" [1]=> string(2) "22" [2]=> string(2) "23" } } Done --UEXPECTF-- Test 1: Associate fetch of nested cursor Got row "11". Now getting nested cursor: bool(true) array(1) { [u"ID2"]=> unicode(2) "21" } array(1) { [u"ID2"]=> unicode(2) "22" } array(1) { [u"ID2"]=> unicode(2) "23" } Got row "12". Now getting nested cursor: bool(true) array(1) { [u"ID2"]=> unicode(2) "21" } array(1) { [u"ID2"]=> unicode(2) "22" } array(1) { [u"ID2"]=> unicode(2) "23" } Got row "13". Now getting nested cursor: bool(true) array(1) { [u"ID2"]=> unicode(2) "21" } array(1) { [u"ID2"]=> unicode(2) "22" } array(1) { [u"ID2"]=> unicode(2) "23" } Test 2: fetchall of nested cursor Rows returned 3 array(2) { [u"ID1"]=> array(3) { [0]=> unicode(2) "11" [1]=> unicode(2) "12" [2]=> unicode(2) "13" } [u"CURSOR"]=> array(3) { [0]=> resource(22) of type (oci8 statement) [1]=> resource(23) of type (oci8 statement) [2]=> resource(24) of type (oci8 statement) } } Getting nested cursor bool(true) array(1) { [u"ID2"]=> array(3) { [0]=> unicode(2) "21" [1]=> unicode(2) "22" [2]=> unicode(2) "23" } } Getting nested cursor bool(true) array(1) { [u"ID2"]=> array(3) { [0]=> unicode(2) "21" [1]=> unicode(2) "22" [2]=> unicode(2) "23" } } Getting nested cursor bool(true) array(1) { [u"ID2"]=> array(3) { [0]=> unicode(2) "21" [1]=> unicode(2) "22" [2]=> unicode(2) "23" } } Done
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php