diff options
author | Sergei Golubchik <serg@mariadb.org> | 2018-04-11 16:23:49 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2018-05-10 12:48:23 +0200 |
commit | 88a0bb83dfa1746571c99503f1cfd586f63e9a17 (patch) | |
tree | 53d85af13bd9fac14e20cf098c159ae8ce4a87a0 /sql/sql_partition.cc | |
parent | 8ba0eea65cd7cc02314a9e1ab954808d16461888 (diff) | |
download | mariadb-git-88a0bb83dfa1746571c99503f1cfd586f63e9a17.tar.gz |
MDEV-15626 Assertion on update virtual column in partitioned table
table.cc:
virtual columns must be computed for INSERT, if they're part
of the partitioning expression.
this change broke gcol.gcol_partition_innodb.
fix CHECK TABLE for partitioned tables and vcols.
sql_partition.cc:
mark prerequisite base columns in full_part_field_set
ha_partition.cc
initialize vcol_set accordingly
Diffstat (limited to 'sql/sql_partition.cc')
-rw-r--r-- | sql/sql_partition.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index 536c436475f..4c91f781c2e 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -614,9 +614,16 @@ static bool create_full_part_field_array(THD *thd, TABLE *table, full_part_field_array may be NULL if storage engine supports native partitioning. */ + table->vcol_set= table->read_set= &part_info->full_part_field_set; if ((ptr= part_info->full_part_field_array)) for (; *ptr; ptr++) - bitmap_set_bit(&part_info->full_part_field_set, (*ptr)->field_index); + { + if ((*ptr)->vcol_info) + table->mark_virtual_col(*ptr); + else + bitmap_fast_test_and_set(table->read_set, (*ptr)->field_index); + } + table->default_column_bitmaps(); end: DBUG_RETURN(result); |