summaryrefslogtreecommitdiff
path: root/mysql-test/suite/innodb/r/instant_alter_debug.result
diff options
context:
space:
mode:
authorVarun Gupta <varunraiko1803@gmail.com>2017-11-22 21:09:24 +0200
committerVicențiu Ciorbaru <vicentiu@mariadb.org>2017-12-04 13:22:29 +0200
commit60c446584c614f19f9adc9cc38a31954359009d5 (patch)
tree1fa953e7609bfb1d18a5d09891492c25f6dc3730 /mysql-test/suite/innodb/r/instant_alter_debug.result
parent7448b01bb5a78137786dde64a32c2d1c1098e89d (diff)
downloadmariadb-git-60c446584c614f19f9adc9cc38a31954359009d5.tar.gz
MDEV-7773: Aggregate stored functions
This commit implements aggregate stored functions. The basic idea behind the feature is: * Implement a special instruction FETCH GROUP NEXT ROW that will pause the execution of the stored function. When the instruction is reached, execution of the initial query resumes "as if" the function returned. This gives the server the opportunity to advance to the next row in the result set. * Stored aggregates behave like regular aggregate functions. The implementation of thus resides in the class Item_sum_sp. Because it is an aggregate function, for each new row in the group, the Item_sum_sp::add() method will be called. This is when execution resumes and the function does another iteration to "add" one extra element to the final result. * When the end of group is reached, val_xxx() method will be called for the item. This case is handled by another execute step for the stored function, only with a special flag to force a call to the return handler. See Item_sum_sp::execute() for details. To allow this pause and resume semantic, we must preserve the function context across executions. This is stored in Item_sp::sp_query_arena only for aggregate stored functions, but has no impact for regular functions. We also enforce aggregate functions to include the "FETCH GROUP NEXT ROW" instruction. Signed-off-by: Vicențiu Ciorbaru <vicentiu@mariadb.org>
Diffstat (limited to 'mysql-test/suite/innodb/r/instant_alter_debug.result')
-rw-r--r--mysql-test/suite/innodb/r/instant_alter_debug.result2
1 files changed, 1 insertions, 1 deletions
diff --git a/mysql-test/suite/innodb/r/instant_alter_debug.result b/mysql-test/suite/innodb/r/instant_alter_debug.result
index b1407aad1f3..99a263ae95f 100644
--- a/mysql-test/suite/innodb/r/instant_alter_debug.result
+++ b/mysql-test/suite/innodb/r/instant_alter_debug.result
@@ -35,7 +35,7 @@ ALTER TABLE t4 ADD COLUMN b INT;
SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
LEFT JOIN t4 ON (NUMERIC_SCALE = pk);
COUNT(*)
-1734
+1735
SET DEBUG_SYNC='innodb_inplace_alter_table_enter SIGNAL enter WAIT_FOR delete';
ALTER TABLE t4 ADD COLUMN c INT;
connect dml,localhost,root,,;