Drizzled Public API Documentation

rem0cmp.h

Go to the documentation of this file.
00001 /*****************************************************************************
00002 
00003 Copyright (C) 1994, 2009, Innobase Oy. All Rights Reserved.
00004 
00005 This program is free software; you can redistribute it and/or modify it under
00006 the terms of the GNU General Public License as published by the Free Software
00007 Foundation; version 2 of the License.
00008 
00009 This program is distributed in the hope that it will be useful, but WITHOUT
00010 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00011 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
00012 
00013 You should have received a copy of the GNU General Public License along with
00014 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
00015 St, Fifth Floor, Boston, MA 02110-1301 USA
00016 
00017 *****************************************************************************/
00018 
00019 /*******************************************************************/
00026 #pragma once
00027 #ifndef rem0cmp_h
00028 #define rem0cmp_h
00029 
00030 #include "univ.i"
00031 #include "data0data.h"
00032 #include "data0type.h"
00033 #include "dict0dict.h"
00034 #include "rem0rec.h"
00035 
00036 /*************************************************************/
00039 UNIV_INTERN
00040 ibool
00041 cmp_cols_are_equal(
00042 /*===============*/
00043   const dict_col_t* col1, 
00044   const dict_col_t* col2, 
00045   ibool     check_charsets);
00047 /*************************************************************/
00051 UNIV_INLINE
00052 int
00053 cmp_data_data(
00054 /*==========*/
00055   ulint   mtype,  
00056   ulint   prtype, 
00057   const byte* data1,  
00059   ulint   len1, 
00060   const byte* data2,  
00062   ulint   len2);  
00063 /*************************************************************/
00067 UNIV_INTERN
00068 int
00069 cmp_data_data_slow(
00070 /*===============*/
00071   ulint   mtype,  
00072   ulint   prtype, 
00073   const byte* data1,  
00075   ulint   len1, 
00076   const byte* data2,  
00078   ulint   len2);  
00079 /*************************************************************/
00084 UNIV_INLINE
00085 int
00086 cmp_dfield_dfield(
00087 /*==============*/
00088   const dfield_t* dfield1,
00089   const dfield_t* dfield2);
00090 /*************************************************************/
00101 UNIV_INTERN
00102 int
00103 cmp_dtuple_rec_with_match(
00104 /*======================*/
00105   const dtuple_t* dtuple, 
00106   const rec_t*  rec,  
00110   const ulint*  offsets,
00111   ulint*    matched_fields, 
00114   ulint*    matched_bytes); 
00118 /**************************************************************/
00122 UNIV_INTERN
00123 int
00124 cmp_dtuple_rec(
00125 /*===========*/
00126   const dtuple_t* dtuple, 
00127   const rec_t*  rec,  
00128   const ulint*  offsets);
00129 /**************************************************************/
00133 UNIV_INTERN
00134 ibool
00135 cmp_dtuple_is_prefix_of_rec(
00136 /*========================*/
00137   const dtuple_t* dtuple, 
00138   const rec_t*  rec,  
00139   const ulint*  offsets);
00140 /*************************************************************/
00144 UNIV_INTERN
00145 int
00146 cmp_rec_rec_simple(
00147 /*===============*/
00148   const rec_t*    rec1, 
00149   const rec_t*    rec2, 
00150   const ulint*    offsets1,
00151   const ulint*    offsets2,
00152   const dict_index_t* index,  
00153   ibool*      null_eq);
00155 /*************************************************************/
00160 UNIV_INTERN
00161 int
00162 cmp_rec_rec_with_match(
00163 /*===================*/
00164   const rec_t*  rec1, 
00165   const rec_t*  rec2, 
00166   const ulint*  offsets1,
00167   const ulint*  offsets2,
00168   dict_index_t* index,  
00169   ulint*    matched_fields, 
00173   ulint*    matched_bytes);
00177 /*************************************************************/
00182 UNIV_INLINE
00183 int
00184 cmp_rec_rec(
00185 /*========*/
00186   const rec_t*  rec1, 
00187   const rec_t*  rec2, 
00188   const ulint*  offsets1,
00189   const ulint*  offsets2,
00190   dict_index_t* index); 
00193 #ifndef UNIV_NONINL
00194 #include "rem0cmp.ic"
00195 #endif
00196 
00197 #endif