rem0cmp.ic
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /***********************************************************************
  2. Comparison services for records
  3. (c) 1994-1996 Innobase Oy
  4. Created 7/1/1994 Heikki Tuuri
  5. ************************************************************************/
  6. /*****************************************************************
  7. This function is used to compare two data fields for which we know the
  8. data type. */
  9. UNIV_INLINE
  10. int
  11. cmp_data_data(
  12. /*==========*/
  13. /* out: 1, 0, -1, if data1 is greater, equal, 
  14. less than data2, respectively */
  15. dtype_t* cur_type,/* in: data type of the fields */
  16. byte* data1, /* in: data field (== a pointer to a memory
  17. buffer) */
  18. ulint len1, /* in: data field length or UNIV_SQL_NULL */
  19. byte* data2, /* in: data field (== a pointer to a memory
  20. buffer) */
  21. ulint len2) /* in: data field length or UNIV_SQL_NULL */
  22. {
  23. return(cmp_data_data_slow(cur_type, data1, len1, data2, len2));
  24. }
  25. /*****************************************************************
  26. This function is used to compare two dfields where at least the first
  27. has its data type field set. */
  28. UNIV_INLINE
  29. int
  30. cmp_dfield_dfield(
  31. /*==============*/
  32. /* out: 1, 0, -1, if dfield1 is greater, equal, 
  33. less than dfield2, respectively */
  34. dfield_t* dfield1,/* in: data field; must have type field set */
  35. dfield_t* dfield2)/* in: data field */
  36. {
  37. ut_ad(dfield_check_typed(dfield1));
  38. return(cmp_data_data(dfield_get_type(dfield1),
  39. dfield_get_data(dfield1), dfield_get_len(dfield1),
  40. dfield_get_data(dfield2), dfield_get_len(dfield2)));
  41. }
  42. /*****************************************************************
  43. This function is used to compare two physical records. Only the common
  44. first fields are compared. */
  45. UNIV_INLINE
  46. int
  47. cmp_rec_rec(
  48. /*========*/
  49. /* out: 1, 0 , -1 if rec1 is greater, equal,
  50. less, respectively, than rec2; only the common
  51. first fields are compared */
  52. rec_t* rec1, /* in: physical record */
  53. rec_t* rec2, /* in: physical record */
  54. dict_index_t* index) /* in: data dictionary index */
  55. {
  56. ulint match_f = 0;
  57. ulint match_b = 0;
  58. return(cmp_rec_rec_with_match(rec1, rec2, index, &match_f, &match_b));
  59. }