summaryrefslogtreecommitdiff
path: root/innobase/include/row0upd.h
diff options
context:
space:
mode:
authorunknown <serg@serg.mysql.com>2001-10-12 17:47:13 +0200
committerunknown <serg@serg.mysql.com>2001-10-12 17:47:13 +0200
commit6db2120514c3e7442f69c99be017b2baa03bb09a (patch)
tree224ae04fa4b6a74f056f956de4f2ebb6423c1838 /innobase/include/row0upd.h
parent239e8da92637685a4112c99cb198e02f4d10fdc8 (diff)
parentbe31ffa2e46cac314694452b51935ec841b8f06e (diff)
downloadmariadb-git-6db2120514c3e7442f69c99be017b2baa03bb09a.tar.gz
Merge work:/home/bk/mysql-4.0
into serg.mysql.com:/usr/home/serg/Abk/mysql-4.0 BitKeeper/etc/ignore: auto-union mysql-test/r/fulltext.result: Auto merged mysql-test/r/join.result: Auto merged mysql-test/r/fulltext_order_by.result: Auto merged mysql-test/r/fulltext_multi.result: Auto merged mysql-test/r/fulltext_cache.result: Auto merged mysql-test/t/fulltext.test: Auto merged mysql-test/t/join.test: Auto merged mysql-test/r/fulltext_left_join.result: Auto merged sql/handler.h: Auto merged
Diffstat (limited to 'innobase/include/row0upd.h')
-rw-r--r--innobase/include/row0upd.h45
1 files changed, 31 insertions, 14 deletions
diff --git a/innobase/include/row0upd.h b/innobase/include/row0upd.h
index 9bb73726b29..106d3866b25 100644
--- a/innobase/include/row0upd.h
+++ b/innobase/include/row0upd.h
@@ -47,8 +47,7 @@ upd_get_nth_field(
upd_t* update, /* in: update vector */
ulint n); /* in: field position in update vector */
/*************************************************************************
-Sets the clustered index field number to be updated by an update vector
-field. */
+Sets an index field number to be updated by an update vector field. */
UNIV_INLINE
void
upd_field_set_field_no(
@@ -56,7 +55,7 @@ upd_field_set_field_no(
upd_field_t* upd_field, /* in: update vector field */
ulint field_no, /* in: field number in a clustered
index */
- dict_index_t* index); /* in: clustered index */
+ dict_index_t* index); /* in: index */
/*************************************************************************
Writes into the redo log the values of trx id and roll ptr and enough info
to determine their positions within a clustered index record. */
@@ -136,13 +135,27 @@ row_upd_rec_in_place(
rec_t* rec, /* in/out: record where replaced */
upd_t* update);/* in: update vector */
/*******************************************************************
+Builds an update vector from those fields which in a secondary index entry
+differ from a record that has the equal ordering fields. NOTE: we compare
+the fields as binary strings! */
+
+upd_t*
+row_upd_build_sec_rec_difference_binary(
+/*====================================*/
+ /* out, own: update vector of differing
+ fields */
+ dict_index_t* index, /* in: index */
+ dtuple_t* entry, /* in: entry to insert */
+ rec_t* rec, /* in: secondary index record */
+ mem_heap_t* heap); /* in: memory heap from which allocated */
+/*******************************************************************
Builds an update vector from those fields, excluding the roll ptr and
trx id fields, which in an index entry differ from a record that has
-the equal ordering fields. */
+the equal ordering fields. NOTE: we compare the fields as binary strings! */
upd_t*
-row_upd_build_difference(
-/*=====================*/
+row_upd_build_difference_binary(
+/*============================*/
/* out, own: update vector of differing
fields, excluding roll ptr and trx id */
dict_index_t* index, /* in: clustered index */
@@ -175,13 +188,16 @@ row_upd_clust_index_replace_new_col_vals(
/***************************************************************
Checks if an update vector changes an ordering field of an index record.
This function is fast if the update vector is short or the number of ordering
-fields in the index is small. Otherwise, this can be quadratic. */
-
+fields in the index is small. Otherwise, this can be quadratic.
+NOTE: we compare the fields as binary strings! */
+
ibool
-row_upd_changes_ord_field(
-/*======================*/
+row_upd_changes_ord_field_binary(
+/*=============================*/
/* out: TRUE if update vector changes
- an ordering field in the index record */
+ an ordering field in the index record;
+ NOTE: the fields are compared as binary
+ strings */
dtuple_t* row, /* in: old value of row, or NULL if the
row and the data values in update are not
known when this function is called, e.g., at
@@ -191,11 +207,12 @@ row_upd_changes_ord_field(
/***************************************************************
Checks if an update vector changes an ordering field of an index record.
This function is fast if the update vector is short or the number of ordering
-fields in the index is small. Otherwise, this can be quadratic. */
+fields in the index is small. Otherwise, this can be quadratic.
+NOTE: we compare the fields as binary strings! */
ibool
-row_upd_changes_some_index_ord_field(
-/*=================================*/
+row_upd_changes_some_index_ord_field_binary(
+/*========================================*/
/* out: TRUE if update vector may change
an ordering field in an index record */
dict_table_t* table, /* in: table */