Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
e3f4c903
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
e3f4c903
编写于
3月 25, 2021
作者:
W
wu champion
提交者:
GitHub
3月 25, 2021
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' into feature/TD-1380
上级
5f27c38a
afd0869a
变更
37
隐藏空白更改
内联
并排
Showing
37 changed file
with
1618 addition
and
1202 deletion
+1618
-1202
CMakeLists.txt
CMakeLists.txt
+1
-0
Jenkinsfile
Jenkinsfile
+8
-2
README-CN.md
README-CN.md
+10
-4
README.md
README.md
+3
-0
cmake/define.inc
cmake/define.inc
+4
-0
cmake/input.inc
cmake/input.inc
+8
-0
documentation20/cn/11.administrator/docs.md
documentation20/cn/11.administrator/docs.md
+14
-6
src/client/inc/tsclient.h
src/client/inc/tsclient.h
+1
-1
src/client/src/tscAsync.c
src/client/src/tscAsync.c
+48
-2
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+11
-0
src/client/src/tscServer.c
src/client/src/tscServer.c
+19
-1
src/common/inc/tcmdtype.h
src/common/inc/tcmdtype.h
+6
-5
src/dnode/CMakeLists.txt
src/dnode/CMakeLists.txt
+4
-0
src/dnode/src/dnodeMain.c
src/dnode/src/dnodeMain.c
+9
-0
src/dnode/src/dnodeShell.c
src/dnode/src/dnodeShell.c
+1
-0
src/inc/module.h
src/inc/module.h
+30
-0
src/inc/taosmsg.h
src/inc/taosmsg.h
+2
-1
src/inc/ttokendef.h
src/inc/ttokendef.h
+51
-50
src/kit/taosdemo/insert-interlace.json
src/kit/taosdemo/insert-interlace.json
+1
-1
src/kit/taosdemo/insert.json
src/kit/taosdemo/insert.json
+1
-1
src/kit/taosdemo/taosdemo.c
src/kit/taosdemo/taosdemo.c
+201
-130
src/mnode/src/mnodeDb.c
src/mnode/src/mnodeDb.c
+6
-0
src/query/inc/sql.y
src/query/inc/sql.y
+3
-0
src/query/src/qSqlParser.c
src/query/src/qSqlParser.c
+1
-0
src/query/src/qTokenizer.c
src/query/src/qTokenizer.c
+1
-0
src/query/src/sql.c
src/query/src/sql.c
+960
-953
tests/examples/JDBC/taosdemo/src/main/resources/insert.json
tests/examples/JDBC/taosdemo/src/main/resources/insert.json
+1
-1
tests/pytest/cluster/clusterEnvSetup/buildClusterEnv.sh
tests/pytest/cluster/clusterEnvSetup/buildClusterEnv.sh
+20
-21
tests/pytest/cluster/clusterEnvSetup/insert.json
tests/pytest/cluster/clusterEnvSetup/insert.json
+1
-1
tests/pytest/fulltest.sh
tests/pytest/fulltest.sh
+13
-10
tests/pytest/query/bug3375.py
tests/pytest/query/bug3375.py
+61
-0
tests/pytest/query/query1970YearsAf.py
tests/pytest/query/query1970YearsAf.py
+6
-3
tests/pytest/tools/insert-interlace.json
tests/pytest/tools/insert-interlace.json
+2
-2
tests/pytest/tools/query.json
tests/pytest/tools/query.json
+22
-0
tests/pytest/tools/taosdemoTestInterlace.py
tests/pytest/tools/taosdemoTestInterlace.py
+1
-4
tests/pytest/tools/taosdemoTestQuery.py
tests/pytest/tools/taosdemoTestQuery.py
+78
-0
tests/test-all.sh
tests/test-all.sh
+9
-3
未找到文件。
CMakeLists.txt
浏览文件 @
e3f4c903
...
...
@@ -17,6 +17,7 @@ SET(TD_MQTT FALSE)
SET
(
TD_TSDB_PLUGINS FALSE
)
SET
(
TD_STORAGE FALSE
)
SET
(
TD_TOPIC FALSE
)
SET
(
TD_MODULE FALSE
)
SET
(
TD_COVER FALSE
)
SET
(
TD_MEM_CHECK FALSE
)
...
...
Jenkinsfile
浏览文件 @
e3f4c903
...
...
@@ -6,6 +6,7 @@ node {
}
def
skipstage
=
0
def
abortPreviousBuilds
()
{
def
currentJobName
=
env
.
JOB_NAME
def
currentBuildNumber
=
env
.
BUILD_NUMBER
.
toInteger
()
...
...
@@ -24,7 +25,7 @@ def abortPreviousBuilds() {
build
.
doKill
()
//doTerm(),doKill(),doTerm()
}
}
//abort previous build
//
abort previous build
abortPreviousBuilds
()
def
abort_previous
(){
def
buildNumber
=
env
.
BUILD_NUMBER
as
int
...
...
@@ -32,7 +33,8 @@ def abort_previous(){
milestone
(
buildNumber
)
}
def
pre_test
(){
sh
'''
sudo rmtaos || echo "taosd has not installed"
'''
...
...
@@ -79,6 +81,10 @@ pipeline {
changeRequest
()
}
steps
{
script
{
abort_previous
()
abortPreviousBuilds
()
}
sh
'''
cp -r ${WORKSPACE} ${WORKSPACE}.tes
cd ${WORKSPACE}.tes
...
...
README-CN.md
浏览文件 @
e3f4c903
...
...
@@ -258,10 +258,16 @@ TDengine 社区生态中也有一些非常友好的第三方连接器,可以
TDengine 的测试框架和所有测试例全部开源。
点击
[
这里
](
tests/How-To-Run-Test-And-How-To-Add-New-Test-Case.md
)
,了解如何运行测试例和添加新的测试例。
点击
[
这里
](
tests/How-To-Run-Test-And-How-To-Add-New-Test-Case.md
)
,了解如何运行测试例和添加新的测试例。
# 成为社区贡献者
点击
[
这里
](
https://www.taosdata.com/cn/contributor/
)
,了解如何成为 TDengine 的贡献者。
#加入技术交流群
TDengine官方社群「物联网大数据群」对外开放,欢迎您加入讨论。搜索微信号 "tdengine",加小T为好友,即可入群。
点击
[
这里
](
https://www.taosdata.com/cn/contributor/
)
,了解如何成为 TDengine 的贡献者。
# 加入技术交流群
TDengine 官方社群「物联网大数据群」对外开放,欢迎您加入讨论。搜索微信号 "tdengine",加小T为好友,即可入群。
# [谁在使用TDengine](https://github.com/taosdata/TDengine/issues/2432)
欢迎所有 TDengine 用户及贡献者在
[
这里
](
https://github.com/taosdata/TDengine/issues/2432
)
分享您在当前工作中开发/使用 TDengine 的故事。
README.md
浏览文件 @
e3f4c903
...
...
@@ -250,3 +250,6 @@ Please follow the [contribution guidelines](CONTRIBUTING.md) to contribute to th
Add WeChat “tdengine” to join the group,you can communicate with other users.
# [User List](https://github.com/taosdata/TDengine/issues/2432)
If you are using TDengine and feel it helps or you'd like to do some contributions, please add your company to
[
user list
](
https://github.com/taosdata/TDengine/issues/2432
)
and let us know your needs.
cmake/define.inc
浏览文件 @
e3f4c903
...
...
@@ -29,6 +29,10 @@ IF (TD_TOPIC)
ADD_DEFINITIONS
(
-
D_TOPIC
)
ENDIF
()
IF
(
TD_MODULE
)
ADD_DEFINITIONS
(
-
D_MODULE
)
ENDIF
()
IF
(
TD_GODLL
)
ADD_DEFINITIONS
(
-
D_TD_GO_DLL_
)
ENDIF
()
...
...
cmake/input.inc
浏览文件 @
e3f4c903
...
...
@@ -17,6 +17,14 @@ ELSEIF (${TOPIC} MATCHES "false")
MESSAGE
(
STATUS
"Build without topic plugins"
)
ENDIF
()
IF
(
$
{
TD_MODULE
}
MATCHES
"true"
)
SET
(
TD_MODULE
TRUE
)
MESSAGE
(
STATUS
"Build with module plugins"
)
ELSEIF
(
$
{
TOPIC
}
MATCHES
"false"
)
SET
(
TD_MODULE
FALSE
)
MESSAGE
(
STATUS
"Build without module plugins"
)
ENDIF
()
IF
(
$
{
COVER
}
MATCHES
"true"
)
SET
(
TD_COVER
TRUE
)
MESSAGE
(
STATUS
"Build with test coverage"
)
...
...
documentation20/cn/11.administrator/docs.md
浏览文件 @
e3f4c903
...
...
@@ -6,19 +6,27 @@
### 内存需求
每个 D
B
可以创建固定数目的 vgroup,默认与 CPU 核数相同,可通过 maxVgroupsPerDb 配置;vgroup 中的每个副本会是一个 vnode;每个 vnode 会占用固定大小的内存(大小与数据库的配置参数 blocks 和 cache 有关);每个 Table 会占用与标签总长度有关的内存;此外,系统会有一些固定的内存开销。因此,每个 DB 需要的系统内存可通过如下公式计算:
每个 D
atabase
可以创建固定数目的 vgroup,默认与 CPU 核数相同,可通过 maxVgroupsPerDb 配置;vgroup 中的每个副本会是一个 vnode;每个 vnode 会占用固定大小的内存(大小与数据库的配置参数 blocks 和 cache 有关);每个 Table 会占用与标签总长度有关的内存;此外,系统会有一些固定的内存开销。因此,每个 DB 需要的系统内存可通过如下公式计算:
```
Memory Size = maxVgroupsPerDb * (blocks * cache + 10MB) + numOfTables * (tagSizePerTable + 0.5KB)
Database
Memory Size = maxVgroupsPerDb * (blocks * cache + 10MB) + numOfTables * (tagSizePerTable + 0.5KB)
```
示例:假设是 4 核机器,cache 是缺省大小 16M, blocks 是缺省值 6,
假设有 10 万张表,标签总长度是 256 字节,则
总的内存需求为:4
\*
(16
\*
6 + 10) + 100000
\*
(0.25 + 0.5) / 1000 = 499M。
示例:假设是 4 核机器,cache 是缺省大小 16M, blocks 是缺省值 6,
并且一个 DB 中有 10 万张表,标签总长度是 256 字节,则这个 DB
总的内存需求为:4
\*
(16
\*
6 + 10) + 100000
\*
(0.25 + 0.5) / 1000 = 499M。
注意:从这个公式计算得到的内存容量,应理解为系统的“必要需求”,而不是“内存总数”。在实际运行的生产系统中,由于操作系统缓存、资源管理调度等方面的需要,内存规划应当在计算结果的基础上保留一定冗余,以维持系统状态和系统性能的稳定性。
在实际的系统运维中,我们通常会更关心 TDengine 服务进程(taosd)会占用的内存量。
```
taosd 内存总量 = vnode 内存 + mnode 内存 + 查询内存
```
其中:
1.
“vnode 内存”指的是集群中所有的 Database 存储分摊到当前 taosd 节点上所占用的内存资源。可以按上文“Database Memory Size”计算公式估算每个 DB 的内存占用量进行加总,再按集群中总共的 TDengine 节点数做平均(如果设置为多副本,则还需要乘以对应的副本倍数)。
2.
“mnode 内存”指的是集群中管理节点所占用的资源。如果一个 taosd 节点上分布有 mnode 管理节点,则内存消耗还需要增加“0.2KB
*
集群中数据表总数”。
3.
“查询内存”指的是服务端处理查询请求时所需要占用的内存。单条查询语句至少会占用“0.2KB
*
查询涉及的数据表总数”的内存量。
实际运行的系统往往会根据数据特点的不同,将数据存放在不同的 DB 里。因此做规划时,也需要考虑
。
注意:以上内存估算方法,主要讲解了系统的“必须内存需求”,而不是“内存总数上限”。在实际运行的生产环境中,由于操作系统缓存、资源管理调度等方面的原因,内存规划应当在估算结果的基础上保留一定冗余,以维持系统状态和系统性能的稳定性。并且,生产环境通常会配置系统资源的监控工具,以便及时发现硬件资源的紧缺情况
。
如果内存充裕,可以
加大 Blocks 的配置,这样更多数据将保存在内存里,提高查询速度。
最后,如果内存充裕,可以考虑
加大 Blocks 的配置,这样更多数据将保存在内存里,提高查询速度。
### CPU 需求
...
...
src/client/inc/tsclient.h
浏览文件 @
e3f4c903
...
...
@@ -367,7 +367,7 @@ typedef struct SSqlObj {
int64_t
svgroupRid
;
int64_t
squeryLock
;
int32_t
retryReason
;
// previous error code
struct
SSqlObj
*
prev
,
*
next
;
int64_t
self
;
}
SSqlObj
;
...
...
src/client/src/tscAsync.c
浏览文件 @
e3f4c903
...
...
@@ -310,9 +310,50 @@ void tscAsyncResultOnError(SSqlObj* pSql) {
taosScheduleTask
(
tscQhandle
,
&
schedMsg
);
}
int
tscSendMsgToServer
(
SSqlObj
*
pSql
);
static
int32_t
updateMetaBeforeRetryQuery
(
SSqlObj
*
pSql
,
STableMetaInfo
*
pTableMetaInfo
,
SQueryInfo
*
pQueryInfo
)
{
// handle the invalid table error code for super table.
// update the pExpr info, colList info, number of table columns
// TODO Re-parse this sql and issue the corresponding subquery as an alternative for this case.
if
(
pSql
->
retryReason
==
TSDB_CODE_TDB_INVALID_TABLE_ID
)
{
int32_t
numOfExprs
=
(
int32_t
)
tscSqlExprNumOfExprs
(
pQueryInfo
);
int32_t
numOfCols
=
tscGetNumOfColumns
(
pTableMetaInfo
->
pTableMeta
);
int32_t
numOfTags
=
tscGetNumOfTags
(
pTableMetaInfo
->
pTableMeta
);
SSchema
*
pSchema
=
tscGetTableSchema
(
pTableMetaInfo
->
pTableMeta
);
for
(
int32_t
i
=
0
;
i
<
numOfExprs
;
++
i
)
{
SSqlExpr
*
pExpr
=
tscSqlExprGet
(
pQueryInfo
,
i
);
pExpr
->
uid
=
pTableMetaInfo
->
pTableMeta
->
id
.
uid
;
if
(
pExpr
->
colInfo
.
colIndex
>=
0
)
{
int32_t
index
=
pExpr
->
colInfo
.
colIndex
;
if
((
TSDB_COL_IS_NORMAL_COL
(
pExpr
->
colInfo
.
flag
)
&&
index
>=
numOfCols
)
||
(
TSDB_COL_IS_TAG
(
pExpr
->
colInfo
.
flag
)
&&
(
index
<
numOfCols
||
index
>=
(
numOfCols
+
numOfTags
))))
{
return
pSql
->
retryReason
;
}
int
tscSendMsgToServer
(
SSqlObj
*
pSql
);
if
((
pSchema
[
pExpr
->
colInfo
.
colIndex
].
colId
!=
pExpr
->
colInfo
.
colId
)
&&
strcasecmp
(
pExpr
->
colInfo
.
name
,
pSchema
[
pExpr
->
colInfo
.
colIndex
].
name
)
!=
0
)
{
return
pSql
->
retryReason
;
}
}
}
// validate the table columns information
for
(
int32_t
i
=
0
;
i
<
taosArrayGetSize
(
pQueryInfo
->
colList
);
++
i
)
{
SColumn
*
pCol
=
taosArrayGetP
(
pQueryInfo
->
colList
,
i
);
if
(
pCol
->
colIndex
.
columnIndex
>=
numOfCols
)
{
return
pSql
->
retryReason
;
}
}
}
else
{
// do nothing
}
return
TSDB_CODE_SUCCESS
;
}
void
tscTableMetaCallBack
(
void
*
param
,
TAOS_RES
*
res
,
int
code
)
{
SSqlObj
*
pSql
=
(
SSqlObj
*
)
taosAcquireRef
(
tscObjRef
,
(
int64_t
)
param
);
...
...
@@ -339,7 +380,8 @@ void tscTableMetaCallBack(void *param, TAOS_RES *res, int code) {
if
(
TSDB_QUERY_HAS_TYPE
(
pQueryInfo
->
type
,
(
TSDB_QUERY_TYPE_STABLE_SUBQUERY
|
TSDB_QUERY_TYPE_SUBQUERY
|
TSDB_QUERY_TYPE_TAG_FILTER_QUERY
)))
{
tscDebug
(
"%p update local table meta, continue to process sql and send the corresponding query"
,
pSql
);
STableMetaInfo
*
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
0
);
STableMetaInfo
*
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
0
);
code
=
tscGetTableMeta
(
pSql
,
pTableMetaInfo
);
assert
(
code
==
TSDB_CODE_TSC_ACTION_IN_PROGRESS
||
code
==
TSDB_CODE_SUCCESS
);
...
...
@@ -349,6 +391,10 @@ void tscTableMetaCallBack(void *param, TAOS_RES *res, int code) {
}
assert
((
tscGetNumOfTags
(
pTableMetaInfo
->
pTableMeta
)
!=
0
));
code
=
updateMetaBeforeRetryQuery
(
pSql
,
pTableMetaInfo
,
pQueryInfo
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
goto
_error
;
}
// tscProcessSql can add error into async res
tscProcessSql
(
pSql
);
...
...
src/client/src/tscSQLParser.c
浏览文件 @
e3f4c903
...
...
@@ -670,7 +670,18 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) {
if
((
code
=
setKillInfo
(
pSql
,
pInfo
,
pInfo
->
type
))
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
break
;
}
case
TSDB_SQL_SYNC_DB_REPLICA
:
{
const
char
*
msg1
=
"invalid db name"
;
SStrToken
*
pzName
=
taosArrayGet
(
pInfo
->
pMiscInfo
->
a
,
0
);
assert
(
taosArrayGetSize
(
pInfo
->
pMiscInfo
->
a
)
==
1
);
code
=
tNameSetDbName
(
&
pTableMetaInfo
->
name
,
getAccountId
(
pSql
),
pzName
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
invalidSqlErrMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
}
break
;
}
...
...
src/client/src/tscServer.c
浏览文件 @
e3f4c903
...
...
@@ -350,8 +350,8 @@ void tscProcessMsgFromServer(SRpcMsg *rpcMsg, SRpcEpSet *pEpSet) {
taosMsleep
(
duration
);
}
pSql
->
retryReason
=
rpcMsg
->
code
;
rpcMsg
->
code
=
tscRenewTableMeta
(
pSql
,
0
);
// if there is an error occurring, proceed to the following error handling procedure.
if
(
rpcMsg
->
code
==
TSDB_CODE_TSC_ACTION_IN_PROGRESS
)
{
taosReleaseRef
(
tscObjRef
,
handle
);
...
...
@@ -1284,6 +1284,23 @@ int32_t tscBuildUseDbMsg(SSqlObj *pSql, SSqlInfo *pInfo) {
return
TSDB_CODE_SUCCESS
;
}
int32_t
tscBuildSyncDbReplicaMsg
(
SSqlObj
*
pSql
,
SSqlInfo
*
pInfo
)
{
SSqlCmd
*
pCmd
=
&
pSql
->
cmd
;
pCmd
->
payloadLen
=
sizeof
(
SSyncDbMsg
);
if
(
TSDB_CODE_SUCCESS
!=
tscAllocPayload
(
pCmd
,
pCmd
->
payloadLen
))
{
tscError
(
"%p failed to malloc for query msg"
,
pSql
);
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
SSyncDbMsg
*
pSyncMsg
=
(
SSyncDbMsg
*
)
pCmd
->
payload
;
STableMetaInfo
*
pTableMetaInfo
=
tscGetTableMetaInfoFromCmd
(
pCmd
,
pCmd
->
clauseIndex
,
0
);
tNameExtractFullName
(
&
pTableMetaInfo
->
name
,
pSyncMsg
->
db
);
pCmd
->
msgType
=
TSDB_MSG_TYPE_CM_SYNC_DB
;
return
TSDB_CODE_SUCCESS
;
}
int32_t
tscBuildShowMsg
(
SSqlObj
*
pSql
,
SSqlInfo
*
pInfo
)
{
STscObj
*
pObj
=
pSql
->
pTscObj
;
SSqlCmd
*
pCmd
=
&
pSql
->
cmd
;
...
...
@@ -2559,6 +2576,7 @@ void tscInitMsgsFp() {
tscBuildMsg
[
TSDB_SQL_DROP_USER
]
=
tscBuildDropUserAcctMsg
;
tscBuildMsg
[
TSDB_SQL_DROP_ACCT
]
=
tscBuildDropUserAcctMsg
;
tscBuildMsg
[
TSDB_SQL_DROP_DB
]
=
tscBuildDropDbMsg
;
tscBuildMsg
[
TSDB_SQL_SYNC_DB_REPLICA
]
=
tscBuildSyncDbReplicaMsg
;
tscBuildMsg
[
TSDB_SQL_DROP_TABLE
]
=
tscBuildDropTableMsg
;
tscBuildMsg
[
TSDB_SQL_ALTER_USER
]
=
tscBuildUserMsg
;
tscBuildMsg
[
TSDB_SQL_CREATE_DNODE
]
=
tscBuildCreateDnodeMsg
;
...
...
src/common/inc/tcmdtype.h
浏览文件 @
e3f4c903
...
...
@@ -51,6 +51,7 @@ enum {
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_ALTER_ACCT
,
"alter-acct"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_ALTER_TABLE
,
"alter-table"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_ALTER_DB
,
"alter-db"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_SYNC_DB_REPLICA
,
"sync db-replica"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_CREATE_MNODE
,
"create-mnode"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_DROP_MNODE
,
"drop-mnode"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_CREATE_DNODE
,
"create-dnode"
)
...
...
@@ -87,13 +88,13 @@ enum {
*/
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_RETRIEVE_EMPTY_RESULT
,
"retrieve-empty-result"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_RESET_CACHE
,
"reset-cache"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_SERV_STATUS
,
"serv-status"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_CURRENT_DB
,
"current-db"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_RESET_CACHE
,
"reset-cache"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_SERV_STATUS
,
"serv-status"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_CURRENT_DB
,
"current-db"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_SERV_VERSION
,
"serv-version"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_CLI_VERSION
,
"cli-version"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_CLI_VERSION
,
"cli-version"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_CURRENT_USER
,
"current-user "
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_CFG_LOCAL
,
"cfg-local"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_CFG_LOCAL
,
"cfg-local"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_MAX
,
"max"
)
};
...
...
src/dnode/CMakeLists.txt
浏览文件 @
e3f4c903
...
...
@@ -35,6 +35,10 @@ IF (TD_TOPIC)
TARGET_LINK_LIBRARIES
(
taosd topic
)
ENDIF
()
IF
(
TD_MODULE AND TD_LINUX
)
TARGET_LINK_LIBRARIES
(
taosd module dl
)
ENDIF
()
SET
(
PREPARE_ENV_CMD
"prepare_env_cmd"
)
SET
(
PREPARE_ENV_TARGET
"prepare_env_target"
)
ADD_CUSTOM_COMMAND
(
OUTPUT
${
PREPARE_ENV_CMD
}
...
...
src/dnode/src/dnodeMain.c
浏览文件 @
e3f4c903
...
...
@@ -39,6 +39,13 @@
#include "dnodeMPeer.h"
#include "dnodeShell.h"
#include "dnodeTelemetry.h"
#include "module.h"
#if !defined(_MODULE) || !defined(_TD_LINUX)
int32_t
moduleStart
()
{
return
0
;
}
void
moduleStop
()
{}
#endif
void
*
tsDnodeTmr
=
NULL
;
static
SRunStatus
tsRunStatus
=
TSDB_RUN_STATUS_STOPPED
;
...
...
@@ -146,6 +153,7 @@ int32_t dnodeInitSystem() {
}
dnodeSetRunStatus
(
TSDB_RUN_STATUS_RUNING
);
moduleStart
();
dnodeReportStep
(
"TDengine"
,
"initialized successfully"
,
1
);
dInfo
(
"TDengine is initialized successfully"
);
...
...
@@ -155,6 +163,7 @@ int32_t dnodeInitSystem() {
void
dnodeCleanUpSystem
()
{
if
(
dnodeGetRunStatus
()
!=
TSDB_RUN_STATUS_STOPPED
)
{
moduleStop
();
dnodeSetRunStatus
(
TSDB_RUN_STATUS_STOPPED
);
dnodeCleanupTmr
();
dnodeCleanupComponents
();
...
...
src/dnode/src/dnodeShell.c
浏览文件 @
e3f4c903
...
...
@@ -49,6 +49,7 @@ int32_t dnodeInitShell() {
dnodeProcessShellMsgFp
[
TSDB_MSG_TYPE_CM_CREATE_DB
]
=
dnodeDispatchToMWriteQueue
;
dnodeProcessShellMsgFp
[
TSDB_MSG_TYPE_CM_CREATE_TP
]
=
dnodeDispatchToMWriteQueue
;
dnodeProcessShellMsgFp
[
TSDB_MSG_TYPE_CM_DROP_DB
]
=
dnodeDispatchToMWriteQueue
;
dnodeProcessShellMsgFp
[
TSDB_MSG_TYPE_CM_SYNC_DB
]
=
dnodeDispatchToMWriteQueue
;
dnodeProcessShellMsgFp
[
TSDB_MSG_TYPE_CM_DROP_TP
]
=
dnodeDispatchToMWriteQueue
;
dnodeProcessShellMsgFp
[
TSDB_MSG_TYPE_CM_ALTER_DB
]
=
dnodeDispatchToMWriteQueue
;
dnodeProcessShellMsgFp
[
TSDB_MSG_TYPE_CM_ALTER_TP
]
=
dnodeDispatchToMWriteQueue
;
...
...
src/inc/module.h
0 → 100644
浏览文件 @
e3f4c903
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef TDENGINE_MODULE
#define TDENGINE_MODULE
#ifdef __cplusplus
extern
"C"
{
#endif
int32_t
moduleStart
();
void
moduleStop
();
#ifdef __cplusplus
}
#endif
#endif
src/inc/taosmsg.h
浏览文件 @
e3f4c903
...
...
@@ -77,6 +77,7 @@ TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_CM_CREATE_DB, "create-db" )
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_DROP_DB
,
"drop-db"
)
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_USE_DB
,
"use-db"
)
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_ALTER_DB
,
"alter-db"
)
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_SYNC_DB
,
"sync-db-replica"
)
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_CREATE_TABLE
,
"create-table"
)
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_DROP_TABLE
,
"drop-table"
)
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_ALTER_TABLE
,
"alter-table"
)
...
...
@@ -574,7 +575,7 @@ typedef struct {
typedef
struct
{
char
db
[
TSDB_TABLE_FNAME_LEN
];
uint8_t
ignoreNotExists
;
}
SDropDbMsg
,
SUseDbMsg
;
}
SDropDbMsg
,
SUseDbMsg
,
SSyncDbMsg
;
// IMPORTANT: sizeof(SVnodeStatisticInfo) should not exceed
// TSDB_FILE_HEADER_LEN/4 - TSDB_FILE_HEADER_VERSION_SIZE
...
...
src/inc/ttokendef.h
浏览文件 @
e3f4c903
...
...
@@ -152,56 +152,57 @@
#define TK_NOW 133
#define TK_RESET 134
#define TK_QUERY 135
#define TK_ADD 136
#define TK_COLUMN 137
#define TK_TAG 138
#define TK_CHANGE 139
#define TK_SET 140
#define TK_KILL 141
#define TK_CONNECTION 142
#define TK_STREAM 143
#define TK_COLON 144
#define TK_ABORT 145
#define TK_AFTER 146
#define TK_ATTACH 147
#define TK_BEFORE 148
#define TK_BEGIN 149
#define TK_CASCADE 150
#define TK_CLUSTER 151
#define TK_CONFLICT 152
#define TK_COPY 153
#define TK_DEFERRED 154
#define TK_DELIMITERS 155
#define TK_DETACH 156
#define TK_EACH 157
#define TK_END 158
#define TK_EXPLAIN 159
#define TK_FAIL 160
#define TK_FOR 161
#define TK_IGNORE 162
#define TK_IMMEDIATE 163
#define TK_INITIALLY 164
#define TK_INSTEAD 165
#define TK_MATCH 166
#define TK_KEY 167
#define TK_OF 168
#define TK_RAISE 169
#define TK_REPLACE 170
#define TK_RESTRICT 171
#define TK_ROW 172
#define TK_STATEMENT 173
#define TK_TRIGGER 174
#define TK_VIEW 175
#define TK_SEMI 176
#define TK_NONE 177
#define TK_PREV 178
#define TK_LINEAR 179
#define TK_IMPORT 180
#define TK_TBNAME 181
#define TK_JOIN 182
#define TK_INSERT 183
#define TK_INTO 184
#define TK_VALUES 185
#define TK_SYNCDB 136
#define TK_ADD 137
#define TK_COLUMN 138
#define TK_TAG 139
#define TK_CHANGE 140
#define TK_SET 141
#define TK_KILL 142
#define TK_CONNECTION 143
#define TK_STREAM 144
#define TK_COLON 145
#define TK_ABORT 146
#define TK_AFTER 147
#define TK_ATTACH 148
#define TK_BEFORE 149
#define TK_BEGIN 150
#define TK_CASCADE 151
#define TK_CLUSTER 152
#define TK_CONFLICT 153
#define TK_COPY 154
#define TK_DEFERRED 155
#define TK_DELIMITERS 156
#define TK_DETACH 157
#define TK_EACH 158
#define TK_END 159
#define TK_EXPLAIN 160
#define TK_FAIL 161
#define TK_FOR 162
#define TK_IGNORE 163
#define TK_IMMEDIATE 164
#define TK_INITIALLY 165
#define TK_INSTEAD 166
#define TK_MATCH 167
#define TK_KEY 168
#define TK_OF 169
#define TK_RAISE 170
#define TK_REPLACE 171
#define TK_RESTRICT 172
#define TK_ROW 173
#define TK_STATEMENT 174
#define TK_TRIGGER 175
#define TK_VIEW 176
#define TK_SEMI 177
#define TK_NONE 178
#define TK_PREV 179
#define TK_LINEAR 180
#define TK_IMPORT 181
#define TK_TBNAME 182
#define TK_JOIN 183
#define TK_INSERT 184
#define TK_INTO 185
#define TK_VALUES 186
#define TK_SPACE 300
...
...
src/kit/taosdemo/insert-interlace.json
浏览文件 @
e3f4c903
...
...
@@ -41,7 +41,7 @@
"insert_mode"
:
"taosc"
,
"insert_rows"
:
1000
,
"multi_thread_write_one_tbl"
:
"no"
,
"
rows_per_tbl
"
:
20
,
"
interlace_rows
"
:
20
,
"max_sql_len"
:
1024000
,
"disorder_ratio"
:
0
,
"disorder_range"
:
1000
,
...
...
src/kit/taosdemo/insert.json
浏览文件 @
e3f4c903
...
...
@@ -41,7 +41,7 @@
"insert_mode"
:
"taosc"
,
"insert_rows"
:
100000
,
"multi_thread_write_one_tbl"
:
"no"
,
"
rows_per_tbl
"
:
0
,
"
interlace_rows
"
:
0
,
"max_sql_len"
:
1024000
,
"disorder_ratio"
:
0
,
"disorder_range"
:
1000
,
...
...
src/kit/taosdemo/taosdemo.c
浏览文件 @
e3f4c903
...
...
@@ -187,6 +187,7 @@ typedef struct SArguments_S {
char
*
tb_prefix
;
char
*
sqlFile
;
bool
use_metric
;
bool
drop_database
;
bool
insert_only
;
bool
answer_yes
;
bool
debug_print
;
...
...
@@ -199,7 +200,8 @@ typedef struct SArguments_S {
int
num_of_CPR
;
int
num_of_threads
;
int
insert_interval
;
int
rows_per_tbl
;
int
query_times
;
int
interlace_rows
;
int
num_of_RPR
;
int
max_sql_len
;
int
num_of_tables
;
...
...
@@ -314,7 +316,7 @@ typedef struct SDbCfg_S {
typedef
struct
SDataBase_S
{
char
dbName
[
MAX_DB_NAME_SIZE
];
int
drop
;
// 0: use exists, 1: if exists, drop then new create
bool
drop
;
// 0: use exists, 1: if exists, drop then new create
SDbCfg
dbCfg
;
int
superTblCount
;
SSuperTable
superTbls
[
MAX_SUPER_TABLE_COUNT
];
...
...
@@ -351,7 +353,7 @@ typedef struct SuperQueryInfo_S {
int
subscribeInterval
;
// ms
int
subscribeRestart
;
int
subscribeKeepProgress
;
char
sql
[
MAX_QUERY_SQL_COUNT
][
MAX_QUERY_SQL_LENGTH
+
1
];
char
sql
[
MAX_QUERY_SQL_COUNT
][
MAX_QUERY_SQL_LENGTH
+
1
];
char
result
[
MAX_QUERY_SQL_COUNT
][
MAX_FILE_NAME_LEN
+
1
];
TAOS_SUB
*
tsub
[
MAX_QUERY_SQL_COUNT
];
}
SuperQueryInfo
;
...
...
@@ -359,7 +361,7 @@ typedef struct SuperQueryInfo_S {
typedef
struct
SubQueryInfo_S
{
char
sTblName
[
MAX_TB_NAME_SIZE
+
1
];
int
rate
;
// 0: unlimit > 0 loop/s
int
threadCnt
;
int
threadCnt
;
int
subscribeMode
;
// 0: sync, 1: async
int
subscribeInterval
;
// ms
int
subscribeRestart
;
...
...
@@ -367,7 +369,7 @@ typedef struct SubQueryInfo_S {
int
childTblCount
;
char
childTblPrefix
[
MAX_TB_NAME_SIZE
];
int
sqlCount
;
char
sql
[
MAX_QUERY_SQL_COUNT
][
MAX_QUERY_SQL_LENGTH
+
1
];
char
sql
[
MAX_QUERY_SQL_COUNT
][
MAX_QUERY_SQL_LENGTH
+
1
];
char
result
[
MAX_QUERY_SQL_COUNT
][
MAX_FILE_NAME_LEN
+
1
];
TAOS_SUB
*
tsub
[
MAX_QUERY_SQL_COUNT
];
...
...
@@ -397,14 +399,14 @@ typedef struct SThreadInfo_S {
int
end_table_to
;
int
ntables
;
int
data_of_rate
;
uint64_t
start_time
;
char
*
cols
;
bool
use_metric
;
uint64_t
start_time
;
char
*
cols
;
bool
use_metric
;
SSuperTable
*
superTblInfo
;
// for async insert
tsem_t
lock_sem
;
int64_t
counter
;
int64_t
counter
;
uint64_t
st
;
uint64_t
et
;
int64_t
lastTs
;
...
...
@@ -524,6 +526,7 @@ SArguments g_args = {
"t"
,
// tb_prefix
NULL
,
// sqlFile
true
,
// use_metric
true
,
// drop_database
true
,
// insert_only
false
,
// debug_print
false
,
// verbose_print
...
...
@@ -547,7 +550,8 @@ SArguments g_args = {
10
,
// num_of_CPR
10
,
// num_of_connections/thread
0
,
// insert_interval
0
,
// rows_per_tbl;
1
,
// query_times
0
,
// interlace_rows;
100
,
// num_of_RPR
TSDB_PAYLOAD_SIZE
,
// max_sql_len
10000
,
// num_of_tables
...
...
@@ -681,8 +685,10 @@ static void parse_args(int argc, char *argv[], SArguments *arguments) {
arguments
->
num_of_threads
=
atoi
(
argv
[
++
i
]);
}
else
if
(
strcmp
(
argv
[
i
],
"-i"
)
==
0
)
{
arguments
->
insert_interval
=
atoi
(
argv
[
++
i
]);
}
else
if
(
strcmp
(
argv
[
i
],
"-qt"
)
==
0
)
{
arguments
->
query_times
=
atoi
(
argv
[
++
i
]);
}
else
if
(
strcmp
(
argv
[
i
],
"-B"
)
==
0
)
{
arguments
->
rows_per_tbl
=
atoi
(
argv
[
++
i
]);
arguments
->
interlace_rows
=
atoi
(
argv
[
++
i
]);
}
else
if
(
strcmp
(
argv
[
i
],
"-r"
)
==
0
)
{
arguments
->
num_of_RPR
=
atoi
(
argv
[
++
i
]);
}
else
if
(
strcmp
(
argv
[
i
],
"-t"
)
==
0
)
{
...
...
@@ -1064,6 +1070,7 @@ static int printfInsertMeta() {
printf
(
"max sql length:
\033
[33m%d
\033
[0m
\n
"
,
g_args
.
max_sql_len
);
printf
(
"database count:
\033
[33m%d
\033
[0m
\n
"
,
g_Dbs
.
dbCount
);
for
(
int
i
=
0
;
i
<
g_Dbs
.
dbCount
;
i
++
)
{
printf
(
"database[
\033
[33m%d
\033
[0m]:
\n
"
,
i
);
printf
(
" database[%d] name:
\033
[33m%s
\033
[0m
\n
"
,
i
,
g_Dbs
.
db
[
i
].
dbName
);
...
...
@@ -1220,16 +1227,19 @@ static int printfInsertMeta() {
}
static
void
printfInsertMetaToFile
(
FILE
*
fp
)
{
SHOW_PARSE_RESULT_START_TO_FILE
(
fp
);
SHOW_PARSE_RESULT_START_TO_FILE
(
fp
);
fprintf
(
fp
,
"host: %s:%u
\n
"
,
g_Dbs
.
host
,
g_Dbs
.
port
);
fprintf
(
fp
,
"user: %s
\n
"
,
g_Dbs
.
user
);
fprintf
(
fp
,
"password: %s
\n
"
,
g_Dbs
.
password
);
fprintf
(
fp
,
"resultFile: %s
\n
"
,
g_Dbs
.
resultFile
);
fprintf
(
fp
,
"thread num of insert data: %d
\n
"
,
g_Dbs
.
threadCount
);
fprintf
(
fp
,
"thread num of create table: %d
\n
"
,
g_Dbs
.
threadCountByCreateTbl
);
fprintf
(
fp
,
"insert interval: %d
\n
"
,
g_args
.
insert_interval
);
fprintf
(
fp
,
"number of records per req: %d
\n
"
,
g_args
.
num_of_RPR
);
fprintf
(
fp
,
"max sql length: %d
\n
"
,
g_args
.
max_sql_len
);
fprintf
(
fp
,
"database count: %d
\n
"
,
g_Dbs
.
dbCount
);
for
(
int
i
=
0
;
i
<
g_Dbs
.
dbCount
;
i
++
)
{
fprintf
(
fp
,
"database[%d]:
\n
"
,
i
);
fprintf
(
fp
,
" database[%d] name: %s
\n
"
,
i
,
g_Dbs
.
db
[
i
].
dbName
);
...
...
@@ -1364,20 +1374,23 @@ static void printfInsertMetaToFile(FILE* fp) {
}
fprintf
(
fp
,
"
\n
"
);
}
SHOW_PARSE_RESULT_END_TO_FILE
(
fp
);
}
static
void
printfQueryMeta
()
{
SHOW_PARSE_RESULT_START
();
printf
(
"host:
\033
[33m%s:%u
\033
[0m
\n
"
,
g_queryInfo
.
host
,
g_queryInfo
.
port
);
printf
(
"user:
\033
[33m%s
\033
[0m
\n
"
,
g_queryInfo
.
user
);
printf
(
"password:
\033
[33m%s
\033
[0m
\n
"
,
g_queryInfo
.
password
);
printf
(
"database name:
\033
[33m%s
\033
[0m
\n
"
,
g_queryInfo
.
dbName
);
printf
(
"
\n
"
);
printf
(
"specified table query info:
\n
"
);
printf
(
"query interval:
\033
[33m%d
\033
[0m
\n
"
,
g_queryInfo
.
superQueryInfo
.
rate
);
printf
(
"query times:
\033
[33m%d
\033
[0m
\n
"
,
g_args
.
query_times
);
printf
(
"concurrent:
\033
[33m%d
\033
[0m
\n
"
,
g_queryInfo
.
superQueryInfo
.
concurrent
);
printf
(
"sqlCount:
\033
[33m%d
\033
[0m
\n
"
,
g_queryInfo
.
superQueryInfo
.
sqlCount
);
...
...
@@ -1411,11 +1424,10 @@ static void printfQueryMeta() {
}
printf
(
"
\n
"
);
SHOW_PARSE_RESULT_END
();
SHOW_PARSE_RESULT_END
();
}
static
char
*
xFormatTimestamp
(
char
*
buf
,
int64_t
val
,
int
precision
)
{
static
char
*
formatTimestamp
(
char
*
buf
,
int64_t
val
,
int
precision
)
{
time_t
tt
;
if
(
precision
==
TSDB_TIME_PRECISION_MICRO
)
{
tt
=
(
time_t
)(
val
/
1000000
);
...
...
@@ -1447,7 +1459,9 @@ static char* xFormatTimestamp(char* buf, int64_t val, int precision) {
return
buf
;
}
static
void
xDumpFieldToFile
(
FILE
*
fp
,
const
char
*
val
,
TAOS_FIELD
*
field
,
int32_t
length
,
int
precision
)
{
static
void
xDumpFieldToFile
(
FILE
*
fp
,
const
char
*
val
,
TAOS_FIELD
*
field
,
int32_t
length
,
int
precision
)
{
if
(
val
==
NULL
)
{
fprintf
(
fp
,
"%s"
,
TSDB_DATA_NULL_STR
);
return
;
...
...
@@ -1483,7 +1497,7 @@ static void xDumpFieldToFile(FILE* fp, const char* val, TAOS_FIELD* field, int32
fprintf
(
fp
,
"
\'
%s
\'
"
,
buf
);
break
;
case
TSDB_DATA_TYPE_TIMESTAMP
:
xF
ormatTimestamp
(
buf
,
*
(
int64_t
*
)
val
,
precision
);
f
ormatTimestamp
(
buf
,
*
(
int64_t
*
)
val
,
precision
);
fprintf
(
fp
,
"'%s'"
,
buf
);
break
;
default:
...
...
@@ -1562,7 +1576,7 @@ static int getDbFromServer(TAOS * taos, SDbInfo** dbInfos) {
tstrncpy
(
dbInfos
[
count
]
->
name
,
(
char
*
)
row
[
TSDB_SHOW_DB_NAME_INDEX
],
fields
[
TSDB_SHOW_DB_NAME_INDEX
].
bytes
);
xF
ormatTimestamp
(
dbInfos
[
count
]
->
create_time
,
f
ormatTimestamp
(
dbInfos
[
count
]
->
create_time
,
*
(
int64_t
*
)
row
[
TSDB_SHOW_DB_CREATED_TIME_INDEX
],
TSDB_TIME_PRECISION_MILLI
);
dbInfos
[
count
]
->
ntables
=
*
((
int32_t
*
)
row
[
TSDB_SHOW_DB_NTABLES_INDEX
]);
...
...
@@ -2036,15 +2050,25 @@ static int getChildNameOfSuperTableWithLimitAndOffset(TAOS * taos,
res
=
taos_query
(
taos
,
command
);
int32_t
code
=
taos_errno
(
res
);
if
(
code
!=
0
)
{
printf
(
"failed to run command %s
\n
"
,
command
);
taos_free_result
(
res
);
taos_close
(
taos
);
errorPrint
(
"%s() LN%d, failed to run command %s
\n
"
,
__func__
,
__LINE__
,
command
);
exit
(
-
1
);
}
int
childTblCount
=
(
limit
<
0
)
?
10000
:
limit
;
int
count
=
0
;
// childTblName = (char*)calloc(1, childTblCount * TSDB_TABLE_NAME_LEN);
if
(
childTblName
==
NULL
)
{
childTblName
=
(
char
*
)
calloc
(
1
,
childTblCount
*
TSDB_TABLE_NAME_LEN
);
if
(
NULL
==
childTblName
)
{
taos_free_result
(
res
);
taos_close
(
taos
);
errorPrint
(
"%s() LN%d, failed to allocate memory!
\n
"
,
__func__
,
__LINE__
);
exit
(
-
1
);
}
}
char
*
pTblName
=
childTblName
;
while
((
row
=
taos_fetch_row
(
res
))
!=
NULL
)
{
int32_t
*
len
=
taos_fetch_lengths
(
res
);
...
...
@@ -2090,6 +2114,7 @@ static int getAllChildNameOfSuperTable(TAOS * taos, char* dbName,
static
int
getSuperTableFromServer
(
TAOS
*
taos
,
char
*
dbName
,
SSuperTable
*
superTbls
)
{
char
command
[
BUFFER_SIZE
]
=
"
\0
"
;
TAOS_RES
*
res
;
TAOS_ROW
row
=
NULL
;
...
...
@@ -2315,7 +2340,7 @@ static int createDatabases() {
}
char
command
[
BUFFER_SIZE
]
=
"
\0
"
;
for
(
int
i
=
0
;
i
<
g_Dbs
.
dbCount
;
i
++
)
{
for
(
int
i
=
0
;
i
<
g_Dbs
.
dbCount
;
i
++
)
{
if
(
g_Dbs
.
db
[
i
].
drop
)
{
sprintf
(
command
,
"drop database if exists %s;"
,
g_Dbs
.
db
[
i
].
dbName
);
verbosePrint
(
"%s() %d command: %s
\n
"
,
__func__
,
__LINE__
,
command
);
...
...
@@ -2326,7 +2351,7 @@ static int createDatabases() {
}
int
dataLen
=
0
;
dataLen
+=
snprintf
(
command
+
dataLen
,
dataLen
+=
snprintf
(
command
+
dataLen
,
BUFFER_SIZE
-
dataLen
,
"create database if not exists %s"
,
g_Dbs
.
db
[
i
].
dbName
);
if
(
g_Dbs
.
db
[
i
].
dbCfg
.
blocks
>
0
)
{
...
...
@@ -2403,38 +2428,48 @@ static int createDatabases() {
debugPrint
(
"%s() %d supertbl count:%d
\n
"
,
__func__
,
__LINE__
,
g_Dbs
.
db
[
i
].
superTblCount
);
for
(
int
j
=
0
;
j
<
g_Dbs
.
db
[
i
].
superTblCount
;
j
++
)
{
// describe super table, if exists
if
((
g_Dbs
.
db
[
i
].
drop
)
||
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
superTblExists
==
TBL_NO_EXISTS
))
{
ret
=
createSuperTable
(
taos
,
g_Dbs
.
db
[
i
].
dbName
,
&
g_Dbs
.
db
[
i
].
superTbls
[
j
],
g_Dbs
.
use_metric
);
if
(
0
!=
ret
)
{
errorPrint
(
"
\n
create super table %d failed!
\n\n
"
,
j
);
taos_close
(
taos
);
return
-
1
;
}
}
/* describe super table, if exists
sprintf(command, "describe %s.%s;", g_Dbs.db[i].dbName,
g_Dbs.db[i].superTbls[j].sTblName);
verbosePrint("%s() %d command: %s\n", __func__, __LINE__, command);
if (0 != queryDbExec(taos, command, NO_INSERT_TYPE)) {
g_Dbs.db[i].superTbls[j].superTblExists = TBL_NO_EXISTS;
ret
=
createSuperTable
(
taos
,
g_Dbs
.
db
[
i
].
dbName
,
&
g_Dbs
.
db
[
i
].
superTbls
[
j
],
g_Dbs
.
use_metric
);
} else {
*/
g_Dbs
.
db
[
i
].
superTbls
[
j
].
superTblExists
=
TBL_ALREADY_EXISTS
;
if
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
childTblExists
!=
TBL_ALREADY_EXISTS
)
{
ret
=
getSuperTableFromServer
(
taos
,
g_Dbs
.
db
[
i
].
dbName
,
ret
=
getSuperTableFromServer
(
taos
,
g_Dbs
.
db
[
i
].
dbName
,
&
g_Dbs
.
db
[
i
].
superTbls
[
j
]);
//}
if
(
0
!=
ret
)
{
errorPrint
(
"
\n
get super table %s.%s info failed!
\n\n
"
,
g_Dbs
.
db
[
i
].
dbName
,
g_Dbs
.
db
[
i
].
superTbls
[
j
].
sTblName
);
taos_close
(
taos
);
return
-
1
;
}
}
if
(
0
!=
ret
)
{
printf
(
"
\n
create super table %d failed!
\n\n
"
,
j
);
taos_close
(
taos
);
return
-
1
;
}
}
}
}
taos_close
(
taos
);
return
0
;
}
static
void
*
createTable
(
void
*
sarg
)
{
threadInfo
*
winfo
=
(
threadInfo
*
)
sarg
;
static
void
*
createTable
(
void
*
sarg
)
{
threadInfo
*
winfo
=
(
threadInfo
*
)
sarg
;
SSuperTable
*
superTblInfo
=
winfo
->
superTblInfo
;
int64_t
lastPrintTime
=
taosGetTimestampMs
();
...
...
@@ -2454,19 +2489,19 @@ static void* createTable(void *sarg)
int
len
=
0
;
int
batchNum
=
0
;
verbosePrint
(
"%s() LN%d: Creating table from %d to %d
\n
"
,
verbosePrint
(
"%s() LN%d: Creating table from %d to %d
\n
"
,
__func__
,
__LINE__
,
winfo
->
start_table_from
,
winfo
->
end_table_to
);
for
(
int
i
=
winfo
->
start_table_from
;
i
<=
winfo
->
end_table_to
;
i
++
)
{
if
(
0
==
g_Dbs
.
use_metric
)
{
snprintf
(
buffer
,
buff_len
,
snprintf
(
buffer
,
buff_len
,
"create table if not exists %s.%s%d %s;"
,
winfo
->
db_name
,
g_args
.
tb_prefix
,
i
,
winfo
->
cols
);
}
else
{
if
(
0
==
len
)
{
if
(
0
==
len
)
{
batchNum
=
0
;
memset
(
buffer
,
0
,
buff_len
);
len
+=
snprintf
(
buffer
+
len
,
...
...
@@ -2485,7 +2520,7 @@ static void* createTable(void *sarg)
free
(
buffer
);
return
NULL
;
}
len
+=
snprintf
(
buffer
+
len
,
superTblInfo
->
maxSqlLen
-
len
,
"if not exists %s.%s%d using %s.%s tags %s "
,
...
...
@@ -2496,7 +2531,7 @@ static void* createTable(void *sarg)
batchNum
++
;
if
((
batchNum
<
superTblInfo
->
batchCreateTableNum
)
&&
((
superTblInfo
->
maxSqlLen
-
len
)
&&
((
superTblInfo
->
maxSqlLen
-
len
)
>=
(
superTblInfo
->
lenOfTagOfOneRow
+
256
)))
{
continue
;
}
...
...
@@ -2505,8 +2540,8 @@ static void* createTable(void *sarg)
len
=
0
;
verbosePrint
(
"%s() LN%d %s
\n
"
,
__func__
,
__LINE__
,
buffer
);
if
(
0
!=
queryDbExec
(
winfo
->
taos
,
buffer
,
NO_INSERT_TYPE
)){
errorPrint
(
"queryDbExec() failed. buffer:
\n
%s
\n
"
,
buffer
);
free
(
buffer
);
errorPrint
(
"queryDbExec() failed. buffer:
\n
%s
\n
"
,
buffer
);
return
NULL
;
}
...
...
@@ -2532,6 +2567,7 @@ static void* createTable(void *sarg)
static
int
startMultiThreadCreateChildTable
(
char
*
cols
,
int
threads
,
int
startFrom
,
int
ntables
,
char
*
db_name
,
SSuperTable
*
superTblInfo
)
{
pthread_t
*
pids
=
malloc
(
threads
*
sizeof
(
pthread_t
));
threadInfo
*
infos
=
malloc
(
threads
*
sizeof
(
threadInfo
));
...
...
@@ -2568,7 +2604,7 @@ static int startMultiThreadCreateChildTable(
if
(
t_info
->
taos
==
NULL
)
{
errorPrint
(
"Failed to connect to TDengine, reason:%s
\n
"
,
taos_errstr
(
NULL
));
free
(
pids
);
free
(
infos
);
free
(
infos
);
return
-
1
;
}
...
...
@@ -2616,12 +2652,12 @@ static void createChildTables() {
g_totalChildTables
+=
g_Dbs
.
db
[
i
].
superTbls
[
j
].
childTblCount
;
verbosePrint
(
"%s() LN%d: create %d child tables from %d
\n
"
,
__func__
,
__LINE__
,
g_totalChildTables
,
startFrom
);
g_totalChildTables
,
startFrom
);
startMultiThreadCreateChildTable
(
g_Dbs
.
db
[
i
].
superTbls
[
j
].
colsOfCreateChildTable
,
g_Dbs
.
threadCountByCreateTbl
,
startFrom
,
g_
totalChildTables
,
g_
Dbs
.
db
[
i
].
superTbls
[
j
].
childTblCount
,
g_Dbs
.
db
[
i
].
dbName
,
&
(
g_Dbs
.
db
[
i
].
superTbls
[
j
]));
}
}
else
{
...
...
@@ -3008,13 +3044,23 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
goto
PARSE_OVER
;
}
cJSON
*
rowsPerTbl
=
cJSON_GetObjectItem
(
root
,
"rows_per_tbl
"
);
if
(
rowsPerTbl
&&
rowsPerTbl
->
type
==
cJSON_Number
)
{
g_args
.
rows_per_tbl
=
rowsPerTbl
->
valueint
;
}
else
if
(
!
rowsPerTbl
)
{
g_args
.
rows_per_tbl
=
0
;
// 0 means progressive mode, > 0 mean interlace mode. max value is less or equ num_of_records_per_req
cJSON
*
gQueryTimes
=
cJSON_GetObjectItem
(
root
,
"query_times
"
);
if
(
gQueryTimes
&&
gQueryTimes
->
type
==
cJSON_Number
)
{
g_args
.
query_times
=
gQueryTimes
->
valueint
;
}
else
if
(
!
gQueryTimes
)
{
g_args
.
query_times
=
1
;
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, rows_per_tbl input mistake
\n
"
,
__func__
,
__LINE__
);
errorPrint
(
"%s() LN%d, failed to read json, query_times input mistake
\n
"
,
__func__
,
__LINE__
);
goto
PARSE_OVER
;
}
cJSON
*
interlaceRows
=
cJSON_GetObjectItem
(
root
,
"interlace_rows"
);
if
(
interlaceRows
&&
interlaceRows
->
type
==
cJSON_Number
)
{
g_args
.
interlace_rows
=
interlaceRows
->
valueint
;
}
else
if
(
!
interlaceRows
)
{
g_args
.
interlace_rows
=
0
;
// 0 means progressive mode, > 0 mean interlace mode. max value is less or equ num_of_records_per_req
}
else
{
errorPrint
(
"%s() LN%d, failed to read json, interlace_rows input mistake
\n
"
,
__func__
,
__LINE__
);
goto
PARSE_OVER
;
}
...
...
@@ -3092,15 +3138,16 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
cJSON
*
drop
=
cJSON_GetObjectItem
(
dbinfo
,
"drop"
);
if
(
drop
&&
drop
->
type
==
cJSON_String
&&
drop
->
valuestring
!=
NULL
)
{
if
(
0
==
strncasecmp
(
drop
->
valuestring
,
"yes"
,
3
))
{
g_Dbs
.
db
[
i
].
drop
=
1
;
if
(
0
==
strncasecmp
(
drop
->
valuestring
,
"yes"
,
strlen
(
"yes"
)
))
{
g_Dbs
.
db
[
i
].
drop
=
true
;
}
else
{
g_Dbs
.
db
[
i
].
drop
=
0
;
g_Dbs
.
db
[
i
].
drop
=
false
;
}
}
else
if
(
!
drop
)
{
g_Dbs
.
db
[
i
].
drop
=
0
;
g_Dbs
.
db
[
i
].
drop
=
g_args
.
drop_database
;
}
else
{
printf
(
"ERROR: failed to read json, drop not found
\n
"
);
errorPrint
(
"%s() LN%d, failed to read json, drop input mistake
\n
"
,
__func__
,
__LINE__
);
goto
PARSE_OVER
;
}
...
...
@@ -3498,7 +3545,7 @@ static bool getMetaFromInsertJsonFile(cJSON* root) {
goto
PARSE_OVER
;
}
cJSON
*
rowsPerTbl
=
cJSON_GetObjectItem
(
stbInfo
,
"
rows_per_tbl
"
);
cJSON
*
rowsPerTbl
=
cJSON_GetObjectItem
(
stbInfo
,
"
interlace_rows
"
);
if
(
rowsPerTbl
&&
rowsPerTbl
->
type
==
cJSON_Number
)
{
g_Dbs
.
db
[
i
].
superTbls
[
j
].
rowsPerTbl
=
rowsPerTbl
->
valueint
;
}
else
if
(
!
rowsPerTbl
)
{
...
...
@@ -4425,7 +4472,7 @@ static void* syncWriteInterlace(threadInfo *pThreadInfo) {
int
insertMode
;
char
tableName
[
TSDB_TABLE_NAME_LEN
];
int
rowsPerTbl
=
superTblInfo
?
superTblInfo
->
rowsPerTbl
:
g_args
.
rows_per_tbl
;
int
rowsPerTbl
=
superTblInfo
?
superTblInfo
->
rowsPerTbl
:
g_args
.
interlace_rows
;
if
(
rowsPerTbl
>
0
)
{
insertMode
=
INTERLACE_INSERT_MODE
;
...
...
@@ -4441,7 +4488,8 @@ static void* syncWriteInterlace(threadInfo *pThreadInfo) {
pThreadInfo
->
totalAffectedRows
=
0
;
int64_t
insertRows
=
(
superTblInfo
)
?
superTblInfo
->
insertRows
:
g_args
.
num_of_DPT
;
int
insert_interval
=
superTblInfo
?
superTblInfo
->
insertInterval
:
g_args
.
insert_interval
;
int
insert_interval
=
superTblInfo
?
superTblInfo
->
insertInterval
:
g_args
.
insert_interval
;
uint64_t
st
=
0
;
uint64_t
et
=
0xffffffff
;
...
...
@@ -4518,8 +4566,8 @@ static void* syncWriteInterlace(threadInfo *pThreadInfo) {
pstr
+=
dataLen
;
recOfBatch
+=
batchPerTbl
;
startTime
+=
batchPerTbl
*
superTblInfo
->
timeStampStep
;
pThreadInfo
->
totalInsertRows
+=
batchPerTbl
;
verbosePrint
(
"[%d] %s() LN%d batchPerTbl=%d recOfBatch=%d
\n
"
,
pThreadInfo
->
threadID
,
__func__
,
__LINE__
,
batchPerTbl
,
recOfBatch
);
...
...
@@ -4640,8 +4688,10 @@ static void* syncWriteProgressive(threadInfo *pThreadInfo) {
int64_t
startTs
=
taosGetTimestampUs
();
int64_t
endTs
;
int
timeStampStep
=
superTblInfo
?
superTblInfo
->
timeStampStep
:
DEFAULT_TIMESTAMP_STEP
;
int
insert_interval
=
superTblInfo
?
superTblInfo
->
insertInterval
:
g_args
.
insert_interval
;
int
timeStampStep
=
superTblInfo
?
superTblInfo
->
timeStampStep
:
DEFAULT_TIMESTAMP_STEP
;
int
insert_interval
=
superTblInfo
?
superTblInfo
->
insertInterval
:
g_args
.
insert_interval
;
uint64_t
st
=
0
;
uint64_t
et
=
0xffffffff
;
...
...
@@ -4650,7 +4700,8 @@ static void* syncWriteProgressive(threadInfo *pThreadInfo) {
pThreadInfo
->
samplePos
=
0
;
for
(
uint32_t
tableSeq
=
pThreadInfo
->
start_table_from
;
tableSeq
<=
pThreadInfo
->
end_table_to
;
for
(
uint32_t
tableSeq
=
pThreadInfo
->
start_table_from
;
tableSeq
<=
pThreadInfo
->
end_table_to
;
tableSeq
++
)
{
int64_t
start_time
=
pThreadInfo
->
start_time
;
...
...
@@ -4746,7 +4797,7 @@ static void* syncWrite(void *sarg) {
threadInfo
*
winfo
=
(
threadInfo
*
)
sarg
;
SSuperTable
*
superTblInfo
=
winfo
->
superTblInfo
;
int
rowsPerTbl
=
superTblInfo
?
superTblInfo
->
rowsPerTbl
:
g_args
.
rows_per_tbl
;
int
rowsPerTbl
=
superTblInfo
?
superTblInfo
->
rowsPerTbl
:
g_args
.
interlace_rows
;
if
(
rowsPerTbl
>
0
)
{
// interlace mode
...
...
@@ -4761,14 +4812,15 @@ static void callBack(void *param, TAOS_RES *res, int code) {
threadInfo
*
winfo
=
(
threadInfo
*
)
param
;
SSuperTable
*
superTblInfo
=
winfo
->
superTblInfo
;
int
insert_interval
=
superTblInfo
?
superTblInfo
->
insertInterval
:
g_args
.
insert_interval
;
int
insert_interval
=
superTblInfo
?
superTblInfo
->
insertInterval
:
g_args
.
insert_interval
;
if
(
insert_interval
)
{
winfo
->
et
=
taosGetTimestampUs
();
if
(((
winfo
->
et
-
winfo
->
st
)
/
1000
)
<
insert_interval
)
{
taosMsleep
(
insert_interval
-
(
winfo
->
et
-
winfo
->
st
)
/
1000
);
// ms
}
}
char
*
buffer
=
calloc
(
1
,
winfo
->
superTblInfo
->
maxSqlLen
);
char
*
data
=
calloc
(
1
,
MAX_DATA_SIZE
);
char
*
pstr
=
buffer
;
...
...
@@ -4786,17 +4838,17 @@ static void callBack(void *param, TAOS_RES *res, int code) {
taos_free_result
(
res
);
return
;
}
for
(
int
i
=
0
;
i
<
g_args
.
num_of_RPR
;
i
++
)
{
int
rand_num
=
taosRandom
()
%
100
;
if
(
0
!=
winfo
->
superTblInfo
->
disorderRatio
&&
rand_num
<
winfo
->
superTblInfo
->
disorderRatio
)
{
if
(
0
!=
winfo
->
superTblInfo
->
disorderRatio
&&
rand_num
<
winfo
->
superTblInfo
->
disorderRatio
)
{
int64_t
d
=
winfo
->
lastTs
-
taosRandom
()
%
1000000
+
rand_num
;
//generateData(data, datatype, ncols_per_record, d, len_of_binary);
(
void
)
generateRowData
(
data
,
MAX_DATA_SIZE
,
d
,
winfo
->
superTblInfo
);
generateRowData
(
data
,
MAX_DATA_SIZE
,
d
,
winfo
->
superTblInfo
);
}
else
{
//generateData(data, datatype, ncols_per_record, start_time += 1000, len_of_binary);
(
void
)
generateRowData
(
data
,
MAX_DATA_SIZE
,
winfo
->
lastTs
+=
1000
,
winfo
->
superTblInfo
);
generateRowData
(
data
,
MAX_DATA_SIZE
,
winfo
->
lastTs
+=
1000
,
winfo
->
superTblInfo
);
}
pstr
+=
sprintf
(
pstr
,
"%s"
,
data
);
winfo
->
counter
++
;
...
...
@@ -4824,7 +4876,8 @@ static void *asyncWrite(void *sarg) {
winfo
->
et
=
0
;
winfo
->
lastTs
=
winfo
->
start_time
;
int
insert_interval
=
superTblInfo
?
superTblInfo
->
insertInterval
:
g_args
.
insert_interval
;
int
insert_interval
=
superTblInfo
?
superTblInfo
->
insertInterval
:
g_args
.
insert_interval
;
if
(
insert_interval
)
{
winfo
->
st
=
taosGetTimestampUs
();
}
...
...
@@ -4850,7 +4903,7 @@ static void startMultiThreadInsertData(int threads, char* db_name,
int
ntables
=
0
;
if
(
superTblInfo
)
{
if
((
superTblInfo
->
childTblOffset
>=
0
)
if
((
superTblInfo
->
childTblOffset
>=
0
)
&&
(
superTblInfo
->
childTblLimit
>
0
))
{
ntables
=
superTblInfo
->
childTblLimit
;
...
...
@@ -5304,16 +5357,16 @@ static int insertTestProcess() {
continue
;
}
startMultiThreadInsertData
(
g_Dbs
.
threadCount
,
g_Dbs
.
db
[
i
].
dbName
,
g_Dbs
.
db
[
i
].
dbCfg
.
precision
,
g_Dbs
.
threadCount
,
g_Dbs
.
db
[
i
].
dbName
,
g_Dbs
.
db
[
i
].
dbCfg
.
precision
,
superTblInfo
);
}
}
else
{
startMultiThreadInsertData
(
g_Dbs
.
threadCount
,
g_Dbs
.
db
[
i
].
dbName
,
g_Dbs
.
db
[
i
].
dbCfg
.
precision
,
g_Dbs
.
threadCount
,
g_Dbs
.
db
[
i
].
dbName
,
g_Dbs
.
db
[
i
].
dbCfg
.
precision
,
NULL
);
}
}
...
...
@@ -5333,7 +5386,7 @@ static int insertTestProcess() {
}
static
void
*
superQueryProcess
(
void
*
sarg
)
{
threadInfo
*
winfo
=
(
threadInfo
*
)
sarg
;
threadInfo
*
winfo
=
(
threadInfo
*
)
sarg
;
//char sqlStr[MAX_TB_NAME_SIZE*2];
//sprintf(sqlStr, "use %s", g_queryInfo.dbName);
...
...
@@ -5342,39 +5395,41 @@ static void *superQueryProcess(void *sarg) {
int64_t
st
=
0
;
int64_t
et
=
0
;
while
(
1
)
{
if
(
g_queryInfo
.
superQueryInfo
.
rate
&&
(
et
-
st
)
<
(
int64_t
)
g_queryInfo
.
superQueryInfo
.
rate
*
1000
)
{
if
(
g_queryInfo
.
superQueryInfo
.
rate
&&
(
et
-
st
)
<
(
int64_t
)
g_queryInfo
.
superQueryInfo
.
rate
*
1000
)
{
taosMsleep
(
g_queryInfo
.
superQueryInfo
.
rate
*
1000
-
(
et
-
st
));
// ms
//printf("========sleep duration:%"PRId64 "========inserted rows:%d, table range:%d - %d\n", (1000 - (et - st)), i, winfo->start_table_from, winfo->end_table_to);
}
st
=
taosGetTimestampUs
();
for
(
int
i
=
0
;
i
<
g_queryInfo
.
superQueryInfo
.
sqlCount
;
i
++
)
{
if
(
0
==
strncasecmp
(
g_queryInfo
.
queryMode
,
"taosc"
,
5
))
{
if
(
0
==
strncasecmp
(
g_queryInfo
.
queryMode
,
"taosc"
,
5
))
{
int64_t
t1
=
taosGetTimestampUs
();
char
tmpFile
[
MAX_FILE_NAME_LEN
*
2
]
=
{
0
};
if
(
g_queryInfo
.
superQueryInfo
.
result
[
i
][
0
]
!=
0
)
{
sprintf
(
tmpFile
,
"%s-%d"
,
g_queryInfo
.
superQueryInfo
.
result
[
i
],
winfo
->
threadID
);
sprintf
(
tmpFile
,
"%s-%d"
,
g_queryInfo
.
superQueryInfo
.
result
[
i
],
winfo
->
threadID
);
}
selectAndGetResult
(
winfo
->
taos
,
g_queryInfo
.
superQueryInfo
.
sql
[
i
],
tmpFile
);
int64_t
t2
=
taosGetTimestampUs
();
printf
(
"=[taosc] thread[%"
PRId64
"] complete one sql, Spent %f s
\n
"
,
selectAndGetResult
(
winfo
->
taos
,
g_queryInfo
.
superQueryInfo
.
sql
[
i
],
tmpFile
);
int64_t
t2
=
taosGetTimestampUs
();
printf
(
"=[taosc] thread[%"
PRId64
"] complete one sql, Spent %f s
\n
"
,
taosGetSelfPthreadId
(),
(
t2
-
t1
)
/
1000000
.
0
);
}
else
{
int64_t
t1
=
taosGetTimestampUs
();
int
retCode
=
postProceSql
(
g_queryInfo
.
host
,
int
retCode
=
postProceSql
(
g_queryInfo
.
host
,
g_queryInfo
.
port
,
g_queryInfo
.
superQueryInfo
.
sql
[
i
]);
int64_t
t2
=
taosGetTimestampUs
();
printf
(
"=[restful] thread[%"
PRId64
"] complete one sql, Spent %f s
\n
"
,
int64_t
t2
=
taosGetTimestampUs
();
printf
(
"=[restful] thread[%"
PRId64
"] complete one sql, Spent %f s
\n
"
,
taosGetSelfPthreadId
(),
(
t2
-
t1
)
/
1000000
.
0
);
if
(
0
!=
retCode
)
{
printf
(
"====restful return fail, threadID[%d]
\n
"
,
winfo
->
threadID
);
return
NULL
;
}
}
}
}
et
=
taosGetTimestampUs
();
printf
(
"==thread[%"
PRId64
"] complete all sqls to specify tables once queries duration:%.6fs
\n\n
"
,
printf
(
"==thread[%"
PRId64
"] complete all sqls to specify tables once queries duration:%.6fs
\n\n
"
,
taosGetSelfPthreadId
(),
(
double
)(
et
-
st
)
/
1000
.
0
);
}
return
NULL
;
...
...
@@ -5383,31 +5438,33 @@ static void *superQueryProcess(void *sarg) {
static
void
replaceSubTblName
(
char
*
inSql
,
char
*
outSql
,
int
tblIndex
)
{
char
sourceString
[
32
]
=
"xxxx"
;
char
subTblName
[
MAX_TB_NAME_SIZE
*
3
];
sprintf
(
subTblName
,
"%s.%s"
,
g_queryInfo
.
dbName
,
sprintf
(
subTblName
,
"%s.%s"
,
g_queryInfo
.
dbName
,
g_queryInfo
.
subQueryInfo
.
childTblName
+
tblIndex
*
TSDB_TABLE_NAME_LEN
);
//printf("inSql: %s\n", inSql);
char
*
pos
=
strstr
(
inSql
,
sourceString
);
if
(
0
==
pos
)
{
return
;
return
;
}
tstrncpy
(
outSql
,
inSql
,
pos
-
inSql
+
1
);
//printf("1: %s\n", outSql);
strcat
(
outSql
,
subTblName
);
//printf("2: %s\n", outSql);
strcat
(
outSql
,
pos
+
strlen
(
sourceString
));
//printf("3: %s\n", outSql);
strcat
(
outSql
,
subTblName
);
//printf("2: %s\n", outSql);
strcat
(
outSql
,
pos
+
strlen
(
sourceString
));
//printf("3: %s\n", outSql);
}
static
void
*
subQueryProcess
(
void
*
sarg
)
{
char
sqlstr
[
1024
];
threadInfo
*
winfo
=
(
threadInfo
*
)
sarg
;
threadInfo
*
winfo
=
(
threadInfo
*
)
sarg
;
int64_t
st
=
0
;
int64_t
et
=
(
int64_t
)
g_queryInfo
.
subQueryInfo
.
rate
*
1000
;
while
(
1
)
{
int
queryTimes
=
g_args
.
query_times
;
while
(
queryTimes
--
)
{
if
(
g_queryInfo
.
subQueryInfo
.
rate
&&
(
et
-
st
)
<
(
int64_t
)
g_queryInfo
.
subQueryInfo
.
rate
*
1000
)
{
taosMsleep
(
g_queryInfo
.
subQueryInfo
.
rate
*
1000
-
(
et
-
st
));
// ms
...
...
@@ -5421,24 +5478,30 @@ static void *subQueryProcess(void *sarg) {
replaceSubTblName
(
g_queryInfo
.
subQueryInfo
.
sql
[
j
],
sqlstr
,
i
);
char
tmpFile
[
MAX_FILE_NAME_LEN
*
2
]
=
{
0
};
if
(
g_queryInfo
.
subQueryInfo
.
result
[
i
][
0
]
!=
0
)
{
sprintf
(
tmpFile
,
"%s-%d"
,
g_queryInfo
.
subQueryInfo
.
result
[
i
],
sprintf
(
tmpFile
,
"%s-%d"
,
g_queryInfo
.
subQueryInfo
.
result
[
i
],
winfo
->
threadID
);
}
selectAndGetResult
(
winfo
->
taos
,
sqlstr
,
tmpFile
);
selectAndGetResult
(
winfo
->
taos
,
sqlstr
,
tmpFile
);
}
}
et
=
taosGetTimestampUs
();
printf
(
"####thread[%"
PRId64
"] complete all sqls to allocate all sub-tables[%d - %d] once queries duration:%.4fs
\n\n
"
,
taosGetSelfPthreadId
(),
winfo
->
start_table_from
,
winfo
->
end_table_to
,
taosGetSelfPthreadId
(),
winfo
->
start_table_from
,
winfo
->
end_table_to
,
(
double
)(
et
-
st
)
/
1000000
.
0
);
}
return
NULL
;
}
static
int
queryTestProcess
()
{
setupForAnsiEscape
();
printfQueryMeta
();
resetAfterAnsiEscape
();
TAOS
*
taos
=
NULL
;
taos
=
taos_connect
(
g_queryInfo
.
host
,
g_queryInfo
.
user
,
...
...
@@ -5456,15 +5519,13 @@ static int queryTestProcess() {
g_queryInfo
.
subQueryInfo
.
sTblName
,
&
g_queryInfo
.
subQueryInfo
.
childTblName
,
&
g_queryInfo
.
subQueryInfo
.
childTblCount
);
}
printfQueryMeta
();
}
if
(
!
g_args
.
answer_yes
)
{
printf
(
"Press enter key to continue
\n\n
"
);
(
void
)
getchar
();
}
printfQuerySystemInfo
(
taos
);
pthread_t
*
pids
=
NULL
;
...
...
@@ -5553,7 +5614,7 @@ static int queryTestProcess() {
for
(
int
i
=
0
;
i
<
threads
;
i
++
)
{
threadInfo
*
t_info
=
infosOfSub
+
i
;
t_info
->
threadID
=
i
;
t_info
->
start_table_from
=
startFrom
;
t_info
->
ntables
=
i
<
b
?
a
+
1
:
a
;
t_info
->
end_table_to
=
i
<
b
?
startFrom
+
a
:
startFrom
+
a
-
1
;
...
...
@@ -5565,7 +5626,7 @@ static int queryTestProcess() {
g_queryInfo
.
subQueryInfo
.
threadCnt
=
threads
;
}
else
{
g_queryInfo
.
subQueryInfo
.
threadCnt
=
0
;
}
}
for
(
int
i
=
0
;
i
<
g_queryInfo
.
superQueryInfo
.
concurrent
;
i
++
)
{
pthread_join
(
pids
[
i
],
NULL
);
...
...
@@ -5753,18 +5814,20 @@ static void *superSubscribeProcess(void *sarg) {
}
static
int
subscribeTestProcess
()
{
setupForAnsiEscape
();
printfQueryMeta
();
resetAfterAnsiEscape
();
if
(
!
g_args
.
answer_yes
)
{
printf
(
"Press enter key to continue
\n\n
"
);
(
void
)
getchar
();
}
TAOS
*
taos
=
NULL
;
taos
=
taos_connect
(
g_queryInfo
.
host
,
g_queryInfo
.
user
,
g_queryInfo
.
password
,
g_queryInfo
.
dbName
,
TAOS
*
taos
=
NULL
;
taos
=
taos_connect
(
g_queryInfo
.
host
,
g_queryInfo
.
user
,
g_queryInfo
.
password
,
g_queryInfo
.
dbName
,
g_queryInfo
.
port
);
if
(
taos
==
NULL
)
{
errorPrint
(
"Failed to connect to TDengine, reason:%s
\n
"
,
taos_errstr
(
NULL
));
...
...
@@ -5772,10 +5835,10 @@ static int subscribeTestProcess() {
}
if
(
0
!=
g_queryInfo
.
subQueryInfo
.
sqlCount
)
{
getAllChildNameOfSuperTable
(
taos
,
g_queryInfo
.
dbName
,
g_queryInfo
.
subQueryInfo
.
sTblName
,
&
g_queryInfo
.
subQueryInfo
.
childTblName
,
getAllChildNameOfSuperTable
(
taos
,
g_queryInfo
.
dbName
,
g_queryInfo
.
subQueryInfo
.
sTblName
,
&
g_queryInfo
.
subQueryInfo
.
childTblName
,
&
g_queryInfo
.
subQueryInfo
.
childTblCount
);
}
...
...
@@ -5875,7 +5938,8 @@ static void initOfInsertMeta() {
tstrncpy
(
g_Dbs
.
user
,
TSDB_DEFAULT_USER
,
MAX_DB_NAME_SIZE
);
tstrncpy
(
g_Dbs
.
password
,
TSDB_DEFAULT_PASS
,
MAX_DB_NAME_SIZE
);
g_Dbs
.
threadCount
=
2
;
g_Dbs
.
use_metric
=
true
;
g_Dbs
.
use_metric
=
g_args
.
use_metric
;
}
static
void
initOfQueryMeta
()
{
...
...
@@ -6084,16 +6148,23 @@ static void querySqlFile(TAOS* taos, char* sqlFile)
static
void
testMetaFile
()
{
if
(
INSERT_TEST
==
g_args
.
test_mode
)
{
if
(
g_Dbs
.
cfgDir
[
0
])
taos_options
(
TSDB_OPTION_CONFIGDIR
,
g_Dbs
.
cfgDir
);
if
(
g_Dbs
.
cfgDir
[
0
])
taos_options
(
TSDB_OPTION_CONFIGDIR
,
g_Dbs
.
cfgDir
);
insertTestProcess
();
}
else
if
(
QUERY_TEST
==
g_args
.
test_mode
)
{
if
(
g_queryInfo
.
cfgDir
[
0
])
taos_options
(
TSDB_OPTION_CONFIGDIR
,
g_queryInfo
.
cfgDir
);
queryTestProcess
();
}
else
if
(
SUBSCRIBE_TEST
==
g_args
.
test_mode
)
{
if
(
g_queryInfo
.
cfgDir
[
0
])
taos_options
(
TSDB_OPTION_CONFIGDIR
,
g_queryInfo
.
cfgDir
);
subscribeTestProcess
();
}
else
{
;
}
...
...
src/mnode/src/mnodeDb.c
浏览文件 @
e3f4c903
...
...
@@ -50,6 +50,7 @@ static int32_t mnodeGetDbMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pConn
static
int32_t
mnodeRetrieveDbs
(
SShowObj
*
pShow
,
char
*
data
,
int32_t
rows
,
void
*
pConn
);
static
int32_t
mnodeProcessCreateDbMsg
(
SMnodeMsg
*
pMsg
);
static
int32_t
mnodeProcessDropDbMsg
(
SMnodeMsg
*
pMsg
);
static
int32_t
mnodeProcessSyncDbMsg
(
SMnodeMsg
*
pMsg
);
int32_t
mnodeProcessAlterDbMsg
(
SMnodeMsg
*
pMsg
);
#ifndef _TOPIC
...
...
@@ -178,6 +179,7 @@ int32_t mnodeInitDbs() {
mnodeAddWriteMsgHandle
(
TSDB_MSG_TYPE_CM_CREATE_DB
,
mnodeProcessCreateDbMsg
);
mnodeAddWriteMsgHandle
(
TSDB_MSG_TYPE_CM_ALTER_DB
,
mnodeProcessAlterDbMsg
);
mnodeAddWriteMsgHandle
(
TSDB_MSG_TYPE_CM_DROP_DB
,
mnodeProcessDropDbMsg
);
mnodeAddWriteMsgHandle
(
TSDB_MSG_TYPE_CM_SYNC_DB
,
mnodeProcessSyncDbMsg
);
mnodeAddShowMetaHandle
(
TSDB_MGMT_TABLE_DB
,
mnodeGetDbMeta
);
mnodeAddShowRetrieveHandle
(
TSDB_MGMT_TABLE_DB
,
mnodeRetrieveDbs
);
mnodeAddShowFreeIterHandle
(
TSDB_MGMT_TABLE_DB
,
mnodeCancelGetNextDb
);
...
...
@@ -1184,6 +1186,10 @@ static int32_t mnodeProcessDropDbMsg(SMnodeMsg *pMsg) {
return
mnodeDropDb
(
pMsg
);
}
static
int32_t
mnodeProcessSyncDbMsg
(
SMnodeMsg
*
pMsg
)
{
return
0
;
}
void
mnodeDropAllDbs
(
SAcctObj
*
pAcct
)
{
int32_t
numOfDbs
=
0
;
SDbObj
*
pDb
=
NULL
;
...
...
src/query/inc/sql.y
浏览文件 @
e3f4c903
...
...
@@ -726,6 +726,9 @@ expritem(A) ::= . {A = 0;}
///////////////////////////////////reset query cache//////////////////////////////////////
cmd ::= RESET QUERY CACHE. { setDCLSqlElems(pInfo, TSDB_SQL_RESET_CACHE, 0);}
///////////////////////////////////sync replica database//////////////////////////////////
cmd ::= SYNCDB ids(X) REPLICA.{ setDCLSqlElems(pInfo, TSDB_SQL_SYNC_DB_REPLICA, 1, &X);}
///////////////////////////////////ALTER TABLE statement//////////////////////////////////
cmd ::= ALTER TABLE ids(X) cpxName(F) ADD COLUMN columnlist(A). {
X.n += F.n;
...
...
src/query/src/qSqlParser.c
浏览文件 @
e3f4c903
...
...
@@ -911,6 +911,7 @@ void setDCLSqlElems(SSqlInfo *pInfo, int32_t type, int32_t nParam, ...) {
SStrToken
*
pToken
=
va_arg
(
va
,
SStrToken
*
);
taosArrayPush
(
pInfo
->
pMiscInfo
->
a
,
pToken
);
}
va_end
(
va
);
}
...
...
src/query/src/qTokenizer.c
浏览文件 @
e3f4c903
...
...
@@ -100,6 +100,7 @@ static SKeyword keywordTable[] = {
{
"ACCOUNT"
,
TK_ACCOUNT
},
{
"USE"
,
TK_USE
},
{
"DESCRIBE"
,
TK_DESCRIBE
},
{
"SYNCDB"
,
TK_SYNCDB
},
{
"ALTER"
,
TK_ALTER
},
{
"PASS"
,
TK_PASS
},
{
"PRIVILEGE"
,
TK_PRIVILEGE
},
...
...
src/query/src/sql.c
浏览文件 @
e3f4c903
...
...
@@ -97,28 +97,28 @@
#endif
/************* Begin control #defines *****************************************/
#define YYCODETYPE unsigned short int
#define YYNOCODE 26
3
#define YYNOCODE 26
4
#define YYACTIONTYPE unsigned short int
#define ParseTOKENTYPE SStrToken
typedef
union
{
int
yyinit
;
ParseTOKENTYPE
yy0
;
S
LimitVal
yy18
;
SFromInfo
*
yy7
0
;
SSessionWindowVal
yy87
;
S
CreateDbInfo
yy94
;
int
yy116
;
S
SubclauseInfo
*
yy141
;
tSqlExpr
*
yy170
;
S
CreateTableSql
*
yy194
;
tVariant
yy218
;
S
IntervalVal
yy220
;
SCreate
dTableInfo
yy252
;
S
QuerySqlNode
*
yy254
;
SCreateAcctInfo
yy419
;
S
Array
*
yy429
;
TAOS_FIELD
yy451
;
int64_t
yy481
;
S
CreateTableSql
*
yy14
;
int
yy2
0
;
tSqlExpr
*
yy118
;
S
Array
*
yy159
;
SIntervalVal
yy184
;
S
CreatedTableInfo
yy206
;
SSessionWindowVal
yy249
;
S
QuerySqlNode
*
yy272
;
int64_t
yy317
;
S
CreateDbInfo
yy322
;
SCreate
AcctInfo
yy351
;
S
SubclauseInfo
*
yy391
;
TAOS_FIELD
yy407
;
S
LimitVal
yy440
;
tVariant
yy488
;
SFromInfo
*
yy514
;
}
YYMINORTYPE
;
#ifndef YYSTACKDEPTH
#define YYSTACKDEPTH 100
...
...
@@ -128,17 +128,17 @@ typedef union {
#define ParseARG_FETCH SSqlInfo* pInfo = yypParser->pInfo
#define ParseARG_STORE yypParser->pInfo = pInfo
#define YYFALLBACK 1
#define YYNSTATE 31
3
#define YYNRULE 26
5
#define YYNTOKEN 18
6
#define YY_MAX_SHIFT 31
2
#define YY_MIN_SHIFTREDUCE 50
2
#define YY_MAX_SHIFTREDUCE 7
66
#define YY_ERROR_ACTION 7
67
#define YY_ACCEPT_ACTION 7
68
#define YY_NO_ACTION 7
69
#define YY_MIN_REDUCE 77
0
#define YY_MAX_REDUCE 103
4
#define YYNSTATE 31
5
#define YYNRULE 26
6
#define YYNTOKEN 18
7
#define YY_MAX_SHIFT 31
4
#define YY_MIN_SHIFTREDUCE 50
5
#define YY_MAX_SHIFTREDUCE 7
70
#define YY_ERROR_ACTION 7
71
#define YY_ACCEPT_ACTION 7
72
#define YY_NO_ACTION 7
73
#define YY_MIN_REDUCE 77
4
#define YY_MAX_REDUCE 103
9
/************* End control #defines *******************************************/
/* Define the yytestcase() macro to be a no-op if is not already defined
...
...
@@ -204,259 +204,259 @@ typedef union {
** yy_default[] Default action for each state.
**
*********** Begin parsing tables **********************************************/
#define YY_ACTTAB_COUNT (67
6
)
#define YY_ACTTAB_COUNT (67
9
)
static
const
YYACTIONTYPE
yy_action
[]
=
{
/* 0 */
910
,
549
,
201
,
310
,
205
,
139
,
937
,
3
,
166
,
550
,
/* 10 */
7
68
,
312
,
17
,
47
,
48
,
139
,
51
,
52
,
30
,
180
,
/* 20 */
21
3
,
41
,
180
,
50
,
260
,
55
,
53
,
57
,
54
,
1016
,
/* 30 */
9
16
,
208
,
1017
,
46
,
45
,
178
,
180
,
44
,
43
,
42
,
/* 40 */
47
,
48
,
219
,
51
,
52
,
207
,
1017
,
213
,
41
,
549
,
/* 50 */
50
,
26
0
,
55
,
53
,
57
,
54
,
928
,
550
,
184
,
202
,
/* 60 */
46
,
45
,
91
3
,
218
,
44
,
43
,
42
,
48
,
934
,
51
,
/* 70 */
52
,
24
0
,
968
,
213
,
41
,
549
,
50
,
260
,
55
,
53
,
/* 80 */
57
,
54
,
9
69
,
550
,
255
,
220
,
46
,
45
,
276
,
916
,
/* 90 */
44
,
43
,
42
,
50
3
,
504
,
505
,
506
,
507
,
508
,
509
,
/* 100 */
51
0
,
511
,
512
,
513
,
514
,
515
,
311
,
628
,
84
,
230
,
/* 110 */
69
,
916
,
1013
,
47
,
48
,
30
,
51
,
52
,
296
,
30
,
/* 120 */
21
3
,
41
,
549
,
50
,
260
,
55
,
53
,
57
,
54
,
6
4
,
/* 130 */
550
,
306
,
714
,
46
,
45
,
286
,
285
,
44
,
43
,
42
,
/* 140 */
47
,
49
,
904
,
51
,
52
,
224
,
1012
,
213
,
41
,
65
,
/* 150 */
50
,
26
0
,
55
,
53
,
57
,
54
,
216
,
916
,
902
,
913
,
/* 160 */
46
,
45
,
2
22
,
912
,
44
,
43
,
42
,
23
,
274
,
305
,
/* 170 */
30
4
,
273
,
272
,
271
,
303
,
270
,
302
,
301
,
300
,
269
,
/* 180 */
299
,
298
,
876
,
139
,
864
,
865
,
866
,
867
,
868
,
869
,
/* 190 */
87
0
,
871
,
872
,
873
,
874
,
875
,
877
,
878
,
51
,
52
,
/* 200 */
815
,
139
,
213
,
41
,
165
,
50
,
260
,
55
,
53
,
57
,
/* 210 */
54
,
1011
,
18
,
81
,
226
,
46
,
45
,
283
,
282
,
44
,
/* 220 */
43
,
42
,
212
,
727
,
928
,
25
,
718
,
68
,
721
,
189
,
/* 230 */
724
,
223
,
212
,
727
,
278
,
190
,
718
,
276
,
721
,
203
,
/* 240 */
724
,
117
,
116
,
188
,
899
,
900
,
29
,
903
,
257
,
233
,
/* 250 */
77
,
44
,
43
,
42
,
209
,
210
,
237
,
236
,
259
,
90
1
,
/* 260 */
23
,
197
,
305
,
304
,
209
,
210
,
225
,
303
,
78
,
302
,
/* 270 */
301
,
300
,
73
,
299
,
298
,
884
,
104
,
30
,
882
,
883
,
/* 280 */
36
,
296
,
720
,
885
,
723
,
887
,
888
,
886
,
667
,
889
,
/* 290 */
890
,
55
,
53
,
57
,
54
,
132
,
309
,
308
,
125
,
46
,
/* 300 */
45
,
914
,
239
,
44
,
43
,
42
,
102
,
107
,
30
,
196
,
/* 310 */
664
,
73
,
96
,
106
,
112
,
115
,
105
,
24
,
217
,
36
,
/* 320 */
674
,
913
,
109
,
5
,
155
,
56
,
261
,
79
,
243
,
33
,
/* 330 */
1
54
,
91
,
86
,
90
,
30
,
56
,
173
,
169
,
726
,
3
0
,
/* 340 */
70
,
30
,
171
,
168
,
120
,
119
,
118
,
12
,
726
,
27
9
,
/* 350 */
211
,
83
,
913
,
80
,
725
,
824
,
46
,
45
,
245
,
165
,
/* 360 */
44
,
43
,
42
,
198
,
725
,
816
,
671
,
652
,
182
,
165
,
/* 370 */
649
,
719
,
650
,
722
,
651
,
280
,
1
,
153
,
913
,
716
,
/* 380 */
284
,
61
,
288
,
913
,
183
,
913
,
241
,
695
,
696
,
680
,
/* 390 */
31
,
686
,
687
,
134
,
6
,
60
,
20
,
747
,
227
,
228
,
/* 400 */
72
8
,
19
,
638
,
62
,
19
,
263
,
31
,
640
,
265
,
31
,
/* 410 */
639
,
60
,
82
,
28
,
60
,
717
,
266
,
95
,
94
,
14
,
/* 420 */
13
,
67
,
730
,
627
,
185
,
101
,
100
,
179
,
16
,
15
,
/* 430 */
979
,
656
,
654
,
657
,
655
,
114
,
113
,
130
,
128
,
186
,
/* 440 */
1
87
,
193
,
194
,
192
,
177
,
191
,
181
,
1026
,
915
,
978
,
/* 450 */
214
,
975
,
974
,
215
,
287
,
131
,
39
,
936
,
944
,
946
,
/* 460 */
133
,
137
,
929
,
244
,
129
,
150
,
961
,
960
,
911
,
909
,
/* 470 */
1
49
,
679
,
246
,
151
,
204
,
152
,
653
,
250
,
258
,
827
,
/* 480 */
1
40
,
66
,
141
,
268
,
37
,
63
,
175
,
926
,
34
,
277
,
/* 490 */
2
48
,
823
,
253
,
142
,
1031
,
58
,
92
,
1030
,
1028
,
256
,
/* 500 */
156
,
143
,
281
,
1025
,
98
,
1024
,
1022
,
254
,
157
,
845
,
/* 510 */
35
,
32
,
38
,
252
,
176
,
812
,
108
,
810
,
110
,
111
,
/* 520 */
808
,
807
,
229
,
167
,
805
,
804
,
803
,
802
,
801
,
800
,
/* 530 */
170
,
172
,
797
,
795
,
793
,
791
,
789
,
174
,
247
,
242
,
/* 540 */
71
,
74
,
249
,
962
,
40
,
297
,
103
,
289
,
290
,
29
1
,
/* 550 */
292
,
293
,
294
,
295
,
199
,
221
,
307
,
766
,
231
,
232
,
/* 560 */
2
67
,
765
,
234
,
235
,
764
,
200
,
238
,
87
,
88
,
752
,
/* 570 */
195
,
243
,
75
,
8
,
262
,
806
,
72
,
659
,
681
,
135
,
/* 580 */
76
,
121
,
159
,
846
,
160
,
161
,
158
,
162
,
164
,
122
,
/* 590 */
1
63
,
799
,
2
,
123
,
880
,
124
,
798
,
790
,
684
,
14
4
,
/* 600 */
1
47
,
145
,
146
,
4
,
136
,
148
,
892
,
206
,
251
,
2
6
,
/* 610 */
688
,
138
,
9
,
10
,
729
,
27
,
7
,
11
,
21
,
731
,
/* 620 */
22
,
85
,
264
,
591
,
587
,
83
,
585
,
584
,
583
,
580
,
/* 630 */
5
53
,
275
,
93
,
89
,
31
,
630
,
59
,
97
,
629
,
99
,
/* 640 */
6
26
,
575
,
573
,
565
,
571
,
567
,
569
,
563
,
561
,
594
,
/* 650 */
5
93
,
592
,
590
,
589
,
588
,
586
,
582
,
581
,
60
,
551
,
/* 660 */
5
19
,
517
,
770
,
769
,
769
,
769
,
769
,
769
,
769
,
769
,
/* 670 */
7
69
,
769
,
769
,
769
,
126
,
127
,
/* 0 */
133
,
552
,
202
,
312
,
206
,
140
,
941
,
17
,
85
,
553
,
/* 10 */
7
72
,
314
,
179
,
47
,
48
,
140
,
51
,
52
,
30
,
181
,
/* 20 */
21
4
,
41
,
181
,
50
,
262
,
55
,
53
,
57
,
54
,
1020
,
/* 30 */
9
20
,
209
,
1021
,
46
,
45
,
185
,
181
,
44
,
43
,
42
,
/* 40 */
47
,
48
,
908
,
51
,
52
,
208
,
1021
,
214
,
41
,
552
,
/* 50 */
50
,
26
2
,
55
,
53
,
57
,
54
,
932
,
553
,
1017
,
203
,
/* 60 */
46
,
45
,
91
7
,
247
,
44
,
43
,
42
,
48
,
938
,
51
,
/* 70 */
52
,
24
2
,
972
,
214
,
41
,
552
,
50
,
262
,
55
,
53
,
/* 80 */
57
,
54
,
9
73
,
553
,
257
,
278
,
46
,
45
,
298
,
225
,
/* 90 */
44
,
43
,
42
,
50
6
,
507
,
508
,
509
,
510
,
511
,
512
,
/* 100 */
51
3
,
514
,
515
,
516
,
517
,
518
,
313
,
631
,
1016
,
231
,
/* 110 */
70
,
552
,
30
,
47
,
48
,
1015
,
51
,
52
,
819
,
553
,
/* 120 */
21
4
,
41
,
166
,
50
,
262
,
55
,
53
,
57
,
54
,
4
4
,
/* 130 */
43
,
42
,
717
,
46
,
45
,
288
,
287
,
44
,
43
,
42
,
/* 140 */
47
,
49
,
198
,
51
,
52
,
140
,
140
,
214
,
41
,
234
,
/* 150 */
50
,
26
2
,
55
,
53
,
57
,
54
,
916
,
238
,
237
,
227
,
/* 160 */
46
,
45
,
2
85
,
284
,
44
,
43
,
42
,
23
,
276
,
307
,
/* 170 */
30
6
,
275
,
274
,
273
,
305
,
272
,
304
,
303
,
302
,
271
,
/* 180 */
301
,
300
,
880
,
30
,
868
,
869
,
870
,
871
,
872
,
873
,
/* 190 */
87
4
,
875
,
876
,
877
,
878
,
879
,
881
,
882
,
51
,
52
,
/* 200 */
18
,
30
,
214
,
41
,
906
,
50
,
262
,
55
,
53
,
57
,
/* 210 */
54
,
259
,
79
,
78
,
25
,
46
,
45
,
190
,
199
,
44
,
/* 220 */
43
,
42
,
82
,
191
,
217
,
28
,
30
,
917
,
268
,
118
,
/* 230 */
117
,
189
,
12
,
213
,
730
,
932
,
84
,
721
,
81
,
724
,
/* 240 */
74
,
727
,
218
,
213
,
730
,
917
,
80
,
721
,
36
,
724
,
/* 250 */
204
,
727
,
30
,
903
,
904
,
29
,
907
,
46
,
45
,
7
1
,
/* 260 */
74
,
44
,
43
,
42
,
223
,
210
,
211
,
281
,
36
,
261
,
/* 270 */
917
,
23
,
914
,
307
,
306
,
210
,
211
,
723
,
305
,
726
,
/* 280 */
304
,
303
,
302
,
278
,
301
,
300
,
311
,
310
,
126
,
677
,
/* 290 */
241
,
888
,
68
,
282
,
886
,
887
,
917
,
245
,
197
,
889
,
/* 300 */
219
,
891
,
892
,
890
,
670
,
893
,
894
,
55
,
53
,
57
,
/* 310 */
54
,
1
,
154
,
263
,
220
,
46
,
45
,
30
,
221
,
44
,
/* 320 */
43
,
42
,
105
,
103
,
108
,
308
,
920
,
298
,
69
,
97
,
/* 330 */
1
07
,
113
,
116
,
106
,
224
,
655
,
56
,
280
,
652
,
11
0
,
/* 340 */
653
,
226
,
654
,
30
,
920
,
667
,
56
,
5
,
156
,
72
9
,
/* 350 */
183
,
920
,
24
,
33
,
155
,
92
,
87
,
91
,
286
,
729
,
/* 360 */
905
,
917
,
174
,
170
,
719
,
728
,
228
,
229
,
172
,
169
,
/* 370 */
121
,
120
,
119
,
828
,
820
,
728
,
918
,
166
,
166
,
3
,
/* 380 */
167
,
243
,
674
,
212
,
290
,
31
,
683
,
917
,
698
,
699
,
/* 390 */
135
,
689
,
690
,
750
,
731
,
60
,
20
,
19
,
19
,
722
,
/* 400 */
72
0
,
725
,
61
,
64
,
641
,
184
,
265
,
643
,
31
,
733
,
/* 410 */
31
,
60
,
267
,
642
,
115
,
114
,
83
,
60
,
96
,
95
,
/* 420 */
186
,
14
,
13
,
65
,
62
,
180
,
187
,
6
,
102
,
101
,
/* 430 */
67
,
188
,
630
,
16
,
15
,
659
,
657
,
660
,
658
,
131
,
/* 440 */
1
29
,
194
,
195
,
193
,
656
,
178
,
192
,
182
,
1031
,
919
,
/* 450 */
983
,
239
,
982
,
215
,
979
,
978
,
216
,
289
,
39
,
132
,
/* 460 */
940
,
948
,
950
,
130
,
134
,
933
,
138
,
246
,
965
,
964
,
/* 470 */
1
51
,
915
,
150
,
682
,
248
,
913
,
205
,
299
,
104
,
884
,
/* 480 */
1
60
,
260
,
152
,
153
,
145
,
143
,
141
,
831
,
270
,
66
,
/* 490 */
2
50
,
930
,
63
,
255
,
37
,
176
,
34
,
279
,
58
,
142
,
/* 500 */
827
,
1036
,
93
,
1035
,
1033
,
157
,
283
,
1030
,
99
,
1029
,
/* 510 */
1027
,
158
,
849
,
35
,
258
,
32
,
38
,
256
,
177
,
816
,
/* 520 */
109
,
814
,
111
,
112
,
254
,
812
,
811
,
230
,
168
,
252
,
/* 530 */
809
,
808
,
807
,
806
,
805
,
804
,
171
,
173
,
801
,
799
,
/* 540 */
797
,
795
,
793
,
175
,
249
,
244
,
72
,
75
,
40
,
25
1
,
/* 550 */
966
,
291
,
292
,
293
,
294
,
295
,
296
,
297
,
309
,
200
,
/* 560 */
2
22
,
770
,
269
,
232
,
233
,
769
,
235
,
201
,
196
,
88
,
/* 570 */
89
,
236
,
768
,
756
,
755
,
240
,
245
,
8
,
810
,
662
,
/* 580 */
122
,
161
,
123
,
165
,
163
,
803
,
850
,
159
,
162
,
164
,
/* 590 */
1
24
,
802
,
73
,
125
,
794
,
4
,
2
,
264
,
76
,
68
4
,
/* 600 */
1
36
,
137
,
687
,
77
,
144
,
148
,
146
,
147
,
149
,
89
6
,
/* 610 */
207
,
253
,
26
,
691
,
139
,
27
,
9
,
732
,
10
,
7
,
/* 620 */
734
,
11
,
21
,
266
,
22
,
86
,
594
,
84
,
590
,
588
,
/* 630 */
5
87
,
586
,
583
,
556
,
277
,
31
,
59
,
90
,
633
,
94
,
/* 640 */
6
32
,
629
,
578
,
98
,
100
,
576
,
568
,
574
,
570
,
572
,
/* 650 */
5
66
,
564
,
597
,
596
,
595
,
593
,
592
,
591
,
589
,
585
,
/* 660 */
5
84
,
60
,
554
,
522
,
520
,
774
,
773
,
773
,
773
,
773
,
/* 670 */
7
73
,
773
,
773
,
773
,
773
,
773
,
773
,
127
,
128
,
};
static
const
YYCODETYPE
yy_lookahead
[]
=
{
/* 0 */
19
0
,
1
,
189
,
190
,
209
,
190
,
190
,
193
,
194
,
9
,
/* 10 */
18
7
,
188
,
251
,
13
,
14
,
190
,
16
,
17
,
190
,
251
,
/* 20 */
20
,
21
,
25
1
,
23
,
24
,
25
,
26
,
27
,
28
,
261
,
/* 30 */
23
5
,
260
,
261
,
33
,
34
,
251
,
251
,
37
,
38
,
39
,
/* 40 */
13
,
14
,
23
2
,
16
,
17
,
260
,
261
,
20
,
21
,
1
,
/* 50 */
23
,
24
,
25
,
26
,
27
,
28
,
23
3
,
9
,
251
,
231
,
/* 60 */
33
,
34
,
23
4
,
209
,
37
,
38
,
39
,
14
,
252
,
16
,
/* 70 */
17
,
24
8
,
257
,
20
,
21
,
1
,
23
,
24
,
25
,
26
,
/* 80 */
27
,
28
,
25
7
,
9
,
259
,
209
,
33
,
34
,
79
,
235
,
/* 0 */
19
1
,
1
,
190
,
191
,
210
,
191
,
191
,
252
,
197
,
9
,
/* 10 */
18
8
,
189
,
252
,
13
,
14
,
191
,
16
,
17
,
191
,
252
,
/* 20 */
20
,
21
,
25
2
,
23
,
24
,
25
,
26
,
27
,
28
,
262
,
/* 30 */
23
6
,
261
,
262
,
33
,
34
,
252
,
252
,
37
,
38
,
39
,
/* 40 */
13
,
14
,
23
1
,
16
,
17
,
261
,
262
,
20
,
21
,
1
,
/* 50 */
23
,
24
,
25
,
26
,
27
,
28
,
23
4
,
9
,
252
,
232
,
/* 60 */
33
,
34
,
23
5
,
254
,
37
,
38
,
39
,
14
,
253
,
16
,
/* 70 */
17
,
24
9
,
258
,
20
,
21
,
1
,
23
,
24
,
25
,
26
,
/* 80 */
27
,
28
,
25
8
,
9
,
260
,
79
,
33
,
34
,
81
,
67
,
/* 90 */
37
,
38
,
39
,
45
,
46
,
47
,
48
,
49
,
50
,
51
,
/* 100 */
52
,
53
,
54
,
55
,
56
,
57
,
58
,
5
,
196
,
61
,
/* 110 */
110
,
235
,
251
,
13
,
14
,
190
,
16
,
17
,
81
,
190
,
/* 120 */
20
,
21
,
1
,
23
,
24
,
25
,
26
,
27
,
28
,
109
,
/* 130 */
9
,
20
9
,
105
,
33
,
34
,
33
,
34
,
37
,
38
,
39
,
/* 140 */
13
,
14
,
2
30
,
16
,
17
,
67
,
251
,
20
,
21
,
129
,
/* 150 */
23
,
24
,
25
,
26
,
27
,
28
,
23
1
,
235
,
0
,
234
,
/* 160 */
33
,
34
,
67
,
234
,
37
,
38
,
39
,
88
,
89
,
90
,
/* 100 */
52
,
53
,
54
,
55
,
56
,
57
,
58
,
5
,
252
,
61
,
/* 110 */
110
,
1
,
191
,
13
,
14
,
252
,
16
,
17
,
196
,
9
,
/* 120 */
20
,
21
,
200
,
23
,
24
,
25
,
26
,
27
,
28
,
37
,
/* 130 */
38
,
3
9
,
105
,
33
,
34
,
33
,
34
,
37
,
38
,
39
,
/* 140 */
13
,
14
,
2
52
,
16
,
17
,
191
,
191
,
20
,
21
,
135
,
/* 150 */
23
,
24
,
25
,
26
,
27
,
28
,
23
5
,
143
,
144
,
137
,
/* 160 */
33
,
34
,
140
,
141
,
37
,
38
,
39
,
88
,
89
,
90
,
/* 170 */
91
,
92
,
93
,
94
,
95
,
96
,
97
,
98
,
99
,
100
,
/* 180 */
101
,
102
,
20
8
,
190
,
210
,
211
,
212
,
213
,
214
,
215
,
/* 190 */
21
6
,
217
,
218
,
219
,
220
,
221
,
222
,
223
,
16
,
17
,
/* 200 */
195
,
190
,
20
,
21
,
199
,
23
,
24
,
25
,
26
,
27
,
/* 210 */
28
,
25
1
,
44
,
196
,
136
,
33
,
34
,
139
,
140
,
37
,
/* 220 */
38
,
39
,
1
,
2
,
233
,
104
,
5
,
196
,
7
,
61
,
/* 230 */
9
,
136
,
1
,
2
,
139
,
67
,
5
,
79
,
7
,
248
,
/* 240 */
9
,
73
,
74
,
75
,
227
,
228
,
229
,
230
,
255
,
135
,
/* 250 */
2
57
,
37
,
38
,
39
,
33
,
34
,
142
,
143
,
37
,
228
,
/* 260 */
88
,
251
,
90
,
91
,
33
,
34
,
190
,
95
,
257
,
9
7
,
/* 270 */
98
,
99
,
104
,
101
,
102
,
208
,
76
,
190
,
211
,
212
,
/* 280 */
112
,
81
,
5
,
216
,
7
,
218
,
219
,
220
,
37
,
222
,
/* 290 */
223
,
25
,
26
,
27
,
28
,
190
,
64
,
65
,
66
,
33
,
/* 300 */
34
,
225
,
134
,
37
,
38
,
39
,
62
,
63
,
190
,
141
,
/* 310 */
109
,
104
,
68
,
69
,
70
,
71
,
72
,
116
,
231
,
112
,
/* 320 */
105
,
234
,
78
,
62
,
63
,
104
,
15
,
236
,
113
,
68
,
/* 330 */
69
,
70
,
71
,
72
,
1
90
,
104
,
62
,
63
,
117
,
190
,
/* 340 */
249
,
190
,
68
,
69
,
70
,
71
,
72
,
104
,
117
,
231
,
/* 350 */
60
,
108
,
234
,
110
,
133
,
195
,
33
,
34
,
253
,
199
,
/* 360 */
37
,
38
,
39
,
251
,
133
,
195
,
115
,
2
,
251
,
19
9
,
/* 370 */
5
,
5
,
7
,
7
,
9
,
231
,
197
,
198
,
234
,
1
,
/* 380 */
231
,
109
,
231
,
234
,
251
,
234
,
105
,
124
,
125
,
10
5
,
/* 390 */
109
,
105
,
105
,
10
9
,
104
,
109
,
109
,
105
,
33
,
34
,
/* 400 */
105
,
109
,
105
,
131
,
109
,
105
,
109
,
105
,
105
,
109
,
/* 410 */
10
5
,
109
,
109
,
104
,
109
,
37
,
107
,
137
,
138
,
137
,
/* 420 */
138
,
104
,
111
,
106
,
251
,
137
,
138
,
251
,
137
,
138
,
/* 430 */
226
,
5
,
5
,
7
,
7
,
76
,
77
,
62
,
63
,
251
,
/* 440 */
251
,
251
,
251
,
251
,
251
,
251
,
251
,
235
,
235
,
22
6
,
/* 450 */
22
6
,
226
,
226
,
226
,
226
,
190
,
250
,
190
,
190
,
190
,
/* 460 */
19
0
,
190
,
233
,
233
,
60
,
190
,
258
,
258
,
233
,
190
,
/* 470 */
237
,
117
,
254
,
190
,
254
,
190
,
111
,
119
,
122
,
190
,
/* 480 */
2
46
,
128
,
245
,
190
,
190
,
130
,
190
,
247
,
190
,
190
,
/* 490 */
25
4
,
190
,
254
,
244
,
190
,
127
,
190
,
190
,
190
,
12
6
,
/* 500 */
19
0
,
243
,
190
,
190
,
190
,
190
,
190
,
121
,
190
,
190
,
/* 510 */
19
0
,
190
,
190
,
120
,
190
,
190
,
190
,
190
,
190
,
190
,
/* 520 */
19
0
,
190
,
190
,
190
,
190
,
190
,
190
,
190
,
190
,
190
,
/* 530 */
19
0
,
190
,
190
,
190
,
190
,
190
,
190
,
190
,
118
,
191
,
/* 540 */
191
,
191
,
191
,
191
,
1
32
,
103
,
87
,
86
,
50
,
83
,
/* 550 */
85
,
54
,
84
,
82
,
191
,
191
,
79
,
5
,
144
,
5
,
/* 560 */
19
1
,
5
,
144
,
5
,
5
,
191
,
135
,
196
,
196
,
89
,
/* 570 */
19
1
,
113
,
109
,
104
,
107
,
191
,
114
,
105
,
105
,
104
,
/* 580 */
1
04
,
192
,
205
,
207
,
201
,
204
,
206
,
202
,
200
,
192
,
/* 590 */
203
,
191
,
197
,
192
,
224
,
192
,
191
,
191
,
105
,
242
,
/* 600 */
239
,
241
,
240
,
193
,
109
,
238
,
224
,
1
,
104
,
109
,
/* 610 */
105
,
104
,
123
,
123
,
105
,
109
,
104
,
104
,
104
,
111
,
/* 620 */
1
04
,
76
,
107
,
9
,
5
,
108
,
5
,
5
,
5
,
5
,
/* 630 */
80
,
15
,
138
,
76
,
109
,
5
,
16
,
138
,
5
,
138
,
/* 640 */
105
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
/* 650 */
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
109
,
80
,
/* 660 */
60
,
59
,
0
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 670 */
26
2
,
262
,
262
,
262
,
21
,
21
,
262
,
262
,
262
,
262
,
/* 680 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 690 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 700 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 710 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 720 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 730 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 740 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 750 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 760 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 770 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 780 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 790 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 800 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 810 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 820 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 830 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 840 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 850 */
26
2
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
262
,
/* 860 */
26
2
,
262
,
/* 180 */
101
,
102
,
20
9
,
191
,
211
,
212
,
213
,
214
,
215
,
216
,
/* 190 */
21
7
,
218
,
219
,
220
,
221
,
222
,
223
,
224
,
16
,
17
,
/* 200 */
44
,
191
,
20
,
21
,
0
,
23
,
24
,
25
,
26
,
27
,
/* 210 */
28
,
25
6
,
258
,
258
,
104
,
33
,
34
,
61
,
252
,
37
,
/* 220 */
38
,
39
,
197
,
67
,
232
,
104
,
191
,
235
,
107
,
73
,
/* 230 */
74
,
75
,
104
,
1
,
2
,
234
,
108
,
5
,
110
,
7
,
/* 240 */
104
,
9
,
232
,
1
,
2
,
235
,
237
,
5
,
112
,
7
,
/* 250 */
2
49
,
9
,
191
,
228
,
229
,
230
,
231
,
33
,
34
,
250
,
/* 260 */
104
,
37
,
38
,
39
,
67
,
33
,
34
,
232
,
112
,
3
7
,
/* 270 */
235
,
88
,
191
,
90
,
91
,
33
,
34
,
5
,
95
,
7
,
/* 280 */
97
,
98
,
99
,
79
,
101
,
102
,
64
,
65
,
66
,
105
,
/* 290 */
134
,
209
,
136
,
232
,
212
,
213
,
235
,
113
,
142
,
217
,
/* 300 */
210
,
219
,
220
,
221
,
37
,
223
,
224
,
25
,
26
,
27
,
/* 310 */
28
,
198
,
199
,
15
,
233
,
33
,
34
,
191
,
210
,
37
,
/* 320 */
38
,
39
,
76
,
62
,
63
,
210
,
236
,
81
,
197
,
68
,
/* 330 */
69
,
70
,
71
,
72
,
1
37
,
2
,
104
,
140
,
5
,
78
,
/* 340 */
7
,
191
,
9
,
191
,
236
,
109
,
104
,
62
,
63
,
117
,
/* 350 */
252
,
236
,
116
,
68
,
69
,
70
,
71
,
72
,
232
,
117
,
/* 360 */
229
,
235
,
62
,
63
,
1
,
133
,
33
,
34
,
68
,
6
9
,
/* 370 */
70
,
71
,
72
,
196
,
196
,
133
,
226
,
200
,
200
,
194
,
/* 380 */
195
,
105
,
115
,
60
,
232
,
109
,
105
,
235
,
124
,
12
5
,
/* 390 */
109
,
105
,
105
,
10
5
,
105
,
109
,
109
,
109
,
109
,
5
,
/* 400 */
37
,
7
,
109
,
109
,
105
,
252
,
105
,
105
,
109
,
111
,
/* 410 */
10
9
,
109
,
105
,
105
,
76
,
77
,
109
,
109
,
138
,
139
,
/* 420 */
252
,
138
,
139
,
129
,
131
,
252
,
252
,
104
,
138
,
139
,
/* 430 */
104
,
252
,
106
,
138
,
139
,
5
,
5
,
7
,
7
,
62
,
/* 440 */
63
,
252
,
252
,
252
,
111
,
252
,
252
,
252
,
236
,
23
6
,
/* 450 */
22
7
,
191
,
227
,
227
,
227
,
227
,
227
,
227
,
251
,
191
,
/* 460 */
19
1
,
191
,
191
,
60
,
191
,
234
,
191
,
234
,
259
,
259
,
/* 470 */
191
,
234
,
238
,
117
,
255
,
191
,
255
,
103
,
87
,
225
,
/* 480 */
2
06
,
122
,
191
,
191
,
243
,
245
,
247
,
191
,
191
,
128
,
/* 490 */
25
5
,
248
,
130
,
255
,
191
,
191
,
191
,
191
,
127
,
24
6
,
/* 500 */
19
1
,
191
,
191
,
191
,
191
,
191
,
191
,
191
,
191
,
191
,
/* 510 */
19
1
,
191
,
191
,
191
,
126
,
191
,
191
,
121
,
191
,
191
,
/* 520 */
19
1
,
191
,
191
,
191
,
120
,
191
,
191
,
191
,
191
,
119
,
/* 530 */
19
1
,
191
,
191
,
191
,
191
,
191
,
191
,
191
,
191
,
191
,
/* 540 */
191
,
191
,
191
,
191
,
1
18
,
192
,
192
,
192
,
132
,
192
,
/* 550 */
192
,
86
,
50
,
83
,
85
,
54
,
84
,
82
,
79
,
192
,
/* 560 */
19
2
,
5
,
192
,
145
,
5
,
5
,
145
,
192
,
192
,
197
,
/* 570 */
19
7
,
5
,
5
,
90
,
89
,
135
,
113
,
104
,
192
,
105
,
/* 580 */
1
93
,
202
,
193
,
201
,
203
,
192
,
208
,
207
,
205
,
204
,
/* 590 */
193
,
192
,
114
,
193
,
192
,
194
,
198
,
107
,
109
,
105
,
/* 600 */
104
,
109
,
105
,
104
,
244
,
240
,
242
,
241
,
239
,
225
,
/* 610 */
1
,
104
,
109
,
105
,
104
,
109
,
123
,
105
,
123
,
104
,
/* 620 */
1
11
,
104
,
104
,
107
,
104
,
76
,
9
,
108
,
5
,
5
,
/* 630 */
5
,
5
,
5
,
80
,
15
,
109
,
16
,
76
,
5
,
139
,
/* 640 */
5
,
105
,
5
,
139
,
139
,
5
,
5
,
5
,
5
,
5
,
/* 650 */
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
/* 660 */
5
,
109
,
80
,
60
,
59
,
0
,
263
,
263
,
263
,
263
,
/* 670 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
21
,
21
,
263
,
/* 680 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 690 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 700 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 710 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 720 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 730 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 740 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 750 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 760 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 770 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 780 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 790 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 800 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 810 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 820 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 830 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 840 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 850 */
26
3
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
263
,
/* 860 */
26
3
,
263
,
263
,
263
,
263
,
263
,
};
#define YY_SHIFT_COUNT (31
2
)
#define YY_SHIFT_COUNT (31
4
)
#define YY_SHIFT_MIN (0)
#define YY_SHIFT_MAX (66
2
)
#define YY_SHIFT_MAX (66
5
)
static
const
unsigned
short
int
yy_shift_ofst
[]
=
{
/* 0 */
1
68
,
79
,
79
,
172
,
172
,
9
,
221
,
231
,
74
,
74
,
/* 10 */
74
,
74
,
74
,
74
,
74
,
74
,
74
,
0
,
48
,
2
31
,
/* 20 */
3
65
,
365
,
365
,
365
,
121
,
207
,
74
,
74
,
74
,
158
,
/* 30 */
74
,
74
,
2
00
,
9
,
37
,
37
,
676
,
676
,
676
,
231
,
/* 40 */
2
31
,
231
,
231
,
231
,
231
,
231
,
231
,
231
,
231
,
231
,
/* 50 */
2
31
,
231
,
231
,
231
,
231
,
231
,
231
,
231
,
231
,
365
,
/* 60 */
3
65
,
102
,
102
,
102
,
102
,
102
,
102
,
102
,
74
,
74
,
/* 70 */
251
,
74
,
207
,
207
,
74
,
74
,
74
,
263
,
263
,
201
,
/* 80 */
2
07
,
74
,
74
,
74
,
74
,
74
,
74
,
74
,
74
,
74
,
/* 0 */
1
56
,
79
,
79
,
183
,
183
,
6
,
232
,
242
,
74
,
74
,
/* 10 */
74
,
74
,
74
,
74
,
74
,
74
,
74
,
0
,
48
,
2
42
,
/* 20 */
3
33
,
333
,
333
,
333
,
110
,
136
,
74
,
74
,
74
,
204
,
/* 30 */
74
,
74
,
2
46
,
6
,
7
,
7
,
679
,
679
,
679
,
242
,
/* 40 */
2
42
,
242
,
242
,
242
,
242
,
242
,
242
,
242
,
242
,
242
,
/* 50 */
2
42
,
242
,
242
,
242
,
242
,
242
,
242
,
242
,
242
,
333
,
/* 60 */
3
33
,
102
,
102
,
102
,
102
,
102
,
102
,
102
,
74
,
74
,
/* 70 */
74
,
267
,
74
,
136
,
136
,
74
,
74
,
74
,
264
,
264
,
/* 80 */
2
36
,
136
,
74
,
74
,
74
,
74
,
74
,
74
,
74
,
74
,
/* 90 */
74
,
74
,
74
,
74
,
74
,
74
,
74
,
74
,
74
,
74
,
/* 100 */
74
,
74
,
74
,
74
,
74
,
74
,
74
,
74
,
74
,
74
,
/* 110 */
74
,
74
,
74
,
74
,
74
,
74
,
74
,
74
,
74
,
74
,
/* 120 */
74
,
74
,
74
,
74
,
74
,
74
,
74
,
74
,
74
,
74
,
/* 130 */
74
,
404
,
404
,
404
,
354
,
354
,
354
,
404
,
354
,
404
,
/* 140 */
353
,
355
,
368
,
356
,
373
,
386
,
393
,
358
,
420
,
412
,
/* 150 */
4
04
,
404
,
404
,
442
,
9
,
9
,
404
,
404
,
459
,
46
1
,
/* 160 */
4
98
,
466
,
465
,
497
,
468
,
471
,
442
,
404
,
477
,
477
,
/* 170 */
4
04
,
477
,
404
,
477
,
404
,
676
,
676
,
27
,
100
,
127
,
/* 180 */
1
00
,
100
,
53
,
182
,
266
,
266
,
266
,
266
,
244
,
261
,
/* 190 */
2
74
,
323
,
323
,
323
,
323
,
78
,
114
,
214
,
214
,
243
,
/* 200 */
95
,
232
,
281
,
215
,
284
,
286
,
287
,
292
,
295
,
277
,
/* 210 */
366
,
378
,
290
,
311
,
272
,
20
,
297
,
300
,
302
,
303
,
/* 220 */
30
5
,
309
,
280
,
282
,
288
,
317
,
291
,
426
,
427
,
359
,
/* 230 */
3
75
,
552
,
414
,
554
,
556
,
418
,
558
,
559
,
480
,
431
,
/* 240 */
4
58
,
467
,
469
,
462
,
472
,
463
,
473
,
475
,
493
,
495
,
/* 250 */
4
76
,
606
,
504
,
505
,
507
,
500
,
489
,
506
,
490
,
509
,
/* 260 */
512
,
508
,
513
,
467
,
514
,
515
,
516
,
517
,
545
,
614
,
/* 270 */
619
,
621
,
622
,
623
,
624
,
550
,
616
,
557
,
494
,
525
,
/* 280 */
5
25
,
620
,
499
,
501
,
525
,
630
,
633
,
535
,
525
,
6
36
,
/* 290 */
637
,
638
,
639
,
640
,
641
,
642
,
643
,
644
,
645
,
646
,
/* 300 */
64
7
,
648
,
649
,
650
,
651
,
652
,
549
,
579
,
653
,
654
,
/* 310 */
6
00
,
602
,
662
,
/* 130 */
74
,
74
,
403
,
403
,
403
,
356
,
356
,
356
,
403
,
356
,
/* 140 */
403
,
361
,
362
,
371
,
359
,
388
,
396
,
404
,
410
,
426
,
/* 150 */
4
16
,
403
,
403
,
403
,
374
,
6
,
6
,
403
,
403
,
39
1
,
/* 160 */
4
65
,
502
,
470
,
469
,
501
,
472
,
475
,
374
,
403
,
479
,
/* 170 */
4
79
,
403
,
479
,
403
,
479
,
403
,
679
,
679
,
27
,
100
,
/* 180 */
1
27
,
100
,
100
,
53
,
182
,
282
,
282
,
282
,
282
,
261
,
/* 190 */
2
85
,
300
,
224
,
224
,
224
,
224
,
22
,
14
,
92
,
92
,
/* 200 */
128
,
197
,
222
,
276
,
184
,
281
,
286
,
287
,
288
,
289
,
/* 210 */
272
,
394
,
363
,
323
,
298
,
293
,
294
,
299
,
301
,
302
,
/* 220 */
30
7
,
308
,
121
,
280
,
283
,
290
,
326
,
295
,
430
,
431
,
/* 230 */
3
38
,
377
,
556
,
418
,
559
,
560
,
421
,
566
,
567
,
483
,
/* 240 */
4
85
,
440
,
463
,
490
,
473
,
478
,
474
,
489
,
494
,
496
,
/* 250 */
4
97
,
492
,
499
,
609
,
507
,
508
,
510
,
503
,
493
,
506
,
/* 260 */
495
,
512
,
515
,
509
,
517
,
490
,
518
,
516
,
520
,
519
,
/* 270 */
549
,
617
,
623
,
624
,
625
,
626
,
627
,
553
,
619
,
561
,
/* 280 */
5
00
,
526
,
526
,
620
,
504
,
505
,
526
,
633
,
635
,
5
36
,
/* 290 */
526
,
637
,
640
,
641
,
642
,
643
,
644
,
645
,
646
,
647
,
/* 300 */
64
8
,
649
,
650
,
651
,
652
,
653
,
654
,
655
,
552
,
582
,
/* 310 */
6
56
,
657
,
603
,
605
,
665
,
};
#define YY_REDUCE_COUNT (17
6
)
#define YY_REDUCE_MIN (-2
39
)
#define YY_REDUCE_MAX (4
10
)
#define YY_REDUCE_COUNT (17
7
)
#define YY_REDUCE_MIN (-2
45
)
#define YY_REDUCE_MAX (4
02
)
static
const
short
yy_reduce_ofst
[]
=
{
/* 0 */
-
17
7
,
-
26
,
-
26
,
67
,
67
,
17
,
-
229
,
-
215
,
-
172
,
-
175
,
/* 10 */
-
7
,
-
75
,
87
,
118
,
144
,
149
,
151
,
-
184
,
-
187
,
-
232
,
/* 20 */
-
20
5
,
-
146
,
-
124
,
-
78
,
105
,
-
9
,
-
185
,
11
,
-
190
,
-
88
,
/* 30 */
76
,
-
71
,
5
,
31
,
160
,
170
,
91
,
179
,
-
186
,
-
239
,
/* 40 */
-
2
16
,
-
193
,
-
139
,
-
105
,
-
40
,
10
,
112
,
117
,
133
,
173
,
/* 50 */
17
6
,
188
,
189
,
190
,
191
,
192
,
193
,
194
,
195
,
212
,
/* 60 */
213
,
2
04
,
223
,
224
,
225
,
226
,
227
,
228
,
265
,
267
,
/* 70 */
2
06
,
268
,
229
,
230
,
269
,
270
,
271
,
208
,
209
,
233
,
/* 80 */
23
5
,
275
,
279
,
283
,
285
,
289
,
293
,
294
,
296
,
298
,
/* 90 */
299
,
301
,
304
,
306
,
307
,
308
,
310
,
312
,
313
,
314
,
/* 100 */
31
5
,
316
,
318
,
319
,
320
,
321
,
322
,
324
,
325
,
326
,
/* 110 */
32
7
,
328
,
329
,
330
,
331
,
332
,
333
,
334
,
335
,
336
,
/* 120 */
3
37
,
338
,
339
,
340
,
341
,
342
,
343
,
344
,
345
,
346
,
/* 130 */
3
47
,
348
,
349
,
350
,
218
,
220
,
236
,
351
,
238
,
352
,
/* 140 */
240
,
234
,
237
,
249
,
258
,
357
,
360
,
362
,
361
,
367
,
/* 150 */
36
3
,
364
,
369
,
370
,
371
,
372
,
374
,
379
,
376
,
380
,
/* 160 */
3
77
,
383
,
381
,
385
,
387
,
388
,
382
,
384
,
389
,
39
7
,
/* 170 */
400
,
401
,
405
,
403
,
406
,
395
,
410
,
/* 0 */
-
17
8
,
-
27
,
-
27
,
82
,
82
,
25
,
-
230
,
-
216
,
-
173
,
-
176
,
/* 10 */
-
45
,
-
8
,
10
,
35
,
61
,
126
,
152
,
-
185
,
-
188
,
-
233
,
/* 20 */
-
20
6
,
90
,
108
,
115
,
-
191
,
1
,
-
186
,
-
46
,
81
,
-
189
,
/* 30 */
150
,
-
79
,
-
78
,
131
,
177
,
178
,
9
,
113
,
185
,
-
245
,
/* 40 */
-
2
40
,
-
217
,
-
194
,
-
144
,
-
137
,
-
110
,
-
34
,
98
,
153
,
168
,
/* 50 */
17
3
,
174
,
179
,
189
,
190
,
191
,
193
,
194
,
195
,
212
,
/* 60 */
213
,
2
23
,
225
,
226
,
227
,
228
,
229
,
230
,
260
,
268
,
/* 70 */
2
69
,
207
,
270
,
231
,
233
,
271
,
273
,
275
,
209
,
210
,
/* 80 */
23
4
,
237
,
279
,
284
,
291
,
292
,
296
,
297
,
303
,
304
,
/* 90 */
305
,
306
,
309
,
310
,
311
,
312
,
313
,
314
,
315
,
316
,
/* 100 */
31
7
,
318
,
319
,
320
,
321
,
322
,
324
,
325
,
327
,
328
,
/* 110 */
32
9
,
330
,
331
,
332
,
334
,
335
,
336
,
337
,
339
,
340
,
/* 120 */
3
41
,
342
,
343
,
344
,
345
,
346
,
347
,
348
,
349
,
350
,
/* 130 */
3
51
,
352
,
353
,
354
,
355
,
219
,
221
,
235
,
357
,
238
,
/* 140 */
358
,
243
,
239
,
253
,
240
,
360
,
241
,
364
,
366
,
365
,
/* 150 */
36
9
,
367
,
368
,
370
,
254
,
372
,
373
,
375
,
376
,
378
,
/* 160 */
3
80
,
274
,
379
,
383
,
381
,
385
,
382
,
384
,
386
,
38
7
,
/* 170 */
389
,
393
,
397
,
399
,
400
,
402
,
398
,
401
,
};
static
const
YYACTIONTYPE
yy_default
[]
=
{
/* 0 */
7
67
,
879
,
825
,
891
,
813
,
822
,
1019
,
1019
,
767
,
767
,
/* 10 */
7
67
,
767
,
767
,
767
,
767
,
767
,
767
,
938
,
786
,
1019
,
/* 20 */
7
67
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
822
,
/* 30 */
7
67
,
767
,
828
,
822
,
828
,
828
,
933
,
863
,
881
,
767
,
/* 40 */
7
67
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
/* 50 */
7
67
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
/* 60 */
7
67
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
/* 70 */
940
,
943
,
767
,
767
,
945
,
767
,
767
,
965
,
965
,
931
,
/* 80 */
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
/* 90 */
7
67
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
/* 100 */
7
67
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
811
,
767
,
/* 110 */
809
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
/* 120 */
7
67
,
767
,
767
,
767
,
767
,
796
,
767
,
767
,
767
,
767
,
/* 130 */
7
67
,
788
,
788
,
788
,
767
,
767
,
767
,
788
,
767
,
788
,
/* 140 */
972
,
976
,
970
,
958
,
966
,
957
,
953
,
951
,
950
,
980
,
/* 150 */
788
,
788
,
788
,
826
,
822
,
822
,
788
,
788
,
844
,
842
,
/* 160 */
84
0
,
832
,
838
,
834
,
836
,
830
,
814
,
788
,
820
,
820
,
/* 170 */
788
,
820
,
788
,
820
,
788
,
863
,
881
,
767
,
981
,
767
,
/* 180 */
1018
,
971
,
1008
,
1007
,
1014
,
1006
,
1005
,
1004
,
767
,
767
,
/* 190 */
7
67
,
1000
,
1001
,
1003
,
1002
,
767
,
767
,
1010
,
1009
,
767
,
/* 200 */
7
67
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
/* 210 */
7
67
,
767
,
983
,
767
,
977
,
973
,
767
,
767
,
767
,
767
,
/* 220 */
7
67
,
767
,
767
,
767
,
767
,
893
,
767
,
767
,
767
,
767
,
/* 230 */
7
67
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
/* 240 */
930
,
767
,
767
,
767
,
767
,
941
,
767
,
767
,
767
,
767
,
/* 250 */
7
67
,
767
,
767
,
767
,
767
,
967
,
767
,
959
,
767
,
767
,
/* 260 */
7
67
,
767
,
767
,
905
,
767
,
767
,
767
,
767
,
767
,
767
,
/* 270 */
7
67
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
1029
,
/* 280 */
1027
,
767
,
767
,
767
,
1023
,
767
,
767
,
767
,
1021
,
767
,
/* 290 */
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
767
,
/* 300 */
7
67
,
767
,
767
,
767
,
767
,
767
,
847
,
767
,
794
,
792
,
/* 310 */
7
67
,
784
,
767
,
/* 0 */
7
71
,
883
,
829
,
895
,
817
,
826
,
1023
,
1023
,
771
,
771
,
/* 10 */
7
71
,
771
,
771
,
771
,
771
,
771
,
771
,
942
,
790
,
1023
,
/* 20 */
7
71
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
826
,
/* 30 */
7
71
,
771
,
832
,
826
,
832
,
832
,
937
,
867
,
885
,
771
,
/* 40 */
7
71
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
/* 50 */
7
71
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
/* 60 */
7
71
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
/* 70 */
771
,
944
,
947
,
771
,
771
,
949
,
771
,
771
,
969
,
969
,
/* 80 */
935
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
/* 90 */
7
71
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
/* 100 */
7
71
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
815
,
/* 110 */
771
,
813
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
/* 120 */
7
71
,
771
,
771
,
771
,
771
,
771
,
800
,
771
,
771
,
771
,
/* 130 */
7
71
,
771
,
792
,
792
,
792
,
771
,
771
,
771
,
792
,
771
,
/* 140 */
792
,
976
,
980
,
974
,
962
,
970
,
961
,
957
,
955
,
954
,
/* 150 */
984
,
792
,
792
,
792
,
830
,
826
,
826
,
792
,
792
,
848
,
/* 160 */
84
6
,
844
,
836
,
842
,
838
,
840
,
834
,
818
,
792
,
824
,
/* 170 */
824
,
792
,
824
,
792
,
824
,
792
,
867
,
885
,
771
,
985
,
/* 180 */
771
,
1022
,
975
,
1012
,
1011
,
1018
,
1010
,
1009
,
1008
,
771
,
/* 190 */
7
71
,
771
,
1004
,
1005
,
1007
,
1006
,
771
,
771
,
1014
,
1013
,
/* 200 */
7
71
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
/* 210 */
7
71
,
771
,
771
,
987
,
771
,
981
,
977
,
771
,
771
,
771
,
/* 220 */
7
71
,
771
,
771
,
771
,
771
,
771
,
897
,
771
,
771
,
771
,
/* 230 */
7
71
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
/* 240 */
771
,
771
,
934
,
771
,
771
,
771
,
771
,
945
,
771
,
771
,
/* 250 */
7
71
,
771
,
771
,
771
,
771
,
771
,
771
,
971
,
771
,
963
,
/* 260 */
7
71
,
771
,
771
,
771
,
771
,
909
,
771
,
771
,
771
,
771
,
/* 270 */
7
71
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
/* 280 */
771
,
1034
,
1032
,
771
,
771
,
771
,
1028
,
771
,
771
,
771
,
/* 290 */
1026
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
/* 300 */
7
71
,
771
,
771
,
771
,
771
,
771
,
771
,
771
,
851
,
771
,
/* 310 */
7
98
,
796
,
771
,
788
,
771
,
};
/********** End of lemon-generated parsing tables *****************************/
...
...
@@ -612,6 +612,7 @@ static const YYCODETYPE yyFallback[] = {
1
,
/* NOW => ID */
0
,
/* RESET => nothing */
0
,
/* QUERY => nothing */
0
,
/* SYNCDB => nothing */
0
,
/* ADD => nothing */
0
,
/* COLUMN => nothing */
0
,
/* TAG => nothing */
...
...
@@ -884,132 +885,133 @@ static const char *const yyTokenName[] = {
/* 133 */
"NOW"
,
/* 134 */
"RESET"
,
/* 135 */
"QUERY"
,
/* 136 */
"ADD"
,
/* 137 */
"COLUMN"
,
/* 138 */
"TAG"
,
/* 139 */
"CHANGE"
,
/* 140 */
"SET"
,
/* 141 */
"KILL"
,
/* 142 */
"CONNECTION"
,
/* 143 */
"STREAM"
,
/* 144 */
"COLON"
,
/* 145 */
"ABORT"
,
/* 146 */
"AFTER"
,
/* 147 */
"ATTACH"
,
/* 148 */
"BEFORE"
,
/* 149 */
"BEGIN"
,
/* 150 */
"CASCADE"
,
/* 151 */
"CLUSTER"
,
/* 152 */
"CONFLICT"
,
/* 153 */
"COPY"
,
/* 154 */
"DEFERRED"
,
/* 155 */
"DELIMITERS"
,
/* 156 */
"DETACH"
,
/* 157 */
"EACH"
,
/* 158 */
"END"
,
/* 159 */
"EXPLAIN"
,
/* 160 */
"FAIL"
,
/* 161 */
"FOR"
,
/* 162 */
"IGNORE"
,
/* 163 */
"IMMEDIATE"
,
/* 164 */
"INITIALLY"
,
/* 165 */
"INSTEAD"
,
/* 166 */
"MATCH"
,
/* 167 */
"KEY"
,
/* 168 */
"OF"
,
/* 169 */
"RAISE"
,
/* 170 */
"REPLACE"
,
/* 171 */
"RESTRICT"
,
/* 172 */
"ROW"
,
/* 173 */
"STATEMENT"
,
/* 174 */
"TRIGGER"
,
/* 175 */
"VIEW"
,
/* 176 */
"SEMI"
,
/* 177 */
"NONE"
,
/* 178 */
"PREV"
,
/* 179 */
"LINEAR"
,
/* 180 */
"IMPORT"
,
/* 181 */
"TBNAME"
,
/* 182 */
"JOIN"
,
/* 183 */
"INSERT"
,
/* 184 */
"INTO"
,
/* 185 */
"VALUES"
,
/* 186 */
"error"
,
/* 187 */
"program"
,
/* 188 */
"cmd"
,
/* 189 */
"dbPrefix"
,
/* 190 */
"ids"
,
/* 191 */
"cpxName"
,
/* 192 */
"ifexists"
,
/* 193 */
"alter_db_optr"
,
/* 194 */
"alter_topic_optr"
,
/* 195 */
"acct_optr"
,
/* 196 */
"ifnotexists"
,
/* 197 */
"db_optr"
,
/* 198 */
"topic_optr"
,
/* 199 */
"pps"
,
/* 200 */
"tseries"
,
/* 201 */
"dbs"
,
/* 202 */
"streams"
,
/* 203 */
"storage"
,
/* 204 */
"qtime"
,
/* 205 */
"users"
,
/* 206 */
"conns"
,
/* 207 */
"state"
,
/* 208 */
"keep"
,
/* 209 */
"tagitemlist"
,
/* 210 */
"cache"
,
/* 211 */
"replica"
,
/* 212 */
"quorum"
,
/* 213 */
"days"
,
/* 214 */
"minrows"
,
/* 215 */
"maxrows"
,
/* 216 */
"blocks"
,
/* 217 */
"ctime"
,
/* 218 */
"wal"
,
/* 219 */
"fsync"
,
/* 220 */
"comp"
,
/* 221 */
"prec"
,
/* 222 */
"update"
,
/* 223 */
"cachelast"
,
/* 224 */
"partitions"
,
/* 225 */
"typename"
,
/* 226 */
"signed"
,
/* 227 */
"create_table_args"
,
/* 228 */
"create_stable_args"
,
/* 229 */
"create_table_list"
,
/* 230 */
"create_from_stable"
,
/* 231 */
"columnlist"
,
/* 232 */
"tagNamelist"
,
/* 233 */
"select"
,
/* 234 */
"column"
,
/* 235 */
"tagitem"
,
/* 236 */
"selcollist"
,
/* 237 */
"from"
,
/* 238 */
"where_opt"
,
/* 239 */
"interval_opt"
,
/* 240 */
"session_option"
,
/* 241 */
"fill_opt"
,
/* 242 */
"sliding_opt"
,
/* 243 */
"groupby_opt"
,
/* 244 */
"orderby_opt"
,
/* 245 */
"having_opt"
,
/* 246 */
"slimit_opt"
,
/* 247 */
"limit_opt"
,
/* 248 */
"union"
,
/* 249 */
"sclp"
,
/* 250 */
"distinct"
,
/* 251 */
"expr"
,
/* 252 */
"as"
,
/* 253 */
"tablelist"
,
/* 254 */
"tmvar"
,
/* 255 */
"sortlist"
,
/* 256 */
"sortitem"
,
/* 257 */
"item"
,
/* 258 */
"sortorder"
,
/* 259 */
"grouplist"
,
/* 260 */
"exprlist"
,
/* 261 */
"expritem"
,
/* 136 */
"SYNCDB"
,
/* 137 */
"ADD"
,
/* 138 */
"COLUMN"
,
/* 139 */
"TAG"
,
/* 140 */
"CHANGE"
,
/* 141 */
"SET"
,
/* 142 */
"KILL"
,
/* 143 */
"CONNECTION"
,
/* 144 */
"STREAM"
,
/* 145 */
"COLON"
,
/* 146 */
"ABORT"
,
/* 147 */
"AFTER"
,
/* 148 */
"ATTACH"
,
/* 149 */
"BEFORE"
,
/* 150 */
"BEGIN"
,
/* 151 */
"CASCADE"
,
/* 152 */
"CLUSTER"
,
/* 153 */
"CONFLICT"
,
/* 154 */
"COPY"
,
/* 155 */
"DEFERRED"
,
/* 156 */
"DELIMITERS"
,
/* 157 */
"DETACH"
,
/* 158 */
"EACH"
,
/* 159 */
"END"
,
/* 160 */
"EXPLAIN"
,
/* 161 */
"FAIL"
,
/* 162 */
"FOR"
,
/* 163 */
"IGNORE"
,
/* 164 */
"IMMEDIATE"
,
/* 165 */
"INITIALLY"
,
/* 166 */
"INSTEAD"
,
/* 167 */
"MATCH"
,
/* 168 */
"KEY"
,
/* 169 */
"OF"
,
/* 170 */
"RAISE"
,
/* 171 */
"REPLACE"
,
/* 172 */
"RESTRICT"
,
/* 173 */
"ROW"
,
/* 174 */
"STATEMENT"
,
/* 175 */
"TRIGGER"
,
/* 176 */
"VIEW"
,
/* 177 */
"SEMI"
,
/* 178 */
"NONE"
,
/* 179 */
"PREV"
,
/* 180 */
"LINEAR"
,
/* 181 */
"IMPORT"
,
/* 182 */
"TBNAME"
,
/* 183 */
"JOIN"
,
/* 184 */
"INSERT"
,
/* 185 */
"INTO"
,
/* 186 */
"VALUES"
,
/* 187 */
"error"
,
/* 188 */
"program"
,
/* 189 */
"cmd"
,
/* 190 */
"dbPrefix"
,
/* 191 */
"ids"
,
/* 192 */
"cpxName"
,
/* 193 */
"ifexists"
,
/* 194 */
"alter_db_optr"
,
/* 195 */
"alter_topic_optr"
,
/* 196 */
"acct_optr"
,
/* 197 */
"ifnotexists"
,
/* 198 */
"db_optr"
,
/* 199 */
"topic_optr"
,
/* 200 */
"pps"
,
/* 201 */
"tseries"
,
/* 202 */
"dbs"
,
/* 203 */
"streams"
,
/* 204 */
"storage"
,
/* 205 */
"qtime"
,
/* 206 */
"users"
,
/* 207 */
"conns"
,
/* 208 */
"state"
,
/* 209 */
"keep"
,
/* 210 */
"tagitemlist"
,
/* 211 */
"cache"
,
/* 212 */
"replica"
,
/* 213 */
"quorum"
,
/* 214 */
"days"
,
/* 215 */
"minrows"
,
/* 216 */
"maxrows"
,
/* 217 */
"blocks"
,
/* 218 */
"ctime"
,
/* 219 */
"wal"
,
/* 220 */
"fsync"
,
/* 221 */
"comp"
,
/* 222 */
"prec"
,
/* 223 */
"update"
,
/* 224 */
"cachelast"
,
/* 225 */
"partitions"
,
/* 226 */
"typename"
,
/* 227 */
"signed"
,
/* 228 */
"create_table_args"
,
/* 229 */
"create_stable_args"
,
/* 230 */
"create_table_list"
,
/* 231 */
"create_from_stable"
,
/* 232 */
"columnlist"
,
/* 233 */
"tagNamelist"
,
/* 234 */
"select"
,
/* 235 */
"column"
,
/* 236 */
"tagitem"
,
/* 237 */
"selcollist"
,
/* 238 */
"from"
,
/* 239 */
"where_opt"
,
/* 240 */
"interval_opt"
,
/* 241 */
"session_option"
,
/* 242 */
"fill_opt"
,
/* 243 */
"sliding_opt"
,
/* 244 */
"groupby_opt"
,
/* 245 */
"orderby_opt"
,
/* 246 */
"having_opt"
,
/* 247 */
"slimit_opt"
,
/* 248 */
"limit_opt"
,
/* 249 */
"union"
,
/* 250 */
"sclp"
,
/* 251 */
"distinct"
,
/* 252 */
"expr"
,
/* 253 */
"as"
,
/* 254 */
"tablelist"
,
/* 255 */
"tmvar"
,
/* 256 */
"sortlist"
,
/* 257 */
"sortitem"
,
/* 258 */
"item"
,
/* 259 */
"sortorder"
,
/* 260 */
"grouplist"
,
/* 261 */
"exprlist"
,
/* 262 */
"expritem"
,
};
#endif
/* defined(YYCOVERAGE) || !defined(NDEBUG) */
...
...
@@ -1268,20 +1270,21 @@ static const char *const yyRuleName[] = {
/* 248 */
"expritem ::= expr"
,
/* 249 */
"expritem ::="
,
/* 250 */
"cmd ::= RESET QUERY CACHE"
,
/* 251 */
"cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist"
,
/* 252 */
"cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids"
,
/* 253 */
"cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist"
,
/* 254 */
"cmd ::= ALTER TABLE ids cpxName DROP TAG ids"
,
/* 255 */
"cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids"
,
/* 256 */
"cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem"
,
/* 257 */
"cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist"
,
/* 258 */
"cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids"
,
/* 259 */
"cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist"
,
/* 260 */
"cmd ::= ALTER STABLE ids cpxName DROP TAG ids"
,
/* 261 */
"cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids"
,
/* 262 */
"cmd ::= KILL CONNECTION INTEGER"
,
/* 263 */
"cmd ::= KILL STREAM INTEGER COLON INTEGER"
,
/* 264 */
"cmd ::= KILL QUERY INTEGER COLON INTEGER"
,
/* 251 */
"cmd ::= SYNCDB ids REPLICA"
,
/* 252 */
"cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist"
,
/* 253 */
"cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids"
,
/* 254 */
"cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist"
,
/* 255 */
"cmd ::= ALTER TABLE ids cpxName DROP TAG ids"
,
/* 256 */
"cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids"
,
/* 257 */
"cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem"
,
/* 258 */
"cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist"
,
/* 259 */
"cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids"
,
/* 260 */
"cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist"
,
/* 261 */
"cmd ::= ALTER STABLE ids cpxName DROP TAG ids"
,
/* 262 */
"cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids"
,
/* 263 */
"cmd ::= KILL CONNECTION INTEGER"
,
/* 264 */
"cmd ::= KILL STREAM INTEGER COLON INTEGER"
,
/* 265 */
"cmd ::= KILL QUERY INTEGER COLON INTEGER"
,
};
#endif
/* NDEBUG */
...
...
@@ -1402,52 +1405,52 @@ static void yy_destructor(
** inside the C code.
*/
/********* Begin destructor definitions ***************************************/
case
20
8
:
/* keep */
case
2
09
:
/* tagitemlist */
case
23
1
:
/* columnlist */
case
23
2
:
/* tagNamelist */
case
24
1
:
/* fill_opt */
case
24
3
:
/* groupby_opt */
case
24
4
:
/* orderby_opt */
case
25
5
:
/* sortlist */
case
2
59
:
/* grouplist */
case
20
9
:
/* keep */
case
2
10
:
/* tagitemlist */
case
23
2
:
/* columnlist */
case
23
3
:
/* tagNamelist */
case
24
2
:
/* fill_opt */
case
24
4
:
/* groupby_opt */
case
24
5
:
/* orderby_opt */
case
25
6
:
/* sortlist */
case
2
60
:
/* grouplist */
{
taosArrayDestroy
((
yypminor
->
yy
42
9
));
taosArrayDestroy
((
yypminor
->
yy
15
9
));
}
break
;
case
2
29
:
/* create_table_list */
case
2
30
:
/* create_table_list */
{
destroyCreateTableSql
((
yypminor
->
yy1
9
4
));
destroyCreateTableSql
((
yypminor
->
yy14
));
}
break
;
case
23
3
:
/* select */
case
23
4
:
/* select */
{
destroyQuerySqlNode
((
yypminor
->
yy2
54
));
destroyQuerySqlNode
((
yypminor
->
yy2
72
));
}
break
;
case
23
6
:
/* selcollist */
case
2
49
:
/* sclp */
case
26
0
:
/* exprlist */
case
23
7
:
/* selcollist */
case
2
50
:
/* sclp */
case
26
1
:
/* exprlist */
{
tSqlExprListDestroy
((
yypminor
->
yy
42
9
));
tSqlExprListDestroy
((
yypminor
->
yy
15
9
));
}
break
;
case
23
8
:
/* where_opt */
case
24
5
:
/* having_opt */
case
25
1
:
/* expr */
case
26
1
:
/* expritem */
case
23
9
:
/* where_opt */
case
24
6
:
/* having_opt */
case
25
2
:
/* expr */
case
26
2
:
/* expritem */
{
tSqlExprDestroy
((
yypminor
->
yy1
70
));
tSqlExprDestroy
((
yypminor
->
yy1
18
));
}
break
;
case
24
8
:
/* union */
case
24
9
:
/* union */
{
destroyAllSelectClause
((
yypminor
->
yy
14
1
));
destroyAllSelectClause
((
yypminor
->
yy
39
1
));
}
break
;
case
25
6
:
/* sortitem */
case
25
7
:
/* sortitem */
{
tVariantDestroy
(
&
(
yypminor
->
yy
21
8
));
tVariantDestroy
(
&
(
yypminor
->
yy
48
8
));
}
break
;
/********* End destructor definitions *****************************************/
...
...
@@ -1741,271 +1744,272 @@ 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
[]
=
{
{
187
,
-
1
},
/* (0) program ::= cmd */
{
188
,
-
2
},
/* (1) cmd ::= SHOW DATABASES */
{
188
,
-
2
},
/* (2) cmd ::= SHOW TOPICS */
{
188
,
-
2
},
/* (3) cmd ::= SHOW MNODES */
{
188
,
-
2
},
/* (4) cmd ::= SHOW DNODES */
{
188
,
-
2
},
/* (5) cmd ::= SHOW ACCOUNTS */
{
188
,
-
2
},
/* (6) cmd ::= SHOW USERS */
{
188
,
-
2
},
/* (7) cmd ::= SHOW MODULES */
{
188
,
-
2
},
/* (8) cmd ::= SHOW QUERIES */
{
188
,
-
2
},
/* (9) cmd ::= SHOW CONNECTIONS */
{
188
,
-
2
},
/* (10) cmd ::= SHOW STREAMS */
{
188
,
-
2
},
/* (11) cmd ::= SHOW VARIABLES */
{
188
,
-
2
},
/* (12) cmd ::= SHOW SCORES */
{
188
,
-
2
},
/* (13) cmd ::= SHOW GRANTS */
{
188
,
-
2
},
/* (14) cmd ::= SHOW VNODES */
{
188
,
-
3
},
/* (15) cmd ::= SHOW VNODES IPTOKEN */
{
189
,
0
},
/* (16) dbPrefix ::= */
{
189
,
-
2
},
/* (17) dbPrefix ::= ids DOT */
{
191
,
0
},
/* (18) cpxName ::= */
{
191
,
-
2
},
/* (19) cpxName ::= DOT ids */
{
188
,
-
5
},
/* (20) cmd ::= SHOW CREATE TABLE ids cpxName */
{
188
,
-
4
},
/* (21) cmd ::= SHOW CREATE DATABASE ids */
{
188
,
-
3
},
/* (22) cmd ::= SHOW dbPrefix TABLES */
{
188
,
-
5
},
/* (23) cmd ::= SHOW dbPrefix TABLES LIKE ids */
{
188
,
-
3
},
/* (24) cmd ::= SHOW dbPrefix STABLES */
{
188
,
-
5
},
/* (25) cmd ::= SHOW dbPrefix STABLES LIKE ids */
{
188
,
-
3
},
/* (26) cmd ::= SHOW dbPrefix VGROUPS */
{
188
,
-
4
},
/* (27) cmd ::= SHOW dbPrefix VGROUPS ids */
{
188
,
-
5
},
/* (28) cmd ::= DROP TABLE ifexists ids cpxName */
{
188
,
-
5
},
/* (29) cmd ::= DROP STABLE ifexists ids cpxName */
{
188
,
-
4
},
/* (30) cmd ::= DROP DATABASE ifexists ids */
{
188
,
-
4
},
/* (31) cmd ::= DROP TOPIC ifexists ids */
{
188
,
-
3
},
/* (32) cmd ::= DROP DNODE ids */
{
188
,
-
3
},
/* (33) cmd ::= DROP USER ids */
{
188
,
-
3
},
/* (34) cmd ::= DROP ACCOUNT ids */
{
188
,
-
2
},
/* (35) cmd ::= USE ids */
{
188
,
-
3
},
/* (36) cmd ::= DESCRIBE ids cpxName */
{
188
,
-
5
},
/* (37) cmd ::= ALTER USER ids PASS ids */
{
188
,
-
5
},
/* (38) cmd ::= ALTER USER ids PRIVILEGE ids */
{
188
,
-
4
},
/* (39) cmd ::= ALTER DNODE ids ids */
{
188
,
-
5
},
/* (40) cmd ::= ALTER DNODE ids ids ids */
{
188
,
-
3
},
/* (41) cmd ::= ALTER LOCAL ids */
{
188
,
-
4
},
/* (42) cmd ::= ALTER LOCAL ids ids */
{
188
,
-
4
},
/* (43) cmd ::= ALTER DATABASE ids alter_db_optr */
{
188
,
-
4
},
/* (44) cmd ::= ALTER TOPIC ids alter_topic_optr */
{
188
,
-
4
},
/* (45) cmd ::= ALTER ACCOUNT ids acct_optr */
{
188
,
-
6
},
/* (46) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{
190
,
-
1
},
/* (47) ids ::= ID */
{
190
,
-
1
},
/* (48) ids ::= STRING */
{
192
,
-
2
},
/* (49) ifexists ::= IF EXISTS */
{
192
,
0
},
/* (50) ifexists ::= */
{
196
,
-
3
},
/* (51) ifnotexists ::= IF NOT EXISTS */
{
196
,
0
},
/* (52) ifnotexists ::= */
{
188
,
-
3
},
/* (53) cmd ::= CREATE DNODE ids */
{
188
,
-
6
},
/* (54) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{
188
,
-
5
},
/* (55) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
{
188
,
-
5
},
/* (56) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
{
188
,
-
5
},
/* (57) cmd ::= CREATE USER ids PASS ids */
{
199
,
0
},
/* (58) pps ::= */
{
199
,
-
2
},
/* (59) pps ::= PPS INTEGER */
{
200
,
0
},
/* (60) tseries ::= */
{
200
,
-
2
},
/* (61) tseries ::= TSERIES INTEGER */
{
201
,
0
},
/* (62) dbs ::= */
{
201
,
-
2
},
/* (63) dbs ::= DBS INTEGER */
{
202
,
0
},
/* (64) streams ::= */
{
202
,
-
2
},
/* (65) streams ::= STREAMS INTEGER */
{
203
,
0
},
/* (66) storage ::= */
{
203
,
-
2
},
/* (67) storage ::= STORAGE INTEGER */
{
204
,
0
},
/* (68) qtime ::= */
{
204
,
-
2
},
/* (69) qtime ::= QTIME INTEGER */
{
205
,
0
},
/* (70) users ::= */
{
205
,
-
2
},
/* (71) users ::= USERS INTEGER */
{
206
,
0
},
/* (72) conns ::= */
{
206
,
-
2
},
/* (73) conns ::= CONNS INTEGER */
{
207
,
0
},
/* (74) state ::= */
{
207
,
-
2
},
/* (75) state ::= STATE ids */
{
195
,
-
9
},
/* (76) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{
208
,
-
2
},
/* (77) keep ::= KEEP tagitemlist */
{
210
,
-
2
},
/* (78) cache ::= CACHE INTEGER */
{
211
,
-
2
},
/* (79) replica ::= REPLICA INTEGER */
{
212
,
-
2
},
/* (80) quorum ::= QUORUM INTEGER */
{
213
,
-
2
},
/* (81) days ::= DAYS INTEGER */
{
214
,
-
2
},
/* (82) minrows ::= MINROWS INTEGER */
{
215
,
-
2
},
/* (83) maxrows ::= MAXROWS INTEGER */
{
216
,
-
2
},
/* (84) blocks ::= BLOCKS INTEGER */
{
217
,
-
2
},
/* (85) ctime ::= CTIME INTEGER */
{
218
,
-
2
},
/* (86) wal ::= WAL INTEGER */
{
219
,
-
2
},
/* (87) fsync ::= FSYNC INTEGER */
{
220
,
-
2
},
/* (88) comp ::= COMP INTEGER */
{
221
,
-
2
},
/* (89) prec ::= PRECISION STRING */
{
222
,
-
2
},
/* (90) update ::= UPDATE INTEGER */
{
223
,
-
2
},
/* (91) cachelast ::= CACHELAST INTEGER */
{
224
,
-
2
},
/* (92) partitions ::= PARTITIONS INTEGER */
{
197
,
0
},
/* (93) db_optr ::= */
{
197
,
-
2
},
/* (94) db_optr ::= db_optr cache */
{
197
,
-
2
},
/* (95) db_optr ::= db_optr replica */
{
197
,
-
2
},
/* (96) db_optr ::= db_optr quorum */
{
197
,
-
2
},
/* (97) db_optr ::= db_optr days */
{
197
,
-
2
},
/* (98) db_optr ::= db_optr minrows */
{
197
,
-
2
},
/* (99) db_optr ::= db_optr maxrows */
{
197
,
-
2
},
/* (100) db_optr ::= db_optr blocks */
{
197
,
-
2
},
/* (101) db_optr ::= db_optr ctime */
{
197
,
-
2
},
/* (102) db_optr ::= db_optr wal */
{
197
,
-
2
},
/* (103) db_optr ::= db_optr fsync */
{
197
,
-
2
},
/* (104) db_optr ::= db_optr comp */
{
197
,
-
2
},
/* (105) db_optr ::= db_optr prec */
{
197
,
-
2
},
/* (106) db_optr ::= db_optr keep */
{
197
,
-
2
},
/* (107) db_optr ::= db_optr update */
{
197
,
-
2
},
/* (108) db_optr ::= db_optr cachelast */
{
198
,
-
1
},
/* (109) topic_optr ::= db_optr */
{
198
,
-
2
},
/* (110) topic_optr ::= topic_optr partitions */
{
193
,
0
},
/* (111) alter_db_optr ::= */
{
193
,
-
2
},
/* (112) alter_db_optr ::= alter_db_optr replica */
{
193
,
-
2
},
/* (113) alter_db_optr ::= alter_db_optr quorum */
{
193
,
-
2
},
/* (114) alter_db_optr ::= alter_db_optr keep */
{
193
,
-
2
},
/* (115) alter_db_optr ::= alter_db_optr blocks */
{
193
,
-
2
},
/* (116) alter_db_optr ::= alter_db_optr comp */
{
193
,
-
2
},
/* (117) alter_db_optr ::= alter_db_optr wal */
{
193
,
-
2
},
/* (118) alter_db_optr ::= alter_db_optr fsync */
{
193
,
-
2
},
/* (119) alter_db_optr ::= alter_db_optr update */
{
193
,
-
2
},
/* (120) alter_db_optr ::= alter_db_optr cachelast */
{
194
,
-
1
},
/* (121) alter_topic_optr ::= alter_db_optr */
{
194
,
-
2
},
/* (122) alter_topic_optr ::= alter_topic_optr partitions */
{
225
,
-
1
},
/* (123) typename ::= ids */
{
225
,
-
4
},
/* (124) typename ::= ids LP signed RP */
{
225
,
-
2
},
/* (125) typename ::= ids UNSIGNED */
{
226
,
-
1
},
/* (126) signed ::= INTEGER */
{
226
,
-
2
},
/* (127) signed ::= PLUS INTEGER */
{
226
,
-
2
},
/* (128) signed ::= MINUS INTEGER */
{
188
,
-
3
},
/* (129) cmd ::= CREATE TABLE create_table_args */
{
188
,
-
3
},
/* (130) cmd ::= CREATE TABLE create_stable_args */
{
188
,
-
3
},
/* (131) cmd ::= CREATE STABLE create_stable_args */
{
188
,
-
3
},
/* (132) cmd ::= CREATE TABLE create_table_list */
{
229
,
-
1
},
/* (133) create_table_list ::= create_from_stable */
{
229
,
-
2
},
/* (134) create_table_list ::= create_table_list create_from_stable */
{
227
,
-
6
},
/* (135) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
{
228
,
-
10
},
/* (136) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
{
230
,
-
10
},
/* (137) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
{
230
,
-
13
},
/* (138) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
{
232
,
-
3
},
/* (139) tagNamelist ::= tagNamelist COMMA ids */
{
232
,
-
1
},
/* (140) tagNamelist ::= ids */
{
227
,
-
5
},
/* (141) create_table_args ::= ifnotexists ids cpxName AS select */
{
231
,
-
3
},
/* (142) columnlist ::= columnlist COMMA column */
{
231
,
-
1
},
/* (143) columnlist ::= column */
{
234
,
-
2
},
/* (144) column ::= ids typename */
{
209
,
-
3
},
/* (145) tagitemlist ::= tagitemlist COMMA tagitem */
{
209
,
-
1
},
/* (146) tagitemlist ::= tagitem */
{
235
,
-
1
},
/* (147) tagitem ::= INTEGER */
{
235
,
-
1
},
/* (148) tagitem ::= FLOAT */
{
235
,
-
1
},
/* (149) tagitem ::= STRING */
{
235
,
-
1
},
/* (150) tagitem ::= BOOL */
{
235
,
-
1
},
/* (151) tagitem ::= NULL */
{
235
,
-
2
},
/* (152) tagitem ::= MINUS INTEGER */
{
235
,
-
2
},
/* (153) tagitem ::= MINUS FLOAT */
{
235
,
-
2
},
/* (154) tagitem ::= PLUS INTEGER */
{
235
,
-
2
},
/* (155) tagitem ::= PLUS FLOAT */
{
233
,
-
13
},
/* (156) select ::= SELECT selcollist from where_opt interval_opt session_option fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
{
233
,
-
3
},
/* (157) select ::= LP select RP */
{
248
,
-
1
},
/* (158) union ::= select */
{
248
,
-
4
},
/* (159) union ::= union UNION ALL select */
{
188
,
-
1
},
/* (160) cmd ::= union */
{
233
,
-
2
},
/* (161) select ::= SELECT selcollist */
{
249
,
-
2
},
/* (162) sclp ::= selcollist COMMA */
{
249
,
0
},
/* (163) sclp ::= */
{
236
,
-
4
},
/* (164) selcollist ::= sclp distinct expr as */
{
236
,
-
2
},
/* (165) selcollist ::= sclp STAR */
{
252
,
-
2
},
/* (166) as ::= AS ids */
{
252
,
-
1
},
/* (167) as ::= ids */
{
252
,
0
},
/* (168) as ::= */
{
250
,
-
1
},
/* (169) distinct ::= DISTINCT */
{
250
,
0
},
/* (170) distinct ::= */
{
237
,
-
2
},
/* (171) from ::= FROM tablelist */
{
237
,
-
4
},
/* (172) from ::= FROM LP union RP */
{
253
,
-
2
},
/* (173) tablelist ::= ids cpxName */
{
253
,
-
3
},
/* (174) tablelist ::= ids cpxName ids */
{
253
,
-
4
},
/* (175) tablelist ::= tablelist COMMA ids cpxName */
{
253
,
-
5
},
/* (176) tablelist ::= tablelist COMMA ids cpxName ids */
{
254
,
-
1
},
/* (177) tmvar ::= VARIABLE */
{
239
,
-
4
},
/* (178) interval_opt ::= INTERVAL LP tmvar RP */
{
239
,
-
6
},
/* (179) interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */
{
239
,
0
},
/* (180) interval_opt ::= */
{
240
,
0
},
/* (181) session_option ::= */
{
240
,
-
7
},
/* (182) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
{
241
,
0
},
/* (183) fill_opt ::= */
{
241
,
-
6
},
/* (184) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
241
,
-
4
},
/* (185) fill_opt ::= FILL LP ID RP */
{
242
,
-
4
},
/* (186) sliding_opt ::= SLIDING LP tmvar RP */
{
242
,
0
},
/* (187) sliding_opt ::= */
{
244
,
0
},
/* (188) orderby_opt ::= */
{
244
,
-
3
},
/* (189) orderby_opt ::= ORDER BY sortlist */
{
255
,
-
4
},
/* (190) sortlist ::= sortlist COMMA item sortorder */
{
255
,
-
2
},
/* (191) sortlist ::= item sortorder */
{
257
,
-
2
},
/* (192) item ::= ids cpxName */
{
258
,
-
1
},
/* (193) sortorder ::= ASC */
{
258
,
-
1
},
/* (194) sortorder ::= DESC */
{
258
,
0
},
/* (195) sortorder ::= */
{
243
,
0
},
/* (196) groupby_opt ::= */
{
243
,
-
3
},
/* (197) groupby_opt ::= GROUP BY grouplist */
{
259
,
-
3
},
/* (198) grouplist ::= grouplist COMMA item */
{
259
,
-
1
},
/* (199) grouplist ::= item */
{
245
,
0
},
/* (200) having_opt ::= */
{
245
,
-
2
},
/* (201) having_opt ::= HAVING expr */
{
247
,
0
},
/* (202) limit_opt ::= */
{
247
,
-
2
},
/* (203) limit_opt ::= LIMIT signed */
{
247
,
-
4
},
/* (204) limit_opt ::= LIMIT signed OFFSET signed */
{
247
,
-
4
},
/* (205) limit_opt ::= LIMIT signed COMMA signed */
{
246
,
0
},
/* (206) slimit_opt ::= */
{
246
,
-
2
},
/* (207) slimit_opt ::= SLIMIT signed */
{
246
,
-
4
},
/* (208) slimit_opt ::= SLIMIT signed SOFFSET signed */
{
246
,
-
4
},
/* (209) slimit_opt ::= SLIMIT signed COMMA signed */
{
238
,
0
},
/* (210) where_opt ::= */
{
238
,
-
2
},
/* (211) where_opt ::= WHERE expr */
{
251
,
-
3
},
/* (212) expr ::= LP expr RP */
{
251
,
-
1
},
/* (213) expr ::= ID */
{
251
,
-
3
},
/* (214) expr ::= ID DOT ID */
{
251
,
-
3
},
/* (215) expr ::= ID DOT STAR */
{
251
,
-
1
},
/* (216) expr ::= INTEGER */
{
251
,
-
2
},
/* (217) expr ::= MINUS INTEGER */
{
251
,
-
2
},
/* (218) expr ::= PLUS INTEGER */
{
251
,
-
1
},
/* (219) expr ::= FLOAT */
{
251
,
-
2
},
/* (220) expr ::= MINUS FLOAT */
{
251
,
-
2
},
/* (221) expr ::= PLUS FLOAT */
{
251
,
-
1
},
/* (222) expr ::= STRING */
{
251
,
-
1
},
/* (223) expr ::= NOW */
{
251
,
-
1
},
/* (224) expr ::= VARIABLE */
{
251
,
-
1
},
/* (225) expr ::= BOOL */
{
251
,
-
4
},
/* (226) expr ::= ID LP exprlist RP */
{
251
,
-
4
},
/* (227) expr ::= ID LP STAR RP */
{
251
,
-
3
},
/* (228) expr ::= expr IS NULL */
{
251
,
-
4
},
/* (229) expr ::= expr IS NOT NULL */
{
251
,
-
3
},
/* (230) expr ::= expr LT expr */
{
251
,
-
3
},
/* (231) expr ::= expr GT expr */
{
251
,
-
3
},
/* (232) expr ::= expr LE expr */
{
251
,
-
3
},
/* (233) expr ::= expr GE expr */
{
251
,
-
3
},
/* (234) expr ::= expr NE expr */
{
251
,
-
3
},
/* (235) expr ::= expr EQ expr */
{
251
,
-
5
},
/* (236) expr ::= expr BETWEEN expr AND expr */
{
251
,
-
3
},
/* (237) expr ::= expr AND expr */
{
251
,
-
3
},
/* (238) expr ::= expr OR expr */
{
251
,
-
3
},
/* (239) expr ::= expr PLUS expr */
{
251
,
-
3
},
/* (240) expr ::= expr MINUS expr */
{
251
,
-
3
},
/* (241) expr ::= expr STAR expr */
{
251
,
-
3
},
/* (242) expr ::= expr SLASH expr */
{
251
,
-
3
},
/* (243) expr ::= expr REM expr */
{
251
,
-
3
},
/* (244) expr ::= expr LIKE expr */
{
251
,
-
5
},
/* (245) expr ::= expr IN LP exprlist RP */
{
260
,
-
3
},
/* (246) exprlist ::= exprlist COMMA expritem */
{
260
,
-
1
},
/* (247) exprlist ::= expritem */
{
261
,
-
1
},
/* (248) expritem ::= expr */
{
261
,
0
},
/* (249) expritem ::= */
{
188
,
-
3
},
/* (250) cmd ::= RESET QUERY CACHE */
{
188
,
-
7
},
/* (251) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{
188
,
-
7
},
/* (252) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{
188
,
-
7
},
/* (253) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
188
,
-
7
},
/* (254) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{
188
,
-
8
},
/* (255) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{
188
,
-
9
},
/* (256) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{
188
,
-
7
},
/* (257) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
{
188
,
-
7
},
/* (258) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
{
188
,
-
7
},
/* (259) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
{
188
,
-
7
},
/* (260) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
{
188
,
-
8
},
/* (261) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
{
188
,
-
3
},
/* (262) cmd ::= KILL CONNECTION INTEGER */
{
188
,
-
5
},
/* (263) cmd ::= KILL STREAM INTEGER COLON INTEGER */
{
188
,
-
5
},
/* (264) cmd ::= KILL QUERY INTEGER COLON INTEGER */
{
188
,
-
1
},
/* (0) program ::= cmd */
{
189
,
-
2
},
/* (1) cmd ::= SHOW DATABASES */
{
189
,
-
2
},
/* (2) cmd ::= SHOW TOPICS */
{
189
,
-
2
},
/* (3) cmd ::= SHOW MNODES */
{
189
,
-
2
},
/* (4) cmd ::= SHOW DNODES */
{
189
,
-
2
},
/* (5) cmd ::= SHOW ACCOUNTS */
{
189
,
-
2
},
/* (6) cmd ::= SHOW USERS */
{
189
,
-
2
},
/* (7) cmd ::= SHOW MODULES */
{
189
,
-
2
},
/* (8) cmd ::= SHOW QUERIES */
{
189
,
-
2
},
/* (9) cmd ::= SHOW CONNECTIONS */
{
189
,
-
2
},
/* (10) cmd ::= SHOW STREAMS */
{
189
,
-
2
},
/* (11) cmd ::= SHOW VARIABLES */
{
189
,
-
2
},
/* (12) cmd ::= SHOW SCORES */
{
189
,
-
2
},
/* (13) cmd ::= SHOW GRANTS */
{
189
,
-
2
},
/* (14) cmd ::= SHOW VNODES */
{
189
,
-
3
},
/* (15) cmd ::= SHOW VNODES IPTOKEN */
{
190
,
0
},
/* (16) dbPrefix ::= */
{
190
,
-
2
},
/* (17) dbPrefix ::= ids DOT */
{
192
,
0
},
/* (18) cpxName ::= */
{
192
,
-
2
},
/* (19) cpxName ::= DOT ids */
{
189
,
-
5
},
/* (20) cmd ::= SHOW CREATE TABLE ids cpxName */
{
189
,
-
4
},
/* (21) cmd ::= SHOW CREATE DATABASE ids */
{
189
,
-
3
},
/* (22) cmd ::= SHOW dbPrefix TABLES */
{
189
,
-
5
},
/* (23) cmd ::= SHOW dbPrefix TABLES LIKE ids */
{
189
,
-
3
},
/* (24) cmd ::= SHOW dbPrefix STABLES */
{
189
,
-
5
},
/* (25) cmd ::= SHOW dbPrefix STABLES LIKE ids */
{
189
,
-
3
},
/* (26) cmd ::= SHOW dbPrefix VGROUPS */
{
189
,
-
4
},
/* (27) cmd ::= SHOW dbPrefix VGROUPS ids */
{
189
,
-
5
},
/* (28) cmd ::= DROP TABLE ifexists ids cpxName */
{
189
,
-
5
},
/* (29) cmd ::= DROP STABLE ifexists ids cpxName */
{
189
,
-
4
},
/* (30) cmd ::= DROP DATABASE ifexists ids */
{
189
,
-
4
},
/* (31) cmd ::= DROP TOPIC ifexists ids */
{
189
,
-
3
},
/* (32) cmd ::= DROP DNODE ids */
{
189
,
-
3
},
/* (33) cmd ::= DROP USER ids */
{
189
,
-
3
},
/* (34) cmd ::= DROP ACCOUNT ids */
{
189
,
-
2
},
/* (35) cmd ::= USE ids */
{
189
,
-
3
},
/* (36) cmd ::= DESCRIBE ids cpxName */
{
189
,
-
5
},
/* (37) cmd ::= ALTER USER ids PASS ids */
{
189
,
-
5
},
/* (38) cmd ::= ALTER USER ids PRIVILEGE ids */
{
189
,
-
4
},
/* (39) cmd ::= ALTER DNODE ids ids */
{
189
,
-
5
},
/* (40) cmd ::= ALTER DNODE ids ids ids */
{
189
,
-
3
},
/* (41) cmd ::= ALTER LOCAL ids */
{
189
,
-
4
},
/* (42) cmd ::= ALTER LOCAL ids ids */
{
189
,
-
4
},
/* (43) cmd ::= ALTER DATABASE ids alter_db_optr */
{
189
,
-
4
},
/* (44) cmd ::= ALTER TOPIC ids alter_topic_optr */
{
189
,
-
4
},
/* (45) cmd ::= ALTER ACCOUNT ids acct_optr */
{
189
,
-
6
},
/* (46) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{
191
,
-
1
},
/* (47) ids ::= ID */
{
191
,
-
1
},
/* (48) ids ::= STRING */
{
193
,
-
2
},
/* (49) ifexists ::= IF EXISTS */
{
193
,
0
},
/* (50) ifexists ::= */
{
197
,
-
3
},
/* (51) ifnotexists ::= IF NOT EXISTS */
{
197
,
0
},
/* (52) ifnotexists ::= */
{
189
,
-
3
},
/* (53) cmd ::= CREATE DNODE ids */
{
189
,
-
6
},
/* (54) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{
189
,
-
5
},
/* (55) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
{
189
,
-
5
},
/* (56) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
{
189
,
-
5
},
/* (57) cmd ::= CREATE USER ids PASS ids */
{
200
,
0
},
/* (58) pps ::= */
{
200
,
-
2
},
/* (59) pps ::= PPS INTEGER */
{
201
,
0
},
/* (60) tseries ::= */
{
201
,
-
2
},
/* (61) tseries ::= TSERIES INTEGER */
{
202
,
0
},
/* (62) dbs ::= */
{
202
,
-
2
},
/* (63) dbs ::= DBS INTEGER */
{
203
,
0
},
/* (64) streams ::= */
{
203
,
-
2
},
/* (65) streams ::= STREAMS INTEGER */
{
204
,
0
},
/* (66) storage ::= */
{
204
,
-
2
},
/* (67) storage ::= STORAGE INTEGER */
{
205
,
0
},
/* (68) qtime ::= */
{
205
,
-
2
},
/* (69) qtime ::= QTIME INTEGER */
{
206
,
0
},
/* (70) users ::= */
{
206
,
-
2
},
/* (71) users ::= USERS INTEGER */
{
207
,
0
},
/* (72) conns ::= */
{
207
,
-
2
},
/* (73) conns ::= CONNS INTEGER */
{
208
,
0
},
/* (74) state ::= */
{
208
,
-
2
},
/* (75) state ::= STATE ids */
{
196
,
-
9
},
/* (76) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{
209
,
-
2
},
/* (77) keep ::= KEEP tagitemlist */
{
211
,
-
2
},
/* (78) cache ::= CACHE INTEGER */
{
212
,
-
2
},
/* (79) replica ::= REPLICA INTEGER */
{
213
,
-
2
},
/* (80) quorum ::= QUORUM INTEGER */
{
214
,
-
2
},
/* (81) days ::= DAYS INTEGER */
{
215
,
-
2
},
/* (82) minrows ::= MINROWS INTEGER */
{
216
,
-
2
},
/* (83) maxrows ::= MAXROWS INTEGER */
{
217
,
-
2
},
/* (84) blocks ::= BLOCKS INTEGER */
{
218
,
-
2
},
/* (85) ctime ::= CTIME INTEGER */
{
219
,
-
2
},
/* (86) wal ::= WAL INTEGER */
{
220
,
-
2
},
/* (87) fsync ::= FSYNC INTEGER */
{
221
,
-
2
},
/* (88) comp ::= COMP INTEGER */
{
222
,
-
2
},
/* (89) prec ::= PRECISION STRING */
{
223
,
-
2
},
/* (90) update ::= UPDATE INTEGER */
{
224
,
-
2
},
/* (91) cachelast ::= CACHELAST INTEGER */
{
225
,
-
2
},
/* (92) partitions ::= PARTITIONS INTEGER */
{
198
,
0
},
/* (93) db_optr ::= */
{
198
,
-
2
},
/* (94) db_optr ::= db_optr cache */
{
198
,
-
2
},
/* (95) db_optr ::= db_optr replica */
{
198
,
-
2
},
/* (96) db_optr ::= db_optr quorum */
{
198
,
-
2
},
/* (97) db_optr ::= db_optr days */
{
198
,
-
2
},
/* (98) db_optr ::= db_optr minrows */
{
198
,
-
2
},
/* (99) db_optr ::= db_optr maxrows */
{
198
,
-
2
},
/* (100) db_optr ::= db_optr blocks */
{
198
,
-
2
},
/* (101) db_optr ::= db_optr ctime */
{
198
,
-
2
},
/* (102) db_optr ::= db_optr wal */
{
198
,
-
2
},
/* (103) db_optr ::= db_optr fsync */
{
198
,
-
2
},
/* (104) db_optr ::= db_optr comp */
{
198
,
-
2
},
/* (105) db_optr ::= db_optr prec */
{
198
,
-
2
},
/* (106) db_optr ::= db_optr keep */
{
198
,
-
2
},
/* (107) db_optr ::= db_optr update */
{
198
,
-
2
},
/* (108) db_optr ::= db_optr cachelast */
{
199
,
-
1
},
/* (109) topic_optr ::= db_optr */
{
199
,
-
2
},
/* (110) topic_optr ::= topic_optr partitions */
{
194
,
0
},
/* (111) alter_db_optr ::= */
{
194
,
-
2
},
/* (112) alter_db_optr ::= alter_db_optr replica */
{
194
,
-
2
},
/* (113) alter_db_optr ::= alter_db_optr quorum */
{
194
,
-
2
},
/* (114) alter_db_optr ::= alter_db_optr keep */
{
194
,
-
2
},
/* (115) alter_db_optr ::= alter_db_optr blocks */
{
194
,
-
2
},
/* (116) alter_db_optr ::= alter_db_optr comp */
{
194
,
-
2
},
/* (117) alter_db_optr ::= alter_db_optr wal */
{
194
,
-
2
},
/* (118) alter_db_optr ::= alter_db_optr fsync */
{
194
,
-
2
},
/* (119) alter_db_optr ::= alter_db_optr update */
{
194
,
-
2
},
/* (120) alter_db_optr ::= alter_db_optr cachelast */
{
195
,
-
1
},
/* (121) alter_topic_optr ::= alter_db_optr */
{
195
,
-
2
},
/* (122) alter_topic_optr ::= alter_topic_optr partitions */
{
226
,
-
1
},
/* (123) typename ::= ids */
{
226
,
-
4
},
/* (124) typename ::= ids LP signed RP */
{
226
,
-
2
},
/* (125) typename ::= ids UNSIGNED */
{
227
,
-
1
},
/* (126) signed ::= INTEGER */
{
227
,
-
2
},
/* (127) signed ::= PLUS INTEGER */
{
227
,
-
2
},
/* (128) signed ::= MINUS INTEGER */
{
189
,
-
3
},
/* (129) cmd ::= CREATE TABLE create_table_args */
{
189
,
-
3
},
/* (130) cmd ::= CREATE TABLE create_stable_args */
{
189
,
-
3
},
/* (131) cmd ::= CREATE STABLE create_stable_args */
{
189
,
-
3
},
/* (132) cmd ::= CREATE TABLE create_table_list */
{
230
,
-
1
},
/* (133) create_table_list ::= create_from_stable */
{
230
,
-
2
},
/* (134) create_table_list ::= create_table_list create_from_stable */
{
228
,
-
6
},
/* (135) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
{
229
,
-
10
},
/* (136) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
{
231
,
-
10
},
/* (137) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
{
231
,
-
13
},
/* (138) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
{
233
,
-
3
},
/* (139) tagNamelist ::= tagNamelist COMMA ids */
{
233
,
-
1
},
/* (140) tagNamelist ::= ids */
{
228
,
-
5
},
/* (141) create_table_args ::= ifnotexists ids cpxName AS select */
{
232
,
-
3
},
/* (142) columnlist ::= columnlist COMMA column */
{
232
,
-
1
},
/* (143) columnlist ::= column */
{
235
,
-
2
},
/* (144) column ::= ids typename */
{
210
,
-
3
},
/* (145) tagitemlist ::= tagitemlist COMMA tagitem */
{
210
,
-
1
},
/* (146) tagitemlist ::= tagitem */
{
236
,
-
1
},
/* (147) tagitem ::= INTEGER */
{
236
,
-
1
},
/* (148) tagitem ::= FLOAT */
{
236
,
-
1
},
/* (149) tagitem ::= STRING */
{
236
,
-
1
},
/* (150) tagitem ::= BOOL */
{
236
,
-
1
},
/* (151) tagitem ::= NULL */
{
236
,
-
2
},
/* (152) tagitem ::= MINUS INTEGER */
{
236
,
-
2
},
/* (153) tagitem ::= MINUS FLOAT */
{
236
,
-
2
},
/* (154) tagitem ::= PLUS INTEGER */
{
236
,
-
2
},
/* (155) tagitem ::= PLUS FLOAT */
{
234
,
-
13
},
/* (156) select ::= SELECT selcollist from where_opt interval_opt session_option fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
{
234
,
-
3
},
/* (157) select ::= LP select RP */
{
249
,
-
1
},
/* (158) union ::= select */
{
249
,
-
4
},
/* (159) union ::= union UNION ALL select */
{
189
,
-
1
},
/* (160) cmd ::= union */
{
234
,
-
2
},
/* (161) select ::= SELECT selcollist */
{
250
,
-
2
},
/* (162) sclp ::= selcollist COMMA */
{
250
,
0
},
/* (163) sclp ::= */
{
237
,
-
4
},
/* (164) selcollist ::= sclp distinct expr as */
{
237
,
-
2
},
/* (165) selcollist ::= sclp STAR */
{
253
,
-
2
},
/* (166) as ::= AS ids */
{
253
,
-
1
},
/* (167) as ::= ids */
{
253
,
0
},
/* (168) as ::= */
{
251
,
-
1
},
/* (169) distinct ::= DISTINCT */
{
251
,
0
},
/* (170) distinct ::= */
{
238
,
-
2
},
/* (171) from ::= FROM tablelist */
{
238
,
-
4
},
/* (172) from ::= FROM LP union RP */
{
254
,
-
2
},
/* (173) tablelist ::= ids cpxName */
{
254
,
-
3
},
/* (174) tablelist ::= ids cpxName ids */
{
254
,
-
4
},
/* (175) tablelist ::= tablelist COMMA ids cpxName */
{
254
,
-
5
},
/* (176) tablelist ::= tablelist COMMA ids cpxName ids */
{
255
,
-
1
},
/* (177) tmvar ::= VARIABLE */
{
240
,
-
4
},
/* (178) interval_opt ::= INTERVAL LP tmvar RP */
{
240
,
-
6
},
/* (179) interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */
{
240
,
0
},
/* (180) interval_opt ::= */
{
241
,
0
},
/* (181) session_option ::= */
{
241
,
-
7
},
/* (182) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
{
242
,
0
},
/* (183) fill_opt ::= */
{
242
,
-
6
},
/* (184) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
242
,
-
4
},
/* (185) fill_opt ::= FILL LP ID RP */
{
243
,
-
4
},
/* (186) sliding_opt ::= SLIDING LP tmvar RP */
{
243
,
0
},
/* (187) sliding_opt ::= */
{
245
,
0
},
/* (188) orderby_opt ::= */
{
245
,
-
3
},
/* (189) orderby_opt ::= ORDER BY sortlist */
{
256
,
-
4
},
/* (190) sortlist ::= sortlist COMMA item sortorder */
{
256
,
-
2
},
/* (191) sortlist ::= item sortorder */
{
258
,
-
2
},
/* (192) item ::= ids cpxName */
{
259
,
-
1
},
/* (193) sortorder ::= ASC */
{
259
,
-
1
},
/* (194) sortorder ::= DESC */
{
259
,
0
},
/* (195) sortorder ::= */
{
244
,
0
},
/* (196) groupby_opt ::= */
{
244
,
-
3
},
/* (197) groupby_opt ::= GROUP BY grouplist */
{
260
,
-
3
},
/* (198) grouplist ::= grouplist COMMA item */
{
260
,
-
1
},
/* (199) grouplist ::= item */
{
246
,
0
},
/* (200) having_opt ::= */
{
246
,
-
2
},
/* (201) having_opt ::= HAVING expr */
{
248
,
0
},
/* (202) limit_opt ::= */
{
248
,
-
2
},
/* (203) limit_opt ::= LIMIT signed */
{
248
,
-
4
},
/* (204) limit_opt ::= LIMIT signed OFFSET signed */
{
248
,
-
4
},
/* (205) limit_opt ::= LIMIT signed COMMA signed */
{
247
,
0
},
/* (206) slimit_opt ::= */
{
247
,
-
2
},
/* (207) slimit_opt ::= SLIMIT signed */
{
247
,
-
4
},
/* (208) slimit_opt ::= SLIMIT signed SOFFSET signed */
{
247
,
-
4
},
/* (209) slimit_opt ::= SLIMIT signed COMMA signed */
{
239
,
0
},
/* (210) where_opt ::= */
{
239
,
-
2
},
/* (211) where_opt ::= WHERE expr */
{
252
,
-
3
},
/* (212) expr ::= LP expr RP */
{
252
,
-
1
},
/* (213) expr ::= ID */
{
252
,
-
3
},
/* (214) expr ::= ID DOT ID */
{
252
,
-
3
},
/* (215) expr ::= ID DOT STAR */
{
252
,
-
1
},
/* (216) expr ::= INTEGER */
{
252
,
-
2
},
/* (217) expr ::= MINUS INTEGER */
{
252
,
-
2
},
/* (218) expr ::= PLUS INTEGER */
{
252
,
-
1
},
/* (219) expr ::= FLOAT */
{
252
,
-
2
},
/* (220) expr ::= MINUS FLOAT */
{
252
,
-
2
},
/* (221) expr ::= PLUS FLOAT */
{
252
,
-
1
},
/* (222) expr ::= STRING */
{
252
,
-
1
},
/* (223) expr ::= NOW */
{
252
,
-
1
},
/* (224) expr ::= VARIABLE */
{
252
,
-
1
},
/* (225) expr ::= BOOL */
{
252
,
-
4
},
/* (226) expr ::= ID LP exprlist RP */
{
252
,
-
4
},
/* (227) expr ::= ID LP STAR RP */
{
252
,
-
3
},
/* (228) expr ::= expr IS NULL */
{
252
,
-
4
},
/* (229) expr ::= expr IS NOT NULL */
{
252
,
-
3
},
/* (230) expr ::= expr LT expr */
{
252
,
-
3
},
/* (231) expr ::= expr GT expr */
{
252
,
-
3
},
/* (232) expr ::= expr LE expr */
{
252
,
-
3
},
/* (233) expr ::= expr GE expr */
{
252
,
-
3
},
/* (234) expr ::= expr NE expr */
{
252
,
-
3
},
/* (235) expr ::= expr EQ expr */
{
252
,
-
5
},
/* (236) expr ::= expr BETWEEN expr AND expr */
{
252
,
-
3
},
/* (237) expr ::= expr AND expr */
{
252
,
-
3
},
/* (238) expr ::= expr OR expr */
{
252
,
-
3
},
/* (239) expr ::= expr PLUS expr */
{
252
,
-
3
},
/* (240) expr ::= expr MINUS expr */
{
252
,
-
3
},
/* (241) expr ::= expr STAR expr */
{
252
,
-
3
},
/* (242) expr ::= expr SLASH expr */
{
252
,
-
3
},
/* (243) expr ::= expr REM expr */
{
252
,
-
3
},
/* (244) expr ::= expr LIKE expr */
{
252
,
-
5
},
/* (245) expr ::= expr IN LP exprlist RP */
{
261
,
-
3
},
/* (246) exprlist ::= exprlist COMMA expritem */
{
261
,
-
1
},
/* (247) exprlist ::= expritem */
{
262
,
-
1
},
/* (248) expritem ::= expr */
{
262
,
0
},
/* (249) expritem ::= */
{
189
,
-
3
},
/* (250) cmd ::= RESET QUERY CACHE */
{
189
,
-
3
},
/* (251) cmd ::= SYNCDB ids REPLICA */
{
189
,
-
7
},
/* (252) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{
189
,
-
7
},
/* (253) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{
189
,
-
7
},
/* (254) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
189
,
-
7
},
/* (255) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{
189
,
-
8
},
/* (256) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{
189
,
-
9
},
/* (257) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{
189
,
-
7
},
/* (258) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
{
189
,
-
7
},
/* (259) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
{
189
,
-
7
},
/* (260) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
{
189
,
-
7
},
/* (261) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
{
189
,
-
8
},
/* (262) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
{
189
,
-
3
},
/* (263) cmd ::= KILL CONNECTION INTEGER */
{
189
,
-
5
},
/* (264) cmd ::= KILL STREAM INTEGER COLON INTEGER */
{
189
,
-
5
},
/* (265) cmd ::= KILL QUERY INTEGER COLON INTEGER */
};
static
void
yy_accept
(
yyParser
*
);
/* Forward Declaration */
...
...
@@ -2252,13 +2256,13 @@ static void yy_reduce(
break
;
case
43
:
/* cmd ::= ALTER DATABASE ids alter_db_optr */
case
44
:
/* cmd ::= ALTER TOPIC ids alter_topic_optr */
yytestcase
(
yyruleno
==
44
);
{
SStrToken
t
=
{
0
};
setCreateDbInfo
(
pInfo
,
TSDB_SQL_ALTER_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
94
,
&
t
);}
{
SStrToken
t
=
{
0
};
setCreateDbInfo
(
pInfo
,
TSDB_SQL_ALTER_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
322
,
&
t
);}
break
;
case
45
:
/* cmd ::= ALTER ACCOUNT ids acct_optr */
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
,
&
yymsp
[
0
].
minor
.
yy
419
);}
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
,
&
yymsp
[
0
].
minor
.
yy
351
);}
break
;
case
46
:
/* 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
.
yy
419
);}
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
351
);}
break
;
case
47
:
/* ids ::= ID */
case
48
:
/* ids ::= STRING */
yytestcase
(
yyruleno
==
48
);
...
...
@@ -2280,11 +2284,11 @@ static void yy_reduce(
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_CREATE_DNODE
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);}
break
;
case
54
:
/* 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
.
yy
419
);}
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_CREATE_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
351
);}
break
;
case
55
:
/* cmd ::= CREATE DATABASE ifnotexists ids db_optr */
case
56
:
/* cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
yytestcase
(
yyruleno
==
56
);
{
setCreateDbInfo
(
pInfo
,
TSDB_SQL_CREATE_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
94
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
{
setCreateDbInfo
(
pInfo
,
TSDB_SQL_CREATE_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
322
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
break
;
case
57
:
/* cmd ::= CREATE USER ids PASS ids */
{
setCreateUserSql
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);}
...
...
@@ -2313,20 +2317,20 @@ static void yy_reduce(
break
;
case
76
:
/* acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{
yylhsminor
.
yy
419
.
maxUsers
=
(
yymsp
[
-
2
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
2
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
419
.
maxDbs
=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
3
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
419
.
maxTimeSeries
=
(
yymsp
[
-
7
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
7
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
419
.
maxStreams
=
(
yymsp
[
-
5
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
5
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
419
.
maxPointsPerSecond
=
(
yymsp
[
-
8
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
8
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
419
.
maxStorage
=
(
yymsp
[
-
6
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
6
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy
419
.
maxQueryTime
=
(
yymsp
[
-
4
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
4
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy
419
.
maxConnections
=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
1
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
419
.
stat
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
-
8
].
minor
.
yy
419
=
yylhsminor
.
yy419
;
yylhsminor
.
yy
351
.
maxUsers
=
(
yymsp
[
-
2
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
2
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
351
.
maxDbs
=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
3
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
351
.
maxTimeSeries
=
(
yymsp
[
-
7
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
7
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
351
.
maxStreams
=
(
yymsp
[
-
5
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
5
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
351
.
maxPointsPerSecond
=
(
yymsp
[
-
8
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
8
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
351
.
maxStorage
=
(
yymsp
[
-
6
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
6
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy
351
.
maxQueryTime
=
(
yymsp
[
-
4
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
4
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy
351
.
maxConnections
=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
1
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
351
.
stat
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
-
8
].
minor
.
yy
351
=
yylhsminor
.
yy351
;
break
;
case
77
:
/* keep ::= KEEP tagitemlist */
{
yymsp
[
-
1
].
minor
.
yy
429
=
yymsp
[
0
].
minor
.
yy42
9
;
}
{
yymsp
[
-
1
].
minor
.
yy
159
=
yymsp
[
0
].
minor
.
yy15
9
;
}
break
;
case
78
:
/* cache ::= CACHE INTEGER */
case
79
:
/* replica ::= REPLICA INTEGER */
yytestcase
(
yyruleno
==
79
);
...
...
@@ -2346,234 +2350,234 @@ static void yy_reduce(
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
break
;
case
93
:
/* db_optr ::= */
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy
94
);
yymsp
[
1
].
minor
.
yy94
.
dbType
=
TSDB_DB_TYPE_DEFAULT
;}
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy
322
);
yymsp
[
1
].
minor
.
yy322
.
dbType
=
TSDB_DB_TYPE_DEFAULT
;}
break
;
case
94
:
/* db_optr ::= db_optr cache */
{
yylhsminor
.
yy
94
=
yymsp
[
-
1
].
minor
.
yy94
;
yylhsminor
.
yy94
.
cacheBlockSize
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
94
=
yylhsminor
.
yy94
;
{
yylhsminor
.
yy
322
=
yymsp
[
-
1
].
minor
.
yy322
;
yylhsminor
.
yy322
.
cacheBlockSize
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
95
:
/* db_optr ::= db_optr replica */
case
112
:
/* alter_db_optr ::= alter_db_optr replica */
yytestcase
(
yyruleno
==
112
);
{
yylhsminor
.
yy
94
=
yymsp
[
-
1
].
minor
.
yy94
;
yylhsminor
.
yy94
.
replica
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
94
=
yylhsminor
.
yy94
;
{
yylhsminor
.
yy
322
=
yymsp
[
-
1
].
minor
.
yy322
;
yylhsminor
.
yy322
.
replica
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
96
:
/* db_optr ::= db_optr quorum */
case
113
:
/* alter_db_optr ::= alter_db_optr quorum */
yytestcase
(
yyruleno
==
113
);
{
yylhsminor
.
yy
94
=
yymsp
[
-
1
].
minor
.
yy94
;
yylhsminor
.
yy94
.
quorum
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
94
=
yylhsminor
.
yy94
;
{
yylhsminor
.
yy
322
=
yymsp
[
-
1
].
minor
.
yy322
;
yylhsminor
.
yy322
.
quorum
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
97
:
/* db_optr ::= db_optr days */
{
yylhsminor
.
yy
94
=
yymsp
[
-
1
].
minor
.
yy94
;
yylhsminor
.
yy94
.
daysPerFile
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
94
=
yylhsminor
.
yy94
;
{
yylhsminor
.
yy
322
=
yymsp
[
-
1
].
minor
.
yy322
;
yylhsminor
.
yy322
.
daysPerFile
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
98
:
/* db_optr ::= db_optr minrows */
{
yylhsminor
.
yy
94
=
yymsp
[
-
1
].
minor
.
yy94
;
yylhsminor
.
yy94
.
minRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
94
=
yylhsminor
.
yy94
;
{
yylhsminor
.
yy
322
=
yymsp
[
-
1
].
minor
.
yy322
;
yylhsminor
.
yy322
.
minRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
99
:
/* db_optr ::= db_optr maxrows */
{
yylhsminor
.
yy
94
=
yymsp
[
-
1
].
minor
.
yy94
;
yylhsminor
.
yy94
.
maxRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
94
=
yylhsminor
.
yy94
;
{
yylhsminor
.
yy
322
=
yymsp
[
-
1
].
minor
.
yy322
;
yylhsminor
.
yy322
.
maxRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
100
:
/* db_optr ::= db_optr blocks */
case
115
:
/* alter_db_optr ::= alter_db_optr blocks */
yytestcase
(
yyruleno
==
115
);
{
yylhsminor
.
yy
94
=
yymsp
[
-
1
].
minor
.
yy94
;
yylhsminor
.
yy94
.
numOfBlocks
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
94
=
yylhsminor
.
yy94
;
{
yylhsminor
.
yy
322
=
yymsp
[
-
1
].
minor
.
yy322
;
yylhsminor
.
yy322
.
numOfBlocks
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
101
:
/* db_optr ::= db_optr ctime */
{
yylhsminor
.
yy
94
=
yymsp
[
-
1
].
minor
.
yy94
;
yylhsminor
.
yy94
.
commitTime
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
94
=
yylhsminor
.
yy94
;
{
yylhsminor
.
yy
322
=
yymsp
[
-
1
].
minor
.
yy322
;
yylhsminor
.
yy322
.
commitTime
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
102
:
/* db_optr ::= db_optr wal */
case
117
:
/* alter_db_optr ::= alter_db_optr wal */
yytestcase
(
yyruleno
==
117
);
{
yylhsminor
.
yy
94
=
yymsp
[
-
1
].
minor
.
yy94
;
yylhsminor
.
yy94
.
walLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
94
=
yylhsminor
.
yy94
;
{
yylhsminor
.
yy
322
=
yymsp
[
-
1
].
minor
.
yy322
;
yylhsminor
.
yy322
.
walLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
103
:
/* db_optr ::= db_optr fsync */
case
118
:
/* alter_db_optr ::= alter_db_optr fsync */
yytestcase
(
yyruleno
==
118
);
{
yylhsminor
.
yy
94
=
yymsp
[
-
1
].
minor
.
yy94
;
yylhsminor
.
yy94
.
fsyncPeriod
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
94
=
yylhsminor
.
yy94
;
{
yylhsminor
.
yy
322
=
yymsp
[
-
1
].
minor
.
yy322
;
yylhsminor
.
yy322
.
fsyncPeriod
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
104
:
/* db_optr ::= db_optr comp */
case
116
:
/* alter_db_optr ::= alter_db_optr comp */
yytestcase
(
yyruleno
==
116
);
{
yylhsminor
.
yy
94
=
yymsp
[
-
1
].
minor
.
yy94
;
yylhsminor
.
yy94
.
compressionLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
94
=
yylhsminor
.
yy94
;
{
yylhsminor
.
yy
322
=
yymsp
[
-
1
].
minor
.
yy322
;
yylhsminor
.
yy322
.
compressionLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
105
:
/* db_optr ::= db_optr prec */
{
yylhsminor
.
yy
94
=
yymsp
[
-
1
].
minor
.
yy94
;
yylhsminor
.
yy94
.
precision
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
-
1
].
minor
.
yy
94
=
yylhsminor
.
yy94
;
{
yylhsminor
.
yy
322
=
yymsp
[
-
1
].
minor
.
yy322
;
yylhsminor
.
yy322
.
precision
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
106
:
/* db_optr ::= db_optr keep */
case
114
:
/* alter_db_optr ::= alter_db_optr keep */
yytestcase
(
yyruleno
==
114
);
{
yylhsminor
.
yy
94
=
yymsp
[
-
1
].
minor
.
yy94
;
yylhsminor
.
yy94
.
keep
=
yymsp
[
0
].
minor
.
yy42
9
;
}
yymsp
[
-
1
].
minor
.
yy
94
=
yylhsminor
.
yy94
;
{
yylhsminor
.
yy
322
=
yymsp
[
-
1
].
minor
.
yy322
;
yylhsminor
.
yy322
.
keep
=
yymsp
[
0
].
minor
.
yy15
9
;
}
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
107
:
/* db_optr ::= db_optr update */
case
119
:
/* alter_db_optr ::= alter_db_optr update */
yytestcase
(
yyruleno
==
119
);
{
yylhsminor
.
yy
94
=
yymsp
[
-
1
].
minor
.
yy94
;
yylhsminor
.
yy94
.
update
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
94
=
yylhsminor
.
yy94
;
{
yylhsminor
.
yy
322
=
yymsp
[
-
1
].
minor
.
yy322
;
yylhsminor
.
yy322
.
update
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
108
:
/* db_optr ::= db_optr cachelast */
case
120
:
/* alter_db_optr ::= alter_db_optr cachelast */
yytestcase
(
yyruleno
==
120
);
{
yylhsminor
.
yy
94
=
yymsp
[
-
1
].
minor
.
yy94
;
yylhsminor
.
yy94
.
cachelast
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
94
=
yylhsminor
.
yy94
;
{
yylhsminor
.
yy
322
=
yymsp
[
-
1
].
minor
.
yy322
;
yylhsminor
.
yy322
.
cachelast
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
109
:
/* topic_optr ::= db_optr */
case
121
:
/* alter_topic_optr ::= alter_db_optr */
yytestcase
(
yyruleno
==
121
);
{
yylhsminor
.
yy
94
=
yymsp
[
0
].
minor
.
yy94
;
yylhsminor
.
yy94
.
dbType
=
TSDB_DB_TYPE_TOPIC
;
}
yymsp
[
0
].
minor
.
yy
94
=
yylhsminor
.
yy94
;
{
yylhsminor
.
yy
322
=
yymsp
[
0
].
minor
.
yy322
;
yylhsminor
.
yy322
.
dbType
=
TSDB_DB_TYPE_TOPIC
;
}
yymsp
[
0
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
110
:
/* topic_optr ::= topic_optr partitions */
case
122
:
/* alter_topic_optr ::= alter_topic_optr partitions */
yytestcase
(
yyruleno
==
122
);
{
yylhsminor
.
yy
94
=
yymsp
[
-
1
].
minor
.
yy94
;
yylhsminor
.
yy94
.
partitions
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
94
=
yylhsminor
.
yy94
;
{
yylhsminor
.
yy
322
=
yymsp
[
-
1
].
minor
.
yy322
;
yylhsminor
.
yy322
.
partitions
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
111
:
/* alter_db_optr ::= */
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy
94
);
yymsp
[
1
].
minor
.
yy94
.
dbType
=
TSDB_DB_TYPE_DEFAULT
;}
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy
322
);
yymsp
[
1
].
minor
.
yy322
.
dbType
=
TSDB_DB_TYPE_DEFAULT
;}
break
;
case
123
:
/* typename ::= ids */
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tSetColumnType
(
&
yylhsminor
.
yy4
51
,
&
yymsp
[
0
].
minor
.
yy0
);
tSetColumnType
(
&
yylhsminor
.
yy4
07
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy4
51
=
yylhsminor
.
yy451
;
yymsp
[
0
].
minor
.
yy4
07
=
yylhsminor
.
yy407
;
break
;
case
124
:
/* typename ::= ids LP signed RP */
{
if
(
yymsp
[
-
1
].
minor
.
yy
481
<=
0
)
{
if
(
yymsp
[
-
1
].
minor
.
yy
317
<=
0
)
{
yymsp
[
-
3
].
minor
.
yy0
.
type
=
0
;
tSetColumnType
(
&
yylhsminor
.
yy4
51
,
&
yymsp
[
-
3
].
minor
.
yy0
);
tSetColumnType
(
&
yylhsminor
.
yy4
07
,
&
yymsp
[
-
3
].
minor
.
yy0
);
}
else
{
yymsp
[
-
3
].
minor
.
yy0
.
type
=
-
yymsp
[
-
1
].
minor
.
yy
481
;
// negative value of name length
tSetColumnType
(
&
yylhsminor
.
yy4
51
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yymsp
[
-
3
].
minor
.
yy0
.
type
=
-
yymsp
[
-
1
].
minor
.
yy
317
;
// negative value of name length
tSetColumnType
(
&
yylhsminor
.
yy4
07
,
&
yymsp
[
-
3
].
minor
.
yy0
);
}
}
yymsp
[
-
3
].
minor
.
yy4
51
=
yylhsminor
.
yy451
;
yymsp
[
-
3
].
minor
.
yy4
07
=
yylhsminor
.
yy407
;
break
;
case
125
:
/* typename ::= ids UNSIGNED */
{
yymsp
[
-
1
].
minor
.
yy0
.
type
=
0
;
yymsp
[
-
1
].
minor
.
yy0
.
n
=
((
yymsp
[
0
].
minor
.
yy0
.
z
+
yymsp
[
0
].
minor
.
yy0
.
n
)
-
yymsp
[
-
1
].
minor
.
yy0
.
z
);
tSetColumnType
(
&
yylhsminor
.
yy4
51
,
&
yymsp
[
-
1
].
minor
.
yy0
);
tSetColumnType
(
&
yylhsminor
.
yy4
07
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
yymsp
[
-
1
].
minor
.
yy4
51
=
yylhsminor
.
yy451
;
yymsp
[
-
1
].
minor
.
yy4
07
=
yylhsminor
.
yy407
;
break
;
case
126
:
/* signed ::= INTEGER */
{
yylhsminor
.
yy
481
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
0
].
minor
.
yy
481
=
yylhsminor
.
yy481
;
{
yylhsminor
.
yy
317
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
0
].
minor
.
yy
317
=
yylhsminor
.
yy317
;
break
;
case
127
:
/* signed ::= PLUS INTEGER */
{
yymsp
[
-
1
].
minor
.
yy
481
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yymsp
[
-
1
].
minor
.
yy
317
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
break
;
case
128
:
/* signed ::= MINUS INTEGER */
{
yymsp
[
-
1
].
minor
.
yy
481
=
-
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);}
{
yymsp
[
-
1
].
minor
.
yy
317
=
-
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);}
break
;
case
132
:
/* cmd ::= CREATE TABLE create_table_list */
{
pInfo
->
type
=
TSDB_SQL_CREATE_TABLE
;
pInfo
->
pCreateTableInfo
=
yymsp
[
0
].
minor
.
yy1
9
4
;}
{
pInfo
->
type
=
TSDB_SQL_CREATE_TABLE
;
pInfo
->
pCreateTableInfo
=
yymsp
[
0
].
minor
.
yy14
;}
break
;
case
133
:
/* create_table_list ::= create_from_stable */
{
SCreateTableSql
*
pCreateTable
=
calloc
(
1
,
sizeof
(
SCreateTableSql
));
pCreateTable
->
childTableInfo
=
taosArrayInit
(
4
,
sizeof
(
SCreatedTableInfo
));
taosArrayPush
(
pCreateTable
->
childTableInfo
,
&
yymsp
[
0
].
minor
.
yy2
52
);
taosArrayPush
(
pCreateTable
->
childTableInfo
,
&
yymsp
[
0
].
minor
.
yy2
06
);
pCreateTable
->
type
=
TSQL_CREATE_TABLE_FROM_STABLE
;
yylhsminor
.
yy1
9
4
=
pCreateTable
;
yylhsminor
.
yy14
=
pCreateTable
;
}
yymsp
[
0
].
minor
.
yy1
94
=
yylhsminor
.
yy19
4
;
yymsp
[
0
].
minor
.
yy1
4
=
yylhsminor
.
yy1
4
;
break
;
case
134
:
/* create_table_list ::= create_table_list create_from_stable */
{
taosArrayPush
(
yymsp
[
-
1
].
minor
.
yy1
94
->
childTableInfo
,
&
yymsp
[
0
].
minor
.
yy252
);
yylhsminor
.
yy1
94
=
yymsp
[
-
1
].
minor
.
yy19
4
;
taosArrayPush
(
yymsp
[
-
1
].
minor
.
yy1
4
->
childTableInfo
,
&
yymsp
[
0
].
minor
.
yy206
);
yylhsminor
.
yy1
4
=
yymsp
[
-
1
].
minor
.
yy1
4
;
}
yymsp
[
-
1
].
minor
.
yy1
94
=
yylhsminor
.
yy19
4
;
yymsp
[
-
1
].
minor
.
yy1
4
=
yylhsminor
.
yy1
4
;
break
;
case
135
:
/* create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
{
yylhsminor
.
yy1
94
=
tSetCreateTableInfo
(
yymsp
[
-
1
].
minor
.
yy42
9
,
NULL
,
NULL
,
TSQL_CREATE_TABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy1
9
4
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yylhsminor
.
yy1
4
=
tSetCreateTableInfo
(
yymsp
[
-
1
].
minor
.
yy15
9
,
NULL
,
NULL
,
TSQL_CREATE_TABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy14
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
setCreatedTableName
(
pInfo
,
&
yymsp
[
-
4
].
minor
.
yy0
,
&
yymsp
[
-
5
].
minor
.
yy0
);
}
yymsp
[
-
5
].
minor
.
yy1
94
=
yylhsminor
.
yy19
4
;
yymsp
[
-
5
].
minor
.
yy1
4
=
yylhsminor
.
yy1
4
;
break
;
case
136
:
/* create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
{
yylhsminor
.
yy1
94
=
tSetCreateTableInfo
(
yymsp
[
-
5
].
minor
.
yy429
,
yymsp
[
-
1
].
minor
.
yy42
9
,
NULL
,
TSQL_CREATE_STABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy1
9
4
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yylhsminor
.
yy1
4
=
tSetCreateTableInfo
(
yymsp
[
-
5
].
minor
.
yy159
,
yymsp
[
-
1
].
minor
.
yy15
9
,
NULL
,
TSQL_CREATE_STABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy14
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yymsp
[
-
8
].
minor
.
yy0
.
n
+=
yymsp
[
-
7
].
minor
.
yy0
.
n
;
setCreatedTableName
(
pInfo
,
&
yymsp
[
-
8
].
minor
.
yy0
,
&
yymsp
[
-
9
].
minor
.
yy0
);
}
yymsp
[
-
9
].
minor
.
yy1
94
=
yylhsminor
.
yy19
4
;
yymsp
[
-
9
].
minor
.
yy1
4
=
yylhsminor
.
yy1
4
;
break
;
case
137
:
/* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
{
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
yymsp
[
-
8
].
minor
.
yy0
.
n
+=
yymsp
[
-
7
].
minor
.
yy0
.
n
;
yylhsminor
.
yy2
52
=
createNewChildTableInfo
(
&
yymsp
[
-
5
].
minor
.
yy0
,
NULL
,
yymsp
[
-
1
].
minor
.
yy42
9
,
&
yymsp
[
-
8
].
minor
.
yy0
,
&
yymsp
[
-
9
].
minor
.
yy0
);
yylhsminor
.
yy2
06
=
createNewChildTableInfo
(
&
yymsp
[
-
5
].
minor
.
yy0
,
NULL
,
yymsp
[
-
1
].
minor
.
yy15
9
,
&
yymsp
[
-
8
].
minor
.
yy0
,
&
yymsp
[
-
9
].
minor
.
yy0
);
}
yymsp
[
-
9
].
minor
.
yy2
52
=
yylhsminor
.
yy252
;
yymsp
[
-
9
].
minor
.
yy2
06
=
yylhsminor
.
yy206
;
break
;
case
138
:
/* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
{
yymsp
[
-
8
].
minor
.
yy0
.
n
+=
yymsp
[
-
7
].
minor
.
yy0
.
n
;
yymsp
[
-
11
].
minor
.
yy0
.
n
+=
yymsp
[
-
10
].
minor
.
yy0
.
n
;
yylhsminor
.
yy2
52
=
createNewChildTableInfo
(
&
yymsp
[
-
8
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy429
,
yymsp
[
-
1
].
minor
.
yy42
9
,
&
yymsp
[
-
11
].
minor
.
yy0
,
&
yymsp
[
-
12
].
minor
.
yy0
);
yylhsminor
.
yy2
06
=
createNewChildTableInfo
(
&
yymsp
[
-
8
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy159
,
yymsp
[
-
1
].
minor
.
yy15
9
,
&
yymsp
[
-
11
].
minor
.
yy0
,
&
yymsp
[
-
12
].
minor
.
yy0
);
}
yymsp
[
-
12
].
minor
.
yy2
52
=
yylhsminor
.
yy252
;
yymsp
[
-
12
].
minor
.
yy2
06
=
yylhsminor
.
yy206
;
break
;
case
139
:
/* tagNamelist ::= tagNamelist COMMA ids */
{
taosArrayPush
(
yymsp
[
-
2
].
minor
.
yy
429
,
&
yymsp
[
0
].
minor
.
yy0
);
yylhsminor
.
yy429
=
yymsp
[
-
2
].
minor
.
yy42
9
;
}
yymsp
[
-
2
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
{
taosArrayPush
(
yymsp
[
-
2
].
minor
.
yy
159
,
&
yymsp
[
0
].
minor
.
yy0
);
yylhsminor
.
yy159
=
yymsp
[
-
2
].
minor
.
yy15
9
;
}
yymsp
[
-
2
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
140
:
/* tagNamelist ::= ids */
{
yylhsminor
.
yy
429
=
taosArrayInit
(
4
,
sizeof
(
SStrToken
));
taosArrayPush
(
yylhsminor
.
yy42
9
,
&
yymsp
[
0
].
minor
.
yy0
);}
yymsp
[
0
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
{
yylhsminor
.
yy
159
=
taosArrayInit
(
4
,
sizeof
(
SStrToken
));
taosArrayPush
(
yylhsminor
.
yy15
9
,
&
yymsp
[
0
].
minor
.
yy0
);}
yymsp
[
0
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
141
:
/* create_table_args ::= ifnotexists ids cpxName AS select */
{
yylhsminor
.
yy1
94
=
tSetCreateTableInfo
(
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy254
,
TSQL_CREATE_STREAM
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy1
9
4
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yylhsminor
.
yy1
4
=
tSetCreateTableInfo
(
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy272
,
TSQL_CREATE_STREAM
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy14
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yymsp
[
-
3
].
minor
.
yy0
.
n
+=
yymsp
[
-
2
].
minor
.
yy0
.
n
;
setCreatedTableName
(
pInfo
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
4
].
minor
.
yy0
);
}
yymsp
[
-
4
].
minor
.
yy1
94
=
yylhsminor
.
yy19
4
;
yymsp
[
-
4
].
minor
.
yy1
4
=
yylhsminor
.
yy1
4
;
break
;
case
142
:
/* columnlist ::= columnlist COMMA column */
{
taosArrayPush
(
yymsp
[
-
2
].
minor
.
yy
429
,
&
yymsp
[
0
].
minor
.
yy451
);
yylhsminor
.
yy429
=
yymsp
[
-
2
].
minor
.
yy42
9
;
}
yymsp
[
-
2
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
{
taosArrayPush
(
yymsp
[
-
2
].
minor
.
yy
159
,
&
yymsp
[
0
].
minor
.
yy407
);
yylhsminor
.
yy159
=
yymsp
[
-
2
].
minor
.
yy15
9
;
}
yymsp
[
-
2
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
143
:
/* columnlist ::= column */
{
yylhsminor
.
yy
429
=
taosArrayInit
(
4
,
sizeof
(
TAOS_FIELD
));
taosArrayPush
(
yylhsminor
.
yy429
,
&
yymsp
[
0
].
minor
.
yy451
);}
yymsp
[
0
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
{
yylhsminor
.
yy
159
=
taosArrayInit
(
4
,
sizeof
(
TAOS_FIELD
));
taosArrayPush
(
yylhsminor
.
yy159
,
&
yymsp
[
0
].
minor
.
yy407
);}
yymsp
[
0
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
144
:
/* column ::= ids typename */
{
tSetColumnInfo
(
&
yylhsminor
.
yy4
51
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy451
);
tSetColumnInfo
(
&
yylhsminor
.
yy4
07
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy407
);
}
yymsp
[
-
1
].
minor
.
yy4
51
=
yylhsminor
.
yy451
;
yymsp
[
-
1
].
minor
.
yy4
07
=
yylhsminor
.
yy407
;
break
;
case
145
:
/* tagitemlist ::= tagitemlist COMMA tagitem */
{
yylhsminor
.
yy
429
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy429
,
&
yymsp
[
0
].
minor
.
yy21
8
,
-
1
);
}
yymsp
[
-
2
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
{
yylhsminor
.
yy
159
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy159
,
&
yymsp
[
0
].
minor
.
yy48
8
,
-
1
);
}
yymsp
[
-
2
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
146
:
/* tagitemlist ::= tagitem */
{
yylhsminor
.
yy
429
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy21
8
,
-
1
);
}
yymsp
[
0
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
{
yylhsminor
.
yy
159
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy48
8
,
-
1
);
}
yymsp
[
0
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
147
:
/* tagitem ::= INTEGER */
case
148
:
/* tagitem ::= FLOAT */
yytestcase
(
yyruleno
==
148
);
case
149
:
/* tagitem ::= STRING */
yytestcase
(
yyruleno
==
149
);
case
150
:
/* tagitem ::= BOOL */
yytestcase
(
yyruleno
==
150
);
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy
21
8
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
218
=
yylhsminor
.
yy21
8
;
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy
48
8
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
488
=
yylhsminor
.
yy48
8
;
break
;
case
151
:
/* tagitem ::= NULL */
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tVariantCreate
(
&
yylhsminor
.
yy
21
8
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
218
=
yylhsminor
.
yy21
8
;
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tVariantCreate
(
&
yylhsminor
.
yy
48
8
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
488
=
yylhsminor
.
yy48
8
;
break
;
case
152
:
/* tagitem ::= MINUS INTEGER */
case
153
:
/* tagitem ::= MINUS FLOAT */
yytestcase
(
yyruleno
==
153
);
...
...
@@ -2583,56 +2587,56 @@ static void yy_reduce(
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
.
yy
21
8
,
&
yymsp
[
-
1
].
minor
.
yy0
);
tVariantCreate
(
&
yylhsminor
.
yy
48
8
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
yymsp
[
-
1
].
minor
.
yy
218
=
yylhsminor
.
yy21
8
;
yymsp
[
-
1
].
minor
.
yy
488
=
yylhsminor
.
yy48
8
;
break
;
case
156
:
/* select ::= SELECT selcollist from where_opt interval_opt session_option fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
{
yylhsminor
.
yy2
54
=
tSetQuerySqlNode
(
&
yymsp
[
-
12
].
minor
.
yy0
,
yymsp
[
-
11
].
minor
.
yy429
,
yymsp
[
-
10
].
minor
.
yy70
,
yymsp
[
-
9
].
minor
.
yy170
,
yymsp
[
-
4
].
minor
.
yy429
,
yymsp
[
-
3
].
minor
.
yy429
,
&
yymsp
[
-
8
].
minor
.
yy220
,
&
yymsp
[
-
7
].
minor
.
yy87
,
&
yymsp
[
-
5
].
minor
.
yy0
,
yymsp
[
-
6
].
minor
.
yy429
,
&
yymsp
[
0
].
minor
.
yy18
,
&
yymsp
[
-
1
].
minor
.
yy18
);
yylhsminor
.
yy2
72
=
tSetQuerySqlNode
(
&
yymsp
[
-
12
].
minor
.
yy0
,
yymsp
[
-
11
].
minor
.
yy159
,
yymsp
[
-
10
].
minor
.
yy514
,
yymsp
[
-
9
].
minor
.
yy118
,
yymsp
[
-
4
].
minor
.
yy159
,
yymsp
[
-
3
].
minor
.
yy159
,
&
yymsp
[
-
8
].
minor
.
yy184
,
&
yymsp
[
-
7
].
minor
.
yy249
,
&
yymsp
[
-
5
].
minor
.
yy0
,
yymsp
[
-
6
].
minor
.
yy159
,
&
yymsp
[
0
].
minor
.
yy440
,
&
yymsp
[
-
1
].
minor
.
yy440
);
}
yymsp
[
-
12
].
minor
.
yy2
54
=
yylhsminor
.
yy254
;
yymsp
[
-
12
].
minor
.
yy2
72
=
yylhsminor
.
yy272
;
break
;
case
157
:
/* select ::= LP select RP */
{
yymsp
[
-
2
].
minor
.
yy2
54
=
yymsp
[
-
1
].
minor
.
yy254
;}
{
yymsp
[
-
2
].
minor
.
yy2
72
=
yymsp
[
-
1
].
minor
.
yy272
;}
break
;
case
158
:
/* union ::= select */
{
yylhsminor
.
yy
141
=
setSubclause
(
NULL
,
yymsp
[
0
].
minor
.
yy254
);
}
yymsp
[
0
].
minor
.
yy
141
=
yylhsminor
.
yy14
1
;
{
yylhsminor
.
yy
391
=
setSubclause
(
NULL
,
yymsp
[
0
].
minor
.
yy272
);
}
yymsp
[
0
].
minor
.
yy
391
=
yylhsminor
.
yy39
1
;
break
;
case
159
:
/* union ::= union UNION ALL select */
{
yylhsminor
.
yy
141
=
appendSelectClause
(
yymsp
[
-
3
].
minor
.
yy141
,
yymsp
[
0
].
minor
.
yy254
);
}
yymsp
[
-
3
].
minor
.
yy
141
=
yylhsminor
.
yy14
1
;
{
yylhsminor
.
yy
391
=
appendSelectClause
(
yymsp
[
-
3
].
minor
.
yy391
,
yymsp
[
0
].
minor
.
yy272
);
}
yymsp
[
-
3
].
minor
.
yy
391
=
yylhsminor
.
yy39
1
;
break
;
case
160
:
/* cmd ::= union */
{
setSqlInfo
(
pInfo
,
yymsp
[
0
].
minor
.
yy
14
1
,
NULL
,
TSDB_SQL_SELECT
);
}
{
setSqlInfo
(
pInfo
,
yymsp
[
0
].
minor
.
yy
39
1
,
NULL
,
TSDB_SQL_SELECT
);
}
break
;
case
161
:
/* select ::= SELECT selcollist */
{
yylhsminor
.
yy2
54
=
tSetQuerySqlNode
(
&
yymsp
[
-
1
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy42
9
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
yylhsminor
.
yy2
72
=
tSetQuerySqlNode
(
&
yymsp
[
-
1
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy15
9
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy2
54
=
yylhsminor
.
yy254
;
yymsp
[
-
1
].
minor
.
yy2
72
=
yylhsminor
.
yy272
;
break
;
case
162
:
/* sclp ::= selcollist COMMA */
{
yylhsminor
.
yy
429
=
yymsp
[
-
1
].
minor
.
yy42
9
;}
yymsp
[
-
1
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
{
yylhsminor
.
yy
159
=
yymsp
[
-
1
].
minor
.
yy15
9
;}
yymsp
[
-
1
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
163
:
/* sclp ::= */
case
188
:
/* orderby_opt ::= */
yytestcase
(
yyruleno
==
188
);
{
yymsp
[
1
].
minor
.
yy
42
9
=
0
;}
{
yymsp
[
1
].
minor
.
yy
15
9
=
0
;}
break
;
case
164
:
/* selcollist ::= sclp distinct expr as */
{
yylhsminor
.
yy
429
=
tSqlExprListAppend
(
yymsp
[
-
3
].
minor
.
yy429
,
yymsp
[
-
1
].
minor
.
yy170
,
yymsp
[
-
2
].
minor
.
yy0
.
n
?
&
yymsp
[
-
2
].
minor
.
yy0
:
0
,
yymsp
[
0
].
minor
.
yy0
.
n
?&
yymsp
[
0
].
minor
.
yy0
:
0
);
yylhsminor
.
yy
159
=
tSqlExprListAppend
(
yymsp
[
-
3
].
minor
.
yy159
,
yymsp
[
-
1
].
minor
.
yy118
,
yymsp
[
-
2
].
minor
.
yy0
.
n
?
&
yymsp
[
-
2
].
minor
.
yy0
:
0
,
yymsp
[
0
].
minor
.
yy0
.
n
?&
yymsp
[
0
].
minor
.
yy0
:
0
);
}
yymsp
[
-
3
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
yymsp
[
-
3
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
165
:
/* selcollist ::= sclp STAR */
{
tSqlExpr
*
pNode
=
tSqlExprCreateIdValue
(
NULL
,
TK_ALL
);
yylhsminor
.
yy
429
=
tSqlExprListAppend
(
yymsp
[
-
1
].
minor
.
yy42
9
,
pNode
,
0
,
0
);
yylhsminor
.
yy
159
=
tSqlExprListAppend
(
yymsp
[
-
1
].
minor
.
yy15
9
,
pNode
,
0
,
0
);
}
yymsp
[
-
1
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
yymsp
[
-
1
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
166
:
/* as ::= AS ids */
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
...
...
@@ -2649,35 +2653,35 @@ static void yy_reduce(
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
break
;
case
171
:
/* from ::= FROM tablelist */
{
yymsp
[
-
1
].
minor
.
yy
70
=
yymsp
[
0
].
minor
.
yy42
9
;}
{
yymsp
[
-
1
].
minor
.
yy
514
=
yymsp
[
0
].
minor
.
yy15
9
;}
break
;
case
172
:
/* from ::= FROM LP union RP */
{
yymsp
[
-
3
].
minor
.
yy
70
=
yymsp
[
-
1
].
minor
.
yy14
1
;}
{
yymsp
[
-
3
].
minor
.
yy
514
=
yymsp
[
-
1
].
minor
.
yy39
1
;}
break
;
case
173
:
/* tablelist ::= ids cpxName */
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yylhsminor
.
yy
42
9
=
setTableNameList
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
);
yylhsminor
.
yy
15
9
=
setTableNameList
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
yymsp
[
-
1
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
174
:
/* tablelist ::= ids cpxName ids */
{
toTSDBType
(
yymsp
[
-
2
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
yymsp
[
-
1
].
minor
.
yy0
.
n
;
yylhsminor
.
yy
42
9
=
setTableNameList
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
yylhsminor
.
yy
15
9
=
setTableNameList
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
yymsp
[
-
2
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
175
:
/* tablelist ::= tablelist COMMA ids cpxName */
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yylhsminor
.
yy
429
=
setTableNameList
(
yymsp
[
-
3
].
minor
.
yy42
9
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
);
yylhsminor
.
yy
159
=
setTableNameList
(
yymsp
[
-
3
].
minor
.
yy15
9
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
);
}
yymsp
[
-
3
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
yymsp
[
-
3
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
176
:
/* tablelist ::= tablelist COMMA ids cpxName ids */
{
...
...
@@ -2685,35 +2689,35 @@ static void yy_reduce(
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
yymsp
[
-
1
].
minor
.
yy0
.
n
;
yylhsminor
.
yy
429
=
setTableNameList
(
yymsp
[
-
4
].
minor
.
yy42
9
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
yylhsminor
.
yy
159
=
setTableNameList
(
yymsp
[
-
4
].
minor
.
yy15
9
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
4
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
yymsp
[
-
4
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
177
:
/* tmvar ::= VARIABLE */
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;}
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
break
;
case
178
:
/* interval_opt ::= INTERVAL LP tmvar RP */
{
yymsp
[
-
3
].
minor
.
yy
220
.
interval
=
yymsp
[
-
1
].
minor
.
yy0
;
yymsp
[
-
3
].
minor
.
yy220
.
offset
.
n
=
0
;}
{
yymsp
[
-
3
].
minor
.
yy
184
.
interval
=
yymsp
[
-
1
].
minor
.
yy0
;
yymsp
[
-
3
].
minor
.
yy184
.
offset
.
n
=
0
;}
break
;
case
179
:
/* interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */
{
yymsp
[
-
5
].
minor
.
yy
220
.
interval
=
yymsp
[
-
3
].
minor
.
yy0
;
yymsp
[
-
5
].
minor
.
yy220
.
offset
=
yymsp
[
-
1
].
minor
.
yy0
;}
{
yymsp
[
-
5
].
minor
.
yy
184
.
interval
=
yymsp
[
-
3
].
minor
.
yy0
;
yymsp
[
-
5
].
minor
.
yy184
.
offset
=
yymsp
[
-
1
].
minor
.
yy0
;}
break
;
case
180
:
/* interval_opt ::= */
{
memset
(
&
yymsp
[
1
].
minor
.
yy
220
,
0
,
sizeof
(
yymsp
[
1
].
minor
.
yy220
));}
{
memset
(
&
yymsp
[
1
].
minor
.
yy
184
,
0
,
sizeof
(
yymsp
[
1
].
minor
.
yy184
));}
break
;
case
181
:
/* session_option ::= */
{
yymsp
[
1
].
minor
.
yy
87
.
col
.
n
=
0
;
yymsp
[
1
].
minor
.
yy87
.
gap
.
n
=
0
;}
{
yymsp
[
1
].
minor
.
yy
249
.
col
.
n
=
0
;
yymsp
[
1
].
minor
.
yy249
.
gap
.
n
=
0
;}
break
;
case
182
:
/* session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
6
].
minor
.
yy
87
.
col
=
yymsp
[
-
4
].
minor
.
yy0
;
yymsp
[
-
6
].
minor
.
yy
87
.
gap
=
yymsp
[
-
1
].
minor
.
yy0
;
yymsp
[
-
6
].
minor
.
yy
249
.
col
=
yymsp
[
-
4
].
minor
.
yy0
;
yymsp
[
-
6
].
minor
.
yy
249
.
gap
=
yymsp
[
-
1
].
minor
.
yy0
;
}
break
;
case
183
:
/* fill_opt ::= */
{
yymsp
[
1
].
minor
.
yy
42
9
=
0
;
}
{
yymsp
[
1
].
minor
.
yy
15
9
=
0
;
}
break
;
case
184
:
/* fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
...
...
@@ -2721,14 +2725,14 @@ static void yy_reduce(
toTSDBType
(
yymsp
[
-
3
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
A
,
&
yymsp
[
-
3
].
minor
.
yy0
);
tVariantListInsert
(
yymsp
[
-
1
].
minor
.
yy
42
9
,
&
A
,
-
1
,
0
);
yymsp
[
-
5
].
minor
.
yy
429
=
yymsp
[
-
1
].
minor
.
yy42
9
;
tVariantListInsert
(
yymsp
[
-
1
].
minor
.
yy
15
9
,
&
A
,
-
1
,
0
);
yymsp
[
-
5
].
minor
.
yy
159
=
yymsp
[
-
1
].
minor
.
yy15
9
;
}
break
;
case
185
:
/* fill_opt ::= FILL LP ID RP */
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
3
].
minor
.
yy
42
9
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
yymsp
[
-
3
].
minor
.
yy
15
9
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
}
break
;
case
186
:
/* sliding_opt ::= SLIDING LP tmvar RP */
...
...
@@ -2738,238 +2742,241 @@ static void yy_reduce(
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
yymsp
[
1
].
minor
.
yy0
.
z
=
NULL
;
yymsp
[
1
].
minor
.
yy0
.
type
=
0
;
}
break
;
case
189
:
/* orderby_opt ::= ORDER BY sortlist */
{
yymsp
[
-
2
].
minor
.
yy
429
=
yymsp
[
0
].
minor
.
yy42
9
;}
{
yymsp
[
-
2
].
minor
.
yy
159
=
yymsp
[
0
].
minor
.
yy15
9
;}
break
;
case
190
:
/* sortlist ::= sortlist COMMA item sortorder */
{
yylhsminor
.
yy
429
=
tVariantListAppend
(
yymsp
[
-
3
].
minor
.
yy429
,
&
yymsp
[
-
1
].
minor
.
yy218
,
yymsp
[
0
].
minor
.
yy116
);
yylhsminor
.
yy
159
=
tVariantListAppend
(
yymsp
[
-
3
].
minor
.
yy159
,
&
yymsp
[
-
1
].
minor
.
yy488
,
yymsp
[
0
].
minor
.
yy20
);
}
yymsp
[
-
3
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
yymsp
[
-
3
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
191
:
/* sortlist ::= item sortorder */
{
yylhsminor
.
yy
429
=
tVariantListAppend
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy218
,
yymsp
[
0
].
minor
.
yy116
);
yylhsminor
.
yy
159
=
tVariantListAppend
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy488
,
yymsp
[
0
].
minor
.
yy20
);
}
yymsp
[
-
1
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
yymsp
[
-
1
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
192
:
/* item ::= ids cpxName */
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
tVariantCreate
(
&
yylhsminor
.
yy
21
8
,
&
yymsp
[
-
1
].
minor
.
yy0
);
tVariantCreate
(
&
yylhsminor
.
yy
48
8
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
yymsp
[
-
1
].
minor
.
yy
218
=
yylhsminor
.
yy21
8
;
yymsp
[
-
1
].
minor
.
yy
488
=
yylhsminor
.
yy48
8
;
break
;
case
193
:
/* sortorder ::= ASC */
{
yymsp
[
0
].
minor
.
yy
116
=
TSDB_ORDER_ASC
;
}
{
yymsp
[
0
].
minor
.
yy
20
=
TSDB_ORDER_ASC
;
}
break
;
case
194
:
/* sortorder ::= DESC */
{
yymsp
[
0
].
minor
.
yy
116
=
TSDB_ORDER_DESC
;}
{
yymsp
[
0
].
minor
.
yy
20
=
TSDB_ORDER_DESC
;}
break
;
case
195
:
/* sortorder ::= */
{
yymsp
[
1
].
minor
.
yy
116
=
TSDB_ORDER_ASC
;
}
{
yymsp
[
1
].
minor
.
yy
20
=
TSDB_ORDER_ASC
;
}
break
;
case
196
:
/* groupby_opt ::= */
{
yymsp
[
1
].
minor
.
yy
42
9
=
0
;}
{
yymsp
[
1
].
minor
.
yy
15
9
=
0
;}
break
;
case
197
:
/* groupby_opt ::= GROUP BY grouplist */
{
yymsp
[
-
2
].
minor
.
yy
429
=
yymsp
[
0
].
minor
.
yy42
9
;}
{
yymsp
[
-
2
].
minor
.
yy
159
=
yymsp
[
0
].
minor
.
yy15
9
;}
break
;
case
198
:
/* grouplist ::= grouplist COMMA item */
{
yylhsminor
.
yy
429
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy429
,
&
yymsp
[
0
].
minor
.
yy21
8
,
-
1
);
yylhsminor
.
yy
159
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy159
,
&
yymsp
[
0
].
minor
.
yy48
8
,
-
1
);
}
yymsp
[
-
2
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
yymsp
[
-
2
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
199
:
/* grouplist ::= item */
{
yylhsminor
.
yy
429
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy21
8
,
-
1
);
yylhsminor
.
yy
159
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy48
8
,
-
1
);
}
yymsp
[
0
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
yymsp
[
0
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
200
:
/* having_opt ::= */
case
210
:
/* where_opt ::= */
yytestcase
(
yyruleno
==
210
);
case
249
:
/* expritem ::= */
yytestcase
(
yyruleno
==
249
);
{
yymsp
[
1
].
minor
.
yy1
70
=
0
;}
{
yymsp
[
1
].
minor
.
yy1
18
=
0
;}
break
;
case
201
:
/* having_opt ::= HAVING expr */
case
211
:
/* where_opt ::= WHERE expr */
yytestcase
(
yyruleno
==
211
);
{
yymsp
[
-
1
].
minor
.
yy1
70
=
yymsp
[
0
].
minor
.
yy170
;}
{
yymsp
[
-
1
].
minor
.
yy1
18
=
yymsp
[
0
].
minor
.
yy118
;}
break
;
case
202
:
/* limit_opt ::= */
case
206
:
/* slimit_opt ::= */
yytestcase
(
yyruleno
==
206
);
{
yymsp
[
1
].
minor
.
yy
18
.
limit
=
-
1
;
yymsp
[
1
].
minor
.
yy18
.
offset
=
0
;}
{
yymsp
[
1
].
minor
.
yy
440
.
limit
=
-
1
;
yymsp
[
1
].
minor
.
yy440
.
offset
=
0
;}
break
;
case
203
:
/* limit_opt ::= LIMIT signed */
case
207
:
/* slimit_opt ::= SLIMIT signed */
yytestcase
(
yyruleno
==
207
);
{
yymsp
[
-
1
].
minor
.
yy
18
.
limit
=
yymsp
[
0
].
minor
.
yy481
;
yymsp
[
-
1
].
minor
.
yy18
.
offset
=
0
;}
{
yymsp
[
-
1
].
minor
.
yy
440
.
limit
=
yymsp
[
0
].
minor
.
yy317
;
yymsp
[
-
1
].
minor
.
yy440
.
offset
=
0
;}
break
;
case
204
:
/* limit_opt ::= LIMIT signed OFFSET signed */
{
yymsp
[
-
3
].
minor
.
yy
18
.
limit
=
yymsp
[
-
2
].
minor
.
yy481
;
yymsp
[
-
3
].
minor
.
yy18
.
offset
=
yymsp
[
0
].
minor
.
yy481
;}
{
yymsp
[
-
3
].
minor
.
yy
440
.
limit
=
yymsp
[
-
2
].
minor
.
yy317
;
yymsp
[
-
3
].
minor
.
yy440
.
offset
=
yymsp
[
0
].
minor
.
yy317
;}
break
;
case
205
:
/* limit_opt ::= LIMIT signed COMMA signed */
{
yymsp
[
-
3
].
minor
.
yy
18
.
limit
=
yymsp
[
0
].
minor
.
yy481
;
yymsp
[
-
3
].
minor
.
yy18
.
offset
=
yymsp
[
-
2
].
minor
.
yy481
;}
{
yymsp
[
-
3
].
minor
.
yy
440
.
limit
=
yymsp
[
0
].
minor
.
yy317
;
yymsp
[
-
3
].
minor
.
yy440
.
offset
=
yymsp
[
-
2
].
minor
.
yy317
;}
break
;
case
208
:
/* slimit_opt ::= SLIMIT signed SOFFSET signed */
{
yymsp
[
-
3
].
minor
.
yy
18
.
limit
=
yymsp
[
-
2
].
minor
.
yy481
;
yymsp
[
-
3
].
minor
.
yy18
.
offset
=
yymsp
[
0
].
minor
.
yy481
;}
{
yymsp
[
-
3
].
minor
.
yy
440
.
limit
=
yymsp
[
-
2
].
minor
.
yy317
;
yymsp
[
-
3
].
minor
.
yy440
.
offset
=
yymsp
[
0
].
minor
.
yy317
;}
break
;
case
209
:
/* slimit_opt ::= SLIMIT signed COMMA signed */
{
yymsp
[
-
3
].
minor
.
yy
18
.
limit
=
yymsp
[
0
].
minor
.
yy481
;
yymsp
[
-
3
].
minor
.
yy18
.
offset
=
yymsp
[
-
2
].
minor
.
yy481
;}
{
yymsp
[
-
3
].
minor
.
yy
440
.
limit
=
yymsp
[
0
].
minor
.
yy317
;
yymsp
[
-
3
].
minor
.
yy440
.
offset
=
yymsp
[
-
2
].
minor
.
yy317
;}
break
;
case
212
:
/* expr ::= LP expr RP */
{
yylhsminor
.
yy1
70
=
yymsp
[
-
1
].
minor
.
yy170
;
yylhsminor
.
yy170
->
token
.
z
=
yymsp
[
-
2
].
minor
.
yy0
.
z
;
yylhsminor
.
yy170
->
token
.
n
=
(
yymsp
[
0
].
minor
.
yy0
.
z
-
yymsp
[
-
2
].
minor
.
yy0
.
z
+
1
);}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
yymsp
[
-
1
].
minor
.
yy118
;
yylhsminor
.
yy118
->
token
.
z
=
yymsp
[
-
2
].
minor
.
yy0
.
z
;
yylhsminor
.
yy118
->
token
.
n
=
(
yymsp
[
0
].
minor
.
yy0
.
z
-
yymsp
[
-
2
].
minor
.
yy0
.
z
+
1
);}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
213
:
/* expr ::= ID */
{
yylhsminor
.
yy1
70
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
0
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
0
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
214
:
/* expr ::= ID DOT ID */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy1
70
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy1
18
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
215
:
/* expr ::= ID DOT STAR */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy1
70
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ALL
);}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy1
18
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ALL
);}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
216
:
/* expr ::= INTEGER */
{
yylhsminor
.
yy1
70
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
0
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
0
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
217
:
/* expr ::= MINUS INTEGER */
case
218
:
/* expr ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
218
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy1
70
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
-
1
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy1
18
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
-
1
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
219
:
/* expr ::= FLOAT */
{
yylhsminor
.
yy1
70
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
0
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
0
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
220
:
/* expr ::= MINUS FLOAT */
case
221
:
/* expr ::= PLUS FLOAT */
yytestcase
(
yyruleno
==
221
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_FLOAT
;
yylhsminor
.
yy1
70
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
-
1
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_FLOAT
;
yylhsminor
.
yy1
18
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
-
1
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
222
:
/* expr ::= STRING */
{
yylhsminor
.
yy1
70
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
yymsp
[
0
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
yymsp
[
0
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
223
:
/* expr ::= NOW */
{
yylhsminor
.
yy1
70
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
yymsp
[
0
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
yymsp
[
0
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
224
:
/* expr ::= VARIABLE */
{
yylhsminor
.
yy1
70
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_VARIABLE
);}
yymsp
[
0
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_VARIABLE
);}
yymsp
[
0
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
225
:
/* expr ::= BOOL */
{
yylhsminor
.
yy1
70
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_BOOL
);}
yymsp
[
0
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_BOOL
);}
yymsp
[
0
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
226
:
/* expr ::= ID LP exprlist RP */
{
yylhsminor
.
yy1
70
=
tSqlExprCreateFunction
(
yymsp
[
-
1
].
minor
.
yy42
9
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
yymsp
[
-
3
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreateFunction
(
yymsp
[
-
1
].
minor
.
yy15
9
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
yymsp
[
-
3
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
227
:
/* expr ::= ID LP STAR RP */
{
yylhsminor
.
yy1
70
=
tSqlExprCreateFunction
(
NULL
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
yymsp
[
-
3
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreateFunction
(
NULL
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
yymsp
[
-
3
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
228
:
/* expr ::= expr IS NULL */
{
yylhsminor
.
yy1
70
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy170
,
NULL
,
TK_ISNULL
);}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy118
,
NULL
,
TK_ISNULL
);}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
229
:
/* expr ::= expr IS NOT NULL */
{
yylhsminor
.
yy1
70
=
tSqlExprCreate
(
yymsp
[
-
3
].
minor
.
yy170
,
NULL
,
TK_NOTNULL
);}
yymsp
[
-
3
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreate
(
yymsp
[
-
3
].
minor
.
yy118
,
NULL
,
TK_NOTNULL
);}
yymsp
[
-
3
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
230
:
/* expr ::= expr LT expr */
{
yylhsminor
.
yy1
70
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy170
,
yymsp
[
0
].
minor
.
yy170
,
TK_LT
);}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy118
,
yymsp
[
0
].
minor
.
yy118
,
TK_LT
);}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
231
:
/* expr ::= expr GT expr */
{
yylhsminor
.
yy1
70
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy170
,
yymsp
[
0
].
minor
.
yy170
,
TK_GT
);}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy118
,
yymsp
[
0
].
minor
.
yy118
,
TK_GT
);}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
232
:
/* expr ::= expr LE expr */
{
yylhsminor
.
yy1
70
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy170
,
yymsp
[
0
].
minor
.
yy170
,
TK_LE
);}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy118
,
yymsp
[
0
].
minor
.
yy118
,
TK_LE
);}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
233
:
/* expr ::= expr GE expr */
{
yylhsminor
.
yy1
70
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy170
,
yymsp
[
0
].
minor
.
yy170
,
TK_GE
);}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy118
,
yymsp
[
0
].
minor
.
yy118
,
TK_GE
);}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
234
:
/* expr ::= expr NE expr */
{
yylhsminor
.
yy1
70
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy170
,
yymsp
[
0
].
minor
.
yy170
,
TK_NE
);}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy118
,
yymsp
[
0
].
minor
.
yy118
,
TK_NE
);}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
235
:
/* expr ::= expr EQ expr */
{
yylhsminor
.
yy1
70
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy170
,
yymsp
[
0
].
minor
.
yy170
,
TK_EQ
);}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy118
,
yymsp
[
0
].
minor
.
yy118
,
TK_EQ
);}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
236
:
/* expr ::= expr BETWEEN expr AND expr */
{
tSqlExpr
*
X2
=
tSqlExprClone
(
yymsp
[
-
4
].
minor
.
yy1
70
);
yylhsminor
.
yy170
=
tSqlExprCreate
(
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy170
,
yymsp
[
-
2
].
minor
.
yy170
,
TK_GE
),
tSqlExprCreate
(
X2
,
yymsp
[
0
].
minor
.
yy170
,
TK_LE
),
TK_AND
);}
yymsp
[
-
4
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
tSqlExpr
*
X2
=
tSqlExprClone
(
yymsp
[
-
4
].
minor
.
yy1
18
);
yylhsminor
.
yy118
=
tSqlExprCreate
(
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy118
,
yymsp
[
-
2
].
minor
.
yy118
,
TK_GE
),
tSqlExprCreate
(
X2
,
yymsp
[
0
].
minor
.
yy118
,
TK_LE
),
TK_AND
);}
yymsp
[
-
4
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
237
:
/* expr ::= expr AND expr */
{
yylhsminor
.
yy1
70
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy170
,
yymsp
[
0
].
minor
.
yy170
,
TK_AND
);}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy118
,
yymsp
[
0
].
minor
.
yy118
,
TK_AND
);}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
238
:
/* expr ::= expr OR expr */
{
yylhsminor
.
yy1
70
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy170
,
yymsp
[
0
].
minor
.
yy170
,
TK_OR
);
}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy118
,
yymsp
[
0
].
minor
.
yy118
,
TK_OR
);
}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
239
:
/* expr ::= expr PLUS expr */
{
yylhsminor
.
yy1
70
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy170
,
yymsp
[
0
].
minor
.
yy170
,
TK_PLUS
);
}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy118
,
yymsp
[
0
].
minor
.
yy118
,
TK_PLUS
);
}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
240
:
/* expr ::= expr MINUS expr */
{
yylhsminor
.
yy1
70
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy170
,
yymsp
[
0
].
minor
.
yy170
,
TK_MINUS
);
}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy118
,
yymsp
[
0
].
minor
.
yy118
,
TK_MINUS
);
}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
241
:
/* expr ::= expr STAR expr */
{
yylhsminor
.
yy1
70
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy170
,
yymsp
[
0
].
minor
.
yy170
,
TK_STAR
);
}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy118
,
yymsp
[
0
].
minor
.
yy118
,
TK_STAR
);
}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
242
:
/* expr ::= expr SLASH expr */
{
yylhsminor
.
yy1
70
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy170
,
yymsp
[
0
].
minor
.
yy170
,
TK_DIVIDE
);}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy118
,
yymsp
[
0
].
minor
.
yy118
,
TK_DIVIDE
);}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
243
:
/* expr ::= expr REM expr */
{
yylhsminor
.
yy1
70
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy170
,
yymsp
[
0
].
minor
.
yy170
,
TK_REM
);
}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy118
,
yymsp
[
0
].
minor
.
yy118
,
TK_REM
);
}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
244
:
/* expr ::= expr LIKE expr */
{
yylhsminor
.
yy1
70
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy170
,
yymsp
[
0
].
minor
.
yy170
,
TK_LIKE
);
}
yymsp
[
-
2
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy118
,
yymsp
[
0
].
minor
.
yy118
,
TK_LIKE
);
}
yymsp
[
-
2
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
245
:
/* expr ::= expr IN LP exprlist RP */
{
yylhsminor
.
yy1
70
=
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy170
,
(
tSqlExpr
*
)
yymsp
[
-
1
].
minor
.
yy42
9
,
TK_IN
);
}
yymsp
[
-
4
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy118
,
(
tSqlExpr
*
)
yymsp
[
-
1
].
minor
.
yy15
9
,
TK_IN
);
}
yymsp
[
-
4
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
246
:
/* exprlist ::= exprlist COMMA expritem */
{
yylhsminor
.
yy
429
=
tSqlExprListAppend
(
yymsp
[
-
2
].
minor
.
yy429
,
yymsp
[
0
].
minor
.
yy170
,
0
,
0
);}
yymsp
[
-
2
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
{
yylhsminor
.
yy
159
=
tSqlExprListAppend
(
yymsp
[
-
2
].
minor
.
yy159
,
yymsp
[
0
].
minor
.
yy118
,
0
,
0
);}
yymsp
[
-
2
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
247
:
/* exprlist ::= expritem */
{
yylhsminor
.
yy
429
=
tSqlExprListAppend
(
0
,
yymsp
[
0
].
minor
.
yy170
,
0
,
0
);}
yymsp
[
0
].
minor
.
yy
429
=
yylhsminor
.
yy42
9
;
{
yylhsminor
.
yy
159
=
tSqlExprListAppend
(
0
,
yymsp
[
0
].
minor
.
yy118
,
0
,
0
);}
yymsp
[
0
].
minor
.
yy
159
=
yylhsminor
.
yy15
9
;
break
;
case
248
:
/* expritem ::= expr */
{
yylhsminor
.
yy1
70
=
yymsp
[
0
].
minor
.
yy170
;}
yymsp
[
0
].
minor
.
yy1
70
=
yylhsminor
.
yy170
;
{
yylhsminor
.
yy1
18
=
yymsp
[
0
].
minor
.
yy118
;}
yymsp
[
0
].
minor
.
yy1
18
=
yylhsminor
.
yy118
;
break
;
case
250
:
/* cmd ::= RESET QUERY CACHE */
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_RESET_CACHE
,
0
);}
break
;
case
251
:
/* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
case
251
:
/* cmd ::= SYNCDB ids REPLICA */
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_SYNC_DB_REPLICA
,
1
,
&
yymsp
[
-
1
].
minor
.
yy0
);}
break
;
case
252
:
/* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
42
9
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
15
9
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
25
2
:
/* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
case
25
3
:
/* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
...
...
@@ -2980,14 +2987,14 @@ static void yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
25
3
:
/* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
case
25
4
:
/* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
42
9
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
15
9
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
25
4
:
/* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
case
25
5
:
/* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
...
...
@@ -2998,7 +3005,7 @@ static void yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
25
5
:
/* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
case
25
6
:
/* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
...
...
@@ -3012,26 +3019,26 @@ static void yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
25
6
:
/* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
case
25
7
:
/* 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
);
SArray
*
A
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
-
1
);
A
=
tVariantListAppend
(
A
,
&
yymsp
[
0
].
minor
.
yy
21
8
,
-
1
);
A
=
tVariantListAppend
(
A
,
&
yymsp
[
0
].
minor
.
yy
48
8
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
6
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_UPDATE_TAG_VAL
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
25
7
:
/* cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
case
25
8
:
/* cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
42
9
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
15
9
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
25
8
:
/* cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
case
25
9
:
/* cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
...
...
@@ -3042,14 +3049,14 @@ static void yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
2
59
:
/* cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
case
2
60
:
/* cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
42
9
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
15
9
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
26
0
:
/* cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
case
26
1
:
/* cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
...
...
@@ -3060,7 +3067,7 @@ static void yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
26
1
:
/* cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
case
26
2
:
/* cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
{
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
...
...
@@ -3074,13 +3081,13 @@ static void yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
26
2
:
/* cmd ::= KILL CONNECTION INTEGER */
case
26
3
:
/* cmd ::= KILL CONNECTION INTEGER */
{
setKillSql
(
pInfo
,
TSDB_SQL_KILL_CONNECTION
,
&
yymsp
[
0
].
minor
.
yy0
);}
break
;
case
26
3
:
/* cmd ::= KILL STREAM INTEGER COLON INTEGER */
case
26
4
:
/* 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
26
4
:
/* cmd ::= KILL QUERY INTEGER COLON INTEGER */
case
26
5
:
/* 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:
...
...
tests/examples/JDBC/taosdemo/src/main/resources/insert.json
浏览文件 @
e3f4c903
...
...
@@ -38,7 +38,7 @@
"insert_rows"
:
100
,
"multi_thread_write_one_tbl"
:
"no"
,
"number_of_tbl_in_one_sql"
:
0
,
"
rows_per_tbl
"
:
3
,
"
interlace_rows
"
:
3
,
"max_sql_len"
:
1024
,
"disorder_ratio"
:
0
,
"disorder_range"
:
1000
,
...
...
tests/pytest/cluster/clusterEnvSetup/buildClusterEnv.sh
浏览文件 @
e3f4c903
...
...
@@ -68,20 +68,14 @@ function prepareBuild {
rm
-rf
$CURR_DIR
/../../../../release/
*
fi
if
[
!
-e
$DOCKER_DIR
/TDengine-server-
$VERSION
-Linux-x64
.tar.gz
]
||
[
!
-e
$DOCKER_DIR
/TDengine-arbitrator-
$VERSION
-Linux-x64
.tar.gz
]
;
then
cd
$CURR_DIR
/../../../../packaging
echo
$CURR_DIR
echo
$IN_TDINTERNAL
echo
"generating TDeninger packages"
if
[[
"
$CURR_DIR
"
==
*
"
$IN_TDINTERNAL
"
*
]]
;
then
pwd
./release.sh
-v
cluster
-n
$VERSION
>>
/dev/null 2>&1
else
pwd
./release.sh
-v
edge
-n
$VERSION
>>
/dev/null 2>&1
fi
cd
$CURR_DIR
/../../../../packaging
if
[[
"
$CURR_DIR
"
==
*
"
$IN_TDINTERNAL
"
*
]]
;
then
if
[[
"
$CURR_DIR
"
==
*
"
$IN_TDINTERNAL
"
*
]]
;
then
if
[
!
-e
$DOCKER_DIR
/TDengine-enterprise-server-
$VERSION
-Linux-x64
.tar.gz
]
||
[
!
-e
$DOCKER_DIR
/TDengine-enterprise-arbitrator-
$VERSION
-Linux-x64
.tar.gz
]
;
then
echo
"generating TDeninge enterprise packages"
./release.sh
-v
cluster
-n
$VERSION
>>
/dev/null 2>&1
if
[
!
-e
$CURR_DIR
/../../../../release/TDengine-enterprise-server-
$VERSION
-Linux-x64
.tar.gz
]
;
then
echo
"no TDengine install package found"
exit
1
...
...
@@ -91,7 +85,17 @@ function prepareBuild {
echo
"no arbitrator install package found"
exit
1
fi
else
cd
$CURR_DIR
/../../../../release
mv
TDengine-enterprise-server-
$VERSION
-Linux-x64
.tar.gz
$DOCKER_DIR
mv
TDengine-enterprise-arbitrator-
$VERSION
-Linux-x64
.tar.gz
$DOCKER_DIR
fi
else
if
[
!
-e
$DOCKER_DIR
/TDengine-server-
$VERSION
-Linux-x64
.tar.gz
]
||
[
!
-e
$DOCKER_DIR
/TDengine-arbitrator-
$VERSION
-Linux-x64
.tar.gz
]
;
then
echo
"generating TDeninge community packages"
./release.sh
-v
edge
-n
$VERSION
>>
/dev/null 2>&1
if
[
!
-e
$CURR_DIR
/../../../../release/TDengine-server-
$VERSION
-Linux-x64
.tar.gz
]
;
then
echo
"no TDengine install package found"
exit
1
...
...
@@ -101,16 +105,11 @@ function prepareBuild {
echo
"no arbitrator install package found"
exit
1
fi
fi
cd
$CURR_DIR
/../../../../release
if
[[
"
$CURR_DIR
"
==
*
"
$IN_TDINTERNAL
"
*
]]
;
then
mv
TDengine-enterprise-server-
$VERSION
-Linux-x64
.tar.gz
$DOCKER_DIR
mv
TDengine-enterprise-arbitrator-
$VERSION
-Linux-x64
.tar.gz
$DOCKER_DIR
else
cd
$CURR_DIR
/../../../../release
mv
TDengine-server-
$VERSION
-Linux-x64
.tar.gz
$DOCKER_DIR
mv
TDengine-arbitrator-
$VERSION
-Linux-x64
.tar.gz
$DOCKER_DIR
fi
fi
fi
rm
-rf
$DOCKER_DIR
/
*
.yml
...
...
tests/pytest/cluster/clusterEnvSetup/insert.json
浏览文件 @
e3f4c903
...
...
@@ -39,7 +39,7 @@
"insert_rows"
:
100000
,
"multi_thread_write_one_tbl"
:
"no"
,
"number_of_tbl_in_one_sql"
:
1
,
"
rows_per_tbl
"
:
100
,
"
interlace_rows
"
:
100
,
"max_sql_len"
:
1024000
,
"disorder_ratio"
:
0
,
"disorder_range"
:
1000
,
...
...
tests/pytest/fulltest.sh
浏览文件 @
e3f4c903
...
...
@@ -198,6 +198,7 @@ python3 ./test.py -f query/queryWithTaosdKilled.py
python3 ./test.py
-f
query/floatCompare.py
python3 ./test.py
-f
query/query1970YearsAf.py
python3 ./test.py
-f
query/bug3351.py
python3 ./test.py
-f
query/bug3375.py
...
...
@@ -234,16 +235,6 @@ python3 client/twoClients.py
python3 test.py
-f
query/queryInterval.py
python3 test.py
-f
query/queryFillTest.py
# tools
python3 test.py
-f
tools/taosdemoTest.py
python3 test.py
-f
tools/taosdemoTestWithoutMetric.py
python3 test.py
-f
tools/taosdemoTestWithJson.py
python3 test.py
-f
tools/taosdemoTestLimitOffset.py
python3 test.py
-f
tools/taosdumpTest.py
python3 test.py
-f
tools/taosdemoTest2.py
python3 test.py
-f
tools/taosdemoTestSampleData.py
python3 test.py
-f
tools/taosdemoTestInterlace.py
# subscribe
python3 test.py
-f
subscribe/singlemeter.py
#python3 test.py -f subscribe/stability.py
...
...
@@ -253,6 +244,18 @@ python3 test.py -f subscribe/supertable.py
#======================p3-end===============
#======================p4-start===============
# tools
python3 test.py
-f
tools/taosdumpTest.py
python3 test.py
-f
tools/taosdemoTest.py
python3 test.py
-f
tools/taosdemoTestWithoutMetric.py
python3 test.py
-f
tools/taosdemoTestWithJson.py
python3 test.py
-f
tools/taosdemoTestLimitOffset.py
python3 test.py
-f
tools/taosdemoTest2.py
python3 test.py
-f
tools/taosdemoTestSampleData.py
python3 test.py
-f
tools/taosdemoTestInterlace.py
python3 test.py
-f
tools/taosdemoTestQuery.py
python3 ./test.py
-f
update/merge_commit_data-0.py
# wal
python3 ./test.py
-f
wal/addOldWalTest.py
...
...
tests/pytest/query/bug3375.py
0 → 100644
浏览文件 @
e3f4c903
###################################################################
# Copyright (c) 2016 by TAOS Technologies, Inc.
# All rights reserved.
#
# This file is proprietary and confidential to TAOS Technologies.
# No part of this file may be reproduced, stored, transmitted,
# disclosed or used in any form or by any means other than as
# expressly provided by the written permission from Jianhui Tao
#
###################################################################
# -*- coding: utf-8 -*-
import
sys
from
util.log
import
*
from
util.cases
import
*
from
util.sql
import
*
from
util.dnodes
import
*
class
TDTestCase
:
def
init
(
self
,
conn
,
logSql
):
tdLog
.
debug
(
"start to execute %s"
%
__file__
)
tdSql
.
init
(
conn
.
cursor
(),
logSql
)
def
run
(
self
):
tdSql
.
prepare
()
tdSql
.
execute
(
"drop database if exists db"
)
tdSql
.
execute
(
"create database if not exists db keep 36500"
)
tdSql
.
execute
(
"use db"
)
tdLog
.
printNoPrefix
(
"==========step1:create table && insert data"
)
tdSql
.
execute
(
"create table stb1 (ts timestamp, c11 int) TAGS(t11 int, t12 int )"
)
tdSql
.
execute
(
"create table stb2 (ts timestamp, c21 int) TAGS(t21 int, t22 int )"
)
tdSql
.
execute
(
"create table t10 using stb1 tags(1, 10)"
)
tdSql
.
execute
(
"create table t20 using stb2 tags(1, 12)"
)
tdSql
.
execute
(
"insert into t10 values (1600000000000, 1)"
)
tdSql
.
execute
(
"insert into t10 values (1610000000000, 2)"
)
tdSql
.
execute
(
"insert into t20 values (1600000000000, 3)"
)
tdSql
.
execute
(
"insert into t20 values (1610000000000, 4)"
)
tdLog
.
printNoPrefix
(
"==========step2:query crash test"
)
tdSql
.
query
(
"select stb1.c11, stb1.t11, stb1.t12 from stb2,stb1 where stb2.t21 = stb1.t11 and stb1.ts = stb2.ts"
)
tdSql
.
checkRows
(
2
)
tdSql
.
query
(
"select stb2.c21, stb2.t21, stb2.t21 from stb1, stb2 where stb2.t21 = stb1.t11 and stb1.ts = stb2.ts"
)
tdSql
.
checkRows
(
2
)
tdSql
.
query
(
"select top(stb2.c21,2) from stb1, stb2 where stb2.t21 = stb1.t11 and stb1.ts = stb2.ts"
)
tdSql
.
checkRows
(
2
)
tdSql
.
query
(
"select last(stb2.c21) from stb1, stb2 where stb2.t21 = stb1.t11 and stb1.ts = stb2.ts"
)
tdSql
.
checkRows
(
1
)
def
stop
(
self
):
tdSql
.
close
()
tdLog
.
success
(
"%s successfully executed"
%
__file__
)
tdCases
.
addWindows
(
__file__
,
TDTestCase
())
tdCases
.
addLinux
(
__file__
,
TDTestCase
())
\ No newline at end of file
tests/pytest/query/query1970YearsAf.py
浏览文件 @
e3f4c903
...
...
@@ -18,6 +18,7 @@ import json
import
subprocess
import
datetime
from
util.log
import
*
from
util.sql
import
*
from
util.cases
import
*
...
...
@@ -39,6 +40,7 @@ class TDTestCase:
tdLog
.
debug
(
f
"binPath
{
binPath
}
"
)
binPath
=
os
.
path
.
realpath
(
binPath
)
tdLog
.
debug
(
f
"binPath real path
{
binPath
}
"
)
if
path
==
""
:
self
.
path
=
os
.
path
.
abspath
(
binPath
+
"../../"
)
else
:
...
...
@@ -187,12 +189,12 @@ class TDTestCase:
"select * from t9 where t9.ts > '1969-12-31 22:00:00.000' and t9.ts <'1970-01-01 02:00:00.000' "
)
tdSql
.
checkRows
(
719
)
tdSql
.
query
(
"select * from t0,t1 where t0.ts=t1.ts and t1.ts >= '1970-01-01 00:00:00.000' "
)
tdSql
.
checkRows
(
680
)
tdSql
.
query
(
"select diff(col1) from t0 where t0.ts >= '1970-01-01 00:00:00.000' "
)
...
...
@@ -251,5 +253,6 @@ class TDTestCase:
tdSql
.
close
()
tdLog
.
success
(
f
"
{
__file__
}
successfully executed"
)
tdCases
.
addLinux
(
__file__
,
TDTestCase
())
tdCases
.
addWindows
(
__file__
,
TDTestCase
())
tdCases
.
addWindows
(
__file__
,
TDTestCase
())
\ No newline at end of file
tests/pytest/tools/insert-interlace.json
浏览文件 @
e3f4c903
...
...
@@ -10,7 +10,7 @@
"result_file"
:
"./insert_res.txt"
,
"confirm_parameter_prompt"
:
"no"
,
"insert_interval"
:
5000
,
"
rows_per_tbl
"
:
50
,
"
interlace_rows
"
:
50
,
"num_of_records_per_req"
:
100
,
"max_sql_len"
:
1024000
,
"databases"
:
[{
...
...
@@ -42,7 +42,7 @@
"insert_mode"
:
"taosc"
,
"insert_rows"
:
250
,
"multi_thread_write_one_tbl"
:
"no"
,
"
rows_per_tbl
"
:
80
,
"
interlace_rows
"
:
80
,
"max_sql_len"
:
1024000
,
"disorder_ratio"
:
0
,
"disorder_range"
:
1000
,
...
...
tests/pytest/tools/query.json
0 → 100644
浏览文件 @
e3f4c903
{
"filetype"
:
"query"
,
"cfgdir"
:
"/etc/taos"
,
"host"
:
"127.0.0.1"
,
"port"
:
6030
,
"user"
:
"root"
,
"password"
:
"taosdata"
,
"confirm_parameter_prompt"
:
"no"
,
"databases"
:
"test"
,
"query_times"
:
1
,
"super_table_query"
:
{
"stblname"
:
"meters"
,
"query_interval"
:
10
,
"threads"
:
8
,
"sqls"
:
[
{
"sql"
:
"select last_row(ts) from xxxx"
,
"result"
:
""
}
]
}
}
tests/pytest/tools/taosdemoTestInterlace.py
浏览文件 @
e3f4c903
##################################################################
#
##################################################################
# Copyright (c) 2016 by TAOS Technologies, Inc.
# All rights reserved.
#
...
...
@@ -25,9 +25,6 @@ class TDTestCase:
tdLog
.
debug
(
"start to execute %s"
%
__file__
)
tdSql
.
init
(
conn
.
cursor
(),
logSql
)
self
.
numberOfTables
=
10000
self
.
numberOfRecords
=
100
def
getBuildPath
(
self
):
selfPath
=
os
.
path
.
dirname
(
os
.
path
.
realpath
(
__file__
))
...
...
tests/pytest/tools/taosdemoTestQuery.py
0 → 100644
浏览文件 @
e3f4c903
###################################################################
# Copyright (c) 2016 by TAOS Technologies, Inc.
# All rights reserved.
#
# This file is proprietary and confidential to TAOS Technologies.
# No part of this file may be reproduced, stored, transmitted,
# disclosed or used in any form or by any means other than as
# expressly provided by the written permission from Jianhui Tao
#
###################################################################
# -*- coding: utf-8 -*-
import
sys
import
os
import
time
from
util.log
import
*
from
util.cases
import
*
from
util.sql
import
*
from
util.dnodes
import
*
import
subprocess
class
TDTestCase
:
def
init
(
self
,
conn
,
logSql
):
tdLog
.
debug
(
"start to execute %s"
%
__file__
)
tdSql
.
init
(
conn
.
cursor
(),
logSql
)
self
.
numberOfTables
=
1000
self
.
numberOfRecords
=
100
def
getBuildPath
(
self
):
selfPath
=
os
.
path
.
dirname
(
os
.
path
.
realpath
(
__file__
))
if
(
"community"
in
selfPath
):
projPath
=
selfPath
[:
selfPath
.
find
(
"community"
)]
else
:
projPath
=
selfPath
[:
selfPath
.
find
(
"tests"
)]
for
root
,
dirs
,
files
in
os
.
walk
(
projPath
):
if
(
"taosd"
in
files
):
rootRealPath
=
os
.
path
.
dirname
(
os
.
path
.
realpath
(
root
))
if
(
"packaging"
not
in
rootRealPath
):
buildPath
=
root
[:
len
(
root
)
-
len
(
"/build/bin"
)]
break
return
buildPath
def
run
(
self
):
tdSql
.
prepare
()
buildPath
=
self
.
getBuildPath
()
if
(
buildPath
==
""
):
tdLog
.
exit
(
"taosd not found!"
)
else
:
tdLog
.
info
(
"taosd found in %s"
%
buildPath
)
binPath
=
buildPath
+
"/build/bin/"
os
.
system
(
"%staosdemo -y -t %d -n %d"
%
(
binPath
,
self
.
numberOfTables
,
self
.
numberOfRecords
))
print
(
"Sleep 2 seconds.."
)
time
.
sleep
(
2
)
os
.
system
(
'%staosdemo -f tools/query.json '
%
binPath
)
# taosdemoCmd = '%staosdemo -f tools/query.json ' % binPath
# threads = subprocess.check_output(
# taosdemoCmd, shell=True).decode("utf-8")
# print("threads: %d" % int(threads))
# if (int(threads) != 8):
# caller = inspect.getframeinfo(inspect.stack()[0][0])
# tdLog.exit(
# "%s(%d) failed: expected threads 8, actual %d" %
# (caller.filename, caller.lineno, int(threads)))
#
def
stop
(
self
):
tdSql
.
close
()
tdLog
.
success
(
"%s successfully executed"
%
__file__
)
tdCases
.
addWindows
(
__file__
,
TDTestCase
())
tdCases
.
addLinux
(
__file__
,
TDTestCase
())
tests/test-all.sh
浏览文件 @
e3f4c903
...
...
@@ -100,7 +100,10 @@ function runSimCaseOneByOnefq {
cp
-r
../../sim ~/sim_
`
date
"+%Y_%m_%d_%H:%M:%S"
`
rm
-rf
../../sim/case.log
fi
exit
8
dohavecore
$2
if
[[
$2
==
1
]]
;
then
exit
8
fi
fi
end_time
=
`
date
+%s
`
echo
execution
time
of
$case
was
`
expr
$end_time
-
$start_time
`
s. |
tee
-a
out.log
...
...
@@ -169,10 +172,13 @@ function runPyCaseOneByOnefq() {
out_log
=
`
tail
-1
pytest-out.log
`
if
[[
$out_log
=
~
'failed'
]]
;
then
cp
-r
../../sim ~/sim_
`
date
"+%Y_%m_%d_%H:%M:%S"
`
echo
'=====================log====================='
echo
'=====================log=====================
'
cat
../../sim/case.log
rm
-rf
../../sim/case.log
exit
8
dohavecore
$2
if
[[
$2
==
1
]]
;
then
exit
8
fi
fi
echo
execution
time
of
$case
was
`
expr
$end_time
-
$start_time
`
s.
|
tee
-a
pytest-out.log
else
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录