summaryrefslogtreecommitdiff
path: root/sql/sql_join_cache.cc
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2016-10-22 17:33:42 +0200
committerSergei Golubchik <serg@mariadb.org>2016-12-12 20:27:38 +0100
commit0e401bf7bfe4a14609e25c4335b9d4e0619e35ec (patch)
treea79fa574ae3b42d7cb28188cd449f02c28a8ec5d /sql/sql_join_cache.cc
parentb8f51c04d31e15570c53dc2e61258304ee49047a (diff)
downloadmariadb-git-0e401bf7bfe4a14609e25c4335b9d4e0619e35ec.tar.gz
bugfix: move vcol calculations down into the handler
This fixes a bug where handler::read_range_first (for example) needed to compare vcol values that were not calculated yet. As a bonus it fixes few cases where vcols were calculated twice
Diffstat (limited to 'sql/sql_join_cache.cc')
-rw-r--r--sql/sql_join_cache.cc7
1 files changed, 0 insertions, 7 deletions
diff --git a/sql/sql_join_cache.cc b/sql/sql_join_cache.cc
index 7c134aba551..b9d7f660a5a 100644
--- a/sql/sql_join_cache.cc
+++ b/sql/sql_join_cache.cc
@@ -3371,7 +3371,6 @@ int JOIN_TAB_SCAN::next()
int skip_rc;
READ_RECORD *info= &join_tab->read_record;
SQL_SELECT *select= join_tab->cache_select;
- TABLE *table= join_tab->table;
THD *thd= join->thd;
if (is_first_record)
@@ -3382,8 +3381,6 @@ int JOIN_TAB_SCAN::next()
if (!err)
{
join_tab->tracker->r_rows++;
- if (table->vfield)
- table->update_virtual_fields(VCOL_UPDATE_FOR_READ);
}
while (!err && select && (skip_rc= select->skip_record(thd)) <= 0)
@@ -3398,8 +3395,6 @@ int JOIN_TAB_SCAN::next()
if (!err)
{
join_tab->tracker->r_rows++;
- if (table->vfield)
- table->update_virtual_fields(VCOL_UPDATE_FOR_READ);
}
}
@@ -3923,8 +3918,6 @@ int JOIN_TAB_SCAN_MRR::next()
DBUG_ASSERT(cache->buff <= (uchar *) (*ptr) &&
(uchar *) (*ptr) <= cache->end_pos);
*/
- if (join_tab->table->vfield)
- join_tab->table->update_virtual_fields(VCOL_UPDATE_FOR_READ);
}
return rc;
}