/** Determine if an active transaction has inserted or modified a secondary indexrecord. @param[in,out]caller_trxtrxofcurrentthread @param[in]recsecondaryindexrecord @param[in]indexsecondaryindex @param[in]offsetsrec_get_offsets(rec,index) @returntheactivetransaction;statemustberecheckedafter acquiringtrx->mutex,andtrx->release_reference()mustbeinvoked
@retval NULL if the record was committed */
trx_t*
row_vers_impl_x_locked(
trx_t* caller_trx, const rec_t* rec,
dict_index_t* index, const rec_offs* offsets);
/** Find out whether data tuple has missing data type forindexedvirtualcolumn. @paramtupledatatuple @paramindexvirtualindex
@return true if tuple has missing column type */ bool dtuple_vcol_data_missing(const dtuple_t &tuple, const dict_index_t &index); /** build virtual column value from current cluster index record data @param[in,out]rowtheclusterindexrowindtupleform @param[in]clust_indexclusteredindex @param[in]indexthesecondaryindex @param[in]heapheapusedtobuildvirtualdtuple.
@param[in] maria_table MariaDB table object */ bool
row_vers_build_clust_v_col(
dtuple_t* row,
dict_index_t* clust_index,
dict_index_t* index,
mem_heap_t* heap,
TABLE* maria_table= nullptr); /** Build a dtuple contains virtual column data for current cluster index @param[in]recclusterindexrec @param[in]clust_indexclusterindex @param[in]clust_offsetsclusterrecoffset @param[in]indexsecondaryindex @param[in]trx_idtransactionIDonthepurgingrecord, or0ifcalledoutsidepurge @param[in]roll_ptrroll_ptrforthepurgerecord @param[in,out]heapheapmemory @param[in,out]v_heapheapmemorytokeepvirtualcolumntuple @param[in,out]mtrmini-transaction @param[in]maria_tableMariaDBtableobject
@return dtuple contains virtual column data */
dtuple_t*
row_vers_build_cur_vrow( const rec_t* rec,
dict_index_t* clust_index,
rec_offs** clust_offsets,
dict_index_t* index,
trx_id_t trx_id,
roll_ptr_t roll_ptr,
mem_heap_t* heap,
mem_heap_t* v_heap,
mtr_t* mtr,
TABLE* maria_table= nullptr);
/*****************************************************************//**
Constructs the version of a clustered index record which a consistent
read should see. We assume that the trx id stored in rec is such that
the consistent read should not see rec in its present version.
@return error code
@retval DB_SUCCESS if a previous version was fetched
@retval DB_MISSING_HISTORY if the history is missing (a sign of corruption) */
dberr_t
row_vers_build_for_consistent_read( /*===============================*/ const rec_t* rec, /*!< in: record in a clustered index; the callermusthavealatchonthepage;this latchlocksthetopofthestackofversions
of this records */
mtr_t* mtr, /*!< in: mtr holding the latch on rec; it will
also hold the latch on purge_view */
dict_index_t* index, /*!< in: the clustered index */
rec_offs** offsets,/*!< in/out: offsets returned by
rec_get_offsets(rec, index) */
ReadView* view, /*!< in: the consistent read view */
mem_heap_t** offset_heap,/*!< in/out: memory heap from which
the offsets are allocated */
mem_heap_t* in_heap,/*!< in: memory heap from which the memory for *old_versisallocated;memoryforpossible intermediateversionsisallocatedandfreed
locally within the function */
rec_t** old_vers,/*!< out, own: old version, or NULL ifthehistoryismissingortherecord doesnotexistintheview,thatis,
it was freshly inserted afterwards */
dtuple_t** vrow); /*!< out: reports virtual column info if any */
/*****************************************************************//**
Constructs the last committed version of a clustered index record,
which should be seen by a semi-consistent read. */ void
row_vers_build_for_semi_consistent_read( /*====================================*/ const rec_t* rec, /*!< in: record in a clustered index; the callermusthavealatchonthepage;this latchlocksthetopofthestackofversions
of this records */
mtr_t* mtr, /*!< in: mtr holding the latch on rec */
dict_index_t* index, /*!< in: the clustered index */
rec_offs** offsets,/*!< in/out: offsets returned by
rec_get_offsets(rec, index) */
mem_heap_t** offset_heap,/*!< in/out: memory heap from which
the offsets are allocated */
mem_heap_t* in_heap,/*!< in: memory heap from which the memory for *old_versisallocated;memoryforpossible intermediateversionsisallocatedandfreed
locally within the function */ const rec_t** old_vers,/*!< out: rec, old version, or NULL if the recorddoesnotexistintheview,thatis,
it was freshly inserted afterwards */
dtuple_t** vrow); /*!< out: holds virtual column info if any
is updated in the view */
#endif
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-10-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.