3776 Hery Ramilison 2012-03-29
Starting 5.5.23 build
modified:
VERSION
3775 Tor Didriksen 2012-03-29 {clone-5.5.23-build}
Patch for Bug#13805127: Stored program cache produces wrong result in same THD.
Background:
- as described in MySQL Internals Prepared Stored
(http://forge.mysql.com/wiki/MySQL_Internals_Prepared_Stored),
the Optimizer sometimes does destructive changes to the parsed
LEX-object (Item-tree), which makes it impossible to re-use
that tree for PS/SP re-execution.
- in order to be able to re-use the Item-tree, the destructive
changes are remembered and rolled back after the statement execution.
The problem, discovered by this bug, was that the objects representing
GROUP-BY clause did not restored after query execution. So, the GROUP-BY
part of the statement could not be properly re-initialized for re-execution
after destructive changes.
Those objects do not take part in the Item-tree, so they can not be saved
using the approach for Item-tree.
The fix is as follows:
- introduce a new array in st_select_lex to store the original
ORDER pointers, representing the GROUP-BY clause;
- Initialize this array in fix_prepare_information().
- restore the list of GROUP-BY items in reinit_stmt_before_use().
added:
sql/mem_root_array.h
modified:
mysql-test/r/ps.result
mysql-test/r/sp.result
mysql-test/t/ps.test
mysql-test/t/sp.test
sql/sql_lex.cc
sql/sql_lex.h
sql/sql_prepare.cc
=== modified file 'VERSION'
--- a/VERSION 2012-03-20 21:27:49 +0000
+++ b/VERSION 2012-03-29 18:29:14 +0000
@@ -1,4 +1,4 @@
MYSQL_VERSION_MAJOR=5
MYSQL_VERSION_MINOR=5
-MYSQL_VERSION_PATCH=23
+MYSQL_VERSION_PATCH=24
MYSQL_VERSION_EXTRA=
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-5.5 branch (hery.ramilison:3775 to 3776) | hery.ramilison | 29 Mar |