mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
7ce58befd3
innobase/btr/btr0btr.c: Remove parameter n_fields from cmp_rec_rec() innobase/btr/btr0cur.c: Remove parameter n_fields from cmp_rec_rec_with_match() innobase/btr/btr0pcur.c: Remove parameter n_fields from cmp_rec_rec() innobase/include/rem0cmp.h: Remove parameter n from cmp_rec_rec_with_match() and cmp_rec_rec() innobase/include/rem0cmp.ic: Remove parameter n from cmp_rec_rec() innobase/include/rem0rec.ic: Correct the implementation of rec_offs_nth_size() (Bug #7493) innobase/page/page0page.c: Remove parameter n_fields from cmp_rec_rec() innobase/rem/rem0cmp.c: Remove parameter n from cmp_rec_rec_with_match() innobase/rem/rem0rec.c: rec_get_offsets(): Pass the number of allocated elements to rec_offs_set_n_alloc() instead of the number of allocated bytes, so that debugging assertions are more likely to detect out-of-bounds errors.
69 lines
2.2 KiB
Text
69 lines
2.2 KiB
Text
/***********************************************************************
|
|
Comparison services for records
|
|
|
|
(c) 1994-1996 Innobase Oy
|
|
|
|
Created 7/1/1994 Heikki Tuuri
|
|
************************************************************************/
|
|
|
|
/*****************************************************************
|
|
This function is used to compare two data fields for which we know the
|
|
data type. */
|
|
UNIV_INLINE
|
|
int
|
|
cmp_data_data(
|
|
/*==========*/
|
|
/* out: 1, 0, -1, if data1 is greater, equal,
|
|
less than data2, respectively */
|
|
dtype_t* cur_type,/* in: data type of the fields */
|
|
byte* data1, /* in: data field (== a pointer to a memory
|
|
buffer) */
|
|
ulint len1, /* in: data field length or UNIV_SQL_NULL */
|
|
byte* data2, /* in: data field (== a pointer to a memory
|
|
buffer) */
|
|
ulint len2) /* in: data field length or UNIV_SQL_NULL */
|
|
{
|
|
return(cmp_data_data_slow(cur_type, data1, len1, data2, len2));
|
|
}
|
|
|
|
/*****************************************************************
|
|
This function is used to compare two dfields where at least the first
|
|
has its data type field set. */
|
|
UNIV_INLINE
|
|
int
|
|
cmp_dfield_dfield(
|
|
/*==============*/
|
|
/* out: 1, 0, -1, if dfield1 is greater, equal,
|
|
less than dfield2, respectively */
|
|
dfield_t* dfield1,/* in: data field; must have type field set */
|
|
dfield_t* dfield2)/* in: data field */
|
|
{
|
|
ut_ad(dfield_check_typed(dfield1));
|
|
|
|
return(cmp_data_data(dfield_get_type(dfield1),
|
|
dfield_get_data(dfield1), dfield_get_len(dfield1),
|
|
dfield_get_data(dfield2), dfield_get_len(dfield2)));
|
|
}
|
|
|
|
/*****************************************************************
|
|
This function is used to compare two physical records. Only the common
|
|
first fields are compared. */
|
|
UNIV_INLINE
|
|
int
|
|
cmp_rec_rec(
|
|
/*========*/
|
|
/* out: 1, 0 , -1 if rec1 is greater, equal,
|
|
less, respectively, than rec2; only the common
|
|
first fields are compared */
|
|
rec_t* rec1, /* in: physical record */
|
|
rec_t* rec2, /* in: physical record */
|
|
const ulint* offsets1,/* in: rec_get_offsets(rec1, index) */
|
|
const ulint* offsets2,/* in: rec_get_offsets(rec2, index) */
|
|
dict_index_t* index) /* in: data dictionary index */
|
|
{
|
|
ulint match_f = 0;
|
|
ulint match_b = 0;
|
|
|
|
return(cmp_rec_rec_with_match(rec1, rec2, offsets1, offsets2, index,
|
|
&match_f, &match_b));
|
|
}
|