susumu.yata
null+****@clear*****
Thu Sep 10 09:50:09 JST 2015
susumu.yata 2015-09-10 09:50:09 +0900 (Thu, 10 Sep 2015) New Revision: 0e83ae702918531f94baf4875e4063658151714e https://github.com/groonga/groonga/commit/0e83ae702918531f94baf4875e4063658151714e Message: grn_ts: add comparison operators' internals GitHub: #386 Modified files: lib/ts.c Modified: lib/ts.c (+104 -0) =================================================================== --- lib/ts.c 2015-09-09 23:57:48 +0900 (47fa5a1) +++ lib/ts.c 2015-09-10 09:50:09 +0900 (b2bb3bc) @@ -756,6 +756,110 @@ grn_ts_op_not_equal_ref_vector(grn_ts_ref_vector lhs, grn_ts_ref_vector rhs) { } #undef GRN_TS_OP_NOT_EQUAL_VECTOR +/* grn_ts_op_less_int() returns lhs < rhs. */ +inline static grn_bool +grn_ts_op_less_int(grn_ts_int lhs, grn_ts_int rhs) { + return lhs < rhs; +} + +/* grn_ts_op_less_float() returns lhs < rhs. */ +inline static grn_bool +grn_ts_op_less_float(grn_ts_float lhs, grn_ts_float rhs) { + return lhs < rhs; +} + +/* grn_ts_op_less_time() returns lhs < rhs. */ +inline static grn_bool +grn_ts_op_less_time(grn_ts_time lhs, grn_ts_time rhs) { + return lhs < rhs; +} + +/* grn_ts_op_less_text() returns lhs < rhs. */ +inline static grn_bool +grn_ts_op_less_text(grn_ts_text lhs, grn_ts_text rhs) { + size_t min_size = (lhs.size < rhs.size) ? lhs.size : rhs.size; + int cmp = memcmp(lhs.ptr, rhs.ptr, min_size); + return cmp ? (cmp < 0) : (lhs.size < rhs.size); +} + +/* grn_ts_op_less_equal_int() returns lhs <= rhs. */ +inline static grn_bool +grn_ts_op_less_equal_int(grn_ts_int lhs, grn_ts_int rhs) { + return lhs <= rhs; +} + +/* grn_ts_op_less_equal_float() returns lhs <= rhs. */ +inline static grn_bool +grn_ts_op_less_equal_float(grn_ts_float lhs, grn_ts_float rhs) { + return lhs <= rhs; +} + +/* grn_ts_op_less_equal_time() returns lhs <= rhs. */ +inline static grn_bool +grn_ts_op_less_equal_time(grn_ts_time lhs, grn_ts_time rhs) { + return lhs <= rhs; +} + +/* grn_ts_op_less_equal_text() returns lhs <= rhs. */ +inline static grn_bool +grn_ts_op_less_equal_text(grn_ts_text lhs, grn_ts_text rhs) { + size_t min_size = (lhs.size < rhs.size) ? lhs.size : rhs.size; + int cmp = memcmp(lhs.ptr, rhs.ptr, min_size); + return cmp ? (cmp < 0) : (lhs.size <= rhs.size); +} + +/* grn_ts_op_greater_int() returns lhs > rhs. */ +inline static grn_bool +grn_ts_op_greater_int(grn_ts_int lhs, grn_ts_int rhs) { + return lhs > rhs; +} + +/* grn_ts_op_greater_float() returns lhs > rhs. */ +inline static grn_bool +grn_ts_op_greater_float(grn_ts_float lhs, grn_ts_float rhs) { + return lhs > rhs; +} + +/* grn_ts_op_greater_time() returns lhs > rhs. */ +inline static grn_bool +grn_ts_op_greater_time(grn_ts_time lhs, grn_ts_time rhs) { + return lhs > rhs; +} + +/* grn_ts_op_greater_text() returns lhs > rhs. */ +inline static grn_bool +grn_ts_op_greater_text(grn_ts_text lhs, grn_ts_text rhs) { + size_t min_size = (lhs.size < rhs.size) ? lhs.size : rhs.size; + int cmp = memcmp(lhs.ptr, rhs.ptr, min_size); + return cmp ? (cmp > 0) : (lhs.size > rhs.size); +} + +/* grn_ts_op_greater_equal_int() returns lhs >= rhs. */ +inline static grn_bool +grn_ts_op_greater_equal_int(grn_ts_int lhs, grn_ts_int rhs) { + return lhs >= rhs; +} + +/* grn_ts_op_greater_equal_float() returns lhs >= rhs. */ +inline static grn_bool +grn_ts_op_greater_equal_float(grn_ts_float lhs, grn_ts_float rhs) { + return lhs >= rhs; +} + +/* grn_ts_op_greater_equal_time() returns lhs >= rhs. */ +inline static grn_bool +grn_ts_op_greater_equal_time(grn_ts_time lhs, grn_ts_time rhs) { + return lhs >= rhs; +} + +/* grn_ts_op_greater_equal_text() returns lhs >= rhs. */ +inline static grn_bool +grn_ts_op_greater_equal_text(grn_ts_text lhs, grn_ts_text rhs) { + size_t min_size = (lhs.size < rhs.size) ? lhs.size : rhs.size; + int cmp = memcmp(lhs.ptr, rhs.ptr, min_size); + return cmp ? (cmp > 0) : (lhs.size >= rhs.size); +} + /*------------------------------------------------------------- * Groonga objects. */ -------------- next part -------------- HTML����������������������������...다운로드