CQL to RPN: term may be passed through verbatim
authorAdam Dickmeiss <adam@indexdata.dk>
Fri, 23 Mar 2012 13:24:35 +0000 (14:24 +0100)
committerAdam Dickmeiss <adam@indexdata.dk>
Fri, 23 Mar 2012 13:24:35 +0000 (14:24 +0100)
This is enabled with truncation.cql . The assumption being that the
term is already CQL.

src/cqltransform.c

index dc878b7..b2422c9 100644 (file)
@@ -616,9 +616,17 @@ static void emit_term(cql_transform_t ct,
 {
     int i;
     const char *ns = cn->u.st.index_uri;
-    int process_term = !has_modifier(cn, "regexp");
     int z3958_mode = 0;
+    int process_term = 1;
 
+    if (has_modifier(cn, "regexp"))
+        process_term = 0;
+    else if (cql_lookup_property(ct, "truncation", 0, "cql"))
+    {
+        process_term = 0;
+        cql_pr_attr(ct, "truncation", "cql", 0,
+                    pr, client_data, YAZ_SRW_MASKING_CHAR_UNSUPP);
+    }
     assert(cn->which == CQL_NODE_ST);
 
     if (process_term && length > 0)