MCPcopy Create free account
hub / github.com/MariaDB/server / exec

Method exec

sql/sql_tvc.cc:426–463  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

424*/
425
426bool table_value_constr::exec(SELECT_LEX *sl)
427{
428 DBUG_ENTER("table_value_constr::exec");
429 List_iterator_fast<List_item> li(lists_of_values);
430 List_item *elem;
431 THD *cur_thd= sl->parent_lex->thd;
432 ha_rows send_records= 0;
433 int rc=0;
434
435 if (select_options & SELECT_DESCRIBE)
436 DBUG_RETURN(false);
437
438 if (result->send_result_set_metadata(sl->item_list,
439 Protocol::SEND_NUM_ROWS |
440 Protocol::SEND_EOF))
441 {
442 DBUG_RETURN(true);
443 }
444
445 fix_rownum_pointers(sl->parent_lex->thd, sl, &send_records);
446
447 while ((elem= li++))
448 {
449 cur_thd->get_stmt_da()->inc_current_row_for_warning();
450 if (send_records >= sl->master_unit()->lim.get_select_limit())
451 break;
452 rc= result->send_data_with_check(*elem, sl->master_unit(), send_records);
453 if (!rc)
454 send_records++;
455 else if (rc > 0)
456 DBUG_RETURN(true);
457 }
458
459 if (result->send_eof())
460 DBUG_RETURN(true);
461
462 DBUG_RETURN(false);
463}
464
465
466/**

Callers 7

val_str_internalMethod · 0.45
val_strMethod · 0.45
validateMethod · 0.45
mysql_derived_fillFunction · 0.45

Calls 8

fix_rownum_pointersFunction · 0.85
get_stmt_daMethod · 0.80
get_select_limitMethod · 0.80
master_unitMethod · 0.80
send_data_with_checkMethod · 0.80
send_eofMethod · 0.45

Tested by

no test coverage detected