summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/mapr/whereclause.go28
1 files changed, 18 insertions, 10 deletions
diff --git a/internal/mapr/whereclause.go b/internal/mapr/whereclause.go
index 740df71..617aa79 100644
--- a/internal/mapr/whereclause.go
+++ b/internal/mapr/whereclause.go
@@ -9,22 +9,13 @@ import (
// WhereClause interprets the where clause of the mapreduce query.
func (q *Query) WhereClause(fields map[string]string) bool {
for _, wc := range q.Where {
- var ok bool
if wc.Operation > FloatOperation {
if !whereClauseFloatValues(fields, wc) {
return false
}
continue
}
-
- var lValue, rValue string
- if lValue, ok = whereClauseStringValue(fields, wc.lString, wc.lType); !ok {
- return false
- }
- if rValue, ok = whereClauseStringValue(fields, wc.rString, wc.rType); !ok {
- return false
- }
- if ok = wc.stringClause(lValue, rValue); !ok {
+ if !whereClauseStringValues(fields, wc) {
return false
}
}
@@ -70,6 +61,23 @@ func whereClauseFloatValue(fields map[string]string, str string, float float64,
}
}
+func whereClauseStringValues(fields map[string]string, wc whereCondition) bool {
+ var lValue, rValue string
+ var ok bool
+
+ if lValue, ok = whereClauseStringValue(fields, wc.lString, wc.lType); !ok {
+ return false
+ }
+ if rValue, ok = whereClauseStringValue(fields, wc.rString, wc.rType); !ok {
+ return false
+ }
+ if ok = wc.stringClause(lValue, rValue); !ok {
+ return false
+ }
+
+ return true
+}
+
func whereClauseStringValue(fields map[string]string, str string,
t fieldType) (string, bool) {