From b6e6de1b2b34e1a50772fbec52e413ac36d16ecb Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Wed, 29 Jul 2020 11:36:07 +0800 Subject: [PATCH 01/24] fix outdated package in pom.xml of opentsdb. [TD-1021] --- tests/comparisonTest/opentsdb/opentsdbtest/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/comparisonTest/opentsdb/opentsdbtest/pom.xml b/tests/comparisonTest/opentsdb/opentsdbtest/pom.xml index 4e307db079..52067343ef 100644 --- a/tests/comparisonTest/opentsdb/opentsdbtest/pom.xml +++ b/tests/comparisonTest/opentsdb/opentsdbtest/pom.xml @@ -94,7 +94,7 @@ com.google.guava guava - 24.1.1 + 29.0-jre From 10ebb178d3d2d98667a8e43f2c60fdaccc24179b Mon Sep 17 00:00:00 2001 From: Xiaxin Li <48907085+Aries-Lee1991@users.noreply.github.com> Date: Wed, 29 Jul 2020 12:03:23 +0800 Subject: [PATCH 02/24] Update Super Table-ch.md --- documentation/webdocs/markdowndocs/Super Table-ch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/webdocs/markdowndocs/Super Table-ch.md b/documentation/webdocs/markdowndocs/Super Table-ch.md index 5f592ec339..f45f2f91b1 100644 --- a/documentation/webdocs/markdowndocs/Super Table-ch.md +++ b/documentation/webdocs/markdowndocs/Super Table-ch.md @@ -4,7 +4,7 @@ TDengine要求每个数据采集点单独建表。独立建表的模式能够避 ## 什么是超级表 -STable是同一类型数据采集点的抽象,是同类型采集实例的集合,包含多张数据结构一样的子表。每个STable为其子表定义了表结构和一组标签:表结构即表中记录的数据列及其数据类型;标签名和数据类型由STable定义,标签值记录着每个子表的静态信息,用以对子表进行分组过滤。子表本质上就是普通的表,由一个时间戳主键和若干个数据列组成,每行记录着具体的数据,数据查询操作与普通表完全相同;但子表与普通表的区别在于每个子表从属于一张超级表,并带有一组由STable定义的标签值。每种类型的采集设备可以定义一个STable。数据模型定义表的每列数据的类型,如温度、压力、电压、电流、GPS实时位置等,而标签信息属于Meta Data,如采集设备的序列号、型号、位置等,是静态的,是表的元数据。用户在创建表(数据采集点)时指定STable(采集类型)外,还可以指定标签的值,也可事后增加或修改。 +超级表是同一类型数据采集点的抽象,是同类型采集实例的集合,包含多张数据结构一样的子表。每个STable为其子表定义了表结构和一组标签:表结构即表中记录的数据列及其数据类型;标签名和数据类型由STable定义,标签值记录着每个子表的静态信息,用以对子表进行分组过滤。子表本质上就是普通的表,由一个时间戳主键和若干个数据列组成,每行记录着具体的数据,数据查询操作与普通表完全相同;但子表与普通表的区别在于每个子表从属于一张超级表,并带有一组由STable定义的标签值。每种类型的采集设备可以定义一个STable。数据模型定义表的每列数据的类型,如温度、压力、电压、电流、GPS实时位置等,而标签信息属于Meta Data,如采集设备的序列号、型号、位置等,是静态的,是表的元数据。用户在创建表(数据采集点)时指定STable(采集类型)外,还可以指定标签的值,也可事后增加或修改。 TDengine扩展标准SQL语法用于定义STable,使用关键词tags指定标签信息。语法如下: From 2adc04b657cb45dbcf8b9bcbc655b28753cbbdf1 Mon Sep 17 00:00:00 2001 From: Hui Li Date: Wed, 29 Jul 2020 13:11:51 +0800 Subject: [PATCH 03/24] [update config parameters] --- packaging/cfg/taos.cfg | 176 +++++++++++++++++++++++------------------ 1 file changed, 101 insertions(+), 75 deletions(-) diff --git a/packaging/cfg/taos.cfg b/packaging/cfg/taos.cfg index 2d4ebb4095..08c18913d4 100644 --- a/packaging/cfg/taos.cfg +++ b/packaging/cfg/taos.cfg @@ -11,9 +11,6 @@ # second full-qualified domain name (FQDN) for TDengine system, for cluster edition only # second cluster_hostname2:6030 -# the arbitrator's full-qualified domain name (FQDN) for TDengine system, for cluster edition only -# arbitrator arbitrator_hostname:6030 - # the full-qualified domain name (FQDN) of dnode # fqdn hostname @@ -23,45 +20,61 @@ # http service port, default tcp [6020] # httpPort 6020 -# data file's directory -# dataDir /var/lib/taos - # log file's directory # logDir /var/log/taos -# number of management nodes in the system -# numOfMnodes 3 +# scriptDir file's directory +# scriptDir /var/log/taos -# optional roles for dnode. 0 - any, 1 - mnode, 2 - dnode -# role 0 +# data file's directory +# dataDir /var/lib/taos + +# the arbitrator's full-qualified domain name (FQDN) for TDengine system, for cluster edition only +# arbitrator arbitrator_hostname:6030 # number of threads per CPU core # numOfThreadsPerCore 1.0 -# max number of vgroups per db -# maxVgroupsPerDb 0 - -# max number of tables per vnode -# maxTablesPerVnode 1000000 - # the ratio of threads responsible for querying in the total thread # ratioOfQueryThreads 0.5 -# interval of DNode report status to MNode, unit is Second, for cluster version only -# statusInterval 1 +# number of management nodes in the system +# numOfMnodes 3 -# interval of Shell send HB to MNode, unit is Second -# shellActivityTimer 3 + +# if backup vnode directory when remove dnode +# vnodeBak 1 + +# Whether to start load balancing +# balance + +# The management node checks the time interval of load balancing under normal operation +# balanceInterval + +# optional roles for dnode. 0 - any, 1 - mnode, 2 - dnode +# role 0 + +# max timer control block +# maxTmrCtrl 512 # interval of system monitor # monitorInterval 30 +# number of seconds allowed for a dnode to be offline, for cluster version only +# offlineThreshold 8640000 + # RPC re-try timer, millisecond # rpcTimer 300 # RPC maximum time for ack, seconds # rpcMaxTime 600 +# interval of DNode report status to MNode, unit is Second, for cluster version only +# statusInterval 1 + +# interval of Shell send HB to MNode, unit is Second +# shellActivityTimer 3 + # duration of to keep tableMeta kept in Cache, seconds # tableMetaKeepTimer 7200 @@ -71,38 +84,41 @@ # Time window minimum # minIntervalTime 10 -# max length of an SQL -# maxSQLLength 65480 +# the max allowed delayed time for launching continuous query. 20ms by default +# maxStreamCompDelay 20000 -# Support the maximum number of records allowed for super table time sorting -# maxNumOfOrderedRes 100000 +# The minimum time to wait before the first stream execution +# maxFirstStreamCompDelay 10000 -# system locale -# locale en_US.UTF-8 +# Retry wait time benchmark +# retryStreamCompDelay 10 -# default system charset -# charset UTF-8 +# the delayed time for launching each continuous query. 10% of the whole computing time window by default. +# streamCompDelayRatio 0.1 -# system time zone -# timezone Asia/Shanghai (CST, +0800) +# max number of vgroups per db +# maxVgroupsPerDb 0 -# set write ahead log (WAL) level -# walLevel 1 +# max number of tables per vnode +# maxTablesPerVnode 1000000 -# enable/disable async log -# asyncLog 1 +# Minimum number of tables in each vnode +# minTablesPerVnode 100 -# the compressed rpc message, option: -# -1 (no compression) -# 0 (all message compressed), -# > 0 (rpc message body which larger than this value will be compressed) -# compressMsgSize -1 +# Step size of increasing table number in vnode +# tableIncStepPerVnode 1000 # cache block size (Mbyte) -# cache 16 +# cache 16 # number of cache blocks per vnode -# blocks 4 +# blocks 6 + +# number of days per DB file +# days 10 + +# number of days to keep DB file +# keep 3650 # min row of records in file block # minRows 100 @@ -111,17 +127,44 @@ # maxRows 4096 # enable/disable compression -# comp 1 +# comp 2 -# number of days per DB file -# days 10 +# set write ahead log (WAL) level +# walLevel 1 -# number of days to keep DB file -# keep 3650 +# When walLevel is set to 2, the cycle of fsync is executed +# fsync 3000 # number of replications, for cluster version only # replica 1 +# mqtt uri +# mqttBrokerAddress mqtt://username:password@hostname:1883/taos/ + +# mqtt client name +# mqttBrokerClientId taos_mqtt + +# the compressed rpc message, option: +# -1 (no compression) +# 0 (all message compressed), +# > 0 (rpc message body which larger than this value will be compressed) +# compressMsgSize -1 + +# max length of an SQL +# maxSQLLength 65480 + +# Support the maximum number of records allowed for super table time sorting +# maxNumOfOrderedRes 100000 + +# system time zone +# timezone Asia/Shanghai (CST, +0800) + +# system locale +# locale en_US.UTF-8 + +# default system charset +# charset UTF-8 + # max number of connections from client for dnode # maxShellConns 5000 @@ -137,50 +180,36 @@ # Stop writing data when the disk size of the log folder is less than this value # minimalDataDirGB 0.1 -# number of seconds allowed for a dnode to be offline, for cluster version only -# offlineThreshold 8640000 - # start http service # http 1 -# start system monitor module -# monitor 1 - # start muqq service # mqtt 0 -# mqtt uri -# mqttBrokerAddress mqtt://username:password@hostname:1883/taos/ +# start system monitor module +# monitor 1 -# mqtt client name -# mqttBrokerClientId taos_mqtt - -# maximum number of rows returned by the restful interface -# restfulRowLimit 10240 +# Record the SQL through restful interface +# httpEnableRecordSql 0 # number of threads used to process http requests # httpMaxThreads 2 -# The minimum time to wait before the first stream execution -# maxFirstStreamCompDelay 10000 - -# Retry wait time benchmark -# retryStreamCompDelay 10 - -# the delayed time for launching each continuous query. 10% of the whole computing time window by default. -# streamCompDelayRatio 0.1 - -# the max allowed delayed time for launching continuous query. 20ms by default -# maxStreamCompDelay 20000 +# maximum number of rows returned by the restful interface +# restfulRowLimit 10240 # The following parameter is used to limit the maximum number of lines in log files. # max number of rows per log filters # numOfLogLines 10000000 +# enable/disable async log +# asyncLog 1 + # The following parameters are used for debug purpose only. # debugFlag 8 bits mask: FILE-SCREEN-UNUSED-HeartBeat-DUMP-TRACE_WARN-ERROR -# 131: output warning and error,135: output info, warning and error to log. -# 199: output debug, info, warning and error to both screen and file +# 131: output warning and error, 135: output debug, warning and error, 143 : output trace, debug, warning and error to log. +# 199: output debug, warning and error to both screen and file +# 207: output trace, debug, warning and error to both screen and file # debug flag for all log type, take effect when non-zero value # debugFlag 0 @@ -236,9 +265,6 @@ # debug flag for http server # tsdbDebugFlag 131 -# Record the SQL through restful interface -# httpEnableRecordSql 0 - # Record the SQL in taos client # tscEnableRecordSql 0 From a78c6232f96124ca0a62ff6e5e6aa02b82f0f4b4 Mon Sep 17 00:00:00 2001 From: Jeff Tao Date: Wed, 29 Jul 2020 05:24:34 +0000 Subject: [PATCH 04/24] set socket option --- src/util/src/tsocket.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/util/src/tsocket.c b/src/util/src/tsocket.c index f95cae25e9..6f4d2b8afd 100644 --- a/src/util/src/tsocket.c +++ b/src/util/src/tsocket.c @@ -304,10 +304,10 @@ int taosOpenTcpClientSocket(uint32_t destIp, uint16_t destPort, uint32_t clientI //uError("failed to connect socket, ip:0x%x, port:%hu(%s)", destIp, destPort, strerror(errno)); close(sockFd); sockFd = -1; + } else { + taosKeepTcpAlive(sockFd); } - taosKeepTcpAlive(sockFd); - return sockFd; } From 3219bf14e2ed0235c53254d2fec1daf4e69d06d8 Mon Sep 17 00:00:00 2001 From: Hui Li Date: Wed, 29 Jul 2020 13:32:13 +0800 Subject: [PATCH 05/24] [update config parameter] --- packaging/cfg/taos.cfg | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/packaging/cfg/taos.cfg b/packaging/cfg/taos.cfg index 08c18913d4..f2dbc04353 100644 --- a/packaging/cfg/taos.cfg +++ b/packaging/cfg/taos.cfg @@ -41,15 +41,11 @@ # number of management nodes in the system # numOfMnodes 3 - # if backup vnode directory when remove dnode # vnodeBak 1 # Whether to start load balancing -# balance - -# The management node checks the time interval of load balancing under normal operation -# balanceInterval +# balance 1 # optional roles for dnode. 0 - any, 1 - mnode, 2 - dnode # role 0 @@ -102,9 +98,6 @@ # max number of tables per vnode # maxTablesPerVnode 1000000 -# Minimum number of tables in each vnode -# minTablesPerVnode 100 - # Step size of increasing table number in vnode # tableIncStepPerVnode 1000 From b9562193b8ab8d62ca6df0b722bed774826d7b48 Mon Sep 17 00:00:00 2001 From: Yiqing Liu Date: Wed, 29 Jul 2020 13:34:38 +0800 Subject: [PATCH 06/24] Update administrator-ch.md --- documentation/webdocs/markdowndocs/administrator-ch.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/documentation/webdocs/markdowndocs/administrator-ch.md b/documentation/webdocs/markdowndocs/administrator-ch.md index 289f2dbf91..b48cf23995 100644 --- a/documentation/webdocs/markdowndocs/administrator-ch.md +++ b/documentation/webdocs/markdowndocs/administrator-ch.md @@ -16,9 +16,9 @@ TDengine的所有可执行文件默认存放在 _/usr/local/taos/bin_ 目录下。其中包括: -- _taosd_:TDengine服务端可执行文件 -- _taos_: TDengine Shell可执行文件 -- _taosdump_:数据导出工具 +- _taosd_:TDengine服务端可执行文件。 +- _taos_: TDengine Shell可执行文件。 +- _taosdump_:数据导出工具。 - *rmtaos*: 卸载TDengine的脚本, 该脚本会删除全部的程序和数据文件。请务必谨慎执行,如非必须不建议使用。 您可以通过修改系统配置文件taos.cfg来配置不同的数据目录和日志目录 From c96bf8b37d98d7463e33ebcddf1fef5f6cf06e14 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Wed, 29 Jul 2020 13:56:54 +0800 Subject: [PATCH 07/24] [td-225] fix deadlock for client during query. --- src/query/src/qExecutor.c | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/src/query/src/qExecutor.c b/src/query/src/qExecutor.c index 704a383be2..333a8eff63 100644 --- a/src/query/src/qExecutor.c +++ b/src/query/src/qExecutor.c @@ -6293,6 +6293,19 @@ static void setQueryResultReady(SQInfo* pQInfo) { pthread_mutex_unlock(&pQInfo->lock); } +static bool doBuildResCheck(SQInfo* pQInfo) { + bool buildRes = false; + + pthread_mutex_lock(&pQInfo->lock); + + pQInfo->dataReady = QUERY_RESULT_READY; + buildRes = (pQInfo->rspContext != NULL); + + pthread_mutex_unlock(&pQInfo->lock); + + return buildRes; +} + bool qTableQuery(qinfo_t qinfo) { SQInfo *pQInfo = (SQInfo *)qinfo; @@ -6303,16 +6316,13 @@ bool qTableQuery(qinfo_t qinfo) { if (IS_QUERY_KILLED(pQInfo)) { qDebug("QInfo:%p it is already killed, abort", pQInfo); - setQueryResultReady(pQInfo); - return false; + return doBuildResCheck(pQInfo); } if (pQInfo->tableqinfoGroupInfo.numOfTables == 0) { - setQueryStatus(pQInfo->runtimeEnv.pQuery, QUERY_COMPLETED); - setQueryResultReady(pQInfo); - qDebug("QInfo:%p no table exists for query, abort", pQInfo); - return false; + setQueryStatus(pQInfo->runtimeEnv.pQuery, QUERY_COMPLETED); + return doBuildResCheck(pQInfo); } // error occurs, record the error code and return to client @@ -6320,9 +6330,7 @@ bool qTableQuery(qinfo_t qinfo) { if (ret != TSDB_CODE_SUCCESS) { pQInfo->code = ret; qDebug("QInfo:%p query abort due to error/cancel occurs, code:%s", pQInfo, tstrerror(pQInfo->code)); - - setQueryResultReady(pQInfo); - return false; + return doBuildResCheck(pQInfo); } qDebug("QInfo:%p query task is launched", pQInfo); @@ -6347,17 +6355,7 @@ bool qTableQuery(qinfo_t qinfo) { pQInfo, pQuery->rec.rows, pQuery->rec.total + pQuery->rec.rows); } - bool buildRes = false; - pthread_mutex_lock(&pQInfo->lock); - pQInfo->dataReady = QUERY_RESULT_READY; - - if (pQInfo->rspContext != NULL) { - buildRes = true; - } - - - pthread_mutex_unlock(&pQInfo->lock); - return buildRes; + return doBuildResCheck(pQInfo); } int32_t qRetrieveQueryResultInfo(qinfo_t qinfo, bool* buildRes, void* pRspContext) { @@ -6484,7 +6482,6 @@ int32_t qKillQuery(qinfo_t qinfo) { return TSDB_CODE_QRY_INVALID_QHANDLE; } -// sem_post(&pQInfo->dataReady); setQueryKilled(pQInfo); return TSDB_CODE_SUCCESS; } From cf509b85e1f70cb41a25310d9ef1249bba843f88 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Wed, 29 Jul 2020 14:19:58 +0800 Subject: [PATCH 08/24] [td-225] fix compiler error, refactor codes. --- src/client/inc/tsclient.h | 13 ++++++------- src/client/src/tscParseInsert.c | 6 +++--- src/client/src/tscSQLParser.c | 16 ++++++++-------- src/client/src/tscSchemaUtil.c | 4 ++-- src/client/src/tscServer.c | 22 +++++++++++----------- src/client/src/tscSub.c | 2 +- src/client/src/tscSubquery.c | 14 +++++++------- src/client/src/tscUtil.c | 6 +++--- src/query/src/qExecutor.c | 6 ------ src/util/inc/talgo.h | 2 -- 10 files changed, 41 insertions(+), 50 deletions(-) diff --git a/src/client/inc/tsclient.h b/src/client/inc/tsclient.h index 7efcd54cfd..7a44870938 100644 --- a/src/client/inc/tsclient.h +++ b/src/client/inc/tsclient.h @@ -60,15 +60,14 @@ typedef struct SCMCorVgroupInfo { } SCMCorVgroupInfo; typedef struct STableMeta { - STableComInfo tableInfo; - uint8_t tableType; - int16_t sversion; - int16_t tversion; + STableComInfo tableInfo; + uint8_t tableType; + int16_t sversion; + int16_t tversion; SCMVgroupInfo vgroupInfo; SCMCorVgroupInfo corVgroupInfo; - int32_t sid; // the index of one table in a virtual node - uint64_t uid; // unique id of a table - SSchema schema[]; // if the table is TSDB_CHILD_TABLE, schema is acquired by super table meta info + STableId id; + SSchema schema[]; // if the table is TSDB_CHILD_TABLE, schema is acquired by super table meta info } STableMeta; typedef struct STableMetaInfo { diff --git a/src/client/src/tscParseInsert.c b/src/client/src/tscParseInsert.c index 232ea52ded..ae2370cd56 100644 --- a/src/client/src/tscParseInsert.c +++ b/src/client/src/tscParseInsert.c @@ -629,8 +629,8 @@ int32_t tscAllocateMemIfNeed(STableDataBlocks *pDataBlock, int32_t rowSize, int3 } static void tsSetBlockInfo(SSubmitBlk *pBlocks, const STableMeta *pTableMeta, int32_t numOfRows) { - pBlocks->tid = pTableMeta->sid; - pBlocks->uid = pTableMeta->uid; + pBlocks->tid = pTableMeta->id.tid; + pBlocks->uid = pTableMeta->id.uid; pBlocks->sversion = pTableMeta->sversion; pBlocks->numOfRows += numOfRows; } @@ -686,7 +686,7 @@ static int32_t doParseInsertStatement(SSqlObj *pSql, void *pTableList, char **st STableComInfo tinfo = tscGetTableInfo(pTableMeta); STableDataBlocks *dataBuf = NULL; - int32_t ret = tscGetDataBlockFromList(pTableList, pCmd->pDataBlocks, pTableMeta->uid, TSDB_DEFAULT_PAYLOAD_SIZE, + int32_t ret = tscGetDataBlockFromList(pTableList, pCmd->pDataBlocks, pTableMeta->id.uid, TSDB_DEFAULT_PAYLOAD_SIZE, sizeof(SSubmitBlk), tinfo.rowSize, pTableMetaInfo->name, pTableMeta, &dataBuf); if (ret != TSDB_CODE_SUCCESS) { diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index f58431849c..9488b37fe3 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -635,7 +635,7 @@ int32_t parseIntervalClause(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, SQuerySQL* pQ int32_t tableIndex = COLUMN_INDEX_INITIAL_VAL; for (int32_t i = 0; i < pQueryInfo->numOfTables; ++i) { pTableMetaInfo = tscGetMetaInfo(pQueryInfo, i); - if (pTableMetaInfo->pTableMeta->uid == uid) { + if (pTableMetaInfo->pTableMeta->id.uid == uid) { tableIndex = i; break; } @@ -3053,7 +3053,7 @@ static int32_t getJoinCondInfo(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, tSQLExpr* STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, index.tableIndex); SSchema* pTagSchema1 = tscGetTableColumnSchema(pTableMetaInfo->pTableMeta, index.columnIndex); - pLeft->uid = pTableMetaInfo->pTableMeta->uid; + pLeft->uid = pTableMetaInfo->pTableMeta->id.uid; pLeft->tagColId = pTagSchema1->colId; strcpy(pLeft->tableId, pTableMetaInfo->name); @@ -3065,7 +3065,7 @@ static int32_t getJoinCondInfo(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, tSQLExpr* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, index.tableIndex); SSchema* pTagSchema2 = tscGetTableColumnSchema(pTableMetaInfo->pTableMeta, index.columnIndex); - pRight->uid = pTableMetaInfo->pTableMeta->uid; + pRight->uid = pTableMetaInfo->pTableMeta->id.uid; pRight->tagColId = pTagSchema2->colId; strcpy(pRight->tableId, pTableMetaInfo->name); @@ -3603,7 +3603,7 @@ static int32_t setTableCondForSTableQuery(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, tableCondIndex); STagCond* pTagCond = &pQueryInfo->tagCond; - pTagCond->tbnameCond.uid = pTableMetaInfo->pTableMeta->uid; + pTagCond->tbnameCond.uid = pTableMetaInfo->pTableMeta->id.uid; assert(pExpr->nSQLOptr == TK_LIKE || pExpr->nSQLOptr == TK_IN); @@ -3840,7 +3840,7 @@ static int32_t getTagQueryCondExpr(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, SCondE // add to source column list STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, i); - int64_t uid = pTableMetaInfo->pTableMeta->uid; + int64_t uid = pTableMetaInfo->pTableMeta->id.uid; int32_t numOfCols = tscGetNumOfColumns(pTableMetaInfo->pTableMeta); size_t num = taosArrayGetSize(colList); @@ -4506,8 +4506,8 @@ int32_t setAlterTableInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) { SUpdateTableTagValMsg* pUpdateMsg = (SUpdateTableTagValMsg*) pCmd->payload; pUpdateMsg->head.vgId = htonl(pTableMeta->vgroupInfo.vgId); - pUpdateMsg->tid = htonl(pTableMeta->sid); - pUpdateMsg->uid = htobe64(pTableMeta->uid); + pUpdateMsg->tid = htonl(pTableMeta->id.tid); + pUpdateMsg->uid = htobe64(pTableMeta->id.uid); pUpdateMsg->colId = htons(pTagsSchema->colId); pUpdateMsg->type = pTagsSchema->type; pUpdateMsg->bytes = htons(pTagsSchema->bytes); @@ -5045,7 +5045,7 @@ void addGroupInfoForSubquery(SSqlObj* pParentObj, SSqlObj* pSql, int32_t subClau if (pExpr->functionId != TSDB_FUNC_TAG) { STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, tableIndex); - int16_t columnInfo = tscGetJoinTagColIdByUid(&pQueryInfo->tagCond, pTableMetaInfo->pTableMeta->uid); + int16_t columnInfo = tscGetJoinTagColIdByUid(&pQueryInfo->tagCond, pTableMetaInfo->pTableMeta->id.uid); SColumnIndex index = {.tableIndex = 0, .columnIndex = columnInfo}; SSchema* pSchema = tscGetTableTagSchema(pTableMetaInfo->pTableMeta); diff --git a/src/client/src/tscSchemaUtil.c b/src/client/src/tscSchemaUtil.c index 9b8f48b109..63607b7a86 100644 --- a/src/client/src/tscSchemaUtil.c +++ b/src/client/src/tscSchemaUtil.c @@ -162,8 +162,8 @@ STableMeta* tscCreateTableMetaFromMsg(STableMetaMsg* pTableMetaMsg, size_t* size .numOfColumns = pTableMetaMsg->numOfColumns, }; - pTableMeta->sid = pTableMetaMsg->sid; - pTableMeta->uid = pTableMetaMsg->uid; + pTableMeta->id.tid = pTableMetaMsg->sid; + pTableMeta->id.uid = pTableMetaMsg->uid; pTableMeta->vgroupInfo = pTableMetaMsg->vgroup; tscInitCorVgroupInfo(&pTableMeta->corVgroupInfo, &pTableMeta->vgroupInfo); diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 6c1faf6f9d..521280af87 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -605,9 +605,9 @@ static char *doSerializeTableInfo(SQueryTableMsg* pQueryMsg, SSqlObj *pSql, char } STableIdInfo *pTableIdInfo = (STableIdInfo *)pMsg; - pTableIdInfo->tid = htonl(pTableMeta->sid); - pTableIdInfo->uid = htobe64(pTableMeta->uid); - pTableIdInfo->key = htobe64(tscGetSubscriptionProgress(pSql->pSubscription, pTableMeta->uid, dfltKey)); + pTableIdInfo->tid = htonl(pTableMeta->id.tid); + pTableIdInfo->uid = htobe64(pTableMeta->id.uid); + pTableIdInfo->key = htobe64(tscGetSubscriptionProgress(pSql->pSubscription, pTableMeta->id.uid, dfltKey)); pQueryMsg->numOfTables = htonl(1); // set the number of tables pMsg += sizeof(STableIdInfo); @@ -640,7 +640,7 @@ static char *doSerializeTableInfo(SQueryTableMsg* pQueryMsg, SSqlObj *pSql, char } tscDebug("%p vgId:%d, query on table:%s, tid:%d, uid:%" PRIu64, pSql, htonl(pQueryMsg->head.vgId), pTableMetaInfo->name, - pTableMeta->sid, pTableMeta->uid); + pTableMeta->id.tid, pTableMeta->id.uid); return pMsg; } @@ -714,8 +714,8 @@ int tscBuildQueryMsg(SSqlObj *pSql, SSqlInfo *pInfo) { if (pCol->colIndex.columnIndex >= tscGetNumOfColumns(pTableMeta) || pColSchema->type < TSDB_DATA_TYPE_BOOL || pColSchema->type > TSDB_DATA_TYPE_NCHAR) { - tscError("%p sid:%d uid:%" PRIu64" id:%s, column index out of range, numOfColumns:%d, index:%d, column name:%s", - pSql, pTableMeta->sid, pTableMeta->uid, pTableMetaInfo->name, tscGetNumOfColumns(pTableMeta), pCol->colIndex.columnIndex, + tscError("%p tid:%d uid:%" PRIu64" id:%s, column index out of range, numOfColumns:%d, index:%d, column name:%s", + pSql, pTableMeta->id.tid, pTableMeta->id.uid, pTableMetaInfo->name, tscGetNumOfColumns(pTableMeta), pCol->colIndex.columnIndex, pColSchema->name); return TSDB_CODE_TSC_INVALID_SQL; @@ -833,8 +833,8 @@ int tscBuildQueryMsg(SSqlObj *pSql, SSqlInfo *pInfo) { if ((pCol->colIndex.columnIndex >= numOfTagColumns || pCol->colIndex.columnIndex < -1) || (pColSchema->type < TSDB_DATA_TYPE_BOOL || pColSchema->type > TSDB_DATA_TYPE_NCHAR)) { - tscError("%p sid:%d uid:%" PRIu64 " id:%s, tag index out of range, totalCols:%d, numOfTags:%d, index:%d, column name:%s", - pSql, pTableMeta->sid, pTableMeta->uid, pTableMetaInfo->name, total, numOfTagColumns, + tscError("%p tid:%d uid:%" PRIu64 " id:%s, tag index out of range, totalCols:%d, numOfTags:%d, index:%d, column name:%s", + pSql, pTableMeta->id.tid, pTableMeta->id.uid, pTableMetaInfo->name, total, numOfTagColumns, pCol->colIndex.columnIndex, pColSchema->name); return TSDB_CODE_TSC_INVALID_SQL; @@ -855,7 +855,7 @@ int tscBuildQueryMsg(SSqlObj *pSql, SSqlInfo *pInfo) { if (pQueryInfo->tagCond.pCond != NULL && taosArrayGetSize(pQueryInfo->tagCond.pCond) > 0) { STagCond* pTagCond = &pQueryInfo->tagCond; - SCond *pCond = tsGetSTableQueryCond(pTagCond, pTableMeta->uid); + SCond *pCond = tsGetSTableQueryCond(pTagCond, pTableMeta->id.uid); if (pCond != NULL && pCond->cond != NULL) { pQueryMsg->tagCondLen = htons(pCond->len); memcpy(pMsg, pCond->cond, pCond->len); @@ -1739,7 +1739,7 @@ int tscProcessTableMetaRsp(SSqlObj *pSql) { return TSDB_CODE_TSC_OUT_OF_MEMORY; } - tscDebug("%p recv table meta, uid:%"PRId64 ", tid:%d, name:%s", pSql, pTableMeta->uid, pTableMeta->sid, pTableMetaInfo->name); + tscDebug("%p recv table meta, uid:%"PRId64 ", tid:%d, name:%s", pSql, pTableMeta->id.uid, pTableMeta->id.tid, pTableMetaInfo->name); free(pTableMeta); return TSDB_CODE_SUCCESS; @@ -2215,7 +2215,7 @@ int tscRenewTableMeta(SSqlObj *pSql, char *tableId) { STableMeta* pTableMeta = pTableMetaInfo->pTableMeta; if (pTableMetaInfo->pTableMeta) { tscDebug("%p update table meta, old meta numOfTags:%d, numOfCols:%d, uid:%" PRId64 ", addr:%p", pSql, - tscGetNumOfTags(pTableMeta), tscGetNumOfColumns(pTableMeta), pTableMeta->uid, pTableMeta); + tscGetNumOfTags(pTableMeta), tscGetNumOfColumns(pTableMeta), pTableMeta->id.uid, pTableMeta); } taosCacheRelease(tscCacheHandle, (void **)&(pTableMetaInfo->pTableMeta), true); diff --git a/src/client/src/tscSub.c b/src/client/src/tscSub.c index 8e554d62ff..1ed6106a89 100644 --- a/src/client/src/tscSub.c +++ b/src/client/src/tscSub.c @@ -241,7 +241,7 @@ static int tscUpdateSubscription(STscObj* pObj, SSub* pSub) { STableMetaInfo *pTableMetaInfo = tscGetTableMetaInfoFromCmd(pCmd, pCmd->clauseIndex, 0); if (UTIL_TABLE_IS_NORMAL_TABLE(pTableMetaInfo)) { STableMeta * pTableMeta = pTableMetaInfo->pTableMeta; - SSubscriptionProgress target = {.uid = pTableMeta->uid, .key = 0}; + SSubscriptionProgress target = {.uid = pTableMeta->id.uid, .key = 0}; SSubscriptionProgress* p = taosArraySearch(pSub->progress, &target, tscCompareSubscriptionProgress); if (p == NULL) { taosArrayClear(pSub->progress); diff --git a/src/client/src/tscSubquery.c b/src/client/src/tscSubquery.c index 95d65f4aff..15e02799aa 100644 --- a/src/client/src/tscSubquery.c +++ b/src/client/src/tscSubquery.c @@ -180,7 +180,7 @@ SJoinSupporter* tscCreateJoinSupporter(SSqlObj* pSql, SSubqueryState* pState, in pSupporter->limit = pQueryInfo->limit; STableMetaInfo* pTableMetaInfo = tscGetTableMetaInfoFromCmd(&pSql->cmd, pSql->cmd.clauseIndex, index); - pSupporter->uid = pTableMetaInfo->pTableMeta->uid; + pSupporter->uid = pTableMetaInfo->pTableMeta->id.uid; assert (pSupporter->uid != 0); getTmpfilePath("join-", pSupporter->path); @@ -355,7 +355,7 @@ static int32_t tscLaunchRealSubqueries(SSqlObj* pSql) { // set the join condition tag column info, to do extract method if (UTIL_TABLE_IS_SUPER_TABLE(pTableMetaInfo)) { assert(pQueryInfo->tagCond.joinInfo.hasJoin); - int16_t colId = tscGetJoinTagColIdByUid(&pQueryInfo->tagCond, pTableMetaInfo->pTableMeta->uid); + int16_t colId = tscGetJoinTagColIdByUid(&pQueryInfo->tagCond, pTableMetaInfo->pTableMeta->id.uid); pExpr->param[0].i64Key = colId; pExpr->numOfParams = 1; @@ -499,7 +499,7 @@ static void issueTSCompQuery(SSqlObj* pSql, SJoinSupporter* pSupporter, SSqlObj* // set the tags value for ts_comp function if (UTIL_TABLE_IS_SUPER_TABLE(pTableMetaInfo)) { SSqlExpr *pExpr = tscSqlExprGet(pQueryInfo, 0); - int16_t tagColId = tscGetJoinTagColIdByUid(&pSupporter->tagCond, pTableMetaInfo->pTableMeta->uid); + int16_t tagColId = tscGetJoinTagColIdByUid(&pSupporter->tagCond, pTableMetaInfo->pTableMeta->id.uid); pExpr->param->i64Key = tagColId; pExpr->numOfParams = 1; } @@ -560,7 +560,7 @@ static int32_t getIntersectionOfTableTuple(SQueryInfo* pQueryInfo, SSqlObj* pPar qsort(p2->pIdTagList, p2->num, p2->tagSize, tscCompareTidTags); STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); - int16_t tagColId = tscGetJoinTagColIdByUid(&pQueryInfo->tagCond, pTableMetaInfo->pTableMeta->uid); + int16_t tagColId = tscGetJoinTagColIdByUid(&pQueryInfo->tagCond, pTableMetaInfo->pTableMeta->id.uid); SSchema* pColSchema = tscGetTableColumnSchemaById(pTableMetaInfo->pTableMeta, tagColId); @@ -1034,7 +1034,7 @@ void tscSetupOutputColumnIndex(SSqlObj* pSql) { int32_t tableIndexOfSub = -1; for (int32_t j = 0; j < pQueryInfo->numOfTables; ++j) { STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, j); - if (pTableMetaInfo->pTableMeta->uid == pExpr->uid) { + if (pTableMetaInfo->pTableMeta->id.uid == pExpr->uid) { tableIndexOfSub = j; break; } @@ -1205,7 +1205,7 @@ int32_t tscLaunchJoinSubquery(SSqlObj *pSql, int16_t tableIndex, SJoinSupporter STagCond* pTagCond = &pSupporter->tagCond; assert(pTagCond->joinInfo.hasJoin); - int32_t tagColId = tscGetJoinTagColIdByUid(pTagCond, pTableMetaInfo->pTableMeta->uid); + int32_t tagColId = tscGetJoinTagColIdByUid(pTagCond, pTableMetaInfo->pTableMeta->id.uid); SSchema* s = tscGetTableColumnSchemaById(pTableMetaInfo->pTableMeta, tagColId); int16_t bytes = 0; @@ -1237,7 +1237,7 @@ int32_t tscLaunchJoinSubquery(SSqlObj *pSql, int16_t tableIndex, SJoinSupporter SSqlExpr *pExpr = tscSqlExprGet(pNewQueryInfo, 0); if (UTIL_TABLE_IS_SUPER_TABLE(pTableMetaInfo)) { - int16_t tagColId = tscGetJoinTagColIdByUid(&pSupporter->tagCond, pTableMetaInfo->pTableMeta->uid); + int16_t tagColId = tscGetJoinTagColIdByUid(&pSupporter->tagCond, pTableMetaInfo->pTableMeta->id.uid); pExpr->param->i64Key = tagColId; pExpr->numOfParams = 1; } diff --git a/src/client/src/tscUtil.c b/src/client/src/tscUtil.c index e7fa2a84a9..73d6f0e592 100644 --- a/src/client/src/tscUtil.c +++ b/src/client/src/tscUtil.c @@ -955,7 +955,7 @@ static SSqlExpr* doBuildSqlExpr(SQueryInfo* pQueryInfo, int16_t functionId, SCol pExpr->interBytes = interSize; if (pTableMetaInfo->pTableMeta) { - pExpr->uid = pTableMetaInfo->pTableMeta->uid; + pExpr->uid = pTableMetaInfo->pTableMeta->id.uid; } return pExpr; @@ -1482,7 +1482,7 @@ STableMetaInfo* tscGetTableMetaInfoByUid(SQueryInfo* pQueryInfo, uint64_t uid, i int32_t k = -1; for (int32_t i = 0; i < pQueryInfo->numOfTables; ++i) { - if (pQueryInfo->pTableMetaInfo[i]->pTableMeta->uid == uid) { + if (pQueryInfo->pTableMetaInfo[i]->pTableMeta->id.uid == uid) { k = i; break; } @@ -1760,7 +1760,7 @@ SSqlObj* createSubqueryObj(SSqlObj* pSql, int16_t tableIndex, void (*fp)(), void TSDB_QUERY_SET_TYPE(pNewQueryInfo->type, TSDB_QUERY_TYPE_SUBQUERY);// it must be the subquery } - uint64_t uid = pTableMetaInfo->pTableMeta->uid; + uint64_t uid = pTableMetaInfo->pTableMeta->id.uid; tscSqlExprCopy(pNewQueryInfo->exprList, pQueryInfo->exprList, uid, true); int32_t numOfOutput = tscSqlExprNumOfExprs(pNewQueryInfo); diff --git a/src/query/src/qExecutor.c b/src/query/src/qExecutor.c index 333a8eff63..6efc8a827e 100644 --- a/src/query/src/qExecutor.c +++ b/src/query/src/qExecutor.c @@ -6287,12 +6287,6 @@ void qDestroyQueryInfo(qinfo_t qHandle) { freeQInfo(pQInfo); } -static void setQueryResultReady(SQInfo* pQInfo) { - pthread_mutex_lock(&pQInfo->lock); - pQInfo->dataReady = QUERY_RESULT_READY; - pthread_mutex_unlock(&pQInfo->lock); -} - static bool doBuildResCheck(SQInfo* pQInfo) { bool buildRes = false; diff --git a/src/util/inc/talgo.h b/src/util/inc/talgo.h index 5de8a302b1..e71e340a21 100644 --- a/src/util/inc/talgo.h +++ b/src/util/inc/talgo.h @@ -20,8 +20,6 @@ extern "C" { #endif -#include "os.h" - #define TD_EQ 0x1 #define TD_GT 0x2 #define TD_LT 0x4 From 80f838a255dbdb41f413a5ad311ab2c0a8ac5f6b Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Wed, 29 Jul 2020 15:36:42 +0800 Subject: [PATCH 09/24] add pip3 psutil to CI for crash_gen. [TD-1022] --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 6a4acce451..4afdb6154e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -52,7 +52,8 @@ matrix: cd ${TRAVIS_BUILD_DIR}/debug make install > /dev/null || travis_terminate $? - pip3 install numpy + py3ver=`python3 --version|awk '{print $2}'|cut -d "." -f 1,2` && apt install python$py3ver-dev + pip3 install psutil pip3 install --user ${TRAVIS_BUILD_DIR}/src/connector/python/linux/python3/ cd ${TRAVIS_BUILD_DIR}/tests From 70dd2be627d7cee9f361b6bef060ff4dcc31c371 Mon Sep 17 00:00:00 2001 From: Hui Li Date: Wed, 29 Jul 2020 16:42:36 +0800 Subject: [PATCH 10/24] [modify cases] --- .../unique/clusterSimCase/client-01.sim | 4 +-- .../unique/clusterSimCase/client-02.sim | 20 +++++++------- .../unique/clusterSimCase/client-03.sim | 27 ++++++++++--------- .../unique/clusterSimCase/client-04.sim | 20 +++++++------- .../unique/clusterSimCase/client-05.sim | 20 +++++++------- .../unique/clusterSimCase/client-06.sim | 20 +++++++------- .../unique/clusterSimCase/client-07.sim | 22 +++++++-------- .../unique/clusterSimCase/client-08.sim | 22 +++++++-------- .../unique/clusterSimCase/cluster_main.sim | 17 +++++++----- 9 files changed, 89 insertions(+), 83 deletions(-) diff --git a/tests/script/unique/clusterSimCase/client-01.sim b/tests/script/unique/clusterSimCase/client-01.sim index f334828b41..b35790d69e 100644 --- a/tests/script/unique/clusterSimCase/client-01.sim +++ b/tests/script/unique/clusterSimCase/client-01.sim @@ -57,10 +57,10 @@ while $i < $tblEnd endw sql select count(*) from $tb +print data00 $data00 rowsPerTbl $rowsPerTbl if $data00 != $rowsPerTbl then - print data00 $data00 rowsPerTbl $rowsPerTbl print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - print ************ client-01 insert data error ***** ***** + print ************ client-01 insert data into $tb error ***** ***** print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return -1 endi diff --git a/tests/script/unique/clusterSimCase/client-02.sim b/tests/script/unique/clusterSimCase/client-02.sim index 4887193438..30a2ceb089 100644 --- a/tests/script/unique/clusterSimCase/client-02.sim +++ b/tests/script/unique/clusterSimCase/client-02.sim @@ -6,7 +6,7 @@ $tblStart = 0 $tblEnd = 10000 $tsStart = 1325347200000 # 2012-01-01 00:00:00.000 -$c2Binary = ' . client-02- +$preBinary = ' . client-02- ############################################################### sql connect @@ -31,13 +31,14 @@ $rowsPerTbl = 0 $ts = $tsStart $rowsPerLoop = 160 +$loop_cnt = 0 loop_run: -print ================ client-02 start loop insert data +print ================ client-02 start loop insert data ( loop_cnt: $loop_cnt ) $i = $tblStart while $i < $tblEnd $tb = tb . $i - $c2Binary = $c2Binary . $i + $c2Binary = $preBinary . $i $c2Binary = $c2Binary . ' $x = 0 @@ -46,23 +47,24 @@ while $i < $tblEnd sql insert into $tb values ( $ts + 1a , $x , $c2Binary ) ( $ts + 3a , $x , $c2Binary ) ( $ts + 5a , $x , $c2Binary ) ( $ts + 7a , $x , $c2Binary ) ( $ts + 9a , $x , $c2Binary ) ( $ts + 11a , $x , $c2Binary ) ( $ts + 13a , $x , $c2Binary ) ( $ts + 15a , $x , $c2Binary ) ( $ts + 17a , $x , $c2Binary ) ( $ts + 19a , $x , $c2Binary ) ( $ts + 21a , $x , $c2Binary ) ( $ts + 23a , $x , $c2Binary ) ( $ts + 25a , $x , $c2Binary ) ( $ts + 27a , $x , $c2Binary ) ( $ts + 29a , $x , $c2Binary ) ( $ts + 31a , $x , $c2Binary ) ( $ts + 33a , $x , $c2Binary ) ( $ts + 35a , $x , $c2Binary ) ( $ts + 37a , $x , $c2Binary ) ( $ts + 39a , $x , $c2Binary ) $x = $x + 40 $ts = $ts + 40a - if $i == $tblStart then - $rowsPerTbl = $rowsPerTbl + $x - endi endw + if $i == $tblStart then + $rowsPerTbl = $rowsPerTbl + $x + endi $totalRows = $totalRows + $x $i = $i + 1 endw -sql select count(*) from $tblStart +sql select count(*) from $tb +print data00 $data00 rowsPerTbl $rowsPerTbl if $data00 != $rowsPerTbl then - print data00 $data00 rowsPerTbl $rowsPerTbl print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - print ************ client-02 insert data error ***** ***** + print ************ client-02 insert data into $tb error ***** ***** print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return -1 endi +$loop_cnt = $loop_cnt + 1 goto loop_run diff --git a/tests/script/unique/clusterSimCase/client-03.sim b/tests/script/unique/clusterSimCase/client-03.sim index d05b1c86be..78a25e26a5 100644 --- a/tests/script/unique/clusterSimCase/client-03.sim +++ b/tests/script/unique/clusterSimCase/client-03.sim @@ -6,8 +6,7 @@ $tblStart = 0 $tblEnd = 10000 $tsStart = 1325347200000 # 2012-01-01 00:00:00.000 -$c2Binary = ' . client-03- -$t2Binary = ' . client-03- +$preBinary = ' . client-03- ############################################################### sql connect @@ -33,16 +32,17 @@ $rowsPerTbl = 0 $ts = $tsStart $rowsPerLoop = 160 +$loop_cnt = 0 loop_run: -print ================ client-03 start loop insert data +print ================ client-03 start loop insert data ( loop_cnt: $loop_cnt ) $i = $tblStart while $i < $tblEnd $tb = tb . $i - $t2Binary = ' . $i + $t2Binary = $preBinary . $i $t2Binary = $t2Binary . ' - $c2Binary = $c2Binary . $i + $c2Binary = $preBinary . $i $c2Binary = $c2Binary . ' $x = 0 @@ -51,32 +51,33 @@ while $i < $tblEnd sql insert into $tb using $stb tags ( $i , $t2Binary ) values ( $ts + 1a , $x , $c2Binary ) ( $ts + 3a , $x , $c2Binary ) ( $ts + 5a , $x , $c2Binary ) ( $ts + 7a , $x , $c2Binary ) ( $ts + 9a , $x , $c2Binary ) ( $ts + 11a , $x , $c2Binary ) ( $ts + 13a , $x , $c2Binary ) ( $ts + 15a , $x , $c2Binary ) ( $ts + 17a , $x , $c2Binary ) ( $ts + 19a , $x , $c2Binary ) ( $ts + 21a , $x , $c2Binary ) ( $ts + 23a , $x , $c2Binary ) ( $ts + 25a , $x , $c2Binary ) ( $ts + 27a , $x , $c2Binary ) ( $ts + 29a , $x , $c2Binary ) ( $ts + 31a , $x , $c2Binary ) ( $ts + 33a , $x , $c2Binary ) ( $ts + 35a , $x , $c2Binary ) ( $ts + 37a , $x , $c2Binary ) ( $ts + 39a , $x , $c2Binary ) $x = $x + 40 $ts = $ts + 40a - if $i == $tblStart then - $rowsPerTbl = $rowsPerTbl + $x - endi endw + if $i == $tblStart then + $rowsPerTbl = $rowsPerTbl + $x + endi $totalRows = $totalRows + $x $i = $i + 1 endw -sql select count(*) from $tblStart +sql select count(*) from $tb +print data00 $data00 rowsPerTbl $rowsPerTbl if $data00 != $rowsPerTbl then - print data00 $data00 rowsPerTbl $rowsPerTbl + print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - print ****** client-3 insert data into $tblStart error *** + print ****** client-3 insert data into $tb error *** print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return -1 endi sql select count(*) from $stb +print data00 $data00 totalRows $totalRows if $data00 != $totalRows then - print data00 $data00 totalRows $totalRows print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ print ***** client-3 insert data into $stbl error ******** print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return -1 endi - +$loop_cnt = $loop_cnt + 1 goto loop_run diff --git a/tests/script/unique/clusterSimCase/client-04.sim b/tests/script/unique/clusterSimCase/client-04.sim index ec10454b86..6a210904ec 100644 --- a/tests/script/unique/clusterSimCase/client-04.sim +++ b/tests/script/unique/clusterSimCase/client-04.sim @@ -6,7 +6,7 @@ $tblStart = 0 $tblEnd = 10000 $tsStart = 1325347200000 # 2012-01-01 00:00:00.000 -$c2Binary = ' . client-04- +$preBinary = ' . client-04- ############################################################### $totalRows = 0 @@ -41,7 +41,7 @@ $i = $tblStart while $i < $tblEnd $tb = tb . $i - $c2Binary = $c2Binary . $i + $c2Binary = $preBinary . $i $c2Binary = $c2Binary . ' $x = 0 @@ -50,22 +50,22 @@ while $i < $tblEnd sql insert into $tb values ( $ts + 1a , $x , $c2Binary ) ( $ts + 3a , $x , $c2Binary ) ( $ts + 5a , $x , $c2Binary ) ( $ts + 7a , $x , $c2Binary ) ( $ts + 9a , $x , $c2Binary ) ( $ts + 11a , $x , $c2Binary ) ( $ts + 13a , $x , $c2Binary ) ( $ts + 15a , $x , $c2Binary ) ( $ts + 17a , $x , $c2Binary ) ( $ts + 19a , $x , $c2Binary ) ( $ts + 21a , $x , $c2Binary ) ( $ts + 23a , $x , $c2Binary ) ( $ts + 25a , $x , $c2Binary ) ( $ts + 27a , $x , $c2Binary ) ( $ts + 29a , $x , $c2Binary ) ( $ts + 31a , $x , $c2Binary ) ( $ts + 33a , $x , $c2Binary ) ( $ts + 35a , $x , $c2Binary ) ( $ts + 37a , $x , $c2Binary ) ( $ts + 39a , $x , $c2Binary ) $x = $x + 40 $ts = $ts + 40a - if $i == $tblStart then - $rowsPerTbl = $rowsPerTbl + $x - endi endw + if $i == $tblStart then + $rowsPerTbl = $rowsPerTbl + $x + endi $totalRows = $totalRows + $x $i = $i + 1 endw -sql select count(*) from $tblStart +sql select count(*) from $tb +print data00 $data00 rowsPerTbl $rowsPerTbl if $data00 != $rowsPerTbl then - print data00 $data00 rowsPerTbl $rowsPerTbl - print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - print ************ client-04 insert data error ***** ***** - print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + print ************ client-04 insert data into $tb error ***** ***** + print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return -1 endi diff --git a/tests/script/unique/clusterSimCase/client-05.sim b/tests/script/unique/clusterSimCase/client-05.sim index af64c10dd5..971558d443 100644 --- a/tests/script/unique/clusterSimCase/client-05.sim +++ b/tests/script/unique/clusterSimCase/client-05.sim @@ -5,7 +5,7 @@ $tblStart = 0 $tblEnd = 10000 $tsStart = 1325347200000 # 2012-01-01 00:00:00.000 -$c2Binary = ' . client-05- +$preBinary = ' . client-05- ############################################################### $totalRows = 0 @@ -35,7 +35,7 @@ $rowsPerLoop = 160 $loopCnt = 0 loop_run: -print ================ client-05 start loop insert data +print ================ client-05 start loop insert data ( loop_cnt: $loop_cnt ) $i = $tblStart while $i < $tblEnd $tb = tb . $i @@ -49,22 +49,22 @@ while $i < $tblEnd sql insert into $tb values ( $ts + 1a , $x , $c2Binary ) ( $ts + 3a , $x , $c2Binary ) ( $ts + 5a , $x , $c2Binary ) ( $ts + 7a , $x , $c2Binary ) ( $ts + 9a , $x , $c2Binary ) ( $ts + 11a , $x , $c2Binary ) ( $ts + 13a , $x , $c2Binary ) ( $ts + 15a , $x , $c2Binary ) ( $ts + 17a , $x , $c2Binary ) ( $ts + 19a , $x , $c2Binary ) ( $ts + 21a , $x , $c2Binary ) ( $ts + 23a , $x , $c2Binary ) ( $ts + 25a , $x , $c2Binary ) ( $ts + 27a , $x , $c2Binary ) ( $ts + 29a , $x , $c2Binary ) ( $ts + 31a , $x , $c2Binary ) ( $ts + 33a , $x , $c2Binary ) ( $ts + 35a , $x , $c2Binary ) ( $ts + 37a , $x , $c2Binary ) ( $ts + 39a , $x , $c2Binary ) $x = $x + 40 $ts = $ts + 40a - if $i == $tblStart then - $rowsPerTbl = $rowsPerTbl + $x - endi endw + if $i == $tblStart then + $rowsPerTbl = $rowsPerTbl + $x + endi $totalRows = $totalRows + $x $i = $i + 1 endw -sql select count(*) from $tblStart +sql select count(*) from $tb +print data00 $data00 rowsPerTbl $rowsPerTbl if $data00 != $rowsPerTbl then - print data00 $data00 rowsPerTbl $rowsPerTbl - print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - print ************ client-05 insert data error ***** ***** - print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + print ************ client-05 insert data into $tb error ***** ***** + print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return -1 endi diff --git a/tests/script/unique/clusterSimCase/client-06.sim b/tests/script/unique/clusterSimCase/client-06.sim index f015831196..43a88b5ddd 100644 --- a/tests/script/unique/clusterSimCase/client-06.sim +++ b/tests/script/unique/clusterSimCase/client-06.sim @@ -6,7 +6,7 @@ $tblStart = 0 $tblEnd = 10000 $tsStart = 1325347200000 # 2012-01-01 00:00:00.000 -$c2Binary = ' . client-06- +$preBinary = ' . client-06- $numPerUpdateTbl = 2000 ############################################################### @@ -48,7 +48,7 @@ $i = $dropTblStart while $i < $tblEnd $tb = tb . $i - $c2Binary = $c2Binary . $i + $c2Binary = $preBinary . $i $c2Binary = $c2Binary . ' $x = 0 @@ -57,22 +57,22 @@ while $i < $tblEnd sql insert into $tb values ( $ts + 1a , $x , $c2Binary ) ( $ts + 3a , $x , $c2Binary ) ( $ts + 5a , $x , $c2Binary ) ( $ts + 7a , $x , $c2Binary ) ( $ts + 9a , $x , $c2Binary ) ( $ts + 11a , $x , $c2Binary ) ( $ts + 13a , $x , $c2Binary ) ( $ts + 15a , $x , $c2Binary ) ( $ts + 17a , $x , $c2Binary ) ( $ts + 19a , $x , $c2Binary ) ( $ts + 21a , $x , $c2Binary ) ( $ts + 23a , $x , $c2Binary ) ( $ts + 25a , $x , $c2Binary ) ( $ts + 27a , $x , $c2Binary ) ( $ts + 29a , $x , $c2Binary ) ( $ts + 31a , $x , $c2Binary ) ( $ts + 33a , $x , $c2Binary ) ( $ts + 35a , $x , $c2Binary ) ( $ts + 37a , $x , $c2Binary ) ( $ts + 39a , $x , $c2Binary ) $x = $x + 40 $ts = $ts + 40a - if $i == $tblStart then - $rowsPerTbl = $rowsPerTbl + $x - endi endw + if $i == $tblStart then + $rowsPerTbl = $rowsPerTbl + $x + endi $totalRows = $totalRows + $x $i = $i + 1 endw -sql select count(*) from $tblStart +sql select count(*) from $tb +print data00 $data00 rowsPerTbl $rowsPerTbl if $data00 != $rowsPerTbl then - print data00 $data00 rowsPerTbl $rowsPerTbl - print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - print ************ client-06 insert data error ***** ***** - print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + print ************ client-06 insert data into $tb error ***** ***** + print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return -1 endi diff --git a/tests/script/unique/clusterSimCase/client-07.sim b/tests/script/unique/clusterSimCase/client-07.sim index 126ae76771..66284d418b 100644 --- a/tests/script/unique/clusterSimCase/client-07.sim +++ b/tests/script/unique/clusterSimCase/client-07.sim @@ -5,7 +5,7 @@ $tblStart = 0 $tblEnd = 10000 $tsStart = 1325347200000 # 2012-01-01 00:00:00.000 -$c2Binary = ' . client-07- +$preBinary = ' . client-07- ############################################################### $totalRows = 0 @@ -35,12 +35,12 @@ $rowsPerLoop = 160 $loopCnt = 0 loop_run: -print ================ client-07 start loop insert data +print ================ client-07 start loop insert data ( loop_cnt: $loop_cnt ) $i = $tblStart while $i < $tblEnd $tb = tb . $i - $c2Binary = $c2Binary . $i + $c2Binary = $preBinary . $i $c2Binary = $c2Binary . ' $x = 0 @@ -49,22 +49,22 @@ while $i < $tblEnd sql insert into $tb values ( $ts + 1a , $x , $c2Binary ) ( $ts + 3a , $x , $c2Binary ) ( $ts + 5a , $x , $c2Binary ) ( $ts + 7a , $x , $c2Binary ) ( $ts + 9a , $x , $c2Binary ) ( $ts + 11a , $x , $c2Binary ) ( $ts + 13a , $x , $c2Binary ) ( $ts + 15a , $x , $c2Binary ) ( $ts + 17a , $x , $c2Binary ) ( $ts + 19a , $x , $c2Binary ) ( $ts + 21a , $x , $c2Binary ) ( $ts + 23a , $x , $c2Binary ) ( $ts + 25a , $x , $c2Binary ) ( $ts + 27a , $x , $c2Binary ) ( $ts + 29a , $x , $c2Binary ) ( $ts + 31a , $x , $c2Binary ) ( $ts + 33a , $x , $c2Binary ) ( $ts + 35a , $x , $c2Binary ) ( $ts + 37a , $x , $c2Binary ) ( $ts + 39a , $x , $c2Binary ) $x = $x + 40 $ts = $ts + 40a - if $i == $tblStart then - $rowsPerTbl = $rowsPerTbl + $x - endi endw + if $i == $tblStart then + $rowsPerTbl = $rowsPerTbl + $x + endi $totalRows = $totalRows + $x $i = $i + 1 endw -sql select count(*) from $tblStart +sql select count(*) from $tb +print data00 $data00 rowsPerTbl $rowsPerTbl if $data00 != $rowsPerTbl then - print data00 $data00 rowsPerTbl $rowsPerTbl - print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - print ************ client-07 insert data error ***** ***** - print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + print ************ client-07 insert data into $tb error ***** ***** + print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return -1 endi diff --git a/tests/script/unique/clusterSimCase/client-08.sim b/tests/script/unique/clusterSimCase/client-08.sim index 6316abb28e..e2814fdeac 100644 --- a/tests/script/unique/clusterSimCase/client-08.sim +++ b/tests/script/unique/clusterSimCase/client-08.sim @@ -6,7 +6,7 @@ $tblStart = 0 $tblEnd = 10000 $tsStart = 1325347200000 # 2012-01-01 00:00:00.000 -$c2Binary = ' . client-06- +$preBinary = ' . client-08- $numPerUpdateTbl = 2000 ############################################################### @@ -43,12 +43,12 @@ $rowsPerLoop = 40 $loopCnt = 0 loop_run: -print ================ client-06 start loop insert data +print ================ client-08 start loop insert data ( loop_cnt: $loop_cnt ) $i = $dropTblStart while $i < $tblEnd $tb = tb . $i - $c2Binary = $c2Binary . $i + $c2Binary = $preBinary . $i $c2Binary = $c2Binary . ' $x = 0 @@ -57,22 +57,22 @@ while $i < $tblEnd sql insert into $tb values ( $ts + 1a , $x , $c2Binary ) ( $ts + 3a , $x , $c2Binary ) ( $ts + 5a , $x , $c2Binary ) ( $ts + 7a , $x , $c2Binary ) ( $ts + 9a , $x , $c2Binary ) ( $ts + 11a , $x , $c2Binary ) ( $ts + 13a , $x , $c2Binary ) ( $ts + 15a , $x , $c2Binary ) ( $ts + 17a , $x , $c2Binary ) ( $ts + 19a , $x , $c2Binary ) ( $ts + 21a , $x , $c2Binary ) ( $ts + 23a , $x , $c2Binary ) ( $ts + 25a , $x , $c2Binary ) ( $ts + 27a , $x , $c2Binary ) ( $ts + 29a , $x , $c2Binary ) ( $ts + 31a , $x , $c2Binary ) ( $ts + 33a , $x , $c2Binary ) ( $ts + 35a , $x , $c2Binary ) ( $ts + 37a , $x , $c2Binary ) ( $ts + 39a , $x , $c2Binary ) $x = $x + 40 $ts = $ts + 40a - if $i == $tblStart then - $rowsPerTbl = $rowsPerTbl + $x - endi endw + if $i == $tblStart then + $rowsPerTbl = $rowsPerTbl + $x + endi $totalRows = $totalRows + $x $i = $i + 1 endw -sql select count(*) from $tblStart +sql select count(*) from $tb +print data00 $data00 rowsPerTbl $rowsPerTbl if $data00 != $rowsPerTbl then - print data00 $data00 rowsPerTbl $rowsPerTbl - print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - print ************ client-06 insert data error ***** ***** - print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + print ************ client-08 insert data into $tb error ***** ***** + print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return -1 endi diff --git a/tests/script/unique/clusterSimCase/cluster_main.sim b/tests/script/unique/clusterSimCase/cluster_main.sim index e126463d53..a2ca34b189 100644 --- a/tests/script/unique/clusterSimCase/cluster_main.sim +++ b/tests/script/unique/clusterSimCase/cluster_main.sim @@ -91,14 +91,14 @@ sql create dnode $hostname3 sleep 3000 sleep 3000 print ============== step3: start back client-01.sim -run_back unique/clusterSimCase/client-01.sim -#run_back unique/clusterSimCase/client-01.sim -#run_back unique/clusterSimCase/client-01.sim -#run_back unique/clusterSimCase/client-01.sim -#run_back unique/clusterSimCase/client-01.sim -#run_back unique/clusterSimCase/client-01.sim -#run_back unique/clusterSimCase/client-01.sim #run_back unique/clusterSimCase/client-01.sim +#run_back unique/clusterSimCase/client-02.sim +#run_back unique/clusterSimCase/client-03.sim +run_back unique/clusterSimCase/client-04.sim +#run_back unique/clusterSimCase/client-05.sim +#run_back unique/clusterSimCase/client-06.sim +#run_back unique/clusterSimCase/client-07.sim +#run_back unique/clusterSimCase/client-08.sim #run_back unique/clusterSimCase/client-01.sim #run_back unique/clusterSimCase/client-01.sim sleep 20000 @@ -242,4 +242,7 @@ endi sleep 3000 print **** **** **** (loop_cnt: $loop_cnt ) end, continue...... **** **** **** **** $loop_cnt = $loop_cnt + 1 +if $loop_cnt == 50 then + return 0 +endi goto loop_cluster_do From b061ab88c2ec17c133b9f5a310c7b667d6a4801a Mon Sep 17 00:00:00 2001 From: Hui Li Date: Wed, 29 Jul 2020 16:48:39 +0800 Subject: [PATCH 11/24] [modify cases] --- tests/script/unique/clusterSimCase/client-04.sim | 4 ++-- tests/script/unique/clusterSimCase/client-05.sim | 2 +- tests/script/unique/clusterSimCase/client-06.sim | 2 +- tests/script/unique/clusterSimCase/client-07.sim | 2 +- tests/script/unique/clusterSimCase/client-08.sim | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/script/unique/clusterSimCase/client-04.sim b/tests/script/unique/clusterSimCase/client-04.sim index 6a210904ec..5248e9d7bb 100644 --- a/tests/script/unique/clusterSimCase/client-04.sim +++ b/tests/script/unique/clusterSimCase/client-04.sim @@ -35,8 +35,8 @@ $rowsPerLoop = 160 $loopCnt = 0 -loop_run: -print ================ client-04 start loop insert data +loop_run: +print ================ client-04 start loop insert data ( loopCnt: $loopCnt ) $i = $tblStart while $i < $tblEnd $tb = tb . $i diff --git a/tests/script/unique/clusterSimCase/client-05.sim b/tests/script/unique/clusterSimCase/client-05.sim index 971558d443..fe3a246094 100644 --- a/tests/script/unique/clusterSimCase/client-05.sim +++ b/tests/script/unique/clusterSimCase/client-05.sim @@ -35,7 +35,7 @@ $rowsPerLoop = 160 $loopCnt = 0 loop_run: -print ================ client-05 start loop insert data ( loop_cnt: $loop_cnt ) +print ================ client-05 start loop insert data ( loopCnt: $loopCnt ) $i = $tblStart while $i < $tblEnd $tb = tb . $i diff --git a/tests/script/unique/clusterSimCase/client-06.sim b/tests/script/unique/clusterSimCase/client-06.sim index 43a88b5ddd..91c3c5f5e2 100644 --- a/tests/script/unique/clusterSimCase/client-06.sim +++ b/tests/script/unique/clusterSimCase/client-06.sim @@ -43,7 +43,7 @@ $rowsPerLoop = 160 $loopCnt = 0 loop_run: -print ================ client-06 start loop insert data +print ================ client-06 start loop insert data ( loopCnt: $loopCnt ) $i = $dropTblStart while $i < $tblEnd $tb = tb . $i diff --git a/tests/script/unique/clusterSimCase/client-07.sim b/tests/script/unique/clusterSimCase/client-07.sim index 66284d418b..0dde62248d 100644 --- a/tests/script/unique/clusterSimCase/client-07.sim +++ b/tests/script/unique/clusterSimCase/client-07.sim @@ -35,7 +35,7 @@ $rowsPerLoop = 160 $loopCnt = 0 loop_run: -print ================ client-07 start loop insert data ( loop_cnt: $loop_cnt ) +print ================ client-07 start loop insert data ( loopCnt: $loopCnt ) $i = $tblStart while $i < $tblEnd $tb = tb . $i diff --git a/tests/script/unique/clusterSimCase/client-08.sim b/tests/script/unique/clusterSimCase/client-08.sim index e2814fdeac..891b3991b6 100644 --- a/tests/script/unique/clusterSimCase/client-08.sim +++ b/tests/script/unique/clusterSimCase/client-08.sim @@ -43,7 +43,7 @@ $rowsPerLoop = 40 $loopCnt = 0 loop_run: -print ================ client-08 start loop insert data ( loop_cnt: $loop_cnt ) +print ================ client-08 start loop insert data ( loopCnt: $loopCnt ) $i = $dropTblStart while $i < $tblEnd $tb = tb . $i From c3eb96f0471014811f94b944a1ba943992d70a53 Mon Sep 17 00:00:00 2001 From: Hui Li Date: Wed, 29 Jul 2020 17:15:40 +0800 Subject: [PATCH 12/24] [modify cases] --- tests/script/unique/clusterSimCase/client-05.sim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/script/unique/clusterSimCase/client-05.sim b/tests/script/unique/clusterSimCase/client-05.sim index fe3a246094..a2deaba9b2 100644 --- a/tests/script/unique/clusterSimCase/client-05.sim +++ b/tests/script/unique/clusterSimCase/client-05.sim @@ -40,7 +40,7 @@ $i = $tblStart while $i < $tblEnd $tb = tb . $i - $c2Binary = $c2Binary . $i + $c2Binary = $preBinary . $i $c2Binary = $c2Binary . ' $x = 0 From 9cbf1b1f7e6b3b47e575fbb52cc5be69a838b8e2 Mon Sep 17 00:00:00 2001 From: Jeff Tao Date: Wed, 29 Jul 2020 09:56:04 +0000 Subject: [PATCH 13/24] processedCount to prevent race condition --- src/dnode/src/dnodeVWrite.c | 14 +++++++++++--- src/tsdb/src/tsdbMeta.c | 6 +++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/dnode/src/dnodeVWrite.c b/src/dnode/src/dnodeVWrite.c index dc09a03e14..51bc8890fc 100644 --- a/src/dnode/src/dnodeVWrite.c +++ b/src/dnode/src/dnodeVWrite.c @@ -38,6 +38,8 @@ typedef struct { typedef struct { SRspRet rspRet; + int32_t processedCount; + int32_t code; void *pCont; int32_t contLen; SRpcMsg rpcMsg; @@ -187,13 +189,16 @@ void dnodeFreeVnodeWqueue(void *wqueue) { void dnodeSendRpcVnodeWriteRsp(void *pVnode, void *param, int32_t code) { SWriteMsg *pWrite = (SWriteMsg *)param; - if (code > 0) return; + if (code < 0) pWrite->code = code; + int32_t count = atomic_add_fetch_32(&pWrite->processedCount, 1); + + if (count <= 1) return; SRpcMsg rpcRsp = { .handle = pWrite->rpcMsg.handle, .pCont = pWrite->rspRet.rsp, .contLen = pWrite->rspRet.len, - .code = code, + .code = pWrite->code, }; rpcSendResponse(&rpcRsp); @@ -239,7 +244,10 @@ static void *dnodeProcessWriteQueue(void *param) { } int32_t code = vnodeProcessWrite(pVnode, type, pHead, pRspRet); - if (pWrite) pWrite->rpcMsg.code = code; + if (pWrite) { + pWrite->rpcMsg.code = code; + if (code <= 0) pWrite->processedCount = 1; + } } walFsync(vnodeGetWal(pVnode)); diff --git a/src/tsdb/src/tsdbMeta.c b/src/tsdb/src/tsdbMeta.c index 09bbbd8f4d..ddb935b7e5 100644 --- a/src/tsdb/src/tsdbMeta.c +++ b/src/tsdb/src/tsdbMeta.c @@ -69,8 +69,8 @@ int tsdbCreateTable(TSDB_REPO_T *repo, STableCfg *pCfg) { if (tid < pMeta->maxTables && pMeta->tables[tid] != NULL) { if (TABLE_UID(pMeta->tables[tid]) == pCfg->tableId.uid) { - tsdbError("vgId:%d table %s already exists, tid %d uid %" PRId64, REPO_ID(pRepo), TABLE_CHAR_NAME(pTable), - TABLE_TID(pTable), TABLE_UID(pTable)); + tsdbError("vgId:%d table %s already exists, tid %d uid %" PRId64, REPO_ID(pRepo), TABLE_CHAR_NAME(pMeta->tables[tid]), + TABLE_TID(pMeta->tables[tid]), TABLE_UID(pMeta->tables[tid])); return TSDB_CODE_TDB_TABLE_ALREADY_EXIST; } else { tsdbError("vgId:%d table %s at tid %d uid %" PRIu64 @@ -1295,4 +1295,4 @@ static int tsdbAdjustMetaTables(STsdbRepo *pRepo, int tid) { tsdbDebug("vgId:%d tsdb meta maxTables is adjusted as %d", REPO_ID(pRepo), maxTables); return 0; -} \ No newline at end of file +} From 489442416a96833c4bde2aed6464857ca5d5a0f3 Mon Sep 17 00:00:00 2001 From: Hui Li Date: Wed, 29 Jul 2020 18:13:21 +0800 Subject: [PATCH 14/24] [modify cases] --- .../script/unique/clusterSimCase/client-06.sim | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/tests/script/unique/clusterSimCase/client-06.sim b/tests/script/unique/clusterSimCase/client-06.sim index 91c3c5f5e2..6ef5b6fe2f 100644 --- a/tests/script/unique/clusterSimCase/client-06.sim +++ b/tests/script/unique/clusterSimCase/client-06.sim @@ -10,7 +10,9 @@ $preBinary = ' . client-06- $numPerUpdateTbl = 2000 ############################################################### -$totalRows = 0 +$totalRows = 0 +$dropTblStart = $tblStart +$dropTblEnd = $dropTblStart + $numPerUpdateTbl sql connect @@ -20,7 +22,7 @@ sql create database if not exists $db replica 2 sql use $db init_lable: -print ================ create table $tb (ts timestamp, c1 int, c2 binary(16)) +print ================ create table $tb[from $tblStart to $tblEnd] (ts timestamp, c1 int, c2 binary(16)) $i = $tblStart while $i < $tblEnd @@ -30,8 +32,8 @@ while $i < $tblEnd $i = $i + 1 endw -$dropTblStart = $tblStart -$dropTblEnd = $tblStart + $numPerUpdateTbl +$dropTblStart = $dropTblEnd +$dropTblEnd = $dropTblStart + $numPerUpdateTbl $tblStart = $tblEnd $tblEnd = $tblEnd + $numPerUpdateTbl @@ -44,8 +46,8 @@ $loopCnt = 0 loop_run: print ================ client-06 start loop insert data ( loopCnt: $loopCnt ) -$i = $dropTblStart -while $i < $tblEnd +$i = $dropTblStart +while $i < $tblStart $tb = tb . $i $c2Binary = $preBinary . $i @@ -78,8 +80,8 @@ endi $loopCnt = $loopCnt + 1 -if $loopCnt > 100 then - +if $loopCnt > 5 then + print ================ client-06 drop table from $dropTblStart to $dropTblEnd $i = $dropTblStart while $i < $dropTblEnd $tb = tb . $i From 611efb3f877ed894ddbad56aa37dcab3a9e78920 Mon Sep 17 00:00:00 2001 From: Hui Li Date: Wed, 29 Jul 2020 18:18:28 +0800 Subject: [PATCH 15/24] [modify cases] --- tests/script/unique/clusterSimCase/client-06.sim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/script/unique/clusterSimCase/client-06.sim b/tests/script/unique/clusterSimCase/client-06.sim index 6ef5b6fe2f..d39c962a81 100644 --- a/tests/script/unique/clusterSimCase/client-06.sim +++ b/tests/script/unique/clusterSimCase/client-06.sim @@ -22,7 +22,7 @@ sql create database if not exists $db replica 2 sql use $db init_lable: -print ================ create table $tb[from $tblStart to $tblEnd] (ts timestamp, c1 int, c2 binary(16)) +print ================ create table $tb [ from $tblStart to $tblEnd ] (ts timestamp, c1 int, c2 binary(16)) $i = $tblStart while $i < $tblEnd From ea0163b3b43a83757e731560b59d4ef7003a80fd Mon Sep 17 00:00:00 2001 From: Hui Li Date: Wed, 29 Jul 2020 18:21:20 +0800 Subject: [PATCH 16/24] [modify cases] --- tests/script/unique/clusterSimCase/client-06.sim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/script/unique/clusterSimCase/client-06.sim b/tests/script/unique/clusterSimCase/client-06.sim index d39c962a81..488534ded0 100644 --- a/tests/script/unique/clusterSimCase/client-06.sim +++ b/tests/script/unique/clusterSimCase/client-06.sim @@ -60,7 +60,7 @@ while $i < $tblStart $x = $x + 40 $ts = $ts + 40a endw - if $i == $tblStart then + if $i == $dropTblStart then $rowsPerTbl = $rowsPerTbl + $x endi From 13c041a22c9447e2d672d1034b13e3982064fbe9 Mon Sep 17 00:00:00 2001 From: Hui Li Date: Wed, 29 Jul 2020 18:32:33 +0800 Subject: [PATCH 17/24] [modify cases] --- tests/script/unique/clusterSimCase/client-06.sim | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/script/unique/clusterSimCase/client-06.sim b/tests/script/unique/clusterSimCase/client-06.sim index 488534ded0..4238a93cf0 100644 --- a/tests/script/unique/clusterSimCase/client-06.sim +++ b/tests/script/unique/clusterSimCase/client-06.sim @@ -12,7 +12,7 @@ $numPerUpdateTbl = 2000 $totalRows = 0 $dropTblStart = $tblStart -$dropTblEnd = $dropTblStart + $numPerUpdateTbl +$dropTblEnd = $dropTblStart sql connect @@ -45,7 +45,7 @@ $rowsPerLoop = 160 $loopCnt = 0 loop_run: -print ================ client-06 start loop insert data ( loopCnt: $loopCnt ) +print ================ client-06 start loop insert data from $dropTblStart to $tblStart ( loopCnt: $loopCnt ) $i = $dropTblStart while $i < $tblStart $tb = tb . $i @@ -80,7 +80,7 @@ endi $loopCnt = $loopCnt + 1 -if $loopCnt > 5 then +if $loopCnt > 2 then print ================ client-06 drop table from $dropTblStart to $dropTblEnd $i = $dropTblStart while $i < $dropTblEnd From 8b6dfc8597d1a7847a1d1a9d6a14c58504a597c5 Mon Sep 17 00:00:00 2001 From: Hui Li Date: Wed, 29 Jul 2020 18:44:23 +0800 Subject: [PATCH 18/24] [modify cases] --- tests/script/unique/clusterSimCase/client-06.sim | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/script/unique/clusterSimCase/client-06.sim b/tests/script/unique/clusterSimCase/client-06.sim index 4238a93cf0..013eb1db85 100644 --- a/tests/script/unique/clusterSimCase/client-06.sim +++ b/tests/script/unique/clusterSimCase/client-06.sim @@ -9,6 +9,7 @@ $tsStart = 1325347200000 # 2012-01-01 00:00:00.000 $preBinary = ' . client-06- $numPerUpdateTbl = 2000 ############################################################### +$testCnt = 0 $totalRows = 0 $dropTblStart = $tblStart @@ -90,7 +91,11 @@ if $loopCnt > 2 then $totalRows = $totalRows - $rowsPerTbl endw sleep 20000 + $testCnt = $testCnt + 1 goto init_lable endi +if $testCnt > 10 then + return 0 +endi goto loop_run From 966b47361e86b2deb3419caf424a0c46de8072ce Mon Sep 17 00:00:00 2001 From: Hui Li Date: Wed, 29 Jul 2020 19:31:34 +0800 Subject: [PATCH 19/24] [modify cases] --- .../unique/clusterSimCase/client-06.sim | 10 +---- .../unique/clusterSimCase/client-07.sim | 41 ++++++++++++------- .../unique/clusterSimCase/client-08.sim | 30 +++++++------- .../unique/clusterSimCase/cluster_main.sim | 4 +- 4 files changed, 47 insertions(+), 38 deletions(-) diff --git a/tests/script/unique/clusterSimCase/client-06.sim b/tests/script/unique/clusterSimCase/client-06.sim index 013eb1db85..209b615e64 100644 --- a/tests/script/unique/clusterSimCase/client-06.sim +++ b/tests/script/unique/clusterSimCase/client-06.sim @@ -9,8 +9,6 @@ $tsStart = 1325347200000 # 2012-01-01 00:00:00.000 $preBinary = ' . client-06- $numPerUpdateTbl = 2000 ############################################################### -$testCnt = 0 - $totalRows = 0 $dropTblStart = $tblStart $dropTblEnd = $dropTblStart @@ -23,7 +21,7 @@ sql create database if not exists $db replica 2 sql use $db init_lable: -print ================ create table $tb [ from $tblStart to $tblEnd ] (ts timestamp, c1 int, c2 binary(16)) +print ================ create table [ from $tblStart to $tblEnd ] (ts timestamp, c1 int, c2 binary(16)) $i = $tblStart while $i < $tblEnd @@ -90,12 +88,8 @@ if $loopCnt > 2 then $i = $i + 1 $totalRows = $totalRows - $rowsPerTbl endw - sleep 20000 - $testCnt = $testCnt + 1 + sleep 10000 goto init_lable endi -if $testCnt > 10 then - return 0 -endi goto loop_run diff --git a/tests/script/unique/clusterSimCase/client-07.sim b/tests/script/unique/clusterSimCase/client-07.sim index 0dde62248d..3bf3585205 100644 --- a/tests/script/unique/clusterSimCase/client-07.sim +++ b/tests/script/unique/clusterSimCase/client-07.sim @@ -7,6 +7,10 @@ $tblEnd = 10000 $tsStart = 1325347200000 # 2012-01-01 00:00:00.000 $preBinary = ' . client-07- ############################################################### +$alterCnt = 0 + +$columnA = c . $alterCnt +$columnB = d . $alterCnt $totalRows = 0 @@ -17,22 +21,23 @@ $db = db sql create database if not exists $db replica 2 sql use $db -init_lable: -print ================ create table $tb (ts timestamp, c1 int, c2 binary(16)) +$rowsPerTbl = 0 +$ts = $tsStart + +print ================ create table $tb (ts timestamp, $columnA int, $columnB binary(16)) $i = $tblStart while $i < $tblEnd $tb = tb . $i # print create table if not exists $tb ( ts timestamp , c1 int , c2 binary(16) ) - sql create table if not exists $tb ( ts timestamp , c1 int , c2 binary(16) ) + sql create table if not exists $tb ( ts timestamp , $columnA int , $columnB binary(16) ) $i = $i + 1 endw -$rowsPerTbl = 0 -$ts = $tsStart $rowsPerLoop = 160 $loopCnt = 0 +$alterStep = 0 loop_run: print ================ client-07 start loop insert data ( loopCnt: $loopCnt ) @@ -70,19 +75,27 @@ endi $loopCnt = $loopCnt + 1 -if $loopCnt > 100 then - +if $alterStep > 2 then + $alterStep = 0 + + $alterCnt = $alterCnt + 1 $i = $tblStart while $i < $tblEnd $tb = tb . $i - sql alter table $tb add column c3 double - sql alter table $tb add column c4 binary( 16 ) - sql alter table $tb drop column c1 - sql alter table $tb drop column c2 + $newColumnA = c . $alterCnt + $newcolumnB = d . $alterCnt + + sql alter table $tb add column $newColumnA double + sql alter table $tb add column $newcolumnB binary( 16 ) + sql alter table $tb drop column $columnA + sql alter table $tb drop column $columnB $i = $i + 1 - endw - sleep 20000 - goto init_lable + endw + $columnA = $newColumnA + $columnB = $newcolumnB + + sleep 10000 + goto loop_run endi goto loop_run diff --git a/tests/script/unique/clusterSimCase/client-08.sim b/tests/script/unique/clusterSimCase/client-08.sim index 891b3991b6..78608b2c42 100644 --- a/tests/script/unique/clusterSimCase/client-08.sim +++ b/tests/script/unique/clusterSimCase/client-08.sim @@ -4,13 +4,14 @@ ############################################################### ################ set script parameters ################ $tblStart = 0 -$tblEnd = 10000 +$tblEnd = 100 $tsStart = 1325347200000 # 2012-01-01 00:00:00.000 $preBinary = ' . client-08- -$numPerUpdateTbl = 2000 +$numPerUpdateTbl = 20 ############################################################### - -$totalRows = 0 +$totalRows = 0 +$dropTblStart = $tblStart +$dropTblEnd = $dropTblStart sql connect @@ -20,7 +21,7 @@ sql create database if not exists $db replica 2 sql use $db init_lable: -print ================ create table $tb (ts timestamp, c1 int, c2 binary(16)) +print ================ create table [ from $tblStart to $tblEnd ] (ts timestamp, c1 int, c2 binary(16)) $i = $tblStart while $i < $tblEnd @@ -30,8 +31,8 @@ while $i < $tblEnd $i = $i + 1 endw -$dropTblStart = $tblStart -$dropTblEnd = $tblStart + $numPerUpdateTbl +$dropTblStart = $dropTblEnd +$dropTblEnd = $dropTblStart + $numPerUpdateTbl $tblStart = $tblEnd $tblEnd = $tblEnd + $numPerUpdateTbl @@ -43,9 +44,9 @@ $rowsPerLoop = 40 $loopCnt = 0 loop_run: -print ================ client-08 start loop insert data ( loopCnt: $loopCnt ) -$i = $dropTblStart -while $i < $tblEnd +print ================ client-08 start loop insert data from $dropTblStart to $tblStart ( loopCnt: $loopCnt ) +$i = $dropTblStart +while $i < $tblStart $tb = tb . $i $c2Binary = $preBinary . $i @@ -58,7 +59,7 @@ while $i < $tblEnd $x = $x + 40 $ts = $ts + 40a endw - if $i == $tblStart then + if $i == $dropTblStart then $rowsPerTbl = $rowsPerTbl + $x endi @@ -68,7 +69,7 @@ while $i < $tblEnd endw sql select count(*) from $tb -print data00 $data00 rowsPerTbl $rowsPerTbl +print data00 $data00 rowsPerTbl $rowsPerTbl tb: $tb if $data00 != $rowsPerTbl then print ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ print ************ client-08 insert data into $tb error ***** ***** @@ -78,7 +79,8 @@ endi $loopCnt = $loopCnt + 1 -#if $loopCnt > 100 then +#if $loopCnt > 3 then + print ================ client-08 drop table from $dropTblStart to $dropTblEnd $i = $dropTblStart while $i < $dropTblEnd $tb = tb . $i @@ -86,7 +88,7 @@ $loopCnt = $loopCnt + 1 $i = $i + 1 $totalRows = $totalRows - $rowsPerTbl endw - sleep 20000 + sleep 10000 goto init_lable #endi diff --git a/tests/script/unique/clusterSimCase/cluster_main.sim b/tests/script/unique/clusterSimCase/cluster_main.sim index a2ca34b189..39607c2915 100644 --- a/tests/script/unique/clusterSimCase/cluster_main.sim +++ b/tests/script/unique/clusterSimCase/cluster_main.sim @@ -94,11 +94,11 @@ print ============== step3: start back client-01.sim #run_back unique/clusterSimCase/client-01.sim #run_back unique/clusterSimCase/client-02.sim #run_back unique/clusterSimCase/client-03.sim -run_back unique/clusterSimCase/client-04.sim +#run_back unique/clusterSimCase/client-04.sim #run_back unique/clusterSimCase/client-05.sim #run_back unique/clusterSimCase/client-06.sim #run_back unique/clusterSimCase/client-07.sim -#run_back unique/clusterSimCase/client-08.sim +run_back unique/clusterSimCase/client-08.sim #run_back unique/clusterSimCase/client-01.sim #run_back unique/clusterSimCase/client-01.sim sleep 20000 From a7532284bdb8285d3f6f1751111a23de6b12d0bc Mon Sep 17 00:00:00 2001 From: Hui Li Date: Wed, 29 Jul 2020 19:41:38 +0800 Subject: [PATCH 20/24] [modify cases] --- tests/script/unique/clusterSimCase/client-08.sim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/script/unique/clusterSimCase/client-08.sim b/tests/script/unique/clusterSimCase/client-08.sim index 78608b2c42..d9d64834cb 100644 --- a/tests/script/unique/clusterSimCase/client-08.sim +++ b/tests/script/unique/clusterSimCase/client-08.sim @@ -4,10 +4,10 @@ ############################################################### ################ set script parameters ################ $tblStart = 0 -$tblEnd = 100 +$tblEnd = 10000 $tsStart = 1325347200000 # 2012-01-01 00:00:00.000 $preBinary = ' . client-08- -$numPerUpdateTbl = 20 +$numPerUpdateTbl = 2000 ############################################################### $totalRows = 0 $dropTblStart = $tblStart From 65147ecfb2a3bf74989d22c42314c467ac21681b Mon Sep 17 00:00:00 2001 From: Jeff Tao Date: Wed, 29 Jul 2020 13:40:46 +0000 Subject: [PATCH 21/24] add new option quorum for database --- src/client/src/tscSQLParser.c | 8 + src/common/inc/tglobal.h | 1 + src/common/src/tglobal.c | 13 +- src/inc/taosdef.h | 1 + src/inc/taosmsg.h | 1 + src/inc/ttokendef.h | 236 ++-- src/mnode/inc/mnodeDef.h | 1 + src/mnode/src/mnodeDb.c | 26 +- src/mnode/src/mnodeVgroup.c | 2 +- src/query/inc/qSqlparser.h | 1 + src/query/inc/sql.y | 3 + src/query/src/qParserImpl.c | 1 + src/query/src/qTokenizer.c | 1 + src/query/src/sql.c | 2314 +++++++++++++++++---------------- 14 files changed, 1340 insertions(+), 1269 deletions(-) diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index 9488b37fe3..44236face0 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -4992,6 +4992,7 @@ static void setCreateDBOption(SCMCreateDbMsg* pMsg, SCreateDBInfo* pCreateDb) { pMsg->compression = pCreateDb->compressionLevel; pMsg->walLevel = (char)pCreateDb->walLevel; pMsg->replications = pCreateDb->replica; + pMsg->quorum = pCreateDb->quorum; pMsg->ignoreExist = pCreateDb->ignoreExists; } @@ -5522,6 +5523,13 @@ int32_t tscCheckCreateDbParams(SSqlCmd* pCmd, SCMCreateDbMsg* pCreate) { return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg); } + if (pCreate->quorum != -1 && + (pCreate->quorum < TSDB_MIN_DB_REPLICA_OPTION || pCreate->quorum > TSDB_MAX_DB_REPLICA_OPTION)) { + snprintf(msg, tListLen(msg), "invalid db option quorum: %d valid range: [%d, %d]", pCreate->quorum, + TSDB_MIN_DB_REPLICA_OPTION, TSDB_MAX_DB_REPLICA_OPTION); + return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg); + } + int32_t val = htonl(pCreate->daysPerFile); if (val != -1 && (val < TSDB_MIN_DAYS_PER_FILE || val > TSDB_MAX_DAYS_PER_FILE)) { snprintf(msg, tListLen(msg), "invalid db option daysPerFile: %d valid range: [%d, %d]", val, diff --git a/src/common/inc/tglobal.h b/src/common/inc/tglobal.h index 495d2ae006..b8d7297ee0 100644 --- a/src/common/inc/tglobal.h +++ b/src/common/inc/tglobal.h @@ -80,6 +80,7 @@ extern int16_t tsCompression; extern int16_t tsWAL; extern int32_t tsFsyncPeriod; extern int32_t tsReplications; +extern int32_t tsQuorum; // balance extern int32_t tsEnableBalance; diff --git a/src/common/src/tglobal.c b/src/common/src/tglobal.c index 5ab2d0a36d..79ea2b2d46 100644 --- a/src/common/src/tglobal.c +++ b/src/common/src/tglobal.c @@ -109,6 +109,7 @@ int16_t tsCompression = TSDB_DEFAULT_COMP_LEVEL; int16_t tsWAL = TSDB_DEFAULT_WAL_LEVEL; int32_t tsFsyncPeriod = TSDB_DEFAULT_FSYNC_PERIOD; int32_t tsReplications = TSDB_DEFAULT_DB_REPLICA_OPTION; +int32_t tsQuorum = TSDB_DEFAULT_DB_QUORUM_OPTION; int32_t tsMaxVgroupsPerDb = 0; int32_t tsMinTablePerVnode = 100; int32_t tsMaxTablePerVnode = TSDB_DEFAULT_TABLES; @@ -742,6 +743,16 @@ static void doInitGlobalConfig() { cfg.unitType = TAOS_CFG_UTYPE_NONE; taosInitConfigOption(cfg); + cfg.option = "quorum"; + cfg.ptr = &tsQuorum; + cfg.valType = TAOS_CFG_VTYPE_INT32; + cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; + cfg.minValue = TSDB_MIN_DB_REPLICA_OPTION; + cfg.maxValue = TSDB_MAX_DB_REPLICA_OPTION; + cfg.ptrLength = 0; + cfg.unitType = TAOS_CFG_UTYPE_NONE; + taosInitConfigOption(cfg); + cfg.option = "mqttBrokerAddress"; cfg.ptr = tsMqttBrokerAddress; cfg.valType = TAOS_CFG_VTYPE_STRING; @@ -1338,4 +1349,4 @@ bool taosCheckBalanceCfgOptions(const char *option, int32_t *vnodeId, int32_t *d } return true; -} \ No newline at end of file +} diff --git a/src/inc/taosdef.h b/src/inc/taosdef.h index ee95548c2d..c70ca8662e 100644 --- a/src/inc/taosdef.h +++ b/src/inc/taosdef.h @@ -338,6 +338,7 @@ void tsDataSwap(void *pLeft, void *pRight, int32_t type, int32_t size); #define TSDB_MIN_DB_REPLICA_OPTION 1 #define TSDB_MAX_DB_REPLICA_OPTION 3 #define TSDB_DEFAULT_DB_REPLICA_OPTION 1 +#define TSDB_DEFAULT_DB_QUORUM_OPTION 1 #define TSDB_MAX_JOIN_TABLE_NUM 5 #define TSDB_MAX_UNION_CLAUSE 5 diff --git a/src/inc/taosmsg.h b/src/inc/taosmsg.h index ad2be97946..edddc717c0 100644 --- a/src/inc/taosmsg.h +++ b/src/inc/taosmsg.h @@ -522,6 +522,7 @@ typedef struct { int8_t compression; int8_t walLevel; int8_t replications; + int8_t quorum; int8_t ignoreExist; } SCMCreateDbMsg, SCMAlterDbMsg; diff --git a/src/inc/ttokendef.h b/src/inc/ttokendef.h index 0b63e9e71d..e77f5741d3 100644 --- a/src/inc/ttokendef.h +++ b/src/inc/ttokendef.h @@ -104,123 +104,125 @@ #define TK_MAXTABLES 86 #define TK_CACHE 87 #define TK_REPLICA 88 -#define TK_DAYS 89 -#define TK_MINROWS 90 -#define TK_MAXROWS 91 -#define TK_BLOCKS 92 -#define TK_CTIME 93 -#define TK_WAL 94 -#define TK_FSYNC 95 -#define TK_COMP 96 -#define TK_PRECISION 97 -#define TK_LP 98 -#define TK_RP 99 -#define TK_TAGS 100 -#define TK_USING 101 -#define TK_AS 102 -#define TK_COMMA 103 -#define TK_NULL 104 -#define TK_SELECT 105 -#define TK_UNION 106 -#define TK_ALL 107 -#define TK_FROM 108 -#define TK_VARIABLE 109 -#define TK_INTERVAL 110 -#define TK_FILL 111 -#define TK_SLIDING 112 -#define TK_ORDER 113 -#define TK_BY 114 -#define TK_ASC 115 -#define TK_DESC 116 -#define TK_GROUP 117 -#define TK_HAVING 118 -#define TK_LIMIT 119 -#define TK_OFFSET 120 -#define TK_SLIMIT 121 -#define TK_SOFFSET 122 -#define TK_WHERE 123 -#define TK_NOW 124 -#define TK_RESET 125 -#define TK_QUERY 126 -#define TK_ADD 127 -#define TK_COLUMN 128 -#define TK_TAG 129 -#define TK_CHANGE 130 -#define TK_SET 131 -#define TK_KILL 132 -#define TK_CONNECTION 133 -#define TK_STREAM 134 -#define TK_COLON 135 -#define TK_ABORT 136 -#define TK_AFTER 137 -#define TK_ATTACH 138 -#define TK_BEFORE 139 -#define TK_BEGIN 140 -#define TK_CASCADE 141 -#define TK_CLUSTER 142 -#define TK_CONFLICT 143 -#define TK_COPY 144 -#define TK_DEFERRED 145 -#define TK_DELIMITERS 146 -#define TK_DETACH 147 -#define TK_EACH 148 -#define TK_END 149 -#define TK_EXPLAIN 150 -#define TK_FAIL 151 -#define TK_FOR 152 -#define TK_IGNORE 153 -#define TK_IMMEDIATE 154 -#define TK_INITIALLY 155 -#define TK_INSTEAD 156 -#define TK_MATCH 157 -#define TK_KEY 158 -#define TK_OF 159 -#define TK_RAISE 160 -#define TK_REPLACE 161 -#define TK_RESTRICT 162 -#define TK_ROW 163 -#define TK_STATEMENT 164 -#define TK_TRIGGER 165 -#define TK_VIEW 166 -#define TK_COUNT 167 -#define TK_SUM 168 -#define TK_AVG 169 -#define TK_MIN 170 -#define TK_MAX 171 -#define TK_FIRST 172 -#define TK_LAST 173 -#define TK_TOP 174 -#define TK_BOTTOM 175 -#define TK_STDDEV 176 -#define TK_PERCENTILE 177 -#define TK_APERCENTILE 178 -#define TK_LEASTSQUARES 179 -#define TK_HISTOGRAM 180 -#define TK_DIFF 181 -#define TK_SPREAD 182 -#define TK_TWA 183 -#define TK_INTERP 184 -#define TK_LAST_ROW 185 -#define TK_RATE 186 -#define TK_IRATE 187 -#define TK_SUM_RATE 188 -#define TK_SUM_IRATE 189 -#define TK_AVG_RATE 190 -#define TK_AVG_IRATE 191 -#define TK_TBID 192 -#define TK_SEMI 193 -#define TK_NONE 194 -#define TK_PREV 195 -#define TK_LINEAR 196 -#define TK_IMPORT 197 -#define TK_METRIC 198 -#define TK_TBNAME 199 -#define TK_JOIN 200 -#define TK_METRICS 201 -#define TK_STABLE 202 -#define TK_INSERT 203 -#define TK_INTO 204 -#define TK_VALUES 205 +#define TK_QUORUM 89 +#define TK_DAYS 90 +#define TK_MINROWS 91 +#define TK_MAXROWS 92 +#define TK_BLOCKS 93 +#define TK_CTIME 94 +#define TK_WAL 95 +#define TK_FSYNC 96 +#define TK_COMP 97 +#define TK_PRECISION 98 +#define TK_LP 99 +#define TK_RP 100 +#define TK_TAGS 101 +#define TK_USING 102 +#define TK_AS 103 +#define TK_COMMA 104 +#define TK_NULL 105 +#define TK_SELECT 106 +#define TK_UNION 107 +#define TK_ALL 108 +#define TK_FROM 109 +#define TK_VARIABLE 110 +#define TK_INTERVAL 111 +#define TK_FILL 112 +#define TK_SLIDING 113 +#define TK_ORDER 114 +#define TK_BY 115 +#define TK_ASC 116 +#define TK_DESC 117 +#define TK_GROUP 118 +#define TK_HAVING 119 +#define TK_LIMIT 120 +#define TK_OFFSET 121 +#define TK_SLIMIT 122 +#define TK_SOFFSET 123 +#define TK_WHERE 124 +#define TK_NOW 125 +#define TK_RESET 126 +#define TK_QUERY 127 +#define TK_ADD 128 +#define TK_COLUMN 129 +#define TK_TAG 130 +#define TK_CHANGE 131 +#define TK_SET 132 +#define TK_KILL 133 +#define TK_CONNECTION 134 +#define TK_STREAM 135 +#define TK_COLON 136 +#define TK_ABORT 137 +#define TK_AFTER 138 +#define TK_ATTACH 139 +#define TK_BEFORE 140 +#define TK_BEGIN 141 +#define TK_CASCADE 142 +#define TK_CLUSTER 143 +#define TK_CONFLICT 144 +#define TK_COPY 145 +#define TK_DEFERRED 146 +#define TK_DELIMITERS 147 +#define TK_DETACH 148 +#define TK_EACH 149 +#define TK_END 150 +#define TK_EXPLAIN 151 +#define TK_FAIL 152 +#define TK_FOR 153 +#define TK_IGNORE 154 +#define TK_IMMEDIATE 155 +#define TK_INITIALLY 156 +#define TK_INSTEAD 157 +#define TK_MATCH 158 +#define TK_KEY 159 +#define TK_OF 160 +#define TK_RAISE 161 +#define TK_REPLACE 162 +#define TK_RESTRICT 163 +#define TK_ROW 164 +#define TK_STATEMENT 165 +#define TK_TRIGGER 166 +#define TK_VIEW 167 +#define TK_COUNT 168 +#define TK_SUM 169 +#define TK_AVG 170 +#define TK_MIN 171 +#define TK_MAX 172 +#define TK_FIRST 173 +#define TK_LAST 174 +#define TK_TOP 175 +#define TK_BOTTOM 176 +#define TK_STDDEV 177 +#define TK_PERCENTILE 178 +#define TK_APERCENTILE 179 +#define TK_LEASTSQUARES 180 +#define TK_HISTOGRAM 181 +#define TK_DIFF 182 +#define TK_SPREAD 183 +#define TK_TWA 184 +#define TK_INTERP 185 +#define TK_LAST_ROW 186 +#define TK_RATE 187 +#define TK_IRATE 188 +#define TK_SUM_RATE 189 +#define TK_SUM_IRATE 190 +#define TK_AVG_RATE 191 +#define TK_AVG_IRATE 192 +#define TK_TBID 193 +#define TK_SEMI 194 +#define TK_NONE 195 +#define TK_PREV 196 +#define TK_LINEAR 197 +#define TK_IMPORT 198 +#define TK_METRIC 199 +#define TK_TBNAME 200 +#define TK_JOIN 201 +#define TK_METRICS 202 +#define TK_STABLE 203 +#define TK_INSERT 204 +#define TK_INTO 205 +#define TK_VALUES 206 + #define TK_SPACE 300 #define TK_COMMENT 301 diff --git a/src/mnode/inc/mnodeDef.h b/src/mnode/inc/mnodeDef.h index 62028bc820..02848089cb 100644 --- a/src/mnode/inc/mnodeDef.h +++ b/src/mnode/inc/mnodeDef.h @@ -171,6 +171,7 @@ typedef struct { int8_t compression; int8_t walLevel; int8_t replications; + int8_t quorum; int8_t reserved[12]; } SDbCfg; diff --git a/src/mnode/src/mnodeDb.c b/src/mnode/src/mnodeDb.c index 199cc63da6..20d1ce3bab 100644 --- a/src/mnode/src/mnodeDb.c +++ b/src/mnode/src/mnodeDb.c @@ -301,6 +301,12 @@ static int32_t mnodeCheckDbCfg(SDbCfg *pCfg) { return TSDB_CODE_MND_INVALID_DB_OPTION; } + if (pCfg->quorum < TSDB_MIN_DB_REPLICA_OPTION || pCfg->quorum > TSDB_MAX_DB_REPLICA_OPTION) { + mError("invalid db option quorum:%d valid range: [%d, %d]", pCfg->quorum, TSDB_MIN_DB_REPLICA_OPTION, + TSDB_MAX_DB_REPLICA_OPTION); + return TSDB_CODE_MND_INVALID_DB_OPTION; + } + return TSDB_CODE_SUCCESS; } @@ -320,6 +326,7 @@ static void mnodeSetDefaultDbCfg(SDbCfg *pCfg) { if (pCfg->compression < 0) pCfg->compression = tsCompression; if (pCfg->walLevel < 0) pCfg->walLevel = tsWAL; if (pCfg->replications < 0) pCfg->replications = tsReplications; + if (pCfg->quorum < 0) pCfg->quorum = tsQuorum; } static int32_t mnodeCreateDbCb(SMnodeMsg *pMsg, int32_t code) { @@ -369,7 +376,8 @@ static int32_t mnodeCreateDb(SAcctObj *pAcct, SCMCreateDbMsg *pCreate, void *pMs .precision = pCreate->precision, .compression = pCreate->compression, .walLevel = pCreate->walLevel, - .replications = pCreate->replications + .replications = pCreate->replications, + .quorum = pCreate->quorum }; mnodeSetDefaultDbCfg(&pDb->cfg); @@ -508,6 +516,12 @@ static int32_t mnodeGetDbMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pConn pSchema[cols].bytes = htons(pShow->bytes[cols]); cols++; + pShow->bytes[cols] = 2; + pSchema[cols].type = TSDB_DATA_TYPE_SMALLINT; + strcpy(pSchema[cols].name, "quorum"); + pSchema[cols].bytes = htons(pShow->bytes[cols]); + cols++; + pShow->bytes[cols] = 2; pSchema[cols].type = TSDB_DATA_TYPE_SMALLINT; strcpy(pSchema[cols].name, "days"); @@ -654,6 +668,10 @@ static int32_t mnodeRetrieveDbs(SShowObj *pShow, char *data, int32_t rows, void *(int16_t *)pWrite = pDb->cfg.replications; cols++; + pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; + *(int16_t *)pWrite = pDb->cfg.quorum; + cols++; + pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; *(int16_t *)pWrite = pDb->cfg.daysPerFile; cols++; @@ -803,6 +821,7 @@ static SDbCfg mnodeGetAlterDbOption(SDbObj *pDb, SCMAlterDbMsg *pAlter) { int8_t compression = pAlter->compression; int8_t walLevel = pAlter->walLevel; int8_t replications = pAlter->replications; + int8_t quorum = pAlter->quorum; int8_t precision = pAlter->precision; terrno = TSDB_CODE_SUCCESS; @@ -901,6 +920,11 @@ static SDbCfg mnodeGetAlterDbOption(SDbObj *pDb, SCMAlterDbMsg *pAlter) { } } + if (quorum >= 0 && quorum != pDb->cfg.quorum) { + mDebug("db:%s, quorum:%d change to %d", pDb->name, pDb->cfg.quorum, quorum); + newCfg.compression = quorum; + } + return newCfg; } diff --git a/src/mnode/src/mnodeVgroup.c b/src/mnode/src/mnodeVgroup.c index 089168c31e..231e350092 100644 --- a/src/mnode/src/mnodeVgroup.c +++ b/src/mnode/src/mnodeVgroup.c @@ -784,7 +784,7 @@ static SMDCreateVnodeMsg *mnodeBuildVnodeMsg(SVgObj *pVgroup) { pCfg->walLevel = pDb->cfg.walLevel; pCfg->replications = (int8_t) pVgroup->numOfVnodes; pCfg->wals = 3; - pCfg->quorum = 1; + pCfg->quorum = pDb->cfg.quorum; SMDVnodeDesc *pNodes = pVnode->nodes; for (int32_t j = 0; j < pVgroup->numOfVnodes; ++j) { diff --git a/src/query/inc/qSqlparser.h b/src/query/inc/qSqlparser.h index 9e8706cf92..cd9618b223 100644 --- a/src/query/inc/qSqlparser.h +++ b/src/query/inc/qSqlparser.h @@ -119,6 +119,7 @@ typedef struct SCreateDBInfo { int32_t fsyncPeriod; int64_t commitTime; int32_t walLevel; + int32_t quorum; int32_t compressionLevel; SSQLToken precision; bool ignoreExists; diff --git a/src/query/inc/sql.y b/src/query/inc/sql.y index d709b4f838..15cfeee6b2 100644 --- a/src/query/inc/sql.y +++ b/src/query/inc/sql.y @@ -215,6 +215,7 @@ keep(Y) ::= KEEP tagitemlist(X). { Y = X; } tables(Y) ::= MAXTABLES INTEGER(X). { Y = X; } cache(Y) ::= CACHE INTEGER(X). { Y = X; } replica(Y) ::= REPLICA INTEGER(X). { Y = X; } +quorum(Y) ::= QUORUM INTEGER(X). { Y = X; } days(Y) ::= DAYS INTEGER(X). { Y = X; } minrows(Y) ::= MINROWS INTEGER(X). { Y = X; } maxrows(Y) ::= MAXROWS INTEGER(X). { Y = X; } @@ -231,6 +232,7 @@ db_optr(Y) ::= . {setDefaultCreateDbOption(&Y);} db_optr(Y) ::= db_optr(Z) tables(X). { Y = Z; Y.maxTablesPerVnode = strtol(X.z, NULL, 10); } db_optr(Y) ::= db_optr(Z) cache(X). { Y = Z; Y.cacheBlockSize = strtol(X.z, NULL, 10); } db_optr(Y) ::= db_optr(Z) replica(X). { Y = Z; Y.replica = strtol(X.z, NULL, 10); } +db_optr(Y) ::= db_optr(Z) quorum(X). { Y = Z; Y.quorum = strtol(X.z, NULL, 10); } db_optr(Y) ::= db_optr(Z) days(X). { Y = Z; Y.daysPerFile = strtol(X.z, NULL, 10); } db_optr(Y) ::= db_optr(Z) minrows(X). { Y = Z; Y.minRowsPerBlock = strtod(X.z, NULL); } db_optr(Y) ::= db_optr(Z) maxrows(X). { Y = Z; Y.maxRowsPerBlock = strtod(X.z, NULL); } @@ -246,6 +248,7 @@ db_optr(Y) ::= db_optr(Z) keep(X). { Y = Z; Y.keep = X; } alter_db_optr(Y) ::= . { setDefaultCreateDbOption(&Y);} alter_db_optr(Y) ::= alter_db_optr(Z) replica(X). { Y = Z; Y.replica = strtol(X.z, NULL, 10); } +alter_db_optr(Y) ::= alter_db_optr(Z) quorum(X). { Y = Z; Y.quorum = strtol(X.z, NULL, 10); } alter_db_optr(Y) ::= alter_db_optr(Z) tables(X). { Y = Z; Y.maxTablesPerVnode = strtol(X.z, NULL, 10); } alter_db_optr(Y) ::= alter_db_optr(Z) keep(X). { Y = Z; Y.keep = X; } alter_db_optr(Y) ::= alter_db_optr(Z) blocks(X). { Y = Z; Y.numOfBlocks = strtol(X.z, NULL, 10); } diff --git a/src/query/src/qParserImpl.c b/src/query/src/qParserImpl.c index 1e58dbbe0b..7cf995193b 100644 --- a/src/query/src/qParserImpl.c +++ b/src/query/src/qParserImpl.c @@ -907,6 +907,7 @@ void setDefaultCreateDbOption(SCreateDBInfo *pDBInfo) { pDBInfo->daysPerFile = -1; pDBInfo->replica = -1; + pDBInfo->quorum = -1; pDBInfo->keep = NULL; memset(&pDBInfo->precision, 0, sizeof(SSQLToken)); diff --git a/src/query/src/qTokenizer.c b/src/query/src/qTokenizer.c index 0ea0ff7bf3..b54dc32fb3 100644 --- a/src/query/src/qTokenizer.c +++ b/src/query/src/qTokenizer.c @@ -116,6 +116,7 @@ static SKeyword keywordTable[] = { {"STATE", TK_STATE}, {"KEEP", TK_KEEP}, {"REPLICA", TK_REPLICA}, + {"QUORUM", TK_QUORUM}, {"DAYS", TK_DAYS}, {"MINROWS", TK_MINROWS}, {"MAXROWS", TK_MAXROWS}, diff --git a/src/query/src/sql.c b/src/query/src/sql.c index 307d5203b3..fe26f61725 100644 --- a/src/query/src/sql.c +++ b/src/query/src/sql.c @@ -97,26 +97,26 @@ #endif /************* Begin control #defines *****************************************/ #define YYCODETYPE unsigned short int -#define YYNOCODE 272 +#define YYNOCODE 274 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE SSQLToken typedef union { int yyinit; ParseTOKENTYPE yy0; - SSubclauseInfo* yy25; - tSQLExpr* yy66; - SCreateAcctSQL yy73; - int yy82; - SQuerySQL* yy150; - SCreateDBInfo yy158; - TAOS_FIELD yy181; - SLimitVal yy188; - tSQLExprList* yy224; - int64_t yy271; - tVariant yy312; - SCreateTableSQL* yy374; - tFieldList* yy449; - tVariantList* yy494; + int yy46; + tSQLExpr* yy64; + tVariant yy134; + SCreateAcctSQL yy149; + int64_t yy207; + SLimitVal yy216; + TAOS_FIELD yy223; + SSubclauseInfo* yy231; + SCreateDBInfo yy268; + tSQLExprList* yy290; + SQuerySQL* yy414; + SCreateTableSQL* yy470; + tVariantList* yy498; + tFieldList* yy523; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 @@ -126,17 +126,17 @@ typedef union { #define ParseARG_FETCH SSqlInfo* pInfo = yypParser->pInfo #define ParseARG_STORE yypParser->pInfo = pInfo #define YYFALLBACK 1 -#define YYNSTATE 242 -#define YYNRULE 223 -#define YYNTOKEN 206 -#define YY_MAX_SHIFT 241 -#define YY_MIN_SHIFTREDUCE 401 -#define YY_MAX_SHIFTREDUCE 623 -#define YY_ERROR_ACTION 624 -#define YY_ACCEPT_ACTION 625 -#define YY_NO_ACTION 626 -#define YY_MIN_REDUCE 627 -#define YY_MAX_REDUCE 849 +#define YYNSTATE 243 +#define YYNRULE 226 +#define YYNTOKEN 207 +#define YY_MAX_SHIFT 242 +#define YY_MIN_SHIFTREDUCE 405 +#define YY_MAX_SHIFTREDUCE 630 +#define YY_ERROR_ACTION 631 +#define YY_ACCEPT_ACTION 632 +#define YY_NO_ACTION 633 +#define YY_MIN_REDUCE 634 +#define YY_MAX_REDUCE 859 /************* End control #defines *******************************************/ /* Define the yytestcase() macro to be a no-op if is not already defined @@ -202,217 +202,218 @@ typedef union { ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (547) +#define YY_ACTTAB_COUNT (552) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 727, 442, 726, 11, 725, 625, 241, 508, 728, 443, - /* 10 */ 730, 731, 729, 41, 43, 524, 35, 36, 521, 134, - /* 20 */ 522, 29, 523, 442, 197, 39, 37, 40, 38, 153, - /* 30 */ 239, 443, 219, 34, 33, 217, 216, 32, 31, 30, - /* 40 */ 41, 43, 757, 35, 36, 139, 170, 171, 29, 135, - /* 50 */ 21, 197, 39, 37, 40, 38, 182, 833, 158, 837, - /* 60 */ 34, 33, 744, 768, 32, 31, 30, 402, 403, 404, - /* 70 */ 405, 406, 407, 408, 409, 410, 411, 412, 413, 240, - /* 80 */ 41, 43, 846, 35, 36, 742, 60, 135, 29, 135, - /* 90 */ 21, 197, 39, 37, 40, 38, 157, 837, 27, 836, - /* 100 */ 34, 33, 56, 228, 32, 31, 30, 103, 43, 8, - /* 110 */ 35, 36, 61, 113, 765, 29, 757, 525, 197, 39, - /* 120 */ 37, 40, 38, 166, 537, 743, 579, 34, 33, 18, - /* 130 */ 154, 32, 31, 30, 16, 234, 208, 233, 207, 206, - /* 140 */ 205, 232, 204, 231, 230, 229, 203, 723, 168, 711, - /* 150 */ 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, - /* 160 */ 722, 35, 36, 792, 103, 192, 29, 175, 155, 197, - /* 170 */ 39, 37, 40, 38, 179, 178, 21, 581, 34, 33, - /* 180 */ 442, 12, 32, 31, 30, 162, 592, 746, 443, 583, - /* 190 */ 17, 586, 76, 589, 103, 162, 592, 26, 228, 583, - /* 200 */ 148, 586, 99, 589, 103, 21, 88, 87, 142, 167, - /* 210 */ 165, 743, 169, 582, 147, 214, 213, 159, 160, 50, - /* 220 */ 791, 196, 74, 78, 83, 86, 77, 159, 160, 746, - /* 230 */ 235, 540, 80, 162, 592, 17, 51, 583, 215, 586, - /* 240 */ 743, 589, 26, 39, 37, 40, 38, 832, 194, 746, - /* 250 */ 58, 34, 33, 47, 185, 32, 31, 30, 666, 831, - /* 260 */ 59, 126, 181, 560, 561, 159, 160, 16, 234, 150, - /* 270 */ 233, 21, 48, 585, 232, 588, 231, 230, 229, 34, - /* 280 */ 33, 745, 42, 32, 31, 30, 116, 117, 68, 64, - /* 290 */ 67, 151, 42, 591, 32, 31, 30, 130, 128, 91, - /* 300 */ 90, 89, 675, 591, 220, 126, 743, 98, 590, 238, - /* 310 */ 237, 95, 667, 152, 26, 126, 532, 584, 590, 587, - /* 320 */ 551, 161, 552, 184, 46, 609, 14, 593, 514, 13, - /* 330 */ 42, 13, 46, 513, 201, 73, 72, 22, 22, 10, - /* 340 */ 9, 591, 528, 526, 529, 527, 85, 84, 802, 140, - /* 350 */ 141, 143, 801, 144, 163, 145, 590, 146, 798, 137, - /* 360 */ 3, 133, 138, 136, 797, 164, 759, 737, 218, 767, - /* 370 */ 100, 784, 783, 114, 112, 115, 677, 202, 131, 24, - /* 380 */ 211, 674, 212, 845, 70, 844, 26, 842, 118, 93, - /* 390 */ 695, 25, 547, 23, 186, 132, 664, 79, 662, 81, - /* 400 */ 82, 660, 659, 172, 190, 127, 657, 656, 655, 654, - /* 410 */ 653, 645, 129, 651, 649, 647, 52, 49, 756, 771, - /* 420 */ 104, 772, 44, 785, 195, 193, 191, 189, 187, 28, - /* 430 */ 210, 75, 221, 222, 223, 224, 225, 226, 199, 227, - /* 440 */ 236, 53, 623, 174, 173, 622, 62, 177, 149, 621, - /* 450 */ 183, 65, 176, 614, 658, 180, 92, 94, 652, 121, - /* 460 */ 125, 534, 120, 696, 741, 119, 110, 107, 105, 106, - /* 470 */ 122, 108, 123, 2, 111, 109, 124, 1, 184, 57, - /* 480 */ 55, 548, 156, 101, 188, 5, 553, 102, 6, 63, - /* 490 */ 594, 19, 4, 20, 15, 198, 7, 200, 483, 479, - /* 500 */ 477, 476, 475, 473, 446, 209, 66, 45, 69, 71, - /* 510 */ 22, 510, 509, 507, 54, 467, 465, 457, 463, 459, - /* 520 */ 461, 455, 453, 482, 481, 480, 478, 474, 472, 46, - /* 530 */ 444, 417, 415, 627, 626, 626, 626, 626, 626, 626, - /* 540 */ 626, 626, 626, 626, 626, 96, 97, + /* 0 */ 103, 446, 135, 673, 632, 242, 126, 515, 135, 447, + /* 10 */ 135, 158, 847, 41, 43, 11, 35, 36, 846, 157, + /* 20 */ 847, 29, 134, 446, 197, 39, 37, 40, 38, 155, + /* 30 */ 103, 447, 139, 34, 33, 217, 216, 32, 31, 30, + /* 40 */ 41, 43, 767, 35, 36, 32, 31, 30, 29, 756, + /* 50 */ 446, 197, 39, 37, 40, 38, 182, 802, 447, 192, + /* 60 */ 34, 33, 21, 21, 32, 31, 30, 406, 407, 408, + /* 70 */ 409, 410, 411, 412, 413, 414, 415, 416, 417, 241, + /* 80 */ 41, 43, 228, 35, 36, 194, 843, 58, 29, 21, + /* 90 */ 842, 197, 39, 37, 40, 38, 166, 167, 753, 753, + /* 100 */ 34, 33, 168, 56, 32, 31, 30, 778, 841, 16, + /* 110 */ 235, 208, 234, 233, 207, 206, 205, 232, 204, 231, + /* 120 */ 230, 229, 203, 215, 151, 753, 732, 586, 719, 720, + /* 130 */ 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + /* 140 */ 731, 43, 8, 35, 36, 61, 113, 21, 29, 153, + /* 150 */ 240, 197, 39, 37, 40, 38, 239, 238, 95, 775, + /* 160 */ 34, 33, 165, 99, 32, 31, 30, 169, 35, 36, + /* 170 */ 214, 213, 592, 29, 595, 103, 197, 39, 37, 40, + /* 180 */ 38, 220, 756, 753, 236, 34, 33, 175, 12, 32, + /* 190 */ 31, 30, 162, 599, 179, 178, 590, 767, 593, 103, + /* 200 */ 596, 161, 162, 599, 756, 17, 590, 148, 593, 152, + /* 210 */ 596, 154, 26, 88, 87, 142, 185, 567, 568, 16, + /* 220 */ 235, 147, 234, 233, 159, 160, 219, 232, 196, 231, + /* 230 */ 230, 229, 801, 76, 159, 160, 162, 599, 547, 228, + /* 240 */ 590, 3, 593, 17, 596, 74, 78, 83, 86, 77, + /* 250 */ 26, 39, 37, 40, 38, 80, 59, 754, 21, 34, + /* 260 */ 33, 544, 60, 32, 31, 30, 18, 140, 159, 160, + /* 270 */ 181, 737, 539, 736, 27, 734, 735, 150, 682, 184, + /* 280 */ 738, 126, 740, 741, 739, 674, 531, 141, 126, 528, + /* 290 */ 42, 529, 558, 530, 752, 591, 46, 594, 34, 33, + /* 300 */ 42, 598, 32, 31, 30, 116, 117, 68, 64, 67, + /* 310 */ 588, 598, 143, 50, 73, 72, 597, 170, 171, 130, + /* 320 */ 128, 91, 90, 89, 98, 47, 597, 144, 559, 616, + /* 330 */ 51, 26, 14, 13, 42, 145, 600, 521, 520, 201, + /* 340 */ 13, 46, 22, 22, 48, 598, 589, 10, 9, 535, + /* 350 */ 533, 536, 534, 85, 84, 146, 137, 133, 856, 138, + /* 360 */ 597, 136, 755, 812, 811, 163, 808, 807, 164, 777, + /* 370 */ 747, 218, 794, 100, 793, 769, 114, 115, 26, 684, + /* 380 */ 112, 202, 131, 183, 24, 211, 681, 212, 855, 532, + /* 390 */ 70, 854, 93, 852, 118, 702, 554, 25, 23, 132, + /* 400 */ 671, 79, 52, 186, 669, 81, 82, 667, 666, 172, + /* 410 */ 127, 664, 190, 663, 662, 661, 660, 652, 129, 658, + /* 420 */ 49, 656, 654, 766, 781, 782, 795, 104, 195, 44, + /* 430 */ 193, 191, 189, 187, 210, 105, 75, 28, 221, 199, + /* 440 */ 222, 223, 53, 225, 224, 149, 226, 62, 65, 703, + /* 450 */ 227, 237, 630, 173, 174, 629, 177, 665, 628, 119, + /* 460 */ 176, 92, 121, 125, 120, 751, 122, 123, 659, 124, + /* 470 */ 108, 106, 107, 109, 110, 111, 94, 1, 2, 621, + /* 480 */ 180, 184, 541, 55, 57, 555, 101, 156, 188, 198, + /* 490 */ 19, 63, 5, 560, 102, 4, 6, 601, 20, 15, + /* 500 */ 7, 488, 484, 200, 482, 481, 480, 477, 450, 209, + /* 510 */ 66, 45, 22, 69, 71, 517, 516, 514, 471, 54, + /* 520 */ 469, 461, 467, 463, 465, 459, 457, 487, 486, 485, + /* 530 */ 483, 479, 478, 476, 46, 448, 421, 419, 634, 633, + /* 540 */ 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, + /* 550 */ 96, 97, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 226, 1, 228, 260, 230, 207, 208, 5, 234, 9, - /* 10 */ 236, 237, 238, 13, 14, 2, 16, 17, 5, 260, - /* 20 */ 7, 21, 9, 1, 24, 25, 26, 27, 28, 209, - /* 30 */ 210, 9, 210, 33, 34, 33, 34, 37, 38, 39, - /* 40 */ 13, 14, 244, 16, 17, 260, 33, 34, 21, 260, - /* 50 */ 210, 24, 25, 26, 27, 28, 258, 260, 269, 270, - /* 60 */ 33, 34, 240, 210, 37, 38, 39, 45, 46, 47, + /* 0 */ 211, 1, 262, 215, 208, 209, 218, 5, 262, 9, + /* 10 */ 262, 271, 272, 13, 14, 262, 16, 17, 272, 271, + /* 20 */ 272, 21, 262, 1, 24, 25, 26, 27, 28, 228, + /* 30 */ 211, 9, 262, 33, 34, 33, 34, 37, 38, 39, + /* 40 */ 13, 14, 246, 16, 17, 37, 38, 39, 21, 248, + /* 50 */ 1, 24, 25, 26, 27, 28, 260, 268, 9, 270, + /* 60 */ 33, 34, 211, 211, 37, 38, 39, 45, 46, 47, /* 70 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - /* 80 */ 13, 14, 246, 16, 17, 245, 247, 260, 21, 260, - /* 90 */ 210, 24, 25, 26, 27, 28, 269, 270, 259, 270, - /* 100 */ 33, 34, 102, 78, 37, 38, 39, 210, 14, 98, - /* 110 */ 16, 17, 101, 102, 261, 21, 244, 104, 24, 25, - /* 120 */ 26, 27, 28, 243, 103, 245, 99, 33, 34, 108, - /* 130 */ 258, 37, 38, 39, 85, 86, 87, 88, 89, 90, - /* 140 */ 91, 92, 93, 94, 95, 96, 97, 226, 63, 228, - /* 150 */ 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - /* 160 */ 239, 16, 17, 266, 210, 268, 21, 126, 227, 24, - /* 170 */ 25, 26, 27, 28, 133, 134, 210, 1, 33, 34, - /* 180 */ 1, 44, 37, 38, 39, 1, 2, 246, 9, 5, - /* 190 */ 98, 7, 72, 9, 210, 1, 2, 105, 78, 5, - /* 200 */ 63, 7, 210, 9, 210, 210, 69, 70, 71, 243, - /* 210 */ 227, 245, 127, 37, 77, 130, 131, 33, 34, 103, - /* 220 */ 266, 37, 64, 65, 66, 67, 68, 33, 34, 246, - /* 230 */ 227, 37, 74, 1, 2, 98, 120, 5, 243, 7, - /* 240 */ 245, 9, 105, 25, 26, 27, 28, 260, 264, 246, - /* 250 */ 266, 33, 34, 103, 262, 37, 38, 39, 214, 260, - /* 260 */ 266, 217, 125, 115, 116, 33, 34, 85, 86, 132, - /* 270 */ 88, 210, 122, 5, 92, 7, 94, 95, 96, 33, - /* 280 */ 34, 246, 98, 37, 38, 39, 64, 65, 66, 67, - /* 290 */ 68, 260, 98, 109, 37, 38, 39, 64, 65, 66, - /* 300 */ 67, 68, 214, 109, 243, 217, 245, 98, 124, 60, - /* 310 */ 61, 62, 214, 260, 105, 217, 99, 5, 124, 7, - /* 320 */ 99, 59, 99, 106, 103, 99, 103, 99, 99, 103, - /* 330 */ 98, 103, 103, 99, 99, 128, 129, 103, 103, 128, - /* 340 */ 129, 109, 5, 5, 7, 7, 72, 73, 241, 260, - /* 350 */ 260, 260, 241, 260, 241, 260, 124, 260, 241, 260, - /* 360 */ 98, 260, 260, 260, 241, 241, 244, 242, 241, 210, - /* 370 */ 210, 267, 267, 210, 248, 210, 210, 210, 210, 210, - /* 380 */ 210, 210, 210, 210, 210, 210, 105, 210, 210, 59, - /* 390 */ 210, 210, 109, 210, 263, 210, 210, 210, 210, 210, - /* 400 */ 210, 210, 210, 210, 263, 210, 210, 210, 210, 210, - /* 410 */ 210, 210, 210, 210, 210, 210, 119, 121, 257, 211, - /* 420 */ 256, 211, 118, 211, 113, 117, 112, 111, 110, 123, - /* 430 */ 75, 84, 83, 49, 80, 82, 53, 81, 211, 79, - /* 440 */ 75, 211, 5, 5, 135, 5, 215, 5, 211, 5, - /* 450 */ 244, 215, 135, 87, 211, 126, 212, 212, 211, 219, - /* 460 */ 218, 99, 223, 225, 244, 224, 250, 253, 255, 254, - /* 470 */ 222, 252, 220, 213, 249, 251, 221, 216, 106, 103, - /* 480 */ 107, 99, 1, 98, 98, 114, 99, 98, 114, 72, - /* 490 */ 99, 103, 98, 103, 98, 100, 98, 100, 9, 5, - /* 500 */ 5, 5, 5, 5, 76, 15, 72, 16, 129, 129, - /* 510 */ 103, 5, 5, 99, 98, 5, 5, 5, 5, 5, - /* 520 */ 5, 5, 5, 5, 5, 5, 5, 5, 5, 103, - /* 530 */ 76, 59, 58, 0, 271, 271, 271, 271, 271, 271, - /* 540 */ 271, 271, 271, 271, 271, 21, 21, 271, 271, 271, - /* 550 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 560 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 570 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 580 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 590 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 600 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 610 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 620 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 630 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 640 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 650 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 660 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 670 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 680 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 690 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 700 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 710 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 720 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 730 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 740 */ 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - /* 750 */ 271, 271, 271, + /* 80 */ 13, 14, 78, 16, 17, 266, 262, 268, 21, 211, + /* 90 */ 262, 24, 25, 26, 27, 28, 245, 245, 247, 247, + /* 100 */ 33, 34, 63, 103, 37, 38, 39, 211, 262, 85, + /* 110 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + /* 120 */ 96, 97, 98, 245, 262, 247, 227, 100, 229, 230, + /* 130 */ 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + /* 140 */ 241, 14, 99, 16, 17, 102, 103, 211, 21, 210, + /* 150 */ 211, 24, 25, 26, 27, 28, 60, 61, 62, 263, + /* 160 */ 33, 34, 228, 211, 37, 38, 39, 128, 16, 17, + /* 170 */ 131, 132, 5, 21, 7, 211, 24, 25, 26, 27, + /* 180 */ 28, 245, 248, 247, 228, 33, 34, 127, 44, 37, + /* 190 */ 38, 39, 1, 2, 134, 135, 5, 246, 7, 211, + /* 200 */ 9, 59, 1, 2, 248, 99, 5, 63, 7, 262, + /* 210 */ 9, 260, 106, 69, 70, 71, 264, 116, 117, 85, + /* 220 */ 86, 77, 88, 89, 33, 34, 211, 93, 37, 95, + /* 230 */ 96, 97, 268, 72, 33, 34, 1, 2, 37, 78, + /* 240 */ 5, 99, 7, 99, 9, 64, 65, 66, 67, 68, + /* 250 */ 106, 25, 26, 27, 28, 74, 268, 242, 211, 33, + /* 260 */ 34, 104, 249, 37, 38, 39, 109, 262, 33, 34, + /* 270 */ 126, 227, 100, 229, 261, 231, 232, 133, 215, 107, + /* 280 */ 236, 218, 238, 239, 240, 215, 2, 262, 218, 5, + /* 290 */ 99, 7, 100, 9, 247, 5, 104, 7, 33, 34, + /* 300 */ 99, 110, 37, 38, 39, 64, 65, 66, 67, 68, + /* 310 */ 1, 110, 262, 104, 129, 130, 125, 33, 34, 64, + /* 320 */ 65, 66, 67, 68, 99, 104, 125, 262, 100, 100, + /* 330 */ 121, 106, 104, 104, 99, 262, 100, 100, 100, 100, + /* 340 */ 104, 104, 104, 104, 123, 110, 37, 129, 130, 5, + /* 350 */ 5, 7, 7, 72, 73, 262, 262, 262, 248, 262, + /* 360 */ 125, 262, 248, 243, 243, 243, 243, 243, 243, 211, + /* 370 */ 244, 243, 269, 211, 269, 246, 211, 211, 106, 211, + /* 380 */ 250, 211, 211, 246, 211, 211, 211, 211, 211, 105, + /* 390 */ 211, 211, 59, 211, 211, 211, 110, 211, 211, 211, + /* 400 */ 211, 211, 120, 265, 211, 211, 211, 211, 211, 211, + /* 410 */ 211, 211, 265, 211, 211, 211, 211, 211, 211, 211, + /* 420 */ 122, 211, 211, 259, 212, 212, 212, 258, 114, 119, + /* 430 */ 118, 113, 112, 111, 75, 257, 84, 124, 83, 212, + /* 440 */ 49, 80, 212, 53, 82, 212, 81, 216, 216, 226, + /* 450 */ 79, 75, 5, 136, 5, 5, 5, 212, 5, 225, + /* 460 */ 136, 213, 220, 219, 224, 246, 223, 221, 212, 222, + /* 470 */ 254, 256, 255, 253, 252, 251, 213, 217, 214, 87, + /* 480 */ 127, 107, 100, 108, 104, 100, 99, 1, 99, 101, + /* 490 */ 104, 72, 115, 100, 99, 99, 115, 100, 104, 99, + /* 500 */ 99, 9, 5, 101, 5, 5, 5, 5, 76, 15, + /* 510 */ 72, 16, 104, 130, 130, 5, 5, 100, 5, 99, + /* 520 */ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + /* 530 */ 5, 5, 5, 5, 104, 76, 59, 58, 0, 273, + /* 540 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 550 */ 21, 21, 273, 273, 273, 273, 273, 273, 273, 273, + /* 560 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 570 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 580 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 590 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 600 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 610 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 620 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 630 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 640 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 650 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 660 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 670 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 680 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 690 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 700 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 710 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 720 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 730 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 740 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + /* 750 */ 273, 273, 273, 273, 273, 273, 273, 273, 273, }; -#define YY_SHIFT_COUNT (241) +#define YY_SHIFT_COUNT (242) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (533) +#define YY_SHIFT_MAX (538) static const unsigned short int yy_shift_ofst[] = { - /* 0 */ 137, 49, 182, 184, 232, 179, 179, 179, 179, 179, - /* 10 */ 179, 0, 22, 232, 13, 13, 13, 92, 179, 179, - /* 20 */ 179, 179, 179, 120, 25, 25, 547, 194, 232, 232, - /* 30 */ 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - /* 40 */ 232, 232, 232, 232, 232, 13, 13, 2, 2, 2, - /* 50 */ 2, 2, 2, 11, 2, 209, 179, 179, 148, 148, - /* 60 */ 21, 179, 179, 179, 179, 179, 179, 179, 179, 179, - /* 70 */ 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - /* 80 */ 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - /* 90 */ 179, 179, 179, 179, 179, 179, 179, 179, 281, 330, - /* 100 */ 330, 283, 283, 330, 297, 296, 304, 311, 308, 314, - /* 110 */ 316, 318, 306, 281, 330, 330, 355, 355, 330, 347, - /* 120 */ 349, 384, 354, 353, 383, 356, 360, 330, 365, 330, - /* 130 */ 365, 547, 547, 27, 67, 67, 67, 94, 145, 218, - /* 140 */ 218, 218, 158, 246, 246, 246, 246, 222, 233, 85, - /* 150 */ 41, 257, 257, 249, 217, 221, 223, 226, 228, 268, - /* 160 */ 312, 176, 262, 150, 116, 229, 234, 235, 207, 211, - /* 170 */ 337, 338, 274, 437, 309, 438, 440, 317, 442, 444, - /* 180 */ 366, 329, 372, 362, 373, 376, 382, 385, 481, 386, - /* 190 */ 387, 389, 388, 371, 390, 374, 391, 394, 396, 395, - /* 200 */ 398, 397, 417, 489, 494, 495, 496, 497, 498, 428, - /* 210 */ 490, 434, 491, 379, 380, 407, 506, 507, 414, 416, - /* 220 */ 407, 510, 511, 512, 513, 514, 515, 516, 517, 518, - /* 230 */ 519, 520, 521, 522, 523, 426, 454, 524, 525, 472, - /* 240 */ 474, 533, + /* 0 */ 144, 24, 134, 191, 235, 49, 49, 49, 49, 49, + /* 10 */ 49, 0, 22, 235, 284, 284, 284, 106, 49, 49, + /* 20 */ 49, 49, 49, 161, 4, 4, 552, 201, 235, 235, + /* 30 */ 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + /* 40 */ 235, 235, 235, 235, 235, 284, 284, 2, 2, 2, + /* 50 */ 2, 2, 2, 43, 2, 225, 49, 49, 101, 101, + /* 60 */ 157, 49, 49, 49, 49, 49, 49, 49, 49, 49, + /* 70 */ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + /* 80 */ 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + /* 90 */ 49, 49, 49, 49, 49, 49, 49, 49, 272, 333, + /* 100 */ 333, 286, 286, 333, 282, 298, 310, 314, 312, 318, + /* 110 */ 320, 322, 313, 272, 333, 333, 359, 359, 333, 352, + /* 120 */ 355, 391, 361, 362, 390, 365, 371, 333, 376, 333, + /* 130 */ 376, 552, 552, 27, 67, 67, 67, 127, 152, 226, + /* 140 */ 226, 226, 181, 265, 265, 265, 265, 241, 255, 39, + /* 150 */ 60, 8, 8, 96, 172, 192, 228, 229, 236, 167, + /* 160 */ 290, 309, 142, 221, 209, 237, 238, 239, 185, 218, + /* 170 */ 344, 345, 281, 447, 317, 449, 450, 324, 451, 453, + /* 180 */ 392, 353, 374, 382, 375, 380, 385, 387, 486, 389, + /* 190 */ 393, 395, 386, 377, 394, 381, 397, 396, 400, 388, + /* 200 */ 401, 402, 419, 492, 497, 499, 500, 501, 502, 432, + /* 210 */ 494, 438, 495, 383, 384, 408, 510, 511, 417, 420, + /* 220 */ 408, 513, 515, 516, 517, 518, 519, 520, 521, 522, + /* 230 */ 523, 524, 525, 526, 527, 528, 430, 459, 529, 530, + /* 240 */ 477, 479, 538, }; #define YY_REDUCE_COUNT (132) -#define YY_REDUCE_MIN (-257) -#define YY_REDUCE_MAX (261) +#define YY_REDUCE_MIN (-260) +#define YY_REDUCE_MAX (264) static const short yy_reduce_ofst[] = { - /* 0 */ -202, -79, -226, -211, -173, -103, -16, -120, -34, -5, - /* 10 */ 61, -147, -180, -171, -59, -17, 3, -128, -8, -46, - /* 20 */ -6, -178, -160, 44, 88, 98, -161, -257, -241, -215, - /* 30 */ -203, -13, -1, 31, 53, 89, 90, 91, 93, 95, - /* 40 */ 97, 99, 101, 102, 103, -164, 35, 107, 111, 113, - /* 50 */ 117, 123, 124, 125, 127, 122, 159, 160, 104, 105, - /* 60 */ 126, 163, 165, 166, 167, 168, 169, 170, 171, 172, - /* 70 */ 173, 174, 175, 177, 178, 180, 181, 183, 185, 186, - /* 80 */ 187, 188, 189, 190, 191, 192, 193, 195, 196, 197, - /* 90 */ 198, 199, 200, 201, 202, 203, 204, 205, 206, 208, - /* 100 */ 210, 131, 141, 212, 161, 164, 213, 215, 214, 219, - /* 110 */ 224, 216, 225, 220, 227, 230, 231, 236, 237, 238, - /* 120 */ 241, 239, 240, 248, 252, 255, 242, 243, 244, 247, - /* 130 */ 245, 261, 260, + /* 0 */ -204, -101, 44, -260, -252, -211, -181, -149, -148, -122, + /* 10 */ -64, -104, -61, -254, -199, -66, -44, -49, -48, -36, + /* 20 */ -12, 15, 47, -212, 63, 70, 13, -247, -240, -230, + /* 30 */ -176, -172, -154, -138, -53, 5, 25, 50, 65, 73, + /* 40 */ 93, 94, 95, 97, 99, 110, 114, 120, 121, 122, + /* 50 */ 123, 124, 125, 126, 128, 129, 158, 162, 103, 105, + /* 60 */ 130, 165, 166, 168, 170, 171, 173, 174, 175, 176, + /* 70 */ 177, 179, 180, 182, 183, 184, 186, 187, 188, 189, + /* 80 */ 190, 193, 194, 195, 196, 197, 198, 199, 200, 202, + /* 90 */ 203, 204, 205, 206, 207, 208, 210, 211, 137, 212, + /* 100 */ 213, 138, 147, 214, 164, 169, 178, 215, 217, 216, + /* 110 */ 220, 222, 224, 219, 227, 230, 231, 232, 233, 223, + /* 120 */ 234, 240, 242, 243, 246, 247, 244, 245, 248, 256, + /* 130 */ 263, 260, 264, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 624, 676, 665, 839, 839, 624, 624, 624, 624, 624, - /* 10 */ 624, 769, 642, 839, 624, 624, 624, 624, 624, 624, - /* 20 */ 624, 624, 624, 678, 678, 678, 764, 624, 624, 624, - /* 30 */ 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, - /* 40 */ 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, - /* 50 */ 624, 624, 624, 624, 624, 624, 624, 624, 788, 788, - /* 60 */ 762, 624, 624, 624, 624, 624, 624, 624, 624, 624, - /* 70 */ 624, 624, 624, 624, 624, 624, 624, 624, 624, 663, - /* 80 */ 624, 661, 624, 624, 624, 624, 624, 624, 624, 624, - /* 90 */ 624, 624, 624, 624, 624, 650, 624, 624, 624, 644, - /* 100 */ 644, 624, 624, 644, 795, 799, 793, 781, 789, 780, - /* 110 */ 776, 775, 803, 624, 644, 644, 673, 673, 644, 694, - /* 120 */ 692, 690, 682, 688, 684, 686, 680, 644, 671, 644, - /* 130 */ 671, 710, 724, 624, 804, 838, 794, 822, 821, 834, - /* 140 */ 828, 827, 624, 826, 825, 824, 823, 624, 624, 624, - /* 150 */ 624, 830, 829, 624, 624, 624, 624, 624, 624, 624, - /* 160 */ 624, 624, 806, 800, 796, 624, 624, 624, 624, 624, - /* 170 */ 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, - /* 180 */ 624, 624, 761, 624, 624, 770, 624, 624, 624, 624, - /* 190 */ 624, 624, 790, 624, 782, 624, 624, 624, 624, 624, - /* 200 */ 624, 738, 624, 624, 624, 624, 624, 624, 624, 624, - /* 210 */ 624, 624, 624, 624, 624, 843, 624, 624, 624, 732, - /* 220 */ 841, 624, 624, 624, 624, 624, 624, 624, 624, 624, - /* 230 */ 624, 624, 624, 624, 624, 697, 624, 648, 646, 624, - /* 240 */ 640, 624, + /* 0 */ 631, 683, 672, 849, 849, 631, 631, 631, 631, 631, + /* 10 */ 631, 779, 649, 849, 631, 631, 631, 631, 631, 631, + /* 20 */ 631, 631, 631, 685, 685, 685, 774, 631, 631, 631, + /* 30 */ 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, + /* 40 */ 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, + /* 50 */ 631, 631, 631, 631, 631, 631, 631, 631, 798, 798, + /* 60 */ 772, 631, 631, 631, 631, 631, 631, 631, 631, 631, + /* 70 */ 631, 631, 631, 631, 631, 631, 631, 631, 631, 670, + /* 80 */ 631, 668, 631, 631, 631, 631, 631, 631, 631, 631, + /* 90 */ 631, 631, 631, 631, 631, 657, 631, 631, 631, 651, + /* 100 */ 651, 631, 631, 651, 805, 809, 803, 791, 799, 790, + /* 110 */ 786, 785, 813, 631, 651, 651, 680, 680, 651, 701, + /* 120 */ 699, 697, 689, 695, 691, 693, 687, 651, 678, 651, + /* 130 */ 678, 718, 733, 631, 814, 848, 804, 832, 831, 844, + /* 140 */ 838, 837, 631, 836, 835, 834, 833, 631, 631, 631, + /* 150 */ 631, 840, 839, 631, 631, 631, 631, 631, 631, 631, + /* 160 */ 631, 631, 816, 810, 806, 631, 631, 631, 631, 631, + /* 170 */ 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, + /* 180 */ 631, 631, 771, 631, 631, 780, 631, 631, 631, 631, + /* 190 */ 631, 631, 800, 631, 792, 631, 631, 631, 631, 631, + /* 200 */ 631, 748, 631, 631, 631, 631, 631, 631, 631, 631, + /* 210 */ 631, 631, 631, 631, 631, 853, 631, 631, 631, 742, + /* 220 */ 851, 631, 631, 631, 631, 631, 631, 631, 631, 631, + /* 230 */ 631, 631, 631, 631, 631, 631, 704, 631, 655, 653, + /* 240 */ 631, 647, 631, }; /********** End of lemon-generated parsing tables *****************************/ @@ -521,6 +522,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* MAXTABLES => nothing */ 0, /* CACHE => nothing */ 0, /* REPLICA => nothing */ + 0, /* QUORUM => nothing */ 0, /* DAYS => nothing */ 0, /* MINROWS => nothing */ 0, /* MAXROWS => nothing */ @@ -813,188 +815,190 @@ static const char *const yyTokenName[] = { /* 86 */ "MAXTABLES", /* 87 */ "CACHE", /* 88 */ "REPLICA", - /* 89 */ "DAYS", - /* 90 */ "MINROWS", - /* 91 */ "MAXROWS", - /* 92 */ "BLOCKS", - /* 93 */ "CTIME", - /* 94 */ "WAL", - /* 95 */ "FSYNC", - /* 96 */ "COMP", - /* 97 */ "PRECISION", - /* 98 */ "LP", - /* 99 */ "RP", - /* 100 */ "TAGS", - /* 101 */ "USING", - /* 102 */ "AS", - /* 103 */ "COMMA", - /* 104 */ "NULL", - /* 105 */ "SELECT", - /* 106 */ "UNION", - /* 107 */ "ALL", - /* 108 */ "FROM", - /* 109 */ "VARIABLE", - /* 110 */ "INTERVAL", - /* 111 */ "FILL", - /* 112 */ "SLIDING", - /* 113 */ "ORDER", - /* 114 */ "BY", - /* 115 */ "ASC", - /* 116 */ "DESC", - /* 117 */ "GROUP", - /* 118 */ "HAVING", - /* 119 */ "LIMIT", - /* 120 */ "OFFSET", - /* 121 */ "SLIMIT", - /* 122 */ "SOFFSET", - /* 123 */ "WHERE", - /* 124 */ "NOW", - /* 125 */ "RESET", - /* 126 */ "QUERY", - /* 127 */ "ADD", - /* 128 */ "COLUMN", - /* 129 */ "TAG", - /* 130 */ "CHANGE", - /* 131 */ "SET", - /* 132 */ "KILL", - /* 133 */ "CONNECTION", - /* 134 */ "STREAM", - /* 135 */ "COLON", - /* 136 */ "ABORT", - /* 137 */ "AFTER", - /* 138 */ "ATTACH", - /* 139 */ "BEFORE", - /* 140 */ "BEGIN", - /* 141 */ "CASCADE", - /* 142 */ "CLUSTER", - /* 143 */ "CONFLICT", - /* 144 */ "COPY", - /* 145 */ "DEFERRED", - /* 146 */ "DELIMITERS", - /* 147 */ "DETACH", - /* 148 */ "EACH", - /* 149 */ "END", - /* 150 */ "EXPLAIN", - /* 151 */ "FAIL", - /* 152 */ "FOR", - /* 153 */ "IGNORE", - /* 154 */ "IMMEDIATE", - /* 155 */ "INITIALLY", - /* 156 */ "INSTEAD", - /* 157 */ "MATCH", - /* 158 */ "KEY", - /* 159 */ "OF", - /* 160 */ "RAISE", - /* 161 */ "REPLACE", - /* 162 */ "RESTRICT", - /* 163 */ "ROW", - /* 164 */ "STATEMENT", - /* 165 */ "TRIGGER", - /* 166 */ "VIEW", - /* 167 */ "COUNT", - /* 168 */ "SUM", - /* 169 */ "AVG", - /* 170 */ "MIN", - /* 171 */ "MAX", - /* 172 */ "FIRST", - /* 173 */ "LAST", - /* 174 */ "TOP", - /* 175 */ "BOTTOM", - /* 176 */ "STDDEV", - /* 177 */ "PERCENTILE", - /* 178 */ "APERCENTILE", - /* 179 */ "LEASTSQUARES", - /* 180 */ "HISTOGRAM", - /* 181 */ "DIFF", - /* 182 */ "SPREAD", - /* 183 */ "TWA", - /* 184 */ "INTERP", - /* 185 */ "LAST_ROW", - /* 186 */ "RATE", - /* 187 */ "IRATE", - /* 188 */ "SUM_RATE", - /* 189 */ "SUM_IRATE", - /* 190 */ "AVG_RATE", - /* 191 */ "AVG_IRATE", - /* 192 */ "TBID", - /* 193 */ "SEMI", - /* 194 */ "NONE", - /* 195 */ "PREV", - /* 196 */ "LINEAR", - /* 197 */ "IMPORT", - /* 198 */ "METRIC", - /* 199 */ "TBNAME", - /* 200 */ "JOIN", - /* 201 */ "METRICS", - /* 202 */ "STABLE", - /* 203 */ "INSERT", - /* 204 */ "INTO", - /* 205 */ "VALUES", - /* 206 */ "error", - /* 207 */ "program", - /* 208 */ "cmd", - /* 209 */ "dbPrefix", - /* 210 */ "ids", - /* 211 */ "cpxName", - /* 212 */ "ifexists", - /* 213 */ "alter_db_optr", - /* 214 */ "acct_optr", - /* 215 */ "ifnotexists", - /* 216 */ "db_optr", - /* 217 */ "pps", - /* 218 */ "tseries", - /* 219 */ "dbs", - /* 220 */ "streams", - /* 221 */ "storage", - /* 222 */ "qtime", - /* 223 */ "users", - /* 224 */ "conns", - /* 225 */ "state", - /* 226 */ "keep", - /* 227 */ "tagitemlist", - /* 228 */ "tables", - /* 229 */ "cache", - /* 230 */ "replica", - /* 231 */ "days", - /* 232 */ "minrows", - /* 233 */ "maxrows", - /* 234 */ "blocks", - /* 235 */ "ctime", - /* 236 */ "wal", - /* 237 */ "fsync", - /* 238 */ "comp", - /* 239 */ "prec", - /* 240 */ "typename", - /* 241 */ "signed", - /* 242 */ "create_table_args", - /* 243 */ "columnlist", - /* 244 */ "select", - /* 245 */ "column", - /* 246 */ "tagitem", - /* 247 */ "selcollist", - /* 248 */ "from", - /* 249 */ "where_opt", - /* 250 */ "interval_opt", - /* 251 */ "fill_opt", - /* 252 */ "sliding_opt", - /* 253 */ "groupby_opt", - /* 254 */ "orderby_opt", - /* 255 */ "having_opt", - /* 256 */ "slimit_opt", - /* 257 */ "limit_opt", - /* 258 */ "union", - /* 259 */ "sclp", - /* 260 */ "expr", - /* 261 */ "as", - /* 262 */ "tablelist", - /* 263 */ "tmvar", - /* 264 */ "sortlist", - /* 265 */ "sortitem", - /* 266 */ "item", - /* 267 */ "sortorder", - /* 268 */ "grouplist", - /* 269 */ "exprlist", - /* 270 */ "expritem", + /* 89 */ "QUORUM", + /* 90 */ "DAYS", + /* 91 */ "MINROWS", + /* 92 */ "MAXROWS", + /* 93 */ "BLOCKS", + /* 94 */ "CTIME", + /* 95 */ "WAL", + /* 96 */ "FSYNC", + /* 97 */ "COMP", + /* 98 */ "PRECISION", + /* 99 */ "LP", + /* 100 */ "RP", + /* 101 */ "TAGS", + /* 102 */ "USING", + /* 103 */ "AS", + /* 104 */ "COMMA", + /* 105 */ "NULL", + /* 106 */ "SELECT", + /* 107 */ "UNION", + /* 108 */ "ALL", + /* 109 */ "FROM", + /* 110 */ "VARIABLE", + /* 111 */ "INTERVAL", + /* 112 */ "FILL", + /* 113 */ "SLIDING", + /* 114 */ "ORDER", + /* 115 */ "BY", + /* 116 */ "ASC", + /* 117 */ "DESC", + /* 118 */ "GROUP", + /* 119 */ "HAVING", + /* 120 */ "LIMIT", + /* 121 */ "OFFSET", + /* 122 */ "SLIMIT", + /* 123 */ "SOFFSET", + /* 124 */ "WHERE", + /* 125 */ "NOW", + /* 126 */ "RESET", + /* 127 */ "QUERY", + /* 128 */ "ADD", + /* 129 */ "COLUMN", + /* 130 */ "TAG", + /* 131 */ "CHANGE", + /* 132 */ "SET", + /* 133 */ "KILL", + /* 134 */ "CONNECTION", + /* 135 */ "STREAM", + /* 136 */ "COLON", + /* 137 */ "ABORT", + /* 138 */ "AFTER", + /* 139 */ "ATTACH", + /* 140 */ "BEFORE", + /* 141 */ "BEGIN", + /* 142 */ "CASCADE", + /* 143 */ "CLUSTER", + /* 144 */ "CONFLICT", + /* 145 */ "COPY", + /* 146 */ "DEFERRED", + /* 147 */ "DELIMITERS", + /* 148 */ "DETACH", + /* 149 */ "EACH", + /* 150 */ "END", + /* 151 */ "EXPLAIN", + /* 152 */ "FAIL", + /* 153 */ "FOR", + /* 154 */ "IGNORE", + /* 155 */ "IMMEDIATE", + /* 156 */ "INITIALLY", + /* 157 */ "INSTEAD", + /* 158 */ "MATCH", + /* 159 */ "KEY", + /* 160 */ "OF", + /* 161 */ "RAISE", + /* 162 */ "REPLACE", + /* 163 */ "RESTRICT", + /* 164 */ "ROW", + /* 165 */ "STATEMENT", + /* 166 */ "TRIGGER", + /* 167 */ "VIEW", + /* 168 */ "COUNT", + /* 169 */ "SUM", + /* 170 */ "AVG", + /* 171 */ "MIN", + /* 172 */ "MAX", + /* 173 */ "FIRST", + /* 174 */ "LAST", + /* 175 */ "TOP", + /* 176 */ "BOTTOM", + /* 177 */ "STDDEV", + /* 178 */ "PERCENTILE", + /* 179 */ "APERCENTILE", + /* 180 */ "LEASTSQUARES", + /* 181 */ "HISTOGRAM", + /* 182 */ "DIFF", + /* 183 */ "SPREAD", + /* 184 */ "TWA", + /* 185 */ "INTERP", + /* 186 */ "LAST_ROW", + /* 187 */ "RATE", + /* 188 */ "IRATE", + /* 189 */ "SUM_RATE", + /* 190 */ "SUM_IRATE", + /* 191 */ "AVG_RATE", + /* 192 */ "AVG_IRATE", + /* 193 */ "TBID", + /* 194 */ "SEMI", + /* 195 */ "NONE", + /* 196 */ "PREV", + /* 197 */ "LINEAR", + /* 198 */ "IMPORT", + /* 199 */ "METRIC", + /* 200 */ "TBNAME", + /* 201 */ "JOIN", + /* 202 */ "METRICS", + /* 203 */ "STABLE", + /* 204 */ "INSERT", + /* 205 */ "INTO", + /* 206 */ "VALUES", + /* 207 */ "error", + /* 208 */ "program", + /* 209 */ "cmd", + /* 210 */ "dbPrefix", + /* 211 */ "ids", + /* 212 */ "cpxName", + /* 213 */ "ifexists", + /* 214 */ "alter_db_optr", + /* 215 */ "acct_optr", + /* 216 */ "ifnotexists", + /* 217 */ "db_optr", + /* 218 */ "pps", + /* 219 */ "tseries", + /* 220 */ "dbs", + /* 221 */ "streams", + /* 222 */ "storage", + /* 223 */ "qtime", + /* 224 */ "users", + /* 225 */ "conns", + /* 226 */ "state", + /* 227 */ "keep", + /* 228 */ "tagitemlist", + /* 229 */ "tables", + /* 230 */ "cache", + /* 231 */ "replica", + /* 232 */ "quorum", + /* 233 */ "days", + /* 234 */ "minrows", + /* 235 */ "maxrows", + /* 236 */ "blocks", + /* 237 */ "ctime", + /* 238 */ "wal", + /* 239 */ "fsync", + /* 240 */ "comp", + /* 241 */ "prec", + /* 242 */ "typename", + /* 243 */ "signed", + /* 244 */ "create_table_args", + /* 245 */ "columnlist", + /* 246 */ "select", + /* 247 */ "column", + /* 248 */ "tagitem", + /* 249 */ "selcollist", + /* 250 */ "from", + /* 251 */ "where_opt", + /* 252 */ "interval_opt", + /* 253 */ "fill_opt", + /* 254 */ "sliding_opt", + /* 255 */ "groupby_opt", + /* 256 */ "orderby_opt", + /* 257 */ "having_opt", + /* 258 */ "slimit_opt", + /* 259 */ "limit_opt", + /* 260 */ "union", + /* 261 */ "sclp", + /* 262 */ "expr", + /* 263 */ "as", + /* 264 */ "tablelist", + /* 265 */ "tmvar", + /* 266 */ "sortlist", + /* 267 */ "sortitem", + /* 268 */ "item", + /* 269 */ "sortorder", + /* 270 */ "grouplist", + /* 271 */ "exprlist", + /* 272 */ "expritem", }; #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ @@ -1076,155 +1080,158 @@ static const char *const yyRuleName[] = { /* 71 */ "tables ::= MAXTABLES INTEGER", /* 72 */ "cache ::= CACHE INTEGER", /* 73 */ "replica ::= REPLICA INTEGER", - /* 74 */ "days ::= DAYS INTEGER", - /* 75 */ "minrows ::= MINROWS INTEGER", - /* 76 */ "maxrows ::= MAXROWS INTEGER", - /* 77 */ "blocks ::= BLOCKS INTEGER", - /* 78 */ "ctime ::= CTIME INTEGER", - /* 79 */ "wal ::= WAL INTEGER", - /* 80 */ "fsync ::= FSYNC INTEGER", - /* 81 */ "comp ::= COMP INTEGER", - /* 82 */ "prec ::= PRECISION STRING", - /* 83 */ "db_optr ::=", - /* 84 */ "db_optr ::= db_optr tables", - /* 85 */ "db_optr ::= db_optr cache", - /* 86 */ "db_optr ::= db_optr replica", - /* 87 */ "db_optr ::= db_optr days", - /* 88 */ "db_optr ::= db_optr minrows", - /* 89 */ "db_optr ::= db_optr maxrows", - /* 90 */ "db_optr ::= db_optr blocks", - /* 91 */ "db_optr ::= db_optr ctime", - /* 92 */ "db_optr ::= db_optr wal", - /* 93 */ "db_optr ::= db_optr fsync", - /* 94 */ "db_optr ::= db_optr comp", - /* 95 */ "db_optr ::= db_optr prec", - /* 96 */ "db_optr ::= db_optr keep", - /* 97 */ "alter_db_optr ::=", - /* 98 */ "alter_db_optr ::= alter_db_optr replica", - /* 99 */ "alter_db_optr ::= alter_db_optr tables", - /* 100 */ "alter_db_optr ::= alter_db_optr keep", - /* 101 */ "alter_db_optr ::= alter_db_optr blocks", - /* 102 */ "alter_db_optr ::= alter_db_optr comp", - /* 103 */ "alter_db_optr ::= alter_db_optr wal", - /* 104 */ "alter_db_optr ::= alter_db_optr fsync", - /* 105 */ "typename ::= ids", - /* 106 */ "typename ::= ids LP signed RP", - /* 107 */ "signed ::= INTEGER", - /* 108 */ "signed ::= PLUS INTEGER", - /* 109 */ "signed ::= MINUS INTEGER", - /* 110 */ "cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args", - /* 111 */ "create_table_args ::= LP columnlist RP", - /* 112 */ "create_table_args ::= LP columnlist RP TAGS LP columnlist RP", - /* 113 */ "create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP", - /* 114 */ "create_table_args ::= AS select", - /* 115 */ "columnlist ::= columnlist COMMA column", - /* 116 */ "columnlist ::= column", - /* 117 */ "column ::= ids typename", - /* 118 */ "tagitemlist ::= tagitemlist COMMA tagitem", - /* 119 */ "tagitemlist ::= tagitem", - /* 120 */ "tagitem ::= INTEGER", - /* 121 */ "tagitem ::= FLOAT", - /* 122 */ "tagitem ::= STRING", - /* 123 */ "tagitem ::= BOOL", - /* 124 */ "tagitem ::= NULL", - /* 125 */ "tagitem ::= MINUS INTEGER", - /* 126 */ "tagitem ::= MINUS FLOAT", - /* 127 */ "tagitem ::= PLUS INTEGER", - /* 128 */ "tagitem ::= PLUS FLOAT", - /* 129 */ "select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt", - /* 130 */ "union ::= select", - /* 131 */ "union ::= LP union RP", - /* 132 */ "union ::= union UNION ALL select", - /* 133 */ "union ::= union UNION ALL LP select RP", - /* 134 */ "cmd ::= union", - /* 135 */ "select ::= SELECT selcollist", - /* 136 */ "sclp ::= selcollist COMMA", - /* 137 */ "sclp ::=", - /* 138 */ "selcollist ::= sclp expr as", - /* 139 */ "selcollist ::= sclp STAR", - /* 140 */ "as ::= AS ids", - /* 141 */ "as ::= ids", - /* 142 */ "as ::=", - /* 143 */ "from ::= FROM tablelist", - /* 144 */ "tablelist ::= ids cpxName", - /* 145 */ "tablelist ::= tablelist COMMA ids cpxName", - /* 146 */ "tmvar ::= VARIABLE", - /* 147 */ "interval_opt ::= INTERVAL LP tmvar RP", - /* 148 */ "interval_opt ::=", - /* 149 */ "fill_opt ::=", - /* 150 */ "fill_opt ::= FILL LP ID COMMA tagitemlist RP", - /* 151 */ "fill_opt ::= FILL LP ID RP", - /* 152 */ "sliding_opt ::= SLIDING LP tmvar RP", - /* 153 */ "sliding_opt ::=", - /* 154 */ "orderby_opt ::=", - /* 155 */ "orderby_opt ::= ORDER BY sortlist", - /* 156 */ "sortlist ::= sortlist COMMA item sortorder", - /* 157 */ "sortlist ::= item sortorder", - /* 158 */ "item ::= ids cpxName", - /* 159 */ "sortorder ::= ASC", - /* 160 */ "sortorder ::= DESC", - /* 161 */ "sortorder ::=", - /* 162 */ "groupby_opt ::=", - /* 163 */ "groupby_opt ::= GROUP BY grouplist", - /* 164 */ "grouplist ::= grouplist COMMA item", - /* 165 */ "grouplist ::= item", - /* 166 */ "having_opt ::=", - /* 167 */ "having_opt ::= HAVING expr", - /* 168 */ "limit_opt ::=", - /* 169 */ "limit_opt ::= LIMIT signed", - /* 170 */ "limit_opt ::= LIMIT signed OFFSET signed", - /* 171 */ "limit_opt ::= LIMIT signed COMMA signed", - /* 172 */ "slimit_opt ::=", - /* 173 */ "slimit_opt ::= SLIMIT signed", - /* 174 */ "slimit_opt ::= SLIMIT signed SOFFSET signed", - /* 175 */ "slimit_opt ::= SLIMIT signed COMMA signed", - /* 176 */ "where_opt ::=", - /* 177 */ "where_opt ::= WHERE expr", - /* 178 */ "expr ::= LP expr RP", - /* 179 */ "expr ::= ID", - /* 180 */ "expr ::= ID DOT ID", - /* 181 */ "expr ::= ID DOT STAR", - /* 182 */ "expr ::= INTEGER", - /* 183 */ "expr ::= MINUS INTEGER", - /* 184 */ "expr ::= PLUS INTEGER", - /* 185 */ "expr ::= FLOAT", - /* 186 */ "expr ::= MINUS FLOAT", - /* 187 */ "expr ::= PLUS FLOAT", - /* 188 */ "expr ::= STRING", - /* 189 */ "expr ::= NOW", - /* 190 */ "expr ::= VARIABLE", - /* 191 */ "expr ::= BOOL", - /* 192 */ "expr ::= ID LP exprlist RP", - /* 193 */ "expr ::= ID LP STAR RP", - /* 194 */ "expr ::= expr AND expr", - /* 195 */ "expr ::= expr OR expr", - /* 196 */ "expr ::= expr LT expr", - /* 197 */ "expr ::= expr GT expr", - /* 198 */ "expr ::= expr LE expr", - /* 199 */ "expr ::= expr GE expr", - /* 200 */ "expr ::= expr NE expr", - /* 201 */ "expr ::= expr EQ expr", - /* 202 */ "expr ::= expr PLUS expr", - /* 203 */ "expr ::= expr MINUS expr", - /* 204 */ "expr ::= expr STAR expr", - /* 205 */ "expr ::= expr SLASH expr", - /* 206 */ "expr ::= expr REM expr", - /* 207 */ "expr ::= expr LIKE expr", - /* 208 */ "expr ::= expr IN LP exprlist RP", - /* 209 */ "exprlist ::= exprlist COMMA expritem", - /* 210 */ "exprlist ::= expritem", - /* 211 */ "expritem ::= expr", - /* 212 */ "expritem ::=", - /* 213 */ "cmd ::= RESET QUERY CACHE", - /* 214 */ "cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist", - /* 215 */ "cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids", - /* 216 */ "cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist", - /* 217 */ "cmd ::= ALTER TABLE ids cpxName DROP TAG ids", - /* 218 */ "cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids", - /* 219 */ "cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem", - /* 220 */ "cmd ::= KILL CONNECTION INTEGER", - /* 221 */ "cmd ::= KILL STREAM INTEGER COLON INTEGER", - /* 222 */ "cmd ::= KILL QUERY INTEGER COLON INTEGER", + /* 74 */ "quorum ::= QUORUM INTEGER", + /* 75 */ "days ::= DAYS INTEGER", + /* 76 */ "minrows ::= MINROWS INTEGER", + /* 77 */ "maxrows ::= MAXROWS INTEGER", + /* 78 */ "blocks ::= BLOCKS INTEGER", + /* 79 */ "ctime ::= CTIME INTEGER", + /* 80 */ "wal ::= WAL INTEGER", + /* 81 */ "fsync ::= FSYNC INTEGER", + /* 82 */ "comp ::= COMP INTEGER", + /* 83 */ "prec ::= PRECISION STRING", + /* 84 */ "db_optr ::=", + /* 85 */ "db_optr ::= db_optr tables", + /* 86 */ "db_optr ::= db_optr cache", + /* 87 */ "db_optr ::= db_optr replica", + /* 88 */ "db_optr ::= db_optr quorum", + /* 89 */ "db_optr ::= db_optr days", + /* 90 */ "db_optr ::= db_optr minrows", + /* 91 */ "db_optr ::= db_optr maxrows", + /* 92 */ "db_optr ::= db_optr blocks", + /* 93 */ "db_optr ::= db_optr ctime", + /* 94 */ "db_optr ::= db_optr wal", + /* 95 */ "db_optr ::= db_optr fsync", + /* 96 */ "db_optr ::= db_optr comp", + /* 97 */ "db_optr ::= db_optr prec", + /* 98 */ "db_optr ::= db_optr keep", + /* 99 */ "alter_db_optr ::=", + /* 100 */ "alter_db_optr ::= alter_db_optr replica", + /* 101 */ "alter_db_optr ::= alter_db_optr quorum", + /* 102 */ "alter_db_optr ::= alter_db_optr tables", + /* 103 */ "alter_db_optr ::= alter_db_optr keep", + /* 104 */ "alter_db_optr ::= alter_db_optr blocks", + /* 105 */ "alter_db_optr ::= alter_db_optr comp", + /* 106 */ "alter_db_optr ::= alter_db_optr wal", + /* 107 */ "alter_db_optr ::= alter_db_optr fsync", + /* 108 */ "typename ::= ids", + /* 109 */ "typename ::= ids LP signed RP", + /* 110 */ "signed ::= INTEGER", + /* 111 */ "signed ::= PLUS INTEGER", + /* 112 */ "signed ::= MINUS INTEGER", + /* 113 */ "cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args", + /* 114 */ "create_table_args ::= LP columnlist RP", + /* 115 */ "create_table_args ::= LP columnlist RP TAGS LP columnlist RP", + /* 116 */ "create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP", + /* 117 */ "create_table_args ::= AS select", + /* 118 */ "columnlist ::= columnlist COMMA column", + /* 119 */ "columnlist ::= column", + /* 120 */ "column ::= ids typename", + /* 121 */ "tagitemlist ::= tagitemlist COMMA tagitem", + /* 122 */ "tagitemlist ::= tagitem", + /* 123 */ "tagitem ::= INTEGER", + /* 124 */ "tagitem ::= FLOAT", + /* 125 */ "tagitem ::= STRING", + /* 126 */ "tagitem ::= BOOL", + /* 127 */ "tagitem ::= NULL", + /* 128 */ "tagitem ::= MINUS INTEGER", + /* 129 */ "tagitem ::= MINUS FLOAT", + /* 130 */ "tagitem ::= PLUS INTEGER", + /* 131 */ "tagitem ::= PLUS FLOAT", + /* 132 */ "select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt", + /* 133 */ "union ::= select", + /* 134 */ "union ::= LP union RP", + /* 135 */ "union ::= union UNION ALL select", + /* 136 */ "union ::= union UNION ALL LP select RP", + /* 137 */ "cmd ::= union", + /* 138 */ "select ::= SELECT selcollist", + /* 139 */ "sclp ::= selcollist COMMA", + /* 140 */ "sclp ::=", + /* 141 */ "selcollist ::= sclp expr as", + /* 142 */ "selcollist ::= sclp STAR", + /* 143 */ "as ::= AS ids", + /* 144 */ "as ::= ids", + /* 145 */ "as ::=", + /* 146 */ "from ::= FROM tablelist", + /* 147 */ "tablelist ::= ids cpxName", + /* 148 */ "tablelist ::= tablelist COMMA ids cpxName", + /* 149 */ "tmvar ::= VARIABLE", + /* 150 */ "interval_opt ::= INTERVAL LP tmvar RP", + /* 151 */ "interval_opt ::=", + /* 152 */ "fill_opt ::=", + /* 153 */ "fill_opt ::= FILL LP ID COMMA tagitemlist RP", + /* 154 */ "fill_opt ::= FILL LP ID RP", + /* 155 */ "sliding_opt ::= SLIDING LP tmvar RP", + /* 156 */ "sliding_opt ::=", + /* 157 */ "orderby_opt ::=", + /* 158 */ "orderby_opt ::= ORDER BY sortlist", + /* 159 */ "sortlist ::= sortlist COMMA item sortorder", + /* 160 */ "sortlist ::= item sortorder", + /* 161 */ "item ::= ids cpxName", + /* 162 */ "sortorder ::= ASC", + /* 163 */ "sortorder ::= DESC", + /* 164 */ "sortorder ::=", + /* 165 */ "groupby_opt ::=", + /* 166 */ "groupby_opt ::= GROUP BY grouplist", + /* 167 */ "grouplist ::= grouplist COMMA item", + /* 168 */ "grouplist ::= item", + /* 169 */ "having_opt ::=", + /* 170 */ "having_opt ::= HAVING expr", + /* 171 */ "limit_opt ::=", + /* 172 */ "limit_opt ::= LIMIT signed", + /* 173 */ "limit_opt ::= LIMIT signed OFFSET signed", + /* 174 */ "limit_opt ::= LIMIT signed COMMA signed", + /* 175 */ "slimit_opt ::=", + /* 176 */ "slimit_opt ::= SLIMIT signed", + /* 177 */ "slimit_opt ::= SLIMIT signed SOFFSET signed", + /* 178 */ "slimit_opt ::= SLIMIT signed COMMA signed", + /* 179 */ "where_opt ::=", + /* 180 */ "where_opt ::= WHERE expr", + /* 181 */ "expr ::= LP expr RP", + /* 182 */ "expr ::= ID", + /* 183 */ "expr ::= ID DOT ID", + /* 184 */ "expr ::= ID DOT STAR", + /* 185 */ "expr ::= INTEGER", + /* 186 */ "expr ::= MINUS INTEGER", + /* 187 */ "expr ::= PLUS INTEGER", + /* 188 */ "expr ::= FLOAT", + /* 189 */ "expr ::= MINUS FLOAT", + /* 190 */ "expr ::= PLUS FLOAT", + /* 191 */ "expr ::= STRING", + /* 192 */ "expr ::= NOW", + /* 193 */ "expr ::= VARIABLE", + /* 194 */ "expr ::= BOOL", + /* 195 */ "expr ::= ID LP exprlist RP", + /* 196 */ "expr ::= ID LP STAR RP", + /* 197 */ "expr ::= expr AND expr", + /* 198 */ "expr ::= expr OR expr", + /* 199 */ "expr ::= expr LT expr", + /* 200 */ "expr ::= expr GT expr", + /* 201 */ "expr ::= expr LE expr", + /* 202 */ "expr ::= expr GE expr", + /* 203 */ "expr ::= expr NE expr", + /* 204 */ "expr ::= expr EQ expr", + /* 205 */ "expr ::= expr PLUS expr", + /* 206 */ "expr ::= expr MINUS expr", + /* 207 */ "expr ::= expr STAR expr", + /* 208 */ "expr ::= expr SLASH expr", + /* 209 */ "expr ::= expr REM expr", + /* 210 */ "expr ::= expr LIKE expr", + /* 211 */ "expr ::= expr IN LP exprlist RP", + /* 212 */ "exprlist ::= exprlist COMMA expritem", + /* 213 */ "exprlist ::= expritem", + /* 214 */ "expritem ::= expr", + /* 215 */ "expritem ::=", + /* 216 */ "cmd ::= RESET QUERY CACHE", + /* 217 */ "cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist", + /* 218 */ "cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids", + /* 219 */ "cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist", + /* 220 */ "cmd ::= ALTER TABLE ids cpxName DROP TAG ids", + /* 221 */ "cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids", + /* 222 */ "cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem", + /* 223 */ "cmd ::= KILL CONNECTION INTEGER", + /* 224 */ "cmd ::= KILL STREAM INTEGER COLON INTEGER", + /* 225 */ "cmd ::= KILL QUERY INTEGER COLON INTEGER", }; #endif /* NDEBUG */ @@ -1345,50 +1352,50 @@ static void yy_destructor( ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case 226: /* keep */ - case 227: /* tagitemlist */ - case 251: /* fill_opt */ - case 253: /* groupby_opt */ - case 254: /* orderby_opt */ - case 264: /* sortlist */ - case 268: /* grouplist */ + case 227: /* keep */ + case 228: /* tagitemlist */ + case 253: /* fill_opt */ + case 255: /* groupby_opt */ + case 256: /* orderby_opt */ + case 266: /* sortlist */ + case 270: /* grouplist */ { -tVariantListDestroy((yypminor->yy494)); +tVariantListDestroy((yypminor->yy498)); } break; - case 243: /* columnlist */ + case 245: /* columnlist */ { -tFieldListDestroy((yypminor->yy449)); +tFieldListDestroy((yypminor->yy523)); } break; - case 244: /* select */ + case 246: /* select */ { -doDestroyQuerySql((yypminor->yy150)); +doDestroyQuerySql((yypminor->yy414)); } break; - case 247: /* selcollist */ - case 259: /* sclp */ - case 269: /* exprlist */ + case 249: /* selcollist */ + case 261: /* sclp */ + case 271: /* exprlist */ { -tSQLExprListDestroy((yypminor->yy224)); +tSQLExprListDestroy((yypminor->yy290)); } break; - case 249: /* where_opt */ - case 255: /* having_opt */ - case 260: /* expr */ - case 270: /* expritem */ + case 251: /* where_opt */ + case 257: /* having_opt */ + case 262: /* expr */ + case 272: /* expritem */ { -tSQLExprDestroy((yypminor->yy66)); +tSQLExprDestroy((yypminor->yy64)); } break; - case 258: /* union */ + case 260: /* union */ { -destroyAllSelectClause((yypminor->yy25)); +destroyAllSelectClause((yypminor->yy231)); } break; - case 265: /* sortitem */ + case 267: /* sortitem */ { -tVariantDestroy(&(yypminor->yy312)); +tVariantDestroy(&(yypminor->yy134)); } break; /********* End destructor definitions *****************************************/ @@ -1682,229 +1689,232 @@ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ signed char nrhs; /* Negative of the number of RHS symbols in the rule */ } yyRuleInfo[] = { - { 207, -1 }, /* (0) program ::= cmd */ - { 208, -2 }, /* (1) cmd ::= SHOW DATABASES */ - { 208, -2 }, /* (2) cmd ::= SHOW MNODES */ - { 208, -2 }, /* (3) cmd ::= SHOW DNODES */ - { 208, -2 }, /* (4) cmd ::= SHOW ACCOUNTS */ - { 208, -2 }, /* (5) cmd ::= SHOW USERS */ - { 208, -2 }, /* (6) cmd ::= SHOW MODULES */ - { 208, -2 }, /* (7) cmd ::= SHOW QUERIES */ - { 208, -2 }, /* (8) cmd ::= SHOW CONNECTIONS */ - { 208, -2 }, /* (9) cmd ::= SHOW STREAMS */ - { 208, -2 }, /* (10) cmd ::= SHOW CONFIGS */ - { 208, -2 }, /* (11) cmd ::= SHOW SCORES */ - { 208, -2 }, /* (12) cmd ::= SHOW GRANTS */ - { 208, -2 }, /* (13) cmd ::= SHOW VNODES */ - { 208, -3 }, /* (14) cmd ::= SHOW VNODES IPTOKEN */ - { 209, 0 }, /* (15) dbPrefix ::= */ - { 209, -2 }, /* (16) dbPrefix ::= ids DOT */ - { 211, 0 }, /* (17) cpxName ::= */ - { 211, -2 }, /* (18) cpxName ::= DOT ids */ - { 208, -3 }, /* (19) cmd ::= SHOW dbPrefix TABLES */ - { 208, -5 }, /* (20) cmd ::= SHOW dbPrefix TABLES LIKE ids */ - { 208, -3 }, /* (21) cmd ::= SHOW dbPrefix STABLES */ - { 208, -5 }, /* (22) cmd ::= SHOW dbPrefix STABLES LIKE ids */ - { 208, -3 }, /* (23) cmd ::= SHOW dbPrefix VGROUPS */ - { 208, -4 }, /* (24) cmd ::= SHOW dbPrefix VGROUPS ids */ - { 208, -5 }, /* (25) cmd ::= DROP TABLE ifexists ids cpxName */ - { 208, -4 }, /* (26) cmd ::= DROP DATABASE ifexists ids */ - { 208, -3 }, /* (27) cmd ::= DROP DNODE ids */ - { 208, -3 }, /* (28) cmd ::= DROP USER ids */ - { 208, -3 }, /* (29) cmd ::= DROP ACCOUNT ids */ - { 208, -2 }, /* (30) cmd ::= USE ids */ - { 208, -3 }, /* (31) cmd ::= DESCRIBE ids cpxName */ - { 208, -5 }, /* (32) cmd ::= ALTER USER ids PASS ids */ - { 208, -5 }, /* (33) cmd ::= ALTER USER ids PRIVILEGE ids */ - { 208, -4 }, /* (34) cmd ::= ALTER DNODE ids ids */ - { 208, -5 }, /* (35) cmd ::= ALTER DNODE ids ids ids */ - { 208, -3 }, /* (36) cmd ::= ALTER LOCAL ids */ - { 208, -4 }, /* (37) cmd ::= ALTER LOCAL ids ids */ - { 208, -4 }, /* (38) cmd ::= ALTER DATABASE ids alter_db_optr */ - { 208, -4 }, /* (39) cmd ::= ALTER ACCOUNT ids acct_optr */ - { 208, -6 }, /* (40) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */ - { 210, -1 }, /* (41) ids ::= ID */ - { 210, -1 }, /* (42) ids ::= STRING */ - { 212, -2 }, /* (43) ifexists ::= IF EXISTS */ - { 212, 0 }, /* (44) ifexists ::= */ - { 215, -3 }, /* (45) ifnotexists ::= IF NOT EXISTS */ - { 215, 0 }, /* (46) ifnotexists ::= */ - { 208, -3 }, /* (47) cmd ::= CREATE DNODE ids */ - { 208, -6 }, /* (48) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */ - { 208, -5 }, /* (49) cmd ::= CREATE DATABASE ifnotexists ids db_optr */ - { 208, -5 }, /* (50) cmd ::= CREATE USER ids PASS ids */ - { 217, 0 }, /* (51) pps ::= */ - { 217, -2 }, /* (52) pps ::= PPS INTEGER */ - { 218, 0 }, /* (53) tseries ::= */ - { 218, -2 }, /* (54) tseries ::= TSERIES INTEGER */ - { 219, 0 }, /* (55) dbs ::= */ - { 219, -2 }, /* (56) dbs ::= DBS INTEGER */ - { 220, 0 }, /* (57) streams ::= */ - { 220, -2 }, /* (58) streams ::= STREAMS INTEGER */ - { 221, 0 }, /* (59) storage ::= */ - { 221, -2 }, /* (60) storage ::= STORAGE INTEGER */ - { 222, 0 }, /* (61) qtime ::= */ - { 222, -2 }, /* (62) qtime ::= QTIME INTEGER */ - { 223, 0 }, /* (63) users ::= */ - { 223, -2 }, /* (64) users ::= USERS INTEGER */ - { 224, 0 }, /* (65) conns ::= */ - { 224, -2 }, /* (66) conns ::= CONNS INTEGER */ - { 225, 0 }, /* (67) state ::= */ - { 225, -2 }, /* (68) state ::= STATE ids */ - { 214, -9 }, /* (69) acct_optr ::= pps tseries storage streams qtime dbs users conns state */ - { 226, -2 }, /* (70) keep ::= KEEP tagitemlist */ - { 228, -2 }, /* (71) tables ::= MAXTABLES INTEGER */ - { 229, -2 }, /* (72) cache ::= CACHE INTEGER */ - { 230, -2 }, /* (73) replica ::= REPLICA INTEGER */ - { 231, -2 }, /* (74) days ::= DAYS INTEGER */ - { 232, -2 }, /* (75) minrows ::= MINROWS INTEGER */ - { 233, -2 }, /* (76) maxrows ::= MAXROWS INTEGER */ - { 234, -2 }, /* (77) blocks ::= BLOCKS INTEGER */ - { 235, -2 }, /* (78) ctime ::= CTIME INTEGER */ - { 236, -2 }, /* (79) wal ::= WAL INTEGER */ - { 237, -2 }, /* (80) fsync ::= FSYNC INTEGER */ - { 238, -2 }, /* (81) comp ::= COMP INTEGER */ - { 239, -2 }, /* (82) prec ::= PRECISION STRING */ - { 216, 0 }, /* (83) db_optr ::= */ - { 216, -2 }, /* (84) db_optr ::= db_optr tables */ - { 216, -2 }, /* (85) db_optr ::= db_optr cache */ - { 216, -2 }, /* (86) db_optr ::= db_optr replica */ - { 216, -2 }, /* (87) db_optr ::= db_optr days */ - { 216, -2 }, /* (88) db_optr ::= db_optr minrows */ - { 216, -2 }, /* (89) db_optr ::= db_optr maxrows */ - { 216, -2 }, /* (90) db_optr ::= db_optr blocks */ - { 216, -2 }, /* (91) db_optr ::= db_optr ctime */ - { 216, -2 }, /* (92) db_optr ::= db_optr wal */ - { 216, -2 }, /* (93) db_optr ::= db_optr fsync */ - { 216, -2 }, /* (94) db_optr ::= db_optr comp */ - { 216, -2 }, /* (95) db_optr ::= db_optr prec */ - { 216, -2 }, /* (96) db_optr ::= db_optr keep */ - { 213, 0 }, /* (97) alter_db_optr ::= */ - { 213, -2 }, /* (98) alter_db_optr ::= alter_db_optr replica */ - { 213, -2 }, /* (99) alter_db_optr ::= alter_db_optr tables */ - { 213, -2 }, /* (100) alter_db_optr ::= alter_db_optr keep */ - { 213, -2 }, /* (101) alter_db_optr ::= alter_db_optr blocks */ - { 213, -2 }, /* (102) alter_db_optr ::= alter_db_optr comp */ - { 213, -2 }, /* (103) alter_db_optr ::= alter_db_optr wal */ - { 213, -2 }, /* (104) alter_db_optr ::= alter_db_optr fsync */ - { 240, -1 }, /* (105) typename ::= ids */ - { 240, -4 }, /* (106) typename ::= ids LP signed RP */ - { 241, -1 }, /* (107) signed ::= INTEGER */ - { 241, -2 }, /* (108) signed ::= PLUS INTEGER */ - { 241, -2 }, /* (109) signed ::= MINUS INTEGER */ - { 208, -6 }, /* (110) cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */ - { 242, -3 }, /* (111) create_table_args ::= LP columnlist RP */ - { 242, -7 }, /* (112) create_table_args ::= LP columnlist RP TAGS LP columnlist RP */ - { 242, -7 }, /* (113) create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP */ - { 242, -2 }, /* (114) create_table_args ::= AS select */ - { 243, -3 }, /* (115) columnlist ::= columnlist COMMA column */ - { 243, -1 }, /* (116) columnlist ::= column */ - { 245, -2 }, /* (117) column ::= ids typename */ - { 227, -3 }, /* (118) tagitemlist ::= tagitemlist COMMA tagitem */ - { 227, -1 }, /* (119) tagitemlist ::= tagitem */ - { 246, -1 }, /* (120) tagitem ::= INTEGER */ - { 246, -1 }, /* (121) tagitem ::= FLOAT */ - { 246, -1 }, /* (122) tagitem ::= STRING */ - { 246, -1 }, /* (123) tagitem ::= BOOL */ - { 246, -1 }, /* (124) tagitem ::= NULL */ - { 246, -2 }, /* (125) tagitem ::= MINUS INTEGER */ - { 246, -2 }, /* (126) tagitem ::= MINUS FLOAT */ - { 246, -2 }, /* (127) tagitem ::= PLUS INTEGER */ - { 246, -2 }, /* (128) tagitem ::= PLUS FLOAT */ - { 244, -12 }, /* (129) select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ - { 258, -1 }, /* (130) union ::= select */ - { 258, -3 }, /* (131) union ::= LP union RP */ - { 258, -4 }, /* (132) union ::= union UNION ALL select */ - { 258, -6 }, /* (133) union ::= union UNION ALL LP select RP */ - { 208, -1 }, /* (134) cmd ::= union */ - { 244, -2 }, /* (135) select ::= SELECT selcollist */ - { 259, -2 }, /* (136) sclp ::= selcollist COMMA */ - { 259, 0 }, /* (137) sclp ::= */ - { 247, -3 }, /* (138) selcollist ::= sclp expr as */ - { 247, -2 }, /* (139) selcollist ::= sclp STAR */ - { 261, -2 }, /* (140) as ::= AS ids */ - { 261, -1 }, /* (141) as ::= ids */ - { 261, 0 }, /* (142) as ::= */ - { 248, -2 }, /* (143) from ::= FROM tablelist */ - { 262, -2 }, /* (144) tablelist ::= ids cpxName */ - { 262, -4 }, /* (145) tablelist ::= tablelist COMMA ids cpxName */ - { 263, -1 }, /* (146) tmvar ::= VARIABLE */ - { 250, -4 }, /* (147) interval_opt ::= INTERVAL LP tmvar RP */ - { 250, 0 }, /* (148) interval_opt ::= */ - { 251, 0 }, /* (149) fill_opt ::= */ - { 251, -6 }, /* (150) fill_opt ::= FILL LP ID COMMA tagitemlist RP */ - { 251, -4 }, /* (151) fill_opt ::= FILL LP ID RP */ - { 252, -4 }, /* (152) sliding_opt ::= SLIDING LP tmvar RP */ - { 252, 0 }, /* (153) sliding_opt ::= */ - { 254, 0 }, /* (154) orderby_opt ::= */ - { 254, -3 }, /* (155) orderby_opt ::= ORDER BY sortlist */ - { 264, -4 }, /* (156) sortlist ::= sortlist COMMA item sortorder */ - { 264, -2 }, /* (157) sortlist ::= item sortorder */ - { 266, -2 }, /* (158) item ::= ids cpxName */ - { 267, -1 }, /* (159) sortorder ::= ASC */ - { 267, -1 }, /* (160) sortorder ::= DESC */ - { 267, 0 }, /* (161) sortorder ::= */ - { 253, 0 }, /* (162) groupby_opt ::= */ - { 253, -3 }, /* (163) groupby_opt ::= GROUP BY grouplist */ - { 268, -3 }, /* (164) grouplist ::= grouplist COMMA item */ - { 268, -1 }, /* (165) grouplist ::= item */ - { 255, 0 }, /* (166) having_opt ::= */ - { 255, -2 }, /* (167) having_opt ::= HAVING expr */ - { 257, 0 }, /* (168) limit_opt ::= */ - { 257, -2 }, /* (169) limit_opt ::= LIMIT signed */ - { 257, -4 }, /* (170) limit_opt ::= LIMIT signed OFFSET signed */ - { 257, -4 }, /* (171) limit_opt ::= LIMIT signed COMMA signed */ - { 256, 0 }, /* (172) slimit_opt ::= */ - { 256, -2 }, /* (173) slimit_opt ::= SLIMIT signed */ - { 256, -4 }, /* (174) slimit_opt ::= SLIMIT signed SOFFSET signed */ - { 256, -4 }, /* (175) slimit_opt ::= SLIMIT signed COMMA signed */ - { 249, 0 }, /* (176) where_opt ::= */ - { 249, -2 }, /* (177) where_opt ::= WHERE expr */ - { 260, -3 }, /* (178) expr ::= LP expr RP */ - { 260, -1 }, /* (179) expr ::= ID */ - { 260, -3 }, /* (180) expr ::= ID DOT ID */ - { 260, -3 }, /* (181) expr ::= ID DOT STAR */ - { 260, -1 }, /* (182) expr ::= INTEGER */ - { 260, -2 }, /* (183) expr ::= MINUS INTEGER */ - { 260, -2 }, /* (184) expr ::= PLUS INTEGER */ - { 260, -1 }, /* (185) expr ::= FLOAT */ - { 260, -2 }, /* (186) expr ::= MINUS FLOAT */ - { 260, -2 }, /* (187) expr ::= PLUS FLOAT */ - { 260, -1 }, /* (188) expr ::= STRING */ - { 260, -1 }, /* (189) expr ::= NOW */ - { 260, -1 }, /* (190) expr ::= VARIABLE */ - { 260, -1 }, /* (191) expr ::= BOOL */ - { 260, -4 }, /* (192) expr ::= ID LP exprlist RP */ - { 260, -4 }, /* (193) expr ::= ID LP STAR RP */ - { 260, -3 }, /* (194) expr ::= expr AND expr */ - { 260, -3 }, /* (195) expr ::= expr OR expr */ - { 260, -3 }, /* (196) expr ::= expr LT expr */ - { 260, -3 }, /* (197) expr ::= expr GT expr */ - { 260, -3 }, /* (198) expr ::= expr LE expr */ - { 260, -3 }, /* (199) expr ::= expr GE expr */ - { 260, -3 }, /* (200) expr ::= expr NE expr */ - { 260, -3 }, /* (201) expr ::= expr EQ expr */ - { 260, -3 }, /* (202) expr ::= expr PLUS expr */ - { 260, -3 }, /* (203) expr ::= expr MINUS expr */ - { 260, -3 }, /* (204) expr ::= expr STAR expr */ - { 260, -3 }, /* (205) expr ::= expr SLASH expr */ - { 260, -3 }, /* (206) expr ::= expr REM expr */ - { 260, -3 }, /* (207) expr ::= expr LIKE expr */ - { 260, -5 }, /* (208) expr ::= expr IN LP exprlist RP */ - { 269, -3 }, /* (209) exprlist ::= exprlist COMMA expritem */ - { 269, -1 }, /* (210) exprlist ::= expritem */ - { 270, -1 }, /* (211) expritem ::= expr */ - { 270, 0 }, /* (212) expritem ::= */ - { 208, -3 }, /* (213) cmd ::= RESET QUERY CACHE */ - { 208, -7 }, /* (214) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ - { 208, -7 }, /* (215) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ - { 208, -7 }, /* (216) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ - { 208, -7 }, /* (217) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ - { 208, -8 }, /* (218) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ - { 208, -9 }, /* (219) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ - { 208, -3 }, /* (220) cmd ::= KILL CONNECTION INTEGER */ - { 208, -5 }, /* (221) cmd ::= KILL STREAM INTEGER COLON INTEGER */ - { 208, -5 }, /* (222) cmd ::= KILL QUERY INTEGER COLON INTEGER */ + { 208, -1 }, /* (0) program ::= cmd */ + { 209, -2 }, /* (1) cmd ::= SHOW DATABASES */ + { 209, -2 }, /* (2) cmd ::= SHOW MNODES */ + { 209, -2 }, /* (3) cmd ::= SHOW DNODES */ + { 209, -2 }, /* (4) cmd ::= SHOW ACCOUNTS */ + { 209, -2 }, /* (5) cmd ::= SHOW USERS */ + { 209, -2 }, /* (6) cmd ::= SHOW MODULES */ + { 209, -2 }, /* (7) cmd ::= SHOW QUERIES */ + { 209, -2 }, /* (8) cmd ::= SHOW CONNECTIONS */ + { 209, -2 }, /* (9) cmd ::= SHOW STREAMS */ + { 209, -2 }, /* (10) cmd ::= SHOW CONFIGS */ + { 209, -2 }, /* (11) cmd ::= SHOW SCORES */ + { 209, -2 }, /* (12) cmd ::= SHOW GRANTS */ + { 209, -2 }, /* (13) cmd ::= SHOW VNODES */ + { 209, -3 }, /* (14) cmd ::= SHOW VNODES IPTOKEN */ + { 210, 0 }, /* (15) dbPrefix ::= */ + { 210, -2 }, /* (16) dbPrefix ::= ids DOT */ + { 212, 0 }, /* (17) cpxName ::= */ + { 212, -2 }, /* (18) cpxName ::= DOT ids */ + { 209, -3 }, /* (19) cmd ::= SHOW dbPrefix TABLES */ + { 209, -5 }, /* (20) cmd ::= SHOW dbPrefix TABLES LIKE ids */ + { 209, -3 }, /* (21) cmd ::= SHOW dbPrefix STABLES */ + { 209, -5 }, /* (22) cmd ::= SHOW dbPrefix STABLES LIKE ids */ + { 209, -3 }, /* (23) cmd ::= SHOW dbPrefix VGROUPS */ + { 209, -4 }, /* (24) cmd ::= SHOW dbPrefix VGROUPS ids */ + { 209, -5 }, /* (25) cmd ::= DROP TABLE ifexists ids cpxName */ + { 209, -4 }, /* (26) cmd ::= DROP DATABASE ifexists ids */ + { 209, -3 }, /* (27) cmd ::= DROP DNODE ids */ + { 209, -3 }, /* (28) cmd ::= DROP USER ids */ + { 209, -3 }, /* (29) cmd ::= DROP ACCOUNT ids */ + { 209, -2 }, /* (30) cmd ::= USE ids */ + { 209, -3 }, /* (31) cmd ::= DESCRIBE ids cpxName */ + { 209, -5 }, /* (32) cmd ::= ALTER USER ids PASS ids */ + { 209, -5 }, /* (33) cmd ::= ALTER USER ids PRIVILEGE ids */ + { 209, -4 }, /* (34) cmd ::= ALTER DNODE ids ids */ + { 209, -5 }, /* (35) cmd ::= ALTER DNODE ids ids ids */ + { 209, -3 }, /* (36) cmd ::= ALTER LOCAL ids */ + { 209, -4 }, /* (37) cmd ::= ALTER LOCAL ids ids */ + { 209, -4 }, /* (38) cmd ::= ALTER DATABASE ids alter_db_optr */ + { 209, -4 }, /* (39) cmd ::= ALTER ACCOUNT ids acct_optr */ + { 209, -6 }, /* (40) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */ + { 211, -1 }, /* (41) ids ::= ID */ + { 211, -1 }, /* (42) ids ::= STRING */ + { 213, -2 }, /* (43) ifexists ::= IF EXISTS */ + { 213, 0 }, /* (44) ifexists ::= */ + { 216, -3 }, /* (45) ifnotexists ::= IF NOT EXISTS */ + { 216, 0 }, /* (46) ifnotexists ::= */ + { 209, -3 }, /* (47) cmd ::= CREATE DNODE ids */ + { 209, -6 }, /* (48) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */ + { 209, -5 }, /* (49) cmd ::= CREATE DATABASE ifnotexists ids db_optr */ + { 209, -5 }, /* (50) cmd ::= CREATE USER ids PASS ids */ + { 218, 0 }, /* (51) pps ::= */ + { 218, -2 }, /* (52) pps ::= PPS INTEGER */ + { 219, 0 }, /* (53) tseries ::= */ + { 219, -2 }, /* (54) tseries ::= TSERIES INTEGER */ + { 220, 0 }, /* (55) dbs ::= */ + { 220, -2 }, /* (56) dbs ::= DBS INTEGER */ + { 221, 0 }, /* (57) streams ::= */ + { 221, -2 }, /* (58) streams ::= STREAMS INTEGER */ + { 222, 0 }, /* (59) storage ::= */ + { 222, -2 }, /* (60) storage ::= STORAGE INTEGER */ + { 223, 0 }, /* (61) qtime ::= */ + { 223, -2 }, /* (62) qtime ::= QTIME INTEGER */ + { 224, 0 }, /* (63) users ::= */ + { 224, -2 }, /* (64) users ::= USERS INTEGER */ + { 225, 0 }, /* (65) conns ::= */ + { 225, -2 }, /* (66) conns ::= CONNS INTEGER */ + { 226, 0 }, /* (67) state ::= */ + { 226, -2 }, /* (68) state ::= STATE ids */ + { 215, -9 }, /* (69) acct_optr ::= pps tseries storage streams qtime dbs users conns state */ + { 227, -2 }, /* (70) keep ::= KEEP tagitemlist */ + { 229, -2 }, /* (71) tables ::= MAXTABLES INTEGER */ + { 230, -2 }, /* (72) cache ::= CACHE INTEGER */ + { 231, -2 }, /* (73) replica ::= REPLICA INTEGER */ + { 232, -2 }, /* (74) quorum ::= QUORUM INTEGER */ + { 233, -2 }, /* (75) days ::= DAYS INTEGER */ + { 234, -2 }, /* (76) minrows ::= MINROWS INTEGER */ + { 235, -2 }, /* (77) maxrows ::= MAXROWS INTEGER */ + { 236, -2 }, /* (78) blocks ::= BLOCKS INTEGER */ + { 237, -2 }, /* (79) ctime ::= CTIME INTEGER */ + { 238, -2 }, /* (80) wal ::= WAL INTEGER */ + { 239, -2 }, /* (81) fsync ::= FSYNC INTEGER */ + { 240, -2 }, /* (82) comp ::= COMP INTEGER */ + { 241, -2 }, /* (83) prec ::= PRECISION STRING */ + { 217, 0 }, /* (84) db_optr ::= */ + { 217, -2 }, /* (85) db_optr ::= db_optr tables */ + { 217, -2 }, /* (86) db_optr ::= db_optr cache */ + { 217, -2 }, /* (87) db_optr ::= db_optr replica */ + { 217, -2 }, /* (88) db_optr ::= db_optr quorum */ + { 217, -2 }, /* (89) db_optr ::= db_optr days */ + { 217, -2 }, /* (90) db_optr ::= db_optr minrows */ + { 217, -2 }, /* (91) db_optr ::= db_optr maxrows */ + { 217, -2 }, /* (92) db_optr ::= db_optr blocks */ + { 217, -2 }, /* (93) db_optr ::= db_optr ctime */ + { 217, -2 }, /* (94) db_optr ::= db_optr wal */ + { 217, -2 }, /* (95) db_optr ::= db_optr fsync */ + { 217, -2 }, /* (96) db_optr ::= db_optr comp */ + { 217, -2 }, /* (97) db_optr ::= db_optr prec */ + { 217, -2 }, /* (98) db_optr ::= db_optr keep */ + { 214, 0 }, /* (99) alter_db_optr ::= */ + { 214, -2 }, /* (100) alter_db_optr ::= alter_db_optr replica */ + { 214, -2 }, /* (101) alter_db_optr ::= alter_db_optr quorum */ + { 214, -2 }, /* (102) alter_db_optr ::= alter_db_optr tables */ + { 214, -2 }, /* (103) alter_db_optr ::= alter_db_optr keep */ + { 214, -2 }, /* (104) alter_db_optr ::= alter_db_optr blocks */ + { 214, -2 }, /* (105) alter_db_optr ::= alter_db_optr comp */ + { 214, -2 }, /* (106) alter_db_optr ::= alter_db_optr wal */ + { 214, -2 }, /* (107) alter_db_optr ::= alter_db_optr fsync */ + { 242, -1 }, /* (108) typename ::= ids */ + { 242, -4 }, /* (109) typename ::= ids LP signed RP */ + { 243, -1 }, /* (110) signed ::= INTEGER */ + { 243, -2 }, /* (111) signed ::= PLUS INTEGER */ + { 243, -2 }, /* (112) signed ::= MINUS INTEGER */ + { 209, -6 }, /* (113) cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */ + { 244, -3 }, /* (114) create_table_args ::= LP columnlist RP */ + { 244, -7 }, /* (115) create_table_args ::= LP columnlist RP TAGS LP columnlist RP */ + { 244, -7 }, /* (116) create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP */ + { 244, -2 }, /* (117) create_table_args ::= AS select */ + { 245, -3 }, /* (118) columnlist ::= columnlist COMMA column */ + { 245, -1 }, /* (119) columnlist ::= column */ + { 247, -2 }, /* (120) column ::= ids typename */ + { 228, -3 }, /* (121) tagitemlist ::= tagitemlist COMMA tagitem */ + { 228, -1 }, /* (122) tagitemlist ::= tagitem */ + { 248, -1 }, /* (123) tagitem ::= INTEGER */ + { 248, -1 }, /* (124) tagitem ::= FLOAT */ + { 248, -1 }, /* (125) tagitem ::= STRING */ + { 248, -1 }, /* (126) tagitem ::= BOOL */ + { 248, -1 }, /* (127) tagitem ::= NULL */ + { 248, -2 }, /* (128) tagitem ::= MINUS INTEGER */ + { 248, -2 }, /* (129) tagitem ::= MINUS FLOAT */ + { 248, -2 }, /* (130) tagitem ::= PLUS INTEGER */ + { 248, -2 }, /* (131) tagitem ::= PLUS FLOAT */ + { 246, -12 }, /* (132) select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ + { 260, -1 }, /* (133) union ::= select */ + { 260, -3 }, /* (134) union ::= LP union RP */ + { 260, -4 }, /* (135) union ::= union UNION ALL select */ + { 260, -6 }, /* (136) union ::= union UNION ALL LP select RP */ + { 209, -1 }, /* (137) cmd ::= union */ + { 246, -2 }, /* (138) select ::= SELECT selcollist */ + { 261, -2 }, /* (139) sclp ::= selcollist COMMA */ + { 261, 0 }, /* (140) sclp ::= */ + { 249, -3 }, /* (141) selcollist ::= sclp expr as */ + { 249, -2 }, /* (142) selcollist ::= sclp STAR */ + { 263, -2 }, /* (143) as ::= AS ids */ + { 263, -1 }, /* (144) as ::= ids */ + { 263, 0 }, /* (145) as ::= */ + { 250, -2 }, /* (146) from ::= FROM tablelist */ + { 264, -2 }, /* (147) tablelist ::= ids cpxName */ + { 264, -4 }, /* (148) tablelist ::= tablelist COMMA ids cpxName */ + { 265, -1 }, /* (149) tmvar ::= VARIABLE */ + { 252, -4 }, /* (150) interval_opt ::= INTERVAL LP tmvar RP */ + { 252, 0 }, /* (151) interval_opt ::= */ + { 253, 0 }, /* (152) fill_opt ::= */ + { 253, -6 }, /* (153) fill_opt ::= FILL LP ID COMMA tagitemlist RP */ + { 253, -4 }, /* (154) fill_opt ::= FILL LP ID RP */ + { 254, -4 }, /* (155) sliding_opt ::= SLIDING LP tmvar RP */ + { 254, 0 }, /* (156) sliding_opt ::= */ + { 256, 0 }, /* (157) orderby_opt ::= */ + { 256, -3 }, /* (158) orderby_opt ::= ORDER BY sortlist */ + { 266, -4 }, /* (159) sortlist ::= sortlist COMMA item sortorder */ + { 266, -2 }, /* (160) sortlist ::= item sortorder */ + { 268, -2 }, /* (161) item ::= ids cpxName */ + { 269, -1 }, /* (162) sortorder ::= ASC */ + { 269, -1 }, /* (163) sortorder ::= DESC */ + { 269, 0 }, /* (164) sortorder ::= */ + { 255, 0 }, /* (165) groupby_opt ::= */ + { 255, -3 }, /* (166) groupby_opt ::= GROUP BY grouplist */ + { 270, -3 }, /* (167) grouplist ::= grouplist COMMA item */ + { 270, -1 }, /* (168) grouplist ::= item */ + { 257, 0 }, /* (169) having_opt ::= */ + { 257, -2 }, /* (170) having_opt ::= HAVING expr */ + { 259, 0 }, /* (171) limit_opt ::= */ + { 259, -2 }, /* (172) limit_opt ::= LIMIT signed */ + { 259, -4 }, /* (173) limit_opt ::= LIMIT signed OFFSET signed */ + { 259, -4 }, /* (174) limit_opt ::= LIMIT signed COMMA signed */ + { 258, 0 }, /* (175) slimit_opt ::= */ + { 258, -2 }, /* (176) slimit_opt ::= SLIMIT signed */ + { 258, -4 }, /* (177) slimit_opt ::= SLIMIT signed SOFFSET signed */ + { 258, -4 }, /* (178) slimit_opt ::= SLIMIT signed COMMA signed */ + { 251, 0 }, /* (179) where_opt ::= */ + { 251, -2 }, /* (180) where_opt ::= WHERE expr */ + { 262, -3 }, /* (181) expr ::= LP expr RP */ + { 262, -1 }, /* (182) expr ::= ID */ + { 262, -3 }, /* (183) expr ::= ID DOT ID */ + { 262, -3 }, /* (184) expr ::= ID DOT STAR */ + { 262, -1 }, /* (185) expr ::= INTEGER */ + { 262, -2 }, /* (186) expr ::= MINUS INTEGER */ + { 262, -2 }, /* (187) expr ::= PLUS INTEGER */ + { 262, -1 }, /* (188) expr ::= FLOAT */ + { 262, -2 }, /* (189) expr ::= MINUS FLOAT */ + { 262, -2 }, /* (190) expr ::= PLUS FLOAT */ + { 262, -1 }, /* (191) expr ::= STRING */ + { 262, -1 }, /* (192) expr ::= NOW */ + { 262, -1 }, /* (193) expr ::= VARIABLE */ + { 262, -1 }, /* (194) expr ::= BOOL */ + { 262, -4 }, /* (195) expr ::= ID LP exprlist RP */ + { 262, -4 }, /* (196) expr ::= ID LP STAR RP */ + { 262, -3 }, /* (197) expr ::= expr AND expr */ + { 262, -3 }, /* (198) expr ::= expr OR expr */ + { 262, -3 }, /* (199) expr ::= expr LT expr */ + { 262, -3 }, /* (200) expr ::= expr GT expr */ + { 262, -3 }, /* (201) expr ::= expr LE expr */ + { 262, -3 }, /* (202) expr ::= expr GE expr */ + { 262, -3 }, /* (203) expr ::= expr NE expr */ + { 262, -3 }, /* (204) expr ::= expr EQ expr */ + { 262, -3 }, /* (205) expr ::= expr PLUS expr */ + { 262, -3 }, /* (206) expr ::= expr MINUS expr */ + { 262, -3 }, /* (207) expr ::= expr STAR expr */ + { 262, -3 }, /* (208) expr ::= expr SLASH expr */ + { 262, -3 }, /* (209) expr ::= expr REM expr */ + { 262, -3 }, /* (210) expr ::= expr LIKE expr */ + { 262, -5 }, /* (211) expr ::= expr IN LP exprlist RP */ + { 271, -3 }, /* (212) exprlist ::= exprlist COMMA expritem */ + { 271, -1 }, /* (213) exprlist ::= expritem */ + { 272, -1 }, /* (214) expritem ::= expr */ + { 272, 0 }, /* (215) expritem ::= */ + { 209, -3 }, /* (216) cmd ::= RESET QUERY CACHE */ + { 209, -7 }, /* (217) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ + { 209, -7 }, /* (218) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ + { 209, -7 }, /* (219) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ + { 209, -7 }, /* (220) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ + { 209, -8 }, /* (221) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ + { 209, -9 }, /* (222) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ + { 209, -3 }, /* (223) cmd ::= KILL CONNECTION INTEGER */ + { 209, -5 }, /* (224) cmd ::= KILL STREAM INTEGER COLON INTEGER */ + { 209, -5 }, /* (225) cmd ::= KILL QUERY INTEGER COLON INTEGER */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -2124,13 +2134,13 @@ static void yy_reduce( { setDCLSQLElems(pInfo, TSDB_SQL_CFG_LOCAL, 2, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } break; case 38: /* cmd ::= ALTER DATABASE ids alter_db_optr */ -{ SSQLToken t = {0}; setCreateDBSQL(pInfo, TSDB_SQL_ALTER_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy158, &t);} +{ SSQLToken t = {0}; setCreateDBSQL(pInfo, TSDB_SQL_ALTER_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy268, &t);} break; case 39: /* cmd ::= ALTER ACCOUNT ids acct_optr */ -{ setCreateAcctSQL(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-1].minor.yy0, NULL, &yymsp[0].minor.yy73);} +{ setCreateAcctSQL(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-1].minor.yy0, NULL, &yymsp[0].minor.yy149);} break; case 40: /* cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */ -{ setCreateAcctSQL(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy73);} +{ setCreateAcctSQL(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy149);} break; case 41: /* ids ::= ID */ case 42: /* ids ::= STRING */ yytestcase(yyruleno==42); @@ -2151,10 +2161,10 @@ static void yy_reduce( { setDCLSQLElems(pInfo, TSDB_SQL_CREATE_DNODE, 1, &yymsp[0].minor.yy0);} break; case 48: /* cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */ -{ setCreateAcctSQL(pInfo, TSDB_SQL_CREATE_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy73);} +{ setCreateAcctSQL(pInfo, TSDB_SQL_CREATE_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy149);} break; case 49: /* cmd ::= CREATE DATABASE ifnotexists ids db_optr */ -{ setCreateDBSQL(pInfo, TSDB_SQL_CREATE_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy158, &yymsp[-2].minor.yy0);} +{ setCreateDBSQL(pInfo, TSDB_SQL_CREATE_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy268, &yymsp[-2].minor.yy0);} break; case 50: /* cmd ::= CREATE USER ids PASS ids */ { setCreateUserSQL(pInfo, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);} @@ -2183,529 +2193,535 @@ static void yy_reduce( break; case 69: /* acct_optr ::= pps tseries storage streams qtime dbs users conns state */ { - yylhsminor.yy73.maxUsers = (yymsp[-2].minor.yy0.n>0)?atoi(yymsp[-2].minor.yy0.z):-1; - yylhsminor.yy73.maxDbs = (yymsp[-3].minor.yy0.n>0)?atoi(yymsp[-3].minor.yy0.z):-1; - yylhsminor.yy73.maxTimeSeries = (yymsp[-7].minor.yy0.n>0)?atoi(yymsp[-7].minor.yy0.z):-1; - yylhsminor.yy73.maxStreams = (yymsp[-5].minor.yy0.n>0)?atoi(yymsp[-5].minor.yy0.z):-1; - yylhsminor.yy73.maxPointsPerSecond = (yymsp[-8].minor.yy0.n>0)?atoi(yymsp[-8].minor.yy0.z):-1; - yylhsminor.yy73.maxStorage = (yymsp[-6].minor.yy0.n>0)?strtoll(yymsp[-6].minor.yy0.z, NULL, 10):-1; - yylhsminor.yy73.maxQueryTime = (yymsp[-4].minor.yy0.n>0)?strtoll(yymsp[-4].minor.yy0.z, NULL, 10):-1; - yylhsminor.yy73.maxConnections = (yymsp[-1].minor.yy0.n>0)?atoi(yymsp[-1].minor.yy0.z):-1; - yylhsminor.yy73.stat = yymsp[0].minor.yy0; + yylhsminor.yy149.maxUsers = (yymsp[-2].minor.yy0.n>0)?atoi(yymsp[-2].minor.yy0.z):-1; + yylhsminor.yy149.maxDbs = (yymsp[-3].minor.yy0.n>0)?atoi(yymsp[-3].minor.yy0.z):-1; + yylhsminor.yy149.maxTimeSeries = (yymsp[-7].minor.yy0.n>0)?atoi(yymsp[-7].minor.yy0.z):-1; + yylhsminor.yy149.maxStreams = (yymsp[-5].minor.yy0.n>0)?atoi(yymsp[-5].minor.yy0.z):-1; + yylhsminor.yy149.maxPointsPerSecond = (yymsp[-8].minor.yy0.n>0)?atoi(yymsp[-8].minor.yy0.z):-1; + yylhsminor.yy149.maxStorage = (yymsp[-6].minor.yy0.n>0)?strtoll(yymsp[-6].minor.yy0.z, NULL, 10):-1; + yylhsminor.yy149.maxQueryTime = (yymsp[-4].minor.yy0.n>0)?strtoll(yymsp[-4].minor.yy0.z, NULL, 10):-1; + yylhsminor.yy149.maxConnections = (yymsp[-1].minor.yy0.n>0)?atoi(yymsp[-1].minor.yy0.z):-1; + yylhsminor.yy149.stat = yymsp[0].minor.yy0; } - yymsp[-8].minor.yy73 = yylhsminor.yy73; + yymsp[-8].minor.yy149 = yylhsminor.yy149; break; case 70: /* keep ::= KEEP tagitemlist */ -{ yymsp[-1].minor.yy494 = yymsp[0].minor.yy494; } +{ yymsp[-1].minor.yy498 = yymsp[0].minor.yy498; } break; case 71: /* tables ::= MAXTABLES INTEGER */ case 72: /* cache ::= CACHE INTEGER */ yytestcase(yyruleno==72); case 73: /* replica ::= REPLICA INTEGER */ yytestcase(yyruleno==73); - case 74: /* days ::= DAYS INTEGER */ yytestcase(yyruleno==74); - case 75: /* minrows ::= MINROWS INTEGER */ yytestcase(yyruleno==75); - case 76: /* maxrows ::= MAXROWS INTEGER */ yytestcase(yyruleno==76); - case 77: /* blocks ::= BLOCKS INTEGER */ yytestcase(yyruleno==77); - case 78: /* ctime ::= CTIME INTEGER */ yytestcase(yyruleno==78); - case 79: /* wal ::= WAL INTEGER */ yytestcase(yyruleno==79); - case 80: /* fsync ::= FSYNC INTEGER */ yytestcase(yyruleno==80); - case 81: /* comp ::= COMP INTEGER */ yytestcase(yyruleno==81); - case 82: /* prec ::= PRECISION STRING */ yytestcase(yyruleno==82); + case 74: /* quorum ::= QUORUM INTEGER */ yytestcase(yyruleno==74); + case 75: /* days ::= DAYS INTEGER */ yytestcase(yyruleno==75); + case 76: /* minrows ::= MINROWS INTEGER */ yytestcase(yyruleno==76); + case 77: /* maxrows ::= MAXROWS INTEGER */ yytestcase(yyruleno==77); + case 78: /* blocks ::= BLOCKS INTEGER */ yytestcase(yyruleno==78); + case 79: /* ctime ::= CTIME INTEGER */ yytestcase(yyruleno==79); + case 80: /* wal ::= WAL INTEGER */ yytestcase(yyruleno==80); + case 81: /* fsync ::= FSYNC INTEGER */ yytestcase(yyruleno==81); + case 82: /* comp ::= COMP INTEGER */ yytestcase(yyruleno==82); + case 83: /* prec ::= PRECISION STRING */ yytestcase(yyruleno==83); { yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; } break; - case 83: /* db_optr ::= */ -{setDefaultCreateDbOption(&yymsp[1].minor.yy158);} + case 84: /* db_optr ::= */ +{setDefaultCreateDbOption(&yymsp[1].minor.yy268);} break; - case 84: /* db_optr ::= db_optr tables */ - case 99: /* alter_db_optr ::= alter_db_optr tables */ yytestcase(yyruleno==99); -{ yylhsminor.yy158 = yymsp[-1].minor.yy158; yylhsminor.yy158.maxTablesPerVnode = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy158 = yylhsminor.yy158; + case 85: /* db_optr ::= db_optr tables */ + case 102: /* alter_db_optr ::= alter_db_optr tables */ yytestcase(yyruleno==102); +{ yylhsminor.yy268 = yymsp[-1].minor.yy268; yylhsminor.yy268.maxTablesPerVnode = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy268 = yylhsminor.yy268; break; - case 85: /* db_optr ::= db_optr cache */ -{ yylhsminor.yy158 = yymsp[-1].minor.yy158; yylhsminor.yy158.cacheBlockSize = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy158 = yylhsminor.yy158; + case 86: /* db_optr ::= db_optr cache */ +{ yylhsminor.yy268 = yymsp[-1].minor.yy268; yylhsminor.yy268.cacheBlockSize = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy268 = yylhsminor.yy268; break; - case 86: /* db_optr ::= db_optr replica */ - case 98: /* alter_db_optr ::= alter_db_optr replica */ yytestcase(yyruleno==98); -{ yylhsminor.yy158 = yymsp[-1].minor.yy158; yylhsminor.yy158.replica = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy158 = yylhsminor.yy158; + case 87: /* db_optr ::= db_optr replica */ + case 100: /* alter_db_optr ::= alter_db_optr replica */ yytestcase(yyruleno==100); +{ yylhsminor.yy268 = yymsp[-1].minor.yy268; yylhsminor.yy268.replica = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy268 = yylhsminor.yy268; break; - case 87: /* db_optr ::= db_optr days */ -{ yylhsminor.yy158 = yymsp[-1].minor.yy158; yylhsminor.yy158.daysPerFile = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy158 = yylhsminor.yy158; + case 88: /* db_optr ::= db_optr quorum */ + case 101: /* alter_db_optr ::= alter_db_optr quorum */ yytestcase(yyruleno==101); +{ yylhsminor.yy268 = yymsp[-1].minor.yy268; yylhsminor.yy268.quorum = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy268 = yylhsminor.yy268; break; - case 88: /* db_optr ::= db_optr minrows */ -{ yylhsminor.yy158 = yymsp[-1].minor.yy158; yylhsminor.yy158.minRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); } - yymsp[-1].minor.yy158 = yylhsminor.yy158; + case 89: /* db_optr ::= db_optr days */ +{ yylhsminor.yy268 = yymsp[-1].minor.yy268; yylhsminor.yy268.daysPerFile = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy268 = yylhsminor.yy268; break; - case 89: /* db_optr ::= db_optr maxrows */ -{ yylhsminor.yy158 = yymsp[-1].minor.yy158; yylhsminor.yy158.maxRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); } - yymsp[-1].minor.yy158 = yylhsminor.yy158; + case 90: /* db_optr ::= db_optr minrows */ +{ yylhsminor.yy268 = yymsp[-1].minor.yy268; yylhsminor.yy268.minRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); } + yymsp[-1].minor.yy268 = yylhsminor.yy268; break; - case 90: /* db_optr ::= db_optr blocks */ - case 101: /* alter_db_optr ::= alter_db_optr blocks */ yytestcase(yyruleno==101); -{ yylhsminor.yy158 = yymsp[-1].minor.yy158; yylhsminor.yy158.numOfBlocks = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy158 = yylhsminor.yy158; + case 91: /* db_optr ::= db_optr maxrows */ +{ yylhsminor.yy268 = yymsp[-1].minor.yy268; yylhsminor.yy268.maxRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); } + yymsp[-1].minor.yy268 = yylhsminor.yy268; break; - case 91: /* db_optr ::= db_optr ctime */ -{ yylhsminor.yy158 = yymsp[-1].minor.yy158; yylhsminor.yy158.commitTime = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy158 = yylhsminor.yy158; + case 92: /* db_optr ::= db_optr blocks */ + case 104: /* alter_db_optr ::= alter_db_optr blocks */ yytestcase(yyruleno==104); +{ yylhsminor.yy268 = yymsp[-1].minor.yy268; yylhsminor.yy268.numOfBlocks = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy268 = yylhsminor.yy268; break; - case 92: /* db_optr ::= db_optr wal */ - case 103: /* alter_db_optr ::= alter_db_optr wal */ yytestcase(yyruleno==103); -{ yylhsminor.yy158 = yymsp[-1].minor.yy158; yylhsminor.yy158.walLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy158 = yylhsminor.yy158; + case 93: /* db_optr ::= db_optr ctime */ +{ yylhsminor.yy268 = yymsp[-1].minor.yy268; yylhsminor.yy268.commitTime = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy268 = yylhsminor.yy268; break; - case 93: /* db_optr ::= db_optr fsync */ -{ yylhsminor.yy158 = yymsp[-1].minor.yy158; yylhsminor.yy158.fsyncPeriod = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy158 = yylhsminor.yy158; + case 94: /* db_optr ::= db_optr wal */ + case 106: /* alter_db_optr ::= alter_db_optr wal */ yytestcase(yyruleno==106); +{ yylhsminor.yy268 = yymsp[-1].minor.yy268; yylhsminor.yy268.walLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy268 = yylhsminor.yy268; break; - case 94: /* db_optr ::= db_optr comp */ - case 102: /* alter_db_optr ::= alter_db_optr comp */ yytestcase(yyruleno==102); -{ yylhsminor.yy158 = yymsp[-1].minor.yy158; yylhsminor.yy158.compressionLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy158 = yylhsminor.yy158; + case 95: /* db_optr ::= db_optr fsync */ +{ yylhsminor.yy268 = yymsp[-1].minor.yy268; yylhsminor.yy268.fsyncPeriod = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy268 = yylhsminor.yy268; break; - case 95: /* db_optr ::= db_optr prec */ -{ yylhsminor.yy158 = yymsp[-1].minor.yy158; yylhsminor.yy158.precision = yymsp[0].minor.yy0; } - yymsp[-1].minor.yy158 = yylhsminor.yy158; + case 96: /* db_optr ::= db_optr comp */ + case 105: /* alter_db_optr ::= alter_db_optr comp */ yytestcase(yyruleno==105); +{ yylhsminor.yy268 = yymsp[-1].minor.yy268; yylhsminor.yy268.compressionLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy268 = yylhsminor.yy268; break; - case 96: /* db_optr ::= db_optr keep */ - case 100: /* alter_db_optr ::= alter_db_optr keep */ yytestcase(yyruleno==100); -{ yylhsminor.yy158 = yymsp[-1].minor.yy158; yylhsminor.yy158.keep = yymsp[0].minor.yy494; } - yymsp[-1].minor.yy158 = yylhsminor.yy158; + case 97: /* db_optr ::= db_optr prec */ +{ yylhsminor.yy268 = yymsp[-1].minor.yy268; yylhsminor.yy268.precision = yymsp[0].minor.yy0; } + yymsp[-1].minor.yy268 = yylhsminor.yy268; break; - case 97: /* alter_db_optr ::= */ -{ setDefaultCreateDbOption(&yymsp[1].minor.yy158);} + case 98: /* db_optr ::= db_optr keep */ + case 103: /* alter_db_optr ::= alter_db_optr keep */ yytestcase(yyruleno==103); +{ yylhsminor.yy268 = yymsp[-1].minor.yy268; yylhsminor.yy268.keep = yymsp[0].minor.yy498; } + yymsp[-1].minor.yy268 = yylhsminor.yy268; break; - case 104: /* alter_db_optr ::= alter_db_optr fsync */ -{ yylhsminor.yy158 = yymsp[-1].minor.yy158; yylhsminor.yy158.fsyncPeriod = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[-1].minor.yy158 = yylhsminor.yy158; + case 99: /* alter_db_optr ::= */ +{ setDefaultCreateDbOption(&yymsp[1].minor.yy268);} break; - case 105: /* typename ::= ids */ + case 107: /* alter_db_optr ::= alter_db_optr fsync */ +{ yylhsminor.yy268 = yymsp[-1].minor.yy268; yylhsminor.yy268.fsyncPeriod = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[-1].minor.yy268 = yylhsminor.yy268; + break; + case 108: /* typename ::= ids */ { yymsp[0].minor.yy0.type = 0; - tSQLSetColumnType (&yylhsminor.yy181, &yymsp[0].minor.yy0); + tSQLSetColumnType (&yylhsminor.yy223, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy181 = yylhsminor.yy181; + yymsp[0].minor.yy223 = yylhsminor.yy223; break; - case 106: /* typename ::= ids LP signed RP */ + case 109: /* typename ::= ids LP signed RP */ { - if (yymsp[-1].minor.yy271 <= 0) { + if (yymsp[-1].minor.yy207 <= 0) { yymsp[-3].minor.yy0.type = 0; - tSQLSetColumnType(&yylhsminor.yy181, &yymsp[-3].minor.yy0); + tSQLSetColumnType(&yylhsminor.yy223, &yymsp[-3].minor.yy0); } else { - yymsp[-3].minor.yy0.type = -yymsp[-1].minor.yy271; // negative value of name length - tSQLSetColumnType(&yylhsminor.yy181, &yymsp[-3].minor.yy0); + yymsp[-3].minor.yy0.type = -yymsp[-1].minor.yy207; // negative value of name length + tSQLSetColumnType(&yylhsminor.yy223, &yymsp[-3].minor.yy0); } } - yymsp[-3].minor.yy181 = yylhsminor.yy181; + yymsp[-3].minor.yy223 = yylhsminor.yy223; break; - case 107: /* signed ::= INTEGER */ -{ yylhsminor.yy271 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } - yymsp[0].minor.yy271 = yylhsminor.yy271; + case 110: /* signed ::= INTEGER */ +{ yylhsminor.yy207 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + yymsp[0].minor.yy207 = yylhsminor.yy207; break; - case 108: /* signed ::= PLUS INTEGER */ -{ yymsp[-1].minor.yy271 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } + case 111: /* signed ::= PLUS INTEGER */ +{ yymsp[-1].minor.yy207 = strtol(yymsp[0].minor.yy0.z, NULL, 10); } break; - case 109: /* signed ::= MINUS INTEGER */ -{ yymsp[-1].minor.yy271 = -strtol(yymsp[0].minor.yy0.z, NULL, 10);} + case 112: /* signed ::= MINUS INTEGER */ +{ yymsp[-1].minor.yy207 = -strtol(yymsp[0].minor.yy0.z, NULL, 10);} break; - case 110: /* cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */ + case 113: /* cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */ { yymsp[-2].minor.yy0.n += yymsp[-1].minor.yy0.n; setCreatedTableName(pInfo, &yymsp[-2].minor.yy0, &yymsp[-3].minor.yy0); } break; - case 111: /* create_table_args ::= LP columnlist RP */ + case 114: /* create_table_args ::= LP columnlist RP */ { - yymsp[-2].minor.yy374 = tSetCreateSQLElems(yymsp[-1].minor.yy449, NULL, NULL, NULL, NULL, TSQL_CREATE_TABLE); - setSQLInfo(pInfo, yymsp[-2].minor.yy374, NULL, TSDB_SQL_CREATE_TABLE); + yymsp[-2].minor.yy470 = tSetCreateSQLElems(yymsp[-1].minor.yy523, NULL, NULL, NULL, NULL, TSQL_CREATE_TABLE); + setSQLInfo(pInfo, yymsp[-2].minor.yy470, NULL, TSDB_SQL_CREATE_TABLE); } break; - case 112: /* create_table_args ::= LP columnlist RP TAGS LP columnlist RP */ + case 115: /* create_table_args ::= LP columnlist RP TAGS LP columnlist RP */ { - yymsp[-6].minor.yy374 = tSetCreateSQLElems(yymsp[-5].minor.yy449, yymsp[-1].minor.yy449, NULL, NULL, NULL, TSQL_CREATE_STABLE); - setSQLInfo(pInfo, yymsp[-6].minor.yy374, NULL, TSDB_SQL_CREATE_TABLE); + yymsp[-6].minor.yy470 = tSetCreateSQLElems(yymsp[-5].minor.yy523, yymsp[-1].minor.yy523, NULL, NULL, NULL, TSQL_CREATE_STABLE); + setSQLInfo(pInfo, yymsp[-6].minor.yy470, NULL, TSDB_SQL_CREATE_TABLE); } break; - case 113: /* create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP */ + case 116: /* create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP */ { yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n; - yymsp[-6].minor.yy374 = tSetCreateSQLElems(NULL, NULL, &yymsp[-5].minor.yy0, yymsp[-1].minor.yy494, NULL, TSQL_CREATE_TABLE_FROM_STABLE); - setSQLInfo(pInfo, yymsp[-6].minor.yy374, NULL, TSDB_SQL_CREATE_TABLE); + yymsp[-6].minor.yy470 = tSetCreateSQLElems(NULL, NULL, &yymsp[-5].minor.yy0, yymsp[-1].minor.yy498, NULL, TSQL_CREATE_TABLE_FROM_STABLE); + setSQLInfo(pInfo, yymsp[-6].minor.yy470, NULL, TSDB_SQL_CREATE_TABLE); } break; - case 114: /* create_table_args ::= AS select */ + case 117: /* create_table_args ::= AS select */ { - yymsp[-1].minor.yy374 = tSetCreateSQLElems(NULL, NULL, NULL, NULL, yymsp[0].minor.yy150, TSQL_CREATE_STREAM); - setSQLInfo(pInfo, yymsp[-1].minor.yy374, NULL, TSDB_SQL_CREATE_TABLE); + yymsp[-1].minor.yy470 = tSetCreateSQLElems(NULL, NULL, NULL, NULL, yymsp[0].minor.yy414, TSQL_CREATE_STREAM); + setSQLInfo(pInfo, yymsp[-1].minor.yy470, NULL, TSDB_SQL_CREATE_TABLE); } break; - case 115: /* columnlist ::= columnlist COMMA column */ -{yylhsminor.yy449 = tFieldListAppend(yymsp[-2].minor.yy449, &yymsp[0].minor.yy181); } - yymsp[-2].minor.yy449 = yylhsminor.yy449; + case 118: /* columnlist ::= columnlist COMMA column */ +{yylhsminor.yy523 = tFieldListAppend(yymsp[-2].minor.yy523, &yymsp[0].minor.yy223); } + yymsp[-2].minor.yy523 = yylhsminor.yy523; break; - case 116: /* columnlist ::= column */ -{yylhsminor.yy449 = tFieldListAppend(NULL, &yymsp[0].minor.yy181);} - yymsp[0].minor.yy449 = yylhsminor.yy449; + case 119: /* columnlist ::= column */ +{yylhsminor.yy523 = tFieldListAppend(NULL, &yymsp[0].minor.yy223);} + yymsp[0].minor.yy523 = yylhsminor.yy523; break; - case 117: /* column ::= ids typename */ + case 120: /* column ::= ids typename */ { - tSQLSetColumnInfo(&yylhsminor.yy181, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy181); + tSQLSetColumnInfo(&yylhsminor.yy223, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy223); } - yymsp[-1].minor.yy181 = yylhsminor.yy181; + yymsp[-1].minor.yy223 = yylhsminor.yy223; break; - case 118: /* tagitemlist ::= tagitemlist COMMA tagitem */ -{ yylhsminor.yy494 = tVariantListAppend(yymsp[-2].minor.yy494, &yymsp[0].minor.yy312, -1); } - yymsp[-2].minor.yy494 = yylhsminor.yy494; + case 121: /* tagitemlist ::= tagitemlist COMMA tagitem */ +{ yylhsminor.yy498 = tVariantListAppend(yymsp[-2].minor.yy498, &yymsp[0].minor.yy134, -1); } + yymsp[-2].minor.yy498 = yylhsminor.yy498; break; - case 119: /* tagitemlist ::= tagitem */ -{ yylhsminor.yy494 = tVariantListAppend(NULL, &yymsp[0].minor.yy312, -1); } - yymsp[0].minor.yy494 = yylhsminor.yy494; + case 122: /* tagitemlist ::= tagitem */ +{ yylhsminor.yy498 = tVariantListAppend(NULL, &yymsp[0].minor.yy134, -1); } + yymsp[0].minor.yy498 = yylhsminor.yy498; break; - case 120: /* tagitem ::= INTEGER */ - case 121: /* tagitem ::= FLOAT */ yytestcase(yyruleno==121); - case 122: /* tagitem ::= STRING */ yytestcase(yyruleno==122); - case 123: /* tagitem ::= BOOL */ yytestcase(yyruleno==123); -{toTSDBType(yymsp[0].minor.yy0.type); tVariantCreate(&yylhsminor.yy312, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy312 = yylhsminor.yy312; + case 123: /* tagitem ::= INTEGER */ + case 124: /* tagitem ::= FLOAT */ yytestcase(yyruleno==124); + case 125: /* tagitem ::= STRING */ yytestcase(yyruleno==125); + case 126: /* tagitem ::= BOOL */ yytestcase(yyruleno==126); +{toTSDBType(yymsp[0].minor.yy0.type); tVariantCreate(&yylhsminor.yy134, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy134 = yylhsminor.yy134; break; - case 124: /* tagitem ::= NULL */ -{ yymsp[0].minor.yy0.type = 0; tVariantCreate(&yylhsminor.yy312, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy312 = yylhsminor.yy312; + case 127: /* tagitem ::= NULL */ +{ yymsp[0].minor.yy0.type = 0; tVariantCreate(&yylhsminor.yy134, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy134 = yylhsminor.yy134; break; - case 125: /* tagitem ::= MINUS INTEGER */ - case 126: /* tagitem ::= MINUS FLOAT */ yytestcase(yyruleno==126); - case 127: /* tagitem ::= PLUS INTEGER */ yytestcase(yyruleno==127); - case 128: /* tagitem ::= PLUS FLOAT */ yytestcase(yyruleno==128); + case 128: /* tagitem ::= MINUS INTEGER */ + case 129: /* tagitem ::= MINUS FLOAT */ yytestcase(yyruleno==129); + case 130: /* tagitem ::= PLUS INTEGER */ yytestcase(yyruleno==130); + case 131: /* tagitem ::= PLUS FLOAT */ yytestcase(yyruleno==131); { yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = yymsp[0].minor.yy0.type; toTSDBType(yymsp[-1].minor.yy0.type); - tVariantCreate(&yylhsminor.yy312, &yymsp[-1].minor.yy0); + tVariantCreate(&yylhsminor.yy134, &yymsp[-1].minor.yy0); } - yymsp[-1].minor.yy312 = yylhsminor.yy312; + yymsp[-1].minor.yy134 = yylhsminor.yy134; break; - case 129: /* select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ + case 132: /* select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */ { - yylhsminor.yy150 = tSetQuerySQLElems(&yymsp[-11].minor.yy0, yymsp[-10].minor.yy224, yymsp[-9].minor.yy494, yymsp[-8].minor.yy66, yymsp[-4].minor.yy494, yymsp[-3].minor.yy494, &yymsp[-7].minor.yy0, &yymsp[-5].minor.yy0, yymsp[-6].minor.yy494, &yymsp[0].minor.yy188, &yymsp[-1].minor.yy188); + yylhsminor.yy414 = tSetQuerySQLElems(&yymsp[-11].minor.yy0, yymsp[-10].minor.yy290, yymsp[-9].minor.yy498, yymsp[-8].minor.yy64, yymsp[-4].minor.yy498, yymsp[-3].minor.yy498, &yymsp[-7].minor.yy0, &yymsp[-5].minor.yy0, yymsp[-6].minor.yy498, &yymsp[0].minor.yy216, &yymsp[-1].minor.yy216); } - yymsp[-11].minor.yy150 = yylhsminor.yy150; + yymsp[-11].minor.yy414 = yylhsminor.yy414; break; - case 130: /* union ::= select */ -{ yylhsminor.yy25 = setSubclause(NULL, yymsp[0].minor.yy150); } - yymsp[0].minor.yy25 = yylhsminor.yy25; + case 133: /* union ::= select */ +{ yylhsminor.yy231 = setSubclause(NULL, yymsp[0].minor.yy414); } + yymsp[0].minor.yy231 = yylhsminor.yy231; break; - case 131: /* union ::= LP union RP */ -{ yymsp[-2].minor.yy25 = yymsp[-1].minor.yy25; } + case 134: /* union ::= LP union RP */ +{ yymsp[-2].minor.yy231 = yymsp[-1].minor.yy231; } break; - case 132: /* union ::= union UNION ALL select */ -{ yylhsminor.yy25 = appendSelectClause(yymsp[-3].minor.yy25, yymsp[0].minor.yy150); } - yymsp[-3].minor.yy25 = yylhsminor.yy25; + case 135: /* union ::= union UNION ALL select */ +{ yylhsminor.yy231 = appendSelectClause(yymsp[-3].minor.yy231, yymsp[0].minor.yy414); } + yymsp[-3].minor.yy231 = yylhsminor.yy231; break; - case 133: /* union ::= union UNION ALL LP select RP */ -{ yylhsminor.yy25 = appendSelectClause(yymsp[-5].minor.yy25, yymsp[-1].minor.yy150); } - yymsp[-5].minor.yy25 = yylhsminor.yy25; + case 136: /* union ::= union UNION ALL LP select RP */ +{ yylhsminor.yy231 = appendSelectClause(yymsp[-5].minor.yy231, yymsp[-1].minor.yy414); } + yymsp[-5].minor.yy231 = yylhsminor.yy231; break; - case 134: /* cmd ::= union */ -{ setSQLInfo(pInfo, yymsp[0].minor.yy25, NULL, TSDB_SQL_SELECT); } + case 137: /* cmd ::= union */ +{ setSQLInfo(pInfo, yymsp[0].minor.yy231, NULL, TSDB_SQL_SELECT); } break; - case 135: /* select ::= SELECT selcollist */ + case 138: /* select ::= SELECT selcollist */ { - yylhsminor.yy150 = tSetQuerySQLElems(&yymsp[-1].minor.yy0, yymsp[0].minor.yy224, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + yylhsminor.yy414 = tSetQuerySQLElems(&yymsp[-1].minor.yy0, yymsp[0].minor.yy290, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); } - yymsp[-1].minor.yy150 = yylhsminor.yy150; + yymsp[-1].minor.yy414 = yylhsminor.yy414; break; - case 136: /* sclp ::= selcollist COMMA */ -{yylhsminor.yy224 = yymsp[-1].minor.yy224;} - yymsp[-1].minor.yy224 = yylhsminor.yy224; + case 139: /* sclp ::= selcollist COMMA */ +{yylhsminor.yy290 = yymsp[-1].minor.yy290;} + yymsp[-1].minor.yy290 = yylhsminor.yy290; break; - case 137: /* sclp ::= */ -{yymsp[1].minor.yy224 = 0;} + case 140: /* sclp ::= */ +{yymsp[1].minor.yy290 = 0;} break; - case 138: /* selcollist ::= sclp expr as */ + case 141: /* selcollist ::= sclp expr as */ { - yylhsminor.yy224 = tSQLExprListAppend(yymsp[-2].minor.yy224, yymsp[-1].minor.yy66, yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0); + yylhsminor.yy290 = tSQLExprListAppend(yymsp[-2].minor.yy290, yymsp[-1].minor.yy64, yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0); } - yymsp[-2].minor.yy224 = yylhsminor.yy224; + yymsp[-2].minor.yy290 = yylhsminor.yy290; break; - case 139: /* selcollist ::= sclp STAR */ + case 142: /* selcollist ::= sclp STAR */ { tSQLExpr *pNode = tSQLExprIdValueCreate(NULL, TK_ALL); - yylhsminor.yy224 = tSQLExprListAppend(yymsp[-1].minor.yy224, pNode, 0); + yylhsminor.yy290 = tSQLExprListAppend(yymsp[-1].minor.yy290, pNode, 0); } - yymsp[-1].minor.yy224 = yylhsminor.yy224; + yymsp[-1].minor.yy290 = yylhsminor.yy290; break; - case 140: /* as ::= AS ids */ + case 143: /* as ::= AS ids */ { yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; } break; - case 141: /* as ::= ids */ + case 144: /* as ::= ids */ { yylhsminor.yy0 = yymsp[0].minor.yy0; } yymsp[0].minor.yy0 = yylhsminor.yy0; break; - case 142: /* as ::= */ + case 145: /* as ::= */ { yymsp[1].minor.yy0.n = 0; } break; - case 143: /* from ::= FROM tablelist */ -{yymsp[-1].minor.yy494 = yymsp[0].minor.yy494;} + case 146: /* from ::= FROM tablelist */ +{yymsp[-1].minor.yy498 = yymsp[0].minor.yy498;} break; - case 144: /* tablelist ::= ids cpxName */ -{ toTSDBType(yymsp[-1].minor.yy0.type); yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yylhsminor.yy494 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1);} - yymsp[-1].minor.yy494 = yylhsminor.yy494; + case 147: /* tablelist ::= ids cpxName */ +{ toTSDBType(yymsp[-1].minor.yy0.type); yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yylhsminor.yy498 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1);} + yymsp[-1].minor.yy498 = yylhsminor.yy498; break; - case 145: /* tablelist ::= tablelist COMMA ids cpxName */ -{ toTSDBType(yymsp[-1].minor.yy0.type); yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yylhsminor.yy494 = tVariantListAppendToken(yymsp[-3].minor.yy494, &yymsp[-1].minor.yy0, -1); } - yymsp[-3].minor.yy494 = yylhsminor.yy494; + case 148: /* tablelist ::= tablelist COMMA ids cpxName */ +{ toTSDBType(yymsp[-1].minor.yy0.type); yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yylhsminor.yy498 = tVariantListAppendToken(yymsp[-3].minor.yy498, &yymsp[-1].minor.yy0, -1); } + yymsp[-3].minor.yy498 = yylhsminor.yy498; break; - case 146: /* tmvar ::= VARIABLE */ + case 149: /* tmvar ::= VARIABLE */ {yylhsminor.yy0 = yymsp[0].minor.yy0;} yymsp[0].minor.yy0 = yylhsminor.yy0; break; - case 147: /* interval_opt ::= INTERVAL LP tmvar RP */ - case 152: /* sliding_opt ::= SLIDING LP tmvar RP */ yytestcase(yyruleno==152); + case 150: /* interval_opt ::= INTERVAL LP tmvar RP */ + case 155: /* sliding_opt ::= SLIDING LP tmvar RP */ yytestcase(yyruleno==155); {yymsp[-3].minor.yy0 = yymsp[-1].minor.yy0; } break; - case 148: /* interval_opt ::= */ - case 153: /* sliding_opt ::= */ yytestcase(yyruleno==153); + case 151: /* interval_opt ::= */ + case 156: /* sliding_opt ::= */ yytestcase(yyruleno==156); {yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = NULL; yymsp[1].minor.yy0.type = 0; } break; - case 149: /* fill_opt ::= */ -{yymsp[1].minor.yy494 = 0; } + case 152: /* fill_opt ::= */ +{yymsp[1].minor.yy498 = 0; } break; - case 150: /* fill_opt ::= FILL LP ID COMMA tagitemlist RP */ + case 153: /* fill_opt ::= FILL LP ID COMMA tagitemlist RP */ { tVariant A = {0}; toTSDBType(yymsp[-3].minor.yy0.type); tVariantCreate(&A, &yymsp[-3].minor.yy0); - tVariantListInsert(yymsp[-1].minor.yy494, &A, -1, 0); - yymsp[-5].minor.yy494 = yymsp[-1].minor.yy494; + tVariantListInsert(yymsp[-1].minor.yy498, &A, -1, 0); + yymsp[-5].minor.yy498 = yymsp[-1].minor.yy498; } break; - case 151: /* fill_opt ::= FILL LP ID RP */ + case 154: /* fill_opt ::= FILL LP ID RP */ { toTSDBType(yymsp[-1].minor.yy0.type); - yymsp[-3].minor.yy494 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1); + yymsp[-3].minor.yy498 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1); } break; - case 154: /* orderby_opt ::= */ - case 162: /* groupby_opt ::= */ yytestcase(yyruleno==162); -{yymsp[1].minor.yy494 = 0;} + case 157: /* orderby_opt ::= */ + case 165: /* groupby_opt ::= */ yytestcase(yyruleno==165); +{yymsp[1].minor.yy498 = 0;} break; - case 155: /* orderby_opt ::= ORDER BY sortlist */ - case 163: /* groupby_opt ::= GROUP BY grouplist */ yytestcase(yyruleno==163); -{yymsp[-2].minor.yy494 = yymsp[0].minor.yy494;} + case 158: /* orderby_opt ::= ORDER BY sortlist */ + case 166: /* groupby_opt ::= GROUP BY grouplist */ yytestcase(yyruleno==166); +{yymsp[-2].minor.yy498 = yymsp[0].minor.yy498;} break; - case 156: /* sortlist ::= sortlist COMMA item sortorder */ + case 159: /* sortlist ::= sortlist COMMA item sortorder */ { - yylhsminor.yy494 = tVariantListAppend(yymsp[-3].minor.yy494, &yymsp[-1].minor.yy312, yymsp[0].minor.yy82); + yylhsminor.yy498 = tVariantListAppend(yymsp[-3].minor.yy498, &yymsp[-1].minor.yy134, yymsp[0].minor.yy46); } - yymsp[-3].minor.yy494 = yylhsminor.yy494; + yymsp[-3].minor.yy498 = yylhsminor.yy498; break; - case 157: /* sortlist ::= item sortorder */ + case 160: /* sortlist ::= item sortorder */ { - yylhsminor.yy494 = tVariantListAppend(NULL, &yymsp[-1].minor.yy312, yymsp[0].minor.yy82); + yylhsminor.yy498 = tVariantListAppend(NULL, &yymsp[-1].minor.yy134, yymsp[0].minor.yy46); } - yymsp[-1].minor.yy494 = yylhsminor.yy494; + yymsp[-1].minor.yy498 = yylhsminor.yy498; break; - case 158: /* item ::= ids cpxName */ + case 161: /* item ::= ids cpxName */ { toTSDBType(yymsp[-1].minor.yy0.type); yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; - tVariantCreate(&yylhsminor.yy312, &yymsp[-1].minor.yy0); + tVariantCreate(&yylhsminor.yy134, &yymsp[-1].minor.yy0); } - yymsp[-1].minor.yy312 = yylhsminor.yy312; + yymsp[-1].minor.yy134 = yylhsminor.yy134; break; - case 159: /* sortorder ::= ASC */ -{yymsp[0].minor.yy82 = TSDB_ORDER_ASC; } + case 162: /* sortorder ::= ASC */ +{yymsp[0].minor.yy46 = TSDB_ORDER_ASC; } break; - case 160: /* sortorder ::= DESC */ -{yymsp[0].minor.yy82 = TSDB_ORDER_DESC;} + case 163: /* sortorder ::= DESC */ +{yymsp[0].minor.yy46 = TSDB_ORDER_DESC;} break; - case 161: /* sortorder ::= */ -{yymsp[1].minor.yy82 = TSDB_ORDER_ASC;} + case 164: /* sortorder ::= */ +{yymsp[1].minor.yy46 = TSDB_ORDER_ASC;} break; - case 164: /* grouplist ::= grouplist COMMA item */ + case 167: /* grouplist ::= grouplist COMMA item */ { - yylhsminor.yy494 = tVariantListAppend(yymsp[-2].minor.yy494, &yymsp[0].minor.yy312, -1); + yylhsminor.yy498 = tVariantListAppend(yymsp[-2].minor.yy498, &yymsp[0].minor.yy134, -1); } - yymsp[-2].minor.yy494 = yylhsminor.yy494; + yymsp[-2].minor.yy498 = yylhsminor.yy498; break; - case 165: /* grouplist ::= item */ + case 168: /* grouplist ::= item */ { - yylhsminor.yy494 = tVariantListAppend(NULL, &yymsp[0].minor.yy312, -1); + yylhsminor.yy498 = tVariantListAppend(NULL, &yymsp[0].minor.yy134, -1); } - yymsp[0].minor.yy494 = yylhsminor.yy494; + yymsp[0].minor.yy498 = yylhsminor.yy498; break; - case 166: /* having_opt ::= */ - case 176: /* where_opt ::= */ yytestcase(yyruleno==176); - case 212: /* expritem ::= */ yytestcase(yyruleno==212); -{yymsp[1].minor.yy66 = 0;} + case 169: /* having_opt ::= */ + case 179: /* where_opt ::= */ yytestcase(yyruleno==179); + case 215: /* expritem ::= */ yytestcase(yyruleno==215); +{yymsp[1].minor.yy64 = 0;} break; - case 167: /* having_opt ::= HAVING expr */ - case 177: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==177); -{yymsp[-1].minor.yy66 = yymsp[0].minor.yy66;} + case 170: /* having_opt ::= HAVING expr */ + case 180: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==180); +{yymsp[-1].minor.yy64 = yymsp[0].minor.yy64;} break; - case 168: /* limit_opt ::= */ - case 172: /* slimit_opt ::= */ yytestcase(yyruleno==172); -{yymsp[1].minor.yy188.limit = -1; yymsp[1].minor.yy188.offset = 0;} + case 171: /* limit_opt ::= */ + case 175: /* slimit_opt ::= */ yytestcase(yyruleno==175); +{yymsp[1].minor.yy216.limit = -1; yymsp[1].minor.yy216.offset = 0;} break; - case 169: /* limit_opt ::= LIMIT signed */ - case 173: /* slimit_opt ::= SLIMIT signed */ yytestcase(yyruleno==173); -{yymsp[-1].minor.yy188.limit = yymsp[0].minor.yy271; yymsp[-1].minor.yy188.offset = 0;} + case 172: /* limit_opt ::= LIMIT signed */ + case 176: /* slimit_opt ::= SLIMIT signed */ yytestcase(yyruleno==176); +{yymsp[-1].minor.yy216.limit = yymsp[0].minor.yy207; yymsp[-1].minor.yy216.offset = 0;} break; - case 170: /* limit_opt ::= LIMIT signed OFFSET signed */ - case 174: /* slimit_opt ::= SLIMIT signed SOFFSET signed */ yytestcase(yyruleno==174); -{yymsp[-3].minor.yy188.limit = yymsp[-2].minor.yy271; yymsp[-3].minor.yy188.offset = yymsp[0].minor.yy271;} + case 173: /* limit_opt ::= LIMIT signed OFFSET signed */ + case 177: /* slimit_opt ::= SLIMIT signed SOFFSET signed */ yytestcase(yyruleno==177); +{yymsp[-3].minor.yy216.limit = yymsp[-2].minor.yy207; yymsp[-3].minor.yy216.offset = yymsp[0].minor.yy207;} break; - case 171: /* limit_opt ::= LIMIT signed COMMA signed */ - case 175: /* slimit_opt ::= SLIMIT signed COMMA signed */ yytestcase(yyruleno==175); -{yymsp[-3].minor.yy188.limit = yymsp[0].minor.yy271; yymsp[-3].minor.yy188.offset = yymsp[-2].minor.yy271;} + case 174: /* limit_opt ::= LIMIT signed COMMA signed */ + case 178: /* slimit_opt ::= SLIMIT signed COMMA signed */ yytestcase(yyruleno==178); +{yymsp[-3].minor.yy216.limit = yymsp[0].minor.yy207; yymsp[-3].minor.yy216.offset = yymsp[-2].minor.yy207;} break; - case 178: /* expr ::= LP expr RP */ -{yymsp[-2].minor.yy66 = yymsp[-1].minor.yy66; } + case 181: /* expr ::= LP expr RP */ +{yymsp[-2].minor.yy64 = yymsp[-1].minor.yy64; } break; - case 179: /* expr ::= ID */ -{yylhsminor.yy66 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_ID);} - yymsp[0].minor.yy66 = yylhsminor.yy66; + case 182: /* expr ::= ID */ +{yylhsminor.yy64 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_ID);} + yymsp[0].minor.yy64 = yylhsminor.yy64; break; - case 180: /* expr ::= ID DOT ID */ -{yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy66 = tSQLExprIdValueCreate(&yymsp[-2].minor.yy0, TK_ID);} - yymsp[-2].minor.yy66 = yylhsminor.yy66; + case 183: /* expr ::= ID DOT ID */ +{yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy64 = tSQLExprIdValueCreate(&yymsp[-2].minor.yy0, TK_ID);} + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; - case 181: /* expr ::= ID DOT STAR */ -{yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy66 = tSQLExprIdValueCreate(&yymsp[-2].minor.yy0, TK_ALL);} - yymsp[-2].minor.yy66 = yylhsminor.yy66; + case 184: /* expr ::= ID DOT STAR */ +{yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy64 = tSQLExprIdValueCreate(&yymsp[-2].minor.yy0, TK_ALL);} + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; - case 182: /* expr ::= INTEGER */ -{yylhsminor.yy66 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_INTEGER);} - yymsp[0].minor.yy66 = yylhsminor.yy66; + case 185: /* expr ::= INTEGER */ +{yylhsminor.yy64 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_INTEGER);} + yymsp[0].minor.yy64 = yylhsminor.yy64; break; - case 183: /* expr ::= MINUS INTEGER */ - case 184: /* expr ::= PLUS INTEGER */ yytestcase(yyruleno==184); -{yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy66 = tSQLExprIdValueCreate(&yymsp[-1].minor.yy0, TK_INTEGER);} - yymsp[-1].minor.yy66 = yylhsminor.yy66; + case 186: /* expr ::= MINUS INTEGER */ + case 187: /* expr ::= PLUS INTEGER */ yytestcase(yyruleno==187); +{yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy64 = tSQLExprIdValueCreate(&yymsp[-1].minor.yy0, TK_INTEGER);} + yymsp[-1].minor.yy64 = yylhsminor.yy64; break; - case 185: /* expr ::= FLOAT */ -{yylhsminor.yy66 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_FLOAT);} - yymsp[0].minor.yy66 = yylhsminor.yy66; + case 188: /* expr ::= FLOAT */ +{yylhsminor.yy64 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_FLOAT);} + yymsp[0].minor.yy64 = yylhsminor.yy64; break; - case 186: /* expr ::= MINUS FLOAT */ - case 187: /* expr ::= PLUS FLOAT */ yytestcase(yyruleno==187); -{yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_FLOAT; yylhsminor.yy66 = tSQLExprIdValueCreate(&yymsp[-1].minor.yy0, TK_FLOAT);} - yymsp[-1].minor.yy66 = yylhsminor.yy66; + case 189: /* expr ::= MINUS FLOAT */ + case 190: /* expr ::= PLUS FLOAT */ yytestcase(yyruleno==190); +{yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_FLOAT; yylhsminor.yy64 = tSQLExprIdValueCreate(&yymsp[-1].minor.yy0, TK_FLOAT);} + yymsp[-1].minor.yy64 = yylhsminor.yy64; break; - case 188: /* expr ::= STRING */ -{yylhsminor.yy66 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_STRING);} - yymsp[0].minor.yy66 = yylhsminor.yy66; + case 191: /* expr ::= STRING */ +{yylhsminor.yy64 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_STRING);} + yymsp[0].minor.yy64 = yylhsminor.yy64; break; - case 189: /* expr ::= NOW */ -{yylhsminor.yy66 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_NOW); } - yymsp[0].minor.yy66 = yylhsminor.yy66; + case 192: /* expr ::= NOW */ +{yylhsminor.yy64 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_NOW); } + yymsp[0].minor.yy64 = yylhsminor.yy64; break; - case 190: /* expr ::= VARIABLE */ -{yylhsminor.yy66 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_VARIABLE);} - yymsp[0].minor.yy66 = yylhsminor.yy66; + case 193: /* expr ::= VARIABLE */ +{yylhsminor.yy64 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_VARIABLE);} + yymsp[0].minor.yy64 = yylhsminor.yy64; break; - case 191: /* expr ::= BOOL */ -{yylhsminor.yy66 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_BOOL);} - yymsp[0].minor.yy66 = yylhsminor.yy66; + case 194: /* expr ::= BOOL */ +{yylhsminor.yy64 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_BOOL);} + yymsp[0].minor.yy64 = yylhsminor.yy64; break; - case 192: /* expr ::= ID LP exprlist RP */ + case 195: /* expr ::= ID LP exprlist RP */ { - yylhsminor.yy66 = tSQLExprCreateFunction(yymsp[-1].minor.yy224, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); + yylhsminor.yy64 = tSQLExprCreateFunction(yymsp[-1].minor.yy290, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); } - yymsp[-3].minor.yy66 = yylhsminor.yy66; + yymsp[-3].minor.yy64 = yylhsminor.yy64; break; - case 193: /* expr ::= ID LP STAR RP */ + case 196: /* expr ::= ID LP STAR RP */ { - yylhsminor.yy66 = tSQLExprCreateFunction(NULL, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); + yylhsminor.yy64 = tSQLExprCreateFunction(NULL, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); } - yymsp[-3].minor.yy66 = yylhsminor.yy66; + yymsp[-3].minor.yy64 = yylhsminor.yy64; break; - case 194: /* expr ::= expr AND expr */ -{yylhsminor.yy66 = tSQLExprCreate(yymsp[-2].minor.yy66, yymsp[0].minor.yy66, TK_AND);} - yymsp[-2].minor.yy66 = yylhsminor.yy66; + case 197: /* expr ::= expr AND expr */ +{yylhsminor.yy64 = tSQLExprCreate(yymsp[-2].minor.yy64, yymsp[0].minor.yy64, TK_AND);} + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; - case 195: /* expr ::= expr OR expr */ -{yylhsminor.yy66 = tSQLExprCreate(yymsp[-2].minor.yy66, yymsp[0].minor.yy66, TK_OR); } - yymsp[-2].minor.yy66 = yylhsminor.yy66; + case 198: /* expr ::= expr OR expr */ +{yylhsminor.yy64 = tSQLExprCreate(yymsp[-2].minor.yy64, yymsp[0].minor.yy64, TK_OR); } + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; - case 196: /* expr ::= expr LT expr */ -{yylhsminor.yy66 = tSQLExprCreate(yymsp[-2].minor.yy66, yymsp[0].minor.yy66, TK_LT);} - yymsp[-2].minor.yy66 = yylhsminor.yy66; + case 199: /* expr ::= expr LT expr */ +{yylhsminor.yy64 = tSQLExprCreate(yymsp[-2].minor.yy64, yymsp[0].minor.yy64, TK_LT);} + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; - case 197: /* expr ::= expr GT expr */ -{yylhsminor.yy66 = tSQLExprCreate(yymsp[-2].minor.yy66, yymsp[0].minor.yy66, TK_GT);} - yymsp[-2].minor.yy66 = yylhsminor.yy66; + case 200: /* expr ::= expr GT expr */ +{yylhsminor.yy64 = tSQLExprCreate(yymsp[-2].minor.yy64, yymsp[0].minor.yy64, TK_GT);} + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; - case 198: /* expr ::= expr LE expr */ -{yylhsminor.yy66 = tSQLExprCreate(yymsp[-2].minor.yy66, yymsp[0].minor.yy66, TK_LE);} - yymsp[-2].minor.yy66 = yylhsminor.yy66; + case 201: /* expr ::= expr LE expr */ +{yylhsminor.yy64 = tSQLExprCreate(yymsp[-2].minor.yy64, yymsp[0].minor.yy64, TK_LE);} + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; - case 199: /* expr ::= expr GE expr */ -{yylhsminor.yy66 = tSQLExprCreate(yymsp[-2].minor.yy66, yymsp[0].minor.yy66, TK_GE);} - yymsp[-2].minor.yy66 = yylhsminor.yy66; + case 202: /* expr ::= expr GE expr */ +{yylhsminor.yy64 = tSQLExprCreate(yymsp[-2].minor.yy64, yymsp[0].minor.yy64, TK_GE);} + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; - case 200: /* expr ::= expr NE expr */ -{yylhsminor.yy66 = tSQLExprCreate(yymsp[-2].minor.yy66, yymsp[0].minor.yy66, TK_NE);} - yymsp[-2].minor.yy66 = yylhsminor.yy66; + case 203: /* expr ::= expr NE expr */ +{yylhsminor.yy64 = tSQLExprCreate(yymsp[-2].minor.yy64, yymsp[0].minor.yy64, TK_NE);} + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; - case 201: /* expr ::= expr EQ expr */ -{yylhsminor.yy66 = tSQLExprCreate(yymsp[-2].minor.yy66, yymsp[0].minor.yy66, TK_EQ);} - yymsp[-2].minor.yy66 = yylhsminor.yy66; + case 204: /* expr ::= expr EQ expr */ +{yylhsminor.yy64 = tSQLExprCreate(yymsp[-2].minor.yy64, yymsp[0].minor.yy64, TK_EQ);} + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; - case 202: /* expr ::= expr PLUS expr */ -{yylhsminor.yy66 = tSQLExprCreate(yymsp[-2].minor.yy66, yymsp[0].minor.yy66, TK_PLUS); } - yymsp[-2].minor.yy66 = yylhsminor.yy66; + case 205: /* expr ::= expr PLUS expr */ +{yylhsminor.yy64 = tSQLExprCreate(yymsp[-2].minor.yy64, yymsp[0].minor.yy64, TK_PLUS); } + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; - case 203: /* expr ::= expr MINUS expr */ -{yylhsminor.yy66 = tSQLExprCreate(yymsp[-2].minor.yy66, yymsp[0].minor.yy66, TK_MINUS); } - yymsp[-2].minor.yy66 = yylhsminor.yy66; + case 206: /* expr ::= expr MINUS expr */ +{yylhsminor.yy64 = tSQLExprCreate(yymsp[-2].minor.yy64, yymsp[0].minor.yy64, TK_MINUS); } + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; - case 204: /* expr ::= expr STAR expr */ -{yylhsminor.yy66 = tSQLExprCreate(yymsp[-2].minor.yy66, yymsp[0].minor.yy66, TK_STAR); } - yymsp[-2].minor.yy66 = yylhsminor.yy66; + case 207: /* expr ::= expr STAR expr */ +{yylhsminor.yy64 = tSQLExprCreate(yymsp[-2].minor.yy64, yymsp[0].minor.yy64, TK_STAR); } + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; - case 205: /* expr ::= expr SLASH expr */ -{yylhsminor.yy66 = tSQLExprCreate(yymsp[-2].minor.yy66, yymsp[0].minor.yy66, TK_DIVIDE);} - yymsp[-2].minor.yy66 = yylhsminor.yy66; + case 208: /* expr ::= expr SLASH expr */ +{yylhsminor.yy64 = tSQLExprCreate(yymsp[-2].minor.yy64, yymsp[0].minor.yy64, TK_DIVIDE);} + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; - case 206: /* expr ::= expr REM expr */ -{yylhsminor.yy66 = tSQLExprCreate(yymsp[-2].minor.yy66, yymsp[0].minor.yy66, TK_REM); } - yymsp[-2].minor.yy66 = yylhsminor.yy66; + case 209: /* expr ::= expr REM expr */ +{yylhsminor.yy64 = tSQLExprCreate(yymsp[-2].minor.yy64, yymsp[0].minor.yy64, TK_REM); } + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; - case 207: /* expr ::= expr LIKE expr */ -{yylhsminor.yy66 = tSQLExprCreate(yymsp[-2].minor.yy66, yymsp[0].minor.yy66, TK_LIKE); } - yymsp[-2].minor.yy66 = yylhsminor.yy66; + case 210: /* expr ::= expr LIKE expr */ +{yylhsminor.yy64 = tSQLExprCreate(yymsp[-2].minor.yy64, yymsp[0].minor.yy64, TK_LIKE); } + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; - case 208: /* expr ::= expr IN LP exprlist RP */ -{yylhsminor.yy66 = tSQLExprCreate(yymsp[-4].minor.yy66, (tSQLExpr*)yymsp[-1].minor.yy224, TK_IN); } - yymsp[-4].minor.yy66 = yylhsminor.yy66; + case 211: /* expr ::= expr IN LP exprlist RP */ +{yylhsminor.yy64 = tSQLExprCreate(yymsp[-4].minor.yy64, (tSQLExpr*)yymsp[-1].minor.yy290, TK_IN); } + yymsp[-4].minor.yy64 = yylhsminor.yy64; break; - case 209: /* exprlist ::= exprlist COMMA expritem */ -{yylhsminor.yy224 = tSQLExprListAppend(yymsp[-2].minor.yy224,yymsp[0].minor.yy66,0);} - yymsp[-2].minor.yy224 = yylhsminor.yy224; + case 212: /* exprlist ::= exprlist COMMA expritem */ +{yylhsminor.yy290 = tSQLExprListAppend(yymsp[-2].minor.yy290,yymsp[0].minor.yy64,0);} + yymsp[-2].minor.yy290 = yylhsminor.yy290; break; - case 210: /* exprlist ::= expritem */ -{yylhsminor.yy224 = tSQLExprListAppend(0,yymsp[0].minor.yy66,0);} - yymsp[0].minor.yy224 = yylhsminor.yy224; + case 213: /* exprlist ::= expritem */ +{yylhsminor.yy290 = tSQLExprListAppend(0,yymsp[0].minor.yy64,0);} + yymsp[0].minor.yy290 = yylhsminor.yy290; break; - case 211: /* expritem ::= expr */ -{yylhsminor.yy66 = yymsp[0].minor.yy66;} - yymsp[0].minor.yy66 = yylhsminor.yy66; + case 214: /* expritem ::= expr */ +{yylhsminor.yy64 = yymsp[0].minor.yy64;} + yymsp[0].minor.yy64 = yylhsminor.yy64; break; - case 213: /* cmd ::= RESET QUERY CACHE */ + case 216: /* cmd ::= RESET QUERY CACHE */ { setDCLSQLElems(pInfo, TSDB_SQL_RESET_CACHE, 0);} break; - case 214: /* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ + case 217: /* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; - SAlterTableSQL* pAlterTable = tAlterTableSQLElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy449, NULL, TSDB_ALTER_TABLE_ADD_COLUMN); + SAlterTableSQL* pAlterTable = tAlterTableSQLElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy523, NULL, TSDB_ALTER_TABLE_ADD_COLUMN); setSQLInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 215: /* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ + case 218: /* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; @@ -2716,14 +2732,14 @@ static void yy_reduce( setSQLInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 216: /* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ + case 219: /* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; - SAlterTableSQL* pAlterTable = tAlterTableSQLElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy449, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN); + SAlterTableSQL* pAlterTable = tAlterTableSQLElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy523, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN); setSQLInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 217: /* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ + case 220: /* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */ { yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n; @@ -2734,7 +2750,7 @@ static void yy_reduce( setSQLInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 218: /* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ + case 221: /* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */ { yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n; @@ -2748,25 +2764,25 @@ static void yy_reduce( setSQLInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 219: /* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ + case 222: /* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */ { yymsp[-6].minor.yy0.n += yymsp[-5].minor.yy0.n; toTSDBType(yymsp[-2].minor.yy0.type); tVariantList* A = tVariantListAppendToken(NULL, &yymsp[-2].minor.yy0, -1); - A = tVariantListAppend(A, &yymsp[0].minor.yy312, -1); + A = tVariantListAppend(A, &yymsp[0].minor.yy134, -1); SAlterTableSQL* pAlterTable = tAlterTableSQLElems(&yymsp[-6].minor.yy0, NULL, A, TSDB_ALTER_TABLE_UPDATE_TAG_VAL); setSQLInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE); } break; - case 220: /* cmd ::= KILL CONNECTION INTEGER */ + case 223: /* cmd ::= KILL CONNECTION INTEGER */ {setKillSQL(pInfo, TSDB_SQL_KILL_CONNECTION, &yymsp[0].minor.yy0);} break; - case 221: /* cmd ::= KILL STREAM INTEGER COLON INTEGER */ + case 224: /* cmd ::= KILL STREAM INTEGER COLON INTEGER */ {yymsp[-2].minor.yy0.n += (yymsp[-1].minor.yy0.n + yymsp[0].minor.yy0.n); setKillSQL(pInfo, TSDB_SQL_KILL_STREAM, &yymsp[-2].minor.yy0);} break; - case 222: /* cmd ::= KILL QUERY INTEGER COLON INTEGER */ + case 225: /* cmd ::= KILL QUERY INTEGER COLON INTEGER */ {yymsp[-2].minor.yy0.n += (yymsp[-1].minor.yy0.n + yymsp[0].minor.yy0.n); setKillSQL(pInfo, TSDB_SQL_KILL_QUERY, &yymsp[-2].minor.yy0);} break; default: From 0073366f0051b790d1873e5ef9155adf14c8c31e Mon Sep 17 00:00:00 2001 From: Jeff Tao Date: Wed, 29 Jul 2020 13:46:09 +0000 Subject: [PATCH 22/24] make sure quorum is smaller than replica --- src/sync/src/syncMain.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/sync/src/syncMain.c b/src/sync/src/syncMain.c index cdbf5ab47d..5455529f62 100644 --- a/src/sync/src/syncMain.c +++ b/src/sync/src/syncMain.c @@ -145,6 +145,8 @@ void *syncStart(const SSyncInfo *pInfo) pNode->vgId = pInfo->vgId; pNode->replica = pCfg->replica; pNode->quorum = pCfg->quorum; + if (pNode->quorum > pNode->replica) pNode->quorum = pNode->replica; + for (int i = 0; i < pCfg->replica; ++i) { const SNodeInfo *pNodeInfo = pCfg->nodeInfo + i; pNode->peerInfo[i] = syncAddPeer(pNode, pNodeInfo); @@ -260,6 +262,7 @@ int32_t syncReconfig(void *param, const SSyncCfg *pNewCfg) pNode->replica = pNewCfg->replica; pNode->quorum = pNewCfg->quorum; + if (pNode->quorum > pNode->replica) pNode->quorum = pNode->replica; memcpy(pNode->peerInfo, newPeers, sizeof(SSyncPeer *) * pNewCfg->replica); for (i = pNewCfg->replica; i < TAOS_SYNC_MAX_REPLICA; ++i) From 46fcc3ffc95965af2fedd609beb2a1189e63da66 Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Wed, 29 Jul 2020 22:16:01 +0800 Subject: [PATCH 23/24] scripts --- tests/script/general/http/restful_full.sim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/script/general/http/restful_full.sim b/tests/script/general/http/restful_full.sim index 8545b8d2cd..cb493c1456 100644 --- a/tests/script/general/http/restful_full.sim +++ b/tests/script/general/http/restful_full.sim @@ -81,7 +81,7 @@ print =============== step2 - no db #11 system_content curl -H 'Authorization: Taosd /KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04' -d 'show databases' 127.0.0.1:6020/rest/sql print 11-> $system_content -if $system_content != @{"status":"succ","head":["name","created_time","ntables","vgroups","replica","days","keep1,keep2,keep(D)","cache(MB)","blocks","minrows","maxrows","wallevel","fsync","comp","precision","status"],"data":[],"rows":0}@ then +if $system_content != @{"status":"succ","head":["name","created_time","ntables","vgroups","replica","quorum","days","keep1,keep2,keep(D)","cache(MB)","blocks","minrows","maxrows","wallevel","fsync","comp","precision","status"],"data":[],"rows":0}@ then return -1 endi From ae7eed7f85f85f505c3c29add24813b84fcaf2f6 Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Wed, 29 Jul 2020 15:04:33 +0000 Subject: [PATCH 24/24] scripts --- tests/script/general/db/alter_option.sim | 8 ++++---- tests/script/general/db/basic.sim | 6 +++--- tests/script/general/parser/create_db.sim | 12 ++++++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/script/general/db/alter_option.sim b/tests/script/general/db/alter_option.sim index 46fc3a4ff7..12a49c59b5 100644 --- a/tests/script/general/db/alter_option.sim +++ b/tests/script/general/db/alter_option.sim @@ -24,16 +24,16 @@ endi if $data04 != 1 then return -1 endi -if $data05 != 10 then +if $data06 != 10 then return -1 endi -if $data06 != 20,20,20 then +if $data07 != 20,20,20 then return -1 endi -if $data07 != 2 then +if $data08 != 2 then return -1 endi -if $data08 != 4 then +if $data09 != 4 then return -1 endi diff --git a/tests/script/general/db/basic.sim b/tests/script/general/db/basic.sim index a7c4358aff..1c4939256b 100644 --- a/tests/script/general/db/basic.sim +++ b/tests/script/general/db/basic.sim @@ -32,10 +32,10 @@ endi if $data04 != 1 then return -1 endi -if $data05 != 20 then +if $data06 != 20 then return -1 endi -if $data07 != 16 then +if $data08 != 16 then return -1 endi @@ -72,7 +72,7 @@ endi if $data04 != 1 then return -1 endi -if $data05 != 15 then +if $data06 != 15 then return -1 endi diff --git a/tests/script/general/parser/create_db.sim b/tests/script/general/parser/create_db.sim index be8587f2ae..ed6e427fe7 100644 --- a/tests/script/general/parser/create_db.sim +++ b/tests/script/general/parser/create_db.sim @@ -122,18 +122,18 @@ endi if $data04 != $replica then return -1 endi -if $data05 != $days then +if $data06 != $days then return -1 endi -if $data06 != 365,365,365 then +if $data07 != 365,365,365 then return -1 endi -print data07 = $data07 -if $data07 != $cache then - print expect $cache, actual:$data07 +print data08 = $data07 +if $data08 != $cache then + print expect $cache, actual:$data08 return -1 endi -if $data08 != 4 then +if $data09 != 4 then return -1 endi