~ubuntu-branches/ubuntu/maverick/mysql-5.1/maverick-proposed

« back to all changes in this revision

Viewing changes to storage/innodb_plugin/include/row0upd.h

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2012-02-22 14:16:05 UTC
  • mto: This revision was merged to the branch mainline in revision 20.
  • Revision ID: package-import@ubuntu.com-20120222141605-nxlu9yzc6attylc2
Tags: upstream-5.1.61
ImportĀ upstreamĀ versionĀ 5.1.61

Show diffs side-by-side

added added

removed removed

Lines of Context:
126
126
void
127
127
row_upd_index_entry_sys_field(
128
128
/*==========================*/
129
 
        const dtuple_t* entry,  /*!< in: index entry, where the memory buffers
130
 
                                for sys fields are already allocated:
 
129
        dtuple_t*       entry,  /*!< in/out: index entry, where the memory
 
130
                                buffers for sys fields are already allocated:
131
131
                                the function just copies the new values to
132
132
                                them */
133
133
        dict_index_t*   index,  /*!< in: clustered index */
167
167
        const upd_t*    update);/*!< in: update vector */
168
168
#endif /* !UNIV_HOTBACKUP */
169
169
/***********************************************************//**
170
 
Replaces the new column values stored in the update vector to the record
171
 
given. No field size changes are allowed. */
 
170
Replaces the new column values stored in the update vector to the
 
171
record given. No field size changes are allowed. This function is
 
172
usually invoked on a clustered index. The only use case for a
 
173
secondary index is row_ins_sec_index_entry_by_modify() or its
 
174
counterpart in ibuf_insert_to_index_page(). */
172
175
UNIV_INTERN
173
176
void
174
177
row_upd_rec_in_place(
277
280
@return TRUE if update vector changes an ordering field in the index record */
278
281
UNIV_INTERN
279
282
ibool
280
 
row_upd_changes_ord_field_binary(
281
 
/*=============================*/
 
283
row_upd_changes_ord_field_binary_func(
 
284
/*==================================*/
 
285
        dict_index_t*   index,  /*!< in: index of the record */
 
286
        const upd_t*    update, /*!< in: update vector for the row; NOTE: the
 
287
                                field numbers in this MUST be clustered index
 
288
                                positions! */
 
289
#ifdef UNIV_DEBUG
 
290
        const que_thr_t*thr,    /*!< in: query thread */
 
291
#endif /* UNIV_DEBUG */
282
292
        const dtuple_t* row,    /*!< in: old value of row, or NULL if the
283
293
                                row and the data values in update are not
284
294
                                known when this function is called, e.g., at
285
295
                                compile time */
286
 
        dict_index_t*   index,  /*!< in: index of the record */
287
 
        const upd_t*    update);/*!< in: update vector for the row; NOTE: the
288
 
                                field numbers in this MUST be clustered index
289
 
                                positions! */
 
296
        const row_ext_t*ext)    /*!< NULL, or prefixes of the externally
 
297
                                stored columns in the old row */
 
298
        __attribute__((nonnull(1,2), warn_unused_result));
 
299
#ifdef UNIV_DEBUG
 
300
# define row_upd_changes_ord_field_binary(index,update,thr,row,ext)     \
 
301
        row_upd_changes_ord_field_binary_func(index,update,thr,row,ext)
 
302
#else /* UNIV_DEBUG */
 
303
# define row_upd_changes_ord_field_binary(index,update,thr,row,ext)     \
 
304
        row_upd_changes_ord_field_binary_func(index,update,row,ext)
 
305
#endif /* UNIV_DEBUG */
290
306
/***********************************************************//**
291
307
Checks if an update vector changes an ordering field of an index record.
292
308
This function is fast if the update vector is short or the number of ordering
459
475
#define UPD_NODE_INSERT_CLUSTERED  3    /* clustered index record should be
460
476
                                        inserted, old record is already delete
461
477
                                        marked */
462
 
#define UPD_NODE_UPDATE_ALL_SEC    4    /* an ordering field of the clustered
 
478
#define UPD_NODE_INSERT_BLOB       4    /* clustered index record should be
 
479
                                        inserted, old record is already
 
480
                                        delete-marked; non-updated BLOBs
 
481
                                        should be inherited by the new record
 
482
                                        and disowned by the old record */
 
483
#define UPD_NODE_UPDATE_ALL_SEC    5    /* an ordering field of the clustered
463
484
                                        index record was changed, or this is
464
485
                                        a delete operation: should update
465
486
                                        all the secondary index records */
466
 
#define UPD_NODE_UPDATE_SOME_SEC   5    /* secondary index entries should be
 
487
#define UPD_NODE_UPDATE_SOME_SEC   6    /* secondary index entries should be
467
488
                                        looked at and updated if an ordering
468
489
                                        field changed */
469
490