Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
3e93fccf
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
3e93fccf
编写于
6月 05, 2020
作者:
S
Steven Li
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/develop' into feature/crash_gen
上级
adb62142
fe300f3c
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
178 addition
and
88 deletion
+178
-88
src/client/src/tscLocal.c
src/client/src/tscLocal.c
+51
-15
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+8
-11
src/client/src/tscSchemaUtil.c
src/client/src/tscSchemaUtil.c
+0
-7
src/client/src/tscServer.c
src/client/src/tscServer.c
+8
-21
src/client/src/tscSql.c
src/client/src/tscSql.c
+6
-5
src/client/src/tscUtil.c
src/client/src/tscUtil.c
+8
-3
tests/script/unique/arbitrator/dn3_mn1_vnode_change.sim
tests/script/unique/arbitrator/dn3_mn1_vnode_change.sim
+97
-26
未找到文件。
src/client/src/tscLocal.c
浏览文件 @
3e93fccf
...
@@ -26,7 +26,7 @@
...
@@ -26,7 +26,7 @@
#include "tschemautil.h"
#include "tschemautil.h"
#include "tname.h"
#include "tname.h"
static
void
tscSetLocalQueryResult
(
SSqlObj
*
pSql
,
const
char
*
val
,
const
char
*
columnName
,
size_t
valueLength
);
static
void
tscSetLocalQueryResult
(
SSqlObj
*
pSql
,
const
char
*
val
,
const
char
*
columnName
,
int16_t
type
,
size_t
valueLength
);
static
int32_t
getToStringLength
(
const
char
*
pData
,
int32_t
length
,
int32_t
type
)
{
static
int32_t
getToStringLength
(
const
char
*
pData
,
int32_t
length
,
int32_t
type
)
{
char
buf
[
512
]
=
{
0
};
char
buf
[
512
]
=
{
0
};
...
@@ -275,22 +275,37 @@ static void tscProcessCurrentUser(SSqlObj *pSql) {
...
@@ -275,22 +275,37 @@ static void tscProcessCurrentUser(SSqlObj *pSql) {
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfoDetail
(
&
pSql
->
cmd
,
0
);
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfoDetail
(
&
pSql
->
cmd
,
0
);
SSqlExpr
*
pExpr
=
taosArrayGetP
(
pQueryInfo
->
exprList
,
0
);
SSqlExpr
*
pExpr
=
taosArrayGetP
(
pQueryInfo
->
exprList
,
0
);
tscSetLocalQueryResult
(
pSql
,
pSql
->
pTscObj
->
user
,
pExpr
->
aliasName
,
TSDB_USER_LEN
);
pExpr
->
resBytes
=
TSDB_USER_LEN
+
TSDB_DATA_TYPE_BINARY
;
pExpr
->
resType
=
TSDB_DATA_TYPE_BINARY
;
char
*
vx
=
calloc
(
1
,
pExpr
->
resBytes
);
STR_WITH_MAXSIZE_TO_VARSTR
(
vx
,
pSql
->
pTscObj
->
user
,
TSDB_USER_LEN
);
tscSetLocalQueryResult
(
pSql
,
vx
,
pExpr
->
aliasName
,
pExpr
->
resType
,
pExpr
->
resBytes
);
free
(
vx
);
}
}
static
void
tscProcessCurrentDB
(
SSqlObj
*
pSql
)
{
static
void
tscProcessCurrentDB
(
SSqlObj
*
pSql
)
{
char
db
[
TSDB_DB_NAME_LEN
+
1
]
=
{
0
};
char
db
[
TSDB_DB_NAME_LEN
+
1
]
=
{
0
};
extractDBName
(
pSql
->
pTscObj
->
db
,
db
);
extractDBName
(
pSql
->
pTscObj
->
db
,
db
);
// no use db is invoked before.
if
(
strlen
(
db
)
==
0
)
{
setNull
(
db
,
TSDB_DATA_TYPE_BINARY
,
TSDB_DB_NAME_LEN
);
}
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfoDetail
(
&
pSql
->
cmd
,
0
);
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfoDetail
(
&
pSql
->
cmd
,
0
);
SSqlExpr
*
pExpr
=
taosArrayGetP
(
pQueryInfo
->
exprList
,
0
);
SSqlExpr
*
pExpr
=
taosArrayGetP
(
pQueryInfo
->
exprList
,
0
);
tscSetLocalQueryResult
(
pSql
,
db
,
pExpr
->
aliasName
,
TSDB_DB_NAME_LEN
);
pExpr
->
resType
=
TSDB_DATA_TYPE_BINARY
;
size_t
t
=
strlen
(
db
);
pExpr
->
resBytes
=
TSDB_DB_NAME_LEN
+
VARSTR_HEADER_SIZE
;
char
*
vx
=
calloc
(
1
,
pExpr
->
resBytes
);
if
(
t
==
0
)
{
setVardataNull
(
vx
,
TSDB_DATA_TYPE_BINARY
);
}
else
{
STR_WITH_SIZE_TO_VARSTR
(
vx
,
db
,
t
);
}
tscSetLocalQueryResult
(
pSql
,
vx
,
pExpr
->
aliasName
,
pExpr
->
resType
,
pExpr
->
resBytes
);
free
(
vx
);
}
}
static
void
tscProcessServerVer
(
SSqlObj
*
pSql
)
{
static
void
tscProcessServerVer
(
SSqlObj
*
pSql
)
{
...
@@ -298,14 +313,32 @@ static void tscProcessServerVer(SSqlObj *pSql) {
...
@@ -298,14 +313,32 @@ static void tscProcessServerVer(SSqlObj *pSql) {
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfoDetail
(
&
pSql
->
cmd
,
0
);
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfoDetail
(
&
pSql
->
cmd
,
0
);
SSqlExpr
*
pExpr
=
taosArrayGetP
(
pQueryInfo
->
exprList
,
0
);
SSqlExpr
*
pExpr
=
taosArrayGetP
(
pQueryInfo
->
exprList
,
0
);
tscSetLocalQueryResult
(
pSql
,
v
,
pExpr
->
aliasName
,
tListLen
(
pSql
->
pTscObj
->
sversion
));
pExpr
->
resType
=
TSDB_DATA_TYPE_BINARY
;
size_t
t
=
strlen
(
v
);
pExpr
->
resBytes
=
t
+
VARSTR_HEADER_SIZE
;
char
*
vx
=
calloc
(
1
,
pExpr
->
resBytes
);
STR_WITH_SIZE_TO_VARSTR
(
vx
,
v
,
t
);
tscSetLocalQueryResult
(
pSql
,
vx
,
pExpr
->
aliasName
,
pExpr
->
resType
,
pExpr
->
resBytes
);
tfree
(
vx
);
}
}
static
void
tscProcessClientVer
(
SSqlObj
*
pSql
)
{
static
void
tscProcessClientVer
(
SSqlObj
*
pSql
)
{
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfoDetail
(
&
pSql
->
cmd
,
0
);
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfoDetail
(
&
pSql
->
cmd
,
0
);
SSqlExpr
*
pExpr
=
taosArrayGetP
(
pQueryInfo
->
exprList
,
0
);
SSqlExpr
*
pExpr
=
taosArrayGetP
(
pQueryInfo
->
exprList
,
0
);
tscSetLocalQueryResult
(
pSql
,
version
,
pExpr
->
aliasName
,
strlen
(
version
));
pExpr
->
resType
=
TSDB_DATA_TYPE_BINARY
;
size_t
t
=
strlen
(
version
);
pExpr
->
resBytes
=
t
+
VARSTR_HEADER_SIZE
;
char
*
v
=
calloc
(
1
,
pExpr
->
resBytes
);
STR_WITH_SIZE_TO_VARSTR
(
v
,
version
,
t
);
tscSetLocalQueryResult
(
pSql
,
v
,
pExpr
->
aliasName
,
pExpr
->
resType
,
pExpr
->
resBytes
);
tfree
(
v
);
}
}
static
void
tscProcessServStatus
(
SSqlObj
*
pSql
)
{
static
void
tscProcessServStatus
(
SSqlObj
*
pSql
)
{
...
@@ -325,10 +358,11 @@ static void tscProcessServStatus(SSqlObj *pSql) {
...
@@ -325,10 +358,11 @@ static void tscProcessServStatus(SSqlObj *pSql) {
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfoDetail
(
&
pSql
->
cmd
,
0
);
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfoDetail
(
&
pSql
->
cmd
,
0
);
SSqlExpr
*
pExpr
=
taosArrayGetP
(
pQueryInfo
->
exprList
,
0
);
SSqlExpr
*
pExpr
=
taosArrayGetP
(
pQueryInfo
->
exprList
,
0
);
tscSetLocalQueryResult
(
pSql
,
"1"
,
pExpr
->
aliasName
,
2
);
int32_t
val
=
1
;
tscSetLocalQueryResult
(
pSql
,
(
char
*
)
&
val
,
pExpr
->
aliasName
,
TSDB_DATA_TYPE_INT
,
sizeof
(
int32_t
));
}
}
void
tscSetLocalQueryResult
(
SSqlObj
*
pSql
,
const
char
*
val
,
const
char
*
columnName
,
size_t
valueLength
)
{
void
tscSetLocalQueryResult
(
SSqlObj
*
pSql
,
const
char
*
val
,
const
char
*
columnName
,
int16_t
type
,
size_t
valueLength
)
{
SSqlCmd
*
pCmd
=
&
pSql
->
cmd
;
SSqlCmd
*
pCmd
=
&
pSql
->
cmd
;
SSqlRes
*
pRes
=
&
pSql
->
res
;
SSqlRes
*
pRes
=
&
pSql
->
res
;
...
@@ -338,8 +372,10 @@ void tscSetLocalQueryResult(SSqlObj *pSql, const char *val, const char *columnNa
...
@@ -338,8 +372,10 @@ void tscSetLocalQueryResult(SSqlObj *pSql, const char *val, const char *columnNa
pQueryInfo
->
order
.
order
=
TSDB_ORDER_ASC
;
pQueryInfo
->
order
.
order
=
TSDB_ORDER_ASC
;
tscFieldInfoClear
(
&
pQueryInfo
->
fieldsInfo
);
tscFieldInfoClear
(
&
pQueryInfo
->
fieldsInfo
);
pQueryInfo
->
fieldsInfo
.
pFields
=
taosArrayInit
(
1
,
sizeof
(
TAOS_FIELD
));
pQueryInfo
->
fieldsInfo
.
pSupportInfo
=
taosArrayInit
(
1
,
sizeof
(
SFieldSupInfo
));
TAOS_FIELD
f
=
tscCreateField
(
TSDB_DATA_TYPE_BINARY
,
columnName
,
valueLength
);
TAOS_FIELD
f
=
tscCreateField
(
type
,
columnName
,
valueLength
);
tscFieldInfoAppend
(
&
pQueryInfo
->
fieldsInfo
,
&
f
);
tscFieldInfoAppend
(
&
pQueryInfo
->
fieldsInfo
,
&
f
);
tscInitResObjForLocalQuery
(
pSql
,
1
,
valueLength
);
tscInitResObjForLocalQuery
(
pSql
,
1
,
valueLength
);
...
@@ -348,7 +384,7 @@ void tscSetLocalQueryResult(SSqlObj *pSql, const char *val, const char *columnNa
...
@@ -348,7 +384,7 @@ void tscSetLocalQueryResult(SSqlObj *pSql, const char *val, const char *columnNa
SFieldSupInfo
*
pInfo
=
tscFieldInfoGetSupp
(
&
pQueryInfo
->
fieldsInfo
,
0
);
SFieldSupInfo
*
pInfo
=
tscFieldInfoGetSupp
(
&
pQueryInfo
->
fieldsInfo
,
0
);
pInfo
->
pSqlExpr
=
taosArrayGetP
(
pQueryInfo
->
exprList
,
0
);
pInfo
->
pSqlExpr
=
taosArrayGetP
(
pQueryInfo
->
exprList
,
0
);
strn
cpy
(
pRes
->
data
,
val
,
pField
->
bytes
);
mem
cpy
(
pRes
->
data
,
val
,
pField
->
bytes
);
}
}
int
tscProcessLocalCmd
(
SSqlObj
*
pSql
)
{
int
tscProcessLocalCmd
(
SSqlObj
*
pSql
)
{
...
@@ -385,7 +421,7 @@ int tscProcessLocalCmd(SSqlObj *pSql) {
...
@@ -385,7 +421,7 @@ int tscProcessLocalCmd(SSqlObj *pSql) {
// keep the code in local variable in order to avoid invalid read in case of async query
// keep the code in local variable in order to avoid invalid read in case of async query
int32_t
code
=
pSql
->
res
.
code
;
int32_t
code
=
pSql
->
res
.
code
;
if
(
code
==
TSDB_CODE_SUCCESS
)
{
if
(
code
==
TSDB_CODE_SUCCESS
)
{
(
*
pSql
->
fp
)(
pSql
->
param
,
pSql
,
0
);
(
*
pSql
->
fp
)(
pSql
->
param
,
pSql
,
code
);
}
else
{
}
else
{
tscQueueAsyncRes
(
pSql
);
tscQueueAsyncRes
(
pSql
);
}
}
...
...
src/client/src/tscSQLParser.c
浏览文件 @
3e93fccf
...
@@ -5395,20 +5395,15 @@ int32_t doLocalQueryProcess(SQueryInfo* pQueryInfo, SQuerySQL* pQuerySql) {
...
@@ -5395,20 +5395,15 @@ int32_t doLocalQueryProcess(SQueryInfo* pQueryInfo, SQuerySQL* pQuerySql) {
switch
(
index
)
{
switch
(
index
)
{
case
0
:
case
0
:
pQueryInfo
->
command
=
TSDB_SQL_CURRENT_DB
;
pQueryInfo
->
command
=
TSDB_SQL_CURRENT_DB
;
break
;
return
TSDB_CODE_SUCCESS
;
case
1
:
case
1
:
pQueryInfo
->
command
=
TSDB_SQL_SERV_VERSION
;
pQueryInfo
->
command
=
TSDB_SQL_SERV_VERSION
;
break
;
return
TSDB_CODE_SUCCESS
;
case
2
:
case
2
:
pQueryInfo
->
command
=
TSDB_SQL_SERV_STATUS
;
break
;
pQueryInfo
->
command
=
TSDB_SQL_SERV_STATUS
;
return
TSDB_CODE_SUCCESS
;
case
3
:
case
3
:
pQueryInfo
->
command
=
TSDB_SQL_CLI_VERSION
;
pQueryInfo
->
command
=
TSDB_SQL_CLI_VERSION
;
break
;
return
TSDB_CODE_SUCCESS
;
case
4
:
case
4
:
pQueryInfo
->
command
=
TSDB_SQL_CURRENT_USER
;
pQueryInfo
->
command
=
TSDB_SQL_CURRENT_USER
;
break
;
return
TSDB_CODE_SUCCESS
;
default:
{
return
invalidSqlErrMsg
(
pQueryInfo
->
msg
,
msg3
);
}
default:
{
return
invalidSqlErrMsg
(
pQueryInfo
->
msg
,
msg3
);
}
}
}
...
@@ -5418,6 +5413,8 @@ int32_t doLocalQueryProcess(SQueryInfo* pQueryInfo, SQuerySQL* pQuerySql) {
...
@@ -5418,6 +5413,8 @@ int32_t doLocalQueryProcess(SQueryInfo* pQueryInfo, SQuerySQL* pQuerySql) {
const
char
*
name
=
(
pExprList
->
a
[
0
].
aliasName
!=
NULL
)
?
pExprList
->
a
[
0
].
aliasName
:
functionsInfo
[
index
].
name
;
const
char
*
name
=
(
pExprList
->
a
[
0
].
aliasName
!=
NULL
)
?
pExprList
->
a
[
0
].
aliasName
:
functionsInfo
[
index
].
name
;
strncpy
(
pExpr1
->
aliasName
,
name
,
tListLen
(
pExpr1
->
aliasName
));
strncpy
(
pExpr1
->
aliasName
,
name
,
tListLen
(
pExpr1
->
aliasName
));
return
TSDB_CODE_SUCCESS
;
}
}
// can only perform the parameters based on the macro definitation
// can only perform the parameters based on the macro definitation
...
...
src/client/src/tscSchemaUtil.c
浏览文件 @
3e93fccf
...
@@ -131,13 +131,6 @@ SSchema* tscGetTableColumnSchema(const STableMeta* pTableMeta, int32_t startCol)
...
@@ -131,13 +131,6 @@ SSchema* tscGetTableColumnSchema(const STableMeta* pTableMeta, int32_t startCol)
assert
(
pTableMeta
!=
NULL
);
assert
(
pTableMeta
!=
NULL
);
SSchema
*
pSchema
=
(
SSchema
*
)
pTableMeta
->
schema
;
SSchema
*
pSchema
=
(
SSchema
*
)
pTableMeta
->
schema
;
#if 0
if (pTableMeta->tableType == TSDB_CHILD_TABLE) {
assert (pTableMeta->pSTable != NULL);
pSchema = pTableMeta->pSTable->schema;
}
#endif
return
&
pSchema
[
startCol
];
return
&
pSchema
[
startCol
];
}
}
...
...
src/client/src/tscServer.c
浏览文件 @
3e93fccf
...
@@ -1391,22 +1391,9 @@ int tscProcessDescribeTableRsp(SSqlObj *pSql) {
...
@@ -1391,22 +1391,9 @@ int tscProcessDescribeTableRsp(SSqlObj *pSql) {
return
tscLocalResultCommonBuilder
(
pSql
,
numOfRes
);
return
tscLocalResultCommonBuilder
(
pSql
,
numOfRes
);
}
}
int
tscProcessTagRetrieveRsp
(
SSqlObj
*
pSql
)
{
int
tscProcessLocalRetrieveRsp
(
SSqlObj
*
pSql
)
{
// SSqlCmd *pCmd = &pSql->cmd;
int32_t
numOfRes
=
1
;
pSql
->
res
.
completed
=
true
;
// SQueryInfo * pQueryInfo = tscGetQueryInfoDetail(pCmd, pCmd->clauseIndex);
// STableMetaInfo *pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0);
int32_t
numOfRes
=
0
;
#if 0
if (tscSqlExprGet(pQueryInfo, 0)->functionId == TSDB_FUNC_TAGPRJ) {
numOfRes = pTableMetaInfo->pMetricMeta->numOfTables;
} else {
numOfRes = 1; // for count function, there is only one output.
}
#endif
return
tscLocalResultCommonBuilder
(
pSql
,
numOfRes
);
return
tscLocalResultCommonBuilder
(
pSql
,
numOfRes
);
}
}
...
@@ -2562,11 +2549,11 @@ void tscInitMsgsFp() {
...
@@ -2562,11 +2549,11 @@ void tscInitMsgsFp() {
tscProcessMsgRsp
[
TSDB_SQL_RETRIEVE
]
=
tscProcessRetrieveRspFromNode
;
// rsp handled by same function.
tscProcessMsgRsp
[
TSDB_SQL_RETRIEVE
]
=
tscProcessRetrieveRspFromNode
;
// rsp handled by same function.
tscProcessMsgRsp
[
TSDB_SQL_DESCRIBE_TABLE
]
=
tscProcessDescribeTableRsp
;
tscProcessMsgRsp
[
TSDB_SQL_DESCRIBE_TABLE
]
=
tscProcessDescribeTableRsp
;
tscProcessMsgRsp
[
TSDB_SQL_CURRENT_DB
]
=
tscProcessTag
RetrieveRsp
;
tscProcessMsgRsp
[
TSDB_SQL_CURRENT_DB
]
=
tscProcessLocal
RetrieveRsp
;
tscProcessMsgRsp
[
TSDB_SQL_CURRENT_USER
]
=
tscProcess
Tag
RetrieveRsp
;
tscProcessMsgRsp
[
TSDB_SQL_CURRENT_USER
]
=
tscProcess
Local
RetrieveRsp
;
tscProcessMsgRsp
[
TSDB_SQL_SERV_VERSION
]
=
tscProcess
Tag
RetrieveRsp
;
tscProcessMsgRsp
[
TSDB_SQL_SERV_VERSION
]
=
tscProcess
Local
RetrieveRsp
;
tscProcessMsgRsp
[
TSDB_SQL_CLI_VERSION
]
=
tscProcessTag
RetrieveRsp
;
tscProcessMsgRsp
[
TSDB_SQL_CLI_VERSION
]
=
tscProcessLocal
RetrieveRsp
;
tscProcessMsgRsp
[
TSDB_SQL_SERV_STATUS
]
=
tscProcessTag
RetrieveRsp
;
tscProcessMsgRsp
[
TSDB_SQL_SERV_STATUS
]
=
tscProcessLocal
RetrieveRsp
;
tscProcessMsgRsp
[
TSDB_SQL_RETRIEVE_EMPTY_RESULT
]
=
tscProcessEmptyResultRsp
;
tscProcessMsgRsp
[
TSDB_SQL_RETRIEVE_EMPTY_RESULT
]
=
tscProcessEmptyResultRsp
;
...
...
src/client/src/tscSql.c
浏览文件 @
3e93fccf
...
@@ -413,10 +413,6 @@ int taos_fetch_block_impl(TAOS_RES *res, TAOS_ROW *rows) {
...
@@ -413,10 +413,6 @@ int taos_fetch_block_impl(TAOS_RES *res, TAOS_ROW *rows) {
static
void
waitForRetrieveRsp
(
void
*
param
,
TAOS_RES
*
tres
,
int
numOfRows
)
{
static
void
waitForRetrieveRsp
(
void
*
param
,
TAOS_RES
*
tres
,
int
numOfRows
)
{
SSqlObj
*
pSql
=
(
SSqlObj
*
)
tres
;
SSqlObj
*
pSql
=
(
SSqlObj
*
)
tres
;
if
(
numOfRows
<
0
)
{
// set the error code
pSql
->
res
.
code
=
-
numOfRows
;
}
sem_post
(
&
pSql
->
rspSem
);
sem_post
(
&
pSql
->
rspSem
);
}
}
...
@@ -444,7 +440,12 @@ TAOS_ROW taos_fetch_row(TAOS_RES *res) {
...
@@ -444,7 +440,12 @@ TAOS_ROW taos_fetch_row(TAOS_RES *res) {
pCmd
->
command
==
TSDB_SQL_FETCH
||
pCmd
->
command
==
TSDB_SQL_FETCH
||
pCmd
->
command
==
TSDB_SQL_SHOW
||
pCmd
->
command
==
TSDB_SQL_SHOW
||
pCmd
->
command
==
TSDB_SQL_SELECT
||
pCmd
->
command
==
TSDB_SQL_SELECT
||
pCmd
->
command
==
TSDB_SQL_DESCRIBE_TABLE
))
{
pCmd
->
command
==
TSDB_SQL_DESCRIBE_TABLE
||
pCmd
->
command
==
TSDB_SQL_SERV_STATUS
||
pCmd
->
command
==
TSDB_SQL_CURRENT_DB
||
pCmd
->
command
==
TSDB_SQL_SERV_VERSION
||
pCmd
->
command
==
TSDB_SQL_CLI_VERSION
||
pCmd
->
command
==
TSDB_SQL_CURRENT_USER
))
{
taos_fetch_rows_a
(
res
,
waitForRetrieveRsp
,
pSql
->
pTscObj
);
taos_fetch_rows_a
(
res
,
waitForRetrieveRsp
,
pSql
->
pTscObj
);
sem_wait
(
&
pSql
->
rspSem
);
sem_wait
(
&
pSql
->
rspSem
);
}
}
...
...
src/client/src/tscUtil.c
浏览文件 @
3e93fccf
...
@@ -965,7 +965,8 @@ static SSqlExpr* doBuildSqlExpr(SQueryInfo* pQueryInfo, int16_t functionId, SCol
...
@@ -965,7 +965,8 @@ static SSqlExpr* doBuildSqlExpr(SQueryInfo* pQueryInfo, int16_t functionId, SCol
SSchema
*
pSchema
=
tscGetTableTagSchema
(
pTableMetaInfo
->
pTableMeta
);
SSchema
*
pSchema
=
tscGetTableTagSchema
(
pTableMetaInfo
->
pTableMeta
);
pExpr
->
colInfo
.
colId
=
pSchema
[
pColIndex
->
columnIndex
].
colId
;
pExpr
->
colInfo
.
colId
=
pSchema
[
pColIndex
->
columnIndex
].
colId
;
strncpy
(
pExpr
->
colInfo
.
name
,
pSchema
[
pColIndex
->
columnIndex
].
name
,
TSDB_COL_NAME_LEN
);
strncpy
(
pExpr
->
colInfo
.
name
,
pSchema
[
pColIndex
->
columnIndex
].
name
,
TSDB_COL_NAME_LEN
);
}
else
{
}
else
if
(
pTableMetaInfo
->
pTableMeta
!=
NULL
)
{
// in handling select database/version/server_status(), the pTableMeta is NULL
SSchema
*
pSchema
=
tscGetTableColumnSchema
(
pTableMetaInfo
->
pTableMeta
,
pColIndex
->
columnIndex
);
SSchema
*
pSchema
=
tscGetTableColumnSchema
(
pTableMetaInfo
->
pTableMeta
,
pColIndex
->
columnIndex
);
pExpr
->
colInfo
.
colId
=
pSchema
->
colId
;
pExpr
->
colInfo
.
colId
=
pSchema
->
colId
;
strncpy
(
pExpr
->
colInfo
.
name
,
pSchema
->
name
,
TSDB_COL_NAME_LEN
);
strncpy
(
pExpr
->
colInfo
.
name
,
pSchema
->
name
,
TSDB_COL_NAME_LEN
);
...
@@ -977,8 +978,12 @@ static SSqlExpr* doBuildSqlExpr(SQueryInfo* pQueryInfo, int16_t functionId, SCol
...
@@ -977,8 +978,12 @@ static SSqlExpr* doBuildSqlExpr(SQueryInfo* pQueryInfo, int16_t functionId, SCol
pExpr
->
colInfo
.
colIndex
=
pColIndex
->
columnIndex
;
pExpr
->
colInfo
.
colIndex
=
pColIndex
->
columnIndex
;
pExpr
->
resType
=
type
;
pExpr
->
resType
=
type
;
pExpr
->
resBytes
=
size
;
pExpr
->
resBytes
=
size
;
pExpr
->
interBytes
=
interSize
;
pExpr
->
interBytes
=
interSize
;
pExpr
->
uid
=
pTableMetaInfo
->
pTableMeta
->
uid
;
if
(
pTableMetaInfo
->
pTableMeta
)
{
pExpr
->
uid
=
pTableMetaInfo
->
pTableMeta
->
uid
;
}
return
pExpr
;
return
pExpr
;
}
}
...
...
tests/script/unique/arbitrator/dn3_mn1_vnode_change.sim
浏览文件 @
3e93fccf
...
@@ -93,14 +93,14 @@ if $data00 != $totalRows then
...
@@ -93,14 +93,14 @@ if $data00 != $totalRows then
return -1
return -1
endi
endi
print ============== step3: stop dnode
2
, and remove its vnodeX subdirector
print ============== step3: stop dnode
4
, and remove its vnodeX subdirector
system sh/exec.sh -n dnode
2
-s stop -x SIGINT
system sh/exec.sh -n dnode
4
-s stop -x SIGINT
sleep $sleepTimer
sleep $sleepTimer
wait_dnode
2
_offline_0:
wait_dnode
4
_offline_0:
sql show dnodes
sql show dnodes
if $rows != 4 then
if $rows != 4 then
sleep 2000
sleep 2000
goto wait_dnode
2
_offline_0
goto wait_dnode
4
_offline_0
endi
endi
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
...
@@ -110,26 +110,49 @@ print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
...
@@ -110,26 +110,49 @@ print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
#$dnode1Status = $data4_1
#$dnode1Status = $data4_1
$dnode2Status = $data4_2
$dnode2Status = $data4_2
#
$dnode3Status = $data4_3
$dnode3Status = $data4_3
#
$dnode4Status = $data4_4
$dnode4Status = $data4_4
#$dnode5Status = $data4_5
#$dnode5Status = $data4_5
if $dnode2Status != offline then
if $dnode4Status != offline then
sleep 2000
goto wait_dnode4_offline_0
endi
wait_dnode4_vgroup_offline:
sql show vgroups
if $rows != 1 then
sleep 2000
goto wait_dnode4_vgroup_offline
endi
print show vgroups:
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
$dnode4Vtatus = $data4_2
$dnode3Vtatus = $data7_2
if $dnode4Vtatus != offline then
sleep 2000
goto wait_dnode4_vgroup_offline
endi
if $dnode3Vtatus != master then
sleep 2000
sleep 2000
goto wait_dnode
2_offline_0
goto wait_dnode
4_vgroup_offline
endi
endi
system rm -rf ../../../sim/dnode2/data/vnode/*
system rm -rf ../../../sim/dnode4/data/vnode/*
sleep 1000
sleep 1000
print ============== step4: restart dnode
2
, waiting sync end
print ============== step4: restart dnode
4
, waiting sync end
system sh/exec.sh -n dnode
2
-s start
system sh/exec.sh -n dnode
4
-s start
sleep $sleepTimer
sleep $sleepTimer
wait_dnode
2
_reready:
wait_dnode
4
_reready:
sql show dnodes
sql show dnodes
if $rows != 4 then
if $rows != 4 then
sleep 2000
sleep 2000
goto wait_dnode
2
_reready
goto wait_dnode
4
_reready
endi
endi
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
...
@@ -139,25 +162,49 @@ print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
...
@@ -139,25 +162,49 @@ print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
#$dnode1Status = $data4_1
#$dnode1Status = $data4_1
$dnode2Status = $data4_2
$dnode2Status = $data4_2
#
$dnode3Status = $data4_3
$dnode3Status = $data4_3
#
$dnode4Status = $data4_4
$dnode4Status = $data4_4
#$dnode5Status = $data4_5
#$dnode5Status = $data4_5
if $dnode
2
Status != ready then
if $dnode
4
Status != ready then
sleep 2000
sleep 2000
goto wait_dnode
2
_reready
goto wait_dnode
4
_reready
endi
endi
print ============== step5: stop dnode3/dnode4, and check rows
wait_dnode4_vgroup_slave:
sql show vgroups
if $rows != 1 then
sleep 2000
goto wait_dnode4_vgroup_slave
endi
print show vgroups:
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
$dnode4Vtatus = $data4_2
$dnode3Vtatus = $data7_2
print dnode4Vtatus: $dnode4Vtatus
print dnode3Vtatus: $dnode3Vtatus
if $dnode4Vtatus != slave then
sleep 2000
goto wait_dnode4_vgroup_slave
endi
if $dnode3Vtatus != master then
sleep 2000
goto wait_dnode4_vgroup_slave
endi
print ============== step5: stop dnode3/dnode2, and check rows
system sh/exec.sh -n dnode2 -s stop
system sh/exec.sh -n dnode3 -s stop
system sh/exec.sh -n dnode3 -s stop
system sh/exec.sh -n dnode4 -s stop
sleep $sleepTimer
sleep $sleepTimer
wait_dnode
34
_offline:
wait_dnode
23
_offline:
sql show dnodes
sql show dnodes
if $rows != 4 then
if $rows != 4 then
sleep 2000
sleep 2000
goto wait_dnode
34
_offline
goto wait_dnode
23
_offline
endi
endi
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
...
@@ -171,17 +218,41 @@ $dnode3Status = $data4_3
...
@@ -171,17 +218,41 @@ $dnode3Status = $data4_3
$dnode4Status = $data4_4
$dnode4Status = $data4_4
#$dnode5Status = $data4_5
#$dnode5Status = $data4_5
if $dnode2Status !=
ready
then
if $dnode2Status !=
offline
then
sleep 2000
sleep 2000
goto wait_dnode
34
_offline
goto wait_dnode
23
_offline
endi
endi
if $dnode3Status != offline then
if $dnode3Status != offline then
sleep 2000
sleep 2000
goto wait_dnode
34
_offline
goto wait_dnode
23
_offline
endi
endi
if $dnode4Status != offline then
if $dnode4Status != ready then
sleep 2000
goto wait_dnode23_offline
endi
wait_dnode4_vgroup_master:
sql show vgroups
if $rows != 1 then
sleep 2000
goto wait_dnode4_vgroup_master
endi
print show vgroups:
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
$dnode4Vtatus = $data4_2
$dnode3Vtatus = $data7_2
print dnode4Vtatus: $dnode4Vtatus
print dnode3Vtatus: $dnode3Vtatus
if $dnode4Vtatus != master then
sleep 2000
goto wait_dnode4_vgroup_master
endi
if $dnode3Vtatus != offline then
sleep 2000
sleep 2000
goto wait_dnode
34_offline
goto wait_dnode
4_vgroup_master
endi
endi
# check using select
# check using select
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录