Annotation of embedaddon/php/ext/oci8/tests/lob_030.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test piecewise fetch of CLOBs equal to, and larger than PHP_OCI_LOB_BUFFER_SIZE
                      3: --SKIPIF--
                      4: <?php
                      5: $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
                      6: require(dirname(__FILE__).'/skipif.inc');
                      7: ?> 
                      8: --FILE--
                      9: <?php
                     10: 
                     11: require dirname(__FILE__).'/connect.inc';
                     12: require dirname(__FILE__).'/create_table.inc';
                     13: 
                     14: function insert_verify($c, $tn, $id, $length)
                     15: {
                     16:     // Insert the data
                     17:     $ora_sql = "INSERT INTO
                     18:                        ".$tn." (id, clob)
                     19:                       VALUES (".$id.", empty_clob())
                     20:                       RETURNING
                     21:                                clob
                     22:                       INTO :v_clob ";
                     23: 
                     24:     $statement = oci_parse($c,$ora_sql);
                     25:     $clob = oci_new_descriptor($c,OCI_D_LOB);
                     26:     oci_bind_by_name($statement,":v_clob", $clob, -1, OCI_B_CLOB);
                     27:     oci_execute($statement, OCI_DEFAULT);
                     28: 
                     29:     $data = str_pad("x", $length, "x");
                     30:     $clob->write($data);
                     31: 
                     32:     // Verify the data
                     33:     $select_sql = "SELECT clob FROM ".$tn." where id = ".$id;
                     34:     $s = oci_parse($c, $select_sql);
                     35:     oci_execute($s);
                     36: 
                     37:     $row = oci_fetch_array($s, OCI_RETURN_LOBS);
                     38: 
                     39:     var_dump(strlen($row[0]));
                     40: }
                     41: 
                     42: echo "Test 1: A CLOB with an even number of bytes\n";
                     43: insert_verify($c, $schema.$table_name, 1, 1050000);
                     44: 
                     45: echo "Test 2: A CLOB with an odd number of bytes\n";
                     46: insert_verify($c, $schema.$table_name, 2, 1050001);
                     47: 
                     48: echo "Test 3: A CLOB of 1048576 bytes (== size of PHP_OCI_LOB_BUFFER_SIZE at time of test creation)\n";
                     49: insert_verify($c, $schema.$table_name, 3, 1048576);
                     50: 
                     51: echo "Test 4: A CLOB of 1049028 bytes (the value used for chunks in the code)\n";
                     52: insert_verify($c, $schema.$table_name, 4, 1049028);
                     53: 
                     54: echo "Test 5: A CLOB of 1049028-1 bytes\n";
                     55: insert_verify($c, $schema.$table_name, 5, 1049028-1);
                     56: 
                     57: echo "Test 6: A CLOB of 1049028+1 bytes\n";
                     58: insert_verify($c, $schema.$table_name, 6, 1049028+1);
                     59: 
                     60: require dirname(__FILE__).'/drop_table.inc';
                     61: 
                     62: echo "Done\n";
                     63: 
                     64: ?>
                     65: --EXPECTF--
                     66: Test 1: A CLOB with an even number of bytes
                     67: int(1050000)
                     68: Test 2: A CLOB with an odd number of bytes
                     69: int(1050001)
                     70: Test 3: A CLOB of 1048576 bytes (== size of PHP_OCI_LOB_BUFFER_SIZE at time of test creation)
                     71: int(1048576)
                     72: Test 4: A CLOB of 1049028 bytes (the value used for chunks in the code)
                     73: int(1049028)
                     74: Test 5: A CLOB of 1049028-1 bytes
                     75: int(1049027)
                     76: Test 6: A CLOB of 1049028+1 bytes
                     77: int(1049029)
                     78: Done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>