fix: escape character problem in auto create table insert
This commit is contained in:
parent
98fc185e92
commit
09cb575300
|
@ -132,14 +132,14 @@ typedef enum EOperatorType {
|
||||||
OP_TYPE_DIV,
|
OP_TYPE_DIV,
|
||||||
OP_TYPE_REM,
|
OP_TYPE_REM,
|
||||||
// unary arithmetic operator
|
// unary arithmetic operator
|
||||||
OP_TYPE_MINUS,
|
OP_TYPE_MINUS = 20,
|
||||||
|
|
||||||
// bitwise operator
|
// bitwise operator
|
||||||
OP_TYPE_BIT_AND,
|
OP_TYPE_BIT_AND = 30,
|
||||||
OP_TYPE_BIT_OR,
|
OP_TYPE_BIT_OR,
|
||||||
|
|
||||||
// binary comparison operator
|
// binary comparison operator
|
||||||
OP_TYPE_GREATER_THAN,
|
OP_TYPE_GREATER_THAN = 40,
|
||||||
OP_TYPE_GREATER_EQUAL,
|
OP_TYPE_GREATER_EQUAL,
|
||||||
OP_TYPE_LOWER_THAN,
|
OP_TYPE_LOWER_THAN,
|
||||||
OP_TYPE_LOWER_EQUAL,
|
OP_TYPE_LOWER_EQUAL,
|
||||||
|
@ -152,7 +152,7 @@ typedef enum EOperatorType {
|
||||||
OP_TYPE_MATCH,
|
OP_TYPE_MATCH,
|
||||||
OP_TYPE_NMATCH,
|
OP_TYPE_NMATCH,
|
||||||
// unary comparison operator
|
// unary comparison operator
|
||||||
OP_TYPE_IS_NULL,
|
OP_TYPE_IS_NULL = 100,
|
||||||
OP_TYPE_IS_NOT_NULL,
|
OP_TYPE_IS_NOT_NULL,
|
||||||
OP_TYPE_IS_TRUE,
|
OP_TYPE_IS_TRUE,
|
||||||
OP_TYPE_IS_FALSE,
|
OP_TYPE_IS_FALSE,
|
||||||
|
@ -162,11 +162,11 @@ typedef enum EOperatorType {
|
||||||
OP_TYPE_IS_NOT_UNKNOWN,
|
OP_TYPE_IS_NOT_UNKNOWN,
|
||||||
|
|
||||||
// json operator
|
// json operator
|
||||||
OP_TYPE_JSON_GET_VALUE,
|
OP_TYPE_JSON_GET_VALUE = 150,
|
||||||
OP_TYPE_JSON_CONTAINS,
|
OP_TYPE_JSON_CONTAINS,
|
||||||
|
|
||||||
// internal operator
|
// internal operator
|
||||||
OP_TYPE_ASSIGN
|
OP_TYPE_ASSIGN = 250
|
||||||
} EOperatorType;
|
} EOperatorType;
|
||||||
|
|
||||||
#define OP_TYPE_CALC_MAX OP_TYPE_BIT_OR
|
#define OP_TYPE_CALC_MAX OP_TYPE_BIT_OR
|
||||||
|
|
|
@ -348,7 +348,7 @@ int32_t qCreateExecTask(SReadHandle* readHandle, int32_t vgId, uint64_t taskId,
|
||||||
taosThreadOnce(&initPoolOnce, initRefPool);
|
taosThreadOnce(&initPoolOnce, initRefPool);
|
||||||
atexit(cleanupRefPool);
|
atexit(cleanupRefPool);
|
||||||
|
|
||||||
qDebug("start to create subplan task, TID:0x%"PRIx64 " QID:0x%"PRIx64, taskId, pSubplan->id.queryId);
|
qDebug("start to create subplan task, TID:0x%" PRIx64 " QID:0x%" PRIx64, taskId, pSubplan->id.queryId);
|
||||||
|
|
||||||
int32_t code = createExecTaskInfoImpl(pSubplan, pTask, readHandle, taskId, sql, model);
|
int32_t code = createExecTaskInfoImpl(pSubplan, pTask, readHandle, taskId, sql, model);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
@ -374,7 +374,7 @@ int32_t qCreateExecTask(SReadHandle* readHandle, int32_t vgId, uint64_t taskId,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
qDebug("subplan task create completed, TID:0x%"PRIx64 " QID:0x%"PRIx64, taskId, pSubplan->id.queryId);
|
qDebug("subplan task create completed, TID:0x%" PRIx64 " QID:0x%" PRIx64, taskId, pSubplan->id.queryId);
|
||||||
|
|
||||||
_error:
|
_error:
|
||||||
// if failed to add ref for all tables in this query, abort current query
|
// if failed to add ref for all tables in this query, abort current query
|
||||||
|
@ -427,7 +427,7 @@ int waitMoment(SQInfo* pQInfo) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void freeBlock(void* param) {
|
static void freeBlock(void* param) {
|
||||||
SSDataBlock* pBlock = *(SSDataBlock**) param;
|
SSDataBlock* pBlock = *(SSDataBlock**)param;
|
||||||
blockDataDestroy(pBlock);
|
blockDataDestroy(pBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -467,12 +467,12 @@ int32_t qExecTaskOpt(qTaskInfo_t tinfo, SArray* pResList, uint64_t* useconds) {
|
||||||
|
|
||||||
qDebug("%s execTask is launched", GET_TASKID(pTaskInfo));
|
qDebug("%s execTask is launched", GET_TASKID(pTaskInfo));
|
||||||
|
|
||||||
int32_t current = 0;
|
int32_t current = 0;
|
||||||
SSDataBlock* pRes = NULL;
|
SSDataBlock* pRes = NULL;
|
||||||
|
|
||||||
int64_t st = taosGetTimestampUs();
|
int64_t st = taosGetTimestampUs();
|
||||||
|
|
||||||
while((pRes = pTaskInfo->pRoot->fpSet.getNextFn(pTaskInfo->pRoot)) != NULL) {
|
while ((pRes = pTaskInfo->pRoot->fpSet.getNextFn(pTaskInfo->pRoot)) != NULL) {
|
||||||
SSDataBlock* p = createOneDataBlock(pRes, true);
|
SSDataBlock* p = createOneDataBlock(pRes, true);
|
||||||
current += p->info.rows;
|
current += p->info.rows;
|
||||||
ASSERT(p->info.rows > 0);
|
ASSERT(p->info.rows > 0);
|
||||||
|
@ -494,7 +494,7 @@ int32_t qExecTaskOpt(qTaskInfo_t tinfo, SArray* pResList, uint64_t* useconds) {
|
||||||
uint64_t total = pTaskInfo->pRoot->resultInfo.totalRows;
|
uint64_t total = pTaskInfo->pRoot->resultInfo.totalRows;
|
||||||
|
|
||||||
qDebug("%s task suspended, %d rows in %d blocks returned, total:%" PRId64 " rows, in sinkNode:%d, elapsed:%.2f ms",
|
qDebug("%s task suspended, %d rows in %d blocks returned, total:%" PRId64 " rows, in sinkNode:%d, elapsed:%.2f ms",
|
||||||
GET_TASKID(pTaskInfo), current, (int32_t) taosArrayGetSize(pResList), total, 0, el / 1000.0);
|
GET_TASKID(pTaskInfo), current, (int32_t)taosArrayGetSize(pResList), total, 0, el / 1000.0);
|
||||||
|
|
||||||
atomic_store_64(&pTaskInfo->owner, 0);
|
atomic_store_64(&pTaskInfo->owner, 0);
|
||||||
return pTaskInfo->code;
|
return pTaskInfo->code;
|
||||||
|
@ -632,7 +632,7 @@ int32_t qExtractStreamScanner(qTaskInfo_t tinfo, void** scanner) {
|
||||||
SOperatorInfo* pOperator = pTaskInfo->pRoot;
|
SOperatorInfo* pOperator = pTaskInfo->pRoot;
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
uint8_t type = pOperator->operatorType;
|
uint16_t type = pOperator->operatorType;
|
||||||
if (type == QUERY_NODE_PHYSICAL_PLAN_STREAM_SCAN) {
|
if (type == QUERY_NODE_PHYSICAL_PLAN_STREAM_SCAN) {
|
||||||
*scanner = pOperator->info;
|
*scanner = pOperator->info;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -691,7 +691,7 @@ int32_t qStreamPrepareScan(qTaskInfo_t tinfo, const STqOffsetVal* pOffset) {
|
||||||
pTaskInfo->streamInfo.prepareStatus = *pOffset;
|
pTaskInfo->streamInfo.prepareStatus = *pOffset;
|
||||||
if (!tOffsetEqual(pOffset, &pTaskInfo->streamInfo.lastStatus)) {
|
if (!tOffsetEqual(pOffset, &pTaskInfo->streamInfo.lastStatus)) {
|
||||||
while (1) {
|
while (1) {
|
||||||
uint8_t type = pOperator->operatorType;
|
uint16_t type = pOperator->operatorType;
|
||||||
pOperator->status = OP_OPENED;
|
pOperator->status = OP_OPENED;
|
||||||
// TODO add more check
|
// TODO add more check
|
||||||
if (type != QUERY_NODE_PHYSICAL_PLAN_STREAM_SCAN) {
|
if (type != QUERY_NODE_PHYSICAL_PLAN_STREAM_SCAN) {
|
||||||
|
|
|
@ -3541,7 +3541,7 @@ void initDummyFunction(SqlFunctionCtx* pDummy, SqlFunctionCtx* pCtx, int32_t num
|
||||||
}
|
}
|
||||||
|
|
||||||
void initDownStream(SOperatorInfo* downstream, SStreamAggSupporter* pAggSup, int64_t gap, int64_t waterMark,
|
void initDownStream(SOperatorInfo* downstream, SStreamAggSupporter* pAggSup, int64_t gap, int64_t waterMark,
|
||||||
uint8_t type) {
|
uint16_t type) {
|
||||||
ASSERT(downstream->operatorType == QUERY_NODE_PHYSICAL_PLAN_STREAM_SCAN);
|
ASSERT(downstream->operatorType == QUERY_NODE_PHYSICAL_PLAN_STREAM_SCAN);
|
||||||
SStreamScanInfo* pScanInfo = downstream->info;
|
SStreamScanInfo* pScanInfo = downstream->info;
|
||||||
pScanInfo->sessionSup = (SessionWindowSupporter){.pStreamAggSup = pAggSup, .gap = gap, .parentType = type};
|
pScanInfo->sessionSup = (SessionWindowSupporter){.pStreamAggSup = pAggSup, .gap = gap, .parentType = type};
|
||||||
|
|
|
@ -4673,7 +4673,6 @@ static int32_t jsonToNode(const SJson* pJson, void* pObj) {
|
||||||
|
|
||||||
int32_t code;
|
int32_t code;
|
||||||
tjsonGetNumberValue(pJson, jkNodeType, pNode->type, code);
|
tjsonGetNumberValue(pJson, jkNodeType, pNode->type, code);
|
||||||
;
|
|
||||||
if (TSDB_CODE_SUCCESS == code) {
|
if (TSDB_CODE_SUCCESS == code) {
|
||||||
code = tjsonToObject(pJson, nodesNodeName(pNode->type), jsonToSpecificNode, pNode);
|
code = tjsonToObject(pJson, nodesNodeName(pNode->type), jsonToSpecificNode, pNode);
|
||||||
if (TSDB_CODE_SUCCESS != code) {
|
if (TSDB_CODE_SUCCESS != code) {
|
||||||
|
|
Loading…
Reference in New Issue