mirror of
https://github.com/MariaDB/server.git
synced 2025-01-26 00:34:18 +01:00
8f18616ef0
and lexer files). From now on, the following Emacs cc-mode settings apply when indenting C function bodies in InnoDB: (setq c-basic-offset 8) (setq c-label-minimum-indentation 0) (add-to-list 'c-offsets-alist '(c . 0)) (add-to-list 'c-offsets-alist '(label . [0])) The indentation rules for function declarations still have not been formalized, and they must be formatted manually. Try to limit all lines to at most 79 characters (assuming TAB stops every 8 characters) by splitting lines before opening parenthesis, or at string constants. Fix some grammar mistakes in diagnostic output: match to, match with -> match found from -> found in trying rename -> trying to rename Fix an error in page_check_dir(): it said "supremum not pointed to" when the infimum was not pointed to. Enclose commented-out code snippets in #if 0 ... #endif instead of /* ... */. Add (void*) casts to some %p parameters in fprintf() calls. Try to split lines before a binary operator, not after one. (These three fixes were not made everywhere.)
70 lines
2.2 KiB
Text
70 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));
|
|
}
|