Merge pull request #2282 from taosdata/feature/pyconn
[TD-591]fix alter table tag value bugs
This commit is contained in:
commit
3c17c37de9
|
@ -4508,7 +4508,7 @@ int32_t setAlterTableInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
|
||||||
if (pTagsSchema->type != TSDB_DATA_TYPE_BINARY && pTagsSchema->type != TSDB_DATA_TYPE_NCHAR) {
|
if (pTagsSchema->type != TSDB_DATA_TYPE_BINARY && pTagsSchema->type != TSDB_DATA_TYPE_NCHAR) {
|
||||||
len = tDataTypeDesc[pTagsSchema->type].nSize;
|
len = tDataTypeDesc[pTagsSchema->type].nSize;
|
||||||
} else {
|
} else {
|
||||||
len = varDataLen(pUpdateMsg->data);
|
len = varDataTLen(pUpdateMsg->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
pUpdateMsg->tagValLen = htonl(len); // length may be changed after dump data
|
pUpdateMsg->tagValLen = htonl(len); // length may be changed after dump data
|
||||||
|
|
|
@ -800,12 +800,13 @@ int32_t tVariantDump(tVariant *pVariant, char *payload, int16_t type, bool inclu
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TSDB_DATA_TYPE_NCHAR: {
|
case TSDB_DATA_TYPE_NCHAR: {
|
||||||
|
int32_t newlen = 0;
|
||||||
if (!includeLengthPrefix) {
|
if (!includeLengthPrefix) {
|
||||||
if (pVariant->nType == TSDB_DATA_TYPE_NULL) {
|
if (pVariant->nType == TSDB_DATA_TYPE_NULL) {
|
||||||
*(uint32_t *)payload = TSDB_DATA_NCHAR_NULL;
|
*(uint32_t *)payload = TSDB_DATA_NCHAR_NULL;
|
||||||
} else {
|
} else {
|
||||||
if (pVariant->nType != TSDB_DATA_TYPE_NCHAR) {
|
if (pVariant->nType != TSDB_DATA_TYPE_NCHAR) {
|
||||||
toNchar(pVariant, &payload, &pVariant->nLen);
|
toNchar(pVariant, &payload, &newlen);
|
||||||
} else {
|
} else {
|
||||||
wcsncpy((wchar_t *)payload, pVariant->wpz, pVariant->nLen);
|
wcsncpy((wchar_t *)payload, pVariant->wpz, pVariant->nLen);
|
||||||
}
|
}
|
||||||
|
@ -817,12 +818,13 @@ int32_t tVariantDump(tVariant *pVariant, char *payload, int16_t type, bool inclu
|
||||||
char *p = varDataVal(payload);
|
char *p = varDataVal(payload);
|
||||||
|
|
||||||
if (pVariant->nType != TSDB_DATA_TYPE_NCHAR) {
|
if (pVariant->nType != TSDB_DATA_TYPE_NCHAR) {
|
||||||
toNchar(pVariant, &p, &pVariant->nLen);
|
toNchar(pVariant, &p, &newlen);
|
||||||
} else {
|
} else {
|
||||||
wcsncpy((wchar_t *)p, pVariant->wpz, pVariant->nLen);
|
wcsncpy((wchar_t *)p, pVariant->wpz, pVariant->nLen);
|
||||||
|
newlen = pVariant->nLen;
|
||||||
}
|
}
|
||||||
|
|
||||||
varDataSetLen(payload, pVariant->nLen); // the length may be changed after toNchar function called
|
varDataSetLen(payload, newlen); // the length may be changed after toNchar function called
|
||||||
assert(p == varDataVal(payload));
|
assert(p == varDataVal(payload));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue