commit
ed903bd9eb
|
@ -1,4 +1,4 @@
|
|||
[](https://travis-ci.org/taosdata/TDengine)
|
||||
[](https://cloud.drone.io/taosdata/TDengine)
|
||||
[](https://ci.appveyor.com/project/sangshuduo/tdengine-2n8ge/branch/master)
|
||||
[](https://coveralls.io/github/taosdata/TDengine?branch=develop)
|
||||
[](https://bestpractices.coreinfrastructure.org/projects/4201)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name: tdengine
|
||||
base: core18
|
||||
|
||||
version: '2.1.0.0'
|
||||
icon: snap/gui/t-dengine.svg
|
||||
summary: an open-source big data platform designed and optimized for IoT.
|
||||
|
|
|
@ -174,7 +174,8 @@ void tscFieldInfoClear(SFieldInfo* pFieldInfo);
|
|||
|
||||
static FORCE_INLINE int32_t tscNumOfFields(SQueryInfo* pQueryInfo) { return pQueryInfo->fieldsInfo.numOfOutput; }
|
||||
|
||||
int32_t tscFieldInfoCompare(const SFieldInfo* pFieldInfo1, const SFieldInfo* pFieldInfo2);
|
||||
int32_t tscFieldInfoCompare(const SFieldInfo* pFieldInfo1, const SFieldInfo* pFieldInfo2, int32_t *diffSize);
|
||||
int32_t tscFieldInfoSetSize(const SFieldInfo* pFieldInfo1, const SFieldInfo* pFieldInfo2);
|
||||
|
||||
void addExprParams(SSqlExpr* pExpr, char* argument, int32_t type, int32_t bytes);
|
||||
|
||||
|
@ -306,7 +307,7 @@ STableMeta* createSuperTableMeta(STableMetaMsg* pChild);
|
|||
uint32_t tscGetTableMetaSize(STableMeta* pTableMeta);
|
||||
CChildTableMeta* tscCreateChildMeta(STableMeta* pTableMeta);
|
||||
uint32_t tscGetTableMetaMaxSize();
|
||||
int32_t tscCreateTableMetaFromCChildMeta(STableMeta* pChild, const char* name);
|
||||
int32_t tscCreateTableMetaFromCChildMeta(STableMeta* pChild, const char* name, void* buf);
|
||||
STableMeta* tscTableMetaDup(STableMeta* pTableMeta);
|
||||
int32_t tscCreateQueryFromQueryInfo(SQueryInfo* pQueryInfo, SQueryAttr* pQueryAttr, void* addr);
|
||||
|
||||
|
|
|
@ -84,6 +84,7 @@ typedef struct STableMeta {
|
|||
|
||||
typedef struct STableMetaInfo {
|
||||
STableMeta *pTableMeta; // table meta, cached in client side and acquired by name
|
||||
uint32_t tableMetaSize;
|
||||
SVgroupsInfo *vgroupList;
|
||||
SArray *pVgroupTables; // SArray<SVgroupTableInfo>
|
||||
|
||||
|
|
|
@ -708,19 +708,11 @@ static int32_t doParseInsertStatement(SSqlCmd* pCmd, char **str, STableDataBlock
|
|||
}
|
||||
|
||||
code = TSDB_CODE_TSC_INVALID_SQL;
|
||||
char *tmpTokenBuf = calloc(1, 16*1024); // used for deleting Escape character: \\, \', \"
|
||||
if (NULL == tmpTokenBuf) {
|
||||
return TSDB_CODE_TSC_OUT_OF_MEMORY;
|
||||
}
|
||||
char tmpTokenBuf[16*1024] = {0}; // used for deleting Escape character: \\, \', \"
|
||||
|
||||
int32_t numOfRows = 0;
|
||||
code = tsParseValues(str, dataBuf, maxNumOfRows, pCmd, &numOfRows, tmpTokenBuf);
|
||||
|
||||
free(tmpTokenBuf);
|
||||
if (code != TSDB_CODE_SUCCESS) {
|
||||
return code;
|
||||
}
|
||||
|
||||
for (uint32_t i = 0; i < dataBuf->numOfParams; ++i) {
|
||||
SParamInfo *param = dataBuf->params + i;
|
||||
if (param->idx == -1) {
|
||||
|
@ -937,6 +929,42 @@ static int32_t tscCheckIfCreateTable(char **sqlstr, SSqlObj *pSql, char** boundC
|
|||
return tscSQLSyntaxErrMsg(pCmd->payload, ") expected", sToken.z);
|
||||
}
|
||||
|
||||
/* parse columns after super table tags values.
|
||||
* insert into table_name using super_table(tag_name1, tag_name2) tags(tag_val1, tag_val2)
|
||||
* (normal_col1, normal_col2) values(normal_col1_val, normal_col2_val);
|
||||
* */
|
||||
index = 0;
|
||||
sToken = tStrGetToken(sql, &index, false);
|
||||
sql += index;
|
||||
int numOfColsAfterTags = 0;
|
||||
if (sToken.type == TK_LP) {
|
||||
if (*boundColumn != NULL) {
|
||||
return tscSQLSyntaxErrMsg(pCmd->payload, "bind columns again", sToken.z);
|
||||
} else {
|
||||
*boundColumn = &sToken.z[0];
|
||||
}
|
||||
|
||||
while (1) {
|
||||
index = 0;
|
||||
sToken = tStrGetToken(sql, &index, false);
|
||||
|
||||
if (sToken.type == TK_RP) {
|
||||
break;
|
||||
}
|
||||
|
||||
sql += index;
|
||||
++numOfColsAfterTags;
|
||||
}
|
||||
|
||||
if (numOfColsAfterTags == 0 && (*boundColumn) != NULL) {
|
||||
return TSDB_CODE_TSC_INVALID_SQL;
|
||||
}
|
||||
|
||||
sToken = tStrGetToken(sql, &index, false);
|
||||
}
|
||||
|
||||
sql = sToken.z;
|
||||
|
||||
if (tscValidateName(&tableToken) != TSDB_CODE_SUCCESS) {
|
||||
return tscInvalidSQLErrMsg(pCmd->payload, "invalid table name", *sqlstr);
|
||||
}
|
||||
|
|
|
@ -636,18 +636,26 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) {
|
|||
// set the command/global limit parameters from the first subclause to the sqlcmd object
|
||||
SQueryInfo* pQueryInfo1 = tscGetQueryInfo(pCmd, 0);
|
||||
pCmd->command = pQueryInfo1->command;
|
||||
|
||||
int32_t diffSize = 0;
|
||||
|
||||
// if there is only one element, the limit of clause is the limit of global result.
|
||||
// validate the select node for "UNION ALL" subclause
|
||||
for (int32_t i = 1; i < pCmd->numOfClause; ++i) {
|
||||
SQueryInfo* pQueryInfo2 = tscGetQueryInfo(pCmd, i);
|
||||
|
||||
int32_t ret = tscFieldInfoCompare(&pQueryInfo1->fieldsInfo, &pQueryInfo2->fieldsInfo);
|
||||
int32_t ret = tscFieldInfoCompare(&pQueryInfo1->fieldsInfo, &pQueryInfo2->fieldsInfo, &diffSize);
|
||||
if (ret != 0) {
|
||||
return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg1);
|
||||
}
|
||||
}
|
||||
|
||||
if (diffSize) {
|
||||
for (int32_t i = 1; i < pCmd->numOfClause; ++i) {
|
||||
SQueryInfo* pQueryInfo2 = tscGetQueryInfo(pCmd, i);
|
||||
tscFieldInfoSetSize(&pQueryInfo1->fieldsInfo, &pQueryInfo2->fieldsInfo);
|
||||
}
|
||||
}
|
||||
|
||||
pCmd->parseFinished = 1;
|
||||
return TSDB_CODE_SUCCESS; // do not build query message here
|
||||
}
|
||||
|
@ -1607,11 +1615,27 @@ bool isValidDistinctSql(SQueryInfo* pQueryInfo) {
|
|||
return false;
|
||||
}
|
||||
|
||||
static bool hasNoneUserDefineExpr(SQueryInfo* pQueryInfo) {
|
||||
size_t numOfExprs = taosArrayGetSize(pQueryInfo->exprList);
|
||||
for (int32_t i = 0; i < numOfExprs; ++i) {
|
||||
SSqlExpr* pExpr = taosArrayGetP(pQueryInfo->exprList, i);
|
||||
|
||||
if (TSDB_COL_IS_UD_COL(pExpr->colInfo.flag)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int32_t validateSelectNodeList(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, SArray* pSelNodeList, bool isSTable, bool joinQuery,
|
||||
bool timeWindowQuery) {
|
||||
assert(pSelNodeList != NULL && pCmd != NULL);
|
||||
|
||||
const char* msg1 = "too many items in selection clause";
|
||||
|
||||
const char* msg2 = "functions or others can not be mixed up";
|
||||
const char* msg3 = "not support query expression";
|
||||
const char* msg4 = "only support distinct one tag";
|
||||
|
@ -1676,7 +1700,7 @@ int32_t validateSelectNodeList(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, SArray* pS
|
|||
|
||||
// there is only one user-defined column in the final result field, add the timestamp column.
|
||||
size_t numOfSrcCols = taosArrayGetSize(pQueryInfo->colList);
|
||||
if (numOfSrcCols <= 0 && !tscQueryTags(pQueryInfo) && !tscQueryBlockInfo(pQueryInfo)) {
|
||||
if ((numOfSrcCols <= 0 || !hasNoneUserDefineExpr(pQueryInfo)) && !tscQueryTags(pQueryInfo) && !tscQueryBlockInfo(pQueryInfo)) {
|
||||
addPrimaryTsColIntoResult(pQueryInfo);
|
||||
}
|
||||
|
||||
|
|
|
@ -2441,10 +2441,22 @@ static int32_t getTableMetaFromMnode(SSqlObj *pSql, STableMetaInfo *pTableMetaIn
|
|||
int32_t tscGetTableMeta(SSqlObj *pSql, STableMetaInfo *pTableMetaInfo) {
|
||||
assert(tIsValidName(&pTableMetaInfo->name));
|
||||
|
||||
tfree(pTableMetaInfo->pTableMeta);
|
||||
|
||||
uint32_t size = tscGetTableMetaMaxSize();
|
||||
pTableMetaInfo->pTableMeta = calloc(1, size);
|
||||
if (pTableMetaInfo->pTableMeta == NULL) {
|
||||
pTableMetaInfo->pTableMeta = calloc(1, size);
|
||||
pTableMetaInfo->tableMetaSize = size;
|
||||
} else if (pTableMetaInfo->tableMetaSize < size) {
|
||||
char *tmp = realloc(pTableMetaInfo->pTableMeta, size);
|
||||
if (tmp == NULL) {
|
||||
return TSDB_CODE_TSC_OUT_OF_MEMORY;
|
||||
}
|
||||
pTableMetaInfo->pTableMeta = (STableMeta *)tmp;
|
||||
pTableMetaInfo->tableMetaSize = size;
|
||||
} else {
|
||||
//uint32_t s = tscGetTableMetaSize(pTableMetaInfo->pTableMeta);
|
||||
memset(pTableMetaInfo->pTableMeta, 0, size);
|
||||
pTableMetaInfo->tableMetaSize = size;
|
||||
}
|
||||
|
||||
pTableMetaInfo->pTableMeta->tableType = -1;
|
||||
pTableMetaInfo->pTableMeta->tableInfo.numOfColumns = -1;
|
||||
|
@ -2456,10 +2468,13 @@ int32_t tscGetTableMeta(SSqlObj *pSql, STableMetaInfo *pTableMetaInfo) {
|
|||
taosHashGetClone(tscTableMetaInfo, name, len, NULL, pTableMetaInfo->pTableMeta, -1);
|
||||
|
||||
// TODO resize the tableMeta
|
||||
char buf[80*1024] = {0};
|
||||
assert(size < 80*1024);
|
||||
|
||||
STableMeta* pMeta = pTableMetaInfo->pTableMeta;
|
||||
if (pMeta->id.uid > 0) {
|
||||
if (pMeta->tableType == TSDB_CHILD_TABLE) {
|
||||
int32_t code = tscCreateTableMetaFromCChildMeta(pTableMetaInfo->pTableMeta, name);
|
||||
int32_t code = tscCreateTableMetaFromCChildMeta(pTableMetaInfo->pTableMeta, name, buf);
|
||||
if (code != TSDB_CODE_SUCCESS) {
|
||||
return getTableMetaFromMnode(pSql, pTableMetaInfo);
|
||||
}
|
||||
|
|
|
@ -1038,7 +1038,8 @@ int32_t tscCopyDataBlockToPayload(SSqlObj* pSql, STableDataBlocks* pDataBlock) {
|
|||
tfree(pTableMetaInfo->pTableMeta);
|
||||
}
|
||||
|
||||
pTableMetaInfo->pTableMeta = tscTableMetaDup(pDataBlock->pTableMeta);
|
||||
pTableMetaInfo->pTableMeta = tscTableMetaDup(pDataBlock->pTableMeta);
|
||||
pTableMetaInfo->tableMetaSize = tscGetTableMetaSize(pDataBlock->pTableMeta);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1443,7 +1444,7 @@ int16_t tscFieldInfoGetOffset(SQueryInfo* pQueryInfo, int32_t index) {
|
|||
return pInfo->pExpr->base.offset;
|
||||
}
|
||||
|
||||
int32_t tscFieldInfoCompare(const SFieldInfo* pFieldInfo1, const SFieldInfo* pFieldInfo2) {
|
||||
int32_t tscFieldInfoCompare(const SFieldInfo* pFieldInfo1, const SFieldInfo* pFieldInfo2, int32_t *diffSize) {
|
||||
assert(pFieldInfo1 != NULL && pFieldInfo2 != NULL);
|
||||
|
||||
if (pFieldInfo1->numOfOutput != pFieldInfo2->numOfOutput) {
|
||||
|
@ -1455,15 +1456,36 @@ int32_t tscFieldInfoCompare(const SFieldInfo* pFieldInfo1, const SFieldInfo* pFi
|
|||
TAOS_FIELD* pField2 = tscFieldInfoGetField((SFieldInfo*) pFieldInfo2, i);
|
||||
|
||||
if (pField1->type != pField2->type ||
|
||||
pField1->bytes != pField2->bytes ||
|
||||
strcasecmp(pField1->name, pField2->name) != 0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (pField1->bytes != pField2->bytes) {
|
||||
*diffSize = 1;
|
||||
|
||||
if (pField2->bytes > pField1->bytes) {
|
||||
pField1->bytes = pField2->bytes;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int32_t tscFieldInfoSetSize(const SFieldInfo* pFieldInfo1, const SFieldInfo* pFieldInfo2) {
|
||||
assert(pFieldInfo1 != NULL && pFieldInfo2 != NULL);
|
||||
|
||||
for (int32_t i = 0; i < pFieldInfo1->numOfOutput; ++i) {
|
||||
TAOS_FIELD* pField1 = tscFieldInfoGetField((SFieldInfo*) pFieldInfo1, i);
|
||||
TAOS_FIELD* pField2 = tscFieldInfoGetField((SFieldInfo*) pFieldInfo2, i);
|
||||
|
||||
pField2->bytes = pField1->bytes;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int32_t tscGetResRowLength(SArray* pExprList) {
|
||||
size_t num = taosArrayGetSize(pExprList);
|
||||
if (num == 0) {
|
||||
|
@ -2437,6 +2459,11 @@ STableMetaInfo* tscAddTableMetaInfo(SQueryInfo* pQueryInfo, SName* name, STableM
|
|||
}
|
||||
|
||||
pTableMetaInfo->pTableMeta = pTableMeta;
|
||||
if (pTableMetaInfo->pTableMeta == NULL) {
|
||||
pTableMetaInfo->tableMetaSize = 0;
|
||||
} else {
|
||||
pTableMetaInfo->tableMetaSize = tscGetTableMetaSize(pTableMeta);
|
||||
}
|
||||
|
||||
if (vgroupList != NULL) {
|
||||
pTableMetaInfo->vgroupList = tscVgroupInfoClone(vgroupList);
|
||||
|
@ -2712,6 +2739,7 @@ SSqlObj* createSubqueryObj(SSqlObj* pSql, int16_t tableIndex, __async_cb_func_t
|
|||
|
||||
pFinalInfo = tscAddTableMetaInfo(pNewQueryInfo, &pTableMetaInfo->name, pTableMeta, pTableMetaInfo->vgroupList,
|
||||
pTableMetaInfo->tagColList, pTableMetaInfo->pVgroupTables);
|
||||
|
||||
} else { // transfer the ownership of pTableMeta to the newly create sql object.
|
||||
STableMetaInfo* pPrevInfo = tscGetTableMetaInfoFromCmd(&pPrevSql->cmd, pPrevSql->cmd.clauseIndex, 0);
|
||||
if (pPrevInfo->pTableMeta && pPrevInfo->pTableMeta->tableType < 0) {
|
||||
|
@ -3106,7 +3134,13 @@ void tscTryQueryNextClause(SSqlObj* pSql, __async_cb_func_t fp) {
|
|||
|
||||
//backup the total number of result first
|
||||
int64_t num = pRes->numOfTotal + pRes->numOfClauseTotal;
|
||||
|
||||
|
||||
// DON't free final since it may be recoreded and used later in APP
|
||||
TAOS_FIELD* finalBk = pRes->final;
|
||||
pRes->final = NULL;
|
||||
tscFreeSqlResult(pSql);
|
||||
pRes->final = finalBk;
|
||||
|
||||
pRes->numOfTotal = num;
|
||||
|
||||
|
@ -3339,11 +3373,11 @@ CChildTableMeta* tscCreateChildMeta(STableMeta* pTableMeta) {
|
|||
return cMeta;
|
||||
}
|
||||
|
||||
int32_t tscCreateTableMetaFromCChildMeta(STableMeta* pChild, const char* name) {
|
||||
assert(pChild != NULL);
|
||||
int32_t tscCreateTableMetaFromCChildMeta(STableMeta* pChild, const char* name, void* buf) {
|
||||
assert(pChild != NULL && buf != NULL);
|
||||
|
||||
uint32_t size = tscGetTableMetaMaxSize();
|
||||
STableMeta* p = calloc(1, size);
|
||||
// uint32_t size = tscGetTableMetaMaxSize();
|
||||
STableMeta* p = buf;//calloc(1, size);
|
||||
|
||||
taosHashGetClone(tscTableMetaInfo, pChild->sTableName, strnlen(pChild->sTableName, TSDB_TABLE_FNAME_LEN), NULL, p, -1);
|
||||
if (p->id.uid > 0) { // tableMeta exists, build child table meta and return
|
||||
|
@ -3355,12 +3389,12 @@ int32_t tscCreateTableMetaFromCChildMeta(STableMeta* pChild, const char* name) {
|
|||
|
||||
memcpy(pChild->schema, p->schema, sizeof(SSchema) *total);
|
||||
|
||||
tfree(p);
|
||||
// tfree(p);
|
||||
return TSDB_CODE_SUCCESS;
|
||||
} else { // super table has been removed, current tableMeta is also expired. remove it here
|
||||
taosHashRemove(tscTableMetaInfo, name, strnlen(name, TSDB_TABLE_FNAME_LEN));
|
||||
|
||||
tfree(p);
|
||||
// tfree(p);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -104,7 +104,7 @@ public class TSDBDriver extends AbstractDriver {
|
|||
|
||||
static {
|
||||
try {
|
||||
java.sql.DriverManager.registerDriver(new TSDBDriver());
|
||||
DriverManager.registerDriver(new TSDBDriver());
|
||||
} catch (SQLException e) {
|
||||
throw TSDBError.createRuntimeException(TSDBErrorNumbers.ERROR_CANNOT_REGISTER_JNI_DRIVER, e);
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ public class RestfulDriver extends AbstractDriver {
|
|||
|
||||
static {
|
||||
try {
|
||||
java.sql.DriverManager.registerDriver(new RestfulDriver());
|
||||
DriverManager.registerDriver(new RestfulDriver());
|
||||
} catch (SQLException e) {
|
||||
throw TSDBError.createRuntimeException(TSDBErrorNumbers.ERROR_URL_NOT_SET, e);
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ public class Utils {
|
|||
findPlaceholderPosition(preparedSql, placeholderPositions);
|
||||
findClauseRangeSet(preparedSql, clause, clauseRangeSet);
|
||||
|
||||
return transformSql(preparedSql, parameters, placeholderPositions, clauseRangeSet);
|
||||
return transformSql(rawSql, parameters, placeholderPositions, clauseRangeSet);
|
||||
}
|
||||
|
||||
private static void findClauseRangeSet(String preparedSql, String[] regexArr, RangeSet<Integer> clauseRangeSet) {
|
||||
|
@ -95,14 +95,15 @@ public class Utils {
|
|||
|
||||
/***
|
||||
*
|
||||
* @param preparedSql
|
||||
* @param rawSql
|
||||
* @param paramArr
|
||||
* @param placeholderPosition
|
||||
* @param clauseRangeSet
|
||||
* @return
|
||||
*/
|
||||
private static String transformSql(String preparedSql, Object[] paramArr, Map<Integer, Integer> placeholderPosition, RangeSet<Integer> clauseRangeSet) {
|
||||
String[] sqlArr = preparedSql.split("\\?");
|
||||
private static String transformSql(String rawSql, Object[] paramArr, Map<Integer, Integer> placeholderPosition, RangeSet<Integer> clauseRangeSet) {
|
||||
String[] sqlArr = rawSql.split("\\?");
|
||||
|
||||
return IntStream.range(0, sqlArr.length).mapToObj(index -> {
|
||||
if (index == paramArr.length)
|
||||
return sqlArr[index];
|
||||
|
|
|
@ -12,6 +12,7 @@ import java.util.Properties;
|
|||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class SubscribeTest {
|
||||
|
||||
Connection connection;
|
||||
Statement statement;
|
||||
String dbName = "test";
|
||||
|
@ -19,62 +20,53 @@ public class SubscribeTest {
|
|||
String host = "127.0.0.1";
|
||||
String topic = "test";
|
||||
|
||||
@Before
|
||||
public void createDatabase() {
|
||||
try {
|
||||
Class.forName("com.taosdata.jdbc.TSDBDriver");
|
||||
Properties properties = new Properties();
|
||||
properties.setProperty(TSDBDriver.PROPERTY_KEY_CHARSET, "UTF-8");
|
||||
properties.setProperty(TSDBDriver.PROPERTY_KEY_LOCALE, "en_US.UTF-8");
|
||||
properties.setProperty(TSDBDriver.PROPERTY_KEY_TIME_ZONE, "UTC-8");
|
||||
connection = DriverManager.getConnection("jdbc:TAOS://" + host + ":0/", properties);
|
||||
|
||||
statement = connection.createStatement();
|
||||
statement.execute("drop database if exists " + dbName);
|
||||
statement.execute("create database if not exists " + dbName);
|
||||
statement.execute("create table if not exists " + dbName + "." + tName + " (ts timestamp, k int, v int)");
|
||||
long ts = System.currentTimeMillis();
|
||||
for (int i = 0; i < 2; i++) {
|
||||
ts += i;
|
||||
String sql = "insert into " + dbName + "." + tName + " values (" + ts + ", " + (100 + i) + ", " + i + ")";
|
||||
statement.executeUpdate(sql);
|
||||
}
|
||||
|
||||
} catch (ClassNotFoundException | SQLException e) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void subscribe() {
|
||||
try {
|
||||
String rawSql = "select * from " + dbName + "." + tName + ";";
|
||||
System.out.println(rawSql);
|
||||
// TSDBSubscribe subscribe = ((TSDBConnection) connection).subscribe(topic, rawSql, false);
|
||||
TSDBConnection conn = connection.unwrap(TSDBConnection.class);
|
||||
TSDBSubscribe subscribe = conn.subscribe(topic, rawSql, false);
|
||||
|
||||
// int a = 0;
|
||||
// while (true) {
|
||||
// TimeUnit.MILLISECONDS.sleep(1000);
|
||||
// TSDBResultSet resSet = subscribe.consume();
|
||||
// while (resSet.next()) {
|
||||
// for (int i = 1; i <= resSet.getMetaData().getColumnCount(); i++) {
|
||||
// System.out.printf(i + ": " + resSet.getString(i) + "\t");
|
||||
// }
|
||||
// System.out.println("\n======" + a + "==========");
|
||||
// }
|
||||
// a++;
|
||||
// if (a >= 2) {
|
||||
// break;
|
||||
// }
|
||||
// resSet.close();
|
||||
// }
|
||||
//
|
||||
// subscribe.close(true);
|
||||
int a = 0;
|
||||
while (true) {
|
||||
TimeUnit.MILLISECONDS.sleep(1000);
|
||||
TSDBResultSet resSet = subscribe.consume();
|
||||
while (resSet.next()) {
|
||||
for (int i = 1; i <= resSet.getMetaData().getColumnCount(); i++) {
|
||||
System.out.printf(i + ": " + resSet.getString(i) + "\t");
|
||||
}
|
||||
System.out.println("\n======" + a + "==========");
|
||||
}
|
||||
a++;
|
||||
if (a >= 2) {
|
||||
break;
|
||||
}
|
||||
resSet.close();
|
||||
}
|
||||
|
||||
subscribe.close(true);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Before
|
||||
public void createDatabase() throws SQLException {
|
||||
Properties properties = new Properties();
|
||||
properties.setProperty(TSDBDriver.PROPERTY_KEY_CHARSET, "UTF-8");
|
||||
properties.setProperty(TSDBDriver.PROPERTY_KEY_LOCALE, "en_US.UTF-8");
|
||||
properties.setProperty(TSDBDriver.PROPERTY_KEY_TIME_ZONE, "UTC-8");
|
||||
connection = DriverManager.getConnection("jdbc:TAOS://" + host + ":0/", properties);
|
||||
|
||||
statement = connection.createStatement();
|
||||
statement.execute("drop database if exists " + dbName);
|
||||
statement.execute("create database if not exists " + dbName);
|
||||
statement.execute("create table if not exists " + dbName + "." + tName + " (ts timestamp, k int, v int)");
|
||||
long ts = System.currentTimeMillis();
|
||||
statement.executeUpdate("insert into " + dbName + "." + tName + " values (" + ts + ", 100, 1)");
|
||||
statement.executeUpdate("insert into " + dbName + "." + tName + " values (" + (ts + 1) + ", 101, 2)");
|
||||
}
|
||||
|
||||
@After
|
||||
public void close() {
|
||||
try {
|
||||
|
@ -86,6 +78,5 @@ public class SubscribeTest {
|
|||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -345,6 +345,32 @@ public class InsertSpecialCharacterJniTest {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testCase12() throws SQLException {
|
||||
final long now = System.currentTimeMillis();
|
||||
// insert
|
||||
final String sql = "insert into " + tbname1 + "(ts, f1, f2) values(?, 'HelloTDengine', ?) ; ";
|
||||
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
|
||||
pstmt.setTimestamp(1, new Timestamp(now));
|
||||
pstmt.setString(2, special_character_str_4);
|
||||
int ret = pstmt.executeUpdate();
|
||||
Assert.assertEquals(1, ret);
|
||||
}
|
||||
// query
|
||||
final String query = "select * from " + tbname1;
|
||||
try (Statement stmt = conn.createStatement()) {
|
||||
ResultSet rs = stmt.executeQuery(query);
|
||||
rs.next();
|
||||
long timestamp = rs.getTimestamp(1).getTime();
|
||||
Assert.assertEquals(now, timestamp);
|
||||
String f1 = new String(rs.getBytes(2));
|
||||
Assert.assertEquals("HelloTDengine", f1);
|
||||
String f2 = rs.getString(3);
|
||||
Assert.assertEquals(special_character_str_4, f2);
|
||||
}
|
||||
}
|
||||
|
||||
@Before
|
||||
public void before() throws SQLException {
|
||||
try (Statement stmt = conn.createStatement()) {
|
||||
|
|
|
@ -346,6 +346,31 @@ public class InsertSpecialCharacterRestfulTest {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCase12() throws SQLException {
|
||||
final long now = System.currentTimeMillis();
|
||||
// insert
|
||||
final String sql = "insert into " + tbname1 + "(ts, f1, f2) values(?, 'HelloTDengine', ?) ; ";
|
||||
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
|
||||
pstmt.setTimestamp(1, new Timestamp(now));
|
||||
pstmt.setString(2, special_character_str_4);
|
||||
int ret = pstmt.executeUpdate();
|
||||
Assert.assertEquals(1, ret);
|
||||
}
|
||||
// query
|
||||
final String query = "select * from " + tbname1;
|
||||
try (Statement stmt = conn.createStatement()) {
|
||||
ResultSet rs = stmt.executeQuery(query);
|
||||
rs.next();
|
||||
long timestamp = rs.getTimestamp(1).getTime();
|
||||
Assert.assertEquals(now, timestamp);
|
||||
String f1 = new String(rs.getBytes(2));
|
||||
Assert.assertEquals("HelloTDengine", f1);
|
||||
String f2 = rs.getString(3);
|
||||
Assert.assertEquals(special_character_str_4, f2);
|
||||
}
|
||||
}
|
||||
|
||||
@Before
|
||||
public void before() throws SQLException {
|
||||
try (Statement stmt = conn.createStatement()) {
|
||||
|
|
|
@ -218,6 +218,7 @@ int32_t* taosGetErrno();
|
|||
#define TSDB_CODE_VND_NOT_SYNCED TAOS_DEF_ERROR_CODE(0, 0x0511) //"Database suspended")
|
||||
#define TSDB_CODE_VND_NO_WRITE_AUTH TAOS_DEF_ERROR_CODE(0, 0x0512) //"Database write operation denied")
|
||||
#define TSDB_CODE_VND_IS_SYNCING TAOS_DEF_ERROR_CODE(0, 0x0513) //"Database is syncing")
|
||||
#define TSDB_CODE_VND_INVALID_TSDB_STATE TAOS_DEF_ERROR_CODE(0, 0x0514) //"Invalid tsdb state")
|
||||
|
||||
// tsdb
|
||||
#define TSDB_CODE_TDB_INVALID_TABLE_ID TAOS_DEF_ERROR_CODE(0, 0x0600) //"Invalid table ID")
|
||||
|
|
|
@ -768,48 +768,49 @@ static void parse_args(int argc, char *argv[], SArguments *arguments) {
|
|||
}
|
||||
arguments->sqlFile = argv[++i];
|
||||
} else if (strcmp(argv[i], "-q") == 0) {
|
||||
if ((argc == i+1) ||
|
||||
(!isStringNumber(argv[i+1]))) {
|
||||
if ((argc == i+1)
|
||||
|| (!isStringNumber(argv[i+1]))) {
|
||||
printHelp();
|
||||
errorPrint("%s", "\n\t-q need a number following!\nQuery mode -- 0: SYNC, 1: ASYNC. Default is SYNC.\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
arguments->async_mode = atoi(argv[++i]);
|
||||
} else if (strcmp(argv[i], "-T") == 0) {
|
||||
if ((argc == i+1) ||
|
||||
(!isStringNumber(argv[i+1]))) {
|
||||
if ((argc == i+1)
|
||||
|| (!isStringNumber(argv[i+1]))) {
|
||||
printHelp();
|
||||
errorPrint("%s", "\n\t-T need a number following!\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
arguments->num_of_threads = atoi(argv[++i]);
|
||||
} else if (strcmp(argv[i], "-i") == 0) {
|
||||
if ((argc == i+1) ||
|
||||
(!isStringNumber(argv[i+1]))) {
|
||||
if ((argc == i+1)
|
||||
|| (!isStringNumber(argv[i+1]))) {
|
||||
printHelp();
|
||||
errorPrint("%s", "\n\t-i need a number following!\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
arguments->insert_interval = atoi(argv[++i]);
|
||||
} else if (strcmp(argv[i], "-qt") == 0) {
|
||||
if ((argc == i+1) ||
|
||||
(!isStringNumber(argv[i+1]))) {
|
||||
if ((argc == i+1)
|
||||
|| (!isStringNumber(argv[i+1]))
|
||||
|| (atoi(argv[i+1]) <= 0)) {
|
||||
printHelp();
|
||||
errorPrint("%s", "\n\t-qt need a number following!\n");
|
||||
errorPrint("%s", "\n\t-qt need a valid (>0) number following!\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
arguments->query_times = atoi(argv[++i]);
|
||||
} else if (strcmp(argv[i], "-B") == 0) {
|
||||
if ((argc == i+1) ||
|
||||
(!isStringNumber(argv[i+1]))) {
|
||||
if ((argc == i+1)
|
||||
|| (!isStringNumber(argv[i+1]))) {
|
||||
printHelp();
|
||||
errorPrint("%s", "\n\t-B need a number following!\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
arguments->interlace_rows = atoi(argv[++i]);
|
||||
} else if (strcmp(argv[i], "-r") == 0) {
|
||||
if ((argc == i+1) ||
|
||||
(!isStringNumber(argv[i+1]))) {
|
||||
if ((argc == i+1)
|
||||
|| (!isStringNumber(argv[i+1]))) {
|
||||
printHelp();
|
||||
errorPrint("%s", "\n\t-r need a number following!\n");
|
||||
exit(EXIT_FAILURE);
|
||||
|
@ -1069,7 +1070,7 @@ static int queryDbExec(TAOS *taos, char *command, QUERY_TYPE type, bool quiet) {
|
|||
if (code != 0) {
|
||||
if (!quiet) {
|
||||
debugPrint("%s() LN%d - command: %s\n", __func__, __LINE__, command);
|
||||
errorPrint("Failed to run %s, reason: %s\n", command, taos_errstr(res));
|
||||
errorPrint("Failed to execute %s, reason: %s\n", command, taos_errstr(res));
|
||||
}
|
||||
taos_free_result(res);
|
||||
//taos_close(taos);
|
||||
|
@ -4062,9 +4063,9 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
|
|||
|
||||
cJSON* gQueryTimes = cJSON_GetObjectItem(root, "query_times");
|
||||
if (gQueryTimes && gQueryTimes->type == cJSON_Number) {
|
||||
if (gQueryTimes->valueint < 0) {
|
||||
errorPrint("%s() LN%d, failed to read json, query_times input mistake\n",
|
||||
__func__, __LINE__);
|
||||
if (gQueryTimes->valueint <= 0) {
|
||||
errorPrint("%s() LN%d, failed to read json, query_times: %"PRId64", need be a valid (>0) number\n",
|
||||
__func__, __LINE__, gQueryTimes->valueint);
|
||||
goto PARSE_OVER;
|
||||
}
|
||||
g_args.query_times = gQueryTimes->valueint;
|
||||
|
@ -4113,9 +4114,9 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
|
|||
cJSON* specifiedQueryTimes = cJSON_GetObjectItem(specifiedQuery,
|
||||
"query_times");
|
||||
if (specifiedQueryTimes && specifiedQueryTimes->type == cJSON_Number) {
|
||||
if (specifiedQueryTimes->valueint < 0) {
|
||||
errorPrint("%s() LN%d, failed to read json, query_times input mistake\n",
|
||||
__func__, __LINE__);
|
||||
if (specifiedQueryTimes->valueint <= 0) {
|
||||
errorPrint("%s() LN%d, failed to read json, query_times: %"PRId64", need be a valid (>0) number\n",
|
||||
__func__, __LINE__, specifiedQueryTimes->valueint);
|
||||
goto PARSE_OVER;
|
||||
|
||||
}
|
||||
|
@ -4257,9 +4258,9 @@ static bool getMetaFromQueryJsonFile(cJSON* root) {
|
|||
|
||||
cJSON* superQueryTimes = cJSON_GetObjectItem(superQuery, "query_times");
|
||||
if (superQueryTimes && superQueryTimes->type == cJSON_Number) {
|
||||
if (superQueryTimes->valueint < 0) {
|
||||
errorPrint("%s() LN%d, failed to read json, query_times input mistake\n",
|
||||
__func__, __LINE__);
|
||||
if (superQueryTimes->valueint <= 0) {
|
||||
errorPrint("%s() LN%d, failed to read json, query_times: %"PRId64", need be a valid (>0) number\n",
|
||||
__func__, __LINE__, superQueryTimes->valueint);
|
||||
goto PARSE_OVER;
|
||||
}
|
||||
g_queryInfo.superQueryInfo.queryTimes = superQueryTimes->valueint;
|
||||
|
@ -5223,6 +5224,13 @@ static void* syncWriteInterlace(threadInfo *pThreadInfo) {
|
|||
|
||||
startTs = taosGetTimestampMs();
|
||||
|
||||
if (recOfBatch == 0) {
|
||||
errorPrint("[%d] %s() LN%d try inserting records of batch is %"PRIu64"\n",
|
||||
pThreadInfo->threadID, __func__, __LINE__,
|
||||
recOfBatch);
|
||||
errorPrint("%s\n", "\tPlease check if the batch or the buffer length is proper value!\n");
|
||||
goto free_of_interlace;
|
||||
}
|
||||
int64_t affectedRows = execInsert(pThreadInfo, buffer, recOfBatch);
|
||||
|
||||
endTs = taosGetTimestampMs();
|
||||
|
|
|
@ -227,6 +227,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_VND_IS_BALANCING, "Database is balancing
|
|||
TAOS_DEFINE_ERROR(TSDB_CODE_VND_NOT_SYNCED, "Database suspended")
|
||||
TAOS_DEFINE_ERROR(TSDB_CODE_VND_NO_WRITE_AUTH, "Database write operation denied")
|
||||
TAOS_DEFINE_ERROR(TSDB_CODE_VND_IS_SYNCING, "Database is syncing")
|
||||
TAOS_DEFINE_ERROR(TSDB_CODE_VND_INVALID_TSDB_STATE, "Invalid tsdb state")
|
||||
|
||||
// tsdb
|
||||
TAOS_DEFINE_ERROR(TSDB_CODE_TDB_INVALID_TABLE_ID, "Invalid table ID")
|
||||
|
@ -250,6 +251,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_TDB_TABLE_RECONFIGURE, "Need to reconfigure t
|
|||
TAOS_DEFINE_ERROR(TSDB_CODE_TDB_IVD_CREATE_TABLE_INFO, "Invalid information to create table")
|
||||
TAOS_DEFINE_ERROR(TSDB_CODE_TDB_NO_AVAIL_DISK, "No available disk")
|
||||
TAOS_DEFINE_ERROR(TSDB_CODE_TDB_MESSED_MSG, "TSDB messed message")
|
||||
TAOS_DEFINE_ERROR(TSDB_CODE_TDB_IVLD_TAG_VAL, "TSDB invalid tag value")
|
||||
|
||||
// query
|
||||
TAOS_DEFINE_ERROR(TSDB_CODE_QRY_INVALID_QHANDLE, "Invalid handle")
|
||||
|
|
|
@ -329,11 +329,11 @@ int32_t vnodeOpen(int32_t vgId) {
|
|||
vnodeCleanUp(pVnode);
|
||||
return terrno;
|
||||
} else if (tsdbGetState(pVnode->tsdb) != TSDB_STATE_OK) {
|
||||
vError("vgId:%d, failed to open tsdb, replica:%d reason:%s", pVnode->vgId, pVnode->syncCfg.replica,
|
||||
tstrerror(terrno));
|
||||
vError("vgId:%d, failed to open tsdb(state: %d), replica:%d reason:%s", pVnode->vgId,
|
||||
tsdbGetState(pVnode->tsdb), pVnode->syncCfg.replica, tstrerror(terrno));
|
||||
if (pVnode->syncCfg.replica <= 1) {
|
||||
vnodeCleanUp(pVnode);
|
||||
return terrno;
|
||||
return TSDB_CODE_VND_INVALID_TSDB_STATE;
|
||||
} else {
|
||||
pVnode->fversion = 0;
|
||||
pVnode->version = 0;
|
||||
|
|
|
@ -119,7 +119,6 @@ void vnodeConfirmForard(int32_t vgId, void *wparam, int32_t code) {
|
|||
void *pVnode = vnodeAcquire(vgId);
|
||||
if (pVnode == NULL) {
|
||||
vError("vgId:%d, vnode not found while confirm forward", vgId);
|
||||
return;
|
||||
}
|
||||
|
||||
dnodeSendRpcVWriteRsp(pVnode, wparam, code);
|
||||
|
@ -162,4 +161,4 @@ int32_t vnodeGetVersion(int32_t vgId, uint64_t *fver, uint64_t *wver) {
|
|||
void vnodeConfirmForward(void *vparam, uint64_t version, int32_t code, bool force) {
|
||||
SVnodeObj *pVnode = vparam;
|
||||
syncConfirmForward(pVnode->sync, version, code, force);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -317,12 +317,13 @@ int32_t vnodeWriteToWQueue(void *vparam, void *wparam, int32_t qtype, void *rpar
|
|||
|
||||
void vnodeFreeFromWQueue(void *vparam, SVWriteMsg *pWrite) {
|
||||
SVnodeObj *pVnode = vparam;
|
||||
if (pVnode) {
|
||||
int32_t queued = atomic_sub_fetch_32(&pVnode->queuedWMsg, 1);
|
||||
int64_t queuedSize = atomic_sub_fetch_64(&pVnode->queuedWMsgSize, pWrite->pHead.len);
|
||||
|
||||
int32_t queued = atomic_sub_fetch_32(&pVnode->queuedWMsg, 1);
|
||||
int64_t queuedSize = atomic_sub_fetch_64(&pVnode->queuedWMsgSize, pWrite->pHead.len);
|
||||
|
||||
vTrace("vgId:%d, msg:%p, app:%p, free from vwqueue, queued:%d size:%" PRId64, pVnode->vgId, pWrite,
|
||||
pWrite->rpcMsg.ahandle, queued, queuedSize);
|
||||
vTrace("vgId:%d, msg:%p, app:%p, free from vwqueue, queued:%d size:%" PRId64, pVnode->vgId, pWrite,
|
||||
pWrite->rpcMsg.ahandle, queued, queuedSize);
|
||||
}
|
||||
|
||||
taosFreeQitem(pWrite);
|
||||
vnodeRelease(pVnode);
|
||||
|
@ -371,8 +372,8 @@ static int32_t vnodePerformFlowCtrl(SVWriteMsg *pWrite) {
|
|||
taosMsleep(ms);
|
||||
return 0;
|
||||
} else {
|
||||
void *unUsed = NULL;
|
||||
taosTmrReset(vnodeFlowCtrlMsgToWQueue, 100, pWrite, tsDnodeTmr, &unUsed);
|
||||
void *unUsedTimerId = NULL;
|
||||
taosTmrReset(vnodeFlowCtrlMsgToWQueue, 100, pWrite, tsDnodeTmr, &unUsedTimerId);
|
||||
|
||||
vTrace("vgId:%d, msg:%p, app:%p, perform flowctrl, retry:%d", pVnode->vgId, pWrite, pWrite->rpcMsg.ahandle,
|
||||
pWrite->processedCount);
|
||||
|
|
|
@ -1,119 +0,0 @@
|
|||
###################################################################
|
||||
# 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 os
|
||||
import taos
|
||||
import random
|
||||
import argparse
|
||||
|
||||
class BuildDockerCluser:
|
||||
|
||||
def __init__(self, hostName, user, password, configDir, numOfNodes, clusterVersion, dockerDir, removeFlag):
|
||||
self.hostName = hostName
|
||||
self.user = user
|
||||
self.password = password
|
||||
self.configDir = configDir
|
||||
self.numOfNodes = numOfNodes
|
||||
self.clusterVersion = clusterVersion
|
||||
self.dockerDir = dockerDir
|
||||
self.removeFlag = removeFlag
|
||||
|
||||
def getConnection(self):
|
||||
self.conn = taos.connect(
|
||||
host = self.hostName,
|
||||
user = self.user,
|
||||
password = self.password,
|
||||
config = self.configDir)
|
||||
|
||||
def createDondes(self):
|
||||
self.cursor = self.conn.cursor()
|
||||
for i in range(2, self.numOfNodes + 1):
|
||||
self.cursor.execute("create dnode tdnode%d" % i)
|
||||
|
||||
def startArbitrator(self):
|
||||
print("start arbitrator")
|
||||
os.system("docker exec -d $(docker ps|grep tdnode1|awk '{print $1}') tarbitrator")
|
||||
|
||||
def run(self):
|
||||
if self.numOfNodes < 2 or self.numOfNodes > 10:
|
||||
print("the number of nodes must be between 2 and 10")
|
||||
exit(0)
|
||||
print("remove Flag value %s" % self.removeFlag)
|
||||
if self.removeFlag == False:
|
||||
os.system("./cleanClusterEnv.sh -d %s" % self.dockerDir)
|
||||
os.system("./buildClusterEnv.sh -n %d -v %s -d %s" % (self.numOfNodes, self.clusterVersion, self.dockerDir))
|
||||
self.getConnection()
|
||||
self.createDondes()
|
||||
self.startArbitrator()
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument(
|
||||
'-H',
|
||||
'--host',
|
||||
action='store',
|
||||
default='tdnode1',
|
||||
type=str,
|
||||
help='host name to be connected (default: tdnode1)')
|
||||
parser.add_argument(
|
||||
'-u',
|
||||
'--user',
|
||||
action='store',
|
||||
default='root',
|
||||
type=str,
|
||||
help='user (default: root)')
|
||||
parser.add_argument(
|
||||
'-p',
|
||||
'--password',
|
||||
action='store',
|
||||
default='taosdata',
|
||||
type=str,
|
||||
help='password (default: taosdata)')
|
||||
parser.add_argument(
|
||||
'-c',
|
||||
'--config-dir',
|
||||
action='store',
|
||||
default='/etc/taos',
|
||||
type=str,
|
||||
help='configuration directory (default: /etc/taos)')
|
||||
parser.add_argument(
|
||||
'-n',
|
||||
'--num-of-nodes',
|
||||
action='store',
|
||||
default=2,
|
||||
type=int,
|
||||
help='number of nodes in the cluster (default: 2, min: 2, max: 5)')
|
||||
parser.add_argument(
|
||||
'-v',
|
||||
'--version',
|
||||
action='store',
|
||||
default='2.0.18.1',
|
||||
type=str,
|
||||
help='the version of the cluster to be build, Default is 2.0.17.1')
|
||||
parser.add_argument(
|
||||
'-d',
|
||||
'--docker-dir',
|
||||
action='store',
|
||||
default='/data',
|
||||
type=str,
|
||||
help='the data dir for docker, default is /data')
|
||||
parser.add_argument(
|
||||
'--flag',
|
||||
action='store_true',
|
||||
help='remove docker containers flag, default: True')
|
||||
|
||||
args = parser.parse_args()
|
||||
cluster = BuildDockerCluser(args.host, args.user, args.password, args.config_dir, args.num_of_nodes, args.version, args.docker_dir, args.flag)
|
||||
cluster.run()
|
||||
|
||||
# usage 1: python3 basic.py -n 2 --flag (flag is True)
|
||||
# usage 2: python3 basic.py -n 2 (flag should be False when it is not specified)
|
|
@ -1,39 +0,0 @@
|
|||
#!/bin/bash
|
||||
echo "Executing cleanClusterEnv.sh"
|
||||
CURR_DIR=`pwd`
|
||||
|
||||
if [ $# != 2 ]; then
|
||||
echo "argument list need input : "
|
||||
echo " -d docker dir"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DOCKER_DIR=
|
||||
while getopts "d:" arg
|
||||
do
|
||||
case $arg in
|
||||
d)
|
||||
DOCKER_DIR=$OPTARG
|
||||
;;
|
||||
?)
|
||||
echo "unkonwn argument"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
function removeDockerContainers {
|
||||
cd $DOCKER_DIR
|
||||
docker-compose down --remove-orphans
|
||||
}
|
||||
|
||||
function cleanEnv {
|
||||
echo "Clean up docker environment"
|
||||
for i in {1..10}
|
||||
do
|
||||
rm -rf $DOCKER_DIR/node$i/data/*
|
||||
rm -rf $DOCKER_DIR/node$i/log/*
|
||||
done
|
||||
}
|
||||
|
||||
removeDockerContainers
|
||||
cleanEnv
|
|
@ -1,62 +0,0 @@
|
|||
version: '3.7'
|
||||
|
||||
services:
|
||||
td2.0-node4:
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
- PACKAGE=${PACKAGE}
|
||||
- TARBITRATORPKG=${TARBITRATORPKG}
|
||||
- EXTRACTDIR=${DIR}
|
||||
- EXTRACTDIR2=${DIR2}
|
||||
- DATADIR=${DATADIR}
|
||||
image: 'tdengine:${VERSION}'
|
||||
container_name: 'tdnode4'
|
||||
cap_add:
|
||||
- ALL
|
||||
stdin_open: true
|
||||
tty: true
|
||||
environment:
|
||||
TZ: "Asia/Shanghai"
|
||||
command: >
|
||||
sh -c "ln -snf /usr/share/zoneinfo/$TZ /etc/localtime &&
|
||||
echo $TZ > /etc/timezone &&
|
||||
mkdir /coredump &&
|
||||
echo 'kernel.core_pattern=/coredump/core_%e_%p' >> /etc/sysctl.conf &&
|
||||
sysctl -p &&
|
||||
exec my-main-application"
|
||||
extra_hosts:
|
||||
- "tdnode2:172.27.0.8"
|
||||
- "tdnode3:172.27.0.9"
|
||||
- "tdnode4:172.27.0.10"
|
||||
- "tdnode5:172.27.0.11"
|
||||
- "tdnode6:172.27.0.12"
|
||||
- "tdnode7:172.27.0.13"
|
||||
- "tdnode8:172.27.0.14"
|
||||
- "tdnode9:172.27.0.15"
|
||||
- "tdnode10:172.27.0.16"
|
||||
volumes:
|
||||
# bind data directory
|
||||
- type: bind
|
||||
source: ${DATADIR}/node4/data
|
||||
target: /var/lib/taos
|
||||
# bind log directory
|
||||
- type: bind
|
||||
source: ${DATADIR}/node4/log
|
||||
target: /var/log/taos
|
||||
# bind configuration
|
||||
- type: bind
|
||||
source: ${DATADIR}/node4/cfg
|
||||
target: /etc/taos
|
||||
# bind core dump path
|
||||
- type: bind
|
||||
source: ${DATADIR}/node4/core
|
||||
target: /coredump
|
||||
- type: bind
|
||||
source: ${DATADIR}
|
||||
target: /root
|
||||
hostname: tdnode4
|
||||
networks:
|
||||
taos_update_net:
|
||||
ipv4_address: 172.27.0.10
|
||||
command: taosd
|
|
@ -1,62 +0,0 @@
|
|||
version: '3.7'
|
||||
|
||||
services:
|
||||
td2.0-node5:
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
- PACKAGE=${PACKAGE}
|
||||
- TARBITRATORPKG=${TARBITRATORPKG}
|
||||
- EXTRACTDIR=${DIR}
|
||||
- EXTRACTDIR2=${DIR2}
|
||||
- DATADIR=${DATADIR}
|
||||
image: 'tdengine:${VERSION}'
|
||||
container_name: 'tdnode5'
|
||||
cap_add:
|
||||
- ALL
|
||||
stdin_open: true
|
||||
tty: true
|
||||
environment:
|
||||
TZ: "Asia/Shanghai"
|
||||
command: >
|
||||
sh -c "ln -snf /usr/share/zoneinfo/$TZ /etc/localtime &&
|
||||
echo $TZ > /etc/timezone &&
|
||||
mkdir /coredump &&
|
||||
echo 'kernel.core_pattern=/coredump/core_%e_%p' >> /etc/sysctl.conf &&
|
||||
sysctl -p &&
|
||||
exec my-main-application"
|
||||
extra_hosts:
|
||||
- "tdnode2:172.27.0.8"
|
||||
- "tdnode3:172.27.0.9"
|
||||
- "tdnode4:172.27.0.10"
|
||||
- "tdnode5:172.27.0.11"
|
||||
- "tdnode6:172.27.0.12"
|
||||
- "tdnode7:172.27.0.13"
|
||||
- "tdnode8:172.27.0.14"
|
||||
- "tdnode9:172.27.0.15"
|
||||
- "tdnode10:172.27.0.16"
|
||||
volumes:
|
||||
# bind data directory
|
||||
- type: bind
|
||||
source: ${DATADIR}/node5/data
|
||||
target: /var/lib/taos
|
||||
# bind log directory
|
||||
- type: bind
|
||||
source: ${DATADIR}/node5/log
|
||||
target: /var/log/taos
|
||||
# bind configuration
|
||||
- type: bind
|
||||
source: ${DATADIR}/node5/cfg
|
||||
target: /etc/taos
|
||||
# bind core dump path
|
||||
- type: bind
|
||||
source: ${DATADIR}/node5/core
|
||||
target: /coredump
|
||||
- type: bind
|
||||
source: ${DATADIR}
|
||||
target: /root
|
||||
hostname: tdnode5
|
||||
networks:
|
||||
taos_update_net:
|
||||
ipv4_address: 172.27.0.11
|
||||
command: taosd
|
|
@ -0,0 +1,39 @@
|
|||
###################################################################
|
||||
# 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 -*-
|
||||
|
||||
from basic import *
|
||||
from util.sql import tdSql
|
||||
|
||||
|
||||
|
||||
class TDTestCase:
|
||||
|
||||
def init(self):
|
||||
# tdLog.debug("start to execute %s" % __file__)
|
||||
|
||||
self.numOfNodes = 5
|
||||
self.dockerDir = "/data"
|
||||
cluster.init(self.numOfNodes, self.dockerDir)
|
||||
cluster.prepardBuild()
|
||||
for i in range(self.numOfNodes):
|
||||
if i == 0:
|
||||
cluster.cfg("role", "1", i + 1)
|
||||
else:
|
||||
cluster.cfg("role", "2", i + 1)
|
||||
cluster.run()
|
||||
|
||||
td = TDTestCase()
|
||||
td.init()
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,152 @@
|
|||
###################################################################
|
||||
# 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 os
|
||||
import taos
|
||||
|
||||
class BuildDockerCluser:
|
||||
|
||||
def init(self, numOfNodes, dockerDir):
|
||||
self.numOfNodes = numOfNodes
|
||||
self.dockerDir = dockerDir
|
||||
|
||||
self.hostName = "tdnode1"
|
||||
self.user = "root"
|
||||
self.password = "taosdata"
|
||||
self.configDir = "/etc/taos"
|
||||
self.dirs = ["data", "cfg", "log", "core"]
|
||||
self.cfgDict = {
|
||||
"numOfLogLines":"100000000",
|
||||
"mnodeEqualVnodeNum":"0",
|
||||
"walLevel":"1",
|
||||
"numOfThreadsPerCore":"2.0",
|
||||
"monitor":"0",
|
||||
"vnodeBak":"1",
|
||||
"dDebugFlag":"135",
|
||||
"mDebugFlag":"135",
|
||||
"sdbDebugFlag":"135",
|
||||
"rpcDebugFlag":"135",
|
||||
"tmrDebugFlag":"131",
|
||||
"cDebugFlag":"135",
|
||||
"httpDebugFlag":"135",
|
||||
"monitorDebugFlag":"135",
|
||||
"udebugFlag":"135",
|
||||
"jnidebugFlag":"135",
|
||||
"qdebugFlag":"135",
|
||||
"maxSQLLength":"1048576"
|
||||
}
|
||||
|
||||
# execute command, and return the output
|
||||
# ref: https://blog.csdn.net/wowocpp/article/details/80775650
|
||||
def execCmdAndGetOutput(self, cmd):
|
||||
r = os.popen(cmd)
|
||||
text = r.read()
|
||||
r.close()
|
||||
return text
|
||||
|
||||
def execCmd(self, cmd):
|
||||
if os.system(cmd) != 0:
|
||||
quit()
|
||||
|
||||
def getTaosdVersion(self):
|
||||
cmd = "taosd -V |grep version|awk '{print $3}'"
|
||||
taosdVersion = self.execCmdAndGetOutput(cmd)
|
||||
cmd = "find %s -name '*server*.tar.gz' | awk -F- '{print $(NF-2)}'|sort|awk 'END {print}'" % self.dockerDir
|
||||
packageVersion = self.execCmdAndGetOutput(cmd)
|
||||
|
||||
if (taosdVersion is None or taosdVersion.isspace()) and (packageVersion is None or packageVersion.isspace()):
|
||||
print("Please install taosd or have a install package ready")
|
||||
quit()
|
||||
else:
|
||||
self.version = taosdVersion if taosdVersion >= packageVersion else packageVersion
|
||||
return self.version.strip()
|
||||
|
||||
def getConnection(self):
|
||||
self.conn = taos.connect(
|
||||
host = self.hostName,
|
||||
user = self.user,
|
||||
password = self.password,
|
||||
config = self.configDir)
|
||||
|
||||
def removeFile(self, rootDir, index, dir):
|
||||
cmd = "rm -rf %s/node%d/%s/*" % (rootDir, index, dir)
|
||||
self.execCmd(cmd)
|
||||
|
||||
def clearEnv(self):
|
||||
cmd = "cd %s && docker-compose down --remove-orphans" % self.dockerDir
|
||||
self.execCmd(cmd)
|
||||
for i in range(1, self.numOfNodes + 1):
|
||||
self.removeFile(self.dockerDir, i, self.dirs[0])
|
||||
self.removeFile(self.dockerDir, i, self.dirs[1])
|
||||
self.removeFile(self.dockerDir, i, self.dirs[2])
|
||||
|
||||
def createDir(self, rootDir, index, dir):
|
||||
cmd = "mkdir -p %s/node%d/%s" % (rootDir, index, dir)
|
||||
self.execCmd(cmd)
|
||||
|
||||
def createDirs(self):
|
||||
for i in range(1, self.numOfNodes + 1):
|
||||
for j in range(len(self.dirs)):
|
||||
self.createDir(self.dockerDir, i, self.dirs[j])
|
||||
|
||||
def addExtraCfg(self, option, value):
|
||||
self.cfgDict.update({option: value})
|
||||
|
||||
def cfg(self, option, value, nodeIndex):
|
||||
cfgPath = "%s/node%d/cfg/taos.cfg" % (self.dockerDir, nodeIndex)
|
||||
cmd = "echo '%s %s' >> %s" % (option, value, cfgPath)
|
||||
self.execCmd(cmd)
|
||||
|
||||
def updateLocalhosts(self):
|
||||
cmd = "grep '172.27.0.7 *tdnode1' /etc/hosts"
|
||||
result = self.execCmdAndGetOutput(cmd)
|
||||
if result and not result.isspace():
|
||||
cmd = "echo '172.27.0.7 tdnode1' >> /etc/hosts"
|
||||
self.execCmd(cmd)
|
||||
|
||||
def deploy(self):
|
||||
self.clearEnv()
|
||||
self.createDirs()
|
||||
for i in range(1, self.numOfNodes + 1):
|
||||
self.cfg("firstEp", "tdnode1:6030", i)
|
||||
|
||||
for key, value in self.cfgDict.items():
|
||||
self.cfg(key, value, i)
|
||||
|
||||
def createDondes(self):
|
||||
self.cursor = self.conn.cursor()
|
||||
for i in range(2, self.numOfNodes + 1):
|
||||
self.cursor.execute("create dnode tdnode%d" % i)
|
||||
|
||||
def startArbitrator(self):
|
||||
for i in range(1, self.numOfNodes + 1):
|
||||
self.cfg("arbitrator", "tdnode1:6042", i)
|
||||
cmd = "docker exec -d $(docker ps|grep tdnode1|awk '{print $1}') tarbitrator"
|
||||
self.execCmd(cmd)
|
||||
|
||||
def prepardBuild(self):
|
||||
if self.numOfNodes < 2 or self.numOfNodes > 10:
|
||||
print("the number of nodes must be between 2 and 10")
|
||||
exit(0)
|
||||
self.clearEnv()
|
||||
self.createDirs()
|
||||
self.updateLocalhosts()
|
||||
self.deploy()
|
||||
|
||||
def run(self):
|
||||
cmd = "./buildClusterEnv.sh -n %d -v %s -d %s" % (self.numOfNodes, self.getTaosdVersion(), self.dockerDir)
|
||||
self.execCmd(cmd)
|
||||
self.getConnection()
|
||||
self.createDondes()
|
||||
|
||||
cluster = BuildDockerCluser()
|
|
@ -32,43 +32,14 @@ do
|
|||
esac
|
||||
done
|
||||
|
||||
function addTaoscfg {
|
||||
for((i=1;i<=$NUM_OF_NODES;i++))
|
||||
do
|
||||
touch $DOCKER_DIR/node$i/cfg/taos.cfg
|
||||
echo 'firstEp tdnode1:6030' > $DOCKER_DIR/node$i/cfg/taos.cfg
|
||||
echo 'fqdn tdnode'$i >> $DOCKER_DIR/node$i/cfg/taos.cfg
|
||||
echo 'arbitrator tdnode1:6042' >> $DOCKER_DIR/node$i/cfg/taos.cfg
|
||||
done
|
||||
}
|
||||
|
||||
function createDIR {
|
||||
for((i=1;i<=$NUM_OF_NODES;i++))
|
||||
do
|
||||
mkdir -p $DOCKER_DIR/node$i/data
|
||||
mkdir -p $DOCKER_DIR/node$i/log
|
||||
mkdir -p $DOCKER_DIR/node$i/cfg
|
||||
mkdir -p $DOCKER_DIR/node$i/core
|
||||
done
|
||||
}
|
||||
|
||||
function cleanEnv {
|
||||
echo "Clean up docker environment"
|
||||
for((i=1;i<=$NUM_OF_NODES;i++))
|
||||
do
|
||||
rm -rf $DOCKER_DIR/node$i/data/*
|
||||
rm -rf $DOCKER_DIR/node$i/log/*
|
||||
done
|
||||
}
|
||||
|
||||
function prepareBuild {
|
||||
|
||||
if [ -d $CURR_DIR/../../../../release ]; then
|
||||
if [ -d $CURR_DIR/../../../release ]; then
|
||||
echo release exists
|
||||
rm -rf $CURR_DIR/../../../../release/*
|
||||
rm -rf $CURR_DIR/../../../release/*
|
||||
fi
|
||||
|
||||
cd $CURR_DIR/../../../../packaging
|
||||
cd $CURR_DIR/../../../packaging
|
||||
|
||||
if [[ "$CURR_DIR" == *"$IN_TDINTERNAL"* ]]; then
|
||||
if [ ! -e $DOCKER_DIR/TDengine-enterprise-server-$VERSION-Linux-x64.tar.gz ] || [ ! -e $DOCKER_DIR/TDengine-enterprise-arbitrator-$VERSION-Linux-x64.tar.gz ]; then
|
||||
|
@ -76,17 +47,17 @@ function prepareBuild {
|
|||
echo "generating TDeninge enterprise packages"
|
||||
./release.sh -v cluster -n $VERSION >> /dev/null 2>&1
|
||||
|
||||
if [ ! -e $CURR_DIR/../../../../release/TDengine-enterprise-server-$VERSION-Linux-x64.tar.gz ]; then
|
||||
if [ ! -e $CURR_DIR/../../../release/TDengine-enterprise-server-$VERSION-Linux-x64.tar.gz ]; then
|
||||
echo "no TDengine install package found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -e $CURR_DIR/../../../../release/TDengine-enterprise-arbitrator-$VERSION-Linux-x64.tar.gz ]; then
|
||||
if [ ! -e $CURR_DIR/../../../release/TDengine-enterprise-arbitrator-$VERSION-Linux-x64.tar.gz ]; then
|
||||
echo "no arbitrator install package found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd $CURR_DIR/../../../../release
|
||||
cd $CURR_DIR/../../../release
|
||||
mv TDengine-enterprise-server-$VERSION-Linux-x64.tar.gz $DOCKER_DIR
|
||||
mv TDengine-enterprise-arbitrator-$VERSION-Linux-x64.tar.gz $DOCKER_DIR
|
||||
fi
|
||||
|
@ -96,17 +67,17 @@ function prepareBuild {
|
|||
echo "generating TDeninge community packages"
|
||||
./release.sh -v edge -n $VERSION >> /dev/null 2>&1
|
||||
|
||||
if [ ! -e $CURR_DIR/../../../../release/TDengine-server-$VERSION-Linux-x64.tar.gz ]; then
|
||||
if [ ! -e $CURR_DIR/../../../release/TDengine-server-$VERSION-Linux-x64.tar.gz ]; then
|
||||
echo "no TDengine install package found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -e $CURR_DIR/../../../../release/TDengine-arbitrator-$VERSION-Linux-x64.tar.gz ]; then
|
||||
if [ ! -e $CURR_DIR/../../../release/TDengine-arbitrator-$VERSION-Linux-x64.tar.gz ]; then
|
||||
echo "no arbitrator install package found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd $CURR_DIR/../../../../release
|
||||
cd $CURR_DIR/../../../release
|
||||
mv TDengine-server-$VERSION-Linux-x64.tar.gz $DOCKER_DIR
|
||||
mv TDengine-arbitrator-$VERSION-Linux-x64.tar.gz $DOCKER_DIR
|
||||
fi
|
||||
|
@ -147,13 +118,10 @@ function clusterUp {
|
|||
done
|
||||
docker_run=$docker_run" up -d"
|
||||
fi
|
||||
echo $docker_run |sh
|
||||
echo $docker_run |sh
|
||||
|
||||
echo "docker compose finish"
|
||||
}
|
||||
|
||||
createDIR
|
||||
cleanEnv
|
||||
addTaoscfg
|
||||
prepareBuild
|
||||
clusterUp
|
|
@ -53,7 +53,7 @@ services:
|
|||
source: ${DATADIR}/node1/core
|
||||
target: /coredump
|
||||
- type: bind
|
||||
source: /data
|
||||
source: ${DATADIR}
|
||||
target: /root
|
||||
hostname: tdnode1
|
||||
networks:
|
||||
|
@ -90,6 +90,11 @@ services:
|
|||
- "tdnode3:172.27.0.9"
|
||||
- "tdnode4:172.27.0.10"
|
||||
- "tdnode5:172.27.0.11"
|
||||
- "tdnode6:172.27.0.12"
|
||||
- "tdnode7:172.27.0.13"
|
||||
- "tdnode8:172.27.0.14"
|
||||
- "tdnode9:172.27.0.15"
|
||||
- "tdnode10:172.27.0.16"
|
||||
volumes:
|
||||
# bind data directory
|
||||
- type: bind
|
|
@ -26,6 +26,7 @@ services:
|
|||
sysctl -p &&
|
||||
exec my-main-application"
|
||||
extra_hosts:
|
||||
- "tdnode1:172.27.0.7"
|
||||
- "tdnode2:172.27.0.8"
|
||||
- "tdnode3:172.27.0.9"
|
||||
- "tdnode4:172.27.0.10"
|
|
@ -23,6 +23,7 @@ python3 ./test.py -f insert/insertIntoTwoTables.py
|
|||
python3 ./test.py -f insert/before_1970.py
|
||||
python3 bug2265.py
|
||||
python3 ./test.py -f insert/bug3654.py
|
||||
python3 ./test.py -f insert/insertDynamicColBeforeVal.py
|
||||
|
||||
#table
|
||||
python3 ./test.py -f table/alter_wal0.py
|
||||
|
@ -151,8 +152,7 @@ python3 test.py -f tools/taosdemoTestTblAlt.py
|
|||
python3 test.py -f tools/taosdemoTestSampleData.py
|
||||
python3 test.py -f tools/taosdemoTestInterlace.py
|
||||
python3 test.py -f tools/taosdemoTestQuery.py
|
||||
python3 test.py -f tools/taosdemoAllTest/taosdemoTestInsertWithJson.py
|
||||
python3 test.py -f tools/taosdemoAllTest/taosdemoTestQueryWithJson.py
|
||||
|
||||
|
||||
|
||||
# update
|
||||
|
@ -225,6 +225,8 @@ python3 ./test.py -f query/queryStddevWithGroupby.py
|
|||
python3 ./test.py -f query/querySecondtscolumnTowherenow.py
|
||||
python3 ./test.py -f query/queryFilterTswithDateUnit.py
|
||||
python3 ./test.py -f query/queryTscomputWithNow.py
|
||||
python3 ./test.py -f query/computeErrorinWhere.py
|
||||
python3 ./test.py -f query/queryTsisNull.py
|
||||
|
||||
|
||||
|
||||
|
@ -327,4 +329,7 @@ python3 ./test.py -f alter/alter_debugFlag.py
|
|||
python3 ./test.py -f query/queryBetweenAnd.py
|
||||
python3 ./test.py -f tag_lite/alter_tag.py
|
||||
|
||||
python3 test.py -f tools/taosdemoAllTest/taosdemoTestInsertWithJson.py
|
||||
python3 test.py -f tools/taosdemoAllTest/taosdemoTestQueryWithJson.py
|
||||
|
||||
#======================p4-end===============
|
||||
|
|
|
@ -0,0 +1,136 @@
|
|||
###################################################################
|
||||
# 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 *
|
||||
|
||||
|
||||
class TDTestCase:
|
||||
def init(self, conn, logSql):
|
||||
tdLog.debug("start to execute %s" % __file__)
|
||||
tdSql.init(conn.cursor(), logSql)
|
||||
|
||||
def run(self):
|
||||
tdSql.prepare()
|
||||
tdSql.execute("drop database if exists db")
|
||||
tdSql.execute("create database if not exists db keep 3650")
|
||||
tdSql.execute("use db")
|
||||
|
||||
tdLog.printNoPrefix("==========step1:create table")
|
||||
tdSql.execute(
|
||||
"create table stb1 (ts timestamp, c11 int, c12 float ) TAGS(t11 int, t12 int )"
|
||||
)
|
||||
|
||||
tdLog.printNoPrefix("==========step2:insert data with new syntax")
|
||||
tdSql.execute(
|
||||
"insert into t1 using stb1(t11, t12) tags(11, 12) (ts, c11, c12) values (now, 10, 20)"
|
||||
)
|
||||
|
||||
# case for tag-value
|
||||
tdSql.execute(
|
||||
"insert into t2 using stb1(t11) tags(21) (ts, c11, c12) values (now-1m, 11, 21)"
|
||||
)
|
||||
tdSql.execute(
|
||||
"insert into t3 using stb1 tags(31, 32) (ts, c11, c12) values (now-2m, 12, 22)"
|
||||
)
|
||||
tdSql.error(
|
||||
"insert into t4 using stb1(t11, t12) (ts, c11, c12) values (now-3m, 13, 23)"
|
||||
)
|
||||
tdSql.error(
|
||||
"insert into t5 using stb1(t11, t12) tags() (ts, c11, c12) values (now-4m, 14, 24)"
|
||||
)
|
||||
tdSql.error(
|
||||
"insert into t6 using stb1(t11, t12) tags(41) (ts, c11, c12) values (now-5m, 15, 25)"
|
||||
)
|
||||
tdSql.error(
|
||||
"insert into t7 using stb1(t12) tags(51, 52) (ts, c11, c12) values (now-6m, 16, 26)"
|
||||
)
|
||||
tdSql.execute(
|
||||
"insert into t8 using stb1(t11, t12) tags('61', 62) (ts, c11, c12) values (now-7m, 17, 27)"
|
||||
)
|
||||
|
||||
|
||||
# case for col-value
|
||||
tdSql.execute(
|
||||
"insert into t9 using stb1(t11, t12) tags(71, 72) values (now-8m, 18, 28)"
|
||||
)
|
||||
tdSql.error(
|
||||
"insert into t10 using stb1(t11, t12) tags(81, 82) (ts, c11, c12) values ()"
|
||||
)
|
||||
tdSql.error(
|
||||
"insert into t11 using stb1(t11, t12) tags(91, 92) (ts, c11, c12) "
|
||||
)
|
||||
tdSql.error(
|
||||
"insert into t12 using stb1(t11, t12) tags(101, 102) values (now-9m, 19)"
|
||||
)
|
||||
tdSql.error(
|
||||
"insert into t13 using stb1(t11, t12) tags(111, 112) (ts, c11) values (now-10m, 110, 210)"
|
||||
)
|
||||
tdSql.error(
|
||||
"insert into t14 using stb1(t11, t12) tags(121, 122) (ts, c11, c12) values (now-11m, 111)"
|
||||
)
|
||||
tdSql.execute(
|
||||
"insert into t15 using stb1(t11, t12) tags(131, 132) (ts, c11, c12) values (now-12m, NULL , 212)"
|
||||
)
|
||||
tdSql.execute(
|
||||
"insert into t16 using stb1(t11, t12) tags(141, 142) (ts, c11, c12) values (now-13m, 'NULL', 213)"
|
||||
)
|
||||
tdSql.error(
|
||||
"insert into t17 using stb1(t11, t12) tags(151, 152) (ts, c11, c12) values (now-14m, Nan, 214)"
|
||||
)
|
||||
tdSql.error(
|
||||
"insert into t18 using stb1(t11, t12) tags(161, 162) (ts, c11, c12) values (now-15m, 'NaN', 215)"
|
||||
)
|
||||
tdSql.execute(
|
||||
"insert into t19 using stb1(t11, t12) tags(171, 172) (ts, c11) values (now-16m, 216)"
|
||||
)
|
||||
tdSql.error(
|
||||
"insert into t20 using stb1(t11, t12) tags(181, 182) (c11, c12) values (117, 217)"
|
||||
)
|
||||
|
||||
# multi-col_value
|
||||
tdSql.execute(
|
||||
"insert into t21 using stb1(t11, t12) tags(191, 192) (ts, c11, c12) values (now-17m, 118, 218)(now-18m, 119, 219)"
|
||||
)
|
||||
tdSql.execute(
|
||||
"insert into t22 using stb1(t11, t12) tags(201, 202) values (now-19m, 120, 220)(now-19m, 121, 221)"
|
||||
)
|
||||
tdSql.error(
|
||||
"insert into t23 using stb1(t11, t12) tags(211, 212) values (now-20m, 122, 222) (ts, c11, c12) values (now-21m, 123, 223)"
|
||||
)
|
||||
tdSql.error(
|
||||
"insert into t24 using stb1(t11, t12) tags(221, 222) (ts, c11, c12) values (now-22m, 124, 224) (ts, c11, c12) values (now-23m, 125, 225)"
|
||||
)
|
||||
tdSql.execute(
|
||||
"insert into t25 (ts, c11, c12) using stb1(t11, t12) tags(231, 232) values (now-24m, 126, 226)(now-25m, 127, 227)"
|
||||
)
|
||||
tdSql.error(
|
||||
"insert into t26 (ts, c11, c12) values (now-24m, 128, 228)(now-25m, 129, 229) using stb1(t11, t12) tags(241, 242) "
|
||||
)
|
||||
tdSql.error(
|
||||
"insert into t27 (ts, c11, c12) values (now-24m, 130, 230) using stb1(t11, t12) tags(251, 252) "
|
||||
)
|
||||
|
||||
tdSql.query("show tables")
|
||||
tdSql.checkRows(21)
|
||||
|
||||
|
||||
def stop(self):
|
||||
tdSql.close()
|
||||
tdLog.success("%s successfully executed" % __file__)
|
||||
|
||||
tdCases.addWindows(__file__, TDTestCase())
|
||||
tdCases.addLinux(__file__, TDTestCase())
|
|
@ -0,0 +1,136 @@
|
|||
# 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 *
|
||||
|
||||
|
||||
class TDTestCase:
|
||||
def init(self, conn, logSql):
|
||||
tdLog.debug(f"start to execute {__file__}")
|
||||
tdSql.init(conn.cursor(), logSql)
|
||||
|
||||
def insertnow(self):
|
||||
tdSql.execute("drop database if exists dbcom")
|
||||
tdSql.execute("create database if not exists dbcom keep 36500")
|
||||
tdSql.execute("use dbcom")
|
||||
|
||||
tdSql.execute(
|
||||
"create table stbcom (ts timestamp, c1 int, c2 tinyint, c3 smallint, c4 bigint, c5 float, c6 double) TAGS(t1 int)"
|
||||
)
|
||||
tdSql.execute("create table tcom1 using stbcom tags(1)")
|
||||
|
||||
# timestamp list:
|
||||
# 0 -> "1970-01-01 08:00:00" | -28800000 -> "1970-01-01 00:00:00" | -946800000000 -> "1940-01-01 00:00:00"
|
||||
# -631180800000 -> "1950-01-01 00:00:00"
|
||||
|
||||
tdSql.execute("insert into tcom1 values (now-1d, 1, 11, 21, 31, 41.0, 51.1)")
|
||||
tdSql.execute("insert into tcom1 values (now-2d, 2, 12, 22, 32, 42.0, 52.1)")
|
||||
tdSql.execute("insert into tcom1 values (now-3d, 3, 13, 23, 33, 43.0, 53.1)")
|
||||
tdSql.execute("insert into tcom1 values (now-4d, 4, 14, 24, 34, 44.0, 54.1)")
|
||||
|
||||
def querycom(self):
|
||||
tdSql.query("select * from tcom1 where c1=2-1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c1=-1+2")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c1=1.0*1.0")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c1=1.0/1.0")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c1>1.0/1.0")
|
||||
tdSql.checkRows(3)
|
||||
tdSql.query("select * from tcom1 where c1<1.0/1.0")
|
||||
tdSql.checkRows(0)
|
||||
|
||||
tdSql.query("select * from tcom1 where c2=12-1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c2=-1+12")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c2=11.0*1.0")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c2=11.0/1.0")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c2>11.0/1.0")
|
||||
tdSql.checkRows(3)
|
||||
tdSql.query("select * from tcom1 where c2<11.0/1.0")
|
||||
tdSql.checkRows(0)
|
||||
|
||||
tdSql.query("select * from tcom1 where c3=22-1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c3=-1+22")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c3=21.0*1.0")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c3=21.0/1.0")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c3>21.0/1.0")
|
||||
tdSql.checkRows(3)
|
||||
tdSql.query("select * from tcom1 where c3<21.0/1.0")
|
||||
tdSql.checkRows(0)
|
||||
|
||||
tdSql.query("select * from tcom1 where c4=32-1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c4=-1+32")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c4=31.0*1.0")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c4=31.0/1.0")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c4>31.0/1.0")
|
||||
tdSql.checkRows(3)
|
||||
tdSql.query("select * from tcom1 where c4<31.0/1.0")
|
||||
tdSql.checkRows(0)
|
||||
|
||||
tdSql.query("select * from tcom1 where c5=42-1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c5=-1+42")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c5=41*1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c5=41/1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c5>41/1")
|
||||
tdSql.checkRows(3)
|
||||
tdSql.query("select * from tcom1 where c5<41/1")
|
||||
tdSql.checkRows(0)
|
||||
tdSql.query("select * from tcom1 where c5=42.000000008-1.0000000099999999999999")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c5=42.0008-1.0000099999999999999")
|
||||
tdSql.checkRows(0)
|
||||
|
||||
tdSql.query("select * from tcom1 where c6=52-0.9")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c6=-0.9+52")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c6=51.1*1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c6=51.1/1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select * from tcom1 where c6>51.1/1")
|
||||
tdSql.checkRows(3)
|
||||
tdSql.query("select * from tcom1 where c6<51.1/1")
|
||||
tdSql.checkRows(0)
|
||||
tdSql.query("select * from tcom1 where c6=52.100000000000008-1.000000000000009")
|
||||
tdSql.checkRows(1)
|
||||
|
||||
|
||||
def run(self):
|
||||
self.insertnow()
|
||||
self.querycom()
|
||||
|
||||
def stop(self):
|
||||
tdSql.close()
|
||||
tdLog.success(f"{__file__} successfully executed")
|
||||
|
||||
|
||||
tdCases.addWindows(__file__, TDTestCase())
|
||||
tdCases.addLinux(__file__, TDTestCase())
|
|
@ -0,0 +1,53 @@
|
|||
###################################################################
|
||||
# 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 *
|
||||
|
||||
|
||||
class TDTestCase:
|
||||
def init(self, conn, logSql):
|
||||
tdLog.debug("start to execute %s" % __file__)
|
||||
tdSql.init(conn.cursor(), logSql)
|
||||
|
||||
def run(self):
|
||||
tdSql.prepare()
|
||||
tdSql.execute("drop database if exists db")
|
||||
tdSql.execute("create database if not exists db keep 3650")
|
||||
tdSql.execute("use db")
|
||||
|
||||
tdLog.printNoPrefix("==========step1:create table and insert data")
|
||||
tdSql.execute(
|
||||
"create table stb1 (ts timestamp, c1 timestamp , c2 int) TAGS(t1 int )"
|
||||
)
|
||||
|
||||
tdLog.printNoPrefix("==========step2:query data where timestamp data is null")
|
||||
tdSql.execute(
|
||||
"insert into t1 using stb1(t1) tags(1) (ts, c1, c2) values (now-1m, null, 1)"
|
||||
)
|
||||
tdSql.execute(
|
||||
"insert into t1 using stb1(t1) tags(1) (ts, c2) values (now-2m, 2)"
|
||||
)
|
||||
tdSql.query("select * from t1 where c1 is NULL")
|
||||
tdSql.checkRows(2)
|
||||
|
||||
|
||||
def stop(self):
|
||||
tdSql.close()
|
||||
tdLog.success("%s successfully executed" % __file__)
|
||||
|
||||
tdCases.addWindows(__file__, TDTestCase())
|
||||
tdCases.addLinux(__file__, TDTestCase())
|
|
@ -56,6 +56,34 @@ class TDTestCase:
|
|||
tdSql.query(sql)
|
||||
tdSql.checkRows(6)
|
||||
|
||||
tdSql.execute("create table stb(ts timestamp, options binary(7), city binary(10)) tags(type int)")
|
||||
tdSql.execute("insert into tb1 using stb tags(1) values(%d, 'option1', 'beijing')" % self.ts)
|
||||
tdSql.execute("insert into tb2 using stb tags(2) values(%d, 'option2', 'shanghai')" % self.ts)
|
||||
|
||||
tdSql.query("select options from stb where type = 1 limit 1 union all select options from stb where type = 2 limit 1")
|
||||
tdSql.checkData(0, 0, "option1")
|
||||
tdSql.checkData(1, 0, "option2")
|
||||
|
||||
tdSql.query("select 'dc' as options from stb where type = 1 limit 1 union all select 'ad' as options from stb where type = 2 limit 1")
|
||||
tdSql.checkData(0, 0, "dc")
|
||||
tdSql.checkData(1, 0, "ad")
|
||||
|
||||
tdSql.query("select 'dc' as options from stb where type = 1 limit 1 union all select 'adc' as options from stb where type = 2 limit 1")
|
||||
tdSql.checkData(0, 0, "dc")
|
||||
tdSql.checkData(1, 0, "adc")
|
||||
|
||||
tdSql.error("select 'dc' as options from stb where type = 1 limit 1 union all select 'ad' as city from stb where type = 2 limit 1")
|
||||
|
||||
# for defect https://jira.taosdata.com:18080/browse/TD-4017
|
||||
tdSql.execute("alter table stb add column col int")
|
||||
tdSql.execute("insert into tb1 values(%d, 'option1', 'beijing', 10)" % (self.ts + 1000))
|
||||
|
||||
tdSql.query("select 'dc' as options from stb where col > 10 limit 1")
|
||||
tdSql.checkRows(0)
|
||||
|
||||
tdSql.query("select 'dcs' as options from stb where col > 200 limit 1 union all select 'aaa' as options from stb limit 10")
|
||||
tdSql.checkData(0, 0, 'aaa')
|
||||
|
||||
def stop(self):
|
||||
tdSql.close()
|
||||
tdLog.success("%s successfully executed" % __file__)
|
||||
|
|
|
@ -75,7 +75,7 @@ class TDTestCase:
|
|||
self.insertnow()
|
||||
self.cq()
|
||||
self.querycq()
|
||||
|
||||
|
||||
# after wal and sync, check again
|
||||
tdSql.query("show dnodes")
|
||||
index = tdSql.getData(0, 0)
|
||||
|
|
|
@ -55,8 +55,8 @@
|
|||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":10}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":1}, {"type": "BINARY", "len": 16, "count":1}, {"type": "BINARY", "len": 32, "count":1}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":1}]
|
||||
},
|
||||
{
|
||||
"name": "stb1",
|
||||
|
@ -81,8 +81,8 @@
|
|||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":4}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":1}, {"type": "BINARY", "len": 16, "count":1}, {"type": "BINARY", "len": 32, "count":1}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":1}]
|
||||
}]
|
||||
}]
|
||||
}
|
||||
|
|
|
@ -55,8 +55,8 @@
|
|||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":10}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":1}, {"type": "BINARY", "len": 16, "count":1}, {"type": "BINARY", "len": 32, "count":1}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":1}]
|
||||
},
|
||||
{
|
||||
"name": "stb1",
|
||||
|
@ -81,8 +81,8 @@
|
|||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":10}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":1}, {"type": "BINARY", "len": 16, "count":1}, {"type": "BINARY", "len": 32, "count":1}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":1}]
|
||||
}]
|
||||
}]
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"thread_count": 4,
|
||||
"": 4,
|
||||
"thread_count_create_tbl": 4,
|
||||
"result_file":"./insert_res.txt",
|
||||
"confirm_parameter_prompt": "no",
|
||||
"insert_interval": 0,
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
"confirm_parameter_prompt": "no",
|
||||
"insert_interval": 0,
|
||||
"interlace_rows": 10,
|
||||
"num_of_records_per_req": 100,
|
||||
"max_sql_len": 10240000000,
|
||||
"num_of_records_per_req": "-asdf",
|
||||
"max_sql_len": 1024000,
|
||||
"databases": [{
|
||||
"dbinfo": {
|
||||
"name": "db",
|
||||
|
@ -41,12 +41,12 @@
|
|||
"batch_create_tbl_num": 10,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 1000,
|
||||
"insert_rows": 10000,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
"interlace_rows": 0,
|
||||
"insert_interval":0,
|
||||
"insert_interval":-4,
|
||||
"max_sql_len": 1024000,
|
||||
"disorder_ratio": 0,
|
||||
"disorder_range": 1000,
|
||||
|
@ -55,8 +55,8 @@
|
|||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":0}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":7}]
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":10}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
|
||||
},
|
||||
{
|
||||
"name": "stb1",
|
||||
|
@ -64,10 +64,10 @@
|
|||
"childtable_count": 20,
|
||||
"childtable_prefix": "stb01_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 12,
|
||||
"batch_create_tbl_num": "asdf",
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 2000,
|
||||
"insert_rows": 20000,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
|
@ -55,7 +55,7 @@
|
|||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":10}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":1}, {"type": "BINARY", "len": 16, "count":1}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
|
||||
},
|
||||
{
|
||||
|
@ -81,8 +81,8 @@
|
|||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":9}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":1}, {"type": "BINARY", "len": 16, "count":1}, {"type": "BINARY", "len": 32, "count":1}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":1}]
|
||||
}]
|
||||
}]
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":6}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":1}, {"type": "BINARY", "len": 16, "count":1}, {"type": "BINARY", "len": 32, "count":1}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
|
||||
},
|
||||
{
|
||||
|
|
|
@ -0,0 +1,140 @@
|
|||
{
|
||||
"filetype": "insert",
|
||||
"cfgdir": "/etc/taos",
|
||||
"host": "127.0.0.1",
|
||||
"port": 6030,
|
||||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"thread_count": 4,
|
||||
"thread_count_create_tbl": 4,
|
||||
"result_file": "./insert_res.txt",
|
||||
"confirm_parameter_prompt": "no",
|
||||
"insert_interval": 0,
|
||||
"interlace_rows": 10,
|
||||
"num_of_records_per_req": 10240000000,
|
||||
"max_sql_len": 10240000000,
|
||||
"databases": [{
|
||||
"dbinfo": {
|
||||
"name": "db",
|
||||
"drop": "yes",
|
||||
"replica": 1,
|
||||
"days": 10,
|
||||
"cache": 50,
|
||||
"blocks": 8,
|
||||
"precision": "ms",
|
||||
"keep": 365,
|
||||
"minRows": 100,
|
||||
"maxRows": 4096,
|
||||
"comp":2,
|
||||
"walLevel":1,
|
||||
"cachelast":0,
|
||||
"quorum":1,
|
||||
"fsync":3000,
|
||||
"update": 0
|
||||
},
|
||||
"super_tables": [{
|
||||
"name": "stb0",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 1,
|
||||
"childtable_prefix": "stb00_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 10,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 1,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
"interlace_rows": 0,
|
||||
"insert_interval":0,
|
||||
"max_sql_len": 1024000,
|
||||
"disorder_ratio": 0,
|
||||
"disorder_range": 1000,
|
||||
"timestamp_step": 1,
|
||||
"start_timestamp": "2020-10-01 00:00:00.000",
|
||||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "BINARY", "len": 16374, "count":1}],
|
||||
"tags": [{"type": "TINYINT", "count":12}, {"type": "BINARY", "len": 16, "count":2}]
|
||||
},
|
||||
{
|
||||
"name": "stb1",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 1,
|
||||
"childtable_prefix": "stb01_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 12,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 1,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
"interlace_rows": 1000000,
|
||||
"insert_interval":0,
|
||||
"max_sql_len": 1024000,
|
||||
"disorder_ratio": 0,
|
||||
"disorder_range": 1000,
|
||||
"timestamp_step": 1,
|
||||
"start_timestamp": "2020-10-01 00:00:00.000",
|
||||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "BINARY", "len": 16370, "count":1},{"type": "INT"}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
|
||||
},
|
||||
{
|
||||
"name": "stb2",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 1,
|
||||
"childtable_prefix": "stb01_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 12,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 1,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
"interlace_rows": 1000000,
|
||||
"insert_interval":0,
|
||||
"max_sql_len": 1024000,
|
||||
"disorder_ratio": 0,
|
||||
"disorder_range": 1000,
|
||||
"timestamp_step": 1,
|
||||
"start_timestamp": "2020-10-01 00:00:00.000",
|
||||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "BINARY", "len": 16375, "count":1},{"type": "INT"}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
|
||||
},
|
||||
{
|
||||
"name": "stb3",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 1,
|
||||
"childtable_prefix": "stb01_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 12,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 1,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
"interlace_rows": 1000000,
|
||||
"insert_interval":0,
|
||||
"max_sql_len": 1024000,
|
||||
"disorder_ratio": 0,
|
||||
"disorder_range": 1000,
|
||||
"timestamp_step": 1,
|
||||
"start_timestamp": "2020-10-01 00:00:00.000",
|
||||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "BINARY", "len": 16371, "count":1},{"type": "INT"}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
|
||||
}]
|
||||
}]
|
||||
}
|
|
@ -11,7 +11,7 @@
|
|||
"confirm_parameter_prompt": "no",
|
||||
"insert_interval": 0,
|
||||
"interlace_rows": 10,
|
||||
"num_of_records_per_req": 100,
|
||||
"num_of_records_per_req": 10,
|
||||
"max_sql_len": 10240000000,
|
||||
"databases": [{
|
||||
"dbinfo": {
|
||||
|
@ -35,13 +35,13 @@
|
|||
"super_tables": [{
|
||||
"name": "stb0",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 10,
|
||||
"childtable_count": 0,
|
||||
"childtable_prefix": "stb00_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 10,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 1000,
|
||||
"insert_rows": 1,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
|
@ -55,19 +55,19 @@
|
|||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":1005}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":7}]
|
||||
"columns": [{"type": "BINARY", "len": 1, "count":1}],
|
||||
"tags": [{"type": "TINYINT", "count":1}, {"type": "BINARY", "len": 16, "count":2}]
|
||||
},
|
||||
{
|
||||
"name": "stb1",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 20,
|
||||
"childtable_count": 10,
|
||||
"childtable_prefix": "stb01_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 12,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 2000,
|
||||
"insert_rows": 2,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
|
@ -81,7 +81,7 @@
|
|||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":10}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"columns": [{"type": "BINARY", "len": 1, "count":1}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
|
||||
}]
|
||||
}]
|
|
@ -11,7 +11,7 @@
|
|||
"confirm_parameter_prompt": "no",
|
||||
"insert_interval": 0,
|
||||
"interlace_rows": 10,
|
||||
"num_of_records_per_req": 100,
|
||||
"num_of_records_per_req": 10,
|
||||
"max_sql_len": 10240000000,
|
||||
"databases": [{
|
||||
"dbinfo": {
|
||||
|
@ -35,13 +35,13 @@
|
|||
"super_tables": [{
|
||||
"name": "stb0",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 10,
|
||||
"childtable_count": -1,
|
||||
"childtable_prefix": "stb00_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 10,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 1000,
|
||||
"insert_rows": 1,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
|
@ -55,19 +55,19 @@
|
|||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":1024}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":7}]
|
||||
"columns": [{"type": "BINARY", "len": 1, "count":1}],
|
||||
"tags": [{"type": "TINYINT", "count":1}, {"type": "BINARY", "len": 16, "count":2}]
|
||||
},
|
||||
{
|
||||
"name": "stb1",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 20,
|
||||
"childtable_count": 10,
|
||||
"childtable_prefix": "stb01_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 12,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 2000,
|
||||
"insert_rows": 2,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
|
@ -81,8 +81,8 @@
|
|||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":1004}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":7}]
|
||||
"columns": [{"type": "BINARY", "len": 1, "count":1}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
|
||||
}]
|
||||
}]
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
"filetype": "insert",
|
||||
"cfgdir": "/etc/taos",
|
||||
"host": "127.0.0.1",
|
||||
"port": 6030,
|
||||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"thread_count": 4,
|
||||
"thread_count_create_tbl": 4,
|
||||
"result_file": "./insert_res.txt",
|
||||
"confirm_parameter_prompt": "no",
|
||||
"insert_interval": 0,
|
||||
"interlace_rows": 0,
|
||||
"num_of_records_per_req": 1000,
|
||||
"max_sql_len": 10240000000,
|
||||
"databases": [{
|
||||
"dbinfo": {
|
||||
"name": "db",
|
||||
"drop": "yes",
|
||||
"replica": 1,
|
||||
"days": 10,
|
||||
"cache": 50,
|
||||
"blocks": 8,
|
||||
"precision": "ms",
|
||||
"keep": 365,
|
||||
"minRows": 100,
|
||||
"maxRows": 4096,
|
||||
"comp":2,
|
||||
"walLevel":1,
|
||||
"cachelast":0,
|
||||
"quorum":1,
|
||||
"fsync":3000,
|
||||
"update": 0
|
||||
},
|
||||
"super_tables": [{
|
||||
"name": "stb0",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 10,
|
||||
"childtable_prefix": "stb00_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 10,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 1000,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
"interlace_rows": 0,
|
||||
"insert_interval":0,
|
||||
"max_sql_len": 1024000,
|
||||
"disorder_ratio": 0,
|
||||
"disorder_range": 1000,
|
||||
"timestamp_step": 1,
|
||||
"start_timestamp": "2020-10-01 00:00:00.000",
|
||||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":1004}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":7}]
|
||||
}]
|
||||
}]
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
"filetype": "insert",
|
||||
"cfgdir": "/etc/taos",
|
||||
"host": "127.0.0.1",
|
||||
"port": 6030,
|
||||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"thread_count": 4,
|
||||
"thread_count_create_tbl": 4,
|
||||
"result_file": "./insert_res.txt",
|
||||
"confirm_parameter_prompt": "no",
|
||||
"insert_interval": 0,
|
||||
"interlace_rows": 10000,
|
||||
"num_of_records_per_req": 10000,
|
||||
"max_sql_len": 10240000000,
|
||||
"databases": [{
|
||||
"dbinfo": {
|
||||
"name": "db",
|
||||
"drop": "yes",
|
||||
"replica": 1,
|
||||
"days": 10,
|
||||
"cache": 50,
|
||||
"blocks": 8,
|
||||
"precision": "ms",
|
||||
"keep": 365,
|
||||
"minRows": 100,
|
||||
"maxRows": 4096,
|
||||
"comp":2,
|
||||
"walLevel":1,
|
||||
"cachelast":0,
|
||||
"quorum":1,
|
||||
"fsync":3000,
|
||||
"update": 0
|
||||
},
|
||||
"super_tables": [{
|
||||
"name": "stb0",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 10,
|
||||
"childtable_prefix": "stb00_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 10,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 1000,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
"interlace_rows": 0,
|
||||
"insert_interval":0,
|
||||
"max_sql_len": 1024000,
|
||||
"disorder_ratio": 0,
|
||||
"disorder_range": 1000,
|
||||
"timestamp_step": 1,
|
||||
"start_timestamp": "2020-10-01 00:00:00.000",
|
||||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":1005}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":7}]
|
||||
}]
|
||||
}]
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
"filetype": "insert",
|
||||
"cfgdir": "/etc/taos",
|
||||
"host": "127.0.0.1",
|
||||
"port": 6030,
|
||||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"thread_count": 4,
|
||||
"thread_count_create_tbl": 4,
|
||||
"result_file": "./insert_res.txt",
|
||||
"confirm_parameter_prompt": "no",
|
||||
"insert_interval": 0,
|
||||
"interlace_rows": 10,
|
||||
"num_of_records_per_req": 100,
|
||||
"max_sql_len": 10240000000,
|
||||
"databases": [{
|
||||
"dbinfo": {
|
||||
"name": "db",
|
||||
"drop": "yes",
|
||||
"replica": 1,
|
||||
"days": 10,
|
||||
"cache": 50,
|
||||
"blocks": 8,
|
||||
"precision": "ms",
|
||||
"keep": 365,
|
||||
"minRows": 100,
|
||||
"maxRows": 4096,
|
||||
"comp":2,
|
||||
"walLevel":1,
|
||||
"cachelast":0,
|
||||
"quorum":1,
|
||||
"fsync":3000,
|
||||
"update": 0
|
||||
},
|
||||
"super_tables": [{
|
||||
"name": "stb0",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 10,
|
||||
"childtable_prefix": "stb00_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 10,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 1000,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
"interlace_rows": 0,
|
||||
"insert_interval":0,
|
||||
"max_sql_len": 1024000,
|
||||
"disorder_ratio": 0,
|
||||
"disorder_range": 1000,
|
||||
"timestamp_step": 1,
|
||||
"start_timestamp": "2020-10-01 00:00:00.000",
|
||||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":0}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":7}]
|
||||
}]
|
||||
}]
|
||||
}
|
|
@ -11,11 +11,11 @@
|
|||
"confirm_parameter_prompt": "no",
|
||||
"insert_interval": 0,
|
||||
"interlace_rows": 10,
|
||||
"num_of_records_per_req": 100,
|
||||
"num_of_records_per_req": 0,
|
||||
"max_sql_len": 10240000000,
|
||||
"databases": [{
|
||||
"dbinfo": {
|
||||
"name": "db1",
|
||||
"name": "db",
|
||||
"drop": "yes",
|
||||
"replica": 1,
|
||||
"days": 10,
|
||||
|
@ -35,13 +35,13 @@
|
|||
"super_tables": [{
|
||||
"name": "stb0",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 10,
|
||||
"childtable_count": 1,
|
||||
"childtable_prefix": "stb00_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 10,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 1000,
|
||||
"insert_rows": 1,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
|
@ -55,19 +55,19 @@
|
|||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":1}, {"type": "BIGINT", "count":1}, {"type": "float", "count":1}, {"type": "double", "count":1}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"tags": [{"type": "TINYINT", "count":127}, {"type": "BINARY", "len": 16, "count":2}]
|
||||
"columns": [{"type": "BINARY", "len": 1, "count":1}],
|
||||
"tags": [{"type": "TINYINT", "count":1}, {"type": "BINARY", "len": 16, "count":2}]
|
||||
},
|
||||
{
|
||||
"name": "stb1",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 20,
|
||||
"childtable_count": 2,
|
||||
"childtable_prefix": "stb01_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 12,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 2000,
|
||||
"insert_rows": 2,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
|
@ -81,7 +81,7 @@
|
|||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":10}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"columns": [{"type": "BINARY", "len": 1, "count":1}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
|
||||
}]
|
||||
}]
|
|
@ -0,0 +1,88 @@
|
|||
{
|
||||
"filetype": "insert",
|
||||
"cfgdir": "/etc/taos",
|
||||
"host": "127.0.0.1",
|
||||
"port": 6030,
|
||||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"thread_count": 4,
|
||||
"thread_count_create_tbl": 4,
|
||||
"result_file": "./insert_res.txt",
|
||||
"confirm_parameter_prompt": "no",
|
||||
"insert_interval": 0,
|
||||
"interlace_rows": 10,
|
||||
"num_of_records_per_req": -1,
|
||||
"max_sql_len": 10240000000,
|
||||
"databases": [{
|
||||
"dbinfo": {
|
||||
"name": "db",
|
||||
"drop": "yes",
|
||||
"replica": 1,
|
||||
"days": 10,
|
||||
"cache": 50,
|
||||
"blocks": 8,
|
||||
"precision": "ms",
|
||||
"keep": 365,
|
||||
"minRows": 100,
|
||||
"maxRows": 4096,
|
||||
"comp":2,
|
||||
"walLevel":1,
|
||||
"cachelast":0,
|
||||
"quorum":1,
|
||||
"fsync":3000,
|
||||
"update": 0
|
||||
},
|
||||
"super_tables": [{
|
||||
"name": "stb0",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 1,
|
||||
"childtable_prefix": "stb00_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 10,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 1,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
"interlace_rows": 0,
|
||||
"insert_interval":0,
|
||||
"max_sql_len": 1024000,
|
||||
"disorder_ratio": 0,
|
||||
"disorder_range": 1000,
|
||||
"timestamp_step": 1,
|
||||
"start_timestamp": "2020-10-01 00:00:00.000",
|
||||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "BINARY", "len": 1, "count":1}],
|
||||
"tags": [{"type": "TINYINT", "count":1}, {"type": "BINARY", "len": 16, "count":2}]
|
||||
},
|
||||
{
|
||||
"name": "stb1",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 2,
|
||||
"childtable_prefix": "stb01_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 12,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 2,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
"interlace_rows": 0,
|
||||
"insert_interval":0,
|
||||
"max_sql_len": 1024000,
|
||||
"disorder_ratio": 0,
|
||||
"disorder_range": 1000,
|
||||
"timestamp_step": 1,
|
||||
"start_timestamp": "2020-10-01 00:00:00.000",
|
||||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "BINARY", "len": 1, "count":1}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
|
||||
}]
|
||||
}]
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
"filetype": "insert",
|
||||
"cfgdir": "/etc/taos",
|
||||
"host": "127.0.0.1",
|
||||
"port": 6030,
|
||||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"thread_count": 4,
|
||||
"thread_count_create_tbl": 4,
|
||||
"result_file": "./insert_res.txt",
|
||||
"confirm_parameter_prompt": "no",
|
||||
"insert_interval": 0,
|
||||
"interlace_rows": 10,
|
||||
"num_of_records_per_req": 100,
|
||||
"max_sql_len": 10240000000,
|
||||
"databases": [{
|
||||
"dbinfo": {
|
||||
"name": "db",
|
||||
"drop": "yes",
|
||||
"replica": 1,
|
||||
"days": 10,
|
||||
"cache": 50,
|
||||
"blocks": 8,
|
||||
"precision": "ms",
|
||||
"keep": 365,
|
||||
"minRows": 100,
|
||||
"maxRows": 4096,
|
||||
"comp":2,
|
||||
"walLevel":1,
|
||||
"cachelast":0,
|
||||
"quorum":1,
|
||||
"fsync":3000,
|
||||
"update": 0
|
||||
},
|
||||
"super_tables": [{
|
||||
"name": "stb0",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 10,
|
||||
"childtable_prefix": "stb00_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 10,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 1000,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
"interlace_rows": 0,
|
||||
"insert_interval":0,
|
||||
"max_sql_len": 1024000,
|
||||
"disorder_ratio": 0,
|
||||
"disorder_range": 1000,
|
||||
"timestamp_step": 1,
|
||||
"start_timestamp": "2020-10-01 00:00:00.000",
|
||||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "DOUBLE", "count":1024}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":7}]
|
||||
}]
|
||||
}]
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
"filetype": "insert",
|
||||
"cfgdir": "/etc/taos",
|
||||
"host": "127.0.0.1",
|
||||
"port": 6030,
|
||||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"thread_count": 4,
|
||||
"thread_count_create_tbl": 4,
|
||||
"result_file": "./insert_res.txt",
|
||||
"confirm_parameter_prompt": "no",
|
||||
"insert_interval": 0,
|
||||
"interlace_rows": 10,
|
||||
"num_of_records_per_req": 100,
|
||||
"max_sql_len": 10240000000,
|
||||
"databases": [{
|
||||
"dbinfo": {
|
||||
"name": "db1",
|
||||
"drop": "yes",
|
||||
"replica": 1,
|
||||
"days": 10,
|
||||
"cache": 50,
|
||||
"blocks": 8,
|
||||
"precision": "ms",
|
||||
"keep": 365,
|
||||
"minRows": 100,
|
||||
"maxRows": 4096,
|
||||
"comp":2,
|
||||
"walLevel":1,
|
||||
"cachelast":0,
|
||||
"quorum":1,
|
||||
"fsync":3000,
|
||||
"update": 0
|
||||
},
|
||||
"super_tables": [{
|
||||
"name": "stb0",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 10,
|
||||
"childtable_prefix": "stb00_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 10,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 1000,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
"interlace_rows": 0,
|
||||
"insert_interval":0,
|
||||
"max_sql_len": 1024000,
|
||||
"disorder_ratio": 0,
|
||||
"disorder_range": 1000,
|
||||
"timestamp_step": 1,
|
||||
"start_timestamp": "2020-10-01 00:00:00.000",
|
||||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":1}, {"type": "BIGINT", "count":1}, {"type": "float", "count":1}, {"type": "double", "count":1}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"tags": [{"type": "TINYINT", "count":127}, {"type": "BINARY", "len": 16, "count":2}]
|
||||
}]
|
||||
}]
|
||||
}
|
|
@ -0,0 +1,65 @@
|
|||
{
|
||||
"filetype": "insert",
|
||||
"cfgdir": "/etc/taos",
|
||||
"host": "localhost",
|
||||
"port": 6030,
|
||||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"thread_count": 4,
|
||||
"thread_count_create_tbl": 4,
|
||||
"result_file": "./insert_res.txt",
|
||||
"confirm_parameter_prompt": "no",
|
||||
"insert_interval": 0,
|
||||
"databases": [
|
||||
{
|
||||
"dbinfo": {
|
||||
"name": "blf",
|
||||
"drop": "yes"
|
||||
},
|
||||
"super_tables": [
|
||||
{
|
||||
"name": "p_0_topics",
|
||||
"child_table_exists": "no",
|
||||
"childtable_count": 10,
|
||||
"childtable_prefix": "p_0_topics_",
|
||||
"auto_create_table": "no",
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 525600,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
"interlace_rows": 1000,
|
||||
"max_sql_len": 1048576,
|
||||
"disorder_ratio": 0,
|
||||
"disorder_range": 1000,
|
||||
"timestamp_step": 60000,
|
||||
"start_timestamp": "2019-10-01 00:00:00.000",
|
||||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [
|
||||
{
|
||||
"type": "INT",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"type": "FLOAT",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"type": "BINARY",
|
||||
"len": 12,
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"tags": [
|
||||
{
|
||||
"type": "BINARY",
|
||||
"len": 12,
|
||||
"count": 10
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
"filetype": "insert",
|
||||
"cfgdir": "/etc/taos",
|
||||
"host": "127.0.0.1",
|
||||
"port": 6030,
|
||||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"thread_count": 4,
|
||||
"thread_count_create_tbl": 4,
|
||||
"result_file": "./insert_res.txt",
|
||||
"confirm_parameter_prompt": "no",
|
||||
"insert_interval": 0,
|
||||
"interlace_rows": 100,
|
||||
"num_of_records_per_req": 1000,
|
||||
"max_sql_len": 1024000,
|
||||
"databases": [{
|
||||
"dbinfo": {
|
||||
"name": "db",
|
||||
"drop": "yes",
|
||||
"replica": 1,
|
||||
"days": 10,
|
||||
"cache": 50,
|
||||
"blocks": 8,
|
||||
"precision": "ms",
|
||||
"keep": 365,
|
||||
"minRows": 100,
|
||||
"maxRows": 4096,
|
||||
"comp":2,
|
||||
"walLevel":1,
|
||||
"cachelast":0,
|
||||
"quorum":1,
|
||||
"fsync":3000,
|
||||
"update": 0
|
||||
},
|
||||
"super_tables": [{
|
||||
"name": "stb0",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 100,
|
||||
"childtable_prefix": "stb00_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 20,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 150000,
|
||||
"childtable_limit": -1,
|
||||
"childtable_offset":0,
|
||||
"multi_thread_write_one_tbl": "no",
|
||||
"interlace_rows": 1000,
|
||||
"insert_interval":0,
|
||||
"max_sql_len": 1024000,
|
||||
"disorder_ratio": 0,
|
||||
"disorder_range": 1000,
|
||||
"timestamp_step": 1,
|
||||
"start_timestamp": "2020-10-01 00:00:00.000",
|
||||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "INT"}, {"type": "DOUBLE", "count":10}, {"type": "BINARY", "len": 16, "count":3}, {"type": "BINARY", "len": 32, "count":6}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
|
||||
}]
|
||||
}]
|
||||
}
|
|
@ -0,0 +1,88 @@
|
|||
###################################################################
|
||||
# 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 os
|
||||
import subprocess
|
||||
import time
|
||||
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("start to execute %s" % __file__)
|
||||
tdSql.init(conn.cursor(), logSql)
|
||||
|
||||
def getBuildPath(self):
|
||||
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("/build/bin")]
|
||||
break
|
||||
return buildPath
|
||||
|
||||
def run(self):
|
||||
tdSql.prepare()
|
||||
buildPath = self.getBuildPath()
|
||||
if (buildPath == ""):
|
||||
tdLog.exit("taosd not found!")
|
||||
else:
|
||||
tdLog.info("taosd found in %s" % buildPath)
|
||||
binPath = buildPath+ "/build/bin/"
|
||||
|
||||
# # insert 1000w rows in stb0
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/query-interrupt.json -y " % binPath)
|
||||
tdSql.execute("use db")
|
||||
tdSql.query("select count (tbname) from stb0")
|
||||
tdSql.checkData(0, 0,60)
|
||||
tdSql.query("select count(*) from stb0")
|
||||
tdSql.checkData(0, 0, 6000000)
|
||||
os.system('%staosdemo -f tools/taosdemoAllTest/queryall.json -y & ' % binPath)
|
||||
time.sleep(2)
|
||||
query_pid = int(subprocess.getstatusoutput('ps aux|grep "taosdemoAllTest/queryall.json" |grep -v "grep"|awk \'{print $2}\'')[1])
|
||||
taosd_cpu_load_1 = float(subprocess.getstatusoutput('top -n 1 -b -p $(ps aux|grep "bin/taosd -c"|grep -v "grep" |awk \'{print $2}\')|awk \'END{print}\' |awk \'{print $9}\'')[1])
|
||||
if taosd_cpu_load_1 > 10.0 :
|
||||
os.system("kill -9 %d" % query_pid)
|
||||
time.sleep(5)
|
||||
taosd_cpu_load_2 = float(subprocess.getstatusoutput('top -n 1 -b -p $(ps aux|grep "bin/taosd -c"|grep -v "grep" |awk \'{print $2}\')|awk \'END{print}\' |awk \'{print $9}\'')[1])
|
||||
if taosd_cpu_load_2 < 10.0 :
|
||||
suc_kill = 60
|
||||
else:
|
||||
suc_kill = 10
|
||||
print("taosd_cpu_load is higher than 10%")
|
||||
else:
|
||||
suc_kill = 20
|
||||
print("taosd_cpu_load is still less than 10%")
|
||||
tdSql.query("select count (tbname) from stb0")
|
||||
tdSql.checkData(0, 0, "%d" % suc_kill)
|
||||
os.system("rm -rf querySystemInfo*")
|
||||
os.system("rm -rf insert_res.txt")
|
||||
|
||||
def stop(self):
|
||||
tdSql.close()
|
||||
tdLog.success("%s successfully executed" % __file__)
|
||||
|
||||
|
||||
tdCases.addWindows(__file__, TDTestCase())
|
||||
tdCases.addLinux(__file__, TDTestCase())
|
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
"filetype": "query",
|
||||
"cfgdir": "/etc/taos",
|
||||
"host": "127.0.0.1",
|
||||
"port": 6030,
|
||||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"confirm_parameter_prompt": "no",
|
||||
"databases": "db",
|
||||
"query_times": 1,
|
||||
"specified_table_query": {
|
||||
"query_interval": 0,
|
||||
"concurrent": 1,
|
||||
"sqls": [
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_0",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_99 ",
|
||||
"result": "./query_res1.txt"
|
||||
|
||||
}]
|
||||
},
|
||||
"super_table_query": {
|
||||
"stblname": "stb1",
|
||||
"query_interval":0,
|
||||
"threads": 1,
|
||||
"sqls": [
|
||||
{
|
||||
"sql": "select last_row(ts) from xxxx",
|
||||
"result": "./query_res2.txt"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,429 @@
|
|||
{
|
||||
"filetype": "query",
|
||||
"cfgdir": "/etc/taos",
|
||||
"host": "127.0.0.1",
|
||||
"port": 6030,
|
||||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"confirm_parameter_prompt": "no",
|
||||
"databases": "db",
|
||||
"query_times": 2,
|
||||
"specified_table_query": {
|
||||
"query_interval": 1,
|
||||
"concurrent": 3,
|
||||
"sqls": [
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_0",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_1",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_2",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_3",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_4",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_5",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_6",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_7",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_8",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_9",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_10 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_11 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_12 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_13 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_14 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_15 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_16 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_17 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_18 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_19 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_20 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_21 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_22 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_23 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_24 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_25 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_26 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_27 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_28 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_29 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_30 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_31 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_32 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_33 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_34 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_35 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_36 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_37 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_38 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_39 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_40 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_41 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_42 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_43 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_44 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_45 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_46 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_47 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_48 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_49 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_50 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_51 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_52 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_53 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_54 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_55 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_56 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_57 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_58 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_59 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_60",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_61",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_62",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_63",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_64",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_65",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_66",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_67",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_68",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_69",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_70 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_71 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_72 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_73 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_74 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_75 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_76 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_77 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_78 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_79 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_80 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_81 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_82 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_83 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_84 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_85 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_86 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_87 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_88 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_89 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_90 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_91 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_92 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_93 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_94 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_95 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_96 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_97 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_98 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from stb00_99 ",
|
||||
"result": "./query_res0.txt"
|
||||
|
||||
}]
|
||||
},
|
||||
"super_table_query": {
|
||||
"stblname": "stb1",
|
||||
"query_interval": 1,
|
||||
"threads": 3,
|
||||
"sqls": [
|
||||
{
|
||||
"sql": "select last_row(ts) from xxxx",
|
||||
"result": "./query_res2.txt"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,419 @@
|
|||
{
|
||||
"filetype": "query",
|
||||
"cfgdir": "/etc/taos",
|
||||
"host": "127.0.0.1",
|
||||
"port": 6030,
|
||||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"confirm_parameter_prompt": "no",
|
||||
"databases": "db",
|
||||
"query_times": 3,
|
||||
"super_table_query": {
|
||||
"stblname": "stb0",
|
||||
"query_interval": 10000,
|
||||
"concurrent": 9,
|
||||
"sqls": [
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select last_row(*) from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select * from xxxx ",
|
||||
"result": "./query_res0.txt"
|
||||
|
||||
}]
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"filetype":"query",
|
||||
"cfgdir": "/etc/taos",
|
||||
"host": "127.0.0.1",
|
||||
"port": 6030,
|
||||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"confirm_parameter_prompt": "no",
|
||||
"databases": "db",
|
||||
"specified_table_query":
|
||||
{"query_interval":1, "concurrent":1,
|
||||
"sqls": [{"sql": "select * from stb0", "result": ""}]
|
||||
}
|
||||
}
|
|
@ -69,7 +69,7 @@
|
|||
"insert_rows": 200,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset": 0,
|
||||
"interlace_rows": 0,
|
||||
"interlace_rows": 0 ,
|
||||
"insert_interval": 0,
|
||||
"max_sql_len": 1024000,
|
||||
"disorder_ratio": 0,
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
{
|
||||
"filetype": "query",
|
||||
"cfgdir": "/etc/taos",
|
||||
"host": "127.0.0.1",
|
||||
"port": 6030,
|
||||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"confirm_parameter_prompt": "no",
|
||||
"databases": "db",
|
||||
"query_times": 2,
|
||||
"query_mode": "restful",
|
||||
"specified_table_query": {
|
||||
"query_interval": 1,
|
||||
"concurrent": 3,
|
||||
"sqls": [
|
||||
{
|
||||
"sql": "select last_row(*) from db.stb0 ",
|
||||
"result": "./query_res0.txt"
|
||||
},
|
||||
{
|
||||
"sql": "select count(*) from db.stb00_1",
|
||||
"result": "./query_res1.txt"
|
||||
}
|
||||
]
|
||||
},
|
||||
"super_table_query": {
|
||||
"stblname": "stb1",
|
||||
"query_interval": 1,
|
||||
"threads": 3,
|
||||
"sqls": [
|
||||
{
|
||||
"sql": "select last_row(ts) from xxxx",
|
||||
"result": "./query_res2.txt"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -8,6 +8,7 @@
|
|||
"confirm_parameter_prompt": "no",
|
||||
"databases": "db",
|
||||
"query_times": 2,
|
||||
"query_mode": "taosc",
|
||||
"specified_table_query": {
|
||||
"query_interval": 1,
|
||||
"concurrent": 3,
|
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
"filetype":"subscribe",
|
||||
"cfgdir": "/etc/taos",
|
||||
"host": "127.0.0.1",
|
||||
"port": 6030,
|
||||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"databases": "db",
|
||||
"confirm_parameter_prompt": "no",
|
||||
"specified_table_query":
|
||||
{
|
||||
"concurrent":1,
|
||||
"mode":"sync",
|
||||
"interval":0,
|
||||
"restart":"yes",
|
||||
"keepProgress":"yes",
|
||||
"sqls": [
|
||||
{
|
||||
"sql": "select * from stb00_0 ;",
|
||||
"result": "./subscribe_res0.txt"
|
||||
}]
|
||||
},
|
||||
"super_table_query":
|
||||
{
|
||||
"stblname": "stb0",
|
||||
"threads":1,
|
||||
"mode":"sync",
|
||||
"interval":10000,
|
||||
"restart":"yes",
|
||||
"keepProgress":"yes",
|
||||
"sqls": [
|
||||
{
|
||||
"sql": "select * from xxxx where ts > '2021-02-25 11:35:00.000' ;",
|
||||
"result": "./subscribe_res1.txt"
|
||||
}]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"filetype": "insert",
|
||||
"cfgdir": "/etc/taos",
|
||||
"host": "127.0.0.1",
|
||||
"port": 6030,
|
||||
"user": "root",
|
||||
"password": "taosdata",
|
||||
"thread_count": 4,
|
||||
"thread_count_create_tbl": 4,
|
||||
"result_file": "./insert_res.txt",
|
||||
"confirm_parameter_prompt": "no",
|
||||
"insert_interval": 0,
|
||||
"interlace_rows": 0,
|
||||
"num_of_records_per_req": 3000,
|
||||
"max_sql_len": 1024000,
|
||||
"databases": [{
|
||||
"dbinfo": {
|
||||
"name": "db",
|
||||
"drop": "yes",
|
||||
"replica": 1,
|
||||
"days": 10,
|
||||
"cache": 16,
|
||||
"blocks": 8,
|
||||
"precision": "ms",
|
||||
"keep": 365,
|
||||
"minRows": 100,
|
||||
"maxRows": 4096,
|
||||
"comp":2,
|
||||
"walLevel":1,
|
||||
"cachelast":0,
|
||||
"quorum":1,
|
||||
"fsync":3000,
|
||||
"update": 0
|
||||
},
|
||||
"super_tables": [{
|
||||
"name": "stb0",
|
||||
"child_table_exists":"no",
|
||||
"childtable_count": 1,
|
||||
"childtable_prefix": "stb00_",
|
||||
"auto_create_table": "no",
|
||||
"batch_create_tbl_num": 10,
|
||||
"data_source": "rand",
|
||||
"insert_mode": "taosc",
|
||||
"insert_rows": 1,
|
||||
"childtable_limit": 0,
|
||||
"childtable_offset": 0,
|
||||
"interlace_rows": 0,
|
||||
"insert_interval": 0,
|
||||
"max_sql_len": 1024000,
|
||||
"disorder_ratio": 0,
|
||||
"disorder_range": 0,
|
||||
"timestamp_step": 1000,
|
||||
"start_timestamp": "2021-02-25 10:00:00.000",
|
||||
"sample_format": "csv",
|
||||
"sample_file": "./sample.csv",
|
||||
"tags_file": "",
|
||||
"columns": [{"type": "BINARY", "len":50, "count":1}, {"type": "BINARY", "len": 16, "count":1}, {"type": "INT"}, {"type": "DOUBLE", "count":1}],
|
||||
"tags": [{"type": "TINYINT", "count":2}, {"type": "BINARY", "len": 16, "count":5}]
|
||||
}]
|
||||
}]
|
||||
}
|
|
@ -153,19 +153,56 @@ class TDTestCase:
|
|||
tdSql.checkData(0, 0, 160)
|
||||
|
||||
|
||||
# insert: let parament in json file is illegal ,i need know how to write exception.
|
||||
# insert: let parament in json file is illegal, it'll expect error.
|
||||
tdSql.execute("drop database if exists db")
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/insert-illegal-columns.json -y " % binPath)
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/insertColumnsAndTagNumLarge1024.json -y " % binPath)
|
||||
tdSql.error("use db")
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/insert-illegal-columns-lmax.json -y " % binPath)
|
||||
tdSql.error("select * from db.stb0")
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/insert-illegal-columns-count-0.json -y " % binPath)
|
||||
tdSql.execute("use db")
|
||||
tdSql.query("select count(*) from db.stb0")
|
||||
tdSql.checkData(0, 0, 10000)
|
||||
tdSql.execute("drop database if exists db")
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/insert-illegal-tags-count129.json -y " % binPath)
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/insertSigcolumnsNum1024.json -y " % binPath)
|
||||
tdSql.error("select * from db.stb0")
|
||||
tdSql.execute("drop database if exists db")
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/insertColumnsAndTagNum1024.json -y " % binPath)
|
||||
tdSql.query("select count(*) from db.stb0")
|
||||
tdSql.checkData(0, 0, 10000)
|
||||
tdSql.execute("drop database if exists db")
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/insertColumnsNum0.json -y " % binPath)
|
||||
tdSql.execute("use db")
|
||||
tdSql.query("show stables like 'stb0%' ")
|
||||
tdSql.checkData(0, 2, 11)
|
||||
tdSql.execute("drop database if exists db")
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/insertTagsNumLarge128.json -y " % binPath)
|
||||
tdSql.error("use db1")
|
||||
tdSql.execute("drop database if exists db")
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/insertBinaryLenLarge16374AllcolLar16384.json -y " % binPath)
|
||||
tdSql.query("select count(*) from db.stb0")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.query("select count(*) from db.stb1")
|
||||
tdSql.checkRows(1)
|
||||
tdSql.error("select * from db.stb3")
|
||||
tdSql.error("select * from db.stb2")
|
||||
tdSql.execute("drop database if exists db")
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/insertNumOfrecordPerReq0.json -y " % binPath)
|
||||
tdSql.error("select count(*) from db.stb0")
|
||||
tdSql.execute("drop database if exists db")
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/insertNumOfrecordPerReqless0.json -y " % binPath)
|
||||
tdSql.error("use db")
|
||||
tdSql.execute("drop database if exists db")
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/insertChildTab0.json -y " % binPath)
|
||||
tdSql.error("use db")
|
||||
tdSql.execute("drop database if exists db")
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/insertChildTabLess0.json -y " % binPath)
|
||||
tdSql.error("use db")
|
||||
tdSql.execute("drop database if exists blf")
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/insertTimestepMulRowsLargeint16.json -y " % binPath)
|
||||
tdSql.execute("use blf")
|
||||
tdSql.query("select ts from blf.p_0_topics_7 limit 262800,1")
|
||||
tdSql.checkData(0, 0, "2020-03-31 12:00:00.000")
|
||||
tdSql.query("select first(ts) from blf.p_0_topics_2")
|
||||
tdSql.checkData(0, 0, "2019-10-01 00:00:00")
|
||||
tdSql.query("select last(ts) from blf.p_0_topics_6 ")
|
||||
tdSql.checkData(0, 0, "2020-09-29 23:59:00")
|
||||
|
||||
|
||||
|
||||
# insert: timestamp and step
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/insert-timestep.json -y " % binPath)
|
||||
|
|
|
@ -49,10 +49,9 @@ class TDTestCase:
|
|||
tdLog.info("taosd found in %s" % buildPath)
|
||||
binPath = buildPath+ "/build/bin/"
|
||||
|
||||
# insert: drop and child_table_exists combination test
|
||||
# insert: using parament "childtable_offset and childtable_limit" to control table'offset point and offset
|
||||
# query: query specified table and query super table
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/speciQueryInsertdata.json" % binPath)
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/speciQuery.json" % binPath)
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/speciQueryTaosc.json" % binPath)
|
||||
os.system("cat query_res0.txt* |sort -u > all_query_res0.txt")
|
||||
os.system("cat query_res1.txt* |sort -u > all_query_res1.txt")
|
||||
os.system("cat query_res2.txt* |sort -u > all_query_res2.txt")
|
||||
|
@ -75,9 +74,55 @@ class TDTestCase:
|
|||
timest = d2.strftime("%Y-%m-%d %H:%M:%S.%f")
|
||||
tdSql.query("select last_row(ts) from stb1")
|
||||
tdSql.checkData(0, 0, "%s" % timest)
|
||||
|
||||
# # delete useless files
|
||||
# os.system("rm -rf ./insert_res.txt")
|
||||
# os.system("rm -rf tools/taosdemoAllTest/*.py.sql")
|
||||
# os.system("rm -rf ./querySystemInfo*")
|
||||
# os.system("rm -rf ./query_res*")
|
||||
# os.system("rm -rf ./all_query*")
|
||||
# os.system("rm -rf ./test_query_res0.txt")
|
||||
|
||||
|
||||
# # use restful api to query
|
||||
# os.system("%staosdemo -f tools/taosdemoAllTest/speciQueryInsertdata.json" % binPath)
|
||||
# os.system("%staosdemo -f tools/taosdemoAllTest/speciQueryRestful.json" % binPath)
|
||||
# os.system("cat query_res0.txt* |sort -u > all_query_res0.txt")
|
||||
# os.system("cat query_res1.txt* |sort -u > all_query_res1.txt")
|
||||
# # os.system("cat query_res2.txt* |sort -u > all_query_res2.txt")
|
||||
# tdSql.execute("use db")
|
||||
# tdSql.execute('create table result0 using stb0 tags(121,43,"beijing","beijing","beijing","beijing","beijing")')
|
||||
# os.system("python3 tools/taosdemoAllTest/convertResFile.py")
|
||||
# tdSql.execute("insert into result0 file './test_query_res0.txt'")
|
||||
# tdSql.query("select ts from result0")
|
||||
# tdSql.checkData(0, 0, "2020-11-01 00:00:00.099000")
|
||||
# tdSql.query("select count(*) from result0")
|
||||
# tdSql.checkData(0, 0, 1)
|
||||
# with open('./all_query_res1.txt','r+') as f1:
|
||||
# result1 = int(f1.readline())
|
||||
# tdSql.query("select count(*) from stb00_1")
|
||||
# tdSql.checkData(0, 0, "%d" % result1)
|
||||
|
||||
# with open('./all_query_res2.txt','r+') as f2:
|
||||
# result2 = int(f2.readline())
|
||||
# d2 = datetime.fromtimestamp(result2/1000)
|
||||
# timest = d2.strftime("%Y-%m-%d %H:%M:%S.%f")
|
||||
# tdSql.query("select last_row(ts) from stb1")
|
||||
# tdSql.checkData(0, 0, "%s" % timest)
|
||||
|
||||
|
||||
|
||||
# query times less than or equal to 100
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/querySpeciMutisql100.json" % binPath)
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/querySuperMutisql100.json" % binPath)
|
||||
|
||||
# query result print QPS
|
||||
os.system("%staosdemo -f tools/taosdemoAllTest/queryQps.json" % binPath)
|
||||
|
||||
|
||||
# delete useless files
|
||||
os.system("rm -rf ./insert_res.txt")
|
||||
os.system("rm -rf tools/taosdemoAllTest/taosdemoTestQuerytWithJson.py.sql")
|
||||
os.system("rm -rf tools/taosdemoAllTest/*.py.sql")
|
||||
os.system("rm -rf ./querySystemInfo*")
|
||||
os.system("rm -rf ./query_res*")
|
||||
os.system("rm -rf ./all_query*")
|
||||
|
|
|
@ -0,0 +1,99 @@
|
|||
###################################################################
|
||||
# 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 os
|
||||
from util.log import *
|
||||
from util.cases import *
|
||||
from util.sql import *
|
||||
from util.dnodes import *
|
||||
import time
|
||||
from datetime import datetime
|
||||
|
||||
class TDTestCase:
|
||||
def init(self, conn, logSql):
|
||||
tdLog.debug("start to execute %s" % __file__)
|
||||
tdSql.init(conn.cursor(), logSql)
|
||||
|
||||
def getBuildPath(self):
|
||||
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("/build/bin")]
|
||||
break
|
||||
return buildPath
|
||||
|
||||
def run(self):
|
||||
buildPath = self.getBuildPath()
|
||||
if (buildPath == ""):
|
||||
tdLog.exit("taosd not found!")
|
||||
else:
|
||||
tdLog.info("taosd found in %s" % buildPath)
|
||||
binPath = buildPath+ "/build/bin/"
|
||||
|
||||
# query: query specified table and query super table
|
||||
# os.system("%staosdemo -f tools/taosdemoAllTest/subInsertdata.json" % binPath)
|
||||
# os.system("%staosdemo -f tools/taosdemoAllTest/sub.json" % binPath)
|
||||
# os.system("cat query_res0.txt* |sort -u > all_query_res0.txt")
|
||||
# os.system("cat query_res1.txt* |sort -u > all_query_res1.txt")
|
||||
# os.system("cat query_res2.txt* |sort -u > all_query_res2.txt")
|
||||
# tdSql.execute("use db")
|
||||
# tdSql.execute('create table result0 using stb0 tags(121,43,"beijing","beijing","beijing","beijing","beijing")')
|
||||
# os.system("python3 tools/taosdemoAllTest/convertResFile.py")
|
||||
# tdSql.execute("insert into result0 file './test_query_res0.txt'")
|
||||
# tdSql.query("select ts from result0")
|
||||
# tdSql.checkData(0, 0, "2020-11-01 00:00:00.099000")
|
||||
# tdSql.query("select count(*) from result0")
|
||||
# tdSql.checkData(0, 0, 1)
|
||||
# with open('./all_query_res1.txt','r+') as f1:
|
||||
# result1 = int(f1.readline())
|
||||
# tdSql.query("select count(*) from stb00_1")
|
||||
# tdSql.checkData(0, 0, "%d" % result1)
|
||||
|
||||
# with open('./all_query_res2.txt','r+') as f2:
|
||||
# result2 = int(f2.readline())
|
||||
# d2 = datetime.fromtimestamp(result2/1000)
|
||||
# timest = d2.strftime("%Y-%m-%d %H:%M:%S.%f")
|
||||
# tdSql.query("select last_row(ts) from stb1")
|
||||
# tdSql.checkData(0, 0, "%s" % timest)
|
||||
|
||||
|
||||
# # query times less than or equal to 100
|
||||
# os.system("%staosdemo -f tools/taosdemoAllTest/QuerySpeciMutisql100.json" % binPath)
|
||||
# os.system("%staosdemo -f tools/taosdemoAllTest/QuerySuperMutisql100.json" % binPath)
|
||||
|
||||
|
||||
|
||||
|
||||
# delete useless files
|
||||
# os.system("rm -rf ./insert_res.txt")
|
||||
# os.system("rm -rf tools/taosdemoAllTest/*.py.sql")
|
||||
# os.system("rm -rf ./querySystemInfo*")
|
||||
# os.system("rm -rf ./query_res*")
|
||||
# os.system("rm -rf ./all_query*")
|
||||
# os.system("rm -rf ./test_query_res0.txt")
|
||||
|
||||
def stop(self):
|
||||
tdSql.close()
|
||||
tdLog.success("%s successfully executed" % __file__)
|
||||
|
||||
tdCases.addWindows(__file__, TDTestCase())
|
||||
tdCases.addLinux(__file__, TDTestCase())
|
|
@ -358,6 +358,13 @@ if $data00 != 0.300000000 then
|
|||
return -1
|
||||
endi
|
||||
|
||||
print =============================> td-3996
|
||||
sql select 'abc' as res from t1 where f1 < 0
|
||||
if $rows != 0 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
print ======================udc with normal column group by
|
||||
|
||||
sql_error select from t1
|
||||
|
|
|
@ -393,6 +393,19 @@ if $rows != 24 then
|
|||
return -1
|
||||
endi
|
||||
|
||||
print ========================> TD-3948
|
||||
sql drop table if exists meters
|
||||
sql create stable meters (ts timestamp, current float, voltage int, phase float) tags (location binary(64), groupId int);
|
||||
sql_error insert into td3948Err1(phase) using meters tags ("Beijng.Chaoyang", 2) (ts, current) values (now, 10.2);
|
||||
sql_error insert into td3948Err2(phase, voltage) using meters tags ("Beijng.Chaoyang", 2) (ts, current) values (now, 10.2);
|
||||
sql_error insert into td3948Err3(phase, current) using meters tags ("Beijng.Chaoyang", 2) (ts, current) values (now, 10.2);
|
||||
sql insert into td3948 using meters tags ("Beijng.Chaoyang", 2) (ts, current) values (now, 10.2);
|
||||
sql select count(ts) from td3948;
|
||||
if $rows != 1 then
|
||||
print expect 1, actual:$rows
|
||||
return -1
|
||||
endi
|
||||
|
||||
print ========================> TD-2740
|
||||
sql drop table if exists m1;
|
||||
sql create table m1(ts timestamp, k int) tags(a int);
|
||||
|
|
|
@ -139,6 +139,34 @@ if $data10 != 1 then
|
|||
return -1
|
||||
endi
|
||||
|
||||
sql select 'ab' as options from union_tb1 limit 1 union all select 'dd' as options from union_tb0 limit 1;
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data00 != @ab@ then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data10 != @dd@ then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
sql select 'ab' as options from union_tb1 limit 1 union all select '1234567' as options from union_tb0 limit 1;
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data00 != @ab@ then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data10 != @1234567@ then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
# mixed order
|
||||
sql select ts, c1 from union_tb1 order by ts asc limit 10 union all select ts, c1 from union_tb0 order by ts desc limit 2 union all select ts, c1 from union_tb2 order by ts asc limit 10
|
||||
if $rows != 22 then
|
||||
|
@ -421,8 +449,18 @@ if $data10 != @union_db0@ then
|
|||
return -1
|
||||
endi
|
||||
|
||||
sql select 'aaa' as option from union_tb1 where c1 < 0 limit 1 union all select 'bbb' as option from union_tb0 limit 1
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data00 != @bbb@ then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
sql_error show tables union all show tables
|
||||
sql_error show stables union all show stables
|
||||
sql_error show databases union all show databases
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
|
|
Loading…
Reference in New Issue