+from types import StringTypes
+try:
+ set
+except NameError:
+ from sets import Set
+ set = Set
+
from PLC.Faults import *
from PLC.Parameter import Parameter, Mixed, python_type
for field, value in self.iteritems():
# provide for negation with a field starting with ~
negation=False
- if field[0]=='~':
- negation=True
- field=field[1:]
+ if field[0] == '~':
+ negation = True
+ field = field[1:]
if field not in self.fields:
raise PLCInvalidArgument, "Invalid filter field '%s'" % field
if value is None:
operator = "IS"
value = "NULL"
- else:
+ elif isinstance(value, StringTypes) and \
+ (value.find("*") > -1 or value.find("%") > -1):
+ operator = "LIKE"
+ value = str(api.db.quote(value.replace("*", "%")))
+ else:
operator = "="
value = str(api.db.quote(value))