Merge branch 'master' of ssh://git.indexdata.com:222/home/git/pub/yaz
authorAdam Dickmeiss <adam@indexdata.dk>
Thu, 7 Apr 2011 11:58:13 +0000 (13:58 +0200)
committerAdam Dickmeiss <adam@indexdata.dk>
Thu, 7 Apr 2011 11:58:13 +0000 (13:58 +0200)
src/rpn2solr.c
test/test_rpn2cql.c
test/test_rpn2solr.c

index 6390ebb..89b8b91 100644 (file)
@@ -184,7 +184,10 @@ static int checkForTruncation(int flag, Z_AttributeList *attributes)
                if (truncation <= 3)
                     return ((int) truncation & flag);
             }
-            /* Complex: Shouldn't happen */
+            else if (ae->which == Z_AttributeValue_complex) {
+                //yaz_log(YLOG_DEBUG, "Z_Attribute_complex");
+                /* Complex: Shouldn't happen */
+            }
         }
     }
     /* No truncation or unsupported */
@@ -192,11 +195,11 @@ static int checkForTruncation(int flag, Z_AttributeList *attributes)
 };
 
 static int checkForLeftTruncation(Z_AttributeList *attributes) {
-       return checkForTruncation(1, attributes);
+       return checkForTruncation(2, attributes);
 }
 
 static int checkForRightTruncation(Z_AttributeList *attributes) {
-       return checkForTruncation(2, attributes);
+       return checkForTruncation(1, attributes);
 };
 
 static int rpn2solr_simple(solr_transform_t ct,
index cb2dacb..73f5f5f 100644 (file)
@@ -82,15 +82,17 @@ static void tst2(void)
     YAZ_CHECK(compare(ct, "@attr 1=4 abc", "dc.title=abc"));
     YAZ_CHECK(compare(ct, "@attr 1=4 @attr 4=108 abc", "dc.title=/exact abc"));
     YAZ_CHECK(compare(ct, "@attr 1=4 @attr 3=1 @attr 6=1 abc", "dc.title=abc"));
-    YAZ_CHECK(compare(ct, "@attr 1=4 @attr 4=1 @attr 6=1 abc",
-                      "dc.title=abc"));
+    YAZ_CHECK(compare(ct, "@attr 1=4 @attr 4=1 @attr 6=1 abc", "dc.title=abc"));
     YAZ_CHECK(compare(ct, "@attr 1=1016 abc", "abc"));
+    /* Date tests */
     YAZ_CHECK(compare(ct, "@attr 2=1 @attr 1=30 1980", "dc.date<1980"));
     YAZ_CHECK(compare(ct, "@attr 1=30 @attr 2=3 1980", "dc.date=1980"));
     YAZ_CHECK(compare(ct, "@attr 1=30 @attr 2=5 1980", "dc.date>1980"));
     YAZ_CHECK(compare(ct, "@attr 1=30 @attr 2=2 1980", "dc.date<=1980"));
     YAZ_CHECK(compare(ct, "@attr 1=30 @attr 2=4 1980", "dc.date>=1980"));
-
+    /* truncation tests */
+    YAZ_CHECK(compare(ct, "@attr 1=1016 @attr 5=r abc", "abc"));
+    /* Other */
     YAZ_CHECK(compare(ct, "@attr 2=103 @attr 1=_ALLRECORDS 1", "cql.allRecords=1"));
     YAZ_CHECK(compare(ct, "@attr 1=500 abc", 0));
     cql_transform_close(ct);
index a5956dd..2f3f01e 100644 (file)
@@ -70,6 +70,17 @@ static void tst1(void)
 
     solr_transform_define_pattern(ct, "index.foo", "1=bar");
     YAZ_CHECK(compare(ct, "@attr 1=bar abc", "foo:abc"));
+
+    /* Truncation */
+    YAZ_CHECK(compare(ct, "@attr 5=1 water", "water*"));
+    YAZ_CHECK(compare(ct, "@attr t=r water", "water*"));
+
+    YAZ_CHECK(compare(ct, "@attr 5=2 water", "*water"));
+    YAZ_CHECK(compare(ct, "@attr t=l water", "*water"));
+
+    YAZ_CHECK(compare(ct, "@attr 5=3 water", "*water*"));
+    YAZ_CHECK(compare(ct, "@attr t=b water", "*water*"));
+
     /*
     YAZ_CHECK(compare(ct, "@or @attr 1=1016 water @attr 7=1 @attr 1=4 0", "any:water rank:??");
      */