Details
-
Technical task
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
None
Description
The task MDEV-10914 implements the ROW data type for stored routine local variables and parameters.
This task will additionally allow to use ROW in stored function return data type.
DROP FUNCTION IF EXISTS f1; |
DELIMITER $$
|
CREATE FUNCTION f1(a INT, b VARCHAR(32)) RETURNS ROW(a INT, b VARCHAR(32)) |
BEGIN
|
RETURN ROW(a,b); |
END; |
$$
|
DELIMITER ;
|
SELECT f1(1,'b1') = ROW(1,'b1'); |
Anchored row data types should also be supported:
DROP FUNCTION IF EXISTS f1; |
DELIMITER $$
|
CREATE FUNCTION f1(a INT, b VARCHAR(32)) RETURNS ROW TYPE OF t1 |
BEGIN
|
RETURN ROW(a,b); |
END; |
$$
|
DELIMITER ;
|
SELECT f1(1,'b1') = ROW(1,'b1'); |
Attachments
Issue Links
- blocks
-
MDEV-12308 Accessing ROW type function fields
-
- Open
-
-
MDEV-32380 Array data type for stored routnes
-
- Stalled
-
- causes
-
MDEV-35003 Server crashes when reading routines table after creating a function with "returns type of"
-
- Closed
-
-
MDEV-36322 Comparison ROW(stored_func(),1)=ROW(1,1) calls the function twice per row
-
- Closed
-
- is blocked by
-
MDEV-4912 Data type plugin API version 1
-
- Closed
-
-
MDEV-10914 ROW data type for stored routine variables
-
- Closed
-
- relates to
-
MDEV-11210 TYPE OF and %TYPE in stored function RETURN data type
-
- Open
-
-
MDEV-12307 ROW data type for built-in function return values
-
- Stalled
-
-
MDEV-12461 TYPE OF and ROW TYPE OF anchored data types for stored routine variables
-
- Closed
-
-
MDEV-23353 Qualified data types in SP
-
- Open
-
-
MDEV-31250 ROW variables do not get assigned from subselects
-
- Closed
-
-
MDEV-32380 Array data type for stored routnes
-
- Stalled
-
Activity
Field | Original Value | New Value |
---|---|---|
Description |
The task This task will additionally allow to use {{ROW}} in stored function return data type. {code:sql} DROP FUNCTION IF EXISTS f1; DELIMITER $$ CREATE FUNCTION f1(a INT, b VARCHAR(32) RETURNS ROW(a INT, b VARCHAR(32)) BEGIN RETURN ROW(a,b); END; $$ DELIMITER ; SELECT f1(1,'b1') = ROW(1,'b1'); SELECT f1(1,'b1').a; {code} The last query will probably need serious grammar change to support field names after parentheses, e.g. {{f1(1,'b1').a}}. |
The task This task will additionally allow to use {{ROW}} in stored function return data type. {code:sql} DROP FUNCTION IF EXISTS f1; DELIMITER $$ CREATE FUNCTION f1(a INT, b VARCHAR(32)) RETURNS ROW(a INT, b VARCHAR(32)) BEGIN RETURN ROW(a,b); END; $$ DELIMITER ; SELECT f1(1,'b1') = ROW(1,'b1'); SELECT f1(1,'b1').a; {code} The last query will probably need serious grammar change to support field names after parentheses, e.g. {{f1(1,'b1').a}}. |
Description |
The task This task will additionally allow to use {{ROW}} in stored function return data type. {code:sql} DROP FUNCTION IF EXISTS f1; DELIMITER $$ CREATE FUNCTION f1(a INT, b VARCHAR(32)) RETURNS ROW(a INT, b VARCHAR(32)) BEGIN RETURN ROW(a,b); END; $$ DELIMITER ; SELECT f1(1,'b1') = ROW(1,'b1'); SELECT f1(1,'b1').a; {code} The last query will probably need serious grammar change to support field names after parentheses, e.g. {{f1(1,'b1').a}}. |
The task This task will additionally allow to use {{ROW}} in stored function return data type. {code:sql} DROP FUNCTION IF EXISTS f1; DELIMITER $$ CREATE FUNCTION f1(a INT, b VARCHAR(32)) RETURNS ROW(a INT, b VARCHAR(32)) BEGIN RETURN ROW(a,b); END; $$ DELIMITER ; SELECT f1(1,'b1') = ROW(1,'b1'); SELECT f1(1,'b1').a; {code} The last query will probably need serious grammar changes to support field names after parentheses, e.g. {{f1(1,'b1').a}}. |
Link |
This issue is blocked by |
Link | This issue is blocked by MDEV-12307 [ MDEV-12307 ] |
Link | This issue blocks MDEV-12308 [ MDEV-12308 ] |
Fix Version/s | 10.3 [ 22126 ] |
Assignee | Alexander Barkov [ bar ] |
Workflow | MariaDB v3 [ 79959 ] | MariaDB v4 [ 140248 ] |
Link |
This issue relates to |
Link | This issue relates to MDEV-23353 [ MDEV-23353 ] |
Link | This issue relates to MDEV-32380 [ MDEV-32380 ] |
Assignee | Alexander Barkov [ bar ] | |
Status | Open [ 1 ] | Needs Feedback [ 10501 ] |
Fix Version/s | N/A [ 14700 ] | |
Resolution | Incomplete [ 4 ] | |
Status | Needs Feedback [ 10501 ] | Closed [ 6 ] |
Resolution | Incomplete [ 4 ] | |
Status | Closed [ 6 ] | Stalled [ 10000 ] |
Status | Stalled [ 10000 ] | In Progress [ 3 ] |
Priority | Major [ 3 ] | Critical [ 2 ] |
Link | This issue relates to MDEV-12307 [ MDEV-12307 ] |
Link | This issue is blocked by MDEV-12307 [ MDEV-12307 ] |
Fix Version/s | 11.4 [ 29301 ] | |
Fix Version/s | N/A [ 14700 ] |
Assignee | Alexander Barkov [ bar ] | Sergei Golubchik [ serg ] |
Status | In Progress [ 3 ] | In Review [ 10002 ] |
Description |
The task This task will additionally allow to use {{ROW}} in stored function return data type. {code:sql} DROP FUNCTION IF EXISTS f1; DELIMITER $$ CREATE FUNCTION f1(a INT, b VARCHAR(32)) RETURNS ROW(a INT, b VARCHAR(32)) BEGIN RETURN ROW(a,b); END; $$ DELIMITER ; SELECT f1(1,'b1') = ROW(1,'b1'); SELECT f1(1,'b1').a; {code} The last query will probably need serious grammar changes to support field names after parentheses, e.g. {{f1(1,'b1').a}}. |
The task This task will additionally allow to use {{ROW}} in stored function return data type. {code:sql} DROP FUNCTION IF EXISTS f1; DELIMITER $$ CREATE FUNCTION f1(a INT, b VARCHAR(32)) RETURNS ROW(a INT, b VARCHAR(32)) BEGIN RETURN ROW(a,b); END; $$ DELIMITER ; SELECT f1(1,'b1') = ROW(1,'b1'); {code} |
Fix Version/s | 11.5 [ 29506 ] | |
Fix Version/s | 11.4 [ 29301 ] |
Comment |
[ Please also allow all stored routines to accept the FULL ROW type, not just the individual row fields.
Example: DROP FUNCTION IF EXISTS f2; DELIMITER $$ CREATE FUNCTION f2(rin ROW(a INT, b VARCHAR(32)) RETURNS ROW(a INT, b VARCHAR(32)) BEGIN RETURN ROW(rin.a, rin.b); END; $$ DELIMITER ; from within another stored routine: DECLARE rtest ROW(a INT, b VARCHAR(32)); rtest.a := 1; rtest.b := 'b1'; SELECT f2(rtest) = ROW(1,'b1'); This will allow functions/procedures intended to be called only by other functions/procedures to accept one row parameter instead of many individual parameters. ] |
Link |
This issue relates to |
Link | This issue relates to MDEV-11210 [ MDEV-11210 ] |
Description |
The task This task will additionally allow to use {{ROW}} in stored function return data type. {code:sql} DROP FUNCTION IF EXISTS f1; DELIMITER $$ CREATE FUNCTION f1(a INT, b VARCHAR(32)) RETURNS ROW(a INT, b VARCHAR(32)) BEGIN RETURN ROW(a,b); END; $$ DELIMITER ; SELECT f1(1,'b1') = ROW(1,'b1'); {code} |
The task This task will additionally allow to use {{ROW}} in stored function return data type. {code:sql} DROP FUNCTION IF EXISTS f1; DELIMITER $$ CREATE FUNCTION f1(a INT, b VARCHAR(32)) RETURNS ROW(a INT, b VARCHAR(32)) BEGIN RETURN ROW(a,b); END; $$ DELIMITER ; SELECT f1(1,'b1') = ROW(1,'b1'); {code} Anchored row data types should also be supported: {code:sql} DROP FUNCTION IF EXISTS f1; DELIMITER $$ CREATE FUNCTION f1(a INT, b VARCHAR(32)) RETURNS ROW TYPE OF t1 BEGIN RETURN ROW(a,b); END; $$ DELIMITER ; SELECT f1(1,'b1') = ROW(1,'b1'); {code} |
Fix Version/s | 11.6 [ 29515 ] | |
Fix Version/s | 11.5 [ 29506 ] |
Fix Version/s | 11.7 [ 29815 ] | |
Fix Version/s | 11.6 [ 29515 ] | |
Priority | Critical [ 2 ] | Major [ 3 ] |
Priority | Major [ 3 ] | Critical [ 2 ] |
Assignee | Sergei Golubchik [ serg ] | Alexander Barkov [ bar ] |
Status | In Review [ 10002 ] | Stalled [ 10000 ] |
Link | This issue blocks MDEV-32380 [ MDEV-32380 ] |
Assignee | Alexander Barkov [ bar ] | Sergei Golubchik [ serg ] |
Status | Stalled [ 10000 ] | In Review [ 10002 ] |
Assignee | Sergei Golubchik [ serg ] | Alexander Barkov [ bar ] |
Status | In Review [ 10002 ] | Stalled [ 10000 ] |
Assignee | Alexander Barkov [ bar ] | Elena Stepanova [ elenst ] |
Status | Stalled [ 10000 ] | In Testing [ 10301 ] |
Assignee | Elena Stepanova [ elenst ] | Ramesh Sivaraman [ JIRAUSER48189 ] |
Link | This issue is part of TODO-4907 [ TODO-4907 ] |
Labels | Preview_11.7 |
Link |
This issue causes |
Assignee | Ramesh Sivaraman [ JIRAUSER48189 ] | Alexander Barkov [ bar ] |
Status | In Testing [ 10301 ] | Stalled [ 10000 ] |
Fix Version/s | 11.7.1 [ 29913 ] | |
Fix Version/s | 11.7 [ 29815 ] | |
Resolution | Fixed [ 1 ] | |
Status | Stalled [ 10000 ] | Closed [ 6 ] |
Link |
This issue causes |