| 390 | */ |
| 391 | |
| 392 | void lex_start(THD *thd) |
| 393 | { |
| 394 | LEX *lex= thd->lex; |
| 395 | DBUG_ENTER("lex_start"); |
| 396 | |
| 397 | lex->thd= lex->unit.thd= thd; |
| 398 | |
| 399 | lex->context_stack.empty(); |
| 400 | lex->unit.init_query(); |
| 401 | lex->unit.init_select(); |
| 402 | /* 'parent_lex' is used in init_query() so it must be before it. */ |
| 403 | lex->select_lex.parent_lex= lex; |
| 404 | lex->select_lex.init_query(); |
| 405 | lex->load_set_str_list.empty(); |
| 406 | lex->value_list.empty(); |
| 407 | lex->update_list.empty(); |
| 408 | lex->set_var_list.empty(); |
| 409 | lex->param_list.empty(); |
| 410 | lex->view_list.empty(); |
| 411 | lex->prepared_stmt_params.empty(); |
| 412 | lex->auxiliary_table_list.empty(); |
| 413 | lex->unit.next= lex->unit.master= lex->unit.link_next= 0; |
| 414 | lex->unit.prev= lex->unit.link_prev= 0; |
| 415 | lex->unit.slave= lex->unit.global_parameters= lex->current_select= |
| 416 | lex->all_selects_list= &lex->select_lex; |
| 417 | lex->select_lex.master= &lex->unit; |
| 418 | lex->select_lex.prev= &lex->unit.slave; |
| 419 | lex->select_lex.link_next= lex->select_lex.slave= lex->select_lex.next= 0; |
| 420 | lex->select_lex.link_prev= (st_select_lex_node**)&(lex->all_selects_list); |
| 421 | lex->select_lex.options= 0; |
| 422 | lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE_UNSPECIFIED; |
| 423 | lex->select_lex.init_order(); |
| 424 | lex->select_lex.group_list.empty(); |
| 425 | if (lex->select_lex.group_list_ptrs) |
| 426 | lex->select_lex.group_list_ptrs->clear(); |
| 427 | lex->describe= DESCRIBE_NONE; |
| 428 | lex->subqueries= FALSE; |
| 429 | lex->context_analysis_only= 0; |
| 430 | lex->derived_tables= 0; |
| 431 | lex->safe_to_cache_query= 1; |
| 432 | lex->leaf_tables_insert= 0; |
| 433 | lex->parsing_options.reset(); |
| 434 | lex->empty_field_list_on_rset= 0; |
| 435 | lex->select_lex.select_number= 1; |
| 436 | lex->length=0; |
| 437 | lex->part_info= 0; |
| 438 | lex->select_lex.in_sum_expr=0; |
| 439 | lex->select_lex.ftfunc_list_alloc.empty(); |
| 440 | lex->select_lex.ftfunc_list= &lex->select_lex.ftfunc_list_alloc; |
| 441 | lex->select_lex.group_list.empty(); |
| 442 | lex->select_lex.order_list.empty(); |
| 443 | if (lex->select_lex.order_list_ptrs) |
| 444 | lex->select_lex.order_list_ptrs->clear(); |
| 445 | lex->select_lex.gorder_list.empty(); |
| 446 | lex->duplicates= DUP_ERROR; |
| 447 | lex->ignore= 0; |
| 448 | lex->spname= NULL; |
| 449 | lex->sphead= NULL; |
no test coverage detected