Now you can also query with more operators using:
field >= val with {">=field", "val"}
field <= val with {"<=field", "val"}
field != val with {"!field", "val"}
Please, push :P
From 7000db9e4b5d19448c3d473fb61b4bd3903e7ded Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Trevisan=20(Trevi=C3=B1o)?= <[email protected]>
Date: Wed, 15 Dec 2010 02:04:01 +0100
Subject: [PATCH] opimd: add more query operator support
Now you can also query with more operators using:
field >= val with {">=field", "val"}
field <= val with {"<=field", "val"}
field != val with {"!field", "val"}
---
framework/subsystems/opimd/db_handler.py | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/framework/subsystems/opimd/db_handler.py b/framework/subsystems/opimd/db_handler.py
index 0622848..070850c 100644
--- a/framework/subsystems/opimd/db_handler.py
+++ b/framework/subsystems/opimd/db_handler.py
@@ -214,7 +214,8 @@ class DbHandler(object):
return " value " + operator + " ? "
else:
#FIXME: raise error if operator is not '='
- return " regex_matches(value, ?) = 1 "
+ if (operator == '!=' or operator == "="):
+ return " regex_matches(value, ?) "+operator+" 1 "
def get_value_compare_object(self, type, field, value):
if type == "phonenumber":
return normalize_number(str(value))
@@ -289,7 +290,13 @@ class DbHandler(object):
#handle type searching
if name.startswith('<') or name.startswith('>'):
- operator = name[:1]
+ pos = 1
+ if (name[1] == '='):
+ pos = 2
+ operator = name[:pos]
+ name = name[pos:]
+ elif name.startswith('!'):
+ operator = '!='
name = name[1:]
else:
operator = '='
--
1.7.1
_______________________________________________
Shr-devel mailing list
[email protected]
http://lists.shr-project.org/mailman/listinfo/shr-devel