1#ifndef SQL_ITERATORS_UPDATE_ROWS_ITERATOR_H_
2#define SQL_ITERATORS_UPDATE_ROWS_ITERATOR_H_
49 TABLE *outermost_table,
TABLE *immediate_table,
57 bool use_semi_consistent_read);
61 m_source->EndPSIBatchModeIfStarted();
119 bool *transactional_tables);
This class encapsulates a data change operation.
Definition: sql_data_change.h:74
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:935
Definition: sql_list.h:494
A context for reading through a single table using a chosen access method: index read,...
Definition: row_iterator.h:82
THD * thd() const
Definition: row_iterator.h:255
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
An iterator that performs updates to rows returned by its child iterator.
Definition: update_rows_iterator.h:46
bool m_use_semi_consistent_read
Whether semi-consistent reads should be enabled on m_outermost_table.
Definition: update_rows_iterator.h:105
table_map m_tables_to_get_rowid_for
The tables for which handler::position() must be called to get the row ID.
Definition: update_rows_iterator.h:103
ha_rows updated_rows() const
Definition: update_rows_iterator.h:68
COPY_INFO ** m_update_operations
The update operations of each table in m_update_tables (indexed in the same order as m_update_tables)...
Definition: update_rows_iterator.h:91
Copy_field * m_copy_fields
Objects that copy the updated values from a temporary table to the update target table,...
Definition: update_rows_iterator.h:85
TABLE * m_immediate_table
The table to perform immediate update on, or nullptr if immediate update is not possible.
Definition: update_rows_iterator.h:78
mem_root_deque< Item * > ** m_fields_for_table
The fields list decomposed into separate lists per table.
Definition: update_rows_iterator.h:93
bool DoDelayedUpdates(bool *trans_safe, bool *transactional_tables)
Perform all the delayed updates.
Definition: sql_update.cc:2685
mem_root_deque< Item * > ** m_values_for_table
The values list decomposed into separate lists per table.
Definition: update_rows_iterator.h:95
bool DoInit() override
Definition: sql_update.cc:2955
ha_rows m_found_rows
The number of rows matching the WHERE and join conditions.
Definition: update_rows_iterator.h:97
bool DoImmediateUpdatesAndBufferRowIds(bool *trans_safe, bool *transactional_tables)
Perform all the immediate updates for the current row returned by the join, and buffer row IDs for th...
Definition: sql_update.cc:2506
void StartPSIBatchMode() override
Start performance schema batch mode, if supported (otherwise ignored).
Definition: update_rows_iterator.h:59
UpdateRowsIterator(THD *thd, unique_ptr_destroy_only< RowIterator > source, TABLE *outermost_table, TABLE *immediate_table, Table_ref *update_tables, TABLE **tmp_tables, Copy_field *copy_fields, List< TABLE > unupdated_check_opt_tables, COPY_INFO **update_operations, mem_root_deque< Item * > **fields_for_table, mem_root_deque< Item * > **values_for_table, table_map tables_to_get_rowid_for, bool use_semi_consistent_read)
Definition: sql_update.cc:3153
~UpdateRowsIterator() override
Definition: sql_update.cc:2969
TABLE * m_outermost_table
The outermost table of the join.
Definition: update_rows_iterator.h:75
ha_rows m_updated_rows
The number of rows actually updated.
Definition: update_rows_iterator.h:99
List< TABLE > m_unupdated_check_opt_tables
Tables referenced in the CHECK OPTION condition of the updated view excluding the updated table.
Definition: update_rows_iterator.h:88
Table_ref * m_update_tables
Pointer to list of updated tables, linked via 'next_local'.
Definition: update_rows_iterator.h:80
int DoRead() override
Definition: sql_update.cc:2975
TABLE ** m_tmp_tables
Temporary tables used to store cached updates.
Definition: update_rows_iterator.h:82
ha_rows found_rows() const
Definition: update_rows_iterator.h:67
unique_ptr_destroy_only< RowIterator > m_source
The iterator producing the rows to update.
Definition: update_rows_iterator.h:72
void SetNullRowFlag(bool is_null_row) override
Mark the current row buffer as containing a NULL row or not, so that if you read from it and the flag...
Definition: update_rows_iterator.h:63
void EndPSIBatchModeIfStarted() override
Ends performance schema batch mode, if started.
Definition: update_rows_iterator.h:60
void UnlockRow() override
Definition: update_rows_iterator.h:66
A (partial) implementation of std::deque allocating its blocks on a MEM_ROOT.
Definition: mem_root_deque.h:172
bool copy_fields(Temp_table_param *param, const THD *thd, bool reverse_copy)
Make a copy of all simple SELECT'ed fields.
Definition: sql_executor.cc:4428
This file follows Google coding style, except for the name MEM_ROOT (which is kept for historical rea...
std::unique_ptr< T, Destroy_only< T > > unique_ptr_destroy_only
std::unique_ptr, but only destroying.
Definition: my_alloc.h:480
This file includes constants used by all storage engines.
my_off_t ha_rows
Definition: my_base.h:1229
uint64_t table_map
Definition: my_table_map.h:30
repeated Source source
Definition: replication_asynchronous_connection_failover.proto:42