From 9ac816a1732d833f48b12fc60123204c98723b3d Mon Sep 17 00:00:00 2001 From: scottmk Date: Wed, 18 Mar 2009 15:03:31 +0000 Subject: [PATCH] In searchPredicate(): make sure that there is only one predicate at a time for a field (currently we silently ignore anything but the first one). git-svn-id: svn://svn.open-ils.org/ILS/trunk@12575 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/c-apps/oils_cstore.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Open-ILS/src/c-apps/oils_cstore.c b/Open-ILS/src/c-apps/oils_cstore.c index 08afc1717f..8fdeeaa8c7 100644 --- a/Open-ILS/src/c-apps/oils_cstore.c +++ b/Open-ILS/src/c-apps/oils_cstore.c @@ -1999,7 +1999,12 @@ static char* searchPredicate ( const char* class, osrfHash* field, MODULENAME, osrfHashGet(field, "name") ); } else { jsonObject* pred_node = jsonIteratorNext( pred_itr ); - if ( !(strcasecmp( pred_itr->key,"between" )) ) + + // Verify that there are no additional predicates + if( jsonIteratorHasNext( pred_itr ) ) { + osrfLogError( OSRF_LOG_MARK, "%s: Multiple predicates for field \"%s\"", + MODULENAME, osrfHashGet(field, "name") ); + } else if ( !(strcasecmp( pred_itr->key,"between" )) ) pred = searchBETWEENPredicate( class, field, pred_node ); else if ( !(strcasecmp( pred_itr->key,"in" )) || !(strcasecmp( pred_itr->key,"not in" )) ) pred = searchINPredicate( class, field, pred_node, pred_itr->key, ctx ); -- 2.11.0