Merge pull request #23575 from taosdata/szhou/fix/3.0/tbname-no-dot
fix: tbname can not contain dot
This commit is contained in:
commit
1045457d16
|
@ -1584,8 +1584,7 @@ typedef union SRowsDataContext{
|
|||
SStbRowsDataContext* pStbRowsCxt;
|
||||
} SRowsDataContext;
|
||||
|
||||
static int32_t parseTbnameToken(SInsertParseContext* pCxt, SStbRowsDataContext* pStbRowsCxt, SToken* pToken,
|
||||
char* ctbName, bool* pFoundCtbName) {
|
||||
static int32_t parseTbnameToken(SInsertParseContext* pCxt, SStbRowsDataContext* pStbRowsCxt, SToken* pToken, bool* pFoundCtbName) {
|
||||
*pFoundCtbName = false;
|
||||
int32_t code = checkAndTrimValue(pToken, pCxt->tmpTokenBuf, &pCxt->msg);
|
||||
if (code == TSDB_CODE_SUCCESS){
|
||||
|
@ -1595,7 +1594,13 @@ static int32_t parseTbnameToken(SInsertParseContext* pCxt, SStbRowsDataContext*
|
|||
|
||||
if (pToken->n > 0) {
|
||||
if (pToken->n <= TSDB_TABLE_NAME_LEN - 1) {
|
||||
memcpy(pStbRowsCxt->ctbName.tname, pToken->z, pToken->n);
|
||||
for (int i = 0; i < pToken->n; ++i) {
|
||||
if (pToken->z[i] == '.') {
|
||||
return buildInvalidOperationMsg(&pCxt->msg, "tbname can not contain '.'");
|
||||
} else {
|
||||
pStbRowsCxt->ctbName.tname[i] = pToken->z[i];
|
||||
}
|
||||
}
|
||||
pStbRowsCxt->ctbName.tname[pToken->n] = '\0';
|
||||
*pFoundCtbName = true;
|
||||
} else {
|
||||
|
@ -1677,8 +1682,7 @@ static int32_t doGetStbRowValues(SInsertParseContext* pCxt, SVnodeModifyOpStmt*
|
|||
}
|
||||
}
|
||||
else if (pCols->pColIndex[i] == tbnameIdx) {
|
||||
char ctbName[TSDB_TABLE_NAME_LEN];
|
||||
code = parseTbnameToken(pCxt, pStbRowsCxt, pToken, ctbName, bFoundTbName);
|
||||
code = parseTbnameToken(pCxt, pStbRowsCxt, pToken, bFoundTbName);
|
||||
}
|
||||
|
||||
if (code == TSDB_CODE_SUCCESS && i < pCols->numOfBound - 1) {
|
||||
|
|
|
@ -70,6 +70,7 @@ sql_error insert into d2.st values(now, 1, 1)
|
|||
sql_error insert into d2.st(ts, f) values(now, 1);
|
||||
sql_error insert into d2.st(ts, f, tbname) values(now, 1);
|
||||
sql_error insert into d2.st(ts, f, tbname) values(now, 1, '');
|
||||
sql_error insert into d2.st(ts, f, tbname) values(now, 1, 'd2.ct2');
|
||||
sql_error insert into d2.st(ts, tbname) values(now, 1, 34)
|
||||
sql_error insert into st using st2 tags(2) values(now,1);
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
|
|
Loading…
Reference in New Issue