小巧。快速。可靠。
三选二。

SQLite C 接口

确定虚拟表约束的排序规则

const char *sqlite3_vtab_collation(sqlite3_index_info*,int);

此函数只能在调用虚拟表的 xBestIndex 方法时从内部调用。此函数返回一个指向字符串的指针,该字符串是用于约束文本比较的适当排序规则的名称,由其参数标识。

第一个参数必须是指向 sqlite3_index_info 对象的指针,该对象是 xBestIndex() 方法的第一个参数。第二个参数必须是属于传递给 xBestIndex 的 sqlite3_index_info 结构的 aConstraint[] 数组中的索引。

重要:第一个参数必须与传递给 xBestMethod() 方法的指针相同。第一个参数不能是指向不同 sqlite3_index_info 对象的指针,即使是完全相同的副本。

返回值计算如下

  1. 如果约束来自包含 COLLATE 运算符 的 WHERE 子句表达式,则返回该 COLLATE 运算符指定的排序规则的名称。

  2. 如果没有 COLLATE 运算符,但作为约束主题的列通过传递给 sqlite3_declare_vtab() 的 CREATE TABLE 语句中列定义中的 COLLATE 子句 指定了备用排序规则,则返回该备用排序规则的名称。

  3. 否则,返回“BINARY”。

另请参见 对象常量函数 列表。