Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.3(EOL), 10.4(EOL)
-
None
Description
CREATE SCHEMA IF NOT EXISTS common_schema; |
DELIMITER $$
|
DROP FUNCTION IF EXISTS common_schema.add_ints $$ |
CREATE FUNCTION common_schema.add_ints(int_1 INT, int_2 INT) RETURNS INT NO SQL |
BEGIN |
RETURN int_1 + int_2; |
END $$ |
DROP FUNCTION IF EXISTS common_schema.sum_ints $$ |
CREATE AGGREGATE FUNCTION common_schema.sum_ints(int_val INT) RETURNS INT |
BEGIN |
DECLARE result INT DEFAULT 0; |
DECLARE CONTINUE HANDLER FOR NOT FOUND RETURN result; |
LOOP FETCH GROUP NEXT ROW; |
SET result = common_schema.add_ints(result, int_val); |
END LOOP; |
END $$ |
|
DELIMITER ;
|
MariaDB [test]> USE common_schema;
|
Database changed
|
MariaDB [common_schema]> SELECT common_schema.sum_ints(seq)
|
-> FROM (SELECT 1 seq UNION ALL SELECT 2) t;
|
+-----------------------------+
|
| common_schema.sum_ints(seq) |
|
+-----------------------------+
|
| 3 |
|
+-----------------------------+
|
1 row in set (0.009 sec)
|
MariaDB [test]> USE another_schema;
|
Database changed
|
MariaDB [another_schema]> SELECT common_schema.sum_ints(seq) FROM (SELECT 1 seq UNION ALL SELECT 2) t;
|
+-----------------------------+
|
| common_schema.sum_ints(seq) |
|
+-----------------------------+
|
| NULL |
|
+-----------------------------+
|
1 row in set (0.028 sec)
|
On changing the schema the custom aggregate function returns NULL , which is incorrect
Attachments
Issue Links
- duplicates
-
MDEV-21763 Stored Aggregate Functions return NULL cross database.
-
- Closed
-
Activity
Field | Original Value | New Value |
---|---|---|
Description |
{code:sql}
CREATE SCHEMA IF NOT EXISTS common_schema; DELIMITER $$ DROP FUNCTION IF EXISTS common_schema.add_ints $$ CREATE FUNCTION common_schema.add_ints(int_1 INT, int_2 INT) RETURNS INT NO SQL BEGIN RETURN int_1 + int_2; END $$ DROP FUNCTION IF EXISTS common_schema.sum_ints $$ CREATE AGGREGATE FUNCTION common_schema.sum_ints(int_val INT) RETURNS INT BEGIN DECLARE result INT DEFAULT 0; DECLARE CONTINUE HANDLER FOR NOT FOUND RETURN result; LOOP FETCH GROUP NEXT ROW; SET result = common_schema.add_ints(result, int_val); END LOOP; END $$ DELIMITER ; {code} {noformat} MariaDB [test]> USE common_schema; Database changed MariaDB [common_schema]> SELECT common_schema.sum_ints(seq) -> FROM (SELECT 1 seq UNION ALL SELECT 2) t; +-----------------------------+ | common_schema.sum_ints(seq) | +-----------------------------+ | 3 | +-----------------------------+ 1 row in set (0.009 sec) {noformat} {noformat} MariaDB [test]> USE another_schema; Database changed MariaDB [another_schema]> SELECT common_schema.sum_ints(seq) FROM (SELECT 1 seq UNION ALL SELECT 2) t; +-----------------------------+ | common_schema.sum_ints(seq) | +-----------------------------+ | NULL | +-----------------------------+ 1 row in set (0.028 sec) {noformat} On changing the schema the custom aggregate function returns NULL , which is incorrect |
Status | Open [ 1 ] | In Progress [ 3 ] |
Assignee | Varun Gupta [ varun ] | Vicentiu Ciorbaru [ cvicentiu ] |
Status | In Progress [ 3 ] | In Review [ 10002 ] |
Link |
This issue duplicates |
Assignee | Vicențiu Ciorbaru [ cvicentiu ] | Varun Gupta [ varun ] |
Assignee | Varun Gupta [ varun ] | Oleksandr Byelkin [ sanja ] |
Status | In Review [ 10002 ] | Stalled [ 10000 ] |
Assignee | Oleksandr Byelkin [ sanja ] | Varun Gupta [ varun ] |
Fix Version/s | 10.3.24 [ 24306 ] | |
Fix Version/s | 10.4.14 [ 24305 ] | |
Fix Version/s | 10.5.4 [ 24264 ] | |
Fix Version/s | 10.3 [ 22126 ] | |
Fix Version/s | 10.4 [ 22408 ] | |
Resolution | Fixed [ 1 ] | |
Status | Stalled [ 10000 ] | Closed [ 6 ] |
Workflow | MariaDB v3 [ 91427 ] | MariaDB v4 [ 155420 ] |