提交 d238b751 编写于 作者: D dapan1121

fix bug

上级 0b2bb3c3
...@@ -996,59 +996,59 @@ static bool validateTagParams(SArray* pTagsList, SArray* pFieldList, SSqlCmd* pC ...@@ -996,59 +996,59 @@ static bool validateTagParams(SArray* pTagsList, SArray* pFieldList, SSqlCmd* pC
return false; return false;
} }
int32_t nLen = 0; /* timestamp in tag is not allowed */
for (int32_t i = 0; i < numOfTags; ++i) { for (int32_t i = 0; i < numOfTags; ++i) {
TAOS_FIELD* p = taosArrayGet(pTagsList, i); TAOS_FIELD* p = taosArrayGet(pTagsList, i);
if (p->bytes == 0) {
invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg7); if (p->type == TSDB_DATA_TYPE_TIMESTAMP) {
invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg4);
return false; return false;
} }
nLen += p->bytes; if (p->type < TSDB_DATA_TYPE_BOOL || p->type > TSDB_DATA_TYPE_NCHAR) {
invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg5);
return false;
} }
// max tag row length must be less than TSDB_MAX_TAGS_LEN if ((p->type == TSDB_DATA_TYPE_BINARY && p->bytes <= 0) ||
if (nLen > TSDB_MAX_TAGS_LEN) { (p->type == TSDB_DATA_TYPE_NCHAR && p->bytes <= 0)) {
invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg2); invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg7);
return false; return false;
} }
// field name must be unique if (validateColumnName(p->name) != TSDB_CODE_SUCCESS) {
for (int32_t i = 0; i < numOfTags; ++i) { invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg6);
TAOS_FIELD* p = taosArrayGet(pTagsList, i); return false;
}
if (has(pFieldList, 0, p->name) == true) { if (has(pTagsList, i + 1, p->name) == true) {
invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg3); invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg3);
return false; return false;
} }
} }
/* timestamp in tag is not allowed */ int32_t nLen = 0;
for (int32_t i = 0; i < numOfTags; ++i) { for (int32_t i = 0; i < numOfTags; ++i) {
TAOS_FIELD* p = taosArrayGet(pTagsList, i); TAOS_FIELD* p = taosArrayGet(pTagsList, i);
if (p->bytes == 0) {
if (p->type == TSDB_DATA_TYPE_TIMESTAMP) { invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg7);
invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg4);
return false; return false;
} }
if (p->type < TSDB_DATA_TYPE_BOOL || p->type > TSDB_DATA_TYPE_NCHAR) { nLen += p->bytes;
invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg5);
return false;
} }
if ((p->type == TSDB_DATA_TYPE_BINARY && p->bytes <= 0) || // max tag row length must be less than TSDB_MAX_TAGS_LEN
(p->type == TSDB_DATA_TYPE_NCHAR && p->bytes <= 0)) { if (nLen > TSDB_MAX_TAGS_LEN) {
invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg7); invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg2);
return false; return false;
} }
if (validateColumnName(p->name) != TSDB_CODE_SUCCESS) { // field name must be unique
invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg6); for (int32_t i = 0; i < numOfTags; ++i) {
return false; TAOS_FIELD* p = taosArrayGet(pTagsList, i);
}
if (has(pTagsList, i + 1, p->name) == true) { if (has(pFieldList, 0, p->name) == true) {
invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg3); invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg3);
return false; return false;
} }
......
...@@ -384,7 +384,12 @@ void tSQLSetColumnInfo(TAOS_FIELD *pField, SStrToken *pName, TAOS_FIELD *pType) ...@@ -384,7 +384,12 @@ void tSQLSetColumnInfo(TAOS_FIELD *pField, SStrToken *pName, TAOS_FIELD *pType)
pField->name[pName->n] = 0; pField->name[pName->n] = 0;
pField->type = pType->type; pField->type = pType->type;
if(pField->type < TSDB_DATA_TYPE_BOOL || pField->type > TSDB_DATA_TYPE_NCHAR){
pField->bytes = 0;
} else {
pField->bytes = pType->bytes; pField->bytes = pType->bytes;
}
} }
void tSQLSetColumnType(TAOS_FIELD *pField, SStrToken *type) { void tSQLSetColumnType(TAOS_FIELD *pField, SStrToken *type) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册