Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
f28a29a8
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
f28a29a8
编写于
8月 31, 2021
作者:
W
wenzhouwww
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TD-5661]<test> : let the test case about nano support for connector runing on CI !
上级
8db12cdf
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
208 addition
and
207 deletion
+208
-207
Jenkinsfile
Jenkinsfile
+5
-0
tests/connectorTest/nodejsTest/nanosupport/nanosecondTest.js
tests/connectorTest/nodejsTest/nanosupport/nanosecondTest.js
+4
-4
tests/gotest/batchtest.sh
tests/gotest/batchtest.sh
+3
-0
tests/gotest/nanosupport/connector/executor.go
tests/gotest/nanosupport/connector/executor.go
+84
-85
tests/gotest/nanosupport/main.go
tests/gotest/nanosupport/main.go
+112
-118
未找到文件。
Jenkinsfile
浏览文件 @
f28a29a8
...
@@ -234,11 +234,16 @@ pipeline {
...
@@ -234,11 +234,16 @@ pipeline {
cd ${WKC}/tests/examples/nodejs
cd ${WKC}/tests/examples/nodejs
npm install td2.0-connector > /dev/null 2>&1
npm install td2.0-connector > /dev/null 2>&1
node nodejsChecker.js host=localhost
node nodejsChecker.js host=localhost
node ../../connectorTest/nodejsTest/nanosupport/nanosecondTest.js
'''
'''
sh
'''
sh
'''
cd ${WKC}/tests/examples/C#/taosdemo
cd ${WKC}/tests/examples/C#/taosdemo
mcs -out:taosdemo *.cs > /dev/null 2>&1
mcs -out:taosdemo *.cs > /dev/null 2>&1
echo '' |./taosdemo
echo '' |./taosdemo
cd ${WKC}/tests/connectorTest/C#Test/nanosupport
mcs -out:nano *.cs > /dev/null 2>&1
echo '' |./nano
'''
'''
sh
'''
sh
'''
cd ${WKC}/tests/gotest
cd ${WKC}/tests/gotest
...
...
tests/connectorTest/nodejsTest/nanosupport/nanosecondTest.js
浏览文件 @
f28a29a8
const
taos
=
require
(
'
../tdengine
'
);
const
taos
=
require
(
'
td2.0-connector
'
);
var
conn
=
taos
.
connect
({
config
:
"
/etc/taos
"
});
var
conn
=
taos
.
connect
({
host
:
"
localhost
"
,
user
:
"
root
"
,
password
:
"
taosdata
"
,
config
:
"
/etc/taos
"
,
port
:
6030
})
var
c1
=
conn
.
cursor
();
var
c1
=
conn
.
cursor
();
...
@@ -16,8 +16,8 @@ function checkData(sql,row,col,data){
...
@@ -16,8 +16,8 @@ function checkData(sql,row,col,data){
}
}
else
{
else
{
console
.
log
(
'
check failed
'
)
console
.
log
(
'
check failed
'
)
console
.
log
(
checkdata
)
console
.
log
(
'
checked is :
'
,
checkdata
)
console
.
log
(
data
)
console
.
log
(
"
expected is :
"
,
data
)
}
}
...
...
tests/gotest/batchtest.sh
浏览文件 @
f28a29a8
...
@@ -19,3 +19,6 @@ go env -w GOPROXY=https://goproxy.io,direct
...
@@ -19,3 +19,6 @@ go env -w GOPROXY=https://goproxy.io,direct
bash ./case001/case001.sh
$severIp
$serverPort
bash ./case001/case001.sh
$severIp
$serverPort
#bash ./case002/case002.sh $severIp $serverPort
#bash ./case002/case002.sh $severIp $serverPort
#bash ./case003/case003.sh $severIp $serverPort
#bash ./case003/case003.sh $severIp $serverPort
cd
nanosupport
go run main.go
tests/gotest/nanosupport/connector/executor.go
浏览文件 @
f28a29a8
...
@@ -3,12 +3,13 @@ package connector
...
@@ -3,12 +3,13 @@ package connector
import
(
import
(
"context"
"context"
"fmt"
"fmt"
"reflect"
"time"
"github.com/taosdata/go-utils/log"
"github.com/taosdata/go-utils/log"
"github.com/taosdata/go-utils/tdengine/config"
"github.com/taosdata/go-utils/tdengine/config"
"github.com/taosdata/go-utils/tdengine/connector"
"github.com/taosdata/go-utils/tdengine/connector"
tdengineExecutor
"github.com/taosdata/go-utils/tdengine/executor"
tdengineExecutor
"github.com/taosdata/go-utils/tdengine/executor"
"reflect"
"time"
)
)
type
Executor
struct
{
type
Executor
struct
{
...
@@ -34,6 +35,7 @@ func (e *Executor) Execute(sql string) (int64, error) {
...
@@ -34,6 +35,7 @@ func (e *Executor) Execute(sql string) (int64, error) {
return
e
.
executor
.
DoExec
(
e
.
ctx
,
sql
)
return
e
.
executor
.
DoExec
(
e
.
ctx
,
sql
)
}
}
func
(
e
*
Executor
)
Query
(
sql
string
)
(
*
connector
.
Data
,
error
)
{
func
(
e
*
Executor
)
Query
(
sql
string
)
(
*
connector
.
Data
,
error
)
{
fmt
.
Println
(
"query :"
,
sql
)
return
e
.
executor
.
DoQuery
(
e
.
ctx
,
sql
)
return
e
.
executor
.
DoQuery
(
e
.
ctx
,
sql
)
}
}
func
(
e
*
Executor
)
CheckData
(
row
,
col
int
,
value
interface
{},
data
*
connector
.
Data
)
(
bool
,
error
)
{
func
(
e
*
Executor
)
CheckData
(
row
,
col
int
,
value
interface
{},
data
*
connector
.
Data
)
(
bool
,
error
)
{
...
@@ -101,109 +103,106 @@ func (e *Executor) CheckData(row, col int, value interface{}, data *connector.Da
...
@@ -101,109 +103,106 @@ func (e *Executor) CheckData(row, col int, value interface{}, data *connector.Da
return
true
,
nil
return
true
,
nil
}
}
func
(
e
*
Executor
)
CheckData2
(
row
,
col
int
,
value
interface
{},
data
*
connector
.
Data
)
{
func
(
e
*
Executor
)
CheckData2
(
row
,
col
int
,
value
interface
{},
data
*
connector
.
Data
)
{
match
,
err
:=
e
.
CheckData
(
row
,
col
,
value
,
data
)
match
,
err
:=
e
.
CheckData
(
row
,
col
,
value
,
data
)
fmt
.
Println
(
"expect data is :"
,
value
)
fmt
.
Println
(
"go got data is :"
,
data
.
Data
[
row
][
col
])
if
err
!=
nil
{
if
err
!=
nil
{
fmt
.
Println
(
err
)
fmt
.
Println
(
err
)
fmt
.
Println
(
"expect data is :"
,
value
)
fmt
.
Println
(
"go got data is :"
,
data
.
Data
[
row
][
col
])
}
}
if
!
match
{
if
!
match
{
fmt
.
Println
(
" data not match"
)
fmt
.
Println
(
" data not match"
)
}
/*
fmt.Println(value)
if data == nil {
// return false, fmt.Errorf("data is nil")
// fmt.Println("check failed")
}
if col >= len(data.Head) {
// return false, fmt.Errorf("col out of data")
// fmt.Println("check failed")
}
if row >= len(data.Data) {
// return false, fmt.Errorf("row out of data")
// fmt.Println("check failed")
}
dataValue := data.Data[row][col]
if dataValue == nil && value != nil {
// return false, fmt.Errorf("dataValue is nil but value is not nil")
// fmt.Println("check failed")
}
if dataValue == nil && value == nil {
// return true, nil
fmt.Println("check pass")
}
}
if reflect.TypeOf(dataValue) != reflect.TypeOf(value) {
// return false, fmt.Errorf("type not match expect %s got %s", reflect.TypeOf(value), reflect.TypeOf(dataValue))
/*
fmt.Println("check failed")
fmt.Println(value)
}
if data == nil {
switch value.(type) {
// return false, fmt.Errorf("data is nil")
case time.Time:
t, _ := dataValue.(time.Time)
if value.(time.Time).Nanosecond() != t.Nanosecond() {
// return false, fmt.Errorf("value not match expect %d got %d", value.(time.Time).Nanosecond(), t.Nanosecond())
// fmt.Println("check failed")
}
case string:
if value.(string) != dataValue.(string) {
// return false, fmt.Errorf("value not match expect %s got %s", value.(string), dataValue.(string))
// fmt.Println("check failed")
}
case int8:
if value.(int8) != dataValue.(int8) {
// return false, fmt.Errorf("value not match expect %d got %d", value.(int8), dataValue.(int8))
// fmt.Println("check failed")
}
case int16:
if value.(int16) != dataValue.(int16) {
// return false, fmt.Errorf("value not match expect %d got %d", value.(int16), dataValue.(int16))
// fmt.Println("check failed")
// fmt.Println("check failed")
}
}
case int32:
if col >= len(data.Head) {
if value.(int32) != dataValue.(int32) {
// return false, fmt.Errorf("col out of data")
// return false, fmt.Errorf("value not match expect %d got %d", value.(int32), dataValue.(int32))
// fmt.Println("check failed")
// fmt.Println("check failed")
}
}
case int64:
if row >= len(data.Data) {
if value.(int64) != dataValue.(int64) {
// return false, fmt.Errorf("row out of data")
// return false, fmt.Errorf("value not match expect %d got %d", value.(int64), dataValue.(int64))
// fmt.Println("check failed")
// fmt.Println("check failed")
}
}
case float32:
dataValue := data.Data[row][col]
if value.(float32) != dataValue.(float32) {
// return false, fmt.Errorf("value not match expect %f got %f", value.(float32), dataValue.(float32))
if dataValue == nil && value != nil {
// fmt.Println("check failed")
// return false, fmt.Errorf("dataValue is nil but value is not nil")
}
case float64:
if value.(float64) != dataValue.(float64) {
// return false, fmt.Errorf("value not match expect %f got %f", value.(float32), dataValue.(float32))
// fmt.Println("check failed")
// fmt.Println("check failed")
}
}
case bool:
if dataValue == nil && value == nil {
if value.(bool) != dataValue.(bool) {
// return true, nil
// return false, fmt.Errorf("value not match expect %t got %t", value.(bool), dataValue.(bool))
fmt.Println("check pass")
}
if reflect.TypeOf(dataValue) != reflect.TypeOf(value) {
// return false, fmt.Errorf("type not match expect %s got %s", reflect.TypeOf(value), reflect.TypeOf(dataValue))
fmt.Println("check failed")
}
switch value.(type) {
case time.Time:
t, _ := dataValue.(time.Time)
if value.(time.Time).Nanosecond() != t.Nanosecond() {
// return false, fmt.Errorf("value not match expect %d got %d", value.(time.Time).Nanosecond(), t.Nanosecond())
// fmt.Println("check failed")
}
case string:
if value.(string) != dataValue.(string) {
// return false, fmt.Errorf("value not match expect %s got %s", value.(string), dataValue.(string))
// fmt.Println("check failed")
}
case int8:
if value.(int8) != dataValue.(int8) {
// return false, fmt.Errorf("value not match expect %d got %d", value.(int8), dataValue.(int8))
// fmt.Println("check failed")
}
case int16:
if value.(int16) != dataValue.(int16) {
// return false, fmt.Errorf("value not match expect %d got %d", value.(int16), dataValue.(int16))
// fmt.Println("check failed")
}
case int32:
if value.(int32) != dataValue.(int32) {
// return false, fmt.Errorf("value not match expect %d got %d", value.(int32), dataValue.(int32))
// fmt.Println("check failed")
}
case int64:
if value.(int64) != dataValue.(int64) {
// return false, fmt.Errorf("value not match expect %d got %d", value.(int64), dataValue.(int64))
// fmt.Println("check failed")
}
case float32:
if value.(float32) != dataValue.(float32) {
// return false, fmt.Errorf("value not match expect %f got %f", value.(float32), dataValue.(float32))
// fmt.Println("check failed")
}
case float64:
if value.(float64) != dataValue.(float64) {
// return false, fmt.Errorf("value not match expect %f got %f", value.(float32), dataValue.(float32))
// fmt.Println("check failed")
}
case bool:
if value.(bool) != dataValue.(bool) {
// return false, fmt.Errorf("value not match expect %t got %t", value.(bool), dataValue.(bool))
// fmt.Println("check failed")
}
default:
// return false, fmt.Errorf("unsupport type %v", reflect.TypeOf(value))
// fmt.Println("check failed")
// fmt.Println("check failed")
}
}
default:
// return true, nil
// return false, fmt.Errorf("unsupport type %v", reflect.TypeOf(value))
// fmt.Println("check pass")
// fmt.Println("check failed")
}
// return true, nil
// fmt.Println("check pass")
*/
*/
}
}
func
(
e
*
Executor
)
CheckRow
(
count
int
,
data
*
connector
.
Data
)
{
if
len
(
data
.
Data
)
!=
count
{
fmt
.
Println
(
"check failed !"
)
func
(
e
*
Executor
)
CheckRow
(
count
int
,
data
*
connector
.
Data
)
{
if
len
(
data
.
Data
)
!=
count
{
fmt
.
Println
(
"check failed !"
)
}
}
}
}
tests/gotest/nanosupport/main.go
浏览文件 @
f28a29a8
...
@@ -2,10 +2,11 @@ package main
...
@@ -2,10 +2,11 @@ package main
import
(
import
(
"fmt"
"fmt"
"github.com/taosdata/go-utils/tdengine/config"
"log"
"log"
"taos/connector"
"taos/connector"
"time"
"time"
"github.com/taosdata/go-utils/tdengine/config"
)
)
func
main
()
{
func
main
()
{
...
@@ -31,87 +32,85 @@ func main() {
...
@@ -31,87 +32,85 @@ func main() {
t3
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 00:00:00.300000000"
)
t3
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 00:00:00.300000000"
)
t4
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 00:00:00.300000001"
)
t4
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 00:00:00.300000001"
)
t5
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 00:00:00.999999999"
)
t5
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 00:00:00.999999999"
)
e
.
CheckData2
(
0
,
0
,
t0
,
data
)
e
.
CheckData2
(
0
,
0
,
t0
,
data
)
e
.
CheckData2
(
1
,
0
,
t1
,
data
)
e
.
CheckData2
(
1
,
0
,
t1
,
data
)
e
.
CheckData2
(
2
,
0
,
t2
,
data
)
e
.
CheckData2
(
2
,
0
,
t2
,
data
)
e
.
CheckData2
(
3
,
0
,
t3
,
data
)
e
.
CheckData2
(
3
,
0
,
t3
,
data
)
e
.
CheckData2
(
4
,
0
,
t4
,
data
)
e
.
CheckData2
(
4
,
0
,
t4
,
data
)
e
.
CheckData2
(
5
,
0
,
t5
,
data
)
e
.
CheckData2
(
5
,
0
,
t5
,
data
)
e
.
CheckData2
(
3
,
1
,
int32
(
3
),
data
)
e
.
CheckData2
(
3
,
1
,
int32
(
3
),
data
)
e
.
CheckData2
(
4
,
1
,
int32
(
5
),
data
)
e
.
CheckData2
(
4
,
1
,
int32
(
5
),
data
)
e
.
CheckData2
(
5
,
1
,
int32
(
7
),
data
)
e
.
CheckData2
(
5
,
1
,
int32
(
7
),
data
)
fmt
.
Println
(
" start check nano support!"
)
fmt
.
Println
(
" start check nano support!"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts > 1623254400100000000 and ts < 1623254400100000002;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts >
\"
2021-06-10 0:00:00.100000001
\"
and ts <
\"
2021-06-10 0:00:00.160000000
\"
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts > 1623254400100000000 and ts < 1623254400100000002
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts > 1623254400100000000 and ts < 1623254400150000000;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts >
\"
2021-06-10 0:00:00.100000001
\"
and ts <
\"
2021-06-10 0:00:00.160000000
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts >
\"
2021-06-10 0:00:00.100000000
\"
and ts <
\"
2021-06-10 0:00:00.150000000
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts > 162325440040
0000000;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts > 1623254400100000000 and ts < 162325440015
0000000;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts <
\"
2021-06-10 00:00:00.40
0000000
\"
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts >
\"
2021-06-10 0:00:00.100000000
\"
and ts <
\"
2021-06-10 0:00:00.15
0000000
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts < now + 400000000b;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts > 1623254400400000000;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
6
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts <
\"
2021-06-10 00:00:00.400000000
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts >=
\"
2021-06-10 0:00:00.100000001
\"
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts < now + 400000000b
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
6
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
6
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts <= 1623254400300000000
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts >=
\"
2021-06-10 0:00:00.100000001
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
4
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
6
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts =
\"
2021-06-10 0:00:00.000000000
\"
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts <= 1623254400300000000;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
4
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts = 1623254400150000000;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts =
\"
2021-06-10 0:00:00.000000000
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts =
\"
2021-06-10 0:00:00.100000001
\"
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts = 1623254400150000000
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts between 1623254400000000000 and 1623254400400000000
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts =
\"
2021-06-10 0:00:00.100000001
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts between
\"
2021-06-10 0:00:00.299999999
\"
and
\"
2021-06-10 0:00:00.300000001
\"
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts between 1623254400000000000 and 1623254400400000000;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
3
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb where ts between
\"
2021-06-10 0:00:00.299999999
\"
and
\"
2021-06-10 0:00:00.300000001
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
3
),
data
)
data
,
_
=
e
.
Query
(
"select avg(speed) from tb interval(5000000000b);"
)
e
.
CheckRow
(
1
,
data
)
data
,
_
=
e
.
Query
(
"select avg(speed) from tb interval(5000000000b);
"
)
data
,
_
=
e
.
Query
(
"select avg(speed) from tb interval(100000000b)
"
)
e
.
CheckRow
(
1
,
data
)
e
.
CheckRow
(
4
,
data
)
data
,
_
=
e
.
Query
(
"select avg(speed) from tb interval(100000000b)
"
)
data
,
_
=
e
.
Query
(
"select avg(speed) from tb interval(1000b);
"
)
e
.
CheckRow
(
4
,
data
)
e
.
CheckRow
(
5
,
data
)
data
,
_
=
e
.
Query
(
"select avg(speed) from tb interval(1000b);"
)
data
,
_
=
e
.
Query
(
"select avg(speed) from tb interval(1u);"
)
e
.
CheckRow
(
5
,
data
)
e
.
CheckRow
(
5
,
data
)
data
,
_
=
e
.
Query
(
"select avg(speed) from tb interval(1u);"
)
e
.
CheckRow
(
5
,
data
)
data
,
_
=
e
.
Query
(
"select avg(speed) from tb interval(100000000b) sliding (100000000b);"
)
data
,
_
=
e
.
Query
(
"select avg(speed) from tb interval(100000000b) sliding (100000000b);"
)
e
.
CheckRow
(
4
,
data
)
e
.
CheckRow
(
4
,
data
)
data
,
_
=
e
.
Query
(
"select last(*) from tb"
)
data
,
_
=
e
.
Query
(
"select last(*) from tb"
)
tt
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 0:00:00.999999999"
)
tt
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 0:00:00.999999999"
)
e
.
CheckData2
(
0
,
0
,
tt
,
data
)
e
.
CheckData2
(
0
,
0
,
tt
,
data
)
data
,
_
=
e
.
Query
(
"select first(*) from tb"
)
data
,
_
=
e
.
Query
(
"select first(*) from tb"
)
tt1
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 0:00:00.100000001"
)
tt1
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 0:00:00.100000001"
)
e
.
CheckData2
(
0
,
0
,
tt1
,
data
)
e
.
CheckData2
(
0
,
0
,
tt1
,
data
)
e
.
Execute
(
"insert into tb values(now + 500000000b, 6);"
)
e
.
Execute
(
"insert into tb values(now + 500000000b, 6);"
)
data
,
_
=
e
.
Query
(
"select * from tb;"
)
data
,
_
=
e
.
Query
(
"select * from tb;"
)
e
.
CheckRow
(
7
,
data
)
e
.
CheckRow
(
7
,
data
)
e
.
Execute
(
"create table tb2 (ts timestamp, speed int, ts2 timestamp);"
)
e
.
Execute
(
"create table tb2 (ts timestamp, speed int, ts2 timestamp);"
)
e
.
Execute
(
"insert into tb2 values(
\"
2021-06-10 0:00:00.100000001
\"
, 1,
\"
2021-06-11 0:00:00.100000001
\"
);"
)
e
.
Execute
(
"insert into tb2 values(
\"
2021-06-10 0:00:00.100000001
\"
, 1,
\"
2021-06-11 0:00:00.100000001
\"
);"
)
e
.
Execute
(
"insert into tb2 values(1623254400150000000, 2, 1623340800150000000);"
)
e
.
Execute
(
"insert into tb2 values(1623254400150000000, 2, 1623340800150000000);"
)
...
@@ -120,124 +119,120 @@ func main() {
...
@@ -120,124 +119,120 @@ func main() {
e
.
Execute
(
"insert into tb2 values(1623254400300000001, 5, 1623340800300000001);"
)
e
.
Execute
(
"insert into tb2 values(1623254400300000001, 5, 1623340800300000001);"
)
e
.
Execute
(
"insert into tb2 values(1623254400999999999, 7, 1623513600999999999);"
)
e
.
Execute
(
"insert into tb2 values(1623254400999999999, 7, 1623513600999999999);"
)
data
,
_
=
e
.
Query
(
"select * from tb2;"
)
data
,
_
=
e
.
Query
(
"select * from tb2;"
)
tt2
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 0:00:00.100000001"
)
tt2
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 0:00:00.100000001"
)
tt3
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 0:00:00.150000000"
)
tt3
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 0:00:00.150000000"
)
e
.
CheckData2
(
0
,
0
,
tt2
,
data
)
e
.
CheckData2
(
0
,
0
,
tt2
,
data
)
e
.
CheckData2
(
1
,
0
,
tt3
,
data
)
e
.
CheckData2
(
1
,
0
,
tt3
,
data
)
e
.
CheckData2
(
2
,
1
,
int32
(
4
),
data
)
e
.
CheckData2
(
2
,
1
,
int32
(
4
),
data
)
e
.
CheckData2
(
3
,
1
,
int32
(
3
),
data
)
e
.
CheckData2
(
3
,
1
,
int32
(
3
),
data
)
tt4
,
_
:=
time
.
Parse
(
layout
,
"2021-06-11 00:00:00.300000001"
)
tt4
,
_
:=
time
.
Parse
(
layout
,
"2021-06-11 00:00:00.300000001"
)
e
.
CheckData2
(
4
,
2
,
tt4
,
data
)
e
.
CheckData2
(
4
,
2
,
tt4
,
data
)
e
.
CheckRow
(
6
,
data
)
e
.
CheckRow
(
6
,
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 > 1623340800000000000 and ts2 < 1623340800150000000;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 > 1623340800000000000 and ts2 < 1623340800150000000;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 >
\"
2021-06-11 0:00:00.100000000
\"
and ts2 <
\"
2021-06-11 0:00:00.100000002
\"
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 >
\"
2021-06-11 0:00:00.100000000
\"
and ts2 <
\"
2021-06-11 0:00:00.100000002
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 > 1623340800500000000;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 > 1623340800500000000;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 <
\"
2021-06-11 0:00:00.400000000
\"
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 <
\"
2021-06-11 0:00:00.400000000
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 < now + 400000000b;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 < now + 400000000b;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
6
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
6
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 >=
\"
2021-06-11 0:00:00.100000001
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
6
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 <= 1623340800400000000
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 >=
\"
2021-06-11 0:00:00.100000001
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
6
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 =
\"
2021-06-11 0:00:00.000000000
\"
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 <= 1623340800400000000;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 =
\"
2021-06-11 0:00:00.300000001
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 = 1623340800300000001;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 =
\"
2021-06-11 0:00:00.000000000
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 between 1623340800000000000 and 1623340800450000000
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 =
\"
2021-06-11 0:00:00.300000001
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 between
\"
2021-06-11 0:00:00.299999999
\"
and
\"
2021-06-11 0:00:00.300000001
\"
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 = 1623340800300000001
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
3
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
1
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 <> 1623513600999999999
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 between 1623340800000000000 and 1623340800450000000
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 <>
\"
2021-06-11 0:00:00.1
00000001
\"
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 between
\"
2021-06-11 0:00:00.299999999
\"
and
\"
2021-06-11 0:00:00.3
00000001
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
3
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 <>
\"
2021-06-11 0:00:00.100000000
\"
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 <> 1623513600999999999
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
6
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 != 1623513600999999999
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 <>
\"
2021-06-11 0:00:00.100000001
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 !=
\"
2021-06-11 0:00:00.100000001
\"
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 <>
\"
2021-06-11 0:00:00.100000000
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
6
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 !=
\"
2021-06-11 0:00:00.100000000
\"
;"
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 != 1623513600999999999;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
6
),
data
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 !=
\"
2021-06-11 0:00:00.100000001
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
5
),
data
)
data
,
_
=
e
.
Query
(
"select count(*) from tb2 where ts2 !=
\"
2021-06-11 0:00:00.100000000
\"
;"
)
e
.
CheckData2
(
0
,
0
,
int64
(
6
),
data
)
e
.
Execute
(
"insert into tb2 values(now + 500000000b, 6, now +2d);"
)
e
.
Execute
(
"insert into tb2 values(now + 500000000b, 6, now +2d);"
)
data
,
_
=
e
.
Query
(
"select * from tb2;"
)
data
,
_
=
e
.
Query
(
"select * from tb2;"
)
e
.
CheckRow
(
7
,
data
)
e
.
CheckRow
(
7
,
data
)
e
.
Execute
(
"create table tb3 (ts timestamp, speed int);"
)
e
.
Execute
(
"create table tb3 (ts timestamp, speed int);"
)
_
,
err
=
e
.
Execute
(
"insert into tb3 values(16232544001500000, 2);"
)
_
,
err
=
e
.
Execute
(
"insert into tb3 values(16232544001500000, 2);"
)
if
err
!=
nil
{
if
err
!=
nil
{
fmt
.
Println
(
"check pass! "
)
fmt
.
Println
(
"check pass! "
)
}
}
e
.
Execute
(
"insert into tb3 values(
\"
2021-06-10 0:00:00.123456
\"
, 2);"
)
e
.
Execute
(
"insert into tb3 values(
\"
2021-06-10 0:00:00.123456
\"
, 2);"
)
data
,
_
=
e
.
Query
(
"select * from tb3 where ts =
\"
2021-06-10 0:00:00.123456000
\"
;"
)
data
,
_
=
e
.
Query
(
"select * from tb3 where ts =
\"
2021-06-10 0:00:00.123456000
\"
;"
)
e
.
CheckRow
(
1
,
data
)
e
.
CheckRow
(
1
,
data
)
e
.
Execute
(
"insert into tb3 values(
\"
2021-06-10 0:00:00.123456789000
\"
, 2);"
)
e
.
Execute
(
"insert into tb3 values(
\"
2021-06-10 0:00:00.123456789000
\"
, 2);"
)
data
,
_
=
e
.
Query
(
"select * from tb3 where ts =
\"
2021-06-10 0:00:00.123456789
\"
;"
)
data
,
_
=
e
.
Query
(
"select * from tb3 where ts =
\"
2021-06-10 0:00:00.123456789
\"
;"
)
e
.
CheckRow
(
1
,
data
)
e
.
CheckRow
(
1
,
data
)
// check timezone support
// check timezone support
e
.
Execute
(
"drop database if exists nsdb;"
)
e
.
Execute
(
"drop database if exists nsdb;"
)
e
.
Execute
(
"create database nsdb precision 'ns';"
)
e
.
Execute
(
"create database nsdb precision 'ns';"
)
e
.
Execute
(
"use nsdb;"
)
e
.
Execute
(
"use nsdb;"
)
e
.
Execute
(
"create stable st (ts timestamp ,speed float ) tags(time timestamp ,id int);"
)
e
.
Execute
(
"create stable st (ts timestamp ,speed float ) tags(time timestamp ,id int);"
)
e
.
Execute
(
"insert into tb1 using st tags('2021-06-10 0:00:00.123456789' , 1 ) values('2021-06-10T0:00:00.123456789+07:00' , 1.0);"
)
e
.
Execute
(
"insert into tb1 using st tags('2021-06-10 0:00:00.123456789' , 1 ) values('2021-06-10T0:00:00.123456789+07:00' , 1.0);"
)
data
,
_
=
e
.
Query
(
"select first(*) from tb1;"
)
data
,
_
=
e
.
Query
(
"select first(*) from tb1;"
)
ttt
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 01:00:00.123456789"
)
ttt
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 01:00:00.123456789"
)
e
.
CheckData2
(
0
,
0
,
ttt
,
data
)
e
.
CheckData2
(
0
,
0
,
ttt
,
data
)
e
.
Execute
(
"create database usdb precision 'us';"
)
e
.
Execute
(
"create database usdb precision 'us';"
)
e
.
Execute
(
"use usdb;"
)
e
.
Execute
(
"use usdb;"
)
e
.
Execute
(
"create stable st (ts timestamp ,speed float ) tags(time timestamp ,id int);"
)
e
.
Execute
(
"create stable st (ts timestamp ,speed float ) tags(time timestamp ,id int);"
)
e
.
Execute
(
"insert into tb1 using st tags('2021-06-10 0:00:00.123456' , 1 ) values('2021-06-10T0:00:00.123456+07:00' , 1.0);"
)
e
.
Execute
(
"insert into tb1 using st tags('2021-06-10 0:00:00.123456' , 1 ) values('2021-06-10T0:00:00.123456+07:00' , 1.0);"
)
data
,
_
=
e
.
Query
(
"select first(*) from tb1;"
)
data
,
_
=
e
.
Query
(
"select first(*) from tb1;"
)
ttt2
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 01:00:00.123456"
)
ttt2
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 01:00:00.123456"
)
e
.
CheckData2
(
0
,
0
,
ttt2
,
data
)
e
.
CheckData2
(
0
,
0
,
ttt2
,
data
)
e
.
Execute
(
"drop database if exists msdb;"
)
e
.
Execute
(
"drop database if exists msdb;"
)
e
.
Execute
(
"create database msdb precision 'ms';"
)
e
.
Execute
(
"create database msdb precision 'ms';"
)
e
.
Execute
(
"use msdb;"
)
e
.
Execute
(
"use msdb;"
)
e
.
Execute
(
"create stable st (ts timestamp ,speed float ) tags(time timestamp ,id int);"
)
e
.
Execute
(
"create stable st (ts timestamp ,speed float ) tags(time timestamp ,id int);"
)
e
.
Execute
(
"insert into tb1 using st tags('2021-06-10 0:00:00.123' , 1 ) values('2021-06-10T0:00:00.123+07:00' , 1.0);"
)
e
.
Execute
(
"insert into tb1 using st tags('2021-06-10 0:00:00.123' , 1 ) values('2021-06-10T0:00:00.123+07:00' , 1.0);"
)
data
,
_
=
e
.
Query
(
"select first(*) from tb1;"
)
data
,
_
=
e
.
Query
(
"select first(*) from tb1;"
)
ttt3
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 01:00:00.123"
)
ttt3
,
_
:=
time
.
Parse
(
layout
,
"2021-06-10 01:00:00.123"
)
e
.
CheckData2
(
0
,
0
,
ttt3
,
data
)
e
.
CheckData2
(
0
,
0
,
ttt3
,
data
)
fmt
.
Println
(
"all test done!"
)
fmt
.
Println
(
"all test done!"
)
}
}
func
prepareData
(
e
*
connector
.
Executor
)
{
func
prepareData
(
e
*
connector
.
Executor
)
{
sqlList
:=
[]
string
{
sqlList
:=
[]
string
{
"reset query cache;"
,
"reset query cache;"
,
...
@@ -272,4 +267,3 @@ func executeSql(e *connector.Executor, sql string) error {
...
@@ -272,4 +267,3 @@ func executeSql(e *connector.Executor, sql string) error {
}
}
return
nil
return
nil
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录