77 std::ostream &
print(std::ostream &out)
const;
81 return (obj.
print(out));
102 iter->apply(index,
lob, len, lob_version, first_page_no);
157 if ((*iter)->get_field_no() == field_no) {
176 if ((*iter)->get_field_no() == field_no) {
208 size_t lob_version,
page_no_t first_page) {
211 if (seq !=
nullptr) {
212 seq->
apply(clust_index,
lob, len, lob_version, first_page);
uint32_t page_no_t
Page number.
Definition: api0api.h:45
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:251
Data dictionary memory object creation.
constexpr page_no_t FIL_NULL
'null' (undefined) page offset in the context of file spaces
Definition: fil0fil.h:1159
void for_each(const Shards< COUNT > &shards, Function &&f) noexcept
Iterate over the shards.
Definition: ut0counter.h:323
Provides the large objects (LOB) module.
Definition: lob0del.h:32
std::ostream & operator<<(std::ostream &out, const plist_node_t &obj)
Definition: lob0impl.h:239
void delete_(T *ptr) noexcept
Releases storage which has been dynamically allocated through any of the ut::new*() variants.
Definition: ut0new.h:809
Data structure for an index.
Definition: dict0mem.h:1046
Undo information about LOB data alone without including LOB index.
Definition: lob0undo.h:42
page_no_t m_page_no
The LOB first page number.
Definition: lob0undo.h:54
void apply(dict_index_t *index, byte *lob_mem, size_t len, size_t lob_version, page_no_t first_page_no)
Apply the undo information to the given LOB.
Definition: lob0undo.cc:41
const byte * copy_old_data(const byte *undo_ptr, ulint len)
Copy the old data from the undo page into this object.
Definition: lob0undo.cc:75
ulint m_version
The LOB version number on which this undo should be applied.
Definition: lob0undo.h:57
byte * m_old_data
Changes to the LOB data.
Definition: lob0undo.h:66
void destroy()
Free allocated memory for old data.
Definition: lob0undo.cc:87
std::ostream & print(std::ostream &out) const
Definition: lob0undo.cc:64
ulint m_length
The length of the modification.
Definition: lob0undo.h:63
ulint m_offset
The offset within LOB where partial update happened.
Definition: lob0undo.h:60
Container to hold a sequence of undo log records containing modification of BLOBs.
Definition: lob0undo.h:86
void apply(dict_index_t *index, byte *lob, size_t len, size_t lob_version, page_no_t first_page_no)
Apply the undo log records on the given LOB in memory.
Definition: lob0undo.h:97
bool exists() const
Check if any undo log exists to apply.
Definition: lob0undo.h:133
undo_seq_t(ulint field_no)
Constructor.
Definition: lob0undo.h:89
std::list< undo_data_t > * m_undo_list
Definition: lob0undo.h:140
void destroy()
Destroy the contents of this undo sequence list.
Definition: lob0undo.h:122
ulint get_field_no() const
Get the field number of BLOB.
Definition: lob0undo.h:109
ulint m_field_no
Definition: lob0undo.h:137
void push_back(undo_data_t &u1)
Append the given undo log record to the end of container.
Definition: lob0undo.h:113
The list of modifications to be applied on LOBs to get older versions.
Definition: lob0undo.h:146
undo_seq_t * get_undo_sequence(ulint field_no)
Get the undo log sequence object for the given field number, which represents one blob.
Definition: lob0undo.h:170
~undo_vers_t()
Destructor to free the resources.
Definition: lob0undo.h:230
void apply(dict_index_t *clust_index, ulint field_no, byte *lob, size_t len, size_t lob_version, page_no_t first_page)
Apply the undo log record on the given LOB in memory.
Definition: lob0undo.h:207
void destroy()
Destroy the accumulated undo_seq_t objects.
Definition: lob0undo.h:217
std::list< undo_seq_t * > * m_versions
Maintain a list of undo_seq_t objects.
Definition: lob0undo.h:234
void reset()
Empty the collected LOB undo information from cache.
Definition: lob0undo.h:190
undo_seq_t * get_undo_sequence_if_exists(ulint field_no)
Get the undo log sequence object for the given field number, which represents one blob.
Definition: lob0undo.h:152
bool is_empty() const
Check if the undo contained older versions.
Definition: lob0undo.h:227
Version control for database, common definitions, and include files.
unsigned long int ulint
Definition: univ.i:406
#define UT_NEW_THIS_FILE_PSI_KEY
Definition: ut0new.h:564