fix:[TS-5528] insert error in sml
This commit is contained in:
parent
986f92d317
commit
4904667471
|
@ -262,7 +262,7 @@ int32_t smlBuildSuperTableInfo(SSmlHandle *info, SSmlLineInfo *currElement, SSml
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isSmlColAligned(SSmlHandle *info, int cnt, SSmlKv *kv) {
|
void isSmlColAligned(SSmlHandle *info, int cnt, SSmlKv *kv) {
|
||||||
// cnt begin 0, add ts so + 2
|
// cnt begin 0, add ts so + 2
|
||||||
if (unlikely(cnt + 2 > info->currSTableMeta->tableInfo.numOfColumns)) {
|
if (unlikely(cnt + 2 > info->currSTableMeta->tableInfo.numOfColumns)) {
|
||||||
goto END;
|
goto END;
|
||||||
|
@ -288,12 +288,11 @@ bool isSmlColAligned(SSmlHandle *info, int cnt, SSmlKv *kv) {
|
||||||
maxKV->length = kv->length;
|
maxKV->length = kv->length;
|
||||||
info->needModifySchema = true;
|
info->needModifySchema = true;
|
||||||
}
|
}
|
||||||
return true;
|
return;
|
||||||
|
|
||||||
END:
|
END:
|
||||||
info->dataFormat = false;
|
info->dataFormat = false;
|
||||||
info->reRun = true;
|
info->reRun = true;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isSmlTagAligned(SSmlHandle *info, int cnt, SSmlKv *kv) {
|
bool isSmlTagAligned(SSmlHandle *info, int cnt, SSmlKv *kv) {
|
||||||
|
|
|
@ -452,7 +452,10 @@ static int32_t smlParseColLine(SSmlHandle *info, char **sql, char *sqlEnd, SSmlL
|
||||||
if (info->dataFormat) {
|
if (info->dataFormat) {
|
||||||
bool isAligned = isSmlColAligned(info, cnt, &kv);
|
bool isAligned = isSmlColAligned(info, cnt, &kv);
|
||||||
if (kv.type == TSDB_DATA_TYPE_BINARY && valueEscaped) {
|
if (kv.type == TSDB_DATA_TYPE_BINARY && valueEscaped) {
|
||||||
taosArrayPush(info->escapedStringList, &kv.value);
|
if (taosArrayPush(info->escapedStringList, &kv.value) == NULL){
|
||||||
|
freeSSmlKv(&kv);
|
||||||
|
return terrno;
|
||||||
|
}
|
||||||
kv.value = NULL;
|
kv.value = NULL;
|
||||||
}
|
}
|
||||||
freeSSmlKv(&kv);
|
freeSSmlKv(&kv);
|
||||||
|
@ -463,10 +466,12 @@ static int32_t smlParseColLine(SSmlHandle *info, char **sql, char *sqlEnd, SSmlL
|
||||||
if (currElement->colArray == NULL) {
|
if (currElement->colArray == NULL) {
|
||||||
currElement->colArray = taosArrayInit_s(sizeof(SSmlKv), 1);
|
currElement->colArray = taosArrayInit_s(sizeof(SSmlKv), 1);
|
||||||
if (currElement->colArray == NULL) {
|
if (currElement->colArray == NULL) {
|
||||||
|
freeSSmlKv(&kv);
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (taosArrayPush(currElement->colArray, &kv) == NULL){ // reserve for timestamp
|
if (taosArrayPush(currElement->colArray, &kv) == NULL){ // reserve for timestamp
|
||||||
|
freeSSmlKv(&kv);
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue