From 6c4f94661be1449b6f4fb7007f9f7b8a5f9e5be2 Mon Sep 17 00:00:00 2001 From: dapan1121 Date: Fri, 3 Nov 2023 17:41:08 +0800 Subject: [PATCH] fix: insert syntax error caused core --- source/libs/parser/src/parInsertSql.c | 5 +++-- tests/script/tsim/insert/basic2.sim | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/source/libs/parser/src/parInsertSql.c b/source/libs/parser/src/parInsertSql.c index d9e08de6b8..911e9c23ac 100644 --- a/source/libs/parser/src/parInsertSql.c +++ b/source/libs/parser/src/parInsertSql.c @@ -166,6 +166,7 @@ static int32_t ignoreUsingClause(SInsertParseContext* pCxt, const char** pSql) { } static int32_t parseDuplicateUsingClause(SInsertParseContext* pCxt, SVnodeModifyOpStmt* pStmt, bool* pDuplicate) { + int32_t code = TSDB_CODE_SUCCESS; *pDuplicate = false; char tbFName[TSDB_TABLE_FNAME_LEN]; @@ -173,13 +174,13 @@ static int32_t parseDuplicateUsingClause(SInsertParseContext* pCxt, SVnodeModify STableMeta** pMeta = taosHashGet(pStmt->pSubTableHashObj, tbFName, strlen(tbFName)); if (NULL != pMeta) { *pDuplicate = true; - int32_t code = ignoreUsingClause(pCxt, &pStmt->pSql); + code = ignoreUsingClause(pCxt, &pStmt->pSql); if (TSDB_CODE_SUCCESS == code) { return cloneTableMeta(*pMeta, &pStmt->pTableMeta); } } - return TSDB_CODE_SUCCESS; + return code; } typedef enum { diff --git a/tests/script/tsim/insert/basic2.sim b/tests/script/tsim/insert/basic2.sim index 1794bb54f8..3874a13116 100644 --- a/tests/script/tsim/insert/basic2.sim +++ b/tests/script/tsim/insert/basic2.sim @@ -319,4 +319,7 @@ if $data45 != 30.000000000 then return -1 endi +sql_error insert into ct1 using stb tags('a', 'b') values ('2022-06-26 13:00:00', 1) ct11 using sta tags('c', 'b#) values ('2022-06-26 13:00:01', 2); + + system sh/exec.sh -n dnode1 -s stop -x SIGINT