+YAZ_EXPORT
+const char *cql_uri(void);
+
+/** \brief compares two CQL strings (ala strcmp)
+ \param s1 string 1
+ \param s2 string 2
+ \returns comparison value
+ Compares two CQL strings (for relations, operators, etc)
+ (unfortunately defined as case-insensitive unlike XML etc)
+*/
+YAZ_EXPORT
+int cql_strcmp(const char *s1, const char *s2);
+
+/** \brief compares two CQL strings (ala strncmp)
+ \param s1 string 1
+ \param s2 string 2
+ \param n size
+ \returns comparison value
+ Compares two CQL strings at most n bytes
+ (unfortunately defined as case-insensitive unlike XML etc)
+ */
+YAZ_EXPORT
+int cql_strncmp(const char *s1, const char *s2, size_t n);
+
+/** \brief converts CQL sortby to sortkeys (ala versions 1.1)
+ \param cn CQL tree
+ \param pr print function
+ \param client_data data to be passed to pr function
+
+ This will take CQL_NODE_SORT entries and conver them to
+
+ path,schema,ascending,caseSensitive,missingValue
+ items..
+
+ One for each sort keys. Where
+
+ path is string index for sorting
+
+ schema is schema for sort index
+
+ ascending is a boolean (0=false, 1=true). Default is true.
+
+ caseSensitive is a boolean. Default is false.
+
+ missingValue is a string and one of 'abort', 'highValue', 'lowValue',
+ or 'omit'. Default is 'highValue'.
+
+ See also
+ http://www.loc.gov/standards/sru/sru1-1archive/search-retrieve-operation.html#sort
+*/
+YAZ_EXPORT
+int cql_sortby_to_sortkeys(struct cql_node *cn,
+ void (*pr)(const char *buf, void *client_data),
+ void *client_data);
+
+/** \brief converts CQL sortby to sortkeys ..
+ \param cn CQL tree
+ \param out result buffer
+ \param max size of buffer (allocated)
+ \retval 0 OK
+ \retval -1 ERROR
+*/
+YAZ_EXPORT
+int cql_sortby_to_sortkeys_buf(struct cql_node *cn, char *out, int max);
+
+YAZ_END_CDECL