query language: drop "=" "<" ">" as field/relation indicators, they did the same thing as ":" anyway and were a source of unexpected behaviour

This commit is contained in:
Jean-Francois Dockes 2011-06-28 10:28:06 +02:00
parent 877f4c90c2
commit b2515b5048

View File

@ -114,6 +114,14 @@ void WasaQuery::describe(string &desc) const
/* The master regular expression used to parse a query string
* Sub-expressions in parenthesis are numbered from 1. Each opening
* parenthesis increases the index, but we're not interested in all
* Deviations from standard:
* Relation: the standard-conformant line read as (release<1.16):
"(:|=|<|>|<=|>=)" //7 Relation
but we are not actually making use of the relation type
(interpreting all as ":"), and this can product unexpected results
as a (ie pasted) search for nonexfield=value will silently drop
the nonexfield part, while the user probably was not aware of
triggering a field search (expecting just ':' to do this).
*/
static const char * parserExpr =
"(OR|\\|\\|)[[:space:]]*" //1 OR,||
@ -125,7 +133,7 @@ static const char * parserExpr =
"(" //5
"([[:alpha:]][[:alnum:]:]*)" //6 Field spec: ie: "dc:title:letitre"
"[[:space:]]*"
"(:|=|<|>|<=|>=)" //7 Relation
"(:)" //7 Relation
"[[:space:]]*)?"
"(" //8
"(\"" //9