diff --git a/src/client/src/tscPrepare.c b/src/client/src/tscPrepare.c index ea6ad8a48d7a9c4b5e992dffe8329735a0f47512..6f8013d2cf8350ca0198bce39a3cb8c4e6e3c230 100644 --- a/src/client/src/tscPrepare.c +++ b/src/client/src/tscPrepare.c @@ -1658,7 +1658,7 @@ int taos_stmt_prepare(TAOS_STMT* stmt, const char* sql, unsigned long length) { pRes->qId = 0; pRes->numOfRows = 0; - strcpy(pSql->sqlstr, sql); + strntolower(pSql->sqlstr, sql, (int32_t)sqlLen); tscDebugL("0x%"PRIx64" SQL: %s", pSql->self, pSql->sqlstr); if (tscIsInsertData(pSql->sqlstr)) { @@ -1849,6 +1849,7 @@ int taos_stmt_set_tbname_tags(TAOS_STMT* stmt, const char* name, TAOS_BIND* tags tscResetSqlCmd(pCmd, false, pSql->self); pCmd->insertParam.pTableBlockHashList = hashList; } + code = tsParseSql(pStmt->pSql, true); if (code == TSDB_CODE_TSC_ACTION_IN_PROGRESS) { diff --git a/tests/develop-test/1-insert/uppercase_in_stmt.py b/tests/develop-test/1-insert/uppercase_in_stmt.py new file mode 100644 index 0000000000000000000000000000000000000000..b9372b72cb1f5c30e32dda847bdd2dbe6611fd6b --- /dev/null +++ b/tests/develop-test/1-insert/uppercase_in_stmt.py @@ -0,0 +1,66 @@ +################################################################### +# Copyright (c) 2016 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 * +from util.dnodes import * +from taos import * + + +class TDTestCase: + def caseDescription(self): + ''' + case1: [TD-12977] fix invalid upper case table name of stmt api + ''' + return + + def init(self, conn, logSql): + tdLog.debug("start to execute %s" % __file__) + tdSql.init(conn.cursor(), logSql) + self._conn = conn + self._dbname = "TD12977" + + def run(self): + tdSql.prepare() + + self._conn.execute("drop database if exists %s" % self._dbname) + self._conn.execute("create database if not exists %s" % self._dbname) + self._conn.select_db(self._dbname) + + self._conn.execute("create stable STB(ts timestamp, n int) tags(b int)") + + stmt = self._conn.statement("insert into ? using STB tags(?) values(?, ?)") + params = new_bind_params(1) + params[0].int(4); + stmt.set_tbname_tags("ct", params); + + multi_params = new_multi_binds(2); + multi_params[0].timestamp([1626861392589, 1626861392590]) + multi_params[1].int([123,456]) + stmt.bind_param_batch(multi_params) + + stmt.execute() + + tdSql.query("select * from stb") + tdSql.checkRows(2) + stmt.close() + + + def stop(self): + tdSql.close() + tdLog.success("%s successfully executed" % __file__) + +tdCases.addWindows(__file__, TDTestCase()) +tdCases.addLinux(__file__, TDTestCase()) diff --git a/tests/develop-test/fulltest-insert.sh b/tests/develop-test/fulltest-insert.sh index 532f7e6fc0446f6a68ca0a5e80be070684a71c23..e538abf8e2f9f22e9acbce017a3f42b9a6804818 100755 --- a/tests/develop-test/fulltest-insert.sh +++ b/tests/develop-test/fulltest-insert.sh @@ -1 +1,2 @@ -python3 ./test.py -f 1-insert/batchInsert.py \ No newline at end of file +python3 ./test.py -f 1-insert/batchInsert.py +python3 ./test.py -f 1-insert/uppercase_in_stmt.py