diff options
author | unknown <konstantin@mysql.com> | 2005-03-01 14:54:47 +0300 |
---|---|---|
committer | unknown <konstantin@mysql.com> | 2005-03-01 14:54:47 +0300 |
commit | 679088a2ae1353f14a970182fa64f58170e81b72 (patch) | |
tree | 3bb2c19d226422f53248eb1c55ea928fbf6512f9 /sql/sql_delete.cc | |
parent | ad1c1e070cb446d26ab579769473184e5a09f9df (diff) | |
download | mariadb-git-679088a2ae1353f14a970182fa64f58170e81b72.tar.gz |
Fix for Bug#8801: the bug was in co-operation of Item_ref
with view-merge algorithm and prepared statements: in case when some
Item_ref pointing to a view column was substituted with a reference
pointing to the view expression for that column
Item_ref::ref member of the original Item_ref was left pointing to
not_found_item (0x1).
As we currently perform expression substition part of the view-merge
algorithm per each execution of a prepared statement or stored procedure,
we need to preserve original Item_ref objects usable.
sql/item.cc:
Set member Item_ref::ref to null whenever the item itself is substituted
with another item.
This is necessary if we want to re-execute a prepared statement next time.
Additionally Item_ref::fix_fields() implementation was cleaned up
(by Monty and myself) to reduce the number of if branches. This
doesn't change the logic of this function.
Diffstat (limited to 'sql/sql_delete.cc')
0 files changed, 0 insertions, 0 deletions