Merge remote-tracking branch 'origin/develop' into feature/vnode
This commit is contained in:
commit
b2a503b707
|
@ -54,7 +54,7 @@ void doAsyncQuery(STscObj* pObj, SSqlObj* pSql, void (*fp)(), void* param, const
|
|||
return;
|
||||
}
|
||||
|
||||
strtolower(pSql->sqlstr, sqlstr);
|
||||
strntolower(pSql->sqlstr, sqlstr, sqlLen);
|
||||
|
||||
tscDebugL("%p SQL: %s", pSql, pSql->sqlstr);
|
||||
pSql->cmd.curSql = pSql->sqlstr;
|
||||
|
|
|
@ -263,12 +263,29 @@ TAOS_RES* taos_query(TAOS *taos, const char *sqlstr) {
|
|||
return pSql;
|
||||
}
|
||||
TAOS_RES* taos_query_c(TAOS *taos, const char *sqlstr, uint32_t sqlLen) {
|
||||
char* buf = malloc(sqlLen + 1);
|
||||
buf[sqlLen] = 0;
|
||||
strncpy(buf, sqlstr, sqlLen);
|
||||
TAOS_RES *res = taos_query(taos, buf);
|
||||
free(buf);
|
||||
return res;
|
||||
STscObj *pObj = (STscObj *)taos;
|
||||
if (pObj == NULL || pObj->signature != pObj) {
|
||||
terrno = TSDB_CODE_TSC_DISCONNECTED;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (sqlLen > tsMaxSQLStringLen) {
|
||||
tscError("sql string exceeds max length:%d", tsMaxSQLStringLen);
|
||||
terrno = TSDB_CODE_TSC_INVALID_SQL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
SSqlObj* pSql = calloc(1, sizeof(SSqlObj));
|
||||
if (pSql == NULL) {
|
||||
tscError("failed to malloc sqlObj");
|
||||
terrno = TSDB_CODE_TSC_OUT_OF_MEMORY;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
doAsyncQuery(pObj, pSql, waitForQueryRsp, taos, sqlstr, sqlLen);
|
||||
|
||||
tsem_wait(&pSql->rspSem);
|
||||
return pSql;
|
||||
}
|
||||
int taos_result_precision(TAOS_RES *res) {
|
||||
SSqlObj *pSql = (SSqlObj *)res;
|
||||
|
|
|
@ -133,6 +133,8 @@ char **strsplit(char *src, const char *delim, int32_t *num);
|
|||
|
||||
char* strtolower(char *dst, const char *src);
|
||||
|
||||
char* strntolower(char *dst, const char *src, int32_t n);
|
||||
|
||||
int64_t strnatoi(char *num, int32_t len);
|
||||
|
||||
//char* strreplace(const char* str, const char* pattern, const char* rep);
|
||||
|
|
|
@ -234,6 +234,32 @@ char* strtolower(char *dst, const char *src) {
|
|||
*p = 0;
|
||||
return dst;
|
||||
}
|
||||
char* strntolower(char *dst, const char *src, int32_t n) {
|
||||
int esc = 0;
|
||||
char quote = 0, *p = dst, c;
|
||||
|
||||
assert(dst != NULL);
|
||||
|
||||
for (c = *src++; n-- > 0; c = *src++) {
|
||||
if (esc) {
|
||||
esc = 0;
|
||||
} else if (quote) {
|
||||
if (c == '\\') {
|
||||
esc = 1;
|
||||
} else if (c == quote) {
|
||||
quote = 0;
|
||||
}
|
||||
} else if (c >= 'A' && c <= 'Z') {
|
||||
c -= 'A' - 'a';
|
||||
} else if (c == '\'' || c == '"') {
|
||||
quote = c;
|
||||
}
|
||||
*p++ = c;
|
||||
}
|
||||
|
||||
*p = 0;
|
||||
return dst;
|
||||
}
|
||||
|
||||
char *paGetToken(char *string, char **token, int32_t *tokenLen) {
|
||||
char quote = 0;
|
||||
|
|
Loading…
Reference in New Issue