mirror of
https://github.com/apache/druid.git
synced 2025-03-01 14:59:08 +00:00
add support for regex filter
This commit is contained in:
parent
f5e3ff9692
commit
88515ec59f
@ -92,6 +92,7 @@ DIV: '/';
|
|||||||
COMMA: ',';
|
COMMA: ',';
|
||||||
EQ: '=';
|
EQ: '=';
|
||||||
NEQ: '!=';
|
NEQ: '!=';
|
||||||
|
MATCH: '~';
|
||||||
GROUP: 'group';
|
GROUP: 'group';
|
||||||
|
|
||||||
IDENT : (LETTER)(LETTER | DIGIT | '_')* ;
|
IDENT : (LETTER)(LETTER | DIGIT | '_')* ;
|
||||||
@ -246,11 +247,13 @@ primaryDimFilter returns [DimFilter filter]
|
|||||||
;
|
;
|
||||||
|
|
||||||
selectorDimFilter returns [DimFilter filter]
|
selectorDimFilter returns [DimFilter filter]
|
||||||
: dimension=IDENT op=(EQ|NEQ) value=QUOTED_STRING {
|
: dimension=IDENT op=(EQ|NEQ|MATCH) value=QUOTED_STRING {
|
||||||
DimFilter f = new SelectorDimFilter($dimension.text, unescape($value.text));
|
String dim = $dimension.text;
|
||||||
|
String val = unescape($value.text);
|
||||||
switch($op.type) {
|
switch($op.type) {
|
||||||
case(EQ): $filter = f; break;
|
case(EQ): $filter = new SelectorDimFilter(dim, val); break;
|
||||||
case(NEQ): $filter = new NotDimFilter(f); break;
|
case(NEQ): $filter = new NotDimFilter(new SelectorDimFilter(dim, val)); break;
|
||||||
|
case(MATCH): $filter = new RegexDimFilter(dim, val); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user