mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 13:02:28 +01:00
0ff8f60b45
according to the standard. The idea is to use Field-classes to implement stored routines variables. Also, we should provide facade to Item-hierarchy by Item_field class (it is necessary, since SRVs take part in expressions). The patch fixes the following bugs: - BUG#8702: Stored Procedures: No Error/Warning shown for inappropriate data type matching; - BUG#8768: Functions: For any unsigned data type, -ve values can be passed and returned; - BUG#8769: Functions: For Int datatypes, out of range values can be passed and returned; - BUG#9078: STORED PROCDURE: Decimal digits are not displayed when we use DECIMAL datatype; - BUG#9572: Stored procedures: variable type declarations ignored; - BUG#12903: upper function does not work inside a function; - BUG#13705: parameters to stored procedures are not verified; - BUG#13808: ENUM type stored procedure parameter accepts non-enumerated data; - BUG#13909: Varchar Stored Procedure Parameter always BINARY string (ignores CHARACTER SET); - BUG#14161: Stored procedure cannot retrieve bigint unsigned; - BUG#14188: BINARY variables have no 0x00 padding; - BUG#15148: Stored procedure variables accept non-scalar values;
107 lines
2 KiB
Text
107 lines
2 KiB
Text
DROP TABLE IF EXISTS t1, t2;
|
|
CREATE TABLE t1 (id INTEGER);
|
|
CREATE TABLE t2 (id INTEGER);
|
|
INSERT INTO t1 (id) VALUES (1), (1), (1),(1);
|
|
INSERT INTO t1 (id) SELECT id FROM t1;
|
|
/* 8 */
|
|
INSERT INTO t1 (id) SELECT id FROM t1;
|
|
/* 12 */
|
|
INSERT INTO t1 (id) SELECT id FROM t1;
|
|
/* 16 */
|
|
INSERT INTO t1 (id) SELECT id FROM t1;
|
|
/* 20 */
|
|
INSERT INTO t1 (id) SELECT id FROM t1;
|
|
/* 24 */
|
|
INSERT INTO t1 SELECT id+1 FROM t1;
|
|
INSERT INTO t1 SELECT id+2 FROM t1;
|
|
INSERT INTO t1 SELECT id+4 FROM t1;
|
|
INSERT INTO t1 SELECT id+8 FROM t1;
|
|
INSERT INTO t1 SELECT id+16 FROM t1;
|
|
INSERT INTO t1 SELECT id+32 FROM t1;
|
|
INSERT INTO t1 SELECT id+64 FROM t1;
|
|
INSERT INTO t1 SELECT id+128 FROM t1;
|
|
INSERT INTO t1 SELECT id+256 FROM t1;
|
|
INSERT INTO t1 SELECT id+512 FROM t1;
|
|
SELECT AVG(DISTINCT id) FROM t1 GROUP BY id % 13;
|
|
AVG(DISTINCT id)
|
|
513.5000
|
|
508.0000
|
|
509.0000
|
|
510.0000
|
|
511.0000
|
|
512.0000
|
|
513.0000
|
|
514.0000
|
|
515.0000
|
|
516.0000
|
|
517.0000
|
|
511.5000
|
|
512.5000
|
|
SELECT SUM(DISTINCT id)/COUNT(DISTINCT id) FROM t1 GROUP BY id % 13;
|
|
SUM(DISTINCT id)/COUNT(DISTINCT id)
|
|
513.5000
|
|
508.0000
|
|
509.0000
|
|
510.0000
|
|
511.0000
|
|
512.0000
|
|
513.0000
|
|
514.0000
|
|
515.0000
|
|
516.0000
|
|
517.0000
|
|
511.5000
|
|
512.5000
|
|
INSERT INTO t1 SELECT id+1024 FROM t1;
|
|
INSERT INTO t1 SELECT id+2048 FROM t1;
|
|
INSERT INTO t1 SELECT id+4096 FROM t1;
|
|
INSERT INTO t1 SELECT id+8192 FROM t1;
|
|
INSERT INTO t2 SELECT id FROM t1 ORDER BY id*rand();
|
|
SELECT SUM(DISTINCT id) sm FROM t1;
|
|
sm
|
|
134225920
|
|
SELECT SUM(DISTINCT id) sm FROM t2;
|
|
sm
|
|
134225920
|
|
SELECT SUM(DISTINCT id) sm FROM t1 group by id % 13;
|
|
sm
|
|
10327590
|
|
10328851
|
|
10330112
|
|
10331373
|
|
10332634
|
|
10317510
|
|
10318770
|
|
10320030
|
|
10321290
|
|
10322550
|
|
10323810
|
|
10325070
|
|
10326330
|
|
SET max_heap_table_size=16384;
|
|
SHOW variables LIKE 'max_heap_table_size';
|
|
Variable_name Value
|
|
max_heap_table_size 16384
|
|
SELECT SUM(DISTINCT id) sm FROM t1;
|
|
sm
|
|
134225920
|
|
SELECT SUM(DISTINCT id) sm FROM t2;
|
|
sm
|
|
134225920
|
|
SELECT SUM(DISTINCT id) sm FROM t1 GROUP BY id % 13;
|
|
sm
|
|
10327590
|
|
10328851
|
|
10330112
|
|
10331373
|
|
10332634
|
|
10317510
|
|
10318770
|
|
10320030
|
|
10321290
|
|
10322550
|
|
10323810
|
|
10325070
|
|
10326330
|
|
DROP TABLE t1;
|
|
DROP TABLE t2;
|