Annotation of embedaddon/php/ext/oci8/tests/bug41069.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #41069 (Oracle crash with certain data over a DB-link when prefetch memory limit used - Oracle bug 6039623)
! 3: --SKIPIF--
! 4: <?php
! 5: $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs
! 6: require(dirname(__FILE__).'/skipif.inc');
! 7: if (empty($dbase)) die ("skip requires network connection alias for DB link loopback");
! 8: if ($test_drcp) die("skip DRCP does not support shared database links");
! 9: ?>
! 10: --INI--
! 11: oci8.default_prefetch=5
! 12: --FILE--
! 13: <?php
! 14:
! 15: require(dirname(__FILE__).'/connect.inc');
! 16:
! 17: // Initialization
! 18:
! 19: $stmtarray = array(
! 20: "alter session set nls_date_format = 'MM/DD/YYYY'",
! 21:
! 22: "drop database link bug41069_dblink",
! 23:
! 24: "drop table bug41069_tab",
! 25:
! 26: "create shared database link bug41069_dblink authenticated by $user identified by $password using '$dbase'",
! 27:
! 28: "create table bug41069_tab
! 29: (
! 30: c1 number(20),
! 31: c2 varchar2(60 byte),
! 32: c3 varchar2(1000 byte),
! 33: c4 varchar2(255 byte),
! 34: c5 varchar2(2 byte),
! 35: c6 varchar2(1 byte),
! 36: c7 varchar2(255 byte),
! 37: c8 varchar2(50 byte),
! 38: c9 date,
! 39: c10 date,
! 40: c12 number(20),
! 41: c13 varchar2(20 byte),
! 42: c15 varchar2(50 byte)
! 43: )",
! 44:
! 45: "insert into bug41069_tab (c1, c2, c5, c6, c9, c10, c12, c15) values
! 46: (111, 'aaaaaaa', 'b', 'c', '01/17/2008', '01/07/2017', 2222, 'zzzzzzzzzz')",
! 47:
! 48: "insert into bug41069_tab (c1, c2, c3, c4, c5, c6, c7, c9, c10, c12, c13, c15) values
! 49: (112, 'aaaaaaa', 'bbbbbbbb', 'ccccccc', 'd', 'e', 'rrrrrrr', '04/16/2007', '04/16/2007', 2223, 'xxxxxxxx', 'zzzzzzzz')",
! 50:
! 51: "insert into bug41069_tab (c1, c2, c3, c4, c5, c6, c7, c9, c10, c12, c15) values
! 52: (113, 'aaaaaaa', 'bbbbbbbbbb', 'cccccc', 'e', 'f', 'dddd', '12/04/2006', '12/04/2006', 2224, 'zzzzzzz')"
! 53: );
! 54:
! 55: oci8_test_sql_execute($c, $stmtarray);
! 56:
! 57:
! 58: // Run Tests
! 59:
! 60: echo "Test 1: non-DB link case that always worked\n";
! 61: $stid = oci_parse($c, 'select * from bug41069_tab order by c1');
! 62: oci_execute($stid, OCI_DEFAULT);
! 63: oci_fetch_all($stid, $results, 0, -1, OCI_ASSOC+OCI_FETCHSTATEMENT_BY_ROW);
! 64: var_dump($results);
! 65:
! 66: echo "Test 2: Should not crash\n";
! 67: $stid = oci_parse($c, 'select * from bug41069_tab@bug41069_dblink order by c1');
! 68: oci_execute($stid, OCI_DEFAULT);
! 69: oci_fetch_all($stid, $results, 0, -1, OCI_ASSOC+OCI_FETCHSTATEMENT_BY_ROW);
! 70: var_dump($results);
! 71:
! 72: // Cleanup
! 73:
! 74: $c = oci_new_connect($user, $password, $dbase);
! 75:
! 76: $stmtarray = array(
! 77: "drop database link bug41069_dblink",
! 78: "drop table bug41069_tab"
! 79: );
! 80:
! 81: oci8_test_sql_execute($c, $stmtarray);
! 82:
! 83: echo "Done\n";
! 84:
! 85: ?>
! 86: --EXPECT--
! 87: Test 1: non-DB link case that always worked
! 88: array(3) {
! 89: [0]=>
! 90: array(13) {
! 91: ["C1"]=>
! 92: string(3) "111"
! 93: ["C2"]=>
! 94: string(7) "aaaaaaa"
! 95: ["C3"]=>
! 96: NULL
! 97: ["C4"]=>
! 98: NULL
! 99: ["C5"]=>
! 100: string(1) "b"
! 101: ["C6"]=>
! 102: string(1) "c"
! 103: ["C7"]=>
! 104: NULL
! 105: ["C8"]=>
! 106: NULL
! 107: ["C9"]=>
! 108: string(10) "01/17/2008"
! 109: ["C10"]=>
! 110: string(10) "01/07/2017"
! 111: ["C12"]=>
! 112: string(4) "2222"
! 113: ["C13"]=>
! 114: NULL
! 115: ["C15"]=>
! 116: string(10) "zzzzzzzzzz"
! 117: }
! 118: [1]=>
! 119: array(13) {
! 120: ["C1"]=>
! 121: string(3) "112"
! 122: ["C2"]=>
! 123: string(7) "aaaaaaa"
! 124: ["C3"]=>
! 125: string(8) "bbbbbbbb"
! 126: ["C4"]=>
! 127: string(7) "ccccccc"
! 128: ["C5"]=>
! 129: string(1) "d"
! 130: ["C6"]=>
! 131: string(1) "e"
! 132: ["C7"]=>
! 133: string(7) "rrrrrrr"
! 134: ["C8"]=>
! 135: NULL
! 136: ["C9"]=>
! 137: string(10) "04/16/2007"
! 138: ["C10"]=>
! 139: string(10) "04/16/2007"
! 140: ["C12"]=>
! 141: string(4) "2223"
! 142: ["C13"]=>
! 143: string(8) "xxxxxxxx"
! 144: ["C15"]=>
! 145: string(8) "zzzzzzzz"
! 146: }
! 147: [2]=>
! 148: array(13) {
! 149: ["C1"]=>
! 150: string(3) "113"
! 151: ["C2"]=>
! 152: string(7) "aaaaaaa"
! 153: ["C3"]=>
! 154: string(10) "bbbbbbbbbb"
! 155: ["C4"]=>
! 156: string(6) "cccccc"
! 157: ["C5"]=>
! 158: string(1) "e"
! 159: ["C6"]=>
! 160: string(1) "f"
! 161: ["C7"]=>
! 162: string(4) "dddd"
! 163: ["C8"]=>
! 164: NULL
! 165: ["C9"]=>
! 166: string(10) "12/04/2006"
! 167: ["C10"]=>
! 168: string(10) "12/04/2006"
! 169: ["C12"]=>
! 170: string(4) "2224"
! 171: ["C13"]=>
! 172: NULL
! 173: ["C15"]=>
! 174: string(7) "zzzzzzz"
! 175: }
! 176: }
! 177: Test 2: Should not crash
! 178: array(3) {
! 179: [0]=>
! 180: array(13) {
! 181: ["C1"]=>
! 182: string(3) "111"
! 183: ["C2"]=>
! 184: string(7) "aaaaaaa"
! 185: ["C3"]=>
! 186: NULL
! 187: ["C4"]=>
! 188: NULL
! 189: ["C5"]=>
! 190: string(1) "b"
! 191: ["C6"]=>
! 192: string(1) "c"
! 193: ["C7"]=>
! 194: NULL
! 195: ["C8"]=>
! 196: NULL
! 197: ["C9"]=>
! 198: string(10) "01/17/2008"
! 199: ["C10"]=>
! 200: string(10) "01/07/2017"
! 201: ["C12"]=>
! 202: string(4) "2222"
! 203: ["C13"]=>
! 204: NULL
! 205: ["C15"]=>
! 206: string(10) "zzzzzzzzzz"
! 207: }
! 208: [1]=>
! 209: array(13) {
! 210: ["C1"]=>
! 211: string(3) "112"
! 212: ["C2"]=>
! 213: string(7) "aaaaaaa"
! 214: ["C3"]=>
! 215: string(8) "bbbbbbbb"
! 216: ["C4"]=>
! 217: string(7) "ccccccc"
! 218: ["C5"]=>
! 219: string(1) "d"
! 220: ["C6"]=>
! 221: string(1) "e"
! 222: ["C7"]=>
! 223: string(7) "rrrrrrr"
! 224: ["C8"]=>
! 225: NULL
! 226: ["C9"]=>
! 227: string(10) "04/16/2007"
! 228: ["C10"]=>
! 229: string(10) "04/16/2007"
! 230: ["C12"]=>
! 231: string(4) "2223"
! 232: ["C13"]=>
! 233: string(8) "xxxxxxxx"
! 234: ["C15"]=>
! 235: string(8) "zzzzzzzz"
! 236: }
! 237: [2]=>
! 238: array(13) {
! 239: ["C1"]=>
! 240: string(3) "113"
! 241: ["C2"]=>
! 242: string(7) "aaaaaaa"
! 243: ["C3"]=>
! 244: string(10) "bbbbbbbbbb"
! 245: ["C4"]=>
! 246: string(6) "cccccc"
! 247: ["C5"]=>
! 248: string(1) "e"
! 249: ["C6"]=>
! 250: string(1) "f"
! 251: ["C7"]=>
! 252: string(4) "dddd"
! 253: ["C8"]=>
! 254: NULL
! 255: ["C9"]=>
! 256: string(10) "12/04/2006"
! 257: ["C10"]=>
! 258: string(10) "12/04/2006"
! 259: ["C12"]=>
! 260: string(4) "2224"
! 261: ["C13"]=>
! 262: NULL
! 263: ["C15"]=>
! 264: string(7) "zzzzzzz"
! 265: }
! 266: }
! 267: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>