diff options
author | Sergei Golubchik <serg@mariadb.org> | 2015-11-24 22:20:32 +0100 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2015-11-24 22:21:42 +0100 |
commit | a099686e2e9fdc3d7dc2948cc13165c9e8aaf11d (patch) | |
tree | ee4de670880d865298c544f300896771cf43a32e | |
parent | 13989b36c1b8a5cc38a128ef1a071a7c8365ad9a (diff) | |
download | mariadb-git-a099686e2e9fdc3d7dc2948cc13165c9e8aaf11d.tar.gz |
cleanup: remove Field->stored_in_db, Create_field->stored_in_db
and don't set Create_field->sql_type to MYSQL_TYPE_VIRTUAL
temporarily only to change it again few lines later.
-rw-r--r-- | sql/field.cc | 43 | ||||
-rw-r--r-- | sql/field.h | 25 | ||||
-rw-r--r-- | sql/sp_head.cc | 1 | ||||
-rw-r--r-- | sql/sql_base.cc | 2 | ||||
-rw-r--r-- | sql/sql_insert.cc | 2 | ||||
-rw-r--r-- | sql/sql_load.cc | 2 | ||||
-rw-r--r-- | sql/sql_select.cc | 1 | ||||
-rw-r--r-- | sql/sql_show.cc | 4 | ||||
-rw-r--r-- | sql/sql_table.cc | 44 | ||||
-rw-r--r-- | sql/table.cc | 21 | ||||
-rw-r--r-- | sql/unireg.cc | 2 | ||||
-rw-r--r-- | storage/connect/ha_connect.cc | 9 | ||||
-rw-r--r-- | storage/innobase/handler/ha_innodb.cc | 12 | ||||
-rw-r--r-- | storage/innobase/handler/handler0alter.cc | 22 | ||||
-rw-r--r-- | storage/xtradb/handler/ha_innodb.cc | 12 | ||||
-rw-r--r-- | storage/xtradb/handler/handler0alter.cc | 22 |
16 files changed, 100 insertions, 124 deletions
diff --git a/sql/field.cc b/sql/field.cc index 585abad2cdc..7ac69961024 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -1648,9 +1648,7 @@ Field::Field(uchar *ptr_arg,uint32 length_arg,uchar *null_ptr_arg, part_of_key_not_clustered(0), part_of_sortkey(0), unireg_check(unireg_check_arg), field_length(length_arg), null_bit(null_bit_arg), is_created_from_null_item(FALSE), - read_stats(NULL), collected_stats(0), - vcol_info(0), - stored_in_db(TRUE) + read_stats(NULL), collected_stats(0), vcol_info(0) { flags=null_ptr ? 0: NOT_NULL_FLAG; comment.str= (char*) ""; @@ -9759,7 +9757,6 @@ void Create_field::init_for_tmp_table(enum_field_types sql_type_arg, f_packtype(pack_flag))); vcol_info= 0; create_if_not_exists= FALSE; - stored_in_db= TRUE; DBUG_VOID_RETURN; } @@ -9778,10 +9775,21 @@ bool Create_field::check(THD *thd) ulong max_field_charlength= MAX_FIELD_CHARLENGTH; DBUG_ENTER("Create_field::check"); + /* Initialize data for a computed field */ if (vcol_info) { + DBUG_ASSERT(vcol_info->expr_item); + vcol_info->set_field_type(sql_type); - sql_type= (enum enum_field_types)MYSQL_TYPE_VIRTUAL; + /* + Walk through the Item tree checking if all items are valid + to be part of the virtual column + */ + if (vcol_info->expr_item->walk(&Item::check_vcol_func_processor, 0, NULL)) + { + my_error(ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED, MYF(0), field_name); + DBUG_RETURN(TRUE); + } } if (length > MAX_FIELD_BLOBLENGTH) @@ -9857,30 +9865,6 @@ bool Create_field::check(THD *thd) DBUG_RETURN(1); } - /* Initialize data for a computed field */ - if (sql_type == MYSQL_TYPE_VIRTUAL) - { - DBUG_ASSERT(vcol_info && vcol_info->expr_item); - stored_in_db= vcol_info->is_stored(); - /* - Walk through the Item tree checking if all items are valid - to be part of the virtual column - */ - if (vcol_info->expr_item->walk(&Item::check_vcol_func_processor, 0, NULL)) - { - my_error(ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED, MYF(0), field_name); - DBUG_RETURN(TRUE); - } - - /* - Make a field created for the real type. - Note that regular and computed fields differ from each other only by - Field::vcol_info. It is is always NULL for a column that is not - computed. - */ - sql_type= vcol_info->get_real_type(); - } - sign_len= flags & UNSIGNED_FLAG ? 0 : 1; switch (sql_type) { @@ -10456,7 +10440,6 @@ Create_field::Create_field(THD *thd, Field *old_field, Field *orig_field) decimals= old_field->decimals(); vcol_info= old_field->vcol_info; create_if_not_exists= FALSE; - stored_in_db= old_field->stored_in_db; option_list= old_field->option_list; option_struct= old_field->option_struct; diff --git a/sql/field.h b/sql/field.h index cb7f94b6437..bd08d558170 100644 --- a/sql/field.h +++ b/sql/field.h @@ -555,12 +555,12 @@ private: when a Create_field object is created/initialized. */ enum_field_types field_type; /* Real field type*/ - /* Flag indicating that the field is physically stored in the database */ - bool stored_in_db; /* Flag indicating that the field used in a partitioning expression */ bool in_partitioning_expr; public: + /* Flag indicating that the field is physically stored in the database */ + bool stored_in_db; /* The expression to compute the value of the virtual column */ Item *expr_item; /* Text representation of the defining expression */ @@ -568,7 +568,7 @@ public: Virtual_column_info() : field_type((enum enum_field_types)MYSQL_TYPE_VIRTUAL), - stored_in_db(FALSE), in_partitioning_expr(FALSE), + in_partitioning_expr(FALSE), stored_in_db(FALSE), expr_item(NULL) { expr_str.str= NULL; @@ -713,12 +713,6 @@ public: can be computed from other fields. */ Virtual_column_info *vcol_info; - /* - Flag indicating that the field is physically stored in tables - rather than just computed from other fields. - As of now, FALSE can be set only for computed virtual columns. - */ - bool stored_in_db; Field(uchar *ptr_arg,uint32 length_arg,uchar *null_ptr_arg, uchar null_bit_arg, utype unireg_check_arg, @@ -1048,6 +1042,8 @@ public: null_bit= p_null_bit; } + bool stored_in_db() const { return !vcol_info || vcol_info->stored_in_db; } + inline THD *get_thd() const { return likely(table) ? table->in_use : current_thd; } @@ -3467,20 +3463,13 @@ public: can be computed from other fields. */ Virtual_column_info *vcol_info; - /* - Flag indicating that the field is physically stored in tables - rather than just computed from other fields. - As of now, FALSE can be set only for computed virtual columns. - */ - bool stored_in_db; Create_field() :change(0), after(0), comment(null_lex_str), def(0), on_update(0), sql_type(MYSQL_TYPE_NULL), flags(0), pack_length(0), key_length(0), interval(0), srid(0), geom_type(Field::GEOM_GEOMETRY), field(0), option_list(NULL), option_struct(NULL), - create_if_not_exists(false), vcol_info(0), - stored_in_db(true) + create_if_not_exists(false), vcol_info(0) { interval_list.empty(); } @@ -3498,6 +3487,8 @@ public: bool check(THD *thd); + bool stored_in_db() const { return !vcol_info || vcol_info->stored_in_db; } + ha_storage_media field_storage_type() const { return (ha_storage_media) diff --git a/sql/sp_head.cc b/sql/sp_head.cc index 01e649bb746..30786f8a271 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -886,7 +886,6 @@ sp_head::create_result_field(uint field_max_length, const char *field_name, field_name ? field_name : (const char *) m_name.str); field->vcol_info= m_return_field_def.vcol_info; - field->stored_in_db= m_return_field_def.stored_in_db; if (field) field->init(table); diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 90ba0451e30..e2339e1c537 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -8789,7 +8789,7 @@ fill_record(THD *thd, TABLE *table_arg, List<Item> &fields, List<Item> &values, ER_THD(thd, ER_WARNING_NON_DEFAULT_VALUE_FOR_VIRTUAL_COLUMN), rfield->field_name, table->s->table_name.str); } - if ((!rfield->vcol_info || rfield->stored_in_db) && + if (rfield->stored_in_db() && (value->save_in_field(rfield, 0)) < 0 && !ignore_errors) { my_message(ER_UNKNOWN_ERROR, ER_THD(thd, ER_UNKNOWN_ERROR), MYF(0)); diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index 7a0a114971d..aa2cae59705 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -1501,7 +1501,7 @@ bool mysql_prepare_insert(THD *thd, TABLE_LIST *table_list, { for (Field **vfield_ptr= table->vfield; *vfield_ptr; vfield_ptr++) { - if ((*vfield_ptr)->stored_in_db) + if ((*vfield_ptr)->vcol_info->stored_in_db) { thd->lex->unit.insert_table_with_stored_vcol= table; break; diff --git a/sql/sql_load.cc b/sql/sql_load.cc index 9cf82c1c6d0..b2180d4997a 100644 --- a/sql/sql_load.cc +++ b/sql/sql_load.cc @@ -303,7 +303,7 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list, { for (Field **vfield_ptr= table->vfield; *vfield_ptr; vfield_ptr++) { - if ((*vfield_ptr)->stored_in_db) + if ((*vfield_ptr)->vcol_info->stored_in_db) { thd->lex->unit.insert_table_with_stored_vcol= table; break; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 51abcd9cf34..72804b27d58 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -15678,7 +15678,6 @@ Field *create_tmp_field_from_field(THD *thd, Field *org_field, else if (org_field->type() == FIELD_TYPE_DOUBLE) ((Field_double *) new_field)->not_fixed= TRUE; new_field->vcol_info= 0; - new_field->stored_in_db= TRUE; new_field->cond_selectivity= 1.0; new_field->next_equal_field= NULL; new_field->option_list= NULL; diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 10d8ed23a46..6549c245a09 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -1844,7 +1844,7 @@ int show_create_table(THD *thd, TABLE_LIST *table_list, String *packet, field->vcol_info->expr_str.length, system_charset_info); packet->append(STRING_WITH_LEN(")")); - if (field->stored_in_db) + if (field->vcol_info->stored_in_db) packet->append(STRING_WITH_LEN(" PERSISTENT")); else packet->append(STRING_WITH_LEN(" VIRTUAL")); @@ -5344,7 +5344,7 @@ static int get_schema_column_record(THD *thd, TABLE_LIST *tables, table->field[17]->store(type.ptr(), type.length(), cs); if (field->vcol_info) { - if (field->stored_in_db) + if (field->vcol_info->stored_in_db) table->field[17]->store(STRING_WITH_LEN("PERSISTENT"), cs); else table->field[17]->store(STRING_WITH_LEN("VIRTUAL"), cs); diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 8fa24b49d88..98ce5b5ea83 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -3466,7 +3466,6 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, sql_field->flags= dup_field->flags; sql_field->interval= dup_field->interval; sql_field->vcol_info= dup_field->vcol_info; - sql_field->stored_in_db= dup_field->stored_in_db; it2.remove(); // Remove first (create) definition select_field_pos--; break; @@ -3508,14 +3507,14 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, (virtual fields) and update their offset later (see the next loop). */ - if (sql_field->stored_in_db) + if (sql_field->stored_in_db()) record_offset+= sql_field->pack_length; } /* Update virtual fields' offset*/ it.rewind(); while ((sql_field=it++)) { - if (!sql_field->stored_in_db) + if (!sql_field->stored_in_db()) { sql_field->offset= record_offset; record_offset+= sql_field->pack_length; @@ -3868,7 +3867,7 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, } } #endif - if (!sql_field->stored_in_db) + if (!sql_field->stored_in_db()) { /* Key fields must always be physically stored. */ my_error(ER_KEY_BASED_ON_GENERATED_VIRTUAL_COLUMN, MYF(0)); @@ -6240,18 +6239,6 @@ static bool fill_alter_inplace_info(THD *thd, ha_alter_info->handler_flags|= Alter_inplace_info::ALTER_COLUMN_TYPE; } - /* - Check if the altered column is computed and either - is stored or is used in the partitioning expression. - TODO: Mark such a column with an alter flag only if - the defining expression has changed. - */ - if (field->vcol_info && - (field->stored_in_db || field->vcol_info->is_in_partitioning_expr())) - { - ha_alter_info->handler_flags|= Alter_inplace_info::ALTER_COLUMN_VCOL; - } - /* Check if field was renamed */ if (my_strcasecmp(system_charset_info, field->field_name, new_field->field_name)) @@ -6318,20 +6305,29 @@ static bool fill_alter_inplace_info(THD *thd, new_field_it.init(alter_info->create_list); while ((new_field= new_field_it++)) { - if (! new_field->field) + Virtual_column_info *vcol_info; + if (new_field->field) + vcol_info= new_field->field->vcol_info; + else { + vcol_info= new_field->vcol_info; /* Field is not present in old version of table and therefore was added. Again corresponding storage engine flag should be already set. */ DBUG_ASSERT(ha_alter_info->handler_flags & Alter_inplace_info::ADD_COLUMN); + } - if (new_field->vcol_info && - (new_field->stored_in_db || new_field->vcol_info->is_in_partitioning_expr())) - { - ha_alter_info->handler_flags|= Alter_inplace_info::ALTER_COLUMN_VCOL; - } - break; + /* + Check if the altered column is computed and either + is stored or is used in the partitioning expression. + TODO: Mark such a column with an alter flag only if + the defining expression has changed. + */ + if (vcol_info && + (vcol_info->stored_in_db || vcol_info->is_in_partitioning_expr())) + { + ha_alter_info->handler_flags|= Alter_inplace_info::ALTER_COLUMN_VCOL; } } @@ -7394,7 +7390,7 @@ mysql_prepare_alter_table(THD *thd, TABLE *table, of the list for now. Their positions will be corrected later. */ new_create_list.push_back(def, thd->mem_root); - if (field->stored_in_db != def->stored_in_db) + if (field->stored_in_db() != def->stored_in_db()) { my_error(ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN, MYF(0)); goto err; diff --git a/sql/table.cc b/sql/table.cc index 6dedd2f8acc..ea21e647d30 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -1675,7 +1675,10 @@ int TABLE_SHARE::init_from_binary_frm_image(THD *thd, bool write, reg_field->field_index= i; reg_field->comment=comment; reg_field->vcol_info= vcol_info; - reg_field->stored_in_db= fld_stored_in_db; + if (vcol_info) + reg_field->vcol_info->stored_in_db= fld_stored_in_db; + else + DBUG_ASSERT(fld_stored_in_db == true); if (field_type == MYSQL_TYPE_BIT && !f_bit_as_char(pack_flag)) { null_bits_are_used= 1; @@ -1698,7 +1701,7 @@ int TABLE_SHARE::init_from_binary_frm_image(THD *thd, bool write, if (use_hash && my_hash_insert(&share->name_hash, (uchar*) field_ptr)) goto err; - if (!reg_field->stored_in_db) + if (!reg_field->stored_in_db()) { share->stored_fields--; if (share->stored_rec_length>=recpos) @@ -2526,6 +2529,10 @@ bool unpack_vcol_info_from_frm(THD *thd, /* From now on use vcol_info generated by the parser. */ field->vcol_info= vcol_storage.vcol_info; + /* copy the stored_in_db property, the parser doesn't generate it */ + field->vcol_info->stored_in_db= + table->s->field[field->field_index]->vcol_info->stored_in_db; + /* Validate the Item tree. */ if (fix_vcol_expr(thd, table, field)) { @@ -6169,7 +6176,7 @@ void TABLE::mark_virtual_columns_for_write(bool insert_fl) tmp_vfield= *vfield_ptr; if (bitmap_is_set(write_set, tmp_vfield->field_index)) bitmap_updated= mark_virtual_col(tmp_vfield); - else if (tmp_vfield->stored_in_db) + else if (tmp_vfield->vcol_info->stored_in_db) { bool mark_fl= insert_fl; if (!mark_fl) @@ -6903,13 +6910,15 @@ int update_virtual_fields(THD *thd, TABLE *table, for (vfield_ptr= table->vfield; *vfield_ptr; vfield_ptr++) { vfield= (*vfield_ptr); - DBUG_ASSERT(vfield->vcol_info && vfield->vcol_info->expr_item); + Virtual_column_info *vcol_info= vfield->vcol_info; + DBUG_ASSERT(vcol_info); + DBUG_ASSERT(vcol_info->expr_item); if ((bitmap_is_set(table->vcol_set, vfield->field_index) && - (vcol_update_mode == VCOL_UPDATE_FOR_WRITE || !vfield->stored_in_db)) || + (vcol_update_mode == VCOL_UPDATE_FOR_WRITE || !vcol_info->stored_in_db)) || vcol_update_mode == VCOL_UPDATE_ALL) { /* Compute the actual value of the virtual fields */ - error= vfield->vcol_info->expr_item->save_in_field(vfield, 0); + error= vcol_info->expr_item->save_in_field(vfield, 0); DBUG_PRINT("info", ("field '%s' - updated", vfield->field_name)); } else diff --git a/sql/unireg.cc b/sql/unireg.cc index 66959f400d9..16f7751ad5d 100644 --- a/sql/unireg.cc +++ b/sql/unireg.cc @@ -874,7 +874,7 @@ static bool pack_fields(uchar *buff, List<Create_field> &create_fields, { *buff++= (uchar) (1 + MY_TEST(field->interval)); *buff++= (uchar) field->sql_type; - *buff++= (uchar) field->stored_in_db; + *buff++= (uchar) field->vcol_info->stored_in_db; if (field->interval) *buff++= (uchar) field->interval_id; memcpy(buff, field->vcol_info->expr_str.str, field->vcol_info->expr_str.length); diff --git a/storage/connect/ha_connect.cc b/storage/connect/ha_connect.cc index 0ae50e7f9bc..926a77f618e 100644 --- a/storage/connect/ha_connect.cc +++ b/storage/connect/ha_connect.cc @@ -1448,7 +1448,7 @@ void *ha_connect::GetColumnOption(PGLOBAL g, void *field, PCOLINFO pcf) pcf->Flags |= U_NULLS; // Mark virtual columns as such - if (fp->vcol_info && !fp->stored_in_db) + if (!fp->stored_in_db()) pcf->Flags |= U_VIRTUAL; pcf->Key= 0; // Not used when called from MySQL @@ -1946,7 +1946,7 @@ int ha_connect::MakeRecord(char *buf) for (field= table->field; *field && !rc; field++) { fp= *field; - if (fp->vcol_info && !fp->stored_in_db) + if (!fp->stored_in_db()) continue; // This is a virtual column if (bitmap_is_set(map, fp->field_index) || alter) { @@ -2067,8 +2067,7 @@ int ha_connect::ScanRecord(PGLOBAL g, uchar *) for (Field **field=table->field ; *field ; field++) { fp= *field; - if ((fp->vcol_info && !fp->stored_in_db) || - fp->option_struct->special) + if (!fp->stored_in_db() || fp->option_struct->special) continue; // Is a virtual column possible here ??? if ((xmod == MODE_INSERT && tdbp->GetAmType() != TYPE_AM_MYSQL @@ -5980,7 +5979,7 @@ int ha_connect::create(const char *name, TABLE *table_arg, for (field= table_arg->field; *field; field++) { fp= *field; - if (fp->vcol_info && !fp->stored_in_db) + if (!fp->stored_in_db()) continue; // This is a virtual column if (fp->flags & AUTO_INCREMENT_FLAG) { diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index c2c7faad91f..daa649acdd4 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -7416,7 +7416,7 @@ ha_innobase::build_template( /* Push down an index condition or an end_range check. */ for (i = 0, sql_idx = 0; i < n_stored_fields; i++, sql_idx++) { - while (!table->field[sql_idx]->stored_in_db) { + while (!table->field[sql_idx]->stored_in_db()) { sql_idx++; } @@ -7535,7 +7535,7 @@ ha_innobase::build_template( pushdown. */ for (i = 0, sql_idx = 0; i < n_stored_fields; i++, sql_idx++) { - while (!table->field[sql_idx]->stored_in_db) { + while (!table->field[sql_idx]->stored_in_db()) { sql_idx++; } @@ -7575,7 +7575,7 @@ ha_innobase::build_template( for (i = 0, sql_idx = 0; i < n_stored_fields; i++, sql_idx++) { const Field* field; - while (!table->field[sql_idx]->stored_in_db) { + while (!table->field[sql_idx]->stored_in_db()) { sql_idx++; } @@ -8156,7 +8156,7 @@ calc_row_difference( for (sql_idx = 0; sql_idx < n_fields; sql_idx++) { field = table->field[sql_idx]; - if (!field->stored_in_db) + if (!field->stored_in_db()) continue; o_ptr = (const byte*) old_row + get_field_offset(table, field); @@ -8295,7 +8295,7 @@ calc_row_difference( } } } - if (field->stored_in_db) + if (field->stored_in_db()) innodb_idx++; } @@ -10510,7 +10510,7 @@ create_table_def( for (i = 0; i < n_cols; i++) { Field* field = form->field[i]; - if (!field->stored_in_db) + if (!field->stored_in_db()) continue; col_type = get_innobase_type_from_mysql_type(&unsigned_type, diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index 3ae3e5bfe5e..ae082b22875 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -382,7 +382,7 @@ ha_innobase::check_if_supported_inplace_alter( const Field* field = table->field[i]; const dict_col_t* col = dict_table_get_nth_col(prebuilt->table, icol); ulint unsigned_flag; - if (!field->stored_in_db) + if (!field->stored_in_db()) continue; icol++; @@ -1230,7 +1230,7 @@ innobase_rec_to_mysql( ulint ilen; const uchar* ifield; - while (!((field= table->field[sql_idx])->stored_in_db)) + while (!((field= table->field[sql_idx])->stored_in_db())) sql_idx++; field->reset(); @@ -1283,7 +1283,7 @@ innobase_fields_to_mysql( Field* field; ulint ipos; - while (!((field= table->field[sql_idx])->stored_in_db)) + while (!((field= table->field[sql_idx])->stored_in_db())) sql_idx++; field->reset(); @@ -1332,7 +1332,7 @@ innobase_row_to_mysql( Field* field; const dfield_t* df = dtuple_get_nth_field(row, i); - while (!((field= table->field[sql_idx])->stored_in_db)) + while (!((field= table->field[sql_idx])->stored_in_db())) sql_idx++; field->reset(); @@ -1638,7 +1638,7 @@ innobase_fts_check_doc_id_col( for (i = 0; i < n_cols; i++, sql_idx++) { const Field* field; while (!((field= altered_table->field[sql_idx])-> - stored_in_db)) + stored_in_db())) sql_idx++; if (my_strcasecmp(system_charset_info, field->field_name, FTS_DOC_ID_COL_NAME)) { @@ -2504,7 +2504,7 @@ innobase_build_col_map( } while (const Create_field* new_field = cf_it++) { - if (!new_field->stored_in_db) + if (!new_field->stored_in_db()) { sql_idx++; continue; @@ -2513,7 +2513,7 @@ innobase_build_col_map( table->field[old_i]; old_i++) { const Field* field = table->field[old_i]; - if (!table->field[old_i]->stored_in_db) + if (!table->field[old_i]->stored_in_db()) continue; if (new_field->field == field) { col_map[old_innobase_i] = i; @@ -2886,7 +2886,7 @@ prepare_inplace_alter_table_dict( for (uint i = 0; i < altered_table->s->stored_fields; i++, sql_idx++) { const Field* field; while (!((field= altered_table->field[sql_idx])-> - stored_in_db)) + stored_in_db())) sql_idx++; ulint is_unsigned; ulint field_type @@ -3980,7 +3980,7 @@ func_exit: ha_alter_info->alter_info->create_list); while (const Create_field* new_field = cf_it++) { const Field* field; - if (!new_field->stored_in_db) { + if (!new_field->stored_in_db()) { i++; continue; } @@ -3989,7 +3989,7 @@ func_exit: DBUG_ASSERT(innodb_idx < altered_table->s->stored_fields); for (uint old_i = 0; table->field[old_i]; old_i++) { - if (!table->field[old_i]->stored_in_db) + if (!table->field[old_i]->stored_in_db()) continue; if (new_field->field == table->field[old_i]) { goto found_col; @@ -4688,7 +4688,7 @@ innobase_rename_columns_try( & Alter_inplace_info::ALTER_COLUMN_NAME); for (Field** fp = table->field; *fp; fp++, i++) { - if (!((*fp)->flags & FIELD_IS_RENAMED) || !((*fp)->stored_in_db)) { + if (!((*fp)->flags & FIELD_IS_RENAMED) || !((*fp)->stored_in_db())) { continue; } diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc index 360818eeb3b..4aa54577792 100644 --- a/storage/xtradb/handler/ha_innodb.cc +++ b/storage/xtradb/handler/ha_innodb.cc @@ -7914,7 +7914,7 @@ ha_innobase::build_template( /* Push down an index condition or an end_range check. */ for (i = 0, sql_idx = 0; i < n_stored_fields; i++, sql_idx++) { - while (!table->field[sql_idx]->stored_in_db) { + while (!table->field[sql_idx]->stored_in_db()) { sql_idx++; } @@ -8033,7 +8033,7 @@ ha_innobase::build_template( pushdown. */ for (i = 0, sql_idx = 0; i < n_stored_fields; i++, sql_idx++) { - while (!table->field[sql_idx]->stored_in_db) { + while (!table->field[sql_idx]->stored_in_db()) { sql_idx++; } @@ -8073,7 +8073,7 @@ ha_innobase::build_template( for (i = 0, sql_idx = 0; i < n_stored_fields; i++, sql_idx++) { const Field* field; - while (!table->field[sql_idx]->stored_in_db) { + while (!table->field[sql_idx]->stored_in_db()) { sql_idx++; } @@ -8671,7 +8671,7 @@ calc_row_difference( for (sql_idx = 0; sql_idx < n_fields; sql_idx++) { field = table->field[sql_idx]; - if (!field->stored_in_db) + if (!field->stored_in_db()) continue; o_ptr = (const byte*) old_row + get_field_offset(table, field); @@ -8809,7 +8809,7 @@ calc_row_difference( } } } - if (field->stored_in_db) + if (field->stored_in_db()) innodb_idx++; } @@ -11072,7 +11072,7 @@ create_table_def( for (i = 0; i < n_cols; i++) { Field* field = form->field[i]; - if (!field->stored_in_db) + if (!field->stored_in_db()) continue; col_type = get_innobase_type_from_mysql_type(&unsigned_type, diff --git a/storage/xtradb/handler/handler0alter.cc b/storage/xtradb/handler/handler0alter.cc index 60ab98828ce..2f89bf7b2bd 100644 --- a/storage/xtradb/handler/handler0alter.cc +++ b/storage/xtradb/handler/handler0alter.cc @@ -386,7 +386,7 @@ ha_innobase::check_if_supported_inplace_alter( const Field* field = table->field[i]; const dict_col_t* col = dict_table_get_nth_col(prebuilt->table, icol); ulint unsigned_flag; - if (!field->stored_in_db) + if (!field->stored_in_db()) continue; icol++; @@ -1233,7 +1233,7 @@ innobase_rec_to_mysql( ulint ilen; const uchar* ifield; - while (!((field= table->field[sql_idx])->stored_in_db)) + while (!((field= table->field[sql_idx])->stored_in_db())) sql_idx++; field->reset(); @@ -1286,7 +1286,7 @@ innobase_fields_to_mysql( Field* field; ulint ipos; - while (!((field= table->field[sql_idx])->stored_in_db)) + while (!((field= table->field[sql_idx])->stored_in_db())) sql_idx++; field->reset(); @@ -1335,7 +1335,7 @@ innobase_row_to_mysql( Field* field; const dfield_t* df = dtuple_get_nth_field(row, i); - while (!((field= table->field[sql_idx])->stored_in_db)) + while (!((field= table->field[sql_idx])->stored_in_db())) sql_idx++; field->reset(); @@ -1642,7 +1642,7 @@ innobase_fts_check_doc_id_col( for (i = 0; i < n_cols; i++, sql_idx++) { const Field* field; while (!((field= altered_table->field[sql_idx])-> - stored_in_db)) + stored_in_db())) sql_idx++; if (my_strcasecmp(system_charset_info, field->field_name, FTS_DOC_ID_COL_NAME)) { @@ -2508,7 +2508,7 @@ innobase_build_col_map( } while (const Create_field* new_field = cf_it++) { - if (!new_field->stored_in_db) + if (!new_field->stored_in_db()) { sql_idx++; continue; @@ -2517,7 +2517,7 @@ innobase_build_col_map( table->field[old_i]; old_i++) { const Field* field = table->field[old_i]; - if (!table->field[old_i]->stored_in_db) + if (!table->field[old_i]->stored_in_db()) continue; if (new_field->field == field) { col_map[old_innobase_i] = i; @@ -2896,7 +2896,7 @@ prepare_inplace_alter_table_dict( for (uint i = 0; i < altered_table->s->stored_fields; i++, sql_idx++) { const Field* field; while (!((field= altered_table->field[sql_idx])-> - stored_in_db)) + stored_in_db())) sql_idx++; ulint is_unsigned; ulint field_type @@ -3999,7 +3999,7 @@ func_exit: ha_alter_info->alter_info->create_list); while (const Create_field* new_field = cf_it++) { const Field* field; - if (!new_field->stored_in_db) { + if (!new_field->stored_in_db()) { i++; continue; } @@ -4008,7 +4008,7 @@ func_exit: DBUG_ASSERT(innodb_idx < altered_table->s->stored_fields); for (uint old_i = 0; table->field[old_i]; old_i++) { - if (!table->field[old_i]->stored_in_db) + if (!table->field[old_i]->stored_in_db()) continue; if (new_field->field == table->field[old_i]) { goto found_col; @@ -4707,7 +4707,7 @@ innobase_rename_columns_try( & Alter_inplace_info::ALTER_COLUMN_NAME); for (Field** fp = table->field; *fp; fp++, i++) { - if (!((*fp)->flags & FIELD_IS_RENAMED) || !((*fp)->stored_in_db)) { + if (!((*fp)->flags & FIELD_IS_RENAMED) || !((*fp)->stored_in_db())) { continue; } |