Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
23bcfc2f
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
23bcfc2f
编写于
5月 31, 2023
作者:
D
dapan1121
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
enh: stmt column length validation
上级
b56ee130
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
79 addition
and
28 deletion
+79
-28
include/common/tdataformat.h
include/common/tdataformat.h
+1
-1
source/common/src/tdataformat.c
source/common/src/tdataformat.c
+4
-1
source/libs/parser/src/parInsertStmt.c
source/libs/parser/src/parInsertStmt.c
+5
-2
tests/script/api/batchprepare.c
tests/script/api/batchprepare.c
+69
-24
未找到文件。
include/common/tdataformat.h
浏览文件 @
23bcfc2f
...
@@ -145,7 +145,7 @@ int32_t tColDataCopy(SColData *pColDataFrom, SColData *pColData, xMallocFn xMall
...
@@ -145,7 +145,7 @@ int32_t tColDataCopy(SColData *pColDataFrom, SColData *pColData, xMallocFn xMall
extern
void
(
*
tColDataCalcSMA
[])(
SColData
*
pColData
,
int64_t
*
sum
,
int64_t
*
max
,
int64_t
*
min
,
int16_t
*
numOfNull
);
extern
void
(
*
tColDataCalcSMA
[])(
SColData
*
pColData
,
int64_t
*
sum
,
int64_t
*
max
,
int64_t
*
min
,
int16_t
*
numOfNull
);
// for stmt bind
// for stmt bind
int32_t
tColDataAddValueByBind
(
SColData
*
pColData
,
TAOS_MULTI_BIND
*
pBind
);
int32_t
tColDataAddValueByBind
(
SColData
*
pColData
,
TAOS_MULTI_BIND
*
pBind
,
int32_t
buffMaxLen
);
void
tColDataSortMerge
(
SArray
*
colDataArr
);
void
tColDataSortMerge
(
SArray
*
colDataArr
);
// for raw block
// for raw block
...
...
source/common/src/tdataformat.c
浏览文件 @
23bcfc2f
...
@@ -2503,7 +2503,7 @@ _exit:
...
@@ -2503,7 +2503,7 @@ _exit:
return
code
;
return
code
;
}
}
int32_t
tColDataAddValueByBind
(
SColData
*
pColData
,
TAOS_MULTI_BIND
*
pBind
)
{
int32_t
tColDataAddValueByBind
(
SColData
*
pColData
,
TAOS_MULTI_BIND
*
pBind
,
int32_t
buffMaxLen
)
{
int32_t
code
=
0
;
int32_t
code
=
0
;
if
(
!
(
pBind
->
num
==
1
&&
pBind
->
is_null
&&
*
pBind
->
is_null
))
{
if
(
!
(
pBind
->
num
==
1
&&
pBind
->
is_null
&&
*
pBind
->
is_null
))
{
...
@@ -2515,6 +2515,9 @@ int32_t tColDataAddValueByBind(SColData *pColData, TAOS_MULTI_BIND *pBind) {
...
@@ -2515,6 +2515,9 @@ int32_t tColDataAddValueByBind(SColData *pColData, TAOS_MULTI_BIND *pBind) {
if
(
pBind
->
is_null
&&
pBind
->
is_null
[
i
])
{
if
(
pBind
->
is_null
&&
pBind
->
is_null
[
i
])
{
code
=
tColDataAppendValueImpl
[
pColData
->
flag
][
CV_FLAG_NULL
](
pColData
,
NULL
,
0
);
code
=
tColDataAppendValueImpl
[
pColData
->
flag
][
CV_FLAG_NULL
](
pColData
,
NULL
,
0
);
if
(
code
)
goto
_exit
;
if
(
code
)
goto
_exit
;
}
else
if
(
pBind
->
length
[
i
]
>
buffMaxLen
)
{
uError
(
"var data length too big, len:%d, max:%d"
,
pBind
->
length
[
i
],
buffMaxLen
);
return
TSDB_CODE_INVALID_PARA
;
}
else
{
}
else
{
code
=
tColDataAppendValueImpl
[
pColData
->
flag
][
CV_FLAG_VALUE
](
code
=
tColDataAppendValueImpl
[
pColData
->
flag
][
CV_FLAG_VALUE
](
pColData
,
(
uint8_t
*
)
pBind
->
buffer
+
pBind
->
buffer_length
*
i
,
pBind
->
length
[
i
]);
pColData
,
(
uint8_t
*
)
pBind
->
buffer
+
pBind
->
buffer_length
*
i
,
pBind
->
length
[
i
]);
...
...
source/libs/parser/src/parInsertStmt.c
浏览文件 @
23bcfc2f
...
@@ -266,7 +266,10 @@ int32_t qBindStmtColsValue(void* pBlock, TAOS_MULTI_BIND* bind, char* msgBuf, in
...
@@ -266,7 +266,10 @@ int32_t qBindStmtColsValue(void* pBlock, TAOS_MULTI_BIND* bind, char* msgBuf, in
pBind
=
bind
+
c
;
pBind
=
bind
+
c
;
}
}
tColDataAddValueByBind
(
pCol
,
pBind
);
code
=
tColDataAddValueByBind
(
pCol
,
pBind
,
IS_VAR_DATA_TYPE
(
pColSchema
->
type
)
?
pColSchema
->
bytes
-
VARSTR_HEADER_SIZE
:
-
1
);
if
(
code
)
{
goto
_return
;
}
}
}
qDebug
(
"stmt all %d columns bind %d rows data"
,
boundInfo
->
numOfBound
,
rowNum
);
qDebug
(
"stmt all %d columns bind %d rows data"
,
boundInfo
->
numOfBound
,
rowNum
);
...
@@ -309,7 +312,7 @@ int32_t qBindStmtSingleColValue(void* pBlock, TAOS_MULTI_BIND* bind, char* msgBu
...
@@ -309,7 +312,7 @@ int32_t qBindStmtSingleColValue(void* pBlock, TAOS_MULTI_BIND* bind, char* msgBu
pBind
=
bind
;
pBind
=
bind
;
}
}
tColDataAddValueByBind
(
pCol
,
pBind
);
tColDataAddValueByBind
(
pCol
,
pBind
,
IS_VAR_DATA_TYPE
(
pColSchema
->
type
)
?
pColSchema
->
bytes
-
VARSTR_HEADER_SIZE
:
-
1
);
qDebug
(
"stmt col %d bind %d rows data"
,
colIdx
,
rowNum
);
qDebug
(
"stmt col %d bind %d rows data"
,
colIdx
,
rowNum
);
...
...
tests/script/api/batchprepare.c
浏览文件 @
23bcfc2f
...
@@ -16,8 +16,8 @@
...
@@ -16,8 +16,8 @@
int32_t
shortColList
[]
=
{
TSDB_DATA_TYPE_TIMESTAMP
,
TSDB_DATA_TYPE_INT
};
int32_t
shortColList
[]
=
{
TSDB_DATA_TYPE_TIMESTAMP
,
TSDB_DATA_TYPE_INT
};
int32_t
fullColList
[]
=
{
TSDB_DATA_TYPE_TIMESTAMP
,
TSDB_DATA_TYPE_BOOL
,
TSDB_DATA_TYPE_TINYINT
,
TSDB_DATA_TYPE_UTINYINT
,
TSDB_DATA_TYPE_SMALLINT
,
TSDB_DATA_TYPE_USMALLINT
,
TSDB_DATA_TYPE_INT
,
TSDB_DATA_TYPE_UINT
,
TSDB_DATA_TYPE_BIGINT
,
TSDB_DATA_TYPE_UBIGINT
,
TSDB_DATA_TYPE_FLOAT
,
TSDB_DATA_TYPE_DOUBLE
,
TSDB_DATA_TYPE_BINARY
,
TSDB_DATA_TYPE_NCHAR
};
int32_t
fullColList
[]
=
{
TSDB_DATA_TYPE_TIMESTAMP
,
TSDB_DATA_TYPE_BOOL
,
TSDB_DATA_TYPE_TINYINT
,
TSDB_DATA_TYPE_UTINYINT
,
TSDB_DATA_TYPE_SMALLINT
,
TSDB_DATA_TYPE_USMALLINT
,
TSDB_DATA_TYPE_INT
,
TSDB_DATA_TYPE_UINT
,
TSDB_DATA_TYPE_BIGINT
,
TSDB_DATA_TYPE_UBIGINT
,
TSDB_DATA_TYPE_FLOAT
,
TSDB_DATA_TYPE_DOUBLE
,
TSDB_DATA_TYPE_BINARY
,
TSDB_DATA_TYPE_NCHAR
};
int32_t
bindColTypeList
[]
=
{
TSDB_DATA_TYPE_TIMESTAMP
,
TSDB_DATA_TYPE_
INT
};
int32_t
bindColTypeList
[]
=
{
TSDB_DATA_TYPE_TIMESTAMP
,
TSDB_DATA_TYPE_
NCHAR
};
int32_t
optrIdxList
[]
=
{
0
,
7
};
int32_t
optrIdxList
[]
=
{
5
,
11
};
typedef
struct
{
typedef
struct
{
char
*
oper
;
char
*
oper
;
...
@@ -123,6 +123,7 @@ int insertAUTOTest3(TAOS_STMT *stmt, TAOS *taos);
...
@@ -123,6 +123,7 @@ int insertAUTOTest3(TAOS_STMT *stmt, TAOS *taos);
int
queryColumnTest
(
TAOS_STMT
*
stmt
,
TAOS
*
taos
);
int
queryColumnTest
(
TAOS_STMT
*
stmt
,
TAOS
*
taos
);
int
queryMiscTest
(
TAOS_STMT
*
stmt
,
TAOS
*
taos
);
int
queryMiscTest
(
TAOS_STMT
*
stmt
,
TAOS
*
taos
);
int
insertNonExistsTb
(
TAOS_STMT
*
stmt
,
TAOS
*
taos
);
int
insertNonExistsTb
(
TAOS_STMT
*
stmt
,
TAOS
*
taos
);
int
insertVarLenErr
(
TAOS_STMT
*
stmt
,
TAOS
*
taos
);
enum
{
enum
{
TTYPE_INSERT
=
1
,
TTYPE_INSERT
=
1
,
...
@@ -190,6 +191,7 @@ CaseCfg gCase[] = {
...
@@ -190,6 +191,7 @@ CaseCfg gCase[] = {
{
"query:SUBT-MISC"
,
tListLen
(
fullColList
),
fullColList
,
TTYPE_QUERY
,
0
,
false
,
false
,
queryMiscTest
,
10
,
10
,
1
,
3
,
0
,
0
,
1
,
2
},
{
"query:SUBT-MISC"
,
tListLen
(
fullColList
),
fullColList
,
TTYPE_QUERY
,
0
,
false
,
false
,
queryMiscTest
,
10
,
10
,
1
,
3
,
0
,
0
,
1
,
2
},
{
"query:NG-TBNEXISTS"
,
tListLen
(
fullColList
),
fullColList
,
TTYPE_INSERT_NG
,
0
,
false
,
false
,
insertNonExistsTb
,
10
,
10
,
1
,
3
,
0
,
0
,
1
,
-
1
},
{
"query:NG-TBNEXISTS"
,
tListLen
(
fullColList
),
fullColList
,
TTYPE_INSERT_NG
,
0
,
false
,
false
,
insertNonExistsTb
,
10
,
10
,
1
,
3
,
0
,
0
,
1
,
-
1
},
{
"query:NG-VARLENERR"
,
tListLen
(
fullColList
),
fullColList
,
TTYPE_INSERT_NG
,
0
,
false
,
true
,
insertVarLenErr
,
10
,
10
,
1
,
3
,
0
,
0
,
1
,
-
1
},
// {"query:SUBT-COLUMN", tListLen(fullColList), fullColList, TTYPE_QUERY, 0, false, false, queryColumnTest, 1, 10, 1, 1, 0, 0, 1, 2},
// {"query:SUBT-COLUMN", tListLen(fullColList), fullColList, TTYPE_QUERY, 0, false, false, queryColumnTest, 1, 10, 1, 1, 0, 0, 1, 2},
// {"query:SUBT-MISC", tListLen(fullColList), fullColList, TTYPE_QUERY, 0, false, false, queryMiscTest, 2, 10, 1, 1, 0, 0, 1, 2},
// {"query:SUBT-MISC", tListLen(fullColList), fullColList, TTYPE_QUERY, 0, false, false, queryMiscTest, 2, 10, 1, 1, 0, 0, 1, 2},
...
@@ -319,7 +321,7 @@ CaseCtrl gCaseCtrl = { // query case with specified col&oper
...
@@ -319,7 +321,7 @@ CaseCtrl gCaseCtrl = { // query case with specified col&oper
#if 0
#if 0
CaseCtrl gCaseCtrl = { // query case with specified col&oper
CaseCtrl gCaseCtrl = { // query case with specified col&oper
.bindNullNum =
1
,
.bindNullNum =
0
,
.printCreateTblSql = true,
.printCreateTblSql = true,
.printQuerySql = true,
.printQuerySql = true,
.printStmtSql = true,
.printStmtSql = true,
...
@@ -329,18 +331,19 @@ CaseCtrl gCaseCtrl = { // query case with specified col&oper
...
@@ -329,18 +331,19 @@ CaseCtrl gCaseCtrl = { // query case with specified col&oper
.bindTagNum = 0,
.bindTagNum = 0,
.bindRowNum = 0,
.bindRowNum = 0,
.bindColTypeNum = 0,
.bindColTypeNum = 0,
.bindColTypeList =
NULL
,
.bindColTypeList =
bindColTypeList
,
.optrIdxListNum = 0,
.optrIdxListNum = 0,
.optrIdxList =
NULL
,
.optrIdxList =
optrIdxList
,
.checkParamNum = false,
.checkParamNum = false,
.printRes = true,
.printRes = true,
.runTimes = 0,
.runTimes = 0,
.caseRunIdx = -1,
.caseRunIdx = -1,
//.optrIdxListNum = tListLen(optrIdxList),
.optrIdxListNum = tListLen(optrIdxList),
//.optrIdxList = optrIdxList,
.optrIdxList = optrIdxList,
//.bindColTypeNum = tListLen(bindColTypeList),
.bindColTypeNum = tListLen(bindColTypeList),
//.bindColTypeList = bindColTypeList,
.bindColTypeList = bindColTypeList,
.caseIdx = 8,
.caseRunIdx = -1,
.caseIdx = 24,
.caseNum = 1,
.caseNum = 1,
.caseRunNum = 1,
.caseRunNum = 1,
};
};
...
@@ -1439,14 +1442,17 @@ void bpShowBindParam(TAOS_MULTI_BIND *bind, int32_t num) {
...
@@ -1439,14 +1442,17 @@ void bpShowBindParam(TAOS_MULTI_BIND *bind, int32_t num) {
}
}
}
}
int32_t
bpBindParam
(
TAOS_STMT
*
stmt
,
TAOS_MULTI_BIND
*
bind
)
{
int32_t
bpBindParam
(
TAOS_STMT
*
stmt
,
TAOS_MULTI_BIND
*
bind
,
bool
expectFail
)
{
static
int32_t
n
=
0
;
static
int32_t
n
=
0
;
bpCheckColFields
(
stmt
,
bind
);
if
(
!
expectFail
)
{
bpCheckColFields
(
stmt
,
bind
);
}
if
(
gCurCase
->
bindRowNum
>
1
)
{
if
(
gCurCase
->
bindRowNum
>
1
)
{
if
(
0
==
(
n
++%
2
))
{
if
(
0
==
(
n
++%
2
))
{
if
(
taos_stmt_bind_param_batch
(
stmt
,
bind
))
{
if
(
taos_stmt_bind_param_batch
(
stmt
,
bind
))
{
if
(
expectFail
)
return
0
;
printf
(
"!!!taos_stmt_bind_param_batch error:%s
\n
"
,
taos_stmt_errstr
(
stmt
));
printf
(
"!!!taos_stmt_bind_param_batch error:%s
\n
"
,
taos_stmt_errstr
(
stmt
));
bpShowBindParam
(
bind
,
gCurCase
->
bindColNum
);
bpShowBindParam
(
bind
,
gCurCase
->
bindColNum
);
exit
(
1
);
exit
(
1
);
...
@@ -1454,6 +1460,7 @@ int32_t bpBindParam(TAOS_STMT *stmt, TAOS_MULTI_BIND *bind) {
...
@@ -1454,6 +1460,7 @@ int32_t bpBindParam(TAOS_STMT *stmt, TAOS_MULTI_BIND *bind) {
}
else
{
}
else
{
for
(
int32_t
i
=
0
;
i
<
gCurCase
->
bindColNum
;
++
i
)
{
for
(
int32_t
i
=
0
;
i
<
gCurCase
->
bindColNum
;
++
i
)
{
if
(
taos_stmt_bind_single_param_batch
(
stmt
,
bind
+
i
,
i
))
{
if
(
taos_stmt_bind_single_param_batch
(
stmt
,
bind
+
i
,
i
))
{
if
(
expectFail
)
continue
;
printf
(
"!!!taos_stmt_bind_single_param_batch %d error:%s
\n
"
,
taos_stmt_errstr
(
stmt
),
i
);
printf
(
"!!!taos_stmt_bind_single_param_batch %d error:%s
\n
"
,
taos_stmt_errstr
(
stmt
),
i
);
bpShowBindParam
(
bind
,
gCurCase
->
bindColNum
);
bpShowBindParam
(
bind
,
gCurCase
->
bindColNum
);
exit
(
1
);
exit
(
1
);
...
@@ -1463,12 +1470,14 @@ int32_t bpBindParam(TAOS_STMT *stmt, TAOS_MULTI_BIND *bind) {
...
@@ -1463,12 +1470,14 @@ int32_t bpBindParam(TAOS_STMT *stmt, TAOS_MULTI_BIND *bind) {
}
else
{
}
else
{
if
(
0
==
(
n
++%
2
))
{
if
(
0
==
(
n
++%
2
))
{
if
(
taos_stmt_bind_param_batch
(
stmt
,
bind
))
{
if
(
taos_stmt_bind_param_batch
(
stmt
,
bind
))
{
if
(
expectFail
)
return
0
;
printf
(
"!!!taos_stmt_bind_param_batch error:%s
\n
"
,
taos_stmt_errstr
(
stmt
));
printf
(
"!!!taos_stmt_bind_param_batch error:%s
\n
"
,
taos_stmt_errstr
(
stmt
));
bpShowBindParam
(
bind
,
gCurCase
->
bindColNum
);
bpShowBindParam
(
bind
,
gCurCase
->
bindColNum
);
exit
(
1
);
exit
(
1
);
}
}
}
else
{
}
else
{
if
(
taos_stmt_bind_param
(
stmt
,
bind
))
{
if
(
taos_stmt_bind_param
(
stmt
,
bind
))
{
if
(
expectFail
)
return
0
;
printf
(
"!!!taos_stmt_bind_param error:%s
\n
"
,
taos_stmt_errstr
(
stmt
));
printf
(
"!!!taos_stmt_bind_param error:%s
\n
"
,
taos_stmt_errstr
(
stmt
));
bpShowBindParam
(
bind
,
gCurCase
->
bindColNum
);
bpShowBindParam
(
bind
,
gCurCase
->
bindColNum
);
exit
(
1
);
exit
(
1
);
...
@@ -1531,7 +1540,7 @@ int insertMBSETest1(TAOS_STMT *stmt, TAOS *taos) {
...
@@ -1531,7 +1540,7 @@ int insertMBSETest1(TAOS_STMT *stmt, TAOS *taos) {
}
}
for
(
int32_t
b
=
0
;
b
<
bindTimes
;
++
b
)
{
for
(
int32_t
b
=
0
;
b
<
bindTimes
;
++
b
)
{
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
))
{
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
,
false
))
{
exit
(
1
);
exit
(
1
);
}
}
...
@@ -1583,7 +1592,7 @@ int insertMBSETest2(TAOS_STMT *stmt, TAOS *taos) {
...
@@ -1583,7 +1592,7 @@ int insertMBSETest2(TAOS_STMT *stmt, TAOS *taos) {
}
}
}
}
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
))
{
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
,
false
))
{
exit
(
1
);
exit
(
1
);
}
}
...
@@ -1641,7 +1650,7 @@ int insertMBMETest1(TAOS_STMT *stmt, TAOS *taos) {
...
@@ -1641,7 +1650,7 @@ int insertMBMETest1(TAOS_STMT *stmt, TAOS *taos) {
}
}
for
(
int32_t
b
=
0
;
b
<
bindTimes
;
++
b
)
{
for
(
int32_t
b
=
0
;
b
<
bindTimes
;
++
b
)
{
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
))
{
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
,
false
))
{
exit
(
1
);
exit
(
1
);
}
}
...
@@ -1691,7 +1700,7 @@ int insertMBMETest2(TAOS_STMT *stmt, TAOS *taos) {
...
@@ -1691,7 +1700,7 @@ int insertMBMETest2(TAOS_STMT *stmt, TAOS *taos) {
}
}
for
(
int32_t
b
=
0
;
b
<
bindTimes
;
++
b
)
{
for
(
int32_t
b
=
0
;
b
<
bindTimes
;
++
b
)
{
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
))
{
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
,
false
))
{
exit
(
1
);
exit
(
1
);
}
}
...
@@ -1759,7 +1768,7 @@ int insertMBMETest3(TAOS_STMT *stmt, TAOS *taos) {
...
@@ -1759,7 +1768,7 @@ int insertMBMETest3(TAOS_STMT *stmt, TAOS *taos) {
}
}
}
}
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
))
{
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
,
false
))
{
exit
(
1
);
exit
(
1
);
}
}
...
@@ -1811,7 +1820,7 @@ int insertMBMETest4(TAOS_STMT *stmt, TAOS *taos) {
...
@@ -1811,7 +1820,7 @@ int insertMBMETest4(TAOS_STMT *stmt, TAOS *taos) {
}
}
}
}
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
))
{
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
,
false
))
{
exit
(
1
);
exit
(
1
);
}
}
...
@@ -1872,7 +1881,7 @@ int insertMPMETest1(TAOS_STMT *stmt, TAOS *taos) {
...
@@ -1872,7 +1881,7 @@ int insertMPMETest1(TAOS_STMT *stmt, TAOS *taos) {
}
}
for
(
int32_t
b
=
0
;
b
<
bindTimes
;
++
b
)
{
for
(
int32_t
b
=
0
;
b
<
bindTimes
;
++
b
)
{
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
))
{
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
,
false
))
{
exit
(
1
);
exit
(
1
);
}
}
...
@@ -1938,7 +1947,7 @@ int insertAUTOTest1(TAOS_STMT *stmt, TAOS *taos) {
...
@@ -1938,7 +1947,7 @@ int insertAUTOTest1(TAOS_STMT *stmt, TAOS *taos) {
}
}
for
(
int32_t
b
=
0
;
b
<
bindTimes
;
++
b
)
{
for
(
int32_t
b
=
0
;
b
<
bindTimes
;
++
b
)
{
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
))
{
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
,
false
))
{
exit
(
1
);
exit
(
1
);
}
}
...
@@ -2005,7 +2014,7 @@ int insertAUTOTest2(TAOS_STMT *stmt, TAOS *taos) {
...
@@ -2005,7 +2014,7 @@ int insertAUTOTest2(TAOS_STMT *stmt, TAOS *taos) {
if
(
gCaseCtrl
.
checkParamNum
)
{
if
(
gCaseCtrl
.
checkParamNum
)
{
bpCheckParamNum
(
stmt
);
bpCheckParamNum
(
stmt
);
}
}
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
))
{
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
,
false
))
{
exit
(
1
);
exit
(
1
);
}
}
...
@@ -2065,7 +2074,7 @@ int insertAUTOTest3(TAOS_STMT *stmt, TAOS *taos) {
...
@@ -2065,7 +2074,7 @@ int insertAUTOTest3(TAOS_STMT *stmt, TAOS *taos) {
bpCheckParamNum
(
stmt
);
bpCheckParamNum
(
stmt
);
}
}
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
))
{
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
t
*
bindTimes
*
gCurCase
->
bindColNum
+
b
*
gCurCase
->
bindColNum
,
false
))
{
exit
(
1
);
exit
(
1
);
}
}
...
@@ -2119,7 +2128,7 @@ int queryColumnTest(TAOS_STMT *stmt, TAOS *taos) {
...
@@ -2119,7 +2128,7 @@ int queryColumnTest(TAOS_STMT *stmt, TAOS *taos) {
bpCheckParamNum
(
stmt
);
bpCheckParamNum
(
stmt
);
}
}
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
n
*
gCurCase
->
bindColNum
))
{
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
n
*
gCurCase
->
bindColNum
,
false
))
{
exit
(
1
);
exit
(
1
);
}
}
...
@@ -2167,7 +2176,7 @@ int queryMiscTest(TAOS_STMT *stmt, TAOS *taos) {
...
@@ -2167,7 +2176,7 @@ int queryMiscTest(TAOS_STMT *stmt, TAOS *taos) {
bpCheckParamNum
(
stmt
);
bpCheckParamNum
(
stmt
);
}
}
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
n
*
gCurCase
->
bindColNum
))
{
if
(
bpBindParam
(
stmt
,
data
.
pBind
+
n
*
gCurCase
->
bindColNum
,
false
))
{
exit
(
1
);
exit
(
1
);
}
}
...
@@ -2234,6 +2243,42 @@ int insertNonExistsTb(TAOS_STMT *stmt, TAOS *taos) {
...
@@ -2234,6 +2243,42 @@ int insertNonExistsTb(TAOS_STMT *stmt, TAOS *taos) {
return
0
;
return
0
;
}
}
void
bpAddWrongVarBuffLen
(
TAOS_MULTI_BIND
*
pBind
)
{
for
(
int32_t
i
=
0
;
i
<
gCurCase
->
bindColNum
;
++
i
)
{
if
(
pBind
[
i
].
buffer_type
==
TSDB_DATA_TYPE_BINARY
||
pBind
[
i
].
buffer_type
==
TSDB_DATA_TYPE_NCHAR
)
{
*
pBind
[
i
].
length
+=
100
;
}
}
}
int
insertVarLenErr
(
TAOS_STMT
*
stmt
,
TAOS
*
taos
)
{
BindData
data
=
{
0
};
prepareInsertData
(
&
data
);
int
code
=
taos_stmt_prepare
(
stmt
,
data
.
sql
,
0
);
if
(
code
!=
0
){
printf
(
"!!!failed to execute taos_stmt_prepare. error:%s
\n
"
,
taos_stmt_errstr
(
stmt
));
exit
(
1
);
}
bpCheckIsInsert
(
stmt
,
1
);
code
=
bpSetTableNameTags
(
&
data
,
0
,
"t0"
,
stmt
);
if
(
code
!=
0
){
printf
(
"!!!taos_stmt_set_tbname error:%s
\n
"
,
taos_stmt_errstr
(
stmt
));
exit
(
1
);
}
bpAddWrongVarBuffLen
(
data
.
pBind
);
if
(
bpBindParam
(
stmt
,
data
.
pBind
,
true
))
{
exit
(
1
);
}
destroyData
(
&
data
);
return
0
;
}
int
errorSQLTest1
(
TAOS_STMT
*
stmt
,
TAOS
*
taos
)
{
int
errorSQLTest1
(
TAOS_STMT
*
stmt
,
TAOS
*
taos
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录