Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Forever310
druid
提交
f8a118dd
D
druid
项目概览
Forever310
/
druid
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
druid
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
f8a118dd
编写于
3月 02, 2013
作者:
X
xvrl
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
better number handling
上级
8640342a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
20 addition
and
8 deletion
+20
-8
client/src/main/antlr4/com/metamx/druid/sql/antlr4/DruidSQL.g4
...t/src/main/antlr4/com/metamx/druid/sql/antlr4/DruidSQL.g4
+20
-8
未找到文件。
client/src/main/antlr4/com/metamx/druid/sql/antlr4/DruidSQL.g4
浏览文件 @
f8a118dd
...
...
@@ -17,10 +17,13 @@ import com.metamx.druid.aggregation.*;
import
com
.
metamx
.
druid
.
query
.
filter
.*;
import
com
.
metamx
.
druid
.
query
.
dimension
.*;
import
com
.
metamx
.
druid
.*;
import
com
.
google
.
common
.
base
.*;
import
com
.
google
.
common
.
collect
.
Lists
;
import
java
.
util
.*;
import
org
.
joda
.
time
.*;
import
java
.
text
.*;
import
java
.
util
.*;
}
@
parser
::
members
{
...
...
@@ -103,11 +106,11 @@ IDENT : (LETTER)(LETTER | DIGIT | '_')* ;
QUOTED_STRING
:
'\'' ( ESCqs | ~'
\
''
)*
'\'' ;
ESCqs : '
\
''
'\'';
NUMBER: ('
+
'|'
-
')?DIGIT*'
.
'?DIGIT+(EXPONENT)?;
EXPONENT: ('
e
') ('
+
'|'
-
')? ('
0
'..'
9
')+;
fragment DIGIT : '
0
'..'
9
';
fragment LETTER : '
a
'..'
z
' | '
A
'..'
Z
';
DOUBLE: DIGIT*\.?DIGIT+(EXPONENT)?;
EXPONENT: ('
e
') ('
+
'|'
-
')? ('
0
'..'
9
')+;
WS : ('
'| '
\
t
' | '
\
r
' '
\
n
' | '
\
n
' | '
\
r
')+ -> skip;
...
...
@@ -173,7 +176,7 @@ unaryExpression returns [PostAggregator p]
$p = new ArithmeticPostAggregator(
"-"+$e.p.getName(),
"*",
Lists.newArrayList($e.p, new ConstantPostAggregator("-1
.0
", -1.0))
Lists.newArrayList($e.p, new ConstantPostAggregator("-1", -1.0))
);
}
| PLUS e=unaryExpression { $p = $e.p; }
...
...
@@ -195,7 +198,7 @@ aggregate returns [AggregatorFactory agg]
;
constant returns [ConstantPostAggregator c]
: value=
DOUBLE
{ double v = Double.parseDouble($value.text); $c = new ConstantPostAggregator(Double.toString(v), v); }
: value=
NUMBER
{ double v = Double.parseDouble($value.text); $c = new ConstantPostAggregator(Double.toString(v), v); }
;
/* time filters must be top level filters */
...
...
@@ -249,7 +252,7 @@ selectorDimFilter returns [SelectorDimFilter filter]
timeFilter returns [org.joda.time.Interval interval, QueryGranularity granularity]
: '
timestamp
' '
between
' s=timestamp AND e=timestamp {
$interval = new org.joda.time.Interval(
new DateTime(unescape($s.text)), new DateTime(unescape($e.text))
);
$interval = new org.joda.time.Interval(
$s.t, $e.t
);
}
;
...
...
@@ -264,6 +267,15 @@ granularityFn returns [QueryGranularity granularity]
}
;
timestamp
: DOUBLE | QUOTED_STRING
timestamp returns [DateTime t]
: NUMBER {
String str = $NUMBER.text.trim();
try {
$t = new DateTime(NumberFormat.getInstance().parse(str));
}
catch(ParseException e) {
throw new IllegalArgumentException("Unable to parse number [" + str + "]");
}
}
| QUOTED_STRING { $t = new DateTime(unescape($QUOTED_STRING.text)); }
;
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录