Annotation of embedaddon/php/ext/oci8/tests/bug43492.phpt, revision 1.1.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>