提交 3ae97698 编写于 作者: D dapan1121

stmt

上级 dff638c3
......@@ -725,7 +725,8 @@ static int32_t doConvertUCS4(SReqResultInfo* pResultInfo, int32_t numOfRows, int
int32_t len = taosUcs4ToMbs((TdUcs4*)varDataVal(pStart), varDataLen(pStart), varDataVal(p));
ASSERT(len <= bytes);
ASSERT((p + len) < (pResultInfo->convertBuf[i] + colLength[i]));
varDataSetLen(p, len);
pCol->offset[j] = (p - pResultInfo->convertBuf[i]);
p += (len + VARSTR_HEADER_SIZE);
......
......@@ -108,6 +108,10 @@ int32_t stmtParseSql(STscStmt* pStmt) {
.setExecInfoFn = stmtSetExecInfo,
.getExecInfoFn = stmtGetExecInfo,
};
if (NULL == pStmt->exec.pRequest) {
STMT_ERR_RET(buildRequest(pStmt->taos, pStmt->sql.sqlStr, pStmt->sql.sqlLen, &pStmt->exec.pRequest));
}
STMT_ERR_RET(parseSql(pStmt->exec.pRequest, false, &pStmt->sql.pQuery, &stmtCb));
......
......@@ -11,7 +11,7 @@
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 bindColTypeList[] = {TSDB_DATA_TYPE_TIMESTAMP, TSDB_DATA_TYPE_FLOAT};
int32_t bindColTypeList[] = {TSDB_DATA_TYPE_TIMESTAMP, TSDB_DATA_TYPE_NCHAR};
#define tListLen(x) (sizeof(x) / sizeof((x)[0]))
......@@ -70,7 +70,6 @@ typedef struct {
} CaseCfg;
CaseCfg gCase[] = {
#if 0
{"insert:MBSE1-FULL", tListLen(shortColList), shortColList, false, true, insertMBSETest1, 1, 10, 10, 0, 0, 1},
{"insert:MBSE1-FULL", tListLen(shortColList), shortColList, false, true, insertMBSETest1, 10, 100, 10, 0, 0, 1},
......@@ -97,10 +96,10 @@ CaseCfg gCase[] = {
{"insert:MBME4-FULL", tListLen(fullColList), fullColList, false, true, insertMBMETest4, 10, 10, 2, 0, 0, 1},
{"insert:MBME4-C012", tListLen(fullColList), fullColList, false, false, insertMBMETest4, 10, 10, 2, 12, 0, 1},
{"insert:MBME4-C002", tListLen(fullColList), fullColList, false, false, insertMBMETest4, 10, 10, 2, 2, 0, 1},
#endif
{"insert:MPME1-FULL", tListLen(fullColList), fullColList, false, true, insertMPMETest1, 10, 10, 2, 0, 0, 1},
// {"insert:MPME1-C012", tListLen(fullColList), fullColList, false, false, insertMPMETest1, 10, 10, 2, 12, 0, 1},
{"insert:MPME1-C012", tListLen(fullColList), fullColList, false, false, insertMPMETest1, 10, 10, 2, 12, 0, 1},
};
......@@ -111,6 +110,8 @@ typedef struct {
bool autoCreate;
bool checkParamNum;
bool printRes;
bool printCreateTblSql;
bool printInsertSql;
int32_t rowNum; //row num for one table
int32_t bindColNum;
int32_t bindRowNum; //row num for once bind
......@@ -122,6 +123,8 @@ typedef struct {
CaseCtrl gCaseCtrl = {
.bindNullNum = 0,
.autoCreate = false,
.printCreateTblSql = false,
.printInsertSql = true,
.rowNum = 0,
.bindColNum = 0,
.bindRowNum = 0,
......@@ -243,7 +246,10 @@ void generateInsertSQL(BindData *data) {
len += sprintf(data->sql + len, "?");
}
len += sprintf(data->sql + len, ")");
if (gCaseCtrl.printInsertSql) {
printf("SQL: %s\n", data->sql);
}
}
void generateDataType(BindData *data, int32_t bindIdx, int32_t colIdx, int32_t *dataType) {
......@@ -525,8 +531,6 @@ int insertMBSETest1(TAOS_STMT *stmt) {
BindData data = {0};
prepareData(&data);
printf("SQL: %s\n", data.sql);
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));
......@@ -582,8 +586,6 @@ int insertMBSETest2(TAOS_STMT *stmt) {
BindData data = {0};
prepareData(&data);
printf("SQL: %s\n", data.sql);
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));
......@@ -638,8 +640,6 @@ int insertMBSETest2(TAOS_STMT *stmt) {
int insertMBMETest1(TAOS_STMT *stmt) {
BindData data = {0};
prepareData(&data);
printf("SQL: %s\n", data.sql);
int code = taos_stmt_prepare(stmt, data.sql, 0);
if (code != 0){
......@@ -695,8 +695,6 @@ int insertMBMETest2(TAOS_STMT *stmt) {
BindData data = {0};
prepareData(&data);
printf("SQL: %s\n", data.sql);
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));
......@@ -751,8 +749,6 @@ int insertMBMETest3(TAOS_STMT *stmt) {
BindData data = {0};
prepareData(&data);
printf("SQL: %s\n", data.sql);
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));
......@@ -818,8 +814,6 @@ int insertMBMETest4(TAOS_STMT *stmt) {
BindData data = {0};
prepareData(&data);
printf("SQL: %s\n", data.sql);
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));
......@@ -878,8 +872,6 @@ int insertMPMETest1(TAOS_STMT *stmt) {
BindData data = {0};
prepareData(&data);
printf("SQL: %s\n", data.sql);
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));
......@@ -3866,6 +3858,8 @@ void prepareCheckResult(TAOS *taos) {
prepareCheckResultImpl(taos, buf, gCaseCtrl.printRes, gCurCase->rowNum * gExecLoopTimes);
}
gExecLoopTimes = 1;
}
......@@ -4133,7 +4127,9 @@ void generateCreateTableSQL(char *buf, int32_t tblIdx, int32_t colNum, int32_t *
blen += sprintf(buf + blen, ")");
printf("Create SQL:%s\n", buf);
if (gCaseCtrl.printCreateTblSql) {
printf("Create Table SQL:%s\n", buf);
}
}
void prepare(TAOS *taos, int32_t colNum, int32_t *colList, int autoCreate) {
......@@ -4253,40 +4249,45 @@ void* runcase(TAOS *taos) {
}
void runAll(TAOS *taos) {
#if 0
printf("Normal Test\n");
runcase(taos);
printf("Null Test\n");
gCaseCtrl.bindNullNum = 1;
runcase(taos);
gCaseCtrl.bindNullNum = 0;
printf("Bind Row Test\n");
gCaseCtrl.bindRowNum = 1;
runcase(taos);
gCaseCtrl.bindRowNum = 0;
#endif
gCaseCtrl.rowNum = 10000;
printf("Row Num Test\n");
gCaseCtrl.rowNum = 1000;
gCaseCtrl.printRes = false;
runcase(taos);
gCaseCtrl.rowNum = 0;
gCaseCtrl.printRes = true;
#if 0
gCaseCtrl.runTimes = 10;
printf("Runtimes Test\n");
gCaseCtrl.runTimes = 2;
runcase(taos);
gCaseCtrl.runTimes = 0;
printf("Check Param Test\n");
gCaseCtrl.checkParamNum = true;
runcase(taos);
gCaseCtrl.checkParamNum = false;
printf("Bind Col Num Test\n");
gCaseCtrl.bindColNum = 6;
runcase(taos);
gCaseCtrl.bindColNum = 0;
printf("Bind Col Type Test\n");
gCaseCtrl.bindColTypeNum = tListLen(bindColTypeList);
gCaseCtrl.bindColTypeNum = bindColTypeList = bindColTypeList;
gCaseCtrl.bindColTypeList = bindColTypeList;
runcase(taos);
#endif
}
int main(int argc, char *argv[])
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册