Skip to content
/ server Public

Commit bbbba50

Browse files
committed
Adding REF CURSOR in parameters and return
1 parent e5aafac commit bbbba50

18 files changed

+436
-66
lines changed

plugin/type_cursor/mysql-test/type_cursor/type_cursor2.result

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,3 +269,61 @@ v0 v1
269269
Warnings:
270270
Note 1265 Data truncated for column 'b' at row 1
271271
DROP PROCEDURE p1;
272+
CREATE PACKAGE pkg1 AS
273+
PROCEDURE p1;
274+
END;
275+
$$
276+
CREATE PACKAGE BODY pkg1 AS
277+
TYPE rec0_t IS RECORD(a INT, b VARCHAR(10));
278+
TYPE cur0_t IS REF CURSOR RETURN rec0_t;
279+
PROCEDURE p20 (c0 cur0_t) AS
280+
r0 rec0_t;
281+
BEGIN
282+
FETCH c0 INTO r0;
283+
SELECT r0.a, r0.b;
284+
END;
285+
PROCEDURE p1 AS
286+
c0 cur0_t;
287+
BEGIN
288+
OPEN c0 FOR SELECT 1 AS a, ' ' AS b;
289+
CALL p20(c0);
290+
CLOSE c0;
291+
END;
292+
END;
293+
$$
294+
CALL pkg1.p1;
295+
r0.a r0.b
296+
1
297+
Warnings:
298+
Note 1265 Data truncated for column 'b' at row 0
299+
DROP PACKAGE pkg1;
300+
CREATE PACKAGE pkg1 AS
301+
PROCEDURE p1;
302+
END;
303+
$$
304+
CREATE PACKAGE BODY pkg1 AS
305+
TYPE rec0_t IS RECORD(a INT, b VARCHAR(10));
306+
TYPE cur0_t IS REF CURSOR RETURN rec0_t;
307+
FUNCTION f1() RETURN cur0_t AS
308+
c0 cur0_t;
309+
BEGIN
310+
OPEN c0 FOR SELECT 1 AS a, ' ' AS b;
311+
RETURN c0;
312+
END;
313+
PROCEDURE p1 AS
314+
c0 cur0_t;
315+
r0 rec0_t;
316+
BEGIN
317+
c0:= f1();
318+
FETCH c0 INTO r0;
319+
SELECT r0.a, r0.b;
320+
CLOSE c0;
321+
END;
322+
END;
323+
$$
324+
CALL pkg1.p1;
325+
r0.a r0.b
326+
1
327+
Warnings:
328+
Note 1265 Data truncated for column 'b' at row 0
329+
DROP PACKAGE pkg1;

plugin/type_cursor/mysql-test/type_cursor/type_cursor2.test

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,3 +339,61 @@ $$
339339
DELIMITER ;$$
340340
CALL p1;
341341
DROP PROCEDURE p1;
342+
343+
344+
DELIMITER $$;
345+
CREATE PACKAGE pkg1 AS
346+
PROCEDURE p1;
347+
END;
348+
$$
349+
CREATE PACKAGE BODY pkg1 AS
350+
TYPE rec0_t IS RECORD(a INT, b VARCHAR(10));
351+
TYPE cur0_t IS REF CURSOR RETURN rec0_t;
352+
PROCEDURE p20 (c0 cur0_t) AS
353+
r0 rec0_t;
354+
BEGIN
355+
FETCH c0 INTO r0;
356+
SELECT r0.a, r0.b;
357+
END;
358+
PROCEDURE p1 AS
359+
c0 cur0_t;
360+
BEGIN
361+
OPEN c0 FOR SELECT 1 AS a, ' ' AS b;
362+
CALL p20(c0);
363+
CLOSE c0;
364+
END;
365+
END;
366+
$$
367+
DELIMITER ;$$
368+
CALL pkg1.p1;
369+
DROP PACKAGE pkg1;
370+
371+
372+
DELIMITER $$;
373+
CREATE PACKAGE pkg1 AS
374+
PROCEDURE p1;
375+
END;
376+
$$
377+
CREATE PACKAGE BODY pkg1 AS
378+
TYPE rec0_t IS RECORD(a INT, b VARCHAR(10));
379+
TYPE cur0_t IS REF CURSOR RETURN rec0_t;
380+
FUNCTION f1() RETURN cur0_t AS
381+
c0 cur0_t;
382+
BEGIN
383+
OPEN c0 FOR SELECT 1 AS a, ' ' AS b;
384+
RETURN c0;
385+
END;
386+
PROCEDURE p1 AS
387+
c0 cur0_t;
388+
r0 rec0_t;
389+
BEGIN
390+
c0:= f1();
391+
FETCH c0 INTO r0;
392+
SELECT r0.a, r0.b;
393+
CLOSE c0;
394+
END;
395+
END;
396+
$$
397+
DELIMITER ;$$
398+
CALL pkg1.p1;
399+
DROP PACKAGE pkg1;

plugin/type_cursor/mysql-test/type_cursor/type_sys_refcursor-default.result

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ BEGIN NOT ATOMIC
3636
DECLARE c SYS_REFCURSOR DEFAULT 0;
3737
END;
3838
$$
39-
ERROR HY000: Cannot cast 'int' as 'sys_refcursor' in assignment of `c`
39+
ERROR HY000: Cannot cast 'int' as 'sys_refcursor' in assignment of `c` for operation SET
4040
BEGIN NOT ATOMIC
4141
DECLARE c SYS_REFCURSOR DEFAULT IGNORE;
4242
END;

plugin/type_cursor/mysql-test/type_cursor/type_sys_refcursor-default.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ DELIMITER ;$$
4646

4747

4848
DELIMITER $$;
49-
--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION
49+
--error ER_CANNOT_CAST_ON_IDENT1_ASSIGNMENT_FOR_OPERATION
5050
BEGIN NOT ATOMIC
5151
DECLARE c SYS_REFCURSOR DEFAULT 0;
5252
END;

plugin/type_cursor/mysql-test/type_cursor/type_sys_refcursor.result

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -220,14 +220,14 @@ DECLARE c SYS_REFCURSOR;
220220
SET c=1;
221221
END;
222222
$$
223-
ERROR HY000: Cannot cast 'int' as 'sys_refcursor' in assignment of `c`
223+
ERROR HY000: Cannot cast 'int' as 'sys_refcursor' in assignment of `c` for operation SET
224224
BEGIN NOT ATOMIC
225225
DECLARE c SYS_REFCURSOR;
226226
DECLARE i INT;
227227
SET c=i;
228228
END;
229229
$$
230-
ERROR HY000: Cannot cast 'int' as 'sys_refcursor' in assignment of `c`
230+
ERROR HY000: Cannot cast 'int' as 'sys_refcursor' in assignment of `c` for operation SET
231231
BEGIN NOT ATOMIC
232232
DECLARE c SYS_REFCURSOR;
233233
DECLARE i INT;
@@ -248,7 +248,7 @@ FETCH p1c0 INTO p1c1;
248248
END;
249249
/
250250
CALL p1;
251-
ERROR HY000: Cannot cast 'int' as 'sys_refcursor' in assignment of `p1c1`
251+
ERROR HY000: Cannot cast 'int' as 'sys_refcursor' in assignment of `p1c1` for operation SET
252252
DROP PROCEDURE p1;
253253
CREATE PROCEDURE p1()
254254
BEGIN
@@ -259,7 +259,7 @@ FETCH p1c0 INTO p1c1;
259259
END;
260260
/
261261
CALL p1;
262-
ERROR HY000: Cannot cast 'int' as 'sys_refcursor' in assignment of `p1c1`
262+
ERROR HY000: Cannot cast 'int' as 'sys_refcursor' in assignment of `p1c1` for operation SET
263263
DROP PROCEDURE p1;
264264
CREATE PROCEDURE p1()
265265
BEGIN

plugin/type_cursor/mysql-test/type_cursor/type_sys_refcursor.test

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ SET sql_mode=DEFAULT;
319319
--echo #
320320

321321
DELIMITER $$;
322-
--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION
322+
--error ER_CANNOT_CAST_ON_IDENT1_ASSIGNMENT_FOR_OPERATION
323323
BEGIN NOT ATOMIC
324324
DECLARE c SYS_REFCURSOR;
325325
SET c=1;
@@ -328,7 +328,7 @@ $$
328328
DELIMITER ;$$
329329

330330
DELIMITER $$;
331-
--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION
331+
--error ER_CANNOT_CAST_ON_IDENT1_ASSIGNMENT_FOR_OPERATION
332332
BEGIN NOT ATOMIC
333333
DECLARE c SYS_REFCURSOR;
334334
DECLARE i INT;
@@ -363,7 +363,7 @@ BEGIN
363363
END;
364364
/
365365
DELIMITER ;/
366-
--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION
366+
--error ER_CANNOT_CAST_ON_IDENT1_ASSIGNMENT_FOR_OPERATION
367367
CALL p1;
368368
DROP PROCEDURE p1;
369369

@@ -378,7 +378,7 @@ BEGIN
378378
END;
379379
/
380380
DELIMITER ;/
381-
--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION
381+
--error ER_CANNOT_CAST_ON_IDENT1_ASSIGNMENT_FOR_OPERATION
382382
CALL p1;
383383
DROP PROCEDURE p1;
384384

0 commit comments

Comments
 (0)