From: Adam Dickmeiss Date: Thu, 7 Apr 2011 11:58:13 +0000 (+0200) Subject: Merge branch 'master' of ssh://git.indexdata.com:222/home/git/pub/yaz X-Git-Tag: v4.2.0~46^2~1^2 X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=commitdiff_plain;h=c8a79e28da9f30fe4db703e598a33f63d22048c7;hp=f66886517ee1fbd4acd34d9942d9edde802a8c7b Merge branch 'master' of ssh://git.indexdata.com:222/home/git/pub/yaz --- diff --git a/src/rpn2solr.c b/src/rpn2solr.c index 6390ebb..89b8b91 100644 --- a/src/rpn2solr.c +++ b/src/rpn2solr.c @@ -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, diff --git a/test/test_rpn2cql.c b/test/test_rpn2cql.c index cb2dacb..73f5f5f 100644 --- a/test/test_rpn2cql.c +++ b/test/test_rpn2cql.c @@ -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); diff --git a/test/test_rpn2solr.c b/test/test_rpn2solr.c index a5956dd..2f3f01e 100644 --- a/test/test_rpn2solr.c +++ b/test/test_rpn2solr.c @@ -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:??"); */