Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jobily
Questdb
提交
1bd1a13b
Q
Questdb
项目概览
jobily
/
Questdb
12 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
Questdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
1bd1a13b
编写于
5月 27, 2020
作者:
J
jaugsburger
提交者:
GitHub
5月 27, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(griffin) - microsecond timestamp (#335)
上级
1cc1d852
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
35 addition
and
5 deletion
+35
-5
core/src/main/java/io/questdb/cairo/AbstractIntervalDataFrameCursor.java
...ava/io/questdb/cairo/AbstractIntervalDataFrameCursor.java
+6
-0
core/src/main/java/io/questdb/std/microtime/TimestampFormatUtils.java
...n/java/io/questdb/std/microtime/TimestampFormatUtils.java
+5
-1
core/src/test/java/io/questdb/griffin/InsertTest.java
core/src/test/java/io/questdb/griffin/InsertTest.java
+3
-3
core/src/test/java/io/questdb/griffin/TimestampQueryTest.java
.../src/test/java/io/questdb/griffin/TimestampQueryTest.java
+21
-1
未找到文件。
core/src/main/java/io/questdb/cairo/AbstractIntervalDataFrameCursor.java
浏览文件 @
1bd1a13b
...
...
@@ -138,6 +138,12 @@ public abstract class AbstractIntervalDataFrameCursor implements DataFrameCursor
this
.
initialIntervalsLo
=
intervalsLo
/
2
;
int
intervalsHi
=
intervals
.
binarySearch
(
reader
.
getMaxTimestamp
());
if
(
reader
.
getMaxTimestamp
()
==
intervals
.
getQuick
(
intervals
.
size
()
-
1
))
{
this
.
initialIntervalsHi
=
intervals
.
size
()
-
1
;
}
if
(
reader
.
getMaxTimestamp
()
==
intervals
.
getQuick
(
0
))
{
this
.
initialIntervalsHi
=
1
;
}
if
(
intervalsHi
<
0
)
{
intervalsHi
=
-
intervalsHi
-
1
;
// when interval index is "even" we scored just between two interval
...
...
core/src/main/java/io/questdb/std/microtime/TimestampFormatUtils.java
浏览文件 @
1bd1a13b
...
...
@@ -341,7 +341,11 @@ public class TimestampFormatUtils {
}
private
static
long
parseDateTime
(
CharSequence
seq
,
int
lo
,
int
lim
)
throws
NumericException
{
return
UTC_FORMAT
.
parse
(
seq
,
lo
,
lim
,
enLocale
);
if
(
lim
-
lo
==
27
)
{
return
USEC_UTC_FORMAT
.
parse
(
seq
,
lo
,
lim
,
enLocale
);
}
else
{
return
UTC_FORMAT
.
parse
(
seq
,
lo
,
lim
,
enLocale
);
}
}
}
core/src/test/java/io/questdb/griffin/InsertTest.java
浏览文件 @
1bd1a13b
...
...
@@ -52,7 +52,7 @@ public class InsertTest extends AbstractGriffinTest {
@Test
public
void
testInsertAllByDay
()
throws
Exception
{
testBindVariableInsert
(
PartitionBy
.
DAY
,
new
TimestampFunction
()
{
private
long
last
=
TimestampFormatUtils
.
parseDateTime
(
"2019-03-10T00:00:00.000000
0
"
);
private
long
last
=
TimestampFormatUtils
.
parseDateTime
(
"2019-03-10T00:00:00.000000
Z
"
);
@Override
public
long
getTimestamp
()
{
...
...
@@ -64,7 +64,7 @@ public class InsertTest extends AbstractGriffinTest {
@Test
public
void
testInsertAllByMonth
()
throws
Exception
{
testBindVariableInsert
(
PartitionBy
.
MONTH
,
new
TimestampFunction
()
{
private
long
last
=
TimestampFormatUtils
.
parseDateTime
(
"2019-03-10T00:00:00.000000
0
"
);
private
long
last
=
TimestampFormatUtils
.
parseDateTime
(
"2019-03-10T00:00:00.000000
Z
"
);
@Override
public
long
getTimestamp
()
{
...
...
@@ -81,7 +81,7 @@ public class InsertTest extends AbstractGriffinTest {
@Test
public
void
testInsertAllByYear
()
throws
Exception
{
testBindVariableInsert
(
PartitionBy
.
YEAR
,
new
TimestampFunction
()
{
private
long
last
=
TimestampFormatUtils
.
parseDateTime
(
"2019-03-10T00:00:00.000000
0
"
);
private
long
last
=
TimestampFormatUtils
.
parseDateTime
(
"2019-03-10T00:00:00.000000
Z
"
);
@Override
public
long
getTimestamp
()
{
...
...
core/src/test/java/io/questdb/griffin/TimestampQueryTest.java
浏览文件 @
1bd1a13b
...
...
@@ -495,6 +495,26 @@ public class TimestampQueryTest extends AbstractGriffinTest {
@Test
public
void
testEqualsToTimestampFormatYearMonthDayHourMinuteSecond
()
throws
Exception
{
assertMemoryLeak
(()
->
{
//create table
String
createStmt
=
"create table ob_mem_snapshot (symbol int, me_seq_num long, timestamp timestamp) timestamp(timestamp) partition by DAY"
;
compiler
.
compile
(
createStmt
,
sqlExecutionContext
);
//insert
executeInsert
(
"INSERT INTO ob_mem_snapshot VALUES(1, 1, 1609459199000000)"
);
String
expected
=
"symbol\tme_seq_num\ttimestamp\n"
+
"1\t1\t2020-12-31T23:59:59.000000Z\n"
;
String
query
=
"select * from ob_mem_snapshot"
;
printSqlResult
(
expected
,
query
,
"timestamp"
,
null
,
null
,
true
,
true
);
// test
expected
=
"symbol\tme_seq_num\ttimestamp\n"
+
"1\t1\t2020-12-31T23:59:59.000000Z\n"
;
query
=
"SELECT * FROM ob_mem_snapshot where timestamp = '2020-12-31T23:59:59'"
;
printSqlResult
(
expected
,
query
,
"timestamp"
,
null
,
null
,
true
,
true
);
});
}
@Test
public
void
testEqualsToTimestampWithMicrosecond
()
throws
Exception
{
assertMemoryLeak
(()
->
{
//create table
String
createStmt
=
"create table ob_mem_snapshot (symbol int, me_seq_num long, timestamp timestamp) timestamp(timestamp) partition by DAY"
;
...
...
@@ -508,7 +528,7 @@ public class TimestampQueryTest extends AbstractGriffinTest {
// test
expected
=
"symbol\tme_seq_num\ttimestamp\n"
+
"1\t1\t2020-12-31T23:59:59.000001Z\n"
;
query
=
"SELECT * FROM ob_mem_snapshot where timestamp = '2020-12-31T23:59:59'"
;
query
=
"SELECT * FROM ob_mem_snapshot where timestamp = '2020-12-31T23:59:59
.000001Z
'"
;
printSqlResult
(
expected
,
query
,
"timestamp"
,
null
,
null
,
true
,
true
);
});
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录