commit
2e91314d38
|
@ -57,7 +57,7 @@ IF (TD_LINUX_64)
|
|||
ADD_DEFINITIONS(-D_M_X64)
|
||||
ADD_DEFINITIONS(-D_TD_LINUX_64)
|
||||
MESSAGE(STATUS "linux64 is defined")
|
||||
SET(COMMON_FLAGS "-std=gnu99 -Wall -Werror -fPIC -gdwarf-2 -msse4.2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE")
|
||||
SET(COMMON_FLAGS "-Wall -Werror -fPIC -gdwarf-2 -msse4.2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE")
|
||||
ADD_DEFINITIONS(-DUSE_LIBICONV)
|
||||
|
||||
IF (JEMALLOC_ENABLED)
|
||||
|
@ -70,7 +70,7 @@ IF (TD_LINUX_32)
|
|||
ADD_DEFINITIONS(-D_TD_LINUX_32)
|
||||
ADD_DEFINITIONS(-DUSE_LIBICONV)
|
||||
MESSAGE(STATUS "linux32 is defined")
|
||||
SET(COMMON_FLAGS "-std=gnu99 -Wall -Werror -fPIC -fsigned-char -munaligned-access -fpack-struct=8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE")
|
||||
SET(COMMON_FLAGS "-Wall -Werror -fPIC -fsigned-char -munaligned-access -fpack-struct=8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE")
|
||||
ENDIF ()
|
||||
|
||||
IF (TD_ARM_64)
|
||||
|
@ -78,7 +78,7 @@ IF (TD_ARM_64)
|
|||
ADD_DEFINITIONS(-D_TD_ARM_)
|
||||
ADD_DEFINITIONS(-DUSE_LIBICONV)
|
||||
MESSAGE(STATUS "arm64 is defined")
|
||||
SET(COMMON_FLAGS "-std=gnu99 -Wall -Werror -fPIC -fsigned-char -fpack-struct=8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE")
|
||||
SET(COMMON_FLAGS "-Wall -Werror -fPIC -fsigned-char -fpack-struct=8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE")
|
||||
ENDIF ()
|
||||
|
||||
IF (TD_ARM_32)
|
||||
|
@ -86,7 +86,7 @@ IF (TD_ARM_32)
|
|||
ADD_DEFINITIONS(-D_TD_ARM_)
|
||||
ADD_DEFINITIONS(-DUSE_LIBICONV)
|
||||
MESSAGE(STATUS "arm32 is defined")
|
||||
SET(COMMON_FLAGS "-std=gnu99 -Wall -Werror -fPIC -fsigned-char -fpack-struct=8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast -Wno-incompatible-pointer-types ")
|
||||
SET(COMMON_FLAGS "-Wall -Werror -fPIC -fsigned-char -fpack-struct=8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast -Wno-incompatible-pointer-types ")
|
||||
ENDIF ()
|
||||
|
||||
IF (TD_MIPS_64)
|
||||
|
@ -94,7 +94,7 @@ IF (TD_MIPS_64)
|
|||
ADD_DEFINITIONS(-D_TD_MIPS_64)
|
||||
ADD_DEFINITIONS(-DUSE_LIBICONV)
|
||||
MESSAGE(STATUS "mips64 is defined")
|
||||
SET(COMMON_FLAGS "-std=gnu99 -Wall -Werror -fPIC -fsigned-char -fpack-struct=8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE")
|
||||
SET(COMMON_FLAGS "-Wall -Werror -fPIC -fsigned-char -fpack-struct=8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE")
|
||||
ENDIF ()
|
||||
|
||||
IF (TD_MIPS_32)
|
||||
|
@ -102,7 +102,7 @@ IF (TD_MIPS_32)
|
|||
ADD_DEFINITIONS(-D_TD_MIPS_32)
|
||||
ADD_DEFINITIONS(-DUSE_LIBICONV)
|
||||
MESSAGE(STATUS "mips32 is defined")
|
||||
SET(COMMON_FLAGS "-std=gnu99 -Wall -Werror -fPIC -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE")
|
||||
SET(COMMON_FLAGS "-Wall -Werror -fPIC -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE")
|
||||
ENDIF ()
|
||||
|
||||
IF (TD_APLHINE)
|
||||
|
@ -147,7 +147,7 @@ IF (TD_DARWIN_64)
|
|||
ADD_DEFINITIONS(-D_REENTRANT -D__USE_POSIX -D_LIBC_REENTRANT)
|
||||
ADD_DEFINITIONS(-DUSE_LIBICONV)
|
||||
MESSAGE(STATUS "darwin64 is defined")
|
||||
SET(COMMON_FLAGS "-std=gnu99 -Wall -Werror -Wno-missing-braces -fPIC -msse4.2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE")
|
||||
SET(COMMON_FLAGS "-Wall -Werror -Wno-missing-braces -fPIC -msse4.2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE")
|
||||
IF (TD_MEMORY_SANITIZER)
|
||||
SET(DEBUG_FLAGS "-fsanitize=address -fsanitize=undefined -fno-sanitize-recover=all -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow -fno-sanitize=null -fno-sanitize=alignment -O0 -g3 -DDEBUG")
|
||||
ELSE ()
|
||||
|
|
|
@ -35,13 +35,13 @@ ENDIF ()
|
|||
|
||||
# Set compiler options
|
||||
SET(COMMON_C_FLAGS "${COMMON_FLAGS} -std=gnu99")
|
||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMMON_FLAGS} ${DEBUG_FLAGS}")
|
||||
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${COMMON_FLAGS} ${RELEASE_FLAGS}")
|
||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMMON_C_FLAGS} ${DEBUG_FLAGS}")
|
||||
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${COMMON_C_FLAGS} ${RELEASE_FLAGS}")
|
||||
|
||||
# Set c++ compiler options
|
||||
# SET(COMMON_CXX_FLAGS "${COMMON_FLAGS} -std=c++11")
|
||||
# SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMMON_CXX_FLAGS} ${DEBUG_FLAGS}")
|
||||
# SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${COMMON_CXX_FLAGS} ${RELEASE_FLAGS}")
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_FLAGS} -std=c++11")
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMMON_CXX_FLAGS} ${DEBUG_FLAGS}")
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${COMMON_CXX_FLAGS} ${RELEASE_FLAGS}")
|
||||
|
||||
IF (${CMAKE_BUILD_TYPE} MATCHES "Debug")
|
||||
SET(CMAKE_BUILD_TYPE "Debug")
|
||||
|
|
|
@ -45,6 +45,7 @@ int32_t tscNumOfObj = 0; // number of sqlObj in current process.
|
|||
static void *tscCheckDiskUsageTmr;
|
||||
void *tscRpcCache; // cache to keep rpc obj
|
||||
int32_t tscNumOfThreads = 1; // num of rpc threads
|
||||
char tscLogFileName[12] = "taoslog";
|
||||
static pthread_mutex_t rpcObjMutex; // mutex to protect open the rpc obj concurrently
|
||||
static pthread_once_t tscinit = PTHREAD_ONCE_INIT;
|
||||
static volatile int tscInitRes = 0;
|
||||
|
@ -132,7 +133,7 @@ void taos_init_imp(void) {
|
|||
printf("failed to create log dir:%s\n", tsLogDir);
|
||||
}
|
||||
|
||||
sprintf(temp, "%s/taoslog", tsLogDir);
|
||||
sprintf(temp, "%s/%s", tsLogDir, tscLogFileName);
|
||||
if (taosInitLog(temp, tsNumOfLogLines, 10) < 0) {
|
||||
printf("failed to open log file in directory:%s\n", tsLogDir);
|
||||
}
|
||||
|
|
|
@ -248,7 +248,7 @@ int32_t shellRunCommand(TAOS* con, char* command) {
|
|||
|
||||
if (quote == c) {
|
||||
quote = 0;
|
||||
} else if (c == '\'' || c == '"') {
|
||||
} else if (quote == 0 && (c == '\'' || c == '"')) {
|
||||
quote = c;
|
||||
}
|
||||
|
||||
|
|
|
@ -132,10 +132,9 @@ extern "C" {
|
|||
#define ASSERT(x)
|
||||
#endif
|
||||
|
||||
#ifdef UNUSED
|
||||
#undefine UNUSED
|
||||
#endif
|
||||
#ifndef UNUSED
|
||||
#define UNUSED(x) ((void)(x))
|
||||
#endif
|
||||
|
||||
#ifdef UNUSED_FUNC
|
||||
#undefine UNUSED_FUNC
|
||||
|
|
|
@ -132,6 +132,7 @@ void * syncRestoreData(void *param);
|
|||
int32_t syncSaveIntoBuffer(SSyncPeer *pPeer, SWalHead *pHead);
|
||||
void syncRestartConnection(SSyncPeer *pPeer);
|
||||
void syncBroadcastStatus(SSyncNode *pNode);
|
||||
uint32_t syncResolvePeerFqdn(SSyncPeer *pPeer);
|
||||
SSyncPeer *syncAcquirePeer(int64_t rid);
|
||||
void syncReleasePeer(SSyncPeer *pPeer);
|
||||
|
||||
|
|
|
@ -559,7 +559,8 @@ static void syncClosePeerConn(SSyncPeer *pPeer) {
|
|||
static void syncRemovePeer(SSyncPeer *pPeer) {
|
||||
sInfo("%s, it is removed", pPeer->id);
|
||||
|
||||
pPeer->ip = 0;
|
||||
//pPeer->ip = 0;
|
||||
pPeer->fqdn[0] = '\0';
|
||||
syncClosePeerConn(pPeer);
|
||||
//taosRemoveRef(tsPeerRefId, pPeer->rid);
|
||||
syncReleasePeer(pPeer);
|
||||
|
@ -585,20 +586,31 @@ static void syncStopCheckPeerConn(SSyncPeer *pPeer) {
|
|||
sDebug("%s, stop check peer connection", pPeer->id);
|
||||
}
|
||||
|
||||
uint32_t syncResolvePeerFqdn(SSyncPeer *pPeer) {
|
||||
uint32_t ip = taosGetIpv4FromFqdn(pPeer->fqdn);
|
||||
if (ip == 0xFFFFFFFF) {
|
||||
sError("failed to resolve peer fqdn:%s since %s", pPeer->fqdn, strerror(errno));
|
||||
terrno = TSDB_CODE_RPC_FQDN_ERROR;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return ip;
|
||||
}
|
||||
|
||||
static SSyncPeer *syncAddPeer(SSyncNode *pNode, const SNodeInfo *pInfo) {
|
||||
uint32_t ip = taosGetIpv4FromFqdn(pInfo->nodeFqdn);
|
||||
/*uint32_t ip = taosGetIpv4FromFqdn(pInfo->nodeFqdn);
|
||||
if (ip == 0xFFFFFFFF) {
|
||||
sError("failed to add peer, can resolve fqdn:%s since %s", pInfo->nodeFqdn, strerror(errno));
|
||||
terrno = TSDB_CODE_RPC_FQDN_ERROR;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
*/
|
||||
SSyncPeer *pPeer = calloc(1, sizeof(SSyncPeer));
|
||||
if (pPeer == NULL) return NULL;
|
||||
|
||||
pPeer->nodeId = pInfo->nodeId;
|
||||
tstrncpy(pPeer->fqdn, pInfo->nodeFqdn, sizeof(pPeer->fqdn));
|
||||
pPeer->ip = ip;
|
||||
//pPeer->ip = ip;
|
||||
pPeer->port = pInfo->nodePort;
|
||||
pPeer->fqdn[sizeof(pPeer->fqdn) - 1] = 0;
|
||||
snprintf(pPeer->id, sizeof(pPeer->id), "vgId:%d, nodeId:%d", pNode->vgId, pPeer->nodeId);
|
||||
|
@ -857,14 +869,14 @@ static void syncRestartPeer(SSyncPeer *pPeer) {
|
|||
sDebug("%s, peer conn is restart and set sstatus:%s", pPeer->id, syncStatus[pPeer->sstatus]);
|
||||
|
||||
int32_t ret = strcmp(pPeer->fqdn, tsNodeFqdn);
|
||||
if (ret > 0 || (ret == 0 && pPeer->port > tsSyncPort)) {
|
||||
if (pPeer->nodeId == 0 || ret > 0 || (ret == 0 && pPeer->port > tsSyncPort)) {
|
||||
sDebug("%s, check peer connection in 1000 ms", pPeer->id);
|
||||
taosTmrReset(syncCheckPeerConnection, SYNC_CHECK_INTERVAL, (void *)pPeer->rid, tsSyncTmrCtrl, &pPeer->timer);
|
||||
}
|
||||
}
|
||||
|
||||
void syncRestartConnection(SSyncPeer *pPeer) {
|
||||
if (pPeer->ip == 0) return;
|
||||
if (pPeer->fqdn[0] == '\0') return;
|
||||
|
||||
if (syncAcquirePeer(pPeer->rid) == NULL) return;
|
||||
|
||||
|
@ -878,7 +890,7 @@ static void syncProcessSyncRequest(char *msg, SSyncPeer *pPeer) {
|
|||
SSyncNode *pNode = pPeer->pSyncNode;
|
||||
sInfo("%s, sync-req is received", pPeer->id);
|
||||
|
||||
if (pPeer->ip == 0) return;
|
||||
if (pPeer->fqdn[0] == '\0') return;
|
||||
|
||||
if (nodeRole != TAOS_SYNC_ROLE_MASTER) {
|
||||
sError("%s, I am not master anymore", pPeer->id);
|
||||
|
@ -1090,7 +1102,7 @@ static int32_t syncProcessPeerMsg(int64_t rid, void *buffer) {
|
|||
}
|
||||
|
||||
static int32_t syncSendPeersStatusMsgToPeer(SSyncPeer *pPeer, char ack, int8_t type, uint16_t tranId) {
|
||||
if (pPeer->peerFd < 0 || pPeer->ip == 0) {
|
||||
if (pPeer->peerFd < 0 || pPeer->fqdn[0] == '\0') {
|
||||
sDebug("%s, failed to send status msg, restart fd:%d", pPeer->id, pPeer->peerFd);
|
||||
syncRestartConnection(pPeer);
|
||||
return -1;
|
||||
|
@ -1135,7 +1147,13 @@ static void syncSetupPeerConnection(SSyncPeer *pPeer) {
|
|||
return;
|
||||
}
|
||||
|
||||
SOCKET connFd = taosOpenTcpClientSocket(pPeer->ip, pPeer->port, 0);
|
||||
uint32_t ip = syncResolvePeerFqdn(pPeer);
|
||||
if (!ip) {
|
||||
taosTmrReset(syncCheckPeerConnection, SYNC_CHECK_INTERVAL, (void *)pPeer->rid, tsSyncTmrCtrl, &pPeer->timer);
|
||||
return;
|
||||
}
|
||||
|
||||
SOCKET connFd = taosOpenTcpClientSocket(ip, pPeer->port, 0);
|
||||
if (connFd <= 0) {
|
||||
sDebug("%s, failed to open tcp socket since %s", pPeer->id, strerror(errno));
|
||||
taosTmrReset(syncCheckPeerConnection, SYNC_CHECK_INTERVAL, (void *)pPeer->rid, tsSyncTmrCtrl, &pPeer->timer);
|
||||
|
|
|
@ -422,6 +422,12 @@ void *syncRetrieveData(void *param) {
|
|||
return NULL;
|
||||
}
|
||||
|
||||
uint32_t ip = syncResolvePeerFqdn(pPeer);
|
||||
if (!ip) {
|
||||
syncReleasePeer(pPeer);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
SSyncNode *pNode = pPeer->pSyncNode;
|
||||
|
||||
taosBlockSIGPIPE();
|
||||
|
@ -430,7 +436,7 @@ void *syncRetrieveData(void *param) {
|
|||
|
||||
if (pNode->notifyFlowCtrlFp) (*pNode->notifyFlowCtrlFp)(pNode->vgId, pPeer->numOfRetrieves);
|
||||
|
||||
pPeer->syncFd = taosOpenTcpClientSocket(pPeer->ip, pPeer->port, 0);
|
||||
pPeer->syncFd = taosOpenTcpClientSocket(ip, pPeer->port, 0);
|
||||
if (pPeer->syncFd < 0) {
|
||||
sError("%s, failed to open socket to sync", pPeer->id);
|
||||
} else {
|
||||
|
|
|
@ -322,6 +322,7 @@ python3 ./test.py -f query/last_row_cache.py
|
|||
python3 ./test.py -f account/account_create.py
|
||||
python3 ./test.py -f alter/alter_table.py
|
||||
python3 ./test.py -f query/queryGroupbySort.py
|
||||
python3 ./test.py -f functions/queryTestCases.py
|
||||
python3 ./test.py -f functions/function_stateWindow.py
|
||||
python3 ./test.py -f functions/function_derivative.py
|
||||
|
||||
|
|
|
@ -0,0 +1,364 @@
|
|||
###################################################################
|
||||
# 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
|
||||
import subprocess
|
||||
|
||||
from util.log import *
|
||||
from util.cases import *
|
||||
from util.sql import *
|
||||
from util.dnodes import *
|
||||
|
||||
|
||||
class TDTestCase:
|
||||
def init(self, conn, logSql):
|
||||
tdLog.debug(f"start to execute {__file__}")
|
||||
tdSql.init(conn.cursor(), logSql)
|
||||
|
||||
def getBuildPath(self) -> str:
|
||||
selfPath = os.path.dirname(os.path.realpath(__file__))
|
||||
|
||||
if ("community" in selfPath):
|
||||
projPath = selfPath[:selfPath.find("community")]
|
||||
else:
|
||||
projPath = selfPath[:selfPath.find("tests")]
|
||||
|
||||
for root, dirs, files in os.walk(projPath):
|
||||
if ("taosd" in files):
|
||||
rootRealPath = os.path.dirname(os.path.realpath(root))
|
||||
if ("packaging" not in rootRealPath):
|
||||
buildPath = root[:len(root) - len("/debug/build/bin")]
|
||||
break
|
||||
return buildPath
|
||||
|
||||
def getCfgDir(self) -> str:
|
||||
selfPath = os.path.dirname(os.path.realpath(__file__))
|
||||
|
||||
if ("community" in selfPath):
|
||||
cfgDir = self.getBuildPath() + "/community/sim/dnode1/cfg"
|
||||
else:
|
||||
cfgDir = self.getBuildPath() + "/sim/dnode1/cfg"
|
||||
return cfgDir
|
||||
|
||||
def getCfgFile(self) -> str:
|
||||
return self.getCfgDir()+"/taos.cfg"
|
||||
|
||||
def td3690(self):
|
||||
tdLog.printNoPrefix("==========TD-3690==========")
|
||||
tdSql.query("show variables")
|
||||
tdSql.checkData(51, 1, 864000)
|
||||
|
||||
def td4082(self):
|
||||
tdLog.printNoPrefix("==========TD-4082==========")
|
||||
cfgfile = self.getCfgFile()
|
||||
max_compressMsgSize = 100000000
|
||||
|
||||
tdSql.query("show variables")
|
||||
tdSql.checkData(26, 1, -1)
|
||||
|
||||
tdSql.query("show dnodes")
|
||||
index = tdSql.getData(0, 0)
|
||||
|
||||
tdDnodes.stop(index)
|
||||
cmd = f"sed -i '$a compressMSgSize {max_compressMsgSize}' {cfgfile} "
|
||||
try:
|
||||
_ = subprocess.check_output(cmd, shell=True).decode("utf-8")
|
||||
except Exception as e:
|
||||
raise e
|
||||
|
||||
tdDnodes.start(index)
|
||||
tdSql.query("show variables")
|
||||
tdSql.checkData(26, 1, 100000000)
|
||||
|
||||
tdDnodes.stop(index)
|
||||
cmd = f"sed -i '$s/{max_compressMsgSize}/{max_compressMsgSize+10}/g' {cfgfile} "
|
||||
try:
|
||||
_ = subprocess.check_output(cmd, shell=True).decode("utf-8")
|
||||
except Exception as e:
|
||||
raise e
|
||||
|
||||
tdDnodes.start(index)
|
||||
tdSql.query("show variables")
|
||||
tdSql.checkData(26, 1, -1)
|
||||
|
||||
tdDnodes.stop(index)
|
||||
cmd = f"sed -i '$d' {cfgfile}"
|
||||
try:
|
||||
_ = subprocess.check_output(cmd, shell=True).decode("utf-8")
|
||||
except Exception as e:
|
||||
raise e
|
||||
|
||||
tdDnodes.start(index)
|
||||
|
||||
def td4097(self):
|
||||
tdLog.printNoPrefix("==========TD-4097==========")
|
||||
tdSql.execute("drop database if exists db")
|
||||
tdSql.execute("drop database if exists db1")
|
||||
tdSql.execute("create database if not exists db keep 3650")
|
||||
tdSql.execute("create database if not exists db1 keep 3650")
|
||||
|
||||
tdSql.execute("create stable db.stb1 (ts timestamp, c1 int) tags(t1 int)")
|
||||
tdSql.execute("create stable db.stb2 (ts timestamp, c1 int) tags(t1 int)")
|
||||
tdSql.execute("create stable db1.stb3 (ts timestamp, c1 int) tags(t1 int)")
|
||||
|
||||
tdSql.execute("create table db.t10 using db.stb1 tags(1)")
|
||||
tdSql.execute("create table db.t11 using db.stb1 tags(2)")
|
||||
tdSql.execute("create table db.t20 using db.stb2 tags(3)")
|
||||
tdSql.execute("create table db1.t30 using db1.stb3 tags(4)")
|
||||
|
||||
tdLog.printNoPrefix("==========TD-4097==========")
|
||||
# 插入数据,然后进行show create 操作
|
||||
|
||||
# p1 不进入指定数据库
|
||||
tdSql.query("show create database db")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.error("show create database ")
|
||||
tdSql.error("show create databases db ")
|
||||
tdSql.error("show create database db.stb1")
|
||||
tdSql.error("show create database db0")
|
||||
tdSql.error("show create database db db1")
|
||||
tdSql.error("show create database db, db1")
|
||||
tdSql.error("show create database stb1")
|
||||
tdSql.error("show create database * ")
|
||||
|
||||
tdSql.query("show create stable db.stb1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.error("show create stable db.t10")
|
||||
tdSql.error("show create stable db.stb0")
|
||||
tdSql.error("show create stable stb1")
|
||||
tdSql.error("show create stable ")
|
||||
tdSql.error("show create stable *")
|
||||
tdSql.error("show create stable db.stb1 db.stb2")
|
||||
tdSql.error("show create stable db.stb1, db.stb2")
|
||||
|
||||
tdSql.query("show create table db.stb1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("show create table db.t10")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.error("show create table db.stb0")
|
||||
tdSql.error("show create table stb1")
|
||||
tdSql.error("show create table ")
|
||||
tdSql.error("show create table *")
|
||||
tdSql.error("show create table db.stb1 db.stb2")
|
||||
tdSql.error("show create table db.stb1, db.stb2")
|
||||
|
||||
# p2 进入指定数据库
|
||||
tdSql.execute("use db")
|
||||
|
||||
tdSql.query("show create database db")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("show create database db1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.error("show create database ")
|
||||
tdSql.error("show create databases db ")
|
||||
tdSql.error("show create database db.stb1")
|
||||
tdSql.error("show create database db0")
|
||||
tdSql.error("show create database db db1")
|
||||
tdSql.error("show create database db, db1")
|
||||
tdSql.error("show create database stb1")
|
||||
tdSql.error("show create database * ")
|
||||
|
||||
tdSql.query("show create stable db.stb1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("show create stable stb1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("show create stable db1.stb3")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.error("show create stable db.t10")
|
||||
tdSql.error("show create stable db")
|
||||
tdSql.error("show create stable t10")
|
||||
tdSql.error("show create stable db.stb0")
|
||||
tdSql.error("show create stables stb1")
|
||||
tdSql.error("show create stable ")
|
||||
tdSql.error("show create stable *")
|
||||
tdSql.error("show create stable db.stb1 db.stb2")
|
||||
tdSql.error("show create stable stb1 stb2")
|
||||
tdSql.error("show create stable db.stb1, db.stb2")
|
||||
tdSql.error("show create stable stb1, stb2")
|
||||
|
||||
tdSql.query("show create table db.stb1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("show create table stb1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("show create table db.t10")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("show create table t10")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("show create table db1.t30")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.error("show create table t30")
|
||||
tdSql.error("show create table db.stb0")
|
||||
tdSql.error("show create table db.t0")
|
||||
tdSql.error("show create table db")
|
||||
tdSql.error("show create tables stb1")
|
||||
tdSql.error("show create tables t10")
|
||||
tdSql.error("show create table ")
|
||||
tdSql.error("show create table *")
|
||||
tdSql.error("show create table db.stb1 db.stb2")
|
||||
tdSql.error("show create table db.t11 db.t10")
|
||||
tdSql.error("show create table db.stb1, db.stb2")
|
||||
tdSql.error("show create table db.t11, db.t10")
|
||||
tdSql.error("show create table stb1 stb2")
|
||||
tdSql.error("show create table t11 t10")
|
||||
tdSql.error("show create table stb1, stb2")
|
||||
tdSql.error("show create table t11, t10")
|
||||
|
||||
# p3 删库删表后进行查询
|
||||
tdSql.execute("drop table if exists t11")
|
||||
|
||||
tdSql.error("show create table t11")
|
||||
tdSql.error("show create table db.t11")
|
||||
tdSql.query("show create stable stb1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("show create table t10")
|
||||
tdSql.checkRows(1)
|
||||
|
||||
tdSql.execute("drop stable if exists stb2")
|
||||
|
||||
tdSql.error("show create table stb2")
|
||||
tdSql.error("show create table db.stb2")
|
||||
tdSql.error("show create stable stb2")
|
||||
tdSql.error("show create stable db.stb2")
|
||||
tdSql.error("show create stable db.t20")
|
||||
tdSql.query("show create database db")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("show create stable db.stb1")
|
||||
tdSql.checkRows(1)
|
||||
|
||||
tdSql.execute("drop database if exists db1")
|
||||
tdSql.error("show create database db1")
|
||||
tdSql.error("show create stable db1.t31")
|
||||
tdSql.error("show create stable db1.stb3")
|
||||
tdSql.query("show create database db")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("show create stable db.stb1")
|
||||
tdSql.checkRows(1)
|
||||
|
||||
def td4153(self):
|
||||
tdLog.printNoPrefix("==========TD-4153==========")
|
||||
|
||||
pass
|
||||
|
||||
def td4288(self):
|
||||
tdLog.printNoPrefix("==========TD-4288==========")
|
||||
# keep ~ [days,365000]
|
||||
tdSql.execute("drop database if exists db")
|
||||
tdSql.execute("create database if not exists db")
|
||||
tdSql.query("show variables")
|
||||
tdSql.checkData(36, 1, 3650)
|
||||
tdSql.query("show databases")
|
||||
tdSql.checkData(0,7,"3650,3650,3650")
|
||||
|
||||
days = tdSql.getData(0, 6)
|
||||
tdSql.error("alter database db keep 3650001")
|
||||
tdSql.error("alter database db keep 9")
|
||||
tdSql.error("alter database db keep 0b")
|
||||
tdSql.error("alter database db keep 3650,9,36500")
|
||||
tdSql.error("alter database db keep 3650,3650,365001")
|
||||
tdSql.error("alter database db keep 36500,a,36500")
|
||||
tdSql.error("alter database db keep (36500,3650,3650)")
|
||||
tdSql.error("alter database db keep [36500,3650,36500]")
|
||||
tdSql.error("alter database db keep 36500,0xff,3650")
|
||||
tdSql.error("alter database db keep 36500,0o365,3650")
|
||||
tdSql.error("alter database db keep 36500,0A3Ch,3650")
|
||||
tdSql.error("alter database db keep")
|
||||
tdSql.error("alter database db keep0 36500")
|
||||
|
||||
tdSql.execute("alter database db keep 36500")
|
||||
tdSql.query("show databases")
|
||||
tdSql.checkData(0, 7, "3650,3650,36500")
|
||||
tdSql.execute("drop database if exists db")
|
||||
|
||||
tdSql.execute("create database if not exists db1")
|
||||
tdSql.query("show databases")
|
||||
tdSql.checkData(0, 7, "3650,3650,3650")
|
||||
tdSql.query("show variables")
|
||||
tdSql.checkData(36, 1, 3650)
|
||||
|
||||
tdSql.execute("alter database db1 keep 365")
|
||||
tdSql.execute("drop database if exists db1")
|
||||
|
||||
|
||||
pass
|
||||
|
||||
def td4724(self):
|
||||
tdLog.printNoPrefix("==========TD-4724==========")
|
||||
cfgfile = self.getCfgFile()
|
||||
minTablesPerVnode = 5
|
||||
maxTablesPerVnode = 10
|
||||
maxVgroupsPerDb = 100
|
||||
|
||||
tdSql.query("show dnodes")
|
||||
index = tdSql.getData(0, 0)
|
||||
|
||||
tdDnodes.stop(index)
|
||||
vnode_cmd = f"sed -i '$a maxVgroupsPerDb {maxVgroupsPerDb}' {cfgfile} "
|
||||
min_cmd = f"sed -i '$a minTablesPerVnode {minTablesPerVnode}' {cfgfile} "
|
||||
max_cmd = f"sed -i '$a maxTablesPerVnode {maxTablesPerVnode}' {cfgfile} "
|
||||
try:
|
||||
_ = subprocess.check_output(vnode_cmd, shell=True).decode("utf-8")
|
||||
_ = subprocess.check_output(min_cmd, shell=True).decode("utf-8")
|
||||
_ = subprocess.check_output(max_cmd, shell=True).decode("utf-8")
|
||||
except Exception as e:
|
||||
raise e
|
||||
|
||||
tdDnodes.start(index)
|
||||
tdSql.execute("drop database if exists db")
|
||||
tdSql.execute("create database if not exists db keep 3650")
|
||||
tdSql.execute("use db")
|
||||
tdSql.execute("create stable db.stb1 (ts timestamp, c1 int) tags(t1 int)")
|
||||
insert_sql = "insert into "
|
||||
for i in range(100):
|
||||
tdSql.execute(f"create table db.t1{i} using db.stb1 tags({i})")
|
||||
insert_sql += f" t1{i} values({1604298064000 + i*1000}, {i})"
|
||||
tdSql.query("show dnodes")
|
||||
vnode_count = tdSql.getData(0, 2)
|
||||
if vnode_count <= 1:
|
||||
tdLog.exit("vnode is less than 2")
|
||||
|
||||
tdSql.execute(insert_sql)
|
||||
tdDnodes.stop(index)
|
||||
cmd = f"sed -i '$d' {cfgfile}"
|
||||
try:
|
||||
_ = subprocess.check_output(cmd, shell=True).decode("utf-8")
|
||||
_ = subprocess.check_output(cmd, shell=True).decode("utf-8")
|
||||
_ = subprocess.check_output(cmd, shell=True).decode("utf-8")
|
||||
except Exception as e:
|
||||
raise e
|
||||
|
||||
tdDnodes.start(index)
|
||||
|
||||
pass
|
||||
|
||||
def run(self):
|
||||
|
||||
# master branch
|
||||
# self.td3690()
|
||||
# self.td4082()
|
||||
# self.td4288()
|
||||
self.td4724()
|
||||
|
||||
# develop branch
|
||||
# self.td4097()
|
||||
|
||||
|
||||
def stop(self):
|
||||
tdSql.close()
|
||||
tdLog.success(f"{__file__} successfully executed")
|
||||
|
||||
|
||||
tdCases.addWindows(__file__, TDTestCase())
|
||||
tdCases.addLinux(__file__, TDTestCase())
|
||||
|
||||
|
||||
|
|
@ -4,6 +4,8 @@ import sys
|
|||
from util.log import *
|
||||
from util.cases import *
|
||||
from util.sql import *
|
||||
import subprocess
|
||||
import os
|
||||
|
||||
|
||||
class TDTestCase:
|
||||
|
@ -50,6 +52,10 @@ class TDTestCase:
|
|||
tdLog.info('==> $data00')
|
||||
tdLog.info("tdSql.checkData(0, 0, '34567')")
|
||||
tdSql.checkData(0, 0, '34567')
|
||||
tdLog.info("insert into tb values (now+4a, \"'';\")")
|
||||
config_dir = subprocess.check_output(str("ps -ef |grep dnode1|grep -v grep |awk '{print $NF}'"), stderr=subprocess.STDOUT, shell=True).decode('utf-8').replace('\n', '')
|
||||
result = ''.join(os.popen(r"""taos -s "insert into db.tb values (now+4a, \"'';\")" -c %s"""%(config_dir)).readlines())
|
||||
if "Query OK" not in result: tdLog.exit("err:insert '';")
|
||||
tdLog.info('drop database db')
|
||||
tdSql.execute('drop database db')
|
||||
tdLog.info('show databases')
|
||||
|
|
Loading…
Reference in New Issue