37 #ifndef UNIV_HOTBACKUP
72 # define upd_get_nth_field(update, n) ((update)->fields + (n))
74 #ifndef UNIV_HOTBACKUP
95 __attribute__((nonnull, pure));
121 const ulint* offsets,
167 const ulint* offsets,
168 const upd_t* update);
182 const ulint* offsets,
186 #ifndef UNIV_HOTBACKUP
238 __attribute__((nonnull));
257 __attribute__((nonnull));
299 __attribute__((nonnull(1,2), warn_unused_result));
301 # define row_upd_changes_ord_field_binary(index,update,thr,row,ext) \
302 row_upd_changes_ord_field_binary_func(index,update,thr,row,ext)
304 # define row_upd_changes_ord_field_binary(index,update,thr,row,ext) \
305 row_upd_changes_ord_field_binary_func(index,update,row,ext)
319 const upd_t* update);
351 const ulint* offsets,
376 #ifndef UNIV_HOTBACKUP
396 #ifndef UNIV_HOTBACKUP
403 ibool searched_update;
406 ibool in_mysql_interface;
427 ulint update_n_fields;
432 sym_node_list_t columns;
434 ibool has_clust_rec_x_lock;
461 que_node_t* col_assign_list;
466 #define UPD_NODE_MAGIC_N 1579975
469 #define UPD_NODE_SET_IX_LOCK 1
474 #define UPD_NODE_UPDATE_CLUSTERED 2
476 #define UPD_NODE_INSERT_CLUSTERED 3
479 #define UPD_NODE_INSERT_BLOB 4
484 #define UPD_NODE_UPDATE_ALL_SEC 5
488 #define UPD_NODE_UPDATE_SOME_SEC 6
493 #define UPD_NODE_NO_ORD_CHANGE 1
496 #define UPD_NODE_NO_SIZE_CHANGE 2
502 #include "row0upd.ic"
UNIV_INTERN void row_upd_replace(dtuple_t *row, row_ext_t **ext, const dict_index_t *index, const upd_t *update, mem_heap_t *heap)
UNIV_INTERN void row_upd_rec_sys_fields_in_recovery(rec_t *rec, page_zip_des_t *page_zip, const ulint *offsets, ulint pos, trx_id_t trx_id, roll_ptr_t roll_ptr)
UNIV_INTERN void row_upd_index_write_log(const upd_t *update, byte *log_ptr, mtr_t *mtr)
UNIV_INTERN byte * row_upd_parse_sys_vals(byte *ptr, byte *end_ptr, ulint *pos, trx_id_t *trx_id, roll_ptr_t *roll_ptr)
UNIV_INTERN byte * row_upd_index_parse(byte *ptr, byte *end_ptr, mem_heap_t *heap, upd_t **update_out)
UNIV_INTERN void row_upd_rec_in_place(rec_t *rec, dict_index_t *index, const ulint *offsets, const upd_t *update, page_zip_des_t *page_zip)
UNIV_INTERN ibool row_upd_changes_field_size_or_external(dict_index_t *index, const ulint *offsets, const upd_t *update)
UNIV_INTERN void row_upd_index_replace_new_col_vals(dtuple_t *entry, dict_index_t *index, const upd_t *update, mem_heap_t *heap) __attribute__((nonnull))
UNIV_INTERN void row_upd_index_entry_sys_field(dtuple_t *entry, dict_index_t *index, ulint type, ib_uint64_t val)
UNIV_INTERN upd_node_t * upd_node_create(mem_heap_t *heap)
UNIV_INTERN upd_t * row_upd_build_difference_binary(dict_index_t *index, const dtuple_t *entry, const rec_t *rec, trx_t *trx, mem_heap_t *heap)
UNIV_INTERN ibool row_upd_changes_ord_field_binary_func(dict_index_t *index, const upd_t *update, const dtuple_t *row, const row_ext_t *ext) __attribute__((nonnull(1
UNIV_INLINE void upd_field_set_field_no(upd_field_t *upd_field, ulint field_no, dict_index_t *index, trx_t *trx)
UNIV_INLINE const upd_field_t * upd_get_field_by_field_no(const upd_t *update, ulint no) __attribute__((nonnull
UNIV_INTERN que_thr_t * row_upd_step(que_thr_t *thr)
UNIV_INTERN ibool row_upd_changes_some_index_ord_field_binary(const dict_table_t *table, const upd_t *update)
UNIV_INTERN upd_t * row_upd_build_sec_rec_difference_binary(dict_index_t *index, const dtuple_t *entry, const rec_t *rec, trx_t *trx, mem_heap_t *heap)
UNIV_INLINE void row_upd_rec_sys_fields(rec_t *rec, page_zip_des_t *page_zip, dict_index_t *index, const ulint *offsets, trx_t *trx, roll_ptr_t roll_ptr)
UNIV_INTERN void row_upd_index_replace_new_col_vals_index_pos(dtuple_t *entry, dict_index_t *index, const upd_t *update, ibool order_only, mem_heap_t *heap) __attribute__((nonnull))
UNIV_INLINE ulint upd_get_n_fields(const upd_t *update)
UNIV_INLINE upd_t * upd_create(ulint n, mem_heap_t *heap)
UNIV_INTERN byte * row_upd_write_sys_vals_to_log(dict_index_t *index, trx_t *trx, roll_ptr_t roll_ptr, byte *log_ptr, mtr_t *mtr)