fix two bugs:

1. taos_consume block for evev
2. taos_fetch_block returns 0 in subscription
This commit is contained in:
localvar 2020-01-13 16:50:17 +08:00
parent 5d398eb8a4
commit bae48b73c6
3 changed files with 17 additions and 4 deletions

View File

@ -344,7 +344,7 @@ int taos_fetch_block_impl(TAOS_RES *res, TAOS_ROW *rows) {
SSqlRes *pRes = &pSql->res;
STscObj *pObj = pSql->pTscObj;
if (pRes->qhandle == 0 || pObj->pSql != pSql) {
if (pRes->qhandle == 0) {
*rows = NULL;
return 0;
}

View File

@ -348,8 +348,8 @@ TAOS_RES *taos_consume(TAOS_SUB *tsub) {
SSqlRes *pRes = &pSql->res;
if (pSub->pTimer == NULL) {
int duration = (int)(taosGetTimestampMs() - pSub->lastConsumeTime);
if (duration < pSub->interval) {
int64_t duration = taosGetTimestampMs() - pSub->lastConsumeTime;
if (duration < (int64_t)(pSub->interval)) {
tscTrace("subscription consume too frequently, blocking...");
taosMsleep(pSub->interval - (int32_t)duration);
}

View File

@ -8,15 +8,28 @@
#include <unistd.h>
void print_result(TAOS_RES* res) {
TAOS_ROW row;
TAOS_ROW row = NULL;
int num_fields = taos_num_fields(res);
TAOS_FIELD* fields = taos_fetch_fields(res);
#if 0
int nRows = taos_fetch_block(res, &row);
for (int i = 0; i < nRows; i++) {
char temp[256];
taos_print_row(temp, row + i, fields, num_fields);
puts(temp);
}
#else
while ((row = taos_fetch_row(res))) {
char temp[256];
taos_print_row(temp, row, fields, num_fields);
puts(temp);
}
#endif
}
void subscribe_callback(TAOS_SUB* tsub, TAOS_RES *res, void* param, int code) {