diff --git a/src/client/src/tscAsync.c b/src/client/src/tscAsync.c index 1e23094ca8d6763639f36c4322ccf1773b885d93..ebcdddffdee3f4be6e70048c2d0e170a9c38e1f2 100644 --- a/src/client/src/tscAsync.c +++ b/src/client/src/tscAsync.c @@ -487,7 +487,7 @@ void tscTableMetaCallBack(void *param, TAOS_RES *res, int code) { STableMetaInfo* pTableMetaInfo = tscGetTableMetaInfoFromCmd(pCmd, pCmd->clauseIndex, 0); code = tscGetTableMeta(pSql, pTableMetaInfo); assert(code == TSDB_CODE_SUCCESS && pTableMetaInfo->pTableMeta != NULL); - (*pSql->fp)(pSql->param, NULL, code); + (*pSql->fp)(pSql->param, pSql, code); return; } diff --git a/src/client/src/tscPrepare.c b/src/client/src/tscPrepare.c index d66e40b20f972b62cbbbb10985443a4aac6b416f..0068b23334c895d2ccb1b37aeda0712e8b29d9c9 100644 --- a/src/client/src/tscPrepare.c +++ b/src/client/src/tscPrepare.c @@ -494,7 +494,7 @@ TAOS_STMT* taos_stmt_init(TAOS* taos) { tsem_init(&pSql->rspSem, 0, 0); pSql->signature = pSql; pSql->pTscObj = pObj; - pSql->pTscObj->pSql = pSql; + //pSql->pTscObj->pSql = pSql; pSql->maxRetry = TSDB_MAX_REPLICA_NUM; pStmt->pSql = pSql; @@ -515,7 +515,7 @@ int taos_stmt_prepare(TAOS_STMT* stmt, const char* sql, unsigned long length) { //doAsyncQuery(pObj, pSql, waitForQueryRsp, taos, sqlstr, sqlLen); SSqlCmd *pCmd = &pSql->cmd; SSqlRes *pRes = &pSql->res; - pSql->param = (void*)pStmt->taos; + pSql->param = (void*)pSql; pSql->fp = waitForQueryRsp; pSql->insertType = TSDB_QUERY_TYPE_STMT_INSERT; @@ -613,7 +613,12 @@ int taos_stmt_execute(TAOS_STMT* stmt) { } else { tfree(pStmt->pSql->sqlstr); pStmt->pSql->sqlstr = sql; - ret = taos_query(pStmt->taos, pStmt->pSql->sqlstr); + SSqlObj* pSql = taos_query((TAOS*)pStmt->taos, pStmt->pSql->sqlstr); + if (pSql != NULL) { + ret = pSql->res.code; + } else { + ret = terrno; + } } } return ret; diff --git a/src/client/src/tscSql.c b/src/client/src/tscSql.c index 2421dc48db9e143993b7461fd8eda585fb40f4b2..5ff417f7d52ba9980f2c0675d0dd6cb937c96ec2 100644 --- a/src/client/src/tscSql.c +++ b/src/client/src/tscSql.c @@ -256,13 +256,7 @@ int taos_query_imp(STscObj *pObj, SSqlObj *pSql) { } void waitForQueryRsp(void *param, TAOS_RES *tres, int code) { - assert(param != NULL); - SSqlObj *pSql = ((STscObj *)param)->pSql; - - // valid error code is less than 0 - if (code < 0) { - pSql->res.code = code; - } + assert(tres != NULL); SSqlObj *pSql = (SSqlObj *) tres; sem_post(&pSql->rspSem);