Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
56a641fc
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看板
提交
56a641fc
编写于
12月 30, 2020
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/develop' into feature/wal
上级
67a8a7bf
73e3018d
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
64 addition
and
30 deletion
+64
-30
Jenkinsfile
Jenkinsfile
+2
-0
src/connector/nodejs/nodetaos/cinterface.js
src/connector/nodejs/nodetaos/cinterface.js
+8
-17
src/connector/nodejs/nodetaos/taosresult.js
src/connector/nodejs/nodetaos/taosresult.js
+2
-2
src/connector/nodejs/test/test.js
src/connector/nodejs/test/test.js
+20
-3
src/tsdb/src/tsdbMemTable.c
src/tsdb/src/tsdbMemTable.c
+2
-2
tests/Jenkinsfile
tests/Jenkinsfile
+1
-0
tests/pytest/functions/function_twa_test2.py
tests/pytest/functions/function_twa_test2.py
+13
-0
tests/pytest/handle_crash_gen_val_log.sh
tests/pytest/handle_crash_gen_val_log.sh
+13
-3
tests/pytest/pytest_1.sh
tests/pytest/pytest_1.sh
+3
-3
未找到文件。
Jenkinsfile
浏览文件 @
56a641fc
...
...
@@ -87,6 +87,7 @@ pipeline {
pre_test
()
sh
'''
cd ${WKC}/tests
find pytest -name '*'sql|xargs rm -rf
./test-all.sh p1
date'''
}
...
...
@@ -98,6 +99,7 @@ pipeline {
pre_test
()
sh
'''
cd ${WKC}/tests
find pytest -name '*'sql|xargs rm -rf
./test-all.sh p2
date'''
}
...
...
src/connector/nodejs/nodetaos/cinterface.js
浏览文件 @
56a641fc
...
...
@@ -144,18 +144,9 @@ function convertBinary(data, num_of_rows, nbytes = 0, offset = 0, micro=false) {
function
convertNchar
(
data
,
num_of_rows
,
nbytes
=
0
,
offset
=
0
,
micro
=
false
)
{
data
=
ref
.
reinterpret
(
data
.
deref
(),
nbytes
*
num_of_rows
,
offset
);
let
res
=
[];
let
currOffset
=
0
;
// every 4 bytes, a character is encoded;
while
(
currOffset
<
data
.
length
)
{
let
dataEntry
=
data
.
slice
(
currOffset
,
currOffset
+
nbytes
);
//one entry in a row under a column;
if
(
dataEntry
.
readInt64LE
(
0
)
==
FieldTypes
.
C_NCHAR_NULL
)
{
res
.
push
(
null
);
}
else
{
res
.
push
(
dataEntry
.
toString
(
"
utf16le
"
).
replace
(
/
\u
0000/g
,
""
));
}
currOffset
+=
nbytes
;
}
let
dataEntry
=
data
.
slice
(
0
,
nbytes
);
//one entry in a row under a column;
//TODO: should use the correct character encoding
res
.
push
(
dataEntry
.
toString
(
"
utf-8
"
));
return
res
;
}
...
...
@@ -351,7 +342,8 @@ CTaosInterface.prototype.useResult = function useResult(result) {
CTaosInterface
.
prototype
.
fetchBlock
=
function
fetchBlock
(
result
,
fields
)
{
//let pblock = ref.ref(ref.ref(ref.NULL)); // equal to our raw data
let
pblock
=
this
.
libtaos
.
taos_fetch_row
(
result
);
if
(
pblock
==
null
)
{
let
num_of_rows
=
1
;
if
(
ref
.
isNull
(
pblock
)
==
true
)
{
return
{
block
:
null
,
num_of_rows
:
0
};
}
...
...
@@ -363,17 +355,16 @@ CTaosInterface.prototype.fetchBlock = function fetchBlock(result, fields) {
if
(
ref
.
isNull
(
fieldL
)
==
false
)
{
for
(
let
i
=
0
;
i
<
fields
.
length
;
i
++
)
{
let
plen
=
ref
.
reinterpret
(
fieldL
,
4
,
i
*
4
);
let
plen
=
ref
.
reinterpret
(
fieldL
,
4
,
i
*
4
);
let
len
=
plen
.
readInt32LE
(
0
);
fieldlens
.
push
(
len
);
fieldlens
.
push
(
len
);
}
}
let
blocks
=
new
Array
(
fields
.
length
);
blocks
.
fill
(
null
);
num_of_rows
=
Math
.
abs
(
num_of_rows
);
//
num_of_rows = Math.abs(num_of_rows);
let
offset
=
0
;
pblock
=
pblock
.
deref
();
for
(
let
i
=
0
;
i
<
fields
.
length
;
i
++
)
{
pdata
=
ref
.
reinterpret
(
pblock
,
8
,
i
*
8
);
pdata
=
ref
.
ref
(
pdata
.
readPointer
());
...
...
src/connector/nodejs/nodetaos/taosresult.js
浏览文件 @
56a641fc
...
...
@@ -25,6 +25,7 @@ function TaosResult(data, fields) {
* @function pretty
* @since 1.0.6
*/
TaosResult
.
prototype
.
pretty
=
function
pretty
()
{
let
fieldsStr
=
""
;
let
sizing
=
[];
...
...
@@ -46,8 +47,7 @@ TaosResult.prototype.pretty = function pretty() {
row
.
data
.
forEach
((
entry
,
i
)
=>
{
if
(
this
.
fields
[
i
].
_field
.
type
==
9
)
{
entry
=
entry
.
toTaosString
();
}
else
{
}
else
{
entry
=
entry
==
null
?
'
null
'
:
entry
.
toString
();
}
rowStr
+=
entry
...
...
src/connector/nodejs/test/test.js
浏览文件 @
56a641fc
...
...
@@ -48,6 +48,7 @@ for (let i = 0; i < 10000; i++) {
// Select
console
.
log
(
'
select * from td_connector_test.all_types limit 3 offset 100;
'
);
c1
.
execute
(
'
select * from td_connector_test.all_types limit 2 offset 100;
'
);
var
d
=
c1
.
fetchall
();
console
.
log
(
c1
.
fields
);
console
.
log
(
d
);
...
...
@@ -77,13 +78,24 @@ c1.query('select stddev(_double), stddev(_bigint), stddev(_float) from all_types
})
// Binding arguments, and then using promise
var
q
=
c1
.
query
(
'
select
*
from td_connector_test.all_types where ts >= ? and _int > ? limit 100 offset 40;
'
).
bind
(
new
Date
(
1231
),
100
)
var
q
=
c1
.
query
(
'
select
_nchar
from td_connector_test.all_types where ts >= ? and _int > ? limit 100 offset 40;
'
).
bind
(
new
Date
(
1231
),
100
)
console
.
log
(
q
.
query
);
q
.
execute
().
then
(
function
(
r
)
{
r
.
pretty
();
});
var
q
=
c1
.
query
(
'
select * from td_connector_test.weather
'
);
console
.
log
(
q
.
query
);
q
.
execute
().
then
(
function
(
r
)
{
//console.log(r);
r
.
pretty
();
});
function
sleep
(
sleepTime
)
{
for
(
var
start
=
+
new
Date
;
+
new
Date
-
start
<=
sleepTime
;
)
{
}
}
sleep
(
10000
);
// Raw Async Testing (Callbacks, not promises)
function
cb2
(
param
,
result
,
rowCount
,
rd
)
{
...
...
@@ -129,16 +141,21 @@ setTimeout(function(){
c1
.
fetchall_a
(
thisRes
,
cb4
,
param
);
},
100
);
// Async through promises
var
aq
=
c1
.
query
(
'
select count(*) from td_connector_test.all_types;
'
,
false
);
aq
.
execute_a
().
then
(
function
(
data
)
{
data
.
pretty
();
});
c1
.
query
(
'
describe td_connector_test.stabletest;
'
).
execute_a
().
then
(
r
=>
r
.
pretty
());
c1
.
query
(
'
describe td_connector_test.stabletest
'
).
execute_a
().
then
(
function
(
r
){
r
.
pretty
()
});
setTimeout
(
function
(){
c1
.
query
(
'
drop database td_connector_test;
'
);
},
200
);
setTimeout
(
function
(){
conn
.
close
();
},
2000
);
src/tsdb/src/tsdbMemTable.c
浏览文件 @
56a641fc
...
...
@@ -207,10 +207,10 @@ void *tsdbAllocBytes(STsdbRepo *pRepo, int bytes) {
int
tsdbAsyncCommit
(
STsdbRepo
*
pRepo
)
{
if
(
pRepo
->
mem
==
NULL
)
return
0
;
ASSERT
(
pRepo
->
imem
==
NULL
);
sem_wait
(
&
(
pRepo
->
readyToCommit
));
ASSERT
(
pRepo
->
imem
==
NULL
);
if
(
pRepo
->
code
!=
TSDB_CODE_SUCCESS
)
{
tsdbWarn
(
"vgId:%d try to commit when TSDB not in good state: %s"
,
REPO_ID
(
pRepo
),
tstrerror
(
terrno
));
}
...
...
tests/Jenkinsfile
浏览文件 @
56a641fc
...
...
@@ -42,6 +42,7 @@ pipeline {
pre_test
()
sh
'''
cd ${WKC}/tests
find pytest -name '*'sql|xargs rm -rf
./test-all.sh pytest
date'''
}
...
...
tests/pytest/functions/function_twa_test2.py
浏览文件 @
56a641fc
...
...
@@ -120,6 +120,19 @@ class TDTestCase:
tdSql
.
checkData
(
2
,
1
,
-
1.5
)
tdSql
.
checkData
(
3
,
1
,
-
2
)
#TD-2533 twa+interval with large records
tdSql
.
execute
(
"create table t4(ts timestamp, c int)"
)
sql
=
'insert into t4 values '
for
i
in
range
(
20000
):
sql
=
sql
+
'(%d, %d)'
%
(
self
.
ts
+
i
*
500
,
i
+
1
)
if
i
%
2000
==
0
:
tdSql
.
execute
(
sql
)
sql
=
'insert into t4 values '
tdSql
.
execute
(
sql
)
tdSql
.
query
(
'select twa(c) from t4 interval(10s)'
)
tdSql
.
checkData
(
0
,
1
,
10.999
)
def
stop
(
self
):
tdSql
.
close
()
tdLog
.
success
(
"%s successfully executed"
%
__file__
)
...
...
tests/pytest/handle_crash_gen_val_log.sh
浏览文件 @
56a641fc
...
...
@@ -5,14 +5,24 @@ GREEN='\033[1;32m'
GREEN_DARK
=
'\033[0;32m'
GREEN_UNDERLINE
=
'\033[4;32m'
NC
=
'\033[0m'
#nohup /var/lib/jenkins/workspace/TDinternal/debug/build/bin/taosd -c /var/lib/jenkins/workspace/TDinternal/community/sim/dnode1/cfg >/dev/null &
nohup
/root/TDinternal/debug/build/bin/taosd
-c
/root/TDinternal/community/sim/dnode1/cfg
>
/dev/null &
IN_TDINTERNAL
=
"community"
TDIR
=
`
pwd
`
if
[[
"
$tests_dir
"
==
*
"
$IN_TDINTERNAL
"
*
]]
;
then
cd
../..
else
cd
../../..
fi
TOP_DIR
=
`
pwd
`
TAOSD_DIR
=
`
find
.
-name
"taosd"
|grep
-v
community|head
-n1
`
nohup
$TAOSD_DIR
>
/dev/null &
cd
-
./crash_gen.sh
--valgrind
-p
-t
10
-s
250
-b
4
pidof taosd|xargs
kill
-9
grep
'start to execute\|ERROR SUMMARY'
valgrind.err|grep
-v
'grep'
|uniq|tee crash_gen_mem_err.log
for
memError
in
`
grep
'ERROR SUMMARY'
crash_gen_mem_err.log |
awk
'{print $4}'
`
do
memError
=(
${
memError
//,/
}
)
if
[
-n
"
$memError
"
]
;
then
if
[
"
$memError
"
-gt
12
]
;
then
echo
-e
"
${
RED
}
## Memory errors number valgrind reports is
$memError
.
\
...
...
@@ -24,7 +34,7 @@ done
grep
'start to execute\|definitely lost:'
valgrind.err|grep
-v
'grep'
|uniq|tee crash_gen-definitely-lost-out.log
for
defiMemError
in
`
grep
'definitely lost:'
crash_gen-definitely-lost-out.log |
awk
'{print $7}'
`
do
defiMemError
=(
${
defiMemError
//,/
}
)
if
[
-n
"
$defiMemError
"
]
;
then
if
[
"
$defiMemError
"
-gt
3
]
;
then
echo
-e
"
${
RED
}
## Memory errors number valgrind reports
\
...
...
tests/pytest/pytest_1.sh
浏览文件 @
56a641fc
...
...
@@ -230,7 +230,7 @@ python3 test.py -f tools/lowaTest.py
python3 test.py
-f
tools/taosdemoTest2.py
# subscribe
#
python3 test.py -f subscribe/singlemeter.py
#python3 test.py -f subscribe/stability.py
#
python3 test.py -f subscribe/supertable.py
python3 test.py
-f
subscribe/singlemeter.py
#python3 test.py -f subscribe/stability.py
python3 test.py
-f
subscribe/supertable.py
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录