mco_uda_collate_get_range
MCO_RET mco_uda_collate_get_range( /*IN*/ const mco_collate_h c,
/*IN*/ uint2 from,
/*OUT*/ mco_uda_value_t *val );
| |
---|
c | 包含排序规则操作数的结构的地址mco_collate_t |
from | 此字符串值中的偏移量,要从中提取字符串值 |
val | 用于接收结构体中的值的变量的地址mco_uda_value_t ``mco_collate_t |
此函数通过从指定的起始位置 from 复制到排序规则内字符串的末尾,从指定的排序规则中返回字符串值。然后,将 value 结构的 val.len 元素设置为指示复制的字符数。此函数用于排序规则比较和哈希函数。
/* 应用程序代码片段 */
/* custom compare & hash functions */
int2 coll_cmp(mco_collate_h c1, uint2 len1, mco_collate_h c2, uint2 len2)
{
mco_uda_value_t val1, val2;
char buf1[20], buf2[20];
/* get first object's value */
val1.type = MCO_DD_STRING;
val1.v.p.size = sizeof(buf1);
val1.v.p.p.c = buf1;
mco_uda_collate_get_range(c1, 0, &val1);
/* get second object's value */
val2.type = MCO_DD_STRING;
val2.v.p.size = sizeof(buf2);
val2.v.p.p.c = buf2;
mco_uda_collate_get_range(c2, 0, &val2);
/* compare values */
return STR_CMP(buf1, buf2);
}