Annotation of embedaddon/php/ext/oci8/tests/bug43492.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #43492 (Nested cursor leaks)
! 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:
! 13: $stmtarray = array(
! 14: "DROP table bug43492_tab",
! 15: "CREATE TABLE bug43492_tab(col1 VARCHAR2(1))",
! 16: "INSERT INTO bug43492_tab VALUES ('A')",
! 17: "INSERT INTO bug43492_tab VALUES ('B')",
! 18: "INSERT INTO bug43492_tab VALUES ('C')",
! 19: "INSERT INTO bug43492_tab VALUES ('D')",
! 20: "INSERT INTO bug43492_tab VALUES ('E')",
! 21: "INSERT INTO bug43492_tab VALUES ('F')",
! 22: "INSERT INTO bug43492_tab VALUES ('G')",
! 23: "INSERT INTO bug43492_tab VALUES ('H')",
! 24: "INSERT INTO bug43492_tab VALUES ('I')",
! 25: "INSERT INTO bug43492_tab VALUES ('J')"
! 26: );
! 27:
! 28: oci8_test_sql_execute($c, $stmtarray);
! 29:
! 30: /*
! 31:
! 32: While fetching data from a ref cursor, the parent statement needs to
! 33: be around. Also when the parent statement goes out of scope, it is
! 34: not automatically released which causes a cursor leak.
! 35:
! 36: If either or both of the lines marked (*) are removed, then the script
! 37: will fail with the error "ORA-01000: maximum open cursors exceeded".
! 38:
! 39: */
! 40:
! 41: function fetch($c, $i) {
! 42: global $s; // (*) Allow parent statement to be available when child is used
! 43: $s = ociparse($c, 'select cursor(select * from bug43492_tab) c from bug43492_tab');
! 44: ociexecute($s, OCI_DEFAULT);
! 45: ocifetchinto($s, $result, OCI_ASSOC);
! 46: ociexecute($result['C'], OCI_DEFAULT);
! 47: return $result['C'];
! 48: }
! 49:
! 50: for($i = 0; $i < 300; $i++) {
! 51: $cur = fetch($c, $i);
! 52: for($j = 0; $j < 10; $j++) {
! 53: ocifetchinto($cur, $row, OCI_NUM);
! 54: echo "$row[0] ";
! 55: }
! 56: echo "\n";
! 57: ocifreestatement($cur);
! 58: ocifreestatement($s); // (*) Free the parent statement cleanly
! 59: }
! 60:
! 61: echo "Done\n";
! 62:
! 63: // Cleanup
! 64:
! 65: $stmtarray = array(
! 66: "DROP table bug43492_tab"
! 67: );
! 68:
! 69: oci8_test_sql_execute($c, $stmtarray);
! 70:
! 71: ?>
! 72: --EXPECT--
! 73: A B C D E F G H I J
! 74: A B C D E F G H I J
! 75: A B C D E F G H I J
! 76: A B C D E F G H I J
! 77: A B C D E F G H I J
! 78: A B C D E F G H I J
! 79: A B C D E F G H I J
! 80: A B C D E F G H I J
! 81: A B C D E F G H I J
! 82: A B C D E F G H I J
! 83: A B C D E F G H I J
! 84: A B C D E F G H I J
! 85: A B C D E F G H I J
! 86: A B C D E F G H I J
! 87: A B C D E F G H I J
! 88: A B C D E F G H I J
! 89: A B C D E F G H I J
! 90: A B C D E F G H I J
! 91: A B C D E F G H I J
! 92: A B C D E F G H I J
! 93: A B C D E F G H I J
! 94: A B C D E F G H I J
! 95: A B C D E F G H I J
! 96: A B C D E F G H I J
! 97: A B C D E F G H I J
! 98: A B C D E F G H I J
! 99: A B C D E F G H I J
! 100: A B C D E F G H I J
! 101: A B C D E F G H I J
! 102: A B C D E F G H I J
! 103: A B C D E F G H I J
! 104: A B C D E F G H I J
! 105: A B C D E F G H I J
! 106: A B C D E F G H I J
! 107: A B C D E F G H I J
! 108: A B C D E F G H I J
! 109: A B C D E F G H I J
! 110: A B C D E F G H I J
! 111: A B C D E F G H I J
! 112: A B C D E F G H I J
! 113: A B C D E F G H I J
! 114: A B C D E F G H I J
! 115: A B C D E F G H I J
! 116: A B C D E F G H I J
! 117: A B C D E F G H I J
! 118: A B C D E F G H I J
! 119: A B C D E F G H I J
! 120: A B C D E F G H I J
! 121: A B C D E F G H I J
! 122: A B C D E F G H I J
! 123: A B C D E F G H I J
! 124: A B C D E F G H I J
! 125: A B C D E F G H I J
! 126: A B C D E F G H I J
! 127: A B C D E F G H I J
! 128: A B C D E F G H I J
! 129: A B C D E F G H I J
! 130: A B C D E F G H I J
! 131: A B C D E F G H I J
! 132: A B C D E F G H I J
! 133: A B C D E F G H I J
! 134: A B C D E F G H I J
! 135: A B C D E F G H I J
! 136: A B C D E F G H I J
! 137: A B C D E F G H I J
! 138: A B C D E F G H I J
! 139: A B C D E F G H I J
! 140: A B C D E F G H I J
! 141: A B C D E F G H I J
! 142: A B C D E F G H I J
! 143: A B C D E F G H I J
! 144: A B C D E F G H I J
! 145: A B C D E F G H I J
! 146: A B C D E F G H I J
! 147: A B C D E F G H I J
! 148: A B C D E F G H I J
! 149: A B C D E F G H I J
! 150: A B C D E F G H I J
! 151: A B C D E F G H I J
! 152: A B C D E F G H I J
! 153: A B C D E F G H I J
! 154: A B C D E F G H I J
! 155: A B C D E F G H I J
! 156: A B C D E F G H I J
! 157: A B C D E F G H I J
! 158: A B C D E F G H I J
! 159: A B C D E F G H I J
! 160: A B C D E F G H I J
! 161: A B C D E F G H I J
! 162: A B C D E F G H I J
! 163: A B C D E F G H I J
! 164: A B C D E F G H I J
! 165: A B C D E F G H I J
! 166: A B C D E F G H I J
! 167: A B C D E F G H I J
! 168: A B C D E F G H I J
! 169: A B C D E F G H I J
! 170: A B C D E F G H I J
! 171: A B C D E F G H I J
! 172: A B C D E F G H I J
! 173: A B C D E F G H I J
! 174: A B C D E F G H I J
! 175: A B C D E F G H I J
! 176: A B C D E F G H I J
! 177: A B C D E F G H I J
! 178: A B C D E F G H I J
! 179: A B C D E F G H I J
! 180: A B C D E F G H I J
! 181: A B C D E F G H I J
! 182: A B C D E F G H I J
! 183: A B C D E F G H I J
! 184: A B C D E F G H I J
! 185: A B C D E F G H I J
! 186: A B C D E F G H I J
! 187: A B C D E F G H I J
! 188: A B C D E F G H I J
! 189: A B C D E F G H I J
! 190: A B C D E F G H I J
! 191: A B C D E F G H I J
! 192: A B C D E F G H I J
! 193: A B C D E F G H I J
! 194: A B C D E F G H I J
! 195: A B C D E F G H I J
! 196: A B C D E F G H I J
! 197: A B C D E F G H I J
! 198: A B C D E F G H I J
! 199: A B C D E F G H I J
! 200: A B C D E F G H I J
! 201: A B C D E F G H I J
! 202: A B C D E F G H I J
! 203: A B C D E F G H I J
! 204: A B C D E F G H I J
! 205: A B C D E F G H I J
! 206: A B C D E F G H I J
! 207: A B C D E F G H I J
! 208: A B C D E F G H I J
! 209: A B C D E F G H I J
! 210: A B C D E F G H I J
! 211: A B C D E F G H I J
! 212: A B C D E F G H I J
! 213: A B C D E F G H I J
! 214: A B C D E F G H I J
! 215: A B C D E F G H I J
! 216: A B C D E F G H I J
! 217: A B C D E F G H I J
! 218: A B C D E F G H I J
! 219: A B C D E F G H I J
! 220: A B C D E F G H I J
! 221: A B C D E F G H I J
! 222: A B C D E F G H I J
! 223: A B C D E F G H I J
! 224: A B C D E F G H I J
! 225: A B C D E F G H I J
! 226: A B C D E F G H I J
! 227: A B C D E F G H I J
! 228: A B C D E F G H I J
! 229: A B C D E F G H I J
! 230: A B C D E F G H I J
! 231: A B C D E F G H I J
! 232: A B C D E F G H I J
! 233: A B C D E F G H I J
! 234: A B C D E F G H I J
! 235: A B C D E F G H I J
! 236: A B C D E F G H I J
! 237: A B C D E F G H I J
! 238: A B C D E F G H I J
! 239: A B C D E F G H I J
! 240: A B C D E F G H I J
! 241: A B C D E F G H I J
! 242: A B C D E F G H I J
! 243: A B C D E F G H I J
! 244: A B C D E F G H I J
! 245: A B C D E F G H I J
! 246: A B C D E F G H I J
! 247: A B C D E F G H I J
! 248: A B C D E F G H I J
! 249: A B C D E F G H I J
! 250: A B C D E F G H I J
! 251: A B C D E F G H I J
! 252: A B C D E F G H I J
! 253: A B C D E F G H I J
! 254: A B C D E F G H I J
! 255: A B C D E F G H I J
! 256: A B C D E F G H I J
! 257: A B C D E F G H I J
! 258: A B C D E F G H I J
! 259: A B C D E F G H I J
! 260: A B C D E F G H I J
! 261: A B C D E F G H I J
! 262: A B C D E F G H I J
! 263: A B C D E F G H I J
! 264: A B C D E F G H I J
! 265: A B C D E F G H I J
! 266: A B C D E F G H I J
! 267: A B C D E F G H I J
! 268: A B C D E F G H I J
! 269: A B C D E F G H I J
! 270: A B C D E F G H I J
! 271: A B C D E F G H I J
! 272: A B C D E F G H I J
! 273: A B C D E F G H I J
! 274: A B C D E F G H I J
! 275: A B C D E F G H I J
! 276: A B C D E F G H I J
! 277: A B C D E F G H I J
! 278: A B C D E F G H I J
! 279: A B C D E F G H I J
! 280: A B C D E F G H I J
! 281: A B C D E F G H I J
! 282: A B C D E F G H I J
! 283: A B C D E F G H I J
! 284: A B C D E F G H I J
! 285: A B C D E F G H I J
! 286: A B C D E F G H I J
! 287: A B C D E F G H I J
! 288: A B C D E F G H I J
! 289: A B C D E F G H I J
! 290: A B C D E F G H I J
! 291: A B C D E F G H I J
! 292: A B C D E F G H I J
! 293: A B C D E F G H I J
! 294: A B C D E F G H I J
! 295: A B C D E F G H I J
! 296: A B C D E F G H I J
! 297: A B C D E F G H I J
! 298: A B C D E F G H I J
! 299: A B C D E F G H I J
! 300: A B C D E F G H I J
! 301: A B C D E F G H I J
! 302: A B C D E F G H I J
! 303: A B C D E F G H I J
! 304: A B C D E F G H I J
! 305: A B C D E F G H I J
! 306: A B C D E F G H I J
! 307: A B C D E F G H I J
! 308: A B C D E F G H I J
! 309: A B C D E F G H I J
! 310: A B C D E F G H I J
! 311: A B C D E F G H I J
! 312: A B C D E F G H I J
! 313: A B C D E F G H I J
! 314: A B C D E F G H I J
! 315: A B C D E F G H I J
! 316: A B C D E F G H I J
! 317: A B C D E F G H I J
! 318: A B C D E F G H I J
! 319: A B C D E F G H I J
! 320: A B C D E F G H I J
! 321: A B C D E F G H I J
! 322: A B C D E F G H I J
! 323: A B C D E F G H I J
! 324: A B C D E F G H I J
! 325: A B C D E F G H I J
! 326: A B C D E F G H I J
! 327: A B C D E F G H I J
! 328: A B C D E F G H I J
! 329: A B C D E F G H I J
! 330: A B C D E F G H I J
! 331: A B C D E F G H I J
! 332: A B C D E F G H I J
! 333: A B C D E F G H I J
! 334: A B C D E F G H I J
! 335: A B C D E F G H I J
! 336: A B C D E F G H I J
! 337: A B C D E F G H I J
! 338: A B C D E F G H I J
! 339: A B C D E F G H I J
! 340: A B C D E F G H I J
! 341: A B C D E F G H I J
! 342: A B C D E F G H I J
! 343: A B C D E F G H I J
! 344: A B C D E F G H I J
! 345: A B C D E F G H I J
! 346: A B C D E F G H I J
! 347: A B C D E F G H I J
! 348: A B C D E F G H I J
! 349: A B C D E F G H I J
! 350: A B C D E F G H I J
! 351: A B C D E F G H I J
! 352: A B C D E F G H I J
! 353: A B C D E F G H I J
! 354: A B C D E F G H I J
! 355: A B C D E F G H I J
! 356: A B C D E F G H I J
! 357: A B C D E F G H I J
! 358: A B C D E F G H I J
! 359: A B C D E F G H I J
! 360: A B C D E F G H I J
! 361: A B C D E F G H I J
! 362: A B C D E F G H I J
! 363: A B C D E F G H I J
! 364: A B C D E F G H I J
! 365: A B C D E F G H I J
! 366: A B C D E F G H I J
! 367: A B C D E F G H I J
! 368: A B C D E F G H I J
! 369: A B C D E F G H I J
! 370: A B C D E F G H I J
! 371: A B C D E F G H I J
! 372: A B C D E F G H I J
! 373: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>