| 414 | */ |
| 415 | |
| 416 | bool sequence_definition::prepare_sequence_fields(List<Create_field> *fields, |
| 417 | bool alter) |
| 418 | { |
| 419 | DBUG_ENTER("prepare_sequence_fields"); |
| 420 | const Sequence_row_definition row_def= |
| 421 | sequence_structure(value_type_handler()); |
| 422 | |
| 423 | for (const Sequence_field_definition *field_info= row_def.fields; |
| 424 | field_info->field_name; field_info++) |
| 425 | { |
| 426 | Create_field *new_field; |
| 427 | const Lex_ident_column field_name= Lex_cstring_strlen(field_info-> |
| 428 | field_name); |
| 429 | |
| 430 | if (unlikely(!(new_field= new Create_field()))) |
| 431 | DBUG_RETURN(TRUE); /* purify inspected */ |
| 432 | |
| 433 | new_field->field_name= field_name; |
| 434 | new_field->set_handler(field_info->type_handler); |
| 435 | new_field->length= field_info->length; |
| 436 | new_field->char_length= field_info->length; |
| 437 | new_field->comment= field_info->comment; |
| 438 | new_field->flags= field_info->flags; |
| 439 | if (alter) |
| 440 | new_field->change = field_name; |
| 441 | if (unlikely(fields->push_back(new_field))) |
| 442 | DBUG_RETURN(TRUE); /* purify inspected */ |
| 443 | } |
| 444 | DBUG_RETURN(FALSE); |
| 445 | } |
| 446 | |
| 447 | /* |
| 448 | Initialize the sequence table record as part of CREATE SEQUENCE |
no test coverage detected