| 403 | */ |
| 404 | |
| 405 | bool |
| 406 | Event_job_data::load_from_row(THD *thd, TABLE *table) |
| 407 | { |
| 408 | const char *ptr; |
| 409 | size_t len; |
| 410 | LEX_CSTRING tz_name; |
| 411 | |
| 412 | DBUG_ENTER("Event_job_data::load_from_row"); |
| 413 | |
| 414 | if (!table) |
| 415 | DBUG_RETURN(TRUE); |
| 416 | |
| 417 | if (table->s->fields < ET_FIELD_COUNT) |
| 418 | DBUG_RETURN(TRUE); |
| 419 | |
| 420 | if (load_string_fields(table->field, |
| 421 | ET_FIELD_DB, &dbname, |
| 422 | ET_FIELD_NAME, &name, |
| 423 | ET_FIELD_BODY, &body, |
| 424 | ET_FIELD_DEFINER, &definer, |
| 425 | ET_FIELD_TIME_ZONE, &tz_name, |
| 426 | ET_FIELD_COUNT)) |
| 427 | DBUG_RETURN(TRUE); |
| 428 | |
| 429 | if (load_time_zone(thd, &tz_name)) |
| 430 | DBUG_RETURN(TRUE); |
| 431 | |
| 432 | Event_creation_ctx::load_from_db(thd, &mem_root, dbname.str, name.str, table, |
| 433 | &creation_ctx); |
| 434 | |
| 435 | ptr= strchr(definer.str, '@'); |
| 436 | |
| 437 | if (! ptr) |
| 438 | ptr= definer.str; |
| 439 | |
| 440 | len= ptr - definer.str; |
| 441 | definer_user.str= strmake_root(&mem_root, definer.str, len); |
| 442 | definer_user.length= len; |
| 443 | len= definer.length - len - 1; |
| 444 | /* 1:because of @ */ |
| 445 | definer_host.str= strmake_root(&mem_root, ptr + 1, len); |
| 446 | definer_host.length= len; |
| 447 | |
| 448 | sql_mode= (sql_mode_t) table->field[ET_FIELD_SQL_MODE]->val_int(); |
| 449 | |
| 450 | DBUG_RETURN(FALSE); |
| 451 | } |
| 452 | |
| 453 | |
| 454 | /** |
no test coverage detected