$val =~ s/_/\\_/o;
$sql .= " LIKE \$_$$\$\%$val\%\$_$$\$";
+ } elsif (lc($op) eq 'not like') {
+ $val = $$val[0] if (ref($val) eq 'ARRAY');
+ $val = $val->toSQL;
+ $val =~ s/\$_$$\$//g;
+ $val =~ s/%/\\%/o;
+ $val =~ s/_/\\_/o;
+ $sql .= "NOT LIKE \$_$$\$\%$val\%\$_$$\$";
+
} elsif (lc($op) eq 'ilike') {
$val = $$val[0] if (ref($val) eq 'ARRAY');
$val = $val->toSQL;
$val =~ s/_/\\_/o;
$sql .= " ILIKE \$_$$\$\%$val\%\$_$$\$";
+ } elsif (lc($op) eq 'not ilike') {
+ $val = $$val[0] if (ref($val) eq 'ARRAY');
+ $val = $val->toSQL;
+ $val =~ s/\$_$$\$//g;
+ $val =~ s/%/\\%/o;
+ $val =~ s/_/\\_/o;
+ $sql .= "NOT ILIKE \$_$$\$\%$val\%\$_$$\$";
+
} else {
$val = $$val[0] if (ref($val) eq 'ARRAY');
$sql .= " $op " . $val->toSQL;
label : rpt_strings.FILTERS_LABEL_ILIKE
},
+
+ 'not like' : {
+ label: rpt_strings.FILTERS_LABEL_NOT_LIKE
+ },
+
+ 'not ilike' : {
+ label: rpt_strings.FILTERS_LABEL_NOT_ILIKE
+ },
+
+
'>' : {
label : rpt_strings.FILTERS_LABEL_GREATER_THAN,
labels : { timestamp : rpt_strings.FILTERS_LABEL_GT_TIME }
'like' : {
label : rpt_strings.OPERATORS_LIKE
- },
-
- ilike : {
+ },
+ 'not like' : {
+ label : rpt_strings.OPERATORS_NOT_LIKE
+ },
+ 'ilike' : {
label : rpt_strings.OPERATORS_ILIKE
},
-
+ 'not ilike' : {
+ label : rpt_strings.OPERATORS_NOT_ILIKE
+ },
'>' : {
label : rpt_strings.OPERATORS_GREATER_THAN,
labels : { timestamp : rpt_strings.OPERATORS_GT_TIME }
msgid "Contains Matching substring"
msgstr ""
+#: reports.js:OPERATORS_NOT_LIKE reports.js:FILTERS_LABEL_NOT_LIKE
+msgid "Does Not Contain Matching substring"
+msgstr ""
+
#: reports.js:OPERATORS_EQUALS reports.js:TEMPLATE_CONF_EQUALS
#: reports.js:FILTERS_LABEL_EQUALS
msgid "Equals"
msgid "Contains Matching substring (ignore case)"
msgstr ""
+#: reports.js:OPERATORS_NOT_ILIKE reports.js:FILTERS_LABEL_NOT_ILIKE
+msgid "Does Not Contain Matching substring (ignore case)"
+msgstr ""
+
#: reports.js:TRANSFORMS_MOY reports.js:TFORMS_LABEL_MOY
msgid "Month of Year"
msgstr ""