diff options
author | Sergey Glukhov <gluh@mysql.com> | 2008-08-20 14:49:28 +0500 |
---|---|---|
committer | Sergey Glukhov <gluh@mysql.com> | 2008-08-20 14:49:28 +0500 |
commit | de73b729543f40f46463c0134e380057ee4adb27 (patch) | |
tree | cfab6f009ae2b2b34b94467246a6fd6ca9fbe055 /sql | |
parent | 40bd9a42183146253018c50fe213ba60c77b4dc1 (diff) | |
download | mariadb-git-de73b729543f40f46463c0134e380057ee4adb27.tar.gz |
Bug#38291 memory corruption and server crash with view/sp/function
Send_field.org_col_name has broken value on secondary execution.
It happens when result field is created from the field which belongs to view
due to forgotten assignment of some Send_field attributes.
The fix:
set Send_field.org_col_name,org_table_name with correct value during Send_field intialization.
mysql-test/r/metadata.result:
result fix
The result file was changed because now forgotten attributes are properly set.
mysql-test/r/sp.result:
test result
mysql-test/t/sp.test:
test case
sql/item.cc:
Send_field.org_col_name has broken value on secondary execution.
It happens when result field is created from the field which belongs to view
due to forgotten assignment of some Send_field attributes.
The fix:
set Send_field.org_col_name,org_table_name with correct value during Send_field intialization.
tests/mysql_client_test.c:
test case fix
The test was changed because now forgotten attributes are properly set.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/item.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sql/item.cc b/sql/item.cc index a5c88f55487..100ec8b5cfb 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -5764,6 +5764,10 @@ void Item_ref::make_field(Send_field *field) field->table_name= table_name; if (db_name) field->db_name= db_name; + if (orig_field_name) + field->org_col_name= orig_field_name; + if (orig_table_name) + field->org_table_name= orig_table_name; } |