未验证 提交 1e161eb4 编写于 作者: S shenglian-zhou 提交者: GitHub

Merge pull request #10027 from taosdata/fix/TD-13246-2.4

[TD-13246]<fix>(query): Coredump when parentheses appear before the insert_sql
...@@ -1584,9 +1584,6 @@ int tsInsertInitialCheck(SSqlObj *pSql) { ...@@ -1584,9 +1584,6 @@ int tsInsertInitialCheck(SSqlObj *pSql) {
int32_t index = 0; int32_t index = 0;
SSqlCmd *pCmd = &pSql->cmd; SSqlCmd *pCmd = &pSql->cmd;
SStrToken sToken = tStrGetToken(pSql->sqlstr, &index, false);
assert(sToken.type == TK_INSERT || sToken.type == TK_IMPORT);
pCmd->count = 0; pCmd->count = 0;
pCmd->command = TSDB_SQL_INSERT; pCmd->command = TSDB_SQL_INSERT;
SInsertStatementParam* pInsertParam = &pCmd->insertParam; SInsertStatementParam* pInsertParam = &pCmd->insertParam;
...@@ -1594,6 +1591,11 @@ int tsInsertInitialCheck(SSqlObj *pSql) { ...@@ -1594,6 +1591,11 @@ int tsInsertInitialCheck(SSqlObj *pSql) {
SQueryInfo *pQueryInfo = tscGetQueryInfoS(pCmd); SQueryInfo *pQueryInfo = tscGetQueryInfoS(pCmd);
TSDB_QUERY_SET_TYPE(pQueryInfo->type, TSDB_QUERY_TYPE_INSERT); TSDB_QUERY_SET_TYPE(pQueryInfo->type, TSDB_QUERY_TYPE_INSERT);
SStrToken sToken = tStrGetToken(pSql->sqlstr, &index, false);
if (sToken.type != TK_INSERT && sToken.type != TK_IMPORT) {
return tscSQLSyntaxErrMsg(pInsertParam->msg, NULL, sToken.z);
}
sToken = tStrGetToken(pSql->sqlstr, &index, false); sToken = tStrGetToken(pSql->sqlstr, &index, false);
if (sToken.type != TK_INTO) { if (sToken.type != TK_INTO) {
return tscSQLSyntaxErrMsg(pInsertParam->msg, "keyword INTO is expected", sToken.z); return tscSQLSyntaxErrMsg(pInsertParam->msg, "keyword INTO is expected", sToken.z);
......
###################################################################
# Copyright (c) 2021 by TAOS Technologies, Inc.
# All rights reserved.
#
# This file is proprietary and confidential to TAOS Technologies.
# No part of this file may be reproduced, stored, transmitted,
# disclosed or used in any form or by any means other than as
# expressly provided by the written permission from Jianhui Tao
#
###################################################################
# -*- coding: utf-8 -*-
import sys
from util.log import *
from util.cases import *
from util.sql import *
class TDTestCase:
def caseDescription(self):
'''
case1<ganlin zhao>: [TD-13246] Coredump when parentheses appear before the insert_sql
'''
return
def init(self, conn, logSql):
tdLog.debug("start to execute %s" % __file__)
tdSql.init(conn.cursor(), logSql)
self._conn = conn
def run(self):
print("running {}".format(__file__))
tdSql.prepare()
tdSql.execute('create stable st(ts timestamp , value int) tags (ind int)')
tdSql.execute('create table ctb using st tags(1)')
tdSql.execute('create table tb (ts timestamp, value int)')
tdSql.query('insert into ctb values(now, 1)');
tdSql.query('insert into tb values(now, 1)');
tdSql.error('(insert into ctb values(now, 1)');
tdSql.error('(insert into tb values(now, 1)');
tdSql.error('(insert into ctb values');
tdSql.error('(insert into ctb');
tdSql.error('(insert into');
tdSql.error('(insert');
tdSql.error('(');
def stop(self):
tdSql.close()
tdLog.success("%s successfully executed" % __file__)
tdCases.addWindows(__file__, TDTestCase())
tdCases.addLinux(__file__, TDTestCase())
...@@ -7,3 +7,4 @@ python3 ./test.py -f 2-query/ts_2016.py ...@@ -7,3 +7,4 @@ python3 ./test.py -f 2-query/ts_2016.py
python3 ./test.py -f 2-query/escape.py python3 ./test.py -f 2-query/escape.py
python3 ./test.py -f 2-query/function_mavg.py python3 ./test.py -f 2-query/function_mavg.py
python3 ./test.py -f 2-query/func_compare.py python3 ./test.py -f 2-query/func_compare.py
python3 ./test.py -f 2-query/TD-13246.py
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册