Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dgr6878
TDengine
提交
d5d67853
T
TDengine
项目概览
dgr6878
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d5d67853
编写于
5月 12, 2020
作者:
H
hzcheng
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' into feature/2.0tsdb
上级
899b2a77
d7e03ac0
变更
76
展开全部
隐藏空白更改
内联
并排
Showing
76 changed file
with
932 addition
and
911 deletion
+932
-911
.travis.yml
.travis.yml
+7
-6
README.md
README.md
+1
-1
src/client/inc/tsclient.h
src/client/inc/tsclient.h
+1
-1
src/client/src/tscFunctionImpl.c
src/client/src/tscFunctionImpl.c
+6
-8
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+3
-3
src/client/src/tscServer.c
src/client/src/tscServer.c
+14
-6
src/client/src/tscSubquery.c
src/client/src/tscSubquery.c
+3
-3
src/client/src/tscUtil.c
src/client/src/tscUtil.c
+0
-3
src/common/inc/tdataformat.h
src/common/inc/tdataformat.h
+0
-2
src/dnode/src/dnodeMgmt.c
src/dnode/src/dnodeMgmt.c
+5
-2
src/dnode/src/dnodePeer.c
src/dnode/src/dnodePeer.c
+6
-6
src/dnode/src/dnodeShell.c
src/dnode/src/dnodeShell.c
+2
-2
src/inc/taosdef.h
src/inc/taosdef.h
+9
-4
src/inc/trpc.h
src/inc/trpc.h
+1
-4
src/inc/tsdb.h
src/inc/tsdb.h
+1
-1
src/mnode/inc/mgmtDef.h
src/mnode/inc/mgmtDef.h
+1
-2
src/mnode/src/mgmtDb.c
src/mnode/src/mgmtDb.c
+4
-0
src/mnode/src/mgmtTable.c
src/mnode/src/mgmtTable.c
+71
-75
src/query/inc/queryExecutor.h
src/query/inc/queryExecutor.h
+10
-4
src/query/inc/tsqlfunction.h
src/query/inc/tsqlfunction.h
+1
-1
src/query/src/qast.c
src/query/src/qast.c
+37
-11
src/query/src/queryExecutor.c
src/query/src/queryExecutor.c
+189
-256
src/query/src/tvariant.c
src/query/src/tvariant.c
+8
-2
src/rpc/src/rpcMain.c
src/rpc/src/rpcMain.c
+6
-7
src/rpc/test/rclient.c
src/rpc/test/rclient.c
+3
-10
src/rpc/test/rsclient.c
src/rpc/test/rsclient.c
+0
-8
src/rpc/test/rserver.c
src/rpc/test/rserver.c
+1
-1
src/tsdb/inc/tsdbMain.h
src/tsdb/inc/tsdbMain.h
+9
-3
src/tsdb/src/tsdbMain.c
src/tsdb/src/tsdbMain.c
+2
-2
src/tsdb/src/tsdbMeta.c
src/tsdb/src/tsdbMeta.c
+55
-34
src/tsdb/src/tsdbRead.c
src/tsdb/src/tsdbRead.c
+31
-31
src/util/src/talgo.c
src/util/src/talgo.c
+2
-2
src/util/src/tcompare.c
src/util/src/tcompare.c
+46
-39
tests/pytest/import_merge/importDataH2.py
tests/pytest/import_merge/importDataH2.py
+5
-5
tests/pytest/import_merge/importDataSub.py
tests/pytest/import_merge/importDataSub.py
+5
-4
tests/pytest/import_merge/importToCommit.py
tests/pytest/import_merge/importToCommit.py
+1
-1
tests/pytest/smoketest.sh
tests/pytest/smoketest.sh
+0
-71
tests/pytest/util/dnodes.py
tests/pytest/util/dnodes.py
+2
-2
tests/pytest/valgrind-test.sh
tests/pytest/valgrind-test.sh
+45
-0
tests/script/basicSuite.sim
tests/script/basicSuite.sim
+0
-6
tests/script/general/cache/restart_metrics.sim
tests/script/general/cache/restart_metrics.sim
+10
-3
tests/script/general/db/delete_reuse2.sim
tests/script/general/db/delete_reuse2.sim
+1
-0
tests/script/general/db/testSuite.sim
tests/script/general/db/testSuite.sim
+2
-1
tests/script/general/db/vnodes.sim
tests/script/general/db/vnodes.sim
+45
-0
tests/script/general/field/bigint.sim
tests/script/general/field/bigint.sim
+3
-1
tests/script/general/parser/auto_create_tb.sim
tests/script/general/parser/auto_create_tb.sim
+15
-15
tests/script/general/parser/lastrow_query.sim
tests/script/general/parser/lastrow_query.sim
+2
-0
tests/script/general/parser/nchar.sim
tests/script/general/parser/nchar.sim
+2
-0
tests/script/general/parser/testSuite.sim
tests/script/general/parser/testSuite.sim
+85
-100
tests/script/general/table/fill.sim
tests/script/general/table/fill.sim
+1
-1
tests/script/general/tag/bool.sim
tests/script/general/tag/bool.sim
+2
-1
tests/script/general/tag/filter.sim
tests/script/general/tag/filter.sim
+2
-1
tests/script/jenkins/basic.txt
tests/script/jenkins/basic.txt
+65
-78
tests/script/sh/deploy.sh
tests/script/sh/deploy.sh
+1
-1
tests/script/test.sh
tests/script/test.sh
+2
-1
tests/script/unique/account/account_create.sim
tests/script/unique/account/account_create.sim
+1
-1
tests/script/unique/account/account_delete.sim
tests/script/unique/account/account_delete.sim
+1
-1
tests/script/unique/account/account_len.sim
tests/script/unique/account/account_len.sim
+1
-1
tests/script/unique/account/authority.sim
tests/script/unique/account/authority.sim
+1
-1
tests/script/unique/account/basic.sim
tests/script/unique/account/basic.sim
+1
-0
tests/script/unique/account/paras.sim
tests/script/unique/account/paras.sim
+1
-0
tests/script/unique/account/pass_alter.sim
tests/script/unique/account/pass_alter.sim
+1
-1
tests/script/unique/account/pass_len.sim
tests/script/unique/account/pass_len.sim
+1
-1
tests/script/unique/account/usage.sim
tests/script/unique/account/usage.sim
+1
-0
tests/script/unique/account/user_create.sim
tests/script/unique/account/user_create.sim
+1
-1
tests/script/unique/account/user_len.sim
tests/script/unique/account/user_len.sim
+1
-1
tests/script/unique/big/balance.sim
tests/script/unique/big/balance.sim
+24
-24
tests/script/unique/big/maxvnodes.sim
tests/script/unique/big/maxvnodes.sim
+21
-15
tests/script/unique/big/tcp.sim
tests/script/unique/big/tcp.sim
+4
-4
tests/script/unique/mnode/mgmt22.sim
tests/script/unique/mnode/mgmt22.sim
+13
-2
tests/script/unique/mnode/mgmt23.sim
tests/script/unique/mnode/mgmt23.sim
+3
-3
tests/script/unique/mnode/mgmt25.sim
tests/script/unique/mnode/mgmt25.sim
+2
-2
tests/script/unique/mnode/mgmt26.sim
tests/script/unique/mnode/mgmt26.sim
+3
-3
tests/script/unique/mnode/mgmt33.sim
tests/script/unique/mnode/mgmt33.sim
+5
-5
tests/script/unique/mnode/mgmt34.sim
tests/script/unique/mnode/mgmt34.sim
+9
-9
tests/test-all.sh
tests/test-all.sh
+6
-4
未找到文件。
.travis.yml
浏览文件 @
d5d67853
...
...
@@ -49,7 +49,7 @@ matrix:
./test-all.sh $TRAVIS_EVENT_TYPE || travis_terminate $?
cd ${TRAVIS_BUILD_DIR}/tests/pytest
./
smoke
test.sh -g 2>&1 | tee mem-error-out.txt
./
valgrind-
test.sh -g 2>&1 | tee mem-error-out.txt
sleep 1
# Color setting
...
...
@@ -115,7 +115,7 @@ matrix:
# The command that will be added as an argument to "cov-build" to compile your project for analysis,
# ** likely specific to your build **
build_command
:
make
> /dev/null
build_command
:
make
# Pattern to match selecting branches that will run analysis. We recommend leaving this set to 'coverity_scan'.
# Take care in resource usage, and consider the build frequency allowances per
...
...
@@ -163,11 +163,9 @@ matrix:
cd ${TRAVIS_BUILD_DIR}/tests
./test-all.sh
./test-all.sh
$TRAVIS_EVENT_TYPE COVER
if [ "$?" -ne "0" ]; then
travis_terminate $?
fi
TEST_RESULT=$?
pkill taosd
sleep 1
...
...
@@ -199,6 +197,9 @@ matrix:
echo -e "${RED} ## Codecov did not collect coverage report! ## ${NC} "
fi
if [ "$TEST_RESULT" -ne "0" ]; then
travis_terminate $?
fi
;;
esac
...
...
README.md
浏览文件 @
d5d67853
...
...
@@ -121,7 +121,7 @@ TDengine provides abundant developing tools for users to develop on TDengine. Fo
1.
sudo apt install
build-essential cmake net-tools python-pip python-setuptools python3-pip
python3-setuptools valgrind
python3-setuptools valgrind
psmisc curl
2.
git clone
<https://github.com/taosdata/TDengine>
; cd TDengine
...
...
src/client/inc/tsclient.h
浏览文件 @
d5d67853
...
...
@@ -365,7 +365,7 @@ void tscInitMsgsFp();
int
tsParseSql
(
SSqlObj
*
pSql
,
bool
multiVnodeInsertion
);
void
tscProcessMsgFromServer
(
SRpcMsg
*
rpcMsg
);
void
tscProcessMsgFromServer
(
SRpcMsg
*
rpcMsg
,
SRpcIpSet
*
pIpSet
);
int
tscProcessSql
(
SSqlObj
*
pSql
);
int
tscRenewMeterMeta
(
SSqlObj
*
pSql
,
char
*
tableId
);
...
...
src/client/src/tscFunctionImpl.c
浏览文件 @
d5d67853
...
...
@@ -1691,10 +1691,7 @@ static void last_function(SQLFunctionCtx *pCtx) {
}
static
void
last_function_f
(
SQLFunctionCtx
*
pCtx
,
int32_t
index
)
{
if
(
pCtx
->
order
==
TSDB_ORDER_ASC
)
{
return
;
}
assert
(
pCtx
->
order
!=
TSDB_ORDER_ASC
);
void
*
pData
=
GET_INPUT_CHAR_INDEX
(
pCtx
,
index
);
if
(
pCtx
->
hasNull
&&
isNull
(
pData
,
pCtx
->
inputType
))
{
return
;
...
...
@@ -2912,7 +2909,7 @@ static void leastsquares_finalizer(SQLFunctionCtx *pCtx) {
}
static
void
date_col_output_function
(
SQLFunctionCtx
*
pCtx
)
{
if
(
pCtx
->
scanFlag
==
SUPPLEMENTARY
_SCAN
)
{
if
(
pCtx
->
scanFlag
==
REVERSE
_SCAN
)
{
return
;
}
...
...
@@ -2969,11 +2966,12 @@ static void tag_project_function(SQLFunctionCtx *pCtx) {
char
*
output
=
pCtx
->
aOutputBuf
;
if
(
pCtx
->
tag
.
nType
==
TSDB_DATA_TYPE_BINARY
||
pCtx
->
tag
.
nType
==
TSDB_DATA_TYPE_NCHAR
)
{
*
(
int16_t
*
)
output
=
pCtx
->
tag
.
nLen
;
output
+=
VARSTR_HEADER_SIZE
;
varDataSetLen
(
output
,
pCtx
->
tag
.
nLen
);
tVariantDump
(
&
pCtx
->
tag
,
varDataVal
(
output
),
pCtx
->
outputType
);
}
else
{
tVariantDump
(
&
pCtx
->
tag
,
output
,
pCtx
->
outputType
);
}
tVariantDump
(
&
pCtx
->
tag
,
output
,
pCtx
->
outputType
);
pCtx
->
aOutputBuf
+=
pCtx
->
outputBytes
;
}
}
...
...
src/client/src/tscSQLParser.c
浏览文件 @
d5d67853
...
...
@@ -5563,8 +5563,8 @@ int32_t doCheckForCreateFromStable(SSqlObj* pSql, SSqlInfo* pInfo) {
return
invalidSqlErrMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg3
);
}
*
(
VarDataLenT
*
)
tagVal
=
pList
->
a
[
i
].
pVar
.
nLen
;
ret
=
tVariantDump
(
&
(
pList
->
a
[
i
].
pVar
),
tagVal
+
VARSTR_HEADER_SIZE
,
pTagSchema
[
i
].
type
);
ret
=
tVariantDump
(
&
(
pList
->
a
[
i
].
pVar
),
varDataVal
(
tagVal
),
pTagSchema
[
i
].
type
)
;
varDataSetLen
(
tagVal
,
pList
->
a
[
i
].
pVar
.
nLen
);
}
else
{
ret
=
tVariantDump
(
&
(
pList
->
a
[
i
].
pVar
),
tagVal
,
pTagSchema
[
i
].
type
);
}
...
...
@@ -5911,7 +5911,7 @@ int32_t exprTreeFromSqlExpr(tExprNode **pExpr, const tSQLExpr* pSqlExpr, SArray*
}
if
(
pSqlExpr
->
pLeft
==
NULL
)
{
if
(
pSqlExpr
->
nSQLOptr
>=
TK_
TINYINT
&&
pSqlExpr
->
nSQLOptr
<=
TK_DOUBLE
)
{
if
(
pSqlExpr
->
nSQLOptr
>=
TK_
BOOL
&&
pSqlExpr
->
nSQLOptr
<=
TK_STRING
)
{
*
pExpr
=
calloc
(
1
,
sizeof
(
tExprNode
));
(
*
pExpr
)
->
nodeType
=
TSQL_NODE_VALUE
;
(
*
pExpr
)
->
pVal
=
calloc
(
1
,
sizeof
(
tVariant
));
...
...
src/client/src/tscServer.c
浏览文件 @
d5d67853
...
...
@@ -221,7 +221,7 @@ int tscSendMsgToServer(SSqlObj *pSql) {
return
TSDB_CODE_SUCCESS
;
}
void
tscProcessMsgFromServer
(
SRpcMsg
*
rpcMsg
)
{
void
tscProcessMsgFromServer
(
SRpcMsg
*
rpcMsg
,
SRpcIpSet
*
pIpSet
)
{
SSqlObj
*
pSql
=
(
SSqlObj
*
)
rpcMsg
->
handle
;
if
(
pSql
==
NULL
)
{
tscError
(
"%p sql is already released"
,
pSql
->
signature
);
...
...
@@ -245,6 +245,12 @@ void tscProcessMsgFromServer(SRpcMsg *rpcMsg) {
return
;
}
if
(
pCmd
->
command
<
TSDB_SQL_MGMT
)
{
if
(
pIpSet
)
pSql
->
ipList
=
*
pIpSet
;
}
else
{
if
(
pIpSet
)
tscMgmtIpSet
=
*
pIpSet
;
}
if
(
rpcMsg
->
pCont
==
NULL
)
{
rpcMsg
->
code
=
TSDB_CODE_NETWORK_UNAVAIL
;
}
else
{
...
...
@@ -492,13 +498,15 @@ int tscBuildFetchMsg(SSqlObj *pSql, SSqlInfo *pInfo) {
pMsg
+=
sizeof
(
pQueryInfo
->
type
);
// todo valid the vgroupId at the client side
if
(
UTIL_TABLE_IS_SUPERTABLE
(
pQueryInfo
->
pTableMetaInfo
[
0
]))
{
SVgroupsInfo
*
pVgroupInfo
=
pQueryInfo
->
pTableMetaInfo
[
0
]
->
vgroupList
;
assert
(
pVgroupInfo
->
numOfVgroups
==
1
);
// todo fix me
STableMetaInfo
*
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
0
);
if
(
UTIL_TABLE_IS_SUPERTABLE
(
pTableMetaInfo
))
{
int32_t
vgIndex
=
pTableMetaInfo
->
vgroupIndex
;
pRetrieveMsg
->
header
.
vgId
=
htonl
(
pVgroupInfo
->
vgroups
[
0
].
vgId
);
SVgroupsInfo
*
pVgroupInfo
=
pTableMetaInfo
->
vgroupList
;
pRetrieveMsg
->
header
.
vgId
=
htonl
(
pVgroupInfo
->
vgroups
[
vgIndex
].
vgId
);
}
else
{
STableMeta
*
pTableMeta
=
p
QueryInfo
->
pTableMetaInfo
[
0
]
->
pTableMeta
;
STableMeta
*
pTableMeta
=
p
TableMetaInfo
->
pTableMeta
;
pRetrieveMsg
->
header
.
vgId
=
htonl
(
pTableMeta
->
vgroupInfo
.
vgId
);
}
...
...
src/client/src/tscSubquery.c
浏览文件 @
d5d67853
...
...
@@ -1436,8 +1436,8 @@ void tscHandleSubqueryError(SRetrieveSupport *trsupport, SSqlObj *pSql, int numO
return
;
}
else
{
// reach the maximum retry count, abort
atomic_val_compare_exchange_32
(
&
pState
->
code
,
TSDB_CODE_SUCCESS
,
numOfRows
);
tscError
(
"%p sub:%p retrieve failed,code:%
d,orderOfSub:%d failed.no more retry,set global code:%d
"
,
pPObj
,
pSql
,
numOfRows
,
subqueryIndex
,
tstrerror
(
pState
->
code
));
tscError
(
"%p sub:%p retrieve failed,code:%
s,orderOfSub:%d failed.no more retry,set global code:%s
"
,
pPObj
,
pSql
,
tstrerror
(
numOfRows
)
,
subqueryIndex
,
tstrerror
(
pState
->
code
));
}
}
...
...
@@ -1450,7 +1450,7 @@ void tscHandleSubqueryError(SRetrieveSupport *trsupport, SSqlObj *pSql, int numO
}
// all subqueries are failed
tscError
(
"%p retrieve from %d vnode(s) completed,code:%
d.FAILED."
,
pPObj
,
pState
->
numOfTotal
,
pState
->
code
);
tscError
(
"%p retrieve from %d vnode(s) completed,code:%
s.FAILED."
,
pPObj
,
pState
->
numOfTotal
,
tstrerror
(
pState
->
code
)
);
pPObj
->
res
.
code
=
pState
->
code
;
// release allocated resource
...
...
src/client/src/tscUtil.c
浏览文件 @
d5d67853
...
...
@@ -1675,10 +1675,7 @@ STableMetaInfo* tscAddTableMetaInfo(SQueryInfo* pQueryInfo, const char* name, ST
pTableMetaInfo
->
pTableMeta
=
pTableMeta
;
if
(
vgroupList
!=
NULL
)
{
assert
(
vgroupList
->
numOfVgroups
==
1
);
// todo fix me
size_t
size
=
sizeof
(
SVgroupsInfo
)
+
sizeof
(
SCMVgroupInfo
)
*
vgroupList
->
numOfVgroups
;
pTableMetaInfo
->
vgroupList
=
malloc
(
size
);
memcpy
(
pTableMetaInfo
->
vgroupList
,
vgroupList
,
size
);
}
...
...
src/common/inc/tdataformat.h
浏览文件 @
d5d67853
...
...
@@ -115,10 +115,8 @@ static FORCE_INLINE void *tdGetRowDataOfCol(SDataRow row, int8_t type, int32_t o
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_NCHAR
:
return
POINTER_SHIFT
(
row
,
*
(
VarDataOffsetT
*
)
POINTER_SHIFT
(
row
,
offset
));
break
;
default:
return
POINTER_SHIFT
(
row
,
offset
);
break
;
}
}
...
...
src/dnode/src/dnodeMgmt.c
浏览文件 @
d5d67853
...
...
@@ -266,9 +266,12 @@ static int32_t dnodeProcessConfigDnodeMsg(SRpcMsg *pMsg) {
return
taosCfgDynamicOptions
(
pCfg
->
config
);
}
void
dnodeUpdateIpSet
(
SRpcIpSet
*
pIpSet
)
{
dPrint
(
"mnode IP list is changed, numOfIps:%d inUse:%d"
,
pIpSet
->
numOfIps
,
pIpSet
->
inUse
);
for
(
int
i
=
0
;
i
<
pIpSet
->
numOfIps
;
++
i
)
{
dPrint
(
"mnode index:%d %s:%u"
,
i
,
pIpSet
->
fqdn
[
i
],
pIpSet
->
port
[
i
])
}
void
dnodeUpdateIpSet
(
void
*
ahandle
,
SRpcIpSet
*
pIpSet
)
{
dTrace
(
"mgmt IP list is changed for ufp is called"
);
tsMnodeIpSet
=
*
pIpSet
;
}
...
...
src/dnode/src/dnodePeer.c
浏览文件 @
d5d67853
...
...
@@ -29,11 +29,11 @@
#include "dnodeVWrite.h"
#include "mnode.h"
extern
void
dnodeUpdateIpSet
(
void
*
ahandle
,
SRpcIpSet
*
pIpSet
);
extern
void
dnodeUpdateIpSet
(
SRpcIpSet
*
pIpSet
);
static
void
(
*
dnodeProcessReqMsgFp
[
TSDB_MSG_TYPE_MAX
])(
SRpcMsg
*
);
static
void
dnodeProcessReqMsgFromDnode
(
SRpcMsg
*
pMsg
);
static
void
dnodeProcessReqMsgFromDnode
(
SRpcMsg
*
pMsg
,
SRpcIpSet
*
);
static
void
(
*
dnodeProcessRspMsgFp
[
TSDB_MSG_TYPE_MAX
])(
SRpcMsg
*
rpcMsg
);
static
void
dnodeProcessRspFromDnode
(
SRpcMsg
*
pMsg
);
static
void
dnodeProcessRspFromDnode
(
SRpcMsg
*
pMsg
,
SRpcIpSet
*
pIpSet
);
static
void
*
tsDnodeServerRpc
=
NULL
;
static
void
*
tsDnodeClientRpc
=
NULL
;
...
...
@@ -81,7 +81,7 @@ void dnodeCleanupServer() {
}
}
static
void
dnodeProcessReqMsgFromDnode
(
SRpcMsg
*
pMsg
)
{
static
void
dnodeProcessReqMsgFromDnode
(
SRpcMsg
*
pMsg
,
SRpcIpSet
*
pIpSet
)
{
SRpcMsg
rspMsg
;
rspMsg
.
handle
=
pMsg
->
handle
;
rspMsg
.
pCont
=
NULL
;
...
...
@@ -119,7 +119,6 @@ int32_t dnodeInitClient() {
rpcInit
.
label
=
"DND-C"
;
rpcInit
.
numOfThreads
=
1
;
rpcInit
.
cfp
=
dnodeProcessRspFromDnode
;
rpcInit
.
ufp
=
dnodeUpdateIpSet
;
rpcInit
.
sessions
=
100
;
rpcInit
.
connType
=
TAOS_CONN_CLIENT
;
rpcInit
.
idleTime
=
tsShellActivityTimer
*
1000
;
...
...
@@ -145,9 +144,10 @@ void dnodeCleanupClient() {
}
}
static
void
dnodeProcessRspFromDnode
(
SRpcMsg
*
pMsg
)
{
static
void
dnodeProcessRspFromDnode
(
SRpcMsg
*
pMsg
,
SRpcIpSet
*
pIpSet
)
{
if
(
dnodeProcessRspMsgFp
[
pMsg
->
msgType
])
{
if
(
pMsg
->
msgType
==
TSDB_MSG_TYPE_DM_STATUS_RSP
&&
pIpSet
)
dnodeUpdateIpSet
(
pIpSet
);
(
*
dnodeProcessRspMsgFp
[
pMsg
->
msgType
])(
pMsg
);
}
else
{
dError
(
"RPC %p, msg:%s is not processed"
,
pMsg
->
handle
,
taosMsg
[
pMsg
->
msgType
]);
...
...
src/dnode/src/dnodeShell.c
浏览文件 @
d5d67853
...
...
@@ -28,7 +28,7 @@
#include "dnodeShell.h"
static
void
(
*
dnodeProcessShellMsgFp
[
TSDB_MSG_TYPE_MAX
])(
SRpcMsg
*
);
static
void
dnodeProcessMsgFromShell
(
SRpcMsg
*
pMsg
);
static
void
dnodeProcessMsgFromShell
(
SRpcMsg
*
pMsg
,
SRpcIpSet
*
);
static
int
dnodeRetrieveUserAuthInfo
(
char
*
user
,
char
*
spi
,
char
*
encrypt
,
char
*
secret
,
char
*
ckey
);
static
void
*
tsDnodeShellRpc
=
NULL
;
static
int32_t
tsDnodeQueryReqNum
=
0
;
...
...
@@ -106,7 +106,7 @@ void dnodeCleanupShell() {
}
}
void
dnodeProcessMsgFromShell
(
SRpcMsg
*
pMsg
)
{
void
dnodeProcessMsgFromShell
(
SRpcMsg
*
pMsg
,
SRpcIpSet
*
pIpSet
)
{
SRpcMsg
rpcMsg
;
rpcMsg
.
handle
=
pMsg
->
handle
;
rpcMsg
.
pCont
=
NULL
;
...
...
src/inc/taosdef.h
浏览文件 @
d5d67853
...
...
@@ -36,6 +36,11 @@ extern "C" {
typedef
int32_t
VarDataOffsetT
;
typedef
int16_t
VarDataLenT
;
typedef
struct
tstr
{
VarDataLenT
len
;
char
data
[];
}
tstr
;
#define VARSTR_HEADER_SIZE sizeof(VarDataLenT)
#define varDataLen(v) ((VarDataLenT *)(v))[0]
...
...
@@ -74,10 +79,10 @@ extern const int32_t TYPE_BYTES[11];
#define TSDB_DATA_NULL_STR "NULL"
#define TSDB_DATA_NULL_STR_L "null"
#define TSDB_TRUE 1
#define TSDB_FALSE 0
#define TSDB_OK 0
#define TSDB_ERR -1
#define TSDB_TRUE
1
#define TSDB_FALSE
0
#define TSDB_OK
0
#define TSDB_ERR
-1
#define TS_PATH_DELIMITER "."
...
...
src/inc/trpc.h
浏览文件 @
d5d67853
...
...
@@ -66,10 +66,7 @@ typedef struct {
char
*
ckey
;
// ciphering key
// call back to process incoming msg, code shall be ignored by server app
void
(
*
cfp
)(
SRpcMsg
*
);
// call back to process notify the ipSet changes, for client app only
void
(
*
ufp
)(
void
*
ahandle
,
SRpcIpSet
*
pIpSet
);
void
(
*
cfp
)(
SRpcMsg
*
,
SRpcIpSet
*
);
// call back to retrieve the client auth info, for server app only
int
(
*
afp
)(
char
*
tableId
,
char
*
spi
,
char
*
encrypt
,
char
*
secret
,
char
*
ckey
);
...
...
src/inc/tsdb.h
浏览文件 @
d5d67853
...
...
@@ -102,7 +102,7 @@ int tsdbTableSetSName(STableCfg *config, char *sname, bool dup);
void
tsdbClearTableCfg
(
STableCfg
*
config
);
int32_t
tsdbGetTableTagVal
(
TsdbRepoT
*
repo
,
STableId
*
id
,
int32_t
colId
,
int16_t
*
type
,
int16_t
*
bytes
,
char
**
val
);
int32_t
tsdbGetTableName
(
TsdbRepoT
*
repo
,
STableId
*
id
,
char
**
name
);
char
*
tsdbGetTableName
(
TsdbRepoT
*
repo
,
const
STableId
*
id
,
int16_t
*
bytes
);
int
tsdbCreateTable
(
TsdbRepoT
*
repo
,
STableCfg
*
pCfg
);
int
tsdbDropTable
(
TsdbRepoT
*
pRepo
,
STableId
tableId
);
...
...
src/mnode/inc/mgmtDef.h
浏览文件 @
d5d67853
...
...
@@ -85,8 +85,7 @@ typedef struct SSuperTableObj {
int32_t
numOfTables
;
int16_t
nextColId
;
SSchema
*
schema
;
int32_t
vgLen
;
int32_t
*
vgList
;
void
*
vgHash
;
}
SSuperTableObj
;
typedef
struct
{
...
...
src/mnode/src/mgmtDb.c
浏览文件 @
d5d67853
...
...
@@ -297,8 +297,10 @@ static int32_t mgmtCreateDb(SAcctObj *pAcct, SCMCreateDbMsg *pCreate) {
if
(
pDb
!=
NULL
)
{
mgmtDecDbRef
(
pDb
);
if
(
pCreate
->
ignoreExist
)
{
mTrace
(
"db:%s, already exist, ignore exist is set"
,
pCreate
->
db
);
return
TSDB_CODE_SUCCESS
;
}
else
{
mError
(
"db:%s, is already exist, ignore exist not set"
,
pCreate
->
db
);
return
TSDB_CODE_DB_ALREADY_EXIST
;
}
}
...
...
@@ -751,6 +753,8 @@ static void mgmtProcessCreateDbMsg(SQueuedMsg *pMsg) {
code
=
mgmtCreateDb
(
pMsg
->
pUser
->
pAcct
,
pCreate
);
if
(
code
==
TSDB_CODE_SUCCESS
)
{
mLPrint
(
"db:%s, is created by %s"
,
pCreate
->
db
,
pMsg
->
pUser
->
user
);
}
else
{
mError
(
"db:%s, failed to create, reason:%s"
,
pCreate
->
db
,
tstrerror
(
code
));
}
}
...
...
src/mnode/src/mgmtTable.c
浏览文件 @
d5d67853
...
...
@@ -24,6 +24,7 @@
#include "tname.h"
#include "tidpool.h"
#include "tglobal.h"
#include "hash.h"
#include "dnode.h"
#include "mgmtDef.h"
#include "mgmtInt.h"
...
...
@@ -363,39 +364,35 @@ static void mgmtCleanUpChildTables() {
}
static
void
mgmtAddTableIntoStable
(
SSuperTableObj
*
pStable
,
SChildTableObj
*
pCtable
)
{
if
(
pStable
->
vgLen
==
0
)
{
pStable
->
vgLen
=
8
;
pStable
->
vgList
=
calloc
(
pStable
->
vgLen
,
sizeof
(
int32_t
));
}
bool
find
=
false
;
int32_t
pos
=
0
;
for
(
pos
=
0
;
pos
<
pStable
->
vgLen
;
++
pos
)
{
if
(
pStable
->
vgList
[
pos
]
==
0
)
break
;
if
(
pStable
->
vgList
[
pos
]
==
pCtable
->
vgId
)
{
find
=
true
;
break
;
}
}
pStable
->
numOfTables
++
;
if
(
!
find
)
{
if
(
pos
>=
pStable
->
vgLen
)
{
pStable
->
vgLen
*=
2
;
pStable
->
vgList
=
realloc
(
pStable
->
vgList
,
pStable
->
vgLen
*
sizeof
(
int32_t
));
}
pStable
->
vgList
[
pos
]
=
pCtable
->
vgId
;
if
(
pStable
->
vgHash
==
NULL
)
{
pStable
->
vgHash
=
taosHashInit
(
32
,
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_INT
),
false
);
}
pStable
->
numOfTables
++
;
if
(
pStable
->
vgHash
!=
NULL
)
{
taosHashPut
(
pStable
->
vgHash
,
(
char
*
)
&
pCtable
->
vgId
,
sizeof
(
pCtable
->
vgId
),
&
pCtable
->
vgId
,
sizeof
(
pCtable
->
vgId
));
}
}
static
void
mgmtRemoveTableFromStable
(
SSuperTableObj
*
pStable
,
SChildTableObj
*
pCtable
)
{
pStable
->
numOfTables
--
;
if
(
pStable
->
vgHash
==
NULL
)
return
;
SVgObj
*
pVgroup
=
mgmtGetVgroup
(
pCtable
->
vgId
);
if
(
pVgroup
!=
NULL
)
{
taosHashRemove
(
pStable
->
vgHash
,
(
char
*
)
&
pCtable
->
vgId
,
sizeof
(
pCtable
->
vgId
));
}
mgmtDecVgroupRef
(
pVgroup
);
}
static
void
mgmtDestroySuperTable
(
SSuperTableObj
*
pStable
)
{
if
(
pStable
->
vgHash
!=
NULL
)
{
taosHashCleanup
(
pStable
->
vgHash
);
pStable
->
vgHash
=
NULL
;
}
tfree
(
pStable
->
schema
);
tfree
(
pStable
->
vgList
)
tfree
(
pStable
);
}
...
...
@@ -434,7 +431,7 @@ static int32_t mgmtSuperTableActionUpdate(SSdbOper *pOper) {
void
*
oldSchema
=
pTable
->
schema
;
memcpy
(
pTable
,
pNew
,
pOper
->
rowSize
);
pTable
->
schema
=
pNew
->
schema
;
free
(
pNew
->
vg
List
);
free
(
pNew
->
vg
Hash
);
free
(
pNew
);
free
(
oldSchema
);
}
...
...
@@ -797,26 +794,26 @@ static void mgmtProcessCreateSuperTableMsg(SQueuedMsg *pMsg) {
static
void
mgmtProcessDropSuperTableMsg
(
SQueuedMsg
*
pMsg
)
{
SSuperTableObj
*
pStable
=
(
SSuperTableObj
*
)
pMsg
->
pTable
;
if
(
pStable
->
numOfTables
!=
0
)
{
mgmtDropAllChildTablesInStable
(
pStable
);
for
(
int32_t
vg
=
0
;
vg
<
pStable
->
vgLen
;
++
vg
)
{
int32_t
vgId
=
pStable
->
vgList
[
vg
];
if
(
vgId
==
0
)
break
;
SVgObj
*
pVgroup
=
mgmtGetVgroup
(
vgId
);
SHashMutableIterator
*
pIter
=
taosHashCreateIter
(
pStable
->
vgHash
);
while
(
taosHashIterNext
(
pIter
))
{
int32_t
*
pVgId
=
taosHashIterGet
(
pIter
);
SVgObj
*
pVgroup
=
mgmtGetVgroup
(
*
pVgId
);
if
(
pVgroup
==
NULL
)
break
;
SMDDropSTableMsg
*
pDrop
=
rpcMallocCont
(
sizeof
(
SMDDropSTableMsg
));
pDrop
->
contLen
=
htonl
(
sizeof
(
SMDDropSTableMsg
));
pDrop
->
vgId
=
htonl
(
vgId
);
pDrop
->
vgId
=
htonl
(
pVgroup
->
vgId
);
pDrop
->
uid
=
htobe64
(
pStable
->
uid
);
mgmtExtractTableName
(
pStable
->
info
.
tableId
,
pDrop
->
tableId
);
mPrint
(
"stable:%s, send drop stable msg to vgId:%d"
,
pStable
->
info
.
tableId
,
vgId
);
mPrint
(
"stable:%s, send drop stable msg to vgId:%d"
,
pStable
->
info
.
tableId
,
pVgroup
->
vgId
);
SRpcIpSet
ipSet
=
mgmtGetIpSetFromVgroup
(
pVgroup
);
SRpcMsg
rpcMsg
=
{.
pCont
=
pDrop
,
.
contLen
=
sizeof
(
SMDDropSTableMsg
),
.
msgType
=
TSDB_MSG_TYPE_MD_DROP_STABLE
};
dnodeSendMsgToDnode
(
&
ipSet
,
&
rpcMsg
);
mgmtDecVgroupRef
(
pVgroup
);
}
mgmtDropAllChildTablesInStable
(
pStable
);
}
SSdbOper
oper
=
{
...
...
@@ -1243,59 +1240,58 @@ static void mgmtGetSuperTableMeta(SQueuedMsg *pMsg) {
static
void
mgmtProcessSuperTableVgroupMsg
(
SQueuedMsg
*
pMsg
)
{
SCMSTableVgroupMsg
*
pInfo
=
pMsg
->
pCont
;
int32_t
numOfTable
=
htonl
(
pInfo
->
numOfTables
);
char
*
name
=
(
char
*
)
pInfo
+
sizeof
(
struct
SCMSTableVgroupMsg
);
SCMSTableVgroupRspMsg
*
pRsp
=
NULL
;
// todo set the initial size to be 10, fix me
int32_t
contLen
=
sizeof
(
SCMSTableVgroupRspMsg
)
+
(
sizeof
(
SCMVgroupInfo
)
*
10
+
sizeof
(
SVgroupsInfo
))
*
numOfTable
;
pRsp
=
rpcMallocCont
(
contLen
);
// reserve space
int32_t
contLen
=
sizeof
(
SCMSTableVgroupRspMsg
)
+
32
*
sizeof
(
SCMVgroupInfo
)
+
sizeof
(
SVgroupsInfo
);
for
(
int32_t
i
=
0
;
i
<
numOfTable
;
++
i
)
{
char
*
stableName
=
(
char
*
)
pInfo
+
sizeof
(
SCMSTableVgroupMsg
)
+
(
TSDB_TABLE_ID_LEN
)
*
i
;
SSuperTableObj
*
pTable
=
mgmtGetSuperTable
(
stableName
);
if
(
pTable
->
vgHash
!=
NULL
)
{
contLen
+=
(
taosHashGetSize
(
pTable
->
vgHash
)
*
sizeof
(
SCMVgroupInfo
)
+
sizeof
(
SVgroupsInfo
));
}
mgmtDecTableRef
(
pTable
);
}
SCMSTableVgroupRspMsg
*
pRsp
=
rpcMallocCont
(
contLen
);
if
(
pRsp
==
NULL
)
{
mgmtSendSimpleResp
(
pMsg
->
thandle
,
TSDB_CODE_SERV_OUT_OF_MEMORY
);
return
;
}
pRsp
->
numOfTables
=
htonl
(
numOfTable
);
char
*
msg
=
(
char
*
)
pRsp
+
sizeof
(
SCMSTableVgroupRspMsg
);
for
(
int32_t
i
=
0
;
i
<
numOfTable
;
++
i
)
{
SSuperTableObj
*
pTable
=
mgmtGetSuperTable
(
name
);
pMsg
->
pTable
=
(
STableObj
*
)
pTable
;
if
(
pMsg
->
pTable
==
NULL
)
{
mgmtSendSimpleResp
(
pMsg
->
thandle
,
TSDB_CODE_INVALID_TABLE
);
return
;
}
SVgroupsInfo
*
pVgroup
=
(
SVgroupsInfo
*
)
msg
;
int32_t
vg
=
0
;
for
(;
vg
<
pTable
->
vgLen
;
++
vg
)
{
int32_t
vgId
=
pTable
->
vgList
[
vg
];
if
(
vgId
==
0
)
break
;
SVgObj
*
vgItem
=
mgmtGetVgroup
(
vgId
);
if
(
vgItem
==
NULL
)
break
;
pVgroup
->
vgroups
[
vg
].
vgId
=
htonl
(
vgId
);
for
(
int32_t
vn
=
0
;
vn
<
vgItem
->
numOfVnodes
;
++
vn
)
{
SDnodeObj
*
pDnode
=
vgItem
->
vnodeGid
[
vn
].
pDnode
;
for
(
int32_t
i
=
0
;
i
<
numOfTable
;
++
i
)
{
char
*
stableName
=
(
char
*
)
pInfo
+
sizeof
(
SCMSTableVgroupMsg
)
+
(
TSDB_TABLE_ID_LEN
)
*
i
;
SSuperTableObj
*
pTable
=
mgmtGetSuperTable
(
stableName
);
SVgroupsInfo
*
pVgroupInfo
=
(
SVgroupsInfo
*
)
msg
;
SHashMutableIterator
*
pIter
=
taosHashCreateIter
(
pTable
->
vgHash
);
int32_t
vgSize
=
0
;
while
(
taosHashIterNext
(
pIter
))
{
int32_t
*
pVgId
=
taosHashIterGet
(
pIter
);
SVgObj
*
pVgroup
=
mgmtGetVgroup
(
*
pVgId
);
if
(
pVgroup
==
NULL
)
continue
;
pVgroupInfo
->
vgroups
[
vgSize
].
vgId
=
htonl
(
pVgroup
->
vgId
);
for
(
int32_t
vn
=
0
;
vn
<
pVgroup
->
numOfVnodes
;
++
vn
)
{
SDnodeObj
*
pDnode
=
pVgroup
->
vnodeGid
[
vn
].
pDnode
;
if
(
pDnode
==
NULL
)
break
;
strncpy
(
pVgroup
->
vgroups
[
vg
].
ipAddr
[
vn
].
fqdn
,
pDnode
->
dnodeFqdn
,
tListLen
(
pDnode
->
dnodeFqdn
));
pVgroup
->
vgroups
[
vg
].
ipAddr
[
vn
].
port
=
htons
(
tsDnodeShellPort
);
pVgroup
->
vgroups
[
vg
].
numOfIps
++
;
strncpy
(
pVgroup
Info
->
vgroups
[
vgSize
].
ipAddr
[
vn
].
fqdn
,
pDnode
->
dnodeFqdn
,
tListLen
(
pDnode
->
dnodeFqdn
));
pVgroup
Info
->
vgroups
[
vgSize
].
ipAddr
[
vn
].
port
=
htons
(
tsDnodeShellPort
);
pVgroup
Info
->
vgroups
[
vgSize
].
numOfIps
++
;
}
mgmtDecVgroupRef
(
vgItem
);
vgSize
++
;
mgmtDecVgroupRef
(
pVgroup
);
}
pVgroup
->
numOfVgroups
=
htonl
(
vg
);
pVgroup
Info
->
numOfVgroups
=
htonl
(
vgSize
);
// one table is done, try the next table
msg
+=
sizeof
(
SVgroupsInfo
)
+
vg
*
sizeof
(
SCMVgroupInfo
);
msg
+=
sizeof
(
SVgroupsInfo
)
+
vg
Size
*
sizeof
(
SCMVgroupInfo
);
}
SRpcMsg
rpcRsp
=
{
0
};
...
...
src/query/inc/queryExecutor.h
浏览文件 @
d5d67853
...
...
@@ -110,6 +110,14 @@ typedef struct STableQueryInfo { // todo merge with the STableQueryInfo struct
SWindowResInfo
windowResInfo
;
}
STableQueryInfo
;
typedef
struct
SQueryCostSummary
{
}
SQueryCostSummary
;
typedef
struct
SGroupItem
{
STableId
id
;
STableQueryInfo
*
info
;
}
SGroupItem
;
typedef
struct
SQuery
{
int16_t
numOfCols
;
int16_t
numOfTags
;
...
...
@@ -131,17 +139,15 @@ typedef struct SQuery {
SColumnInfo
*
tagColList
;
int32_t
numOfFilterCols
;
int64_t
*
defaultVal
;
TSKEY
lastKey
;
//
TSKEY lastKey;
uint32_t
status
;
// query status
SResultRec
rec
;
int32_t
pos
;
SData
**
sdata
;
STableQueryInfo
*
current
;
SSingleColumnFilterInfo
*
pFilterInfo
;
}
SQuery
;
typedef
struct
SQueryCostSummary
{
}
SQueryCostSummary
;
typedef
struct
SQueryRuntimeEnv
{
SResultInfo
*
resultInfo
;
// todo refactor to merge with SWindowResInfo
SQuery
*
pQuery
;
...
...
src/query/inc/tsqlfunction.h
浏览文件 @
d5d67853
...
...
@@ -104,7 +104,7 @@ extern "C" {
enum
{
MASTER_SCAN
=
0x0u
,
SUPPLEMENTARY_SCAN
=
0x1u
,
REVERSE_SCAN
=
0x1u
,
REPEAT_SCAN
=
0x2u
,
//repeat scan belongs to the master scan
FIRST_STAGE_MERGE
=
0x10u
,
SECONDARY_STAGE_MERGE
=
0x20u
,
...
...
src/query/src/qast.c
浏览文件 @
d5d67853
...
...
@@ -540,8 +540,11 @@ static int32_t setQueryCond(tQueryInfo *queryColInfo, SQueryCond* pCond) {
static
void
tQueryIndexColumn
(
SSkipList
*
pSkipList
,
tQueryInfo
*
pQueryInfo
,
SArray
*
result
)
{
SSkipListIterator
*
iter
=
NULL
;
SQueryCond
cond
=
{
0
};
setQueryCond
(
pQueryInfo
,
&
cond
);
if
(
setQueryCond
(
pQueryInfo
,
&
cond
)
!=
TSDB_CODE_SUCCESS
)
{
//todo handle error
}
if
(
cond
.
start
!=
NULL
)
{
iter
=
tSkipListCreateIterFromVal
(
pSkipList
,
(
char
*
)
cond
.
start
->
v
,
pSkipList
->
keyInfo
.
type
,
TSDB_ORDER_ASC
);
...
...
@@ -552,18 +555,18 @@ static void tQueryIndexColumn(SSkipList* pSkipList, tQueryInfo* pQueryInfo, SArr
if
(
cond
.
start
!=
NULL
)
{
int32_t
optr
=
cond
.
start
->
optr
;
if
(
optr
==
TSDB_RELATION_EQUAL
)
{
if
(
optr
==
TSDB_RELATION_EQUAL
)
{
// equals
while
(
tSkipListIterNext
(
iter
))
{
SSkipListNode
*
pNode
=
tSkipListIterGet
(
iter
);
int32_t
ret
=
pQueryInfo
->
compare
(
SL_GET_NODE_KEY
(
pSkipList
,
pNode
),
cond
.
start
->
v
);
if
(
ret
==
0
)
{
taosArrayPush
(
result
,
SL_GET_NODE_DATA
(
pNode
));
}
else
{
if
(
ret
!=
0
)
{
break
;
}
taosArrayPush
(
result
,
SL_GET_NODE_DATA
(
pNode
));
}
}
else
if
(
optr
==
TSDB_RELATION_GREATER
||
optr
==
TSDB_RELATION_GREATER_EQUAL
)
{
}
else
if
(
optr
==
TSDB_RELATION_GREATER
||
optr
==
TSDB_RELATION_GREATER_EQUAL
)
{
// greater equal
bool
comp
=
true
;
int32_t
ret
=
0
;
...
...
@@ -582,8 +585,33 @@ static void tQueryIndexColumn(SSkipList* pSkipList, tQueryInfo* pQueryInfo, SArr
comp
=
false
;
}
}
}
else
if
(
optr
==
TSDB_RELATION_NOT_EQUAL
)
{
assert
(
0
);
}
else
if
(
optr
==
TSDB_RELATION_NOT_EQUAL
)
{
// not equal
bool
comp
=
true
;
while
(
tSkipListIterNext
(
iter
))
{
SSkipListNode
*
pNode
=
tSkipListIterGet
(
iter
);
comp
=
comp
&&
(
pQueryInfo
->
compare
(
SL_GET_NODE_KEY
(
pSkipList
,
pNode
),
cond
.
start
->
v
)
==
0
);
if
(
comp
)
{
continue
;
}
taosArrayPush
(
result
,
SL_GET_NODE_DATA
(
pNode
));
}
tSkipListDestroyIter
(
iter
);
comp
=
true
;
iter
=
tSkipListCreateIterFromVal
(
pSkipList
,
(
char
*
)
cond
.
start
->
v
,
pSkipList
->
keyInfo
.
type
,
TSDB_ORDER_DESC
);
while
(
tSkipListIterNext
(
iter
))
{
SSkipListNode
*
pNode
=
tSkipListIterGet
(
iter
);
comp
=
comp
&&
(
pQueryInfo
->
compare
(
SL_GET_NODE_KEY
(
pSkipList
,
pNode
),
cond
.
start
->
v
)
==
0
);
if
(
comp
)
{
continue
;
}
taosArrayPush
(
result
,
SL_GET_NODE_DATA
(
pNode
));
}
}
else
{
assert
(
0
);
}
...
...
@@ -773,8 +801,6 @@ static void tSQLBinaryTraverseOnSkipList(tExprNode *pExpr, SArray *pResult, SSki
tSkipListDestroyIter
(
iter
);
}
static
void
tQueryIndexlessColumn
(
SSkipList
*
pSkipList
,
tQueryInfo
*
pQueryInfo
,
SArray
*
result
)
{
SSkipListIterator
*
iter
=
tSkipListCreateIter
(
pSkipList
);
...
...
@@ -785,7 +811,7 @@ static void tQueryIndexlessColumn(SSkipList* pSkipList, tQueryInfo* pQueryInfo,
char
*
pTable
=
SL_GET_NODE_DATA
(
pNode
);
//todo refactor:
char
*
name
=
(
*
(
STable
**
)
pTable
)
->
name
;
tstr
*
name
=
((
STableIndexElem
*
)
pTable
)
->
pTable
->
name
;
// char* name = NULL;
// tsdbGetTableName(tsdb, pTable, &name);
...
...
src/query/src/queryExecutor.c
浏览文件 @
d5d67853
此差异已折叠。
点击以展开。
src/query/src/tvariant.c
浏览文件 @
d5d67853
...
...
@@ -389,6 +389,7 @@ static int32_t toBinary(tVariant *pVariant, char **pDest, int32_t *pDestSize) {
return
0
;
}
// todo handle the error
static
int32_t
toNchar
(
tVariant
*
pVariant
,
char
**
pDest
,
int32_t
*
pDestSize
)
{
char
tmpBuf
[
40
]
=
{
0
};
...
...
@@ -424,7 +425,12 @@ static int32_t toNchar(tVariant *pVariant, char **pDest, int32_t *pDestSize) {
pVariant
->
wpz
=
(
wchar_t
*
)
tmp
;
}
else
{
taosMbsToUcs4
(
pDst
,
nLen
,
*
pDest
,
(
nLen
+
1
)
*
TSDB_NCHAR_SIZE
,
NULL
);
size_t
output
=
-
1
;
taosMbsToUcs4
(
pDst
,
nLen
,
*
pDest
,
(
nLen
+
1
)
*
TSDB_NCHAR_SIZE
,
&
output
);
if
(
pDestSize
!=
NULL
)
{
*
pDestSize
=
output
;
}
}
return
0
;
...
...
@@ -779,7 +785,7 @@ int32_t tVariantDump(tVariant *pVariant, char *payload, char type) {
}
case
TSDB_DATA_TYPE_NCHAR
:
{
if
(
pVariant
->
nType
==
TSDB_DATA_TYPE_NULL
)
{
*
(
uint32_t
*
)
payload
=
TSDB_DATA_NCHAR_NULL
;
*
(
uint32_t
*
)
payload
=
TSDB_DATA_NCHAR_NULL
;
}
else
{
if
(
pVariant
->
nType
!=
TSDB_DATA_TYPE_NCHAR
)
{
toNchar
(
pVariant
,
&
payload
,
&
pVariant
->
nLen
);
...
...
src/rpc/src/rpcMain.c
浏览文件 @
d5d67853
...
...
@@ -55,9 +55,8 @@ typedef struct {
char
secret
[
TSDB_KEY_LEN
];
// secret for the link
char
ckey
[
TSDB_KEY_LEN
];
// ciphering key
void
(
*
cfp
)(
SRpcMsg
*
);
void
(
*
cfp
)(
SRpcMsg
*
,
SRpcIpSet
*
);
int
(
*
afp
)(
char
*
user
,
char
*
spi
,
char
*
encrypt
,
char
*
secret
,
char
*
ckey
);
void
(
*
ufp
)(
void
*
ahandle
,
SRpcIpSet
*
pIpSet
);
void
*
idPool
;
// handle to ID pool
void
*
tmrCtrl
;
// handle to timer
...
...
@@ -222,7 +221,6 @@ void *rpcOpen(const SRpcInit *pInit) {
if
(
pInit
->
secret
)
strcpy
(
pRpc
->
secret
,
pInit
->
secret
);
if
(
pInit
->
ckey
)
strcpy
(
pRpc
->
ckey
,
pInit
->
ckey
);
pRpc
->
spi
=
pInit
->
spi
;
pRpc
->
ufp
=
pInit
->
ufp
;
pRpc
->
cfp
=
pInit
->
cfp
;
pRpc
->
afp
=
pInit
->
afp
;
...
...
@@ -900,10 +898,11 @@ static void rpcNotifyClient(SRpcReqContext *pContext, SRpcMsg *pMsg) {
memcpy
(
pContext
->
pRsp
,
pMsg
,
sizeof
(
SRpcMsg
));
}
else
{
// for asynchronous API
if
(
pRpc
->
ufp
&&
(
pContext
->
ipSet
.
inUse
!=
pContext
->
oldInUse
||
pContext
->
redirect
))
(
*
pRpc
->
ufp
)(
pContext
->
ahandle
,
&
pContext
->
ipSet
);
// notify the update of ipSet
SRpcIpSet
*
pIpSet
=
NULL
;
if
(
pContext
->
ipSet
.
inUse
!=
pContext
->
oldInUse
||
pContext
->
redirect
)
pIpSet
=
&
pContext
->
ipSet
;
(
*
pRpc
->
cfp
)(
pMsg
);
(
*
pRpc
->
cfp
)(
pMsg
,
pIpSet
);
}
// free the request message
...
...
@@ -924,7 +923,7 @@ static void rpcProcessIncomingMsg(SRpcConn *pConn, SRpcHead *pHead) {
if
(
rpcIsReq
(
pHead
->
msgType
)
)
{
rpcMsg
.
handle
=
pConn
;
taosTmrReset
(
rpcProcessProgressTimer
,
tsRpcTimer
/
2
,
pConn
,
pRpc
->
tmrCtrl
,
&
pConn
->
pTimer
);
(
*
(
pRpc
->
cfp
))(
&
rpcMsg
);
(
*
(
pRpc
->
cfp
))(
&
rpcMsg
,
NULL
);
}
else
{
// it's a response
SRpcReqContext
*
pContext
=
pConn
->
pContext
;
...
...
src/rpc/test/rclient.c
浏览文件 @
d5d67853
...
...
@@ -31,22 +31,16 @@ typedef struct {
void
*
pRpc
;
}
SInfo
;
static
void
processResponse
(
SRpcMsg
*
pMsg
)
{
static
void
processResponse
(
SRpcMsg
*
pMsg
,
SRpcIpSet
*
pIpSet
)
{
SInfo
*
pInfo
=
(
SInfo
*
)
pMsg
->
handle
;
tTrace
(
"thread:%d, response is received, type:%d contLen:%d code:0x%x"
,
pInfo
->
index
,
pMsg
->
msgType
,
pMsg
->
contLen
,
pMsg
->
code
);
rpcFreeCont
(
pMsg
->
pCont
)
;
if
(
pIpSet
)
pInfo
->
ipSet
=
*
pIpSet
;
rpcFreeCont
(
pMsg
->
pCont
);
sem_post
(
&
pInfo
->
rspSem
);
}
static
void
processUpdateIpSet
(
void
*
handle
,
SRpcIpSet
*
pIpSet
)
{
SInfo
*
pInfo
=
(
SInfo
*
)
handle
;
tTrace
(
"thread:%d, ip set is changed, index:%d"
,
pInfo
->
index
,
pIpSet
->
inUse
);
pInfo
->
ipSet
=
*
pIpSet
;
}
static
int
tcount
=
0
;
static
void
*
sendRequest
(
void
*
param
)
{
...
...
@@ -99,7 +93,6 @@ int main(int argc, char *argv[]) {
rpcInit
.
label
=
"APP"
;
rpcInit
.
numOfThreads
=
1
;
rpcInit
.
cfp
=
processResponse
;
rpcInit
.
ufp
=
processUpdateIpSet
;
rpcInit
.
sessions
=
100
;
rpcInit
.
idleTime
=
tsShellActivityTimer
*
1000
;
rpcInit
.
user
=
"michael"
;
...
...
src/rpc/test/rsclient.c
浏览文件 @
d5d67853
...
...
@@ -32,12 +32,6 @@ typedef struct {
void
*
pRpc
;
}
SInfo
;
static
void
processUpdateIpSet
(
void
*
handle
,
SRpcIpSet
*
pIpSet
)
{
SInfo
*
pInfo
=
(
SInfo
*
)
handle
;
tTrace
(
"thread:%d, ip set is changed, index:%d"
,
pInfo
->
index
,
pIpSet
->
inUse
);
pInfo
->
ipSet
=
*
pIpSet
;
}
static
int
tcount
=
0
;
static
int
terror
=
0
;
...
...
@@ -100,8 +94,6 @@ int main(int argc, char *argv[]) {
rpcInit
.
localPort
=
0
;
rpcInit
.
label
=
"APP"
;
rpcInit
.
numOfThreads
=
1
;
// rpcInit.cfp = processResponse;
rpcInit
.
ufp
=
processUpdateIpSet
;
rpcInit
.
sessions
=
100
;
rpcInit
.
idleTime
=
tsShellActivityTimer
*
1000
;
rpcInit
.
user
=
"michael"
;
...
...
src/rpc/test/rserver.c
浏览文件 @
d5d67853
...
...
@@ -113,7 +113,7 @@ int retrieveAuthInfo(char *meterId, char *spi, char *encrypt, char *secret, char
return
ret
;
}
void
processRequestMsg
(
SRpcMsg
*
pMsg
)
{
void
processRequestMsg
(
SRpcMsg
*
pMsg
,
SRpcIpSet
*
pIpSet
)
{
SRpcMsg
*
pTemp
;
pTemp
=
taosAllocateQitem
(
sizeof
(
SRpcMsg
));
...
...
src/tsdb/inc/tsdbMain.h
浏览文件 @
d5d67853
...
...
@@ -81,7 +81,6 @@ typedef struct {
// ---------- TSDB TABLE DEFINITION
typedef
struct
STable
{
int8_t
type
;
char
*
name
;
STableId
tableId
;
int64_t
superUid
;
// Super table UID
int32_t
sversion
;
...
...
@@ -96,9 +95,10 @@ typedef struct STable {
TSKEY
lastKey
;
// lastkey inserted in this table, initialized as 0, TODO: make a structure
struct
STable
*
next
;
// TODO: remove the next
struct
STable
*
prev
;
tstr
*
name
;
// NOTE: there a flexible string here
}
STable
;
#define TSDB_GET_TABLE_LAST_KEY(
pTable) ((pTable
)->lastKey)
#define TSDB_GET_TABLE_LAST_KEY(
tb) ((tb
)->lastKey)
void
*
tsdbEncodeTable
(
STable
*
pTable
,
int
*
contLen
);
STable
*
tsdbDecodeTable
(
void
*
cont
,
int
contLen
);
...
...
@@ -121,6 +121,12 @@ typedef struct {
int
maxCols
;
}
STsdbMeta
;
// element put in skiplist for each table
typedef
struct
STableIndexElem
{
STsdbMeta
*
pMeta
;
STable
*
pTable
;
}
STableIndexElem
;
STsdbMeta
*
tsdbInitMeta
(
char
*
rootDir
,
int32_t
maxTables
);
int32_t
tsdbFreeMeta
(
STsdbMeta
*
pMeta
);
STSchema
*
tsdbGetTableSchema
(
STsdbMeta
*
pMeta
,
STable
*
pTable
);
...
...
@@ -150,7 +156,7 @@ int32_t tsdbDropTableImpl(STsdbMeta *pMeta, STableId tableId);
STable
*
tsdbIsValidTableToInsert
(
STsdbMeta
*
pMeta
,
STableId
tableId
);
// int32_t tsdbInsertRowToTableImpl(SSkipListNode *pNode, STable *pTable);
STable
*
tsdbGetTableByUid
(
STsdbMeta
*
pMeta
,
int64_t
uid
);
char
*
getTupleKey
(
const
void
*
data
);
char
*
getTSTupleKey
(
const
void
*
data
);
typedef
struct
{
int
blockId
;
...
...
src/tsdb/src/tsdbMain.c
浏览文件 @
d5d67853
...
...
@@ -809,7 +809,7 @@ static int32_t tdInsertRowToTable(STsdbRepo *pRepo, SDataRow row, STable *pTable
if
(
pTable
->
mem
==
NULL
)
{
pTable
->
mem
=
(
SMemTable
*
)
calloc
(
1
,
sizeof
(
SMemTable
));
if
(
pTable
->
mem
==
NULL
)
return
-
1
;
pTable
->
mem
->
pData
=
tSkipListCreate
(
5
,
TSDB_DATA_TYPE_TIMESTAMP
,
TYPE_BYTES
[
TSDB_DATA_TYPE_TIMESTAMP
],
0
,
0
,
0
,
getTupleKey
);
pTable
->
mem
->
pData
=
tSkipListCreate
(
5
,
TSDB_DATA_TYPE_TIMESTAMP
,
TYPE_BYTES
[
TSDB_DATA_TYPE_TIMESTAMP
],
0
,
0
,
0
,
getT
ST
upleKey
);
pTable
->
mem
->
keyFirst
=
INT64_MAX
;
pTable
->
mem
->
keyLast
=
0
;
}
...
...
@@ -832,7 +832,7 @@ static int32_t tdInsertRowToTable(STsdbRepo *pRepo, SDataRow row, STable *pTable
if
(
pTable
->
mem
==
NULL
)
{
pTable
->
mem
=
(
SMemTable
*
)
calloc
(
1
,
sizeof
(
SMemTable
));
if
(
pTable
->
mem
==
NULL
)
return
-
1
;
pTable
->
mem
->
pData
=
tSkipListCreate
(
5
,
TSDB_DATA_TYPE_TIMESTAMP
,
TYPE_BYTES
[
TSDB_DATA_TYPE_TIMESTAMP
],
0
,
0
,
0
,
getTupleKey
);
pTable
->
mem
->
pData
=
tSkipListCreate
(
5
,
TSDB_DATA_TYPE_TIMESTAMP
,
TYPE_BYTES
[
TSDB_DATA_TYPE_TIMESTAMP
],
0
,
0
,
0
,
getT
ST
upleKey
);
pTable
->
mem
->
keyFirst
=
INT64_MAX
;
pTable
->
mem
->
keyLast
=
0
;
}
...
...
src/tsdb/src/tsdbMeta.c
浏览文件 @
d5d67853
#include <stdlib.h>
// #include "taosdef.h"
#include "tskiplist.h"
#include "tsdb.h"
#include "taosdef.h"
...
...
@@ -10,6 +8,8 @@
#define TSDB_SUPER_TABLE_SL_LEVEL 5 // TODO: may change here
#define TSDB_META_FILE_NAME "META"
const
int32_t
DEFAULT_TAG_INDEX_COLUMN
=
0
;
// skip list built based on the first column of tags
static
int
tsdbFreeTable
(
STable
*
pTable
);
static
int32_t
tsdbCheckTableCfg
(
STableCfg
*
pCfg
);
static
int
tsdbAddTableToMeta
(
STsdbMeta
*
pMeta
,
STable
*
pTable
,
bool
addIdx
);
...
...
@@ -39,11 +39,12 @@ void *tsdbEncodeTable(STable *pTable, int *contLen) {
void
*
ptr
=
ret
;
T_APPEND_MEMBER
(
ptr
,
pTable
,
STable
,
type
);
// Encode name
*
(
int
*
)
ptr
=
strl
en
(
pTable
->
name
);
// Encode name
, todo refactor
*
(
int
*
)
ptr
=
varDataL
en
(
pTable
->
name
);
ptr
=
(
char
*
)
ptr
+
sizeof
(
int
);
memcpy
(
ptr
,
pTable
->
name
,
strlen
(
pTable
->
name
));
ptr
=
(
char
*
)
ptr
+
strlen
(
pTable
->
name
);
memcpy
(
ptr
,
varDataVal
(
pTable
->
name
),
varDataLen
(
pTable
->
name
));
ptr
=
(
char
*
)
ptr
+
varDataLen
(
pTable
->
name
);
T_APPEND_MEMBER
(
ptr
,
&
(
pTable
->
tableId
),
STableId
,
uid
);
T_APPEND_MEMBER
(
ptr
,
&
(
pTable
->
tableId
),
STableId
,
tid
);
T_APPEND_MEMBER
(
ptr
,
pTable
,
STable
,
superUid
);
...
...
@@ -79,9 +80,12 @@ STable *tsdbDecodeTable(void *cont, int contLen) {
T_READ_MEMBER
(
ptr
,
int8_t
,
pTable
->
type
);
int
len
=
*
(
int
*
)
ptr
;
ptr
=
(
char
*
)
ptr
+
sizeof
(
int
);
pTable
->
name
=
calloc
(
1
,
len
+
1
);
pTable
->
name
=
calloc
(
1
,
len
+
VARSTR_HEADER_SIZE
);
if
(
pTable
->
name
==
NULL
)
return
NULL
;
memcpy
(
pTable
->
name
,
ptr
,
len
);
varDataSetLen
(
pTable
->
name
,
len
);
memcpy
(
pTable
->
name
->
data
,
ptr
,
len
);
ptr
=
(
char
*
)
ptr
+
len
;
T_READ_MEMBER
(
ptr
,
int64_t
,
pTable
->
tableId
.
uid
);
T_READ_MEMBER
(
ptr
,
int32_t
,
pTable
->
tableId
.
tid
);
...
...
@@ -105,8 +109,13 @@ void tsdbFreeEncode(void *cont) {
}
static
char
*
getTagIndexKey
(
const
void
*
pData
)
{
STable
*
table
=
*
(
STable
**
)
pData
;
return
getTupleKey
(
table
->
tagVal
);
STableIndexElem
*
elem
=
(
STableIndexElem
*
)
pData
;
SDataRow
row
=
elem
->
pTable
->
tagVal
;
STSchema
*
pSchema
=
tsdbGetTableTagSchema
(
elem
->
pMeta
,
elem
->
pTable
);
STColumn
*
pCol
=
&
pSchema
->
columns
[
DEFAULT_TAG_INDEX_COLUMN
];
return
tdGetRowDataOfCol
(
row
,
pCol
->
type
,
TD_DATA_ROW_HEAD_SIZE
+
pCol
->
offset
);
}
int
tsdbRestoreTable
(
void
*
pHandle
,
void
*
cont
,
int
contLen
)
{
...
...
@@ -225,36 +234,28 @@ STSchema * tsdbGetTableTagSchema(STsdbMeta *pMeta, STable *pTable) {
}
}
// todo refactor table name definition
int32_t
tsdbGetTableTagVal
(
TsdbRepoT
*
repo
,
STableId
*
id
,
int32_t
colId
,
int16_t
*
type
,
int16_t
*
bytes
,
char
**
val
)
{
STsdbMeta
*
pMeta
=
tsdbGetMeta
(
repo
);
STable
*
pTable
=
tsdbGetTableByUid
(
pMeta
,
id
->
uid
);
STSchema
*
pSchema
=
tsdbGetTableTagSchema
(
pMeta
,
pTable
);
STColumn
*
pCol
=
NULL
;
int32_t
offset
=
0
;
for
(
int32_t
col
=
0
;
col
<
schemaNCols
(
pSchema
);
++
col
)
{
STColumn
*
p
=
schemaColAt
(
pSchema
,
col
);
if
(
p
->
colId
==
colId
)
{
pCol
=
p
;
break
;
}
if
(
p
->
type
==
TSDB_DATA_TYPE_BINARY
||
p
->
type
==
TSDB_DATA_TYPE_NCHAR
)
{
offset
+=
sizeof
(
int32_t
);
}
else
{
offset
+=
p
->
bytes
;
}
}
if
(
pCol
==
NULL
)
{
return
-
1
;
// No matched tags. Maybe the modification of tags has not been done yet.
}
assert
(
pCol
!=
NULL
);
SDataRow
row
=
(
SDataRow
)
pTable
->
tagVal
;
char
*
d
=
tdGetRowDataOfCol
(
row
,
pCol
->
type
,
TD_DATA_ROW_HEAD_SIZE
+
offset
);
char
*
d
=
tdGetRowDataOfCol
(
row
,
pCol
->
type
,
TD_DATA_ROW_HEAD_SIZE
+
pCol
->
offset
);
*
val
=
d
;
*
type
=
pCol
->
type
;
...
...
@@ -263,15 +264,22 @@ int32_t tsdbGetTableTagVal(TsdbRepoT* repo, STableId* id, int32_t colId, int16_t
return
TSDB_CODE_SUCCESS
;
}
int32_t
tsdbGetTableName
(
TsdbRepoT
*
repo
,
STableId
*
id
,
char
**
name
)
{
char
*
tsdbGetTableName
(
TsdbRepoT
*
repo
,
const
STableId
*
id
,
int16_t
*
bytes
)
{
STsdbMeta
*
pMeta
=
tsdbGetMeta
(
repo
);
STable
*
pTable
=
tsdbGetTableByUid
(
pMeta
,
id
->
uid
);
*
name
=
strndup
(
pTable
->
name
,
TSDB_TABLE_NAME_LEN
);
if
(
*
name
==
NULL
)
{
return
-
1
;
if
(
pTable
==
NULL
)
{
if
(
bytes
!=
NULL
)
{
*
bytes
=
0
;
}
return
NULL
;
}
else
{
return
0
;
if
(
bytes
!=
NULL
)
{
*
bytes
=
varDataLen
(
pTable
->
name
);
}
return
(
char
*
)
pTable
->
name
;
}
}
...
...
@@ -296,7 +304,11 @@ int32_t tsdbCreateTableImpl(STsdbMeta *pMeta, STableCfg *pCfg) {
super
->
schema
=
tdDupSchema
(
pCfg
->
schema
);
super
->
tagSchema
=
tdDupSchema
(
pCfg
->
tagSchema
);
super
->
tagVal
=
NULL
;
super
->
name
=
strdup
(
pCfg
->
sname
);
// todo refactor extract method
size_t
size
=
strnlen
(
pCfg
->
sname
,
TSDB_TABLE_NAME_LEN
);
super
->
name
=
malloc
(
size
+
VARSTR_HEADER_SIZE
);
STR_WITH_SIZE_TO_VARSTR
(
super
->
name
,
pCfg
->
sname
,
size
);
// index the first tag column
STColumn
*
pColSchema
=
schemaColAt
(
super
->
tagSchema
,
0
);
...
...
@@ -322,7 +334,11 @@ int32_t tsdbCreateTableImpl(STsdbMeta *pMeta, STableCfg *pCfg) {
}
table
->
tableId
=
pCfg
->
tableId
;
table
->
name
=
strdup
(
pCfg
->
name
);
size_t
size
=
strnlen
(
pCfg
->
name
,
TSDB_TABLE_NAME_LEN
);
table
->
name
=
malloc
(
size
+
VARSTR_HEADER_SIZE
);
STR_WITH_SIZE_TO_VARSTR
(
table
->
name
,
pCfg
->
name
,
size
);
table
->
lastKey
=
0
;
if
(
IS_CREATE_STABLE
(
pCfg
))
{
// TSDB_CHILD_TABLE
table
->
type
=
TSDB_CHILD_TABLE
;
...
...
@@ -513,11 +529,14 @@ static int tsdbAddTableIntoIndex(STsdbMeta *pMeta, STable *pTable) {
// NOTE: do not allocate the space for key, since in each skip list node, only keep the pointer to pTable, not the
// actual key value, and the key value will be retrieved during query through the pTable and getTagIndexKey function
SSkipListNode
*
pNode
=
calloc
(
1
,
headSize
+
POINTER_BYTES
);
SSkipListNode
*
pNode
=
calloc
(
1
,
headSize
+
sizeof
(
STableIndexElem
)
);
pNode
->
level
=
level
;
SSkipList
*
list
=
pSTable
->
pIndex
;
memcpy
(
SL_GET_NODE_DATA
(
pNode
),
&
pTable
,
POINTER_BYTES
);
STableIndexElem
*
elem
=
(
STableIndexElem
*
)
(
SL_GET_NODE_DATA
(
pNode
));
elem
->
pTable
=
pTable
;
elem
->
pMeta
=
pMeta
;
tSkipListPut
(
list
,
pNode
);
return
0
;
...
...
@@ -529,7 +548,10 @@ static int tsdbRemoveTableFromIndex(STsdbMeta *pMeta, STable *pTable) {
STable
*
pSTable
=
tsdbGetTableByUid
(
pMeta
,
pTable
->
superUid
);
assert
(
pSTable
!=
NULL
);
char
*
key
=
dataRowTuple
(
pTable
->
tagVal
);
// key
STSchema
*
pSchema
=
tsdbGetTableTagSchema
(
pMeta
,
pTable
);
STColumn
*
pCol
=
&
pSchema
->
columns
[
DEFAULT_TAG_INDEX_COLUMN
];
char
*
key
=
tdGetRowDataOfCol
(
pTable
->
tagVal
,
pCol
->
type
,
TD_DATA_ROW_HEAD_SIZE
+
pCol
->
offset
);
bool
ret
=
tSkipListRemove
(
pSTable
->
pIndex
,
key
);
assert
(
ret
);
...
...
@@ -539,7 +561,7 @@ static int tsdbRemoveTableFromIndex(STsdbMeta *pMeta, STable *pTable) {
static
int
tsdbEstimateTableEncodeSize
(
STable
*
pTable
)
{
int
size
=
0
;
size
+=
T_MEMBER_SIZE
(
STable
,
type
);
size
+=
sizeof
(
int
)
+
strl
en
(
pTable
->
name
);
size
+=
sizeof
(
int
)
+
varDataL
en
(
pTable
->
name
);
size
+=
T_MEMBER_SIZE
(
STable
,
tableId
);
size
+=
T_MEMBER_SIZE
(
STable
,
superUid
);
size
+=
T_MEMBER_SIZE
(
STable
,
sversion
);
...
...
@@ -556,8 +578,7 @@ static int tsdbEstimateTableEncodeSize(STable *pTable) {
return
size
;
}
char
*
getTupleKey
(
const
void
*
data
)
{
char
*
getT
ST
upleKey
(
const
void
*
data
)
{
SDataRow
row
=
(
SDataRow
)
data
;
return
POINTER_SHIFT
(
row
,
TD_DATA_ROW_HEAD_SIZE
);
}
\ No newline at end of file
src/tsdb/src/tsdbRead.c
浏览文件 @
d5d67853
...
...
@@ -620,9 +620,13 @@ static void filterDataInDataBlock(STsdbQueryHandle* pQueryHandle, STableCheckInf
if
(
pCol
->
info
.
type
!=
TSDB_DATA_TYPE_BINARY
&&
pCol
->
info
.
type
!=
TSDB_DATA_TYPE_NCHAR
)
{
memmove
(
pCol
->
pData
,
src
->
pData
+
bytes
*
start
,
bytes
*
pQueryHandle
->
realNumOfRows
);
}
else
{
// handle the var-string
char
*
dst
=
pCol
->
pData
;
// todo refactor, only copy one-by-one
for
(
int32_t
k
=
start
;
k
<
pQueryHandle
->
realNumOfRows
+
start
;
++
k
)
{
char
*
p
=
tdGetColDataOfRow
(
src
,
k
);
memcpy
(
pCol
->
pData
+
k
*
bytes
,
p
,
varDataTLen
(
p
));
// todo refactor
memcpy
(
dst
,
p
,
varDataTLen
(
p
));
dst
+=
bytes
;
}
}
...
...
@@ -1076,17 +1080,13 @@ static int tsdbReadRowsFromCache(SSkipListIterator* pIter, STable* pTable, TSKEY
}
assert
(
offset
!=
-
1
);
// todo handle error
void
*
value
=
tdGetRowDataOfCol
(
row
,
pColInfo
->
info
.
type
,
TD_DATA_ROW_HEAD_SIZE
+
offset
);
if
(
pColInfo
->
info
.
type
==
TSDB_DATA_TYPE_BINARY
||
pColInfo
->
info
.
type
==
TSDB_DATA_TYPE_NCHAR
)
{
void
*
value
=
tdGetRowDataOfCol
(
row
,
pColInfo
->
info
.
type
,
TD_DATA_ROW_HEAD_SIZE
+
offset
);
memcpy
(
pData
,
value
,
varDataTLen
(
value
));
offset
+=
sizeof
(
int32_t
);
}
else
{
memcpy
(
pData
,
dataRowTuple
(
row
)
+
offset
,
pColInfo
->
info
.
bytes
);
offset
+=
pColInfo
->
info
.
bytes
;
memcpy
(
pData
,
value
,
pColInfo
->
info
.
bytes
);
}
}
numOfRows
++
;
...
...
@@ -1225,8 +1225,8 @@ static int32_t getAllTableIdList(STable* pSuperTable, SArray* list) {
while
(
tSkipListIterNext
(
iter
))
{
SSkipListNode
*
pNode
=
tSkipListIterGet
(
iter
);
STable
*
t
=
*
(
STable
**
)
SL_GET_NODE_DATA
(
pNode
);
taosArrayPush
(
list
,
&
t
->
tableId
);
STable
IndexElem
*
elem
=
(
STableIndexElem
*
)(
SL_GET_NODE_DATA
((
SSkipListNode
*
)
pNode
)
);
taosArrayPush
(
list
,
&
elem
->
pTable
->
tableId
);
}
tSkipListDestroyIter
(
iter
);
...
...
@@ -1235,6 +1235,7 @@ static int32_t getAllTableIdList(STable* pSuperTable, SArray* list) {
/**
* convert the result pointer to table id instead of table object pointer
* todo remove it by using callback function to change the final result in-time.
* @param pRes
*/
static
void
convertQueryResult
(
SArray
*
pRes
,
SArray
*
pTableList
)
{
...
...
@@ -1244,8 +1245,8 @@ static void convertQueryResult(SArray* pRes, SArray* pTableList) {
size_t
size
=
taosArrayGetSize
(
pTableList
);
for
(
int32_t
i
=
0
;
i
<
size
;
++
i
)
{
// todo speedup by using reserve space.
STable
*
pTable
=
taosArrayGetP
(
pTableList
,
i
);
taosArrayPush
(
pRes
,
&
pTable
->
tableId
);
STable
IndexElem
*
elem
=
taosArrayGet
(
pTableList
,
i
);
taosArrayPush
(
pRes
,
&
elem
->
pTable
->
tableId
);
}
}
...
...
@@ -1309,7 +1310,12 @@ void filterPrepare(void* expr, void* param) {
pInfo
->
q
=
(
char
*
)
pCond
->
arr
;
}
else
{
pInfo
->
q
=
calloc
(
1
,
pSchema
->
bytes
);
tVariantDump
(
pCond
,
pInfo
->
q
,
pSchema
->
type
);
if
(
pSchema
->
type
==
TSDB_DATA_TYPE_BINARY
||
pSchema
->
type
==
TSDB_DATA_TYPE_NCHAR
)
{
tVariantDump
(
pCond
,
varDataVal
(
pInfo
->
q
),
pSchema
->
type
);
varDataSetLen
(
pInfo
->
q
,
pCond
->
nLen
);
// the length may be changed after dump, so assign its value after dump
}
else
{
tVariantDump
(
pCond
,
pInfo
->
q
,
pSchema
->
type
);
}
}
}
...
...
@@ -1341,16 +1347,16 @@ int32_t tableGroupComparFn(const void *p1, const void *p2, const void *param) {
int32_t
bytes
=
0
;
if
(
colIndex
==
TSDB_TBNAME_COLUMN_INDEX
)
{
f1
=
pTable1
->
name
;
f2
=
pTable2
->
name
;
f1
=
(
char
*
)
pTable1
->
name
;
f2
=
(
char
*
)
pTable2
->
name
;
type
=
TSDB_DATA_TYPE_BINARY
;
bytes
=
TSDB_TABLE_NAME_LEN
;
bytes
=
TSDB_TABLE_NAME_LEN
+
VARSTR_HEADER_SIZE
;
}
else
{
f1
=
dataRowTuple
(
pTable1
->
tagVal
);
f2
=
dataRowTuple
(
pTable2
->
tagVal
)
;
type
=
schemaColAt
(
pTableGroupSupp
->
pTagSchema
,
colIndex
)
->
type
;
bytes
=
schemaColAt
(
pTableGroupSupp
->
pTagSchema
,
colIndex
)
->
bytes
;
STColumn
*
pCol
=
schemaColAt
(
pTableGroupSupp
->
pTagSchema
,
colIndex
);
bytes
=
pCol
->
bytes
;
f1
=
tdGetRowDataOfCol
(
pTable1
->
tagVal
,
pCol
->
type
,
TD_DATA_ROW_HEAD_SIZE
+
pCol
->
offset
)
;
f2
=
tdGetRowDataOfCol
(
pTable2
->
tagVal
,
pCol
->
type
,
TD_DATA_ROW_HEAD_SIZE
+
pCol
->
offset
)
;
}
int32_t
ret
=
doCompare
(
f1
,
f2
,
type
,
bytes
);
...
...
@@ -1428,24 +1434,20 @@ SArray* createTableGroup(SArray* pTableList, STSchema* pTagSchema, SColIndex* pC
bool
tSkipListNodeFilterCallback
(
const
void
*
pNode
,
void
*
param
)
{
tQueryInfo
*
pInfo
=
(
tQueryInfo
*
)
param
;
STable
*
pTable
=
*
(
STable
*
*
)(
SL_GET_NODE_DATA
((
SSkipListNode
*
)
pNode
));
STable
IndexElem
*
elem
=
(
STableIndexElem
*
)(
SL_GET_NODE_DATA
((
SSkipListNode
*
)
pNode
));
char
*
val
=
NULL
;
int8_t
type
=
pInfo
->
sch
.
type
;
if
(
pInfo
->
colIndex
==
TSDB_TBNAME_COLUMN_INDEX
)
{
val
=
pTable
->
name
;
val
=
(
char
*
)
elem
->
pTable
->
name
;
type
=
TSDB_DATA_TYPE_BINARY
;
}
else
{
STSchema
*
pTSchema
=
(
STSchema
*
)
pInfo
->
param
;
// todo table schema is identical to stable schema??
int32_t
offset
=
pTSchema
->
columns
[
pInfo
->
colIndex
].
offset
;
if
(
pInfo
->
sch
.
type
==
TSDB_DATA_TYPE_BINARY
||
pInfo
->
sch
.
type
==
TSDB_DATA_TYPE_NCHAR
)
{
val
=
tdGetRowDataOfCol
(
pTable
->
tagVal
,
pInfo
->
sch
.
type
,
TD_DATA_ROW_HEAD_SIZE
+
offset
);
}
else
{
val
=
dataRowTuple
(
pTable
->
tagVal
)
+
offset
;
}
val
=
tdGetRowDataOfCol
(
elem
->
pTable
->
tagVal
,
pInfo
->
sch
.
type
,
TD_DATA_ROW_HEAD_SIZE
+
offset
);
}
int32_t
ret
=
0
;
...
...
@@ -1456,8 +1458,6 @@ bool tSkipListNodeFilterCallback(const void* pNode, void* param) {
ret
=
pInfo
->
compare
(
val
,
pInfo
->
q
);
}
}
else
{
// tVariant t = {0};
// tVariantCreateFromBinary(&t, val, (uint32_t)pInfo->sch.bytes, type);
ret
=
pInfo
->
compare
(
val
,
pInfo
->
q
);
}
...
...
@@ -1502,7 +1502,7 @@ static int32_t doQueryTableList(STable* pSTable, SArray* pRes, tExprNode* pExpr)
.
pExtInfo
=
pSTable
->
tagSchema
,
};
SArray
*
pTableList
=
taosArrayInit
(
8
,
POINTER_BYTES
);
SArray
*
pTableList
=
taosArrayInit
(
8
,
sizeof
(
STableIndexElem
)
);
tExprTreeTraverse
(
pExpr
,
pSTable
->
pIndex
,
pTableList
,
&
supp
);
tExprTreeDestroy
(
&
pExpr
,
destroyHelper
);
...
...
src/util/src/talgo.c
浏览文件 @
d5d67853
...
...
@@ -144,11 +144,11 @@ static void tqsortImpl(void *src, int32_t start, int32_t end, size_t size, const
}
if
(
leftPartEnd
>
start
)
{
tqsortImpl
(
src
,
s
ize
,
start
,
leftPartEnd
,
param
,
comparFn
,
buf
);
tqsortImpl
(
src
,
s
tart
,
leftPartEnd
,
size
,
param
,
comparFn
,
buf
);
}
if
(
rightPartStart
<
end
)
{
tqsortImpl
(
src
,
size
,
rightPartStart
,
end
,
param
,
comparFn
,
buf
);
tqsortImpl
(
src
,
rightPartStart
,
end
,
size
,
param
,
comparFn
,
buf
);
}
}
...
...
src/util/src/tcompare.c
浏览文件 @
d5d67853
...
...
@@ -60,33 +60,36 @@ int32_t compareDoubleVal(const void *pLeft, const void *pRight) {
}
}
int32_t
compareStrVal
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
return
(
int32_t
)
strcmp
(
pLeft
,
pRight
);
int32_t
compareLenPrefixedStr
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
int32_t
len1
=
varDataLen
(
pLeft
);
int32_t
len2
=
varDataLen
(
pRight
);
if
(
len1
!=
len2
)
{
return
len1
>
len2
?
1
:-
1
;
}
else
{
int32_t
ret
=
strncmp
(
varDataVal
(
pLeft
),
varDataVal
(
pRight
),
len1
);
if
(
ret
==
0
)
{
return
0
;
}
else
{
return
ret
>
0
?
1
:-
1
;
}
}
}
int32_t
compareWStrVal
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
// SSkipListKey *pL = (SSkipListKey *)pLeft;
// SSkipListKey *pR = (SSkipListKey *)pRight;
//
// if (pL->nLen == 0 && pR->nLen == 0) {
// return 0;
// }
//
// // handle only one-side bound compare situation, there is only lower bound or only upper bound
// if (pL->nLen == -1) {
// return 1; // no lower bound, lower bound is minimum, always return -1;
// } else if (pR->nLen == -1) {
// return -1; // no upper bound, upper bound is maximum situation, always return 1;
// }
//
// int32_t ret = wcscmp(((SSkipListKey *)pLeft)->wpz, ((SSkipListKey *)pRight)->wpz);
//
// if (ret == 0) {
// return 0;
// } else {
// return ret > 0 ? 1 : -1;
// }
return
0
;
int32_t
compareLenPrefixedWStr
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
int32_t
len1
=
varDataLen
(
pLeft
);
int32_t
len2
=
varDataLen
(
pRight
);
if
(
len1
!=
len2
)
{
return
len1
>
len2
?
1
:-
1
;
}
else
{
int32_t
ret
=
wcsncmp
(
varDataVal
(
pLeft
),
varDataVal
(
pRight
),
len1
);
if
(
ret
==
0
)
{
return
0
;
}
else
{
return
ret
>
0
?
1
:
-
1
;
}
}
}
/*
...
...
@@ -267,7 +270,7 @@ __compar_fn_t getComparFunc(int32_t type, int32_t optr) {
}
else
if
(
optr
==
TSDB_RELATION_IN
)
{
comparFn
=
compareFindStrInArray
;
}
else
{
/* normal relational comparFn */
comparFn
=
compare
StrVal
;
comparFn
=
compare
LenPrefixedStr
;
}
break
;
...
...
@@ -277,7 +280,7 @@ __compar_fn_t getComparFunc(int32_t type, int32_t optr) {
if
(
optr
==
TSDB_RELATION_LIKE
)
{
comparFn
=
compareWStrPatternComp
;
}
else
{
comparFn
=
compare
WStrVal
;
comparFn
=
compare
LenPrefixedWStr
;
}
break
;
...
...
@@ -296,6 +299,7 @@ __compar_fn_t getKeyComparFunc(int32_t keyType) {
switch
(
keyType
)
{
case
TSDB_DATA_TYPE_TINYINT
:
case
TSDB_DATA_TYPE_BOOL
:
comparFn
=
compareInt8Val
;
break
;
case
TSDB_DATA_TYPE_SMALLINT
:
...
...
@@ -308,21 +312,17 @@ __compar_fn_t getKeyComparFunc(int32_t keyType) {
case
TSDB_DATA_TYPE_TIMESTAMP
:
comparFn
=
compareInt64Val
;
break
;
case
TSDB_DATA_TYPE_BOOL
:
comparFn
=
compareInt32Val
;
break
;
case
TSDB_DATA_TYPE_FLOAT
:
case
TSDB_DATA_TYPE_DOUBLE
:
comparFn
=
compareDoubleVal
;
break
;
case
TSDB_DATA_TYPE_BINARY
:
comparFn
=
compare
StrVal
;
comparFn
=
compare
LenPrefixedStr
;
break
;
case
TSDB_DATA_TYPE_NCHAR
:
comparFn
=
compare
WStrVal
;
comparFn
=
compare
LenPrefixedWStr
;
break
;
default:
...
...
@@ -349,13 +349,20 @@ int32_t doCompare(const char* f1, const char* f2, int32_t type, size_t size) {
}
return
(
ret
<
0
)
?
-
1
:
1
;
}
default:
{
int32_t
ret
=
strncmp
(
f1
,
f2
,
(
size_t
)
size
);
if
(
ret
==
0
)
{
return
ret
;
}
default:
{
// todo refactor
tstr
*
t1
=
(
tstr
*
)
f1
;
tstr
*
t2
=
(
tstr
*
)
f2
;
return
(
ret
<
0
)
?
-
1
:
1
;
if
(
t1
->
len
!=
t2
->
len
)
{
return
t1
->
len
>
t2
->
len
?
1
:-
1
;
}
else
{
int32_t
ret
=
strncmp
(
t1
->
data
,
t2
->
data
,
t1
->
len
);
if
(
ret
==
0
)
{
return
0
;
}
else
{
return
ret
<
0
?
-
1
:
1
;
}
}
}
}
}
tests/pytest/import_merge/importDataH2.py
浏览文件 @
d5d67853
...
...
@@ -46,16 +46,16 @@ class TDTestCase:
self
.
maxrows
)
tdLog
.
info
(
"================= step2"
)
tdLog
.
info
(
"import %d sequential data"
%
(
self
.
maxrows
/
2
))
tdLog
.
info
(
"import %d sequential data"
%
(
self
.
maxrows
/
/
2
))
startTime
=
self
.
startTime
sqlcmd
=
[
'import into tb1 values'
]
for
rid
in
range
(
1
,
self
.
maxrows
/
2
+
1
):
for
rid
in
range
(
1
,
self
.
maxrows
/
/
2
+
1
):
sqlcmd
.
append
(
'(%ld, %d)'
%
(
startTime
+
rid
,
rid
))
tdSql
.
execute
(
" "
.
join
(
sqlcmd
))
tdLog
.
info
(
"================= step3"
)
tdSql
.
query
(
'select * from tb1'
)
tdSql
.
checkRows
(
self
.
maxrows
/
2
)
tdSql
.
checkRows
(
self
.
maxrows
/
/
2
)
tdLog
.
info
(
"================= step4"
)
tdDnodes
.
stop
(
1
)
...
...
@@ -70,7 +70,7 @@ class TDTestCase:
tdLog
.
info
(
"================= step7"
)
tdSql
.
execute
(
'reset query cache'
)
tdSql
.
query
(
'select * from tb1 order by ts desc'
)
tdSql
.
checkRows
(
self
.
maxrows
/
2
+
1
)
tdSql
.
checkRows
(
self
.
maxrows
/
/
2
+
1
)
tdLog
.
info
(
"================= step8"
)
tdLog
.
info
(
"import 10 data in batch before"
)
...
...
@@ -83,7 +83,7 @@ class TDTestCase:
tdLog
.
info
(
"================= step9"
)
tdSql
.
execute
(
'reset query cache'
)
tdSql
.
query
(
'select * from tb1 order by ts desc'
)
tdSql
.
checkRows
(
self
.
maxrows
/
2
+
11
)
tdSql
.
checkRows
(
self
.
maxrows
/
/
2
+
11
)
def
stop
(
self
):
tdSql
.
close
()
...
...
tests/pytest/import_merge/importDataSub.py
浏览文件 @
d5d67853
...
...
@@ -46,16 +46,17 @@ class TDTestCase:
self
.
maxrows
)
tdLog
.
info
(
"================= step2"
)
tdLog
.
info
(
"import %d sequential data"
%
(
self
.
maxrows
/
2
))
tdLog
.
info
(
"import %d sequential data"
%
(
self
.
maxrows
/
/
2
))
startTime
=
self
.
startTime
sqlcmd
=
[
'import into tb1 values'
]
for
rid
in
range
(
1
,
self
.
maxrows
/
2
+
1
):
for
rid
in
range
(
1
,
self
.
maxrows
/
/
2
+
1
):
sqlcmd
.
append
(
'(%ld, %d)'
%
(
startTime
+
rid
,
rid
))
tdSql
.
execute
(
" "
.
join
(
sqlcmd
))
tdLog
.
info
(
"================= step3"
)
tdSql
.
query
(
'select * from tb1'
)
tdSql
.
checkRows
(
self
.
maxrows
/
2
)
tdSql
.
checkRows
(
self
.
maxrows
/
/
2
)
tdLog
.
info
(
"================= step4"
)
tdDnodes
.
stop
(
1
)
...
...
@@ -73,7 +74,7 @@ class TDTestCase:
tdLog
.
info
(
"================= step9"
)
tdSql
.
execute
(
'reset query cache'
)
tdSql
.
query
(
'select * from tb1 order by ts desc'
)
tdSql
.
checkRows
(
self
.
maxrows
/
2
)
tdSql
.
checkRows
(
self
.
maxrows
/
/
2
)
def
stop
(
self
):
tdSql
.
close
()
...
...
tests/pytest/import_merge/importToCommit.py
浏览文件 @
d5d67853
...
...
@@ -33,7 +33,7 @@ class TDTestCase:
tdDnodes
.
start
(
1
)
tdSql
.
execute
(
'reset query cache'
)
tdSql
.
execute
(
'drop database if exists db'
)
tdSql
.
execute
(
'create database db cache 512 tables 10'
)
tdSql
.
execute
(
'create database db cache 512
max
tables 10'
)
tdSql
.
execute
(
'use db'
)
tdLog
.
info
(
"================= step1"
)
...
...
tests/pytest/smoketest.sh
浏览文件 @
d5d67853
...
...
@@ -29,88 +29,17 @@ python3 ./test.py $1 -s && sleep 1
python3 ./test.py
$1
-f
table/db_table.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importDataLastTO.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importDataLastT.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importDataTO.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importDataT.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importHeadOverlap.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importHeadPartOverlap.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importHORestart.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importHPORestart.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importHRestart.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importLastSub.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock1HO.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock1HPO.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock1H.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock1S.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock1Sub.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock1TO.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock1TPO.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock1T.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock2HO.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock2HPO.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock2H.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock2S.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock2Sub.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock2TO.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock2TPO.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock2T.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlockbetween.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importCacheFileSub.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importCacheFileTO.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importCacheFileT.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importDataLastSub.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importHead.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importLastTO.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importLastT.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importSpan.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importSRestart.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importSubRestart.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importTailOverlap.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importTail.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importTORestart.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importTPORestart.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importTRestart.py
python3 ./test.py
$1
-s
&&
sleep
1
tests/pytest/util/dnodes.py
浏览文件 @
d5d67853
...
...
@@ -201,8 +201,8 @@ class TDDnode:
self
.
running
=
1
tdLog
.
debug
(
"dnode:%d is running with %s "
%
(
self
.
index
,
cmd
))
tdLog
.
debug
(
"wait
2
seconds for the dnode:%d to start."
%
(
self
.
index
))
time
.
sleep
(
2
)
tdLog
.
debug
(
"wait
4
seconds for the dnode:%d to start."
%
(
self
.
index
))
time
.
sleep
(
4
)
def
stop
(
self
):
if
self
.
valgrind
==
0
:
...
...
tests/pytest/valgrind-test.sh
0 → 100755
浏览文件 @
d5d67853
#!/bin/bash
python3 ./test.py
$1
-f
insert/basic.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
insert/int.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
insert/float.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
insert/bigint.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
insert/bool.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
insert/double.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
insert/smallint.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
insert/tinyint.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
insert/binary.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
insert/date.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
insert/nchar.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
table/column_name.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
table/column_num.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
table/db_table.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importCacheFileT.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importDataLastSub.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importHead.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importLastT.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importSpan.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importTail.py
python3 ./test.py
$1
-s
&&
sleep
1
python3 ./test.py
$1
-f
import_merge/importTRestart.py
python3 ./test.py
$1
-s
&&
sleep
1
tests/script/basicSuite.sim
浏览文件 @
d5d67853
#################################
run general/cache/new_metrics.sim
run general/compress/compress.sim
run general/compute/avg.sim
run general/compute/bottom.sim
run general/compute/count.sim
run general/db/len.sim
run general/db/basic4.sim
run general/http/restful_insert.sim
run general/import/basic.sim
run general/import/commit.sim
run general/insert/basic.sim
run general/insert/query_file_memory.sim
run general/parser/binary_escapeCharacter.sim
run general/parser/columnValue_bigint.sim
run general/parser/select_from_cache_disk.sim
run general/table/autocreate.sim
run general/table/basic3.sim
run general/table/column_name.sim
run general/table/int.sim
run general/table/vgroup.sim
run general/user/basic1.sim
run general/user/pass_alter.sim
run general/user/user_len.sim
run general/vector/single.sim
##################################
tests/script/general/cache/restart_metrics.sim
浏览文件 @
d5d67853
...
...
@@ -27,11 +27,15 @@ sql create table $tb using $mt tags( "1" )
sql insert into $tb values (now, 1)
sql select * from $tb
print ===>rows $rows, data $data01
#print ===>rows $rows, data $data01
if $rows != 1 then
print expect 1, actual: $rows
return -1
endi
endi
if $data01 != 1 then
print expect 1 actual: $data01
return -1
endi
...
...
@@ -66,8 +70,10 @@ sql select * from $tb
print ===>rows $rows, data $data01
if $rows != 1 then
return -1
endi
endi
if $data01 != 1 then
print expect 1, actual $data01
return -1
endi
...
...
@@ -80,6 +86,7 @@ if $data01 != 1 then
return -1
endi
if $data02 != 3 then
print expect 3 actual: $data02
return -1
endi
...
...
tests/script/general/db/delete_reuse2.sim
浏览文件 @
d5d67853
...
...
@@ -26,6 +26,7 @@ system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
print ========= start dnodes
sleep 2000
system sh/exec.sh -n dnode1 -s start
sleep 3000
sql connect
...
...
tests/script/general/db/testSuite.sim
浏览文件 @
d5d67853
run general/
/
db/basic.sim
run general/db/basic.sim
run general/db/basic1.sim
run general/db/basic2.sim
run general/db/basic3.sim
...
...
@@ -13,3 +13,4 @@ run general/db/delete_writing2.sim
run general/db/len.sim
run general/db/repeat.sim
run general/db/tables.sim
run general/db/vnodes.sim
tests/script/general/db/vnodes.sim
0 → 100644
浏览文件 @
d5d67853
system sh/stop_dnodes.sh
$totalVnodes = 10
$maxTables = 4
$totalRows = $totalVnodes * $maxTables
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v $maxTables
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v $totalVnodes
system sh/cfg.sh -n dnode1 -c maxVnodeConnections -v 100000
system sh/cfg.sh -n dnode1 -c maxMeterConnections -v 100000
system sh/cfg.sh -n dnode1 -c maxShellConns -v 100000
system sh/cfg.sh -n dnode1 -c maxMgmtConnections -v 100000
print ========== prepare data
system sh/exec.sh -n dnode1 -s start
sleep 3000
sql connect
sql create database db blocks 2 cache 1 maxTables $maxTables
sql use db
print ========== step1
sql create table mt (ts timestamp, tbcol int) TAGS(tgcol int)
$x = 0
while $x < $totalRows
$tb = t . $x
sql create table $tb using mt tags( $x )
sql insert into $tb values (now, $x )
$x = $x + 1
endw
print ========== step2
sql select * from mt
if $rows != $totalRows then
return -1
endi
sql select count(*) from mt
if $data00 != $totalRows then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
\ No newline at end of file
tests/script/general/field/bigint.sim
浏览文件 @
d5d67853
...
...
@@ -132,7 +132,9 @@ endi
print =============== step6
sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tbcol = 1 group by tgcol
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
print $data10 $data11 $data12 $data13 $data14 $data15 $data16
if $data00 != 100 then
print expect 100, actual $data00
return -1
endi
...
...
tests/script/general/parser/auto_create_tb.sim
浏览文件 @
d5d67853
...
...
@@ -96,25 +96,25 @@ $ts1 = $ts0 + 1000
$ts2 = $ts0 + 2000
sql insert into tb_1 using $stb tags (-1) values ( $ts1 , 1,1,1,1,'bin',1,1,1,'涛思数据') ( $ts2 , 2,2,2,2,'binar', 1,1,1,'nchar')
sql select * from $stb
if $rows !=
3
then
if $rows !=
5
then
return -1
endi
if $data
1
9 != 涛思数据 then
if $data
0
9 != 涛思数据 then
return -1
endi
if $data
1
1 != 1 then
if $data
0
1 != 1 then
return -1
endi
if $data
2
2 != 2 then
if $data
4
2 != 2 then
return -2
endi
if $data
2
3 != 2.00000 then
if $data
4
3 != 2.00000 then
return -1
endi
if $data
2
5 != binar then
if $data
4
5 != binar then
return -1
endi
if $data
2
9 != nchar then
if $data
4
9 != nchar then
return -1
endi
sql drop table tb_1
...
...
@@ -127,22 +127,22 @@ sql select * from $stb
if $rows != 5 then
return -1
endi
if $data
1
9 != 涛思数据 then
if $data
0
9 != 涛思数据 then
return -1
endi
if $data
1
1 != 1 then
if $data
0
1 != 1 then
return -1
endi
if $data
2
2 != 2 then
if $data
4
2 != 2 then
return -2
endi
if $data
2
3 != 2.00000 then
if $data
4
3 != 2.00000 then
return -1
endi
if $data
2
5 != binar then
if $data
4
5 != binar then
return -1
endi
if $data
2
9 != nchar then
if $data
4
9 != nchar then
return -1
endi
...
...
@@ -154,13 +154,13 @@ sql show tables
if $rows != 3 then
return -1
endi
if $data00 != tb
3
then
if $data00 != tb
1
then
return -1
endi
if $data10 != tb2 then
return -1
endi
if $data20 != tb
1
then
if $data20 != tb
3
then
return -1
endi
...
...
tests/script/general/parser/lastrow_query.sim
浏览文件 @
d5d67853
...
...
@@ -43,9 +43,11 @@ if $data07 != 1 then
return -1
endi
if $data08 != BINARY then
print expect BINARY actual: $data08
return -1
endi
if $data09 != NCHAR then
print expect NCHAR actual: $data09
return -1
endi
tests/script/general/parser/nchar.sim
浏览文件 @
d5d67853
...
...
@@ -194,8 +194,10 @@ sql reset query cache
sql select * from $mt where tgcol = '1'
step2:
if $rows != 100 then
print expect 100, actual: $rows
return -1
endi
sql select * from $mt where tgcol > '0'
#print rows = $rows
if $rows != 100 then
...
...
tests/script/general/parser/testSuite.sim
浏览文件 @
d5d67853
# run general/parser/alter.sim
# sleep 2000
# run general/parser/alter1.sim
# sleep 2000
# run general/parser/alter_stable.sim
# sleep 2000
# run general/parser/auto_create_tb.sim
# sleep 2000
# run general/parser/auto_create_tb_drop_tb.sim
# sleep 2000
#run general/parser/alter.sim
#sleep 2000
#run general/parser/alter1.sim
#sleep 2000
#run general/parser/alter_stable.sim
#sleep 2000
#run general/parser/auto_create_tb.sim
#sleep 2000
#run general/parser/auto_create_tb_drop_tb.sim
run general/parser/binary_escapeCharacter.sim
sleep 2000
run general/parser/bug.sim
sleep 2000
run general/parser/col_arithmetic_operation.sim
sleep 2000
run general/parser/columnValue
_bigint
.sim
run general/parser/columnValue.sim
sleep 2000
run general/parser/co
lumnValue_bool
.sim
run general/parser/co
mmit
.sim
sleep 2000
run general/parser/c
olumnValue_double
.sim
run general/parser/c
reate_db
.sim
sleep 2000
run general/parser/c
olumnValue_floa
t.sim
run general/parser/c
reate_m
t.sim
sleep 2000
run general/parser/columnValue_int.sim
run general/parser/create_tb.sim
sleep 2000
run general/parser/dbtbnameValidate.sim
sleep 2000
run general/parser/import_commit1.sim
sleep 2000
run general/parser/import_commit2.sim
sleep 2000
run general/parser/import_commit3.sim
sleep 2000
run general/parser/insert_tb.sim
sleep 2000
run general/parser/first_last.sim
sleep 2000
run general/parser/import_file.sim
sleep 2000
run general/parser/lastrow.sim
sleep 2000
run general/parser/nchar.sim
sleep 2000
run general/parser/null_char.sim
sleep 2000
run general/parser/fill.sim
sleep 2000
run general/parser/fill_stb.sim
sleep 2000
run general/parser/tags_dynamically_specifiy.sim
sleep 2000
run general/parser/interp.sim
sleep 2000
run general/parser/limit.sim
sleep 2000
run general/parser/limit1.sim
sleep 2000
run general/parser/limit1_tblocks100.sim
sleep 2000
run general/parser/limit2.sim
sleep 2000
run general/parser/mixed_blocks.sim
sleep 2000
run general/parser/selectResNum.sim
sleep 2000
run general/parser/select_across_vnodes.sim
sleep 2000
# sleep 2000
# run general/parser/col_arithmetic_operation.sim
# sleep 2000
# run general/parser/columnValue.sim
# sleep 2000
# run general/parser/commit.sim
# run general/parser/create_db.sim
# sleep 2000
# run general/parser/create_mt.sim
# sleep 2000
# run general/parser/create_tb.sim
# sleep 2000
# run general/parser/dbtbnameValidate.sim
# sleep 2000
# run general/parser/fill.sim
# sleep 2000
# run general/parser/fill_stb.sim
# sleep 2000
# run general/parser/first_last.sim
# sleep 2000
# run general/parser/import_commit1.sim
# sleep 2000
# run general/parser/import_commit2.sim
# sleep 2000
# run general/parser/import_commit3.sim
# sleep 2000
# run general/parser/import_file.sim
# sleep 2000
# run general/parser/insert_tb.sim
# sleep 2000
# run general/parser/tags_dynamically_specifiy.sim
# sleep 2000
# run general/parser/interp.sim
# run general/parser/lastrow.sim
# sleep 2000
# run general/parser/limit.sim
# sleep 2000
# run general/parser/limit1.sim
# sleep 2000
# run general/parser/limit1_tblocks100.sim
# sleep 2000
# run general/parser/limit2.sim
# sleep 2000
# run general/parser/mixed_blocks.sim
# sleep 2000
# run general/parser/nchar.sim
# sleep 2000
# run general/parser/null_char.sim
# sleep 2000
# run general/parser/selectResNum.sim
# sleep 2000
# run general/parser/select_across_vnodes.sim
# sleep 2000
run general/parser/select_from_cache_disk.sim
sleep 2000
#
run general/parser/set_tag_vals.sim
#
sleep 2000
#
run general/parser/single_row_in_tb.sim
#
sleep 2000
#
run general/parser/slimit.sim
#
sleep 2000
run general/parser/set_tag_vals.sim
sleep 2000
run general/parser/single_row_in_tb.sim
sleep 2000
run general/parser/slimit.sim
sleep 2000
run general/parser/slimit1.sim
sleep 2000
run general/parser/slimit1_query.sim
sleep 2000
# run general/parser/slimit_alter_tags.sim
# sleep 2000
# run general/parser/stream_on_sys.sim
# sleep 2000
# run general/parser/stream.sim
# sleep 2000
# run general/parser/tbnameIn.sim
# sleep 2000
# run general/parser/where.sim
# sleep 2000
# #run general/parser/repeatAlter.sim
# sleep 2000
# #run general/parser/repeatStream.sim
# sleep 2000
# run general/parser/join.sim
# run general/parser/join_multivnode.sim
# run general/parser/projection_limit_offset.sim
# sleep 2000
# run general/parser/select_with_tags.sim
# run general/parser/groupby.sim
run general/parser/slimit_alter_tags.sim
sleep 2000
run general/parser/stream_on_sys.sim
sleep 2000
run general/parser/stream.sim
sleep 2000
run general/parser/tbnameIn.sim
sleep 2000
run general/parser/where.sim
sleep 2000
#run general/parser/repeatAlter.sim
sleep 2000
#run general/parser/repeatStream.sim
sleep 2000
run general/parser/join.sim
sleep 2000
run general/parser/join_multivnode.sim
sleep 2000
run general/parser/projection_limit_offset.sim
sleep 2000
run general/parser/select_with_tags.sim
sleep 2000
run general/parser/groupby.sim
tests/script/general/table/fill.sim
浏览文件 @
d5d67853
...
...
@@ -42,7 +42,7 @@ sql select count(*), last(ts), min(k), max(k), avg(k) from db.mt where a=0 and t
print =================== step2
system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep
10
000
sleep
5
000
system sh/exec.sh -n dnode1 -s start
sleep 3000
...
...
tests/script/general/tag/bool.sim
浏览文件 @
d5d67853
...
...
@@ -122,7 +122,8 @@ if $rows != 100 then
return -1
endi
sql select * from $mt where tgcol = 1
if $rows != 100 then
if $rows != 100 then
print expect 100, actual:$rows
return -1
endi
sql select * from $mt where tgcol <> 1
...
...
tests/script/general/tag/filter.sim
浏览文件 @
d5d67853
...
...
@@ -122,7 +122,8 @@ endi
print =============== step14
sql select count(tbcol) as c from $mt where ts > 1000 group by tgcol
print $data00 $data01 $data02 $data03 $data04 $data05 $data06
if $data00 != 100 then
if $data00 != 100 then
print expect 100, actual $data00
return -1
endi
...
...
tests/script/jenkins/basic.txt
浏览文件 @
d5d67853
cd ../../debug; cmake ..
#cd ../../debug; make clean
cd ../../debug; make
cd ../../../debug; cmake ..
#cd ../../../debug; make clean
cd ../../../debug; make
#./test.sh -f general/alter/cached_schema_after_alter.sim
...
...
@@ -15,12 +12,12 @@ cd ../../../debug; make
#./test.sh -f general/alter/table.sim
./test.sh -f general/cache/new_metrics.sim
#
./test.sh -f general/cache/restart_metrics.sim
./test.sh -f general/cache/restart_metrics.sim
./test.sh -f general/cache/restart_table.sim
#./test.sh -f general/column/commit.sim
#./test.sh -f general/column/metrics.sim
#./test.sh -f general/column/table.sim
#
hongze
./test.sh -f general/column/commit.sim
#
hongze
./test.sh -f general/column/metrics.sim
#
hongze
./test.sh -f general/column/table.sim
./test.sh -f general/compress/commitlog.sim
./test.sh -f general/compress/compress.sim
...
...
@@ -31,11 +28,11 @@ cd ../../../debug; make
./test.sh -f general/compute/bottom.sim
./test.sh -f general/compute/count.sim
./test.sh -f general/compute/diff.sim
#./test.sh -f general/compute/diff2.sim
#
liao
./test.sh -f general/compute/diff2.sim
./test.sh -f general/compute/first.sim
#./test.sh -f general/compute/interval.sim
#./test.sh -f general/compute/last.sim
#./test.sh -f general/compute/leastsquare.sim
#
liao
./test.sh -f general/compute/interval.sim
#
liao
./test.sh -f general/compute/last.sim
#
liao
./test.sh -f general/compute/leastsquare.sim
./test.sh -f general/compute/max.sim
./test.sh -f general/compute/min.sim
./test.sh -f general/compute/null.sim
...
...
@@ -53,41 +50,42 @@ cd ../../../debug; make
./test.sh -f general/db/delete_reuse1.sim
./test.sh -f general/db/delete_reuse2.sim
./test.sh -f general/db/delete_reusevnode.sim
#
./test.sh -f general/db/delete_reusevnode2.sim
./test.sh -f general/db/delete_reusevnode2.sim
./test.sh -f general/db/delete_writing1.sim
./test.sh -f general/db/delete_writing2.sim
./test.sh -f general/db/len.sim
#./test.sh -u -f general/db/vnodes.sim
./test.sh -f general/db/repeat.sim
./test.sh -f general/db/tables.sim
#
./test.sh -f general/field/2.sim
./test.sh -f general/field/2.sim
#./test.sh -f general/field/3.sim
#./test.sh -f general/field/4.sim
#./test.sh -f general/field/5.sim
#./test.sh -f general/field/6.sim
##
./test.sh -f general/field/bigint.sim
#./test.sh -f general/field/binary.sim
##
./test.sh -f general/field/bool.sim
#
./test.sh -f general/field/single.sim
##
./test.sh -f general/field/smallint.sim
##
./test.sh -f general/field/tinyint.sim
#
#
./test.sh -f general/http/restful.sim
./test.sh -f general/field/bigint.sim
#
liao
./test.sh -f general/field/binary.sim
./test.sh -f general/field/bool.sim
./test.sh -f general/field/single.sim
./test.sh -f general/field/smallint.sim
./test.sh -f general/field/tinyint.sim
#
jeff
./test.sh -f general/http/restful.sim
./test.sh -f general/http/restful_insert.sim
./test.sh -f general/http/restful_limit.sim
#
#
./test.sh -f general/http/restful_full.sim
#
jeff
./test.sh -f general/http/restful_full.sim
./test.sh -f general/http/prepare.sim
./test.sh -f general/http/telegraf.sim
./test.sh -f general/http/grafana_bug.sim
#./test.sh -f general/http/grafana.sim
#
jeff
./test.sh -f general/http/grafana.sim
./test.sh -f general/import/basic.sim
./test.sh -f general/import/commit.sim
./test.sh -f general/import/large.sim
#./test.sh -f general/import/replica1.sim
#
hongze
./test.sh -f general/import/replica1.sim
./test.sh -f general/insert/basic.sim
#./test.sh -f general/insert/insert_drop.sim
#
hongze
./test.sh -f general/insert/insert_drop.sim
./test.sh -f general/insert/query_block1_memory.sim
./test.sh -f general/insert/query_block2_memory.sim
./test.sh -f general/insert/query_block1_file.sim
...
...
@@ -96,8 +94,6 @@ cd ../../../debug; make
./test.sh -f general/insert/query_multi_file.sim
./test.sh -f general/insert/tcp.sim
#parser
# ./test.sh -f general/parser/alter.sim
# ./test.sh -f general/parser/alter1.sim
# ./test.sh -f general/parser/alter_stable.sim
...
...
@@ -112,8 +108,8 @@ cd ../../../debug; make
./test.sh -f general/parser/columnValue_float.sim
./test.sh -f general/parser/columnValue_int.sim
# ./test.sh -f general/parser/col_arithmetic_operation.sim
#
./test.sh -f general/parser/columnValue.sim
#
./test.sh -f general/parser/commit.sim
./test.sh -f general/parser/columnValue.sim
./test.sh -f general/parser/commit.sim
# ./test.sh -f general/parser/create_db.sim
# ./test.sh -f general/parser/create_mt.sim
# ./test.sh -f general/parser/create_tb.sim
...
...
@@ -121,9 +117,9 @@ cd ../../../debug; make
# ./test.sh -f general/parser/fill.sim
# ./test.sh -f general/parser/fill_stb.sim
# ./test.sh -f general/parser/first_last.sim
#
./test.sh -f general/parser/import_commit1.sim
#
./test.sh -f general/parser/import_commit2.sim
#
./test.sh -f general/parser/import_commit3.sim
./test.sh -f general/parser/import_commit1.sim
./test.sh -f general/parser/import_commit2.sim
./test.sh -f general/parser/import_commit3.sim
# ./test.sh -f general/parser/import_file.sim
# ./test.sh -f general/parser/insert_tb.sim
# ./test.sh -f general/parser/tags_dynamically_specifiy.sim
...
...
@@ -160,14 +156,12 @@ cd ../../../debug; make
#./test.sh -f general/stable/disk.sim
#./test.sh -f general/stable/metrics.sim
#./test.sh -f general/stable/values.sim
#./test.sh -f general/stable/vnode3.sim
#stream
./test.sh -f general/stable/vnode3.sim
./test.sh -f general/table/autocreate.sim
./test.sh -f general/table/basic1.sim
./test.sh -f general/table/basic2.sim
./test.sh -f general/table/basic3.sim
#hongze
./test.sh -f general/table/basic3.sim
./test.sh -f general/table/bigint.sim
./test.sh -f general/table/binary.sim
./test.sh -f general/table/bool.sim
...
...
@@ -177,17 +171,17 @@ cd ../../../debug; make
./test.sh -f general/table/column2.sim
./test.sh -f general/table/date.sim
./test.sh -f general/table/db.table.sim
#
./test.sh -f general/table/delete_reuse1.sim
#
./test.sh -f general/table/delete_reuse2.sim
#./test.sh -f general/table/delete_writing.sim
#
./test.sh -f general/table/describe.sim
./test.sh -f general/table/delete_reuse1.sim
./test.sh -f general/table/delete_reuse2.sim
#
hongze
./test.sh -f general/table/delete_writing.sim
./test.sh -f general/table/describe.sim
./test.sh -f general/table/double.sim
#
./test.sh -f general/table/fill.sim
./test.sh -f general/table/fill.sim
./test.sh -f general/table/float.sim
./test.sh -f general/table/int.sim
./test.sh -f general/table/limit.sim
./test.sh -f general/table/smallint.sim
#
./test.sh -f general/table/table_len.sim
./test.sh -f general/table/table_len.sim
./test.sh -f general/table/table.sim
./test.sh -f general/table/tinyint.sim
./test.sh -f general/table/vgroup.sim
...
...
@@ -197,47 +191,45 @@ cd ../../../debug; make
#./test.sh -f general/tag/5.sim
#./test.sh -f general/tag/6.sim
#./test.sh -f general/tag/add.sim
#
./test.sh -f general/tag/bigint.sim
./test.sh -f general/tag/bigint.sim
#./test.sh -f general/tag/binary_binary.sim
#./test.sh -f general/tag/binary.sim
#./test.sh -f general/tag/bool_binary.sim
#./test.sh -f general/tag/bool_int.sim
#
./test.sh -f general/tag/bool.sim
./test.sh -f general/tag/bool.sim
#./test.sh -f general/tag/change.sim
#./test.sh -f general/tag/column.sim
#
liao
./test.sh -f general/tag/column.sim
#./test.sh -f general/tag/commit.sim
#./test.sh -f general/tag/create.sim
#
liao
./test.sh -f general/tag/create.sim
#./test.sh -f general/tag/delete.sim
#./test.sh -f general/tag/double.sim
#
./test.sh -f general/tag/filter.sim
./test.sh -f general/tag/filter.sim
#./test.sh -f general/tag/float.sim
#./test.sh -f general/tag/int_binary.sim
#./test.sh -f general/tag/int_float.sim
#
./test.sh -f general/tag/int.sim
./test.sh -f general/tag/int.sim
#./test.sh -f general/tag/set.sim
#
./test.sh -f general/tag/smallint.sim
#
./test.sh -f general/tag/tinyint.sim
./test.sh -f general/tag/smallint.sim
./test.sh -f general/tag/tinyint.sim
./test.sh -f general/user/basic1.sim
#
./test.sh -f general/user/monitor.sim
./test.sh -f general/user/monitor.sim
./test.sh -f general/user/pass_alter.sim
./test.sh -f general/user/pass_len.sim
./test.sh -f general/user/user_create.sim
./test.sh -f general/user/user_len.sim
#
./test.sh -f general/vector/metrics_field.sim
#
./test.sh -f general/vector/metrics_mix.sim
#
./test.sh -f general/vector/metrics_query.sim
#
./test.sh -f general/vector/metrics_tag.sim
#
./test.sh -f general/vector/metrics_time.sim
#./test.sh -f general/vector/multi.sim
./test.sh -f general/vector/metrics_field.sim
./test.sh -f general/vector/metrics_mix.sim
./test.sh -f general/vector/metrics_query.sim
./test.sh -f general/vector/metrics_tag.sim
./test.sh -f general/vector/metrics_time.sim
#
liao
./test.sh -f general/vector/multi.sim
./test.sh -f general/vector/single.sim
#./test.sh -f general/vector/table_field.sim
#./test.sh -f general/vector/table_mix.sim
#./test.sh -f general/vector/table_query.sim
#./test.sh -f general/vector/table_time.sim
#################################
./test.sh -f general/vector/table_field.sim
./test.sh -f general/vector/table_mix.sim
./test.sh -f general/vector/table_query.sim
./test.sh -f general/vector/table_time.sim
./test.sh -u -f unique/account/account_create.sim
./test.sh -u -f unique/account/account_delete.sim
...
...
@@ -252,8 +244,8 @@ cd ../../../debug; make
./test.sh -u -f unique/account/user_len.sim
#./test.sh -u -f unique/big/balance.sim
#./test.sh -u -f unique/big/maxvnodes.sim
#
./test.sh -u -f unique/big/tcp.sim
#
slguan
./test.sh -u -f unique/big/maxvnodes.sim
./test.sh -u -f unique/big/tcp.sim
##./test.sh -u -f unique/cluster/balance1.sim
##./test.sh -u -f unique/cluster/balance2.sim
...
...
@@ -298,27 +290,22 @@ cd ../../../debug; make
#./test.sh -u -f unique/metrics/replica3_dnode6.sim
#./test.sh -u -f unique/metrics/replica3_vnode3.sim
##
./test.sh -u -f unique/mnode/mgmt22.sim
##
./test.sh -u -f unique/mnode/mgmt23.sim
##
./test.sh -u -f unique/mnode/mgmt24.sim
##
./test.sh -u -f unique/mnode/mgmt25.sim
##
./test.sh -u -f unique/mnode/mgmt26.sim
##
./test.sh -u -f unique/mnode/mgmt33.sim
##
./test.sh -u -f unique/mnode/mgmt34.sim
./test.sh -u -f unique/mnode/mgmt22.sim
./test.sh -u -f unique/mnode/mgmt23.sim
./test.sh -u -f unique/mnode/mgmt24.sim
./test.sh -u -f unique/mnode/mgmt25.sim
./test.sh -u -f unique/mnode/mgmt26.sim
./test.sh -u -f unique/mnode/mgmt33.sim
./test.sh -u -f unique/mnode/mgmt34.sim
#./test.sh -u -f unique/mnode/mgmtr2.sim
#./test.sh -u -f unique/mnode/secondIp.sim
#stream
##./test.sh -u -f unique/table/delete_part.sim
##./test.sh -u -f unique/vnode/replica2_basic2.sim
##./test.sh -u -f unique/vnode/replica3_basic.sim
#./test.sh -u -f unique/vnode/commit.sim
#./test.sh -u -f unique/vnode/many.sim
#./test.sh -u -f unique/vnode/replica2_basic.sim
##
./test.sh -u -f unique/vnode/replica2_basic2.sim
./test.sh -u -f unique/vnode/replica2_basic2.sim
#./test.sh -u -f unique/vnode/replica2_repeat.sim
##./test.sh -u -f unique/vnode/replica3_basic.sim
#./test.sh -u -f unique/vnode/replica3_repeat.sim
...
...
tests/script/sh/deploy.sh
浏览文件 @
d5d67853
...
...
@@ -99,7 +99,7 @@ echo "logDir $LOG_DIR" >> $TAOS_CFG
echo
"dDebugFlag 199"
>>
$TAOS_CFG
echo
"mDebugFlag 199"
>>
$TAOS_CFG
echo
"sdbDebugFlag 199"
>>
$TAOS_CFG
echo
"rpcDebugFlag 1
35
"
>>
$TAOS_CFG
echo
"rpcDebugFlag 1
51
"
>>
$TAOS_CFG
echo
"tmrDebugFlag 131"
>>
$TAOS_CFG
echo
"cDebugFlag 135"
>>
$TAOS_CFG
echo
"httpDebugFlag 135"
>>
$TAOS_CFG
...
...
tests/script/test.sh
浏览文件 @
d5d67853
...
...
@@ -99,7 +99,8 @@ echo "cDebugFlag 135" >> $TAOS_CFG
echo
"httpDebugFlag 135"
>>
$TAOS_CFG
echo
"monitorDebugFlag 135"
>>
$TAOS_CFG
echo
"udebugFlag 135"
>>
$TAOS_CFG
echo
"clog 0"
>>
$TAOS_CFG
echo
"tablemetakeeptimer 5"
>>
$TAOS_CFG
echo
"wal 0"
>>
$TAOS_CFG
echo
"asyncLog 0"
>>
$TAOS_CFG
echo
"locale en_US.UTF-8"
>>
$TAOS_CFG
echo
" "
>>
$TAOS_CFG
...
...
tests/script/unique/account/account_create.sim
浏览文件 @
d5d67853
...
...
@@ -3,8 +3,8 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c wallevel -v 0
system sh/exec_up.sh -n dnode1 -s start
sql connect
sleep 3000
sql connect
print ============================ dnode1 start
...
...
tests/script/unique/account/account_delete.sim
浏览文件 @
d5d67853
...
...
@@ -3,8 +3,8 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c wallevel -v 0
system sh/exec_up.sh -n dnode1 -s start
sql connect
sleep 3000
sql connect
print ============= step1
sql create account oroot pass 'taosdata'
...
...
tests/script/unique/account/account_len.sim
浏览文件 @
d5d67853
...
...
@@ -3,8 +3,8 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c wallevel -v 0
system sh/exec_up.sh -n dnode1 -s start
sql connect
sleep 3000
sql connect
$i = 0
$dbPrefix = aldb
...
...
tests/script/unique/account/authority.sim
浏览文件 @
d5d67853
...
...
@@ -4,8 +4,8 @@ system sh/cfg.sh -n dnode1 -c wallevel -v 0
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 8
system sh/exec_up.sh -n dnode1 -s start
sql connect
sleep 3000
sql connect
print ============= step1
...
...
tests/script/unique/account/basic.sim
浏览文件 @
d5d67853
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/exec_up.sh -n dnode1 -s start
sleep 3000
sql connect
print =============== show accounts
...
...
tests/script/unique/account/paras.sim
浏览文件 @
d5d67853
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/exec_up.sh -n dnode1 -s start
sleep 3000
sql connect
print =============== show accounts
...
...
tests/script/unique/account/pass_alter.sim
浏览文件 @
d5d67853
...
...
@@ -3,8 +3,8 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c wallevel -v 0
system sh/exec_up.sh -n dnode1 -s start
sql connect
sleep 3000
sql connect
print ============= step1
sql create user read pass 'taosdata1'
...
...
tests/script/unique/account/pass_len.sim
浏览文件 @
d5d67853
...
...
@@ -3,8 +3,8 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c wallevel -v 0
system sh/exec_up.sh -n dnode1 -s start
sql connect
sleep 3000
sql connect
$i = 0
$dbPrefix = apdb
...
...
tests/script/unique/account/usage.sim
浏览文件 @
d5d67853
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/exec_up.sh -n dnode1 -s start
sleep 3000
sql connect
print =============== show accounts
...
...
tests/script/unique/account/user_create.sim
浏览文件 @
d5d67853
...
...
@@ -3,8 +3,8 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c wallevel -v 0
system sh/exec_up.sh -n dnode1 -s start
sql connect
sleep 3000
sql connect
print =============== step1
sql show users
...
...
tests/script/unique/account/user_len.sim
浏览文件 @
d5d67853
...
...
@@ -3,8 +3,8 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c wallevel -v 0
system sh/exec_up.sh -n dnode1 -s start
sql connect
sleep 3000
sql connect
$i = 0
$dbPrefix = lm_us_db
...
...
tests/script/unique/big/balance.sim
浏览文件 @
d5d67853
...
...
@@ -20,7 +20,7 @@ system sh/cfg.sh -n dnode5 -c numOfTotalVnodes -v 4
system sh/cfg.sh -n dnode5 -c maxtablesPerVnode -v 1000
print =============== prepare data
system sh/exec.sh -n dnode1 -s start
system sh/exec
_up
.sh -n dnode1 -s start
sleep 3000
sql connect
...
...
@@ -87,7 +87,7 @@ endi
print ========== step1
sql create dnode $hostname2
system sh/exec.sh -n dnode2 -s start
system sh/exec
_up
.sh -n dnode2 -s start
$x = 0
show1:
...
...
@@ -98,12 +98,12 @@ show1:
endi
sql show dnodes
print dnode1
freeVnodes $data3_192.168.0.
1
print dnode2
freeVnodes $data3_192.168.0.
2
if $data
3_192.168.0.
1 != 2 then
print dnode1
openvnodes $data2_
1
print dnode2
openvnodes $data2_
2
if $data
2_
1 != 2 then
goto show1
endi
if $data
3_192.168.0.
2 != 2 then
if $data
2_
2 != 2 then
goto show1
endi
...
...
@@ -139,7 +139,7 @@ endi
print ========== step2
sql create dnode $hostname3
system sh/exec.sh -n dnode3 -s start
system sh/exec
_up
.sh -n dnode3 -s start
sleep 10000
print ========== step3
...
...
@@ -154,20 +154,20 @@ show3:
endi
sql show dnodes
print dnode1 freeVnodes $data
3_192.168.0.
1
print dnode2 freeVnodes $data
3_192.168.0.
2
print dnode3 freeVnodes $data
3_192.168.0.
3
if $data
3_192.168.0.
1 != 2 then
print dnode1 freeVnodes $data
2_
1
print dnode2 freeVnodes $data
2_
2
print dnode3 freeVnodes $data
2_
3
if $data
2_
1 != 2 then
goto show3
endi
if $data
3_192.168.0.
2 != NULL then
if $data
2_
2 != NULL then
goto show3
endi
if $data
3_192.168.0.
3 != 2 then
if $data
2_
3 != 2 then
goto show3
endi
system sh/exec.sh -n dnode2 -s stop -x SIGINT
system sh/exec
_up
.sh -n dnode2 -s stop -x SIGINT
sql select count(*) from t10
print select count(*) from t10 $data00 expect $rowNum
...
...
@@ -211,16 +211,16 @@ show4:
endi
sql show dnodes
print dnode1 freeVnodes $data
3_192.168.0.
1
print dnode3 freeVnodes $data
3_192.168.0.
3
if $data
3_192.168.0.
1 != 0 then
print dnode1 freeVnodes $data
2_
1
print dnode3 freeVnodes $data
2_
3
if $data
2_
1 != 0 then
goto show4
endi
if $data
3_192.168.0.
3 != NULL then
if $data
2_
3 != NULL then
goto show4
endi
system sh/exec.sh -n dnode3 -s stop -x SIGINT
system sh/exec
_up
.sh -n dnode3 -s stop -x SIGINT
sql select count(*) from t10
print select count(*) from t10 $data00 expect $rowNum
...
...
@@ -255,7 +255,7 @@ endi
print ========== step5
sql alter database db replica 2
sql create dnode $hostname4
system sh/exec.sh -n dnode4 -s start
system sh/exec
_up
.sh -n dnode4 -s start
$x = 0
show5:
...
...
@@ -266,12 +266,12 @@ show5:
endi
sql show dnodes
print dnode1 freeVnodes $data
3_192.168.0.
1
print dnode4 freeVnodes $data
3_192.168.0.
4
if $data
3_192.168.0.
1 != 0 then
print dnode1 freeVnodes $data
2_
1
print dnode4 freeVnodes $data
2_
4
if $data
2_
1 != 0 then
goto show5
endi
if $data
3_192.168.0.
4 != 0 then
if $data
2_
4 != 0 then
goto show5
endi
...
...
tests/script/unique/big/maxvnodes.sim
浏览文件 @
d5d67853
system sh/stop_dnodes.sh
$totalVnodes = 100
$minVnodes = 48
$maxVnodes = 52
$maxTables = 4
$totalRows = $totalVnodes * $maxTables
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 0
system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v
100
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v
256
system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v
$maxTables
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v
$totalVnodes
system sh/cfg.sh -n dnode1 -c maxVnodeConnections -v 100000
system sh/cfg.sh -n dnode1 -c maxMeterConnections -v 100000
system sh/cfg.sh -n dnode1 -c maxShellConns -v 100000
system sh/cfg.sh -n dnode1 -c maxMgmtConnections -v 100000
print ========== prepare data
system sh/exec.sh -n dnode1 -s start
system sh/exec_up.sh -n dnode1 -s start
sleep 3000
sql connect
sql create database db
sql create database db
blocks 2 cache 1 maxTables $maxTables
sql use db
print ========== step1
sql create table mt (ts timestamp, tbcol int) TAGS(tgcol int)
$x = 0
while $x <
25600
while $x <
$totalRows
$tb = t . $x
sql create table $tb using mt tags( $x )
sql insert into $tb values (now, $x )
...
...
@@ -28,16 +35,15 @@ endw
print ========== step2
sql select * from mt
if $rows !=
25600
then
if $rows !=
$totalRows
then
return -1
endi
sql select count(*) from mt
if $data00 !=
25600
then
if $data00 !=
$totalRows
then
return -1
endi
system sh/deploy.sh -n dnode2 -i 2
system sh/cfg.sh -n dnode2 -c walLevel -v 0
system sh/cfg.sh -n dnode2 -c maxtablesPerVnode -v 100
...
...
@@ -49,7 +55,7 @@ system sh/cfg.sh -n dnode2 -c maxMgmtConnections -v 100000
print ========== step2
sql create dnode $hostname2
system sh/exec.sh -n dnode2 -s start
system sh/exec
_up
.sh -n dnode2 -s start
$x = 0
show3:
...
...
@@ -60,23 +66,23 @@ show3:
endi
sql show dnodes
print dnode1
freeVnodes $data3_192.168.0.
1
print dnode2
freeVnodes $data3_192.168.0.
2
if $data
3_192.168.0.1 != 126
then
print dnode1
openvnodes $data2_
1
print dnode2
openvnodes $data2_
2
if $data
2_1 != $minVnodes
then
goto show3
endi
if $data
3_192.168.0.2 != 130
then
if $data
2_2 != $maxVnodes
then
goto show3
endi
print ========== step4
sql select * from mt
if $rows !=
25600
then
if $rows !=
$totalRows
then
return -1
endi
sql select count(*) from mt
if $data00 !=
25600
then
if $data00 !=
$totalRows
then
return -1
endi
...
...
tests/script/unique/big/tcp.sim
浏览文件 @
d5d67853
...
...
@@ -14,8 +14,8 @@ system sh/cfg.sh -n dnode1 -c adminDebugFlag -v 131
system sh/cfg.sh -n dnode1 -c httpDebugFlag -v 135
system sh/cfg.sh -n dnode1 -c debugFlag -v 131
system sh/exec.sh -n dnode1 -s start
system sh/exec
_up
.sh -n dnode1 -s start
sleep 3000
sql connect
print ======================== dnode1 start
...
...
@@ -52,7 +52,7 @@ while $i < $tbNum
endw
$i = 0
while $i < 10
0
while $i < 10
print =============== step3 $i
sql select count(*) from $mt
print ===> $data00 $data01
...
...
@@ -83,7 +83,7 @@ while $i < $tbNum
endw
$i = 0
while $i < 10
0
while $i < 10
print =============== step5 $i
sql select count(*) from $mt where tgcol < 20200
print ===> $data00 $data01
...
...
tests/script/unique/mnode/mgmt22.sim
浏览文件 @
d5d67853
...
...
@@ -8,7 +8,7 @@ system sh/cfg.sh -n dnode2 -c numOfMPeers -v 2
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 2
print ============== step1
system sh/exec_up.sh -n dnode1 -s start
system sh/exec_up.sh -n dnode1 -s start
-t
sleep 3000
sql connect
...
...
@@ -20,7 +20,7 @@ if $data2_1 != master then
endi
print ============== step2
system sh/exec_up.sh -n dnode2 -s start
system sh/exec_up.sh -n dnode2 -s start
-t
sql create dnode $hostname2
$x = 0
...
...
@@ -41,6 +41,17 @@ if $data2_2 != slave then
goto show2
endi
system sh/exec_up.sh -n dnode1 -s stop -x SIGINT
system sh/exec_up.sh -n dnode2 -s stop -x SIGINT
system sh/exec_up.sh -n dnode3 -s stop -x SIGINT
system sh/exec_up.sh -n dnode4 -s stop -x SIGINT
system sh/exec_up.sh -n dnode5 -s stop -x SIGINT
system sh/exec_up.sh -n dnode6 -s stop -x SIGINT
system sh/exec_up.sh -n dnode7 -s stop -x SIGINT
system sh/exec_up.sh -n dnode8 -s stop -x SIGINT
return
print ============== step3
sql_error drop dnode $hostname1 -x error1
print should not drop master
...
...
tests/script/unique/mnode/mgmt23.sim
浏览文件 @
d5d67853
...
...
@@ -59,7 +59,7 @@ endi
if $dnode2Role != slave then
return -1
endi
if $dnode3Role !=
NULL
then
if $dnode3Role !=
null
then
return -1
endi
...
...
@@ -78,7 +78,7 @@ print dnode3 ==> $dnode3Role
if $dnode1Role != master then
return -1
endi
if $dnode2Role !=
NULL
then
if $dnode2Role !=
null
then
return -1
endi
if $dnode3Role != slave then
...
...
@@ -106,7 +106,7 @@ print dnode3 ==> $dnode3Role
if $dnode1Role != master then
return -1
endi
if $dnode2Role !=
NULL
then
if $dnode2Role !=
null
then
return -1
endi
if $dnode3Role != slave then
...
...
tests/script/unique/mnode/mgmt25.sim
浏览文件 @
d5d67853
...
...
@@ -59,7 +59,7 @@ endi
if $dnode2Role != slave then
return -1
endi
if $dnode3Role !=
NULL
then
if $dnode3Role !=
null
then
return -1
endi
...
...
@@ -78,7 +78,7 @@ print dnode3 ==> $dnode3Role
if $dnode1Role != master then
return -1
endi
if $dnode2Role !=
NULL
then
if $dnode2Role !=
null
then
return -1
endi
if $dnode3Role != slave then
...
...
tests/script/unique/mnode/mgmt26.sim
浏览文件 @
d5d67853
...
...
@@ -59,7 +59,7 @@ endi
if $dnode2Role != slave then
return -1
endi
if $dnode3Role !=
NULL
then
if $dnode3Role !=
null
then
return -1
endi
...
...
@@ -79,7 +79,7 @@ print dnode3 ==> $dnode3Role
if $dnode1Role != master then
return -1
endi
if $dnode2Role !=
NULL
then
if $dnode2Role !=
null
then
return -1
endi
if $dnode3Role != slave then
...
...
@@ -106,7 +106,7 @@ print dnode3 ==> $dnode3Role
if $dnode1Role != master then
return -1
endi
if $dnode2Role !=
NULL
then
if $dnode2Role !=
null
then
return -1
endi
if $dnode3Role != slave then
...
...
tests/script/unique/mnode/mgmt33.sim
浏览文件 @
d5d67853
...
...
@@ -18,10 +18,10 @@ print dnode3 ==> $data3_3
if $data2_1 != master then
return -1
endi
if $data3_2 !=
NULL
then
if $data3_2 !=
null
then
return -1
endi
if $data3_3 !=
NULL
then
if $data3_3 !=
null
then
return -1
endi
...
...
@@ -44,7 +44,7 @@ endi
if $dnode2Role != slave then
return -1
endi
if $dnode3Role !=
NULL
then
if $dnode3Role !=
null
then
return -1
endi
...
...
@@ -86,7 +86,7 @@ print dnode3 ==> $dnode3Role
if $dnode1Role != master then
return -1
endi
if $dnode2Role !=
NULL
then
if $dnode2Role !=
null
then
return -1
endi
if $dnode3Role != slave then
...
...
@@ -156,7 +156,7 @@ print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
if $dnode1Role !=
NULL
then
if $dnode1Role !=
null
then
return -1
endi
#if $dnode2Role != master then
...
...
tests/script/unique/mnode/mgmt34.sim
浏览文件 @
d5d67853
...
...
@@ -22,10 +22,10 @@ print dnode3 ==> $data3_3
if $data2_1 != master then
return -1
endi
if $data3_2 !=
NULL
then
if $data3_2 !=
null
then
return -1
endi
if $data3_3 !=
NULL
then
if $data3_3 !=
null
then
return -1
endi
...
...
@@ -50,10 +50,10 @@ endi
if $dnode2Role != slave then
return -1
endi
if $dnode3Role !=
NULL
then
if $dnode3Role !=
null
then
return -1
endi
if $dnode4Role !=
NULL
then
if $dnode4Role !=
null
then
return -1
endi
...
...
@@ -81,7 +81,7 @@ endi
if $dnode3Role != slave then
return -1
endi
if $dnode4Role !=
NULL
then
if $dnode4Role !=
null
then
return -1
endi
...
...
@@ -110,7 +110,7 @@ endi
if $dnode3Role != slave then
return -1
endi
if $dnode4Role !=
NULL
then
if $dnode4Role !=
null
then
return -1
endi
...
...
@@ -131,7 +131,7 @@ print dnode4 ==> $dnode4Role
if $dnode1Role != master then
return -1
endi
if $dnode2Role !=
NULL
then
if $dnode2Role !=
null
then
return -1
endi
if $dnode3Role != slave then
...
...
@@ -165,7 +165,7 @@ print dnode4 ==> $dnode4Role
if $dnode1Role != master then
return -1
endi
if $dnode2Role !=
NULL
then
if $dnode2Role !=
null
then
return -1
endi
if $dnode3Role != slave then
...
...
@@ -207,7 +207,7 @@ print dnode2 ==> $dnode2Role
print dnode3 ==> $dnode3Role
print dnode4 ==> $dnode4Role
if $dnode1Role !=
NULL
then
if $dnode1Role !=
null
then
return -1
endi
if $dnode2Role != slave then
...
...
tests/test-all.sh
浏览文件 @
d5d67853
...
...
@@ -21,11 +21,12 @@ fi
echo
-e
"
${
GREEN
}
### Total
$totalSuccess
TSIM case(s) succeed! ###
${
NC
}
"
totalFailed
=
`
grep
'failed\|fault'
out.txt |
wc
-l
`
echo
-e
"
${
RED
}
### Total
$totalFailed
TSIM case(s) failed! ###
${
NC
}
"
#
echo -e "${RED} ### Total $totalFailed TSIM case(s) failed! ### ${NC}"
if
[
"
$totalFailed
"
-ne
"0"
]
;
then
# echo -e "${RED} ### Total $totalFailed TSIM case(s) failed! ### ${NC}"
exit
$totalFailed
echo
-e
"
${
RED
}
### Total
$totalFailed
TSIM case(s) failed! ###
${
NC
}
"
# exit $totalFailed
fi
echo
"### run Python script ###"
...
...
@@ -46,6 +47,7 @@ fi
totalPyFailed
=
`
grep
'failed\|fault'
pytest-out.txt |
wc
-l
`
if
[
"
$totalPyFailed
"
-ne
"0"
]
;
then
echo
-e
"
${
RED
}
### Total
$totalPyFailed
python case(s) failed! ###
${
NC
}
"
exit
$totalPyFailed
#
exit $totalPyFailed
fi
exit
$((
$totalFailed
+
$totalPyFailed
))
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录