MySQL  8.0.19
Source Code Documentation
Partial_update_info Struct Reference

A struct that contains execution time state used for partial update of JSON columns. More...

Public Member Functions

 Partial_update_info (const TABLE *table, const MY_BITMAP *columns, bool logical_diffs)
 
 ~Partial_update_info ()
 
bool collect_logical_diffs () const
 Should logical JSON diffs be collected in addition to binary diffs? More...
 

Public Attributes

MY_BITMAP m_enabled_binary_diff_columns
 The columns for which partial update using binary diffs is enabled in the current row. More...
 
MY_BITMAP m_enabled_logical_diff_columns
 The columns for which partial update using logical JSON diffs is enabled in the current row. More...
 
Mem_root_array< Binary_diff_vector * > m_binary_diff_vectors
 The binary diffs that have been collected for the current row. More...
 
Mem_root_array< Json_diff_vector * > m_logical_diff_vectors
 The logical diffs that have been collected for JSON operations in the current row. More...
 
String m_buffer
 A buffer that can be used to hold the partially updated column value while performing the update in memory. More...
 

Detailed Description

A struct that contains execution time state used for partial update of JSON columns.

Constructor & Destructor Documentation

◆ Partial_update_info()

Partial_update_info::Partial_update_info ( const TABLE table,
const MY_BITMAP columns,
bool  logical_diffs 
)
inline

◆ ~Partial_update_info()

Partial_update_info::~Partial_update_info ( )
inline

Member Function Documentation

◆ collect_logical_diffs()

bool Partial_update_info::collect_logical_diffs ( ) const
inline

Should logical JSON diffs be collected in addition to binary diffs?

Member Data Documentation

◆ m_binary_diff_vectors

Mem_root_array<Binary_diff_vector *> Partial_update_info::m_binary_diff_vectors

The binary diffs that have been collected for the current row.

The Binary_diff_vector objects live entirely in a MEM_ROOT, so there is no need to destroy them when this object is destroyed.

◆ m_buffer

String Partial_update_info::m_buffer

A buffer that can be used to hold the partially updated column value while performing the update in memory.

◆ m_enabled_binary_diff_columns

MY_BITMAP Partial_update_info::m_enabled_binary_diff_columns

The columns for which partial update using binary diffs is enabled in the current row.

◆ m_enabled_logical_diff_columns

MY_BITMAP Partial_update_info::m_enabled_logical_diff_columns

The columns for which partial update using logical JSON diffs is enabled in the current row.

◆ m_logical_diff_vectors

Mem_root_array<Json_diff_vector *> Partial_update_info::m_logical_diff_vectors

The logical diffs that have been collected for JSON operations in the current row.

Whereas the Json_diff_vector objects live in a MEM_ROOT and their memory will be reclaimed automatically, the Json_diff objects within them can own memory allocated on the heap, so they will have to be destroyed when this object is destroyed.


The documentation for this struct was generated from the following file: