MCPcopy Create free account
hub / github.com/Meituan-Dianping/SQLAdvisor / lex_start

Function lex_start

sql/sql_lex.cc:392–490  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

390*/
391
392void 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;

Callers 2

reset_lexMethod · 0.85
mysql_parseFunction · 0.85

Calls 9

init_queryMethod · 0.80
init_selectMethod · 0.80
init_orderMethod · 0.80
mark_brokenMethod · 0.80
emptyMethod · 0.45
clearMethod · 0.45
resetMethod · 0.45

Tested by

no test coverage detected