MySQL 9.2.0
Source Code Documentation
pack_rows::TableCollection Class Reference

A structure that contains a list of input tables for a hash join operation, BKA join operation or a streaming aggregation operation, and some pre-computed properties for the tables. More...

#include <pack_rows.h>

Public Member Functions

 TableCollection ()=default
 
 TableCollection (const Prealloced_array< TABLE *, 4 > &tables, bool store_rowids, table_map tables_to_get_rowid_for)
 
const Prealloced_array< Table, 4 > & tables () const
 
table_map tables_bitmap () const
 
size_t ref_and_null_bytes_size () const
 
bool has_blob_column () const
 
bool store_rowids () const
 
table_map tables_to_get_rowid_for () const
 
void RequestRowId () const
 For each of the tables that we should get row IDs for, request that the row ID is filled in (the equivalent of calling handler::position()) if needed. More...
 
void PrepareForRequestRowId () const
 For each of the tables that we should get row IDs for, inform the handler than row IDs will be needed. More...
 

Private Member Functions

void AddTable (TABLE *tab)
 
void RequestRowIdInner () const
 

Private Attributes

Prealloced_array< Table, 4 > m_tables {PSI_NOT_INSTRUMENTED}
 
table_map m_tables_bitmap = 0
 
size_t m_ref_and_null_bytes_size = 0
 
bool m_has_blob_column = false
 
bool m_store_rowids = false
 
table_map m_tables_to_get_rowid_for = 0
 

Detailed Description

A structure that contains a list of input tables for a hash join operation, BKA join operation or a streaming aggregation operation, and some pre-computed properties for the tables.

Constructor & Destructor Documentation

◆ TableCollection() [1/2]

pack_rows::TableCollection::TableCollection ( )
default

◆ TableCollection() [2/2]

pack_rows::TableCollection::TableCollection ( const Prealloced_array< TABLE *, 4 > &  tables,
bool  store_rowids,
table_map  tables_to_get_rowid_for 
)

Member Function Documentation

◆ AddTable()

void pack_rows::TableCollection::AddTable ( TABLE tab)
private

◆ has_blob_column()

bool pack_rows::TableCollection::has_blob_column ( ) const
inline

◆ PrepareForRequestRowId()

void pack_rows::TableCollection::PrepareForRequestRowId ( ) const

For each of the tables that we should get row IDs for, inform the handler than row IDs will be needed.

◆ ref_and_null_bytes_size()

size_t pack_rows::TableCollection::ref_and_null_bytes_size ( ) const
inline

◆ RequestRowId()

void pack_rows::TableCollection::RequestRowId ( ) const
inline

For each of the tables that we should get row IDs for, request that the row ID is filled in (the equivalent of calling handler::position()) if needed.

Since this function is typically called once per row read, the check for the common case where no row IDs are required, is inlined to reduce the overhead.

◆ RequestRowIdInner()

void pack_rows::TableCollection::RequestRowIdInner ( ) const
private

◆ store_rowids()

bool pack_rows::TableCollection::store_rowids ( ) const
inline

◆ tables()

const Prealloced_array< Table, 4 > & pack_rows::TableCollection::tables ( ) const
inline

◆ tables_bitmap()

table_map pack_rows::TableCollection::tables_bitmap ( ) const
inline

◆ tables_to_get_rowid_for()

table_map pack_rows::TableCollection::tables_to_get_rowid_for ( ) const
inline

Member Data Documentation

◆ m_has_blob_column

bool pack_rows::TableCollection::m_has_blob_column = false
private

◆ m_ref_and_null_bytes_size

size_t pack_rows::TableCollection::m_ref_and_null_bytes_size = 0
private

◆ m_store_rowids

bool pack_rows::TableCollection::m_store_rowids = false
private

◆ m_tables

Prealloced_array<Table, 4> pack_rows::TableCollection::m_tables {PSI_NOT_INSTRUMENTED}
private

◆ m_tables_bitmap

table_map pack_rows::TableCollection::m_tables_bitmap = 0
private

◆ m_tables_to_get_rowid_for

table_map pack_rows::TableCollection::m_tables_to_get_rowid_for = 0
private

The documentation for this class was generated from the following files: