Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
eeba8d02
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1193
Star
22018
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看板
提交
eeba8d02
编写于
3月 22, 2022
作者:
A
Alex Duan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TS-238]<feature>(tsdb): init delete function
上级
b8ae42ff
变更
24
显示空白变更内容
内联
并排
Showing
24 changed file
with
1654 addition
and
1574 deletion
+1654
-1574
src/client/src/tscParseInsert.c
src/client/src/tscParseInsert.c
+2
-2
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+69
-35
src/client/src/tscServer.c
src/client/src/tscServer.c
+72
-0
src/common/inc/tcmdtype.h
src/common/inc/tcmdtype.h
+1
-0
src/common/inc/tname.h
src/common/inc/tname.h
+3
-0
src/cq/src/cqMain.c
src/cq/src/cqMain.c
+1
-1
src/dnode/src/dnodeVWrite.c
src/dnode/src/dnodeVWrite.c
+39
-8
src/inc/taosmsg.h
src/inc/taosmsg.h
+14
-1
src/inc/tsdb.h
src/inc/tsdb.h
+1
-1
src/inc/ttokendef.h
src/inc/ttokendef.h
+43
-42
src/inc/vnode.h
src/inc/vnode.h
+12
-0
src/query/inc/qSqlparser.h
src/query/inc/qSqlparser.h
+10
-0
src/query/inc/sql.y
src/query/inc/sql.y
+10
-1
src/query/src/qSqlParser.c
src/query/src/qSqlParser.c
+28
-0
src/query/src/sql.c
src/query/src/sql.c
+1164
-1469
src/tsdb/src/tsdbMemTable.c
src/tsdb/src/tsdbMemTable.c
+57
-8
src/tsdb/src/tsdbTruncate.c
src/tsdb/src/tsdbTruncate.c
+3
-3
src/tsdb/tests/tsdbTests.cpp
src/tsdb/tests/tsdbTests.cpp
+1
-1
src/util/inc/tqueue.h
src/util/inc/tqueue.h
+2
-0
src/util/src/tqueue.c
src/util/src/tqueue.c
+41
-0
src/util/src/ttokenizer.c
src/util/src/ttokenizer.c
+2
-1
src/vnode/inc/vnodeInt.h
src/vnode/inc/vnodeInt.h
+1
-0
src/vnode/src/vnodeMain.c
src/vnode/src/vnodeMain.c
+77
-0
src/vnode/src/vnodeWrite.c
src/vnode/src/vnodeWrite.c
+1
-1
未找到文件。
src/client/src/tscParseInsert.c
浏览文件 @
eeba8d02
...
...
@@ -1153,7 +1153,7 @@ static int32_t tscCheckIfCreateTable(char **sqlstr, SSqlObj *pSql, char** boundC
code
=
validateTableName
(
tableToken
.
z
,
tableToken
.
n
,
&
sTblToken
,
&
dbIncluded2
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
tscInvalidOperationMsg
(
pInsertParam
->
msg
,
"invalid table name"
,
*
sqlstr
);
return
tscInvalidOperationMsg
(
pInsertParam
->
msg
,
STR_INVALID_TABLE_NAME
,
*
sqlstr
);
}
int32_t
ret
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
&
sTblToken
,
pSql
,
dbIncluded2
);
...
...
@@ -1441,7 +1441,7 @@ int tsParseInsertSql(SSqlObj *pSql) {
bool
dbIncluded
=
false
;
// Check if the table name available or not
if
(
validateTableName
(
sToken
.
z
,
sToken
.
n
,
&
sTblToken
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
code
=
tscInvalidOperationMsg
(
pInsertParam
->
msg
,
"table name invalid"
,
sToken
.
z
);
code
=
tscInvalidOperationMsg
(
pInsertParam
->
msg
,
STR_INVALID_TABLE_NAME
,
sToken
.
z
);
goto
_clean
;
}
...
...
src/client/src/tscSQLParser.c
浏览文件 @
eeba8d02
...
...
@@ -100,7 +100,7 @@ static int32_t validateStateWindowNode(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, SS
static
int32_t
addProjectionExprAndResultField
(
SSqlCmd
*
pCmd
,
SQueryInfo
*
pQueryInfo
,
tSqlExprItem
*
pItem
,
bool
outerQuery
,
bool
timeWindowQuery
);
static
int32_t
validateWhereNode
(
SQueryInfo
*
pQueryInfo
,
tSqlExpr
**
pExpr
,
SSqlObj
*
pSql
,
bool
joinQuery
);
static
int32_t
validateWhereNode
(
SQueryInfo
*
pQueryInfo
,
tSqlExpr
**
pExpr
,
SSqlObj
*
pSql
,
bool
joinQuery
,
bool
delData
);
static
int32_t
validateFillNode
(
SSqlCmd
*
pCmd
,
SQueryInfo
*
pQueryInfo
,
SSqlNode
*
pSqlNode
);
static
int32_t
validateRangeNode
(
SSqlObj
*
pSql
,
SQueryInfo
*
pQueryInfo
,
SSqlNode
*
pSqlNode
);
static
int32_t
validateOrderbyNode
(
SSqlCmd
*
pCmd
,
SQueryInfo
*
pQueryInfo
,
SSqlNode
*
pSqlNode
,
SSchema
*
pSchema
);
...
...
@@ -759,8 +759,6 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
}
case
TSDB_SQL_DESCRIBE_TABLE
:
{
const
char
*
msg1
=
"invalid table name"
;
SStrToken
*
pToken
=
taosArrayGet
(
pInfo
->
pMiscInfo
->
a
,
0
);
bool
dbIncluded
=
false
;
char
buf
[
TSDB_TABLE_FNAME_LEN
];
...
...
@@ -768,7 +766,7 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
sTblToken
.
z
=
buf
;
if
(
validateTableName
(
pToken
->
z
,
pToken
->
n
,
&
sTblToken
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
STR_INVALID_TABLE_NAME
);
}
// additional msg has been attached already
...
...
@@ -781,8 +779,6 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
}
case
TSDB_SQL_SHOW_CREATE_STABLE
:
case
TSDB_SQL_SHOW_CREATE_TABLE
:
{
const
char
*
msg1
=
"invalid table name"
;
SStrToken
*
pToken
=
taosArrayGet
(
pInfo
->
pMiscInfo
->
a
,
0
);
bool
dbIncluded
=
false
;
...
...
@@ -791,7 +787,7 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
sTblToken
.
z
=
buf
;
if
(
validateTableName
(
pToken
->
z
,
pToken
->
n
,
&
sTblToken
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
STR_INVALID_TABLE_NAME
);
}
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
&
sTblToken
,
pSql
,
dbIncluded
);
...
...
@@ -1050,6 +1046,39 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
}
break
;
}
case
TSDB_SQL_DELETE_DATA
:
{
// CHECK AND SET TABLE NAME
SStrToken
*
tbName
=
&
pInfo
->
pDelData
->
tableName
;
bool
dbIncluded
=
false
;
char
buf
[
TSDB_TABLE_FNAME_LEN
];
SStrToken
sTblToken
;
sTblToken
.
z
=
buf
;
// check
if
(
validateTableName
(
tbName
->
z
,
tbName
->
n
,
&
sTblToken
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
STR_INVALID_TABLE_NAME
);
}
// set
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
&
sTblToken
,
pSql
,
dbIncluded
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
// get table meta
code
=
tscGetTableMeta
(
pSql
,
pTableMetaInfo
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
// async load table meta
}
// CHECK AND SET WHERE
if
(
pInfo
->
pDelData
->
pWhere
)
{
// origin check
pQueryInfo
=
tscGetQueryInfo
(
pCmd
);
if
(
validateWhereNode
(
pQueryInfo
,
&
pInfo
->
pDelData
->
pWhere
,
pSql
,
false
,
true
)
!=
TSDB_CODE_SUCCESS
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
}
break
;
}
default:
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
"not support sql expression"
);
}
...
...
@@ -4801,7 +4830,7 @@ static int32_t getColQueryCondExpr(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, tSqlEx
};
if
(
pQueryInfo
->
colCond
==
NULL
)
{
pQueryInfo
->
colCond
=
taosArrayInit
(
2
,
sizeof
(
SCond
));
pQueryInfo
->
colCond
=
taosArrayInit
(
2
,
sizeof
(
S
Tbl
Cond
));
}
taosArrayPush
(
pQueryInfo
->
colCond
,
&
cond
);
...
...
@@ -5577,12 +5606,13 @@ void convertWhereStringCharset(tSqlExpr* pRight){
static
int32_t
handleExprInQueryCond
(
SSqlCmd
*
pCmd
,
SQueryInfo
*
pQueryInfo
,
tSqlExpr
**
pExpr
,
SCondExpr
*
pCondExpr
,
int32_t
*
type
,
int32_t
*
tbIdx
,
int32_t
parentOptr
,
tSqlExpr
**
columnExpr
,
tSqlExpr
**
tsExpr
,
bool
joinQuery
)
{
tSqlExpr
**
tsExpr
,
bool
joinQuery
,
bool
delData
)
{
const
char
*
msg1
=
"table query cannot use tags filter"
;
const
char
*
msg2
=
"illegal column name"
;
const
char
*
msg4
=
"too many join tables"
;
const
char
*
msg5
=
"not support ordinary column join"
;
const
char
*
msg6
=
"illegal condition expression"
;
const
char
*
msg7
=
"only allow first timestamp column and tag column"
;
tSqlExpr
*
pLeft
=
(
*
pExpr
)
->
pLeft
;
tSqlExpr
*
pRight
=
(
*
pExpr
)
->
pRight
;
...
...
@@ -5607,6 +5637,16 @@ static int32_t handleExprInQueryCond(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, tSql
STableMetaInfo
*
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
index
.
tableIndex
);
STableMeta
*
pTableMeta
=
pTableMetaInfo
->
pTableMeta
;
SSchema
*
pSchema
=
tscGetTableColumnSchema
(
pTableMeta
,
index
.
columnIndex
);
// delete where condition check , column must ts or tag
if
(
delData
)
{
if
(
!
((
pSchema
->
colId
==
PRIMARYKEY_TIMESTAMP_COL_INDEX
&&
pSchema
->
type
==
TSDB_DATA_TYPE_TIMESTAMP
)
||
index
.
columnIndex
>=
tscGetNumOfColumns
(
pTableMeta
)
||
index
.
columnIndex
==
TSDB_TBNAME_COLUMN_INDEX
))
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg7
);
}
}
// validate the null expression
int32_t
code
=
validateNullExpr
(
*
pExpr
,
pTableMeta
,
index
.
columnIndex
,
tscGetErrorMsgPayload
(
pCmd
));
...
...
@@ -5626,8 +5666,6 @@ static int32_t handleExprInQueryCond(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, tSql
return
code
;
}
SSchema
*
pSchema
=
tscGetTableColumnSchema
(
pTableMeta
,
index
.
columnIndex
);
if
(
pSchema
->
type
==
TSDB_DATA_TYPE_NCHAR
){
convertWhereStringCharset
(
pRight
);
}
...
...
@@ -5776,7 +5814,7 @@ static int32_t handleExprInQueryCond(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, tSql
int32_t
getQueryCondExpr
(
SSqlCmd
*
pCmd
,
SQueryInfo
*
pQueryInfo
,
tSqlExpr
**
pExpr
,
SCondExpr
*
pCondExpr
,
int32_t
*
type
,
int32_t
*
tbIdx
,
int32_t
parentOptr
,
tSqlExpr
**
columnExpr
,
tSqlExpr
**
tsExpr
,
bool
joinQuery
)
{
tSqlExpr
**
tsExpr
,
bool
joinQuery
,
bool
delData
)
{
if
(
pExpr
==
NULL
)
{
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -5808,12 +5846,12 @@ int32_t getQueryCondExpr(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, tSqlExpr** pExpr
int32_t
rightTbIdx
=
0
;
if
(
!
tSqlExprIsParentOfLeaf
(
*
pExpr
))
{
ret
=
getQueryCondExpr
(
pCmd
,
pQueryInfo
,
&
(
*
pExpr
)
->
pLeft
,
pCondExpr
,
type
?
&
leftType
:
NULL
,
&
leftTbIdx
,
(
*
pExpr
)
->
tokenId
,
&
columnLeft
,
&
tsLeft
,
joinQuery
);
ret
=
getQueryCondExpr
(
pCmd
,
pQueryInfo
,
&
(
*
pExpr
)
->
pLeft
,
pCondExpr
,
type
?
&
leftType
:
NULL
,
&
leftTbIdx
,
(
*
pExpr
)
->
tokenId
,
&
columnLeft
,
&
tsLeft
,
joinQuery
,
delData
);
if
(
ret
!=
TSDB_CODE_SUCCESS
)
{
goto
err_ret
;
}
ret
=
getQueryCondExpr
(
pCmd
,
pQueryInfo
,
&
(
*
pExpr
)
->
pRight
,
pCondExpr
,
type
?
&
rightType
:
NULL
,
&
rightTbIdx
,
(
*
pExpr
)
->
tokenId
,
&
columnRight
,
&
tsRight
,
joinQuery
);
ret
=
getQueryCondExpr
(
pCmd
,
pQueryInfo
,
&
(
*
pExpr
)
->
pRight
,
pCondExpr
,
type
?
&
rightType
:
NULL
,
&
rightTbIdx
,
(
*
pExpr
)
->
tokenId
,
&
columnRight
,
&
tsRight
,
joinQuery
,
delData
);
if
(
ret
!=
TSDB_CODE_SUCCESS
)
{
goto
err_ret
;
}
...
...
@@ -5868,7 +5906,7 @@ int32_t getQueryCondExpr(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, tSqlExpr** pExpr
goto
err_ret
;
}
ret
=
handleExprInQueryCond
(
pCmd
,
pQueryInfo
,
pExpr
,
pCondExpr
,
type
,
tbIdx
,
parentOptr
,
columnExpr
,
tsExpr
,
joinQuery
);
ret
=
handleExprInQueryCond
(
pCmd
,
pQueryInfo
,
pExpr
,
pCondExpr
,
type
,
tbIdx
,
parentOptr
,
columnExpr
,
tsExpr
,
joinQuery
,
delData
);
if
(
ret
)
{
goto
err_ret
;
}
...
...
@@ -6415,7 +6453,7 @@ _ret:
int32_t
validateWhereNode
(
SQueryInfo
*
pQueryInfo
,
tSqlExpr
**
pExpr
,
SSqlObj
*
pSql
,
bool
joinQuery
)
{
int32_t
validateWhereNode
(
SQueryInfo
*
pQueryInfo
,
tSqlExpr
**
pExpr
,
SSqlObj
*
pSql
,
bool
joinQuery
,
bool
delData
)
{
if
(
pExpr
==
NULL
)
{
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -6443,7 +6481,7 @@ int32_t validateWhereNode(SQueryInfo* pQueryInfo, tSqlExpr** pExpr, SSqlObj* pSq
}
#endif
if
((
ret
=
getQueryCondExpr
(
&
pSql
->
cmd
,
pQueryInfo
,
pExpr
,
&
condExpr
,
etype
,
&
tbIdx
,
(
*
pExpr
)
->
tokenId
,
&
condExpr
.
pColumnCond
,
&
condExpr
.
pTimewindow
,
joinQuery
))
!=
TSDB_CODE_SUCCESS
)
{
if
((
ret
=
getQueryCondExpr
(
&
pSql
->
cmd
,
pQueryInfo
,
pExpr
,
&
condExpr
,
etype
,
&
tbIdx
,
(
*
pExpr
)
->
tokenId
,
&
condExpr
.
pColumnCond
,
&
condExpr
.
pTimewindow
,
joinQuery
,
delData
))
!=
TSDB_CODE_SUCCESS
)
{
goto
PARSE_WHERE_EXIT
;
}
...
...
@@ -8928,7 +8966,6 @@ int32_t doCheckForCreateTable(SSqlObj* pSql, int32_t subClauseIndex, SSqlInfo* p
}
int32_t
doCheckForCreateFromStable
(
SSqlObj
*
pSql
,
SSqlInfo
*
pInfo
)
{
const
char
*
msg1
=
"invalid table name"
;
const
char
*
msg3
=
"tag value too long"
;
const
char
*
msg4
=
"illegal value or data overflow"
;
const
char
*
msg5
=
"tags number not matched"
;
...
...
@@ -8964,7 +9001,7 @@ int32_t doCheckForCreateFromStable(SSqlObj* pSql, SSqlInfo* pInfo) {
int32_t
code
=
validateTableName
(
pToken
->
z
,
pToken
->
n
,
&
sTblToken
,
&
dbIncluded
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
STR_INVALID_TABLE_NAME
);
}
code
=
tscSetTableFullName
(
&
pStableMetaInfo
->
name
,
&
sTblToken
,
pSql
,
dbIncluded
);
...
...
@@ -9171,7 +9208,7 @@ int32_t doCheckForCreateFromStable(SSqlObj* pSql, SSqlInfo* pInfo) {
bool
dbIncluded2
=
false
;
// table name
if
(
tscValidateName
(
&
(
pCreateTableInfo
->
name
),
true
,
&
dbIncluded2
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
STR_INVALID_TABLE_NAME
);
}
STableMetaInfo
*
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
TABLE_INDEX
);
...
...
@@ -9183,7 +9220,7 @@ int32_t doCheckForCreateFromStable(SSqlObj* pSql, SSqlInfo* pInfo) {
pCreateTableInfo
->
fullname
=
calloc
(
1
,
tNameLen
(
&
pTableMetaInfo
->
name
)
+
1
);
ret
=
tNameExtractFullName
(
&
pTableMetaInfo
->
name
,
pCreateTableInfo
->
fullname
);
if
(
ret
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
STR_INVALID_TABLE_NAME
);
}
}
...
...
@@ -9191,7 +9228,6 @@ int32_t doCheckForCreateFromStable(SSqlObj* pSql, SSqlInfo* pInfo) {
}
int32_t
doCheckForStream
(
SSqlObj
*
pSql
,
SSqlInfo
*
pInfo
)
{
const
char
*
msg1
=
"invalid table name"
;
const
char
*
msg2
=
"functions not allowed in CQ"
;
const
char
*
msg3
=
"fill only available for interval query"
;
const
char
*
msg4
=
"fill option not supported in stream computing"
;
...
...
@@ -9215,14 +9251,14 @@ int32_t doCheckForStream(SSqlObj* pSql, SSqlInfo* pInfo) {
bool
dbIncluded1
=
false
;
if
(
tscValidateName
(
pName
,
true
,
&
dbIncluded1
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
STR_INVALID_TABLE_NAME
);
}
// check to valid and create to name
if
(
pInfo
->
pCreateTableInfo
->
to
.
n
>
0
)
{
bool
dbInclude
=
false
;
if
(
tscValidateName
(
&
pInfo
->
pCreateTableInfo
->
to
,
false
,
&
dbInclude
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
STR_INVALID_TABLE_NAME
);
}
int32_t
code
=
tscSetTableFullName
(
&
pInfo
->
pCreateTableInfo
->
toSName
,
&
pInfo
->
pCreateTableInfo
->
to
,
pSql
,
dbInclude
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
...
...
@@ -9249,7 +9285,7 @@ int32_t doCheckForStream(SSqlObj* pSql, SSqlInfo* pInfo) {
int32_t
code
=
validateTableName
(
srcToken
.
z
,
srcToken
.
n
,
&
sTblToken
,
&
dbIncluded2
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
STR_INVALID_TABLE_NAME
);
}
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
&
sTblToken
,
pSql
,
dbIncluded2
);
...
...
@@ -9269,7 +9305,7 @@ int32_t doCheckForStream(SSqlObj* pSql, SSqlInfo* pInfo) {
int32_t
joinQuery
=
(
pSqlNode
->
from
!=
NULL
&&
taosArrayGetSize
(
pSqlNode
->
from
->
list
)
>
1
);
if
(
pSqlNode
->
pWhere
!=
NULL
)
{
// query condition in stream computing
if
(
validateWhereNode
(
pQueryInfo
,
&
pSqlNode
->
pWhere
,
pSql
,
joinQuery
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
validateWhereNode
(
pQueryInfo
,
&
pSqlNode
->
pWhere
,
pSql
,
joinQuery
,
false
)
!=
TSDB_CODE_SUCCESS
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
}
...
...
@@ -9681,7 +9717,6 @@ int32_t validateHavingClause(SQueryInfo* pQueryInfo, tSqlExpr* pExpr, SSqlCmd* p
}
static
int32_t
getTableNameFromSqlNode
(
SSqlNode
*
pSqlNode
,
SArray
*
tableNameList
,
char
*
msgBuf
,
SSqlObj
*
pSql
)
{
const
char
*
msg1
=
"invalid table name"
;
int32_t
numOfTables
=
(
int32_t
)
taosArrayGetSize
(
pSqlNode
->
from
->
list
);
assert
(
pSqlNode
->
from
->
type
==
SQL_NODE_FROM_TABLELIST
);
...
...
@@ -9691,7 +9726,7 @@ static int32_t getTableNameFromSqlNode(SSqlNode* pSqlNode, SArray* tableNameList
SStrToken
*
t
=
&
item
->
tableName
;
if
(
t
->
type
==
TK_INTEGER
||
t
->
type
==
TK_FLOAT
)
{
return
invalidOperationMsg
(
msgBuf
,
msg1
);
return
invalidOperationMsg
(
msgBuf
,
STR_INVALID_TABLE_NAME
);
}
bool
dbIncluded
=
false
;
...
...
@@ -9700,7 +9735,7 @@ static int32_t getTableNameFromSqlNode(SSqlNode* pSqlNode, SArray* tableNameList
sTblToken
.
z
=
buf
;
if
(
validateTableName
(
t
->
z
,
t
->
n
,
&
sTblToken
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
msgBuf
,
msg1
);
return
invalidOperationMsg
(
msgBuf
,
STR_INVALID_TABLE_NAME
);
}
SName
name
=
{
0
};
...
...
@@ -9959,7 +9994,6 @@ _end:
}
static
int32_t
doLoadAllTableMeta
(
SSqlObj
*
pSql
,
SQueryInfo
*
pQueryInfo
,
SSqlNode
*
pSqlNode
,
int32_t
numOfTables
)
{
const
char
*
msg1
=
"invalid table name"
;
const
char
*
msg2
=
"invalid table alias name"
;
const
char
*
msg3
=
"alias name too long"
;
const
char
*
msg4
=
"self join not allowed"
;
...
...
@@ -9980,7 +10014,7 @@ static int32_t doLoadAllTableMeta(SSqlObj* pSql, SQueryInfo* pQueryInfo, SSqlNod
SStrToken
*
oriName
=
&
item
->
tableName
;
if
(
oriName
->
type
==
TK_INTEGER
||
oriName
->
type
==
TK_FLOAT
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
STR_INVALID_TABLE_NAME
);
}
bool
dbIncluded
=
false
;
...
...
@@ -9989,7 +10023,7 @@ static int32_t doLoadAllTableMeta(SSqlObj* pSql, SQueryInfo* pQueryInfo, SSqlNod
sTblToken
.
z
=
buf
;
if
(
validateTableName
(
oriName
->
z
,
oriName
->
n
,
&
sTblToken
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
STR_INVALID_TABLE_NAME
);
}
STableMetaInfo
*
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
i
);
...
...
@@ -10258,7 +10292,7 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf
// validate the query filter condition info
if
(
pSqlNode
->
pWhere
!=
NULL
)
{
if
(
validateWhereNode
(
pQueryInfo
,
&
pSqlNode
->
pWhere
,
pSql
,
joinQuery
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
validateWhereNode
(
pQueryInfo
,
&
pSqlNode
->
pWhere
,
pSql
,
joinQuery
,
false
)
!=
TSDB_CODE_SUCCESS
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
}
else
{
...
...
@@ -10363,7 +10397,7 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf
pQueryInfo
->
onlyHasTagCond
=
true
;
// set where info
if
(
pSqlNode
->
pWhere
!=
NULL
)
{
if
(
validateWhereNode
(
pQueryInfo
,
&
pSqlNode
->
pWhere
,
pSql
,
joinQuery
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
validateWhereNode
(
pQueryInfo
,
&
pSqlNode
->
pWhere
,
pSql
,
joinQuery
,
false
)
!=
TSDB_CODE_SUCCESS
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
...
...
src/client/src/tscServer.c
浏览文件 @
eeba8d02
...
...
@@ -3313,6 +3313,77 @@ int tscGetSTableVgroupInfo(SSqlObj *pSql, SQueryInfo* pQueryInfo) {
return
code
;
}
// Super Table
int
buildSTableDelDataMsg
(
SSqlObj
*
pSql
,
SSqlCmd
*
pCmd
,
SQueryInfo
*
pQueryInfo
,
STableMetaInfo
*
pTableMetaInfo
,
SSqlInfo
*
pInfo
)
{
return
0
;
}
// Normal Child Table
int
buildTableDelDataMsg
(
SSqlObj
*
pSql
,
SSqlCmd
*
pCmd
,
SQueryInfo
*
pQueryInfo
,
STableMetaInfo
*
pTableMetaInfo
,
SSqlInfo
*
pInfo
)
{
STableMeta
*
pTableMeta
=
pTableMetaInfo
->
pTableMeta
;
// pSql->cmd.payloadLen is set during copying data into payload
pCmd
->
msgType
=
TSDB_MSG_TYPE_SUBMIT
;
SNewVgroupInfo
vgroupInfo
=
{
0
};
taosHashGetClone
(
UTIL_GET_VGROUPMAP
(
pSql
),
&
pTableMeta
->
vgId
,
sizeof
(
pTableMeta
->
vgId
),
NULL
,
&
vgroupInfo
);
tscDumpEpSetFromVgroupInfo
(
&
pSql
->
epSet
,
&
vgroupInfo
);
tscDebug
(
"0x%"
PRIx64
" table deldata submit msg built, numberOfEP:%d"
,
pSql
->
self
,
pSql
->
epSet
.
numOfEps
);
// set payload
size_t
payloadLen
=
sizeof
(
SMsgDesc
)
+
sizeof
(
SSubmitMsg
)
+
sizeof
(
SSubmitBlk
)
+
sizeof
(
SControlData
);
int32_t
ret
=
tscAllocPayload
(
pCmd
,
payloadLen
);
if
(
ret
!=
TSDB_CODE_SUCCESS
)
{
return
ret
;
}
pCmd
->
payloadLen
=
payloadLen
;
char
*
p
=
pCmd
->
payload
;
SMsgDesc
*
pMsgDesc
=
(
SMsgDesc
*
)
p
;
p
+=
sizeof
(
SMsgDesc
);
SSubmitMsg
*
pSubmitMsg
=
(
SSubmitMsg
*
)
p
;
p
+=
sizeof
(
SSubmitMsg
);
SSubmitBlk
*
pSubmitBlk
=
(
SSubmitBlk
*
)
p
;
p
+=
sizeof
(
SSubmitBlk
);
SControlData
*
pControlData
=
(
SControlData
*
)
p
;
// SMsgDesc
pMsgDesc
->
numOfVnodes
=
htonl
(
1
);
// SSubmitMsg
int32_t
size
=
pCmd
->
payloadLen
-
sizeof
(
SMsgDesc
);
pSubmitMsg
->
header
.
vgId
=
htonl
(
pTableMeta
->
vgId
);
pSubmitMsg
->
header
.
contLen
=
htonl
(
size
);
pSubmitMsg
->
length
=
pSubmitMsg
->
header
.
contLen
;
pSubmitMsg
->
numOfBlocks
=
htonl
(
1
);
// SSubmitBlk
pSubmitBlk
->
flag
=
FLAG_BLK_CONTROL
;
// this is control block
pSubmitBlk
->
tid
=
htonl
(
pTableMeta
->
id
.
tid
);
pSubmitBlk
->
uid
=
htobe64
(
pTableMeta
->
id
.
uid
);
pSubmitBlk
->
numOfRows
=
htons
(
1
);
pSubmitBlk
->
schemaLen
=
0
;
// only server return TSDB_CODE_TDB_TABLE_RECONFIGURE need schema attached
pSubmitBlk
->
sversion
=
htonl
(
pTableMeta
->
sversion
);
pSubmitBlk
->
dataLen
=
htonl
(
sizeof
(
SControlData
));
// SControlData
pControlData
->
command
=
htonl
(
CMD_DELETE_DATA
);
pControlData
->
win
.
skey
=
htobe64
(
pQueryInfo
->
window
.
skey
);
pControlData
->
win
.
ekey
=
htobe64
(
pQueryInfo
->
window
.
ekey
);
return
TSDB_CODE_SUCCESS
;
}
int
tscBuildDelDataMsg
(
SSqlObj
*
pSql
,
SSqlInfo
*
pInfo
)
{
SSqlCmd
*
pCmd
=
&
pSql
->
cmd
;
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfo
(
pCmd
);
STableMetaInfo
*
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
0
);
if
(
UTIL_TABLE_IS_SUPER_TABLE
(
pTableMetaInfo
))
{
return
buildSTableDelDataMsg
(
pSql
,
pCmd
,
pQueryInfo
,
pTableMetaInfo
,
pInfo
);
}
else
{
return
buildTableDelDataMsg
(
pSql
,
pCmd
,
pQueryInfo
,
pTableMetaInfo
,
pInfo
);
}
}
void
tscInitMsgsFp
()
{
tscBuildMsg
[
TSDB_SQL_SELECT
]
=
tscBuildQueryMsg
;
tscBuildMsg
[
TSDB_SQL_INSERT
]
=
tscBuildSubmitMsg
;
...
...
@@ -3352,6 +3423,7 @@ void tscInitMsgsFp() {
tscBuildMsg
[
TSDB_SQL_KILL_QUERY
]
=
tscBuildKillMsg
;
tscBuildMsg
[
TSDB_SQL_KILL_STREAM
]
=
tscBuildKillMsg
;
tscBuildMsg
[
TSDB_SQL_KILL_CONNECTION
]
=
tscBuildKillMsg
;
tscBuildMsg
[
TSDB_SQL_DELETE_DATA
]
=
tscBuildDelDataMsg
;
tscProcessMsgRsp
[
TSDB_SQL_SELECT
]
=
tscProcessQueryRsp
;
tscProcessMsgRsp
[
TSDB_SQL_FETCH
]
=
tscProcessRetrieveRspFromNode
;
...
...
src/common/inc/tcmdtype.h
浏览文件 @
eeba8d02
...
...
@@ -35,6 +35,7 @@ enum {
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_SELECT
,
"select"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_FETCH
,
"fetch"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_INSERT
,
"insert"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_DELETE_DATA
,
"delete-data"
)
TSDB_DEFINE_SQL_TYPE
(
TSDB_SQL_UPDATE_TAGS_VAL
,
"update-tag-val"
)
// the SQL below is for mgmt node
...
...
src/common/inc/tname.h
浏览文件 @
eeba8d02
...
...
@@ -141,4 +141,7 @@ int32_t tNameSetAcctId(SName* dst, const char* acct);
int32_t
tNameSetDbName
(
SName
*
dst
,
const
char
*
acct
,
SStrToken
*
dbToken
);
// define uniform string
#define STR_INVALID_TABLE_NAME "invalid table name"
#endif // TDENGINE_NAME_H
src/cq/src/cqMain.c
浏览文件 @
eeba8d02
...
...
@@ -513,7 +513,7 @@ static void cqProcessStreamRes(void *param, TAOS_RES *tres, TAOS_ROW row) {
pBlk
->
tid
=
htonl
(
pObj
->
tid
);
pBlk
->
numOfRows
=
htons
(
1
);
pBlk
->
sversion
=
htonl
(
pSchema
->
version
);
pBlk
->
paddin
g
=
0
;
pBlk
->
fla
g
=
0
;
pHead
->
len
=
sizeof
(
SSubmitMsg
)
+
sizeof
(
SSubmitBlk
)
+
memRowDataTLen
(
trow
);
...
...
src/dnode/src/dnodeVWrite.c
浏览文件 @
eeba8d02
...
...
@@ -17,6 +17,7 @@
#include "os.h"
#include "tqueue.h"
#include "dnodeVWrite.h"
#include "tthread.h"
typedef
struct
{
taos_qall
qall
;
...
...
@@ -161,6 +162,29 @@ void dnodeFreeVWriteQueue(void *pWqueue) {
taosCloseQueue
(
pWqueue
);
}
void
*
waitingResultThread
(
void
*
param
)
{
SVWriteMsg
*
pWrite
=
(
SVWriteMsg
*
)
param
;
int32_t
ret
=
sem_wait
(
pWrite
->
rspRet
.
psem_rsp
);
if
(
ret
==
0
)
{
// success
}
sem_destroy
(
pWrite
->
rspRet
.
psem_rsp
);
// wait ok
SRpcMsg
rpcRsp
=
{
.
handle
=
pWrite
->
rpcMsg
.
handle
,
.
pCont
=
pWrite
->
rspRet
.
rsp
,
.
contLen
=
pWrite
->
rspRet
.
len
,
.
code
=
pWrite
->
code
,
};
rpcSendResponse
(
&
rpcRsp
);
// remove from thread manager
vnodeRemoveWait
(
pWrite
->
pVnode
,
pWrite
);
vnodeFreeFromWQueue
(
pWrite
->
pVnode
,
pWrite
);
return
NULL
;
}
void
dnodeSendRpcVWriteRsp
(
void
*
pVnode
,
void
*
wparam
,
int32_t
code
)
{
if
(
wparam
==
NULL
)
return
;
SVWriteMsg
*
pWrite
=
wparam
;
...
...
@@ -170,6 +194,7 @@ void dnodeSendRpcVWriteRsp(void *pVnode, void *wparam, int32_t code) {
if
(
count
<=
1
)
return
;
if
(
pWrite
->
rspRet
.
psem_rsp
==
0
)
{
SRpcMsg
rpcRsp
=
{
.
handle
=
pWrite
->
rpcMsg
.
handle
,
.
pCont
=
pWrite
->
rspRet
.
rsp
,
...
...
@@ -179,6 +204,12 @@ void dnodeSendRpcVWriteRsp(void *pVnode, void *wparam, int32_t code) {
rpcSendResponse
(
&
rpcRsp
);
vnodeFreeFromWQueue
(
pVnode
,
pWrite
);
}
else
{
// need async to wait result in another thread
pthread_t
*
thread
=
taosCreateThread
(
waitingResultThread
,
pWrite
);
// add to wait thread manager
vnodeAddWait
(
pVnode
,
thread
,
pWrite
->
rspRet
.
psem_rsp
,
pWrite
);
}
}
static
void
*
dnodeProcessVWriteQueue
(
void
*
wparam
)
{
...
...
src/inc/taosmsg.h
浏览文件 @
eeba8d02
...
...
@@ -120,6 +120,10 @@ TAOS_DEFINE_MESSAGE_TYPE( TSDB_MSG_TYPE_CM_DROP_TP, "drop-tp" )
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_USE_TP
,
"use-tp"
)
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_CM_ALTER_TP
,
"alter-tp"
)
// delete
TAOS_DEFINE_MESSAGE_TYPE
(
TSDB_MSG_TYPE_DELDATA
,
"delete-data"
)
#ifndef TAOS_MESSAGE_C
TSDB_MSG_TYPE_MAX
// 105
#endif
...
...
@@ -195,6 +199,9 @@ enum _mgmt_table {
#define TSDB_COL_IS_UD_COL(f) ((f&(~(TSDB_COL_NULL))) == TSDB_COL_UDC)
#define TSDB_COL_REQ_NULL(f) (((f)&TSDB_COL_NULL) != 0)
// SSubmitBlk->flag define
#define FLAG_BLK_CONTROL 0x00000001 // SSubmitBlk is a control block to submit
#define IS_CONTROL_BLOCK(x) (x->flag & FLAG_BLK_CONTROL)
extern
char
*
taosMsg
[];
...
...
@@ -219,7 +226,7 @@ typedef struct SMsgHead {
typedef
struct
SSubmitBlk
{
uint64_t
uid
;
// table unique id
int32_t
tid
;
// table id
int32_t
padding
;
// TODO just for padding her
e
int32_t
flag
;
// extend special information, can see FLAG_BLK_??? defin
e
int32_t
sversion
;
// data schema version
int32_t
dataLen
;
// data part length, not including the SSubmitBlk head
int32_t
schemaLen
;
// schema length, if length is 0, no schema exists
...
...
@@ -996,6 +1003,12 @@ typedef struct {
char
value
[];
}
STLV
;
#define CMD_DELETE_DATA 0x00000001
typedef
struct
SControlData
{
uint32_t
command
;
// see define CMD_???
STimeWindow
win
;
}
SControlData
;
enum
{
TLV_TYPE_END_MARK
=
-
1
,
//TLV_TYPE_DUMMY = 1,
...
...
src/inc/tsdb.h
浏览文件 @
eeba8d02
...
...
@@ -160,7 +160,7 @@ typedef struct {
*
* @return the number of points inserted, -1 for failure and the error number is set
*/
int32_t
tsdbInsertData
(
STsdbRepo
*
repo
,
SSubmitMsg
*
pMsg
,
SShellSubmitRspMsg
*
pRsp
);
int32_t
tsdbInsertData
(
STsdbRepo
*
repo
,
SSubmitMsg
*
pMsg
,
SShellSubmitRspMsg
*
pRsp
,
sem_t
*
pSem
);
// -- FOR QUERY TIME SERIES DATA
...
...
src/inc/ttokendef.h
浏览文件 @
eeba8d02
...
...
@@ -177,48 +177,49 @@
#define TK_CONNECTION 159
#define TK_STREAM 160
#define TK_COLON 161
#define TK_ABORT 162
#define TK_AFTER 163
#define TK_ATTACH 164
#define TK_BEFORE 165
#define TK_BEGIN 166
#define TK_CASCADE 167
#define TK_CLUSTER 168
#define TK_CONFLICT 169
#define TK_COPY 170
#define TK_DEFERRED 171
#define TK_DELIMITERS 172
#define TK_DETACH 173
#define TK_EACH 174
#define TK_END 175
#define TK_EXPLAIN 176
#define TK_FAIL 177
#define TK_FOR 178
#define TK_IGNORE 179
#define TK_IMMEDIATE 180
#define TK_INITIALLY 181
#define TK_INSTEAD 182
#define TK_KEY 183
#define TK_OF 184
#define TK_RAISE 185
#define TK_REPLACE 186
#define TK_RESTRICT 187
#define TK_ROW 188
#define TK_STATEMENT 189
#define TK_TRIGGER 190
#define TK_VIEW 191
#define TK_IPTOKEN 192
#define TK_SEMI 193
#define TK_NONE 194
#define TK_PREV 195
#define TK_LINEAR 196
#define TK_IMPORT 197
#define TK_TBNAME 198
#define TK_JOIN 199
#define TK_INSERT 200
#define TK_INTO 201
#define TK_VALUES 202
#define TK_FILE 203
#define TK_DELETE 162
#define TK_ABORT 163
#define TK_AFTER 164
#define TK_ATTACH 165
#define TK_BEFORE 166
#define TK_BEGIN 167
#define TK_CASCADE 168
#define TK_CLUSTER 169
#define TK_CONFLICT 170
#define TK_COPY 171
#define TK_DEFERRED 172
#define TK_DELIMITERS 173
#define TK_DETACH 174
#define TK_EACH 175
#define TK_END 176
#define TK_EXPLAIN 177
#define TK_FAIL 178
#define TK_FOR 179
#define TK_IGNORE 180
#define TK_IMMEDIATE 181
#define TK_INITIALLY 182
#define TK_INSTEAD 183
#define TK_KEY 184
#define TK_OF 185
#define TK_RAISE 186
#define TK_REPLACE 187
#define TK_RESTRICT 188
#define TK_ROW 189
#define TK_STATEMENT 190
#define TK_TRIGGER 191
#define TK_VIEW 192
#define TK_IPTOKEN 193
#define TK_SEMI 194
#define TK_NONE 195
#define TK_PREV 196
#define TK_LINEAR 197
#define TK_IMPORT 198
#define TK_TBNAME 199
#define TK_JOIN 200
#define TK_INSERT 201
#define TK_INTO 202
#define TK_VALUES 203
#define TK_FILE 204
#define TK_SPACE 300
...
...
src/inc/vnode.h
浏览文件 @
eeba8d02
...
...
@@ -32,6 +32,7 @@ typedef struct {
int32_t
len
;
void
*
rsp
;
void
*
qhandle
;
// used by query and retrieve msg
sem_t
*
psem_rsp
;
// if it is not zero, need wait result with async
}
SRspRet
;
typedef
struct
{
...
...
@@ -58,6 +59,13 @@ typedef struct {
SWalHead
walHead
;
}
SVWriteMsg
;
typedef
struct
{
int32_t
startTime
;
pthread_t
*
pthread
;
sem_t
*
psem
;
void
*
param
;
}
SWaitThread
;
// vnodeStatus
extern
char
*
vnodeStatus
[];
...
...
@@ -98,6 +106,10 @@ int32_t vnodeWriteToRQueue(void *pVnode, void *pCont, int32_t contLen, int8_t qt
void
vnodeFreeFromRQueue
(
void
*
pVnode
,
SVReadMsg
*
pRead
);
int32_t
vnodeProcessRead
(
void
*
pVnode
,
SVReadMsg
*
pRead
);
// wait thread
void
vnodeAddWait
(
void
*
pVnode
,
pthread_t
*
pthread
,
sem_t
*
psem
,
void
*
param
);
void
vnodeRemoveWait
(
void
*
pVnode
,
void
*
param
);
#ifdef __cplusplus
}
#endif
...
...
src/query/inc/qSqlparser.h
浏览文件 @
eeba8d02
...
...
@@ -252,6 +252,12 @@ typedef struct SMiscInfo {
};
}
SMiscInfo
;
typedef
struct
SDelData
{
bool
existsCheck
;
SStrToken
tableName
;
struct
tSqlExpr
*
pWhere
;
}
SDelData
;
typedef
struct
SSqlInfo
{
int32_t
type
;
bool
valid
;
...
...
@@ -262,6 +268,7 @@ typedef struct SSqlInfo {
SCreateTableSql
*
pCreateTableInfo
;
SAlterTableInfo
*
pAlterInfo
;
SMiscInfo
*
pMiscInfo
;
SDelData
*
pDelData
;
};
}
SSqlInfo
;
...
...
@@ -364,6 +371,9 @@ void tSetDbName(SStrToken *pCpxName, SStrToken *pDb);
void
tSetColumnInfo
(
TAOS_FIELD
*
pField
,
SStrToken
*
pName
,
TAOS_FIELD
*
pType
);
void
tSetColumnType
(
TAOS_FIELD
*
pField
,
SStrToken
*
type
);
// malloc new SDelData and set with args
SDelData
*
tGetDelData
(
SStrToken
*
pTableName
,
SStrToken
*
existsCheck
,
tSqlExpr
*
pWhere
);
/**
*
* @param yyp The parser
...
...
src/query/inc/sql.y
浏览文件 @
eeba8d02
...
...
@@ -984,6 +984,15 @@ cmd ::= KILL CONNECTION INTEGER(Y). {setKillSql(pInfo, TSDB_SQL_KILL_CONNECTIO
cmd ::= KILL STREAM INTEGER(X) COLON(Z) INTEGER(Y). {X.n += (Z.n + Y.n); setKillSql(pInfo, TSDB_SQL_KILL_STREAM, &X);}
cmd ::= KILL QUERY INTEGER(X) COLON(Z) INTEGER(Y). {X.n += (Z.n + Y.n); setKillSql(pInfo, TSDB_SQL_KILL_QUERY, &X);}
//////////////////////////////////// DEL TRUNCATE TABLE /////////////////////////////////////
//1 DELETE FROM TBNAME/STBNAME WHERE TS AND TAG CONDICTION
cmd ::= DELETE FROM ifexists(Y) ids(X) cpxName(Z) where_opt(W). {
X.n += Z.n;
SDelData * pDelData = tGetDelData(&X, &Y, W);
setSqlInfo(pInfo, pDelData, NULL, TSDB_SQL_DELETE_DATA);
}
%fallback ID ABORT AFTER ASC ATTACH BEFORE BEGIN CASCADE CLUSTER CONFLICT COPY DATABASE DEFERRED
DELIMITERS DESC DETACH EACH END EXPLAIN FAIL FOR GLOB IGNORE IMMEDIATE INITIALLY INSTEAD
LIKE MATCH NMATCH KEY OF OFFSET RAISE REPLACE RESTRICT ROW STATEMENT TRIGGER VIEW ALL
...
...
src/query/src/qSqlParser.c
浏览文件 @
eeba8d02
...
...
@@ -1310,6 +1310,22 @@ void setDropDbTableInfo(SSqlInfo *pInfo, int32_t type, SStrToken* pToken, SStrTo
pInfo
->
pMiscInfo
->
tableType
=
tableType
;
}
void
setTruncateTableInfo
(
SSqlInfo
*
pInfo
,
int32_t
type
,
SStrToken
*
pToken
,
SStrToken
*
existsCheck
,
int16_t
dbType
,
int16_t
tableType
)
{
pInfo
->
type
=
type
;
if
(
pInfo
->
pMiscInfo
==
NULL
)
{
pInfo
->
pMiscInfo
=
(
SMiscInfo
*
)
calloc
(
1
,
sizeof
(
SMiscInfo
));
pInfo
->
pMiscInfo
->
a
=
taosArrayInit
(
4
,
sizeof
(
SStrToken
));
}
taosArrayPush
(
pInfo
->
pMiscInfo
->
a
,
pToken
);
pInfo
->
pMiscInfo
->
existsCheck
=
(
existsCheck
->
n
==
1
);
pInfo
->
pMiscInfo
->
dbType
=
dbType
;
pInfo
->
pMiscInfo
->
tableType
=
tableType
;
}
void
setDropFuncInfo
(
SSqlInfo
*
pInfo
,
int32_t
type
,
SStrToken
*
pToken
)
{
pInfo
->
type
=
type
;
...
...
@@ -1474,3 +1490,15 @@ void setDefaultCreateTopicOption(SCreateDbInfo *pDBInfo) {
pDBInfo
->
dbType
=
TSDB_DB_TYPE_TOPIC
;
pDBInfo
->
partitions
=
TSDB_DEFAULT_DB_PARTITON_OPTION
;
}
// malloc new SDelData and set with args
SDelData
*
tGetDelData
(
SStrToken
*
pTableName
,
SStrToken
*
existsCheck
,
tSqlExpr
*
pWhere
)
{
// malloc
SDelData
*
pDelData
=
(
SDelData
*
)
calloc
(
1
,
sizeof
(
SDelData
));
// set value
pDelData
->
existsCheck
=
(
existsCheck
->
n
==
1
);
pDelData
->
tableName
=
*
pTableName
;
pDelData
->
pWhere
=
pWhere
;
return
pDelData
;
}
\ No newline at end of file
src/query/src/sql.c
浏览文件 @
eeba8d02
...
...
@@ -100,30 +100,30 @@
#endif
/************* Begin control #defines *****************************************/
#define YYCODETYPE unsigned short int
#define YYNOCODE 29
0
#define YYNOCODE 29
1
#define YYACTIONTYPE unsigned short int
#define ParseTOKENTYPE SStrToken
typedef
union
{
int
yyinit
;
ParseTOKENTYPE
yy0
;
S
RelationInfo
*
yy84
;
S
Array
*
yy161
;
SSessionWindowVal
yy219
;
TAOS_FIELD
yy
223
;
SCreateAcctInfo
yy231
;
S
SqlNode
*
yy276
;
S
IntervalVal
yy300
;
S
CreateDbInfo
yy302
;
S
CreatedTableInfo
yy356
;
int64_t
yy369
;
S
LimitVal
yy394
;
SRangeVal
yy420
;
int
yy452
;
S
CreateTableSql
*
yy462
;
int
32_t
yy520
;
tVariant
yy52
6
;
tSqlExpr
*
yy546
;
SWindowStateVal
yy548
;
S
LimitVal
yy6
;
S
SqlNode
*
yy86
;
tVariant
yy110
;
TAOS_FIELD
yy
115
;
tSqlExpr
*
yy142
;
S
IntervalVal
yy238
;
S
SessionWindowVal
yy319
;
S
RelationInfo
*
yy328
;
S
RangeVal
yy330
;
SCreateDbInfo
yy436
;
S
CreatedTableInfo
yy480
;
int32_t
yy508
;
SCreateAcctInfo
yy517
;
S
Array
*
yy525
;
int
64_t
yy543
;
SWindowStateVal
yy54
6
;
SCreateTableSql
*
yy572
;
int
yy580
;
}
YYMINORTYPE
;
#ifndef YYSTACKDEPTH
#define YYSTACKDEPTH 100
...
...
@@ -139,18 +139,17 @@ typedef union {
#define ParseCTX_FETCH
#define ParseCTX_STORE
#define YYFALLBACK 1
#define YYNSTATE 398
#define YYNRULE 320
#define YYNRULE_WITH_ACTION 320
#define YYNTOKEN 204
#define YY_MAX_SHIFT 397
#define YY_MIN_SHIFTREDUCE 625
#define YY_MAX_SHIFTREDUCE 944
#define YY_ERROR_ACTION 945
#define YY_ACCEPT_ACTION 946
#define YY_NO_ACTION 947
#define YY_MIN_REDUCE 948
#define YY_MAX_REDUCE 1267
#define YYNSTATE 403
#define YYNRULE 321
#define YYNTOKEN 205
#define YY_MAX_SHIFT 402
#define YY_MIN_SHIFTREDUCE 631
#define YY_MAX_SHIFTREDUCE 951
#define YY_ERROR_ACTION 952
#define YY_ACCEPT_ACTION 953
#define YY_NO_ACTION 954
#define YY_MIN_REDUCE 955
#define YY_MAX_REDUCE 1275
/************* End control #defines *******************************************/
#define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))
...
...
@@ -217,318 +216,322 @@ typedef union {
** yy_default[] Default action for each state.
**
*********** Begin parsing tables **********************************************/
#define YY_ACTTAB_COUNT (8
65
)
#define YY_ACTTAB_COUNT (8
72
)
static
const
YYACTIONTYPE
yy_action
[]
=
{
/* 0 */
105
,
676
,
1097
,
1131
,
946
,
397
,
262
,
760
,
676
,
677
,
/* 10 */
1183
,
712
,
1184
,
314
,
37
,
38
,
677
,
41
,
42
,
396
,
/* 20 */
243
,
265
,
31
,
30
,
29
,
1089
,
163
,
40
,
347
,
45
,
/* 30 */
43
,
46
,
44
,
1086
,
1087
,
55
,
1090
,
36
,
35
,
372
,
/* 40 */
371
,
34
,
33
,
32
,
37
,
38
,
252
,
41
,
42
,
258
,
/* 50 */
85
,
265
,
31
,
30
,
29
,
24
,
1122
,
40
,
347
,
45
,
/* 60 */
43
,
46
,
44
,
318
,
100
,
1241
,
99
,
36
,
35
,
218
,
/* 70 */
214
,
34
,
33
,
32
,
288
,
1128
,
131
,
125
,
136
,
1241
,
/* 80 */
1241
,
1243
,
1244
,
135
,
1088
,
141
,
144
,
134
,
37
,
38
,
/* 90 */
88
,
41
,
42
,
51
,
138
,
265
,
31
,
30
,
29
,
295
,
/* 100 */
294
,
40
,
347
,
45
,
43
,
46
,
44
,
343
,
34
,
33
,
/* 110 */
32
,
36
,
35
,
343
,
216
,
34
,
33
,
32
,
37
,
38
,
/* 120 */
58
,
41
,
42
,
59
,
1241
,
265
,
31
,
30
,
29
,
275
,
/* 130 */
676
,
40
,
347
,
45
,
43
,
46
,
44
,
880
,
677
,
883
,
/* 140 */
185
,
36
,
35
,
676
,
217
,
34
,
33
,
32
,
13
,
37
,
/* 150 */
39
,
677
,
41
,
42
,
1241
,
382
,
265
,
31
,
30
,
29
,
/* 160 */
1106
,
874
,
40
,
347
,
45
,
43
,
46
,
44
,
245
,
395
,
/* 170 */
393
,
653
,
36
,
35
,
59
,
1104
,
34
,
33
,
32
,
209
,
/* 180 */
207
,
205
,
107
,
86
,
390
,
1034
,
204
,
151
,
150
,
149
,
/* 190 */
148
,
626
,
627
,
628
,
629
,
630
,
631
,
632
,
633
,
634
,
/* 200 */
635
,
636
,
637
,
638
,
639
,
160
,
250
,
244
,
38
,
1263
,
/* 210 */
41
,
42
,
345
,
1107
,
265
,
31
,
30
,
29
,
280
,
255
,
/* 220 */
40
,
347
,
45
,
43
,
46
,
44
,
1104
,
284
,
283
,
317
,
/* 230 */
36
,
35
,
1
,
187
,
34
,
33
,
32
,
223
,
41
,
42
,
/* 240 */
268
,
178
,
265
,
31
,
30
,
29
,
1255
,
1241
,
40
,
347
,
/* 250 */
45
,
43
,
46
,
44
,
879
,
296
,
882
,
888
,
36
,
35
,
/* 260 */
304
,
94
,
34
,
33
,
32
,
67
,
341
,
389
,
388
,
340
,
/* 270 */
339
,
338
,
387
,
337
,
336
,
335
,
386
,
334
,
385
,
384
,
/* 280 */
25
,
59
,
1065
,
1053
,
1054
,
1055
,
1056
,
1057
,
1058
,
1059
,
/* 290 */
1060
,
1061
,
1062
,
1063
,
1064
,
1066
,
1067
,
222
,
224
,
237
,
/* 300 */
890
,
68
,
297
,
878
,
230
,
881
,
352
,
884
,
1241
,
1122
,
/* 310 */
147
,
146
,
145
,
229
,
181
,
237
,
890
,
355
,
94
,
878
,
/* 320 */
269
,
881
,
267
,
884
,
358
,
357
,
256
,
246
,
59
,
45
,
/* 330 */
43
,
46
,
44
,
1104
,
225
,
241
,
242
,
36
,
35
,
349
,
/* 340 */
261
,
34
,
33
,
32
,
1241
,
59
,
5
,
62
,
189
,
1194
,
/* 350 */
1122
,
241
,
242
,
188
,
114
,
119
,
110
,
118
,
68
,
788
,
/* 360 */
274
,
1233
,
785
,
257
,
786
,
108
,
787
,
266
,
247
,
1232
,
/* 370 */
1107
,
1241
,
330
,
359
,
889
,
67
,
1193
,
389
,
388
,
1241
,
/* 380 */
1104
,
287
,
387
,
84
,
47
,
285
,
386
,
822
,
385
,
384
,
/* 390 */
238
,
825
,
1231
,
346
,
270
,
271
,
1073
,
1103
,
1071
,
1072
,
/* 400 */
47
,
1091
,
1241
,
1074
,
218
,
59
,
59
,
1075
,
59
,
1076
,
/* 410 */
1077
,
59
,
161
,
895
,
1241
,
345
,
1244
,
239
,
79
,
300
,
/* 420 */
301
,
891
,
885
,
887
,
36
,
35
,
59
,
1241
,
34
,
33
,
/* 430 */
32
,
218
,
264
,
159
,
157
,
156
,
133
,
891
,
885
,
887
,
/* 440 */
276
,
1241
,
273
,
1244
,
367
,
366
,
886
,
59
,
382
,
59
,
/* 450 */
360
,
361
,
806
,
362
,
6
,
240
,
368
,
1104
,
1104
,
220
,
/* 460 */
1104
,
80
,
886
,
1104
,
221
,
1241
,
226
,
219
,
275
,
1241
,
/* 470 */
854
,
369
,
227
,
228
,
1241
,
232
,
1241
,
1241
,
1104
,
186
,
/* 480 */
789
,
272
,
1241
,
1241
,
91
,
1241
,
233
,
92
,
234
,
275
,
/* 490 */
259
,
275
,
370
,
231
,
374
,
215
,
1241
,
1107
,
1241
,
1104
,
/* 500 */
348
,
1104
,
1105
,
1241
,
996
,
1241
,
248
,
834
,
835
,
1006
,
/* 510 */
1181
,
199
,
1182
,
102
,
997
,
101
,
199
,
103
,
3
,
200
,
/* 520 */
289
,
199
,
803
,
831
,
291
,
299
,
298
,
291
,
841
,
842
,
/* 530 */
853
,
76
,
89
,
770
,
60
,
322
,
772
,
165
,
324
,
771
,
/* 540 */
810
,
54
,
71
,
48
,
919
,
892
,
351
,
60
,
263
,
60
,
/* 550 */
71
,
10
,
106
,
71
,
15
,
675
,
14
,
83
,
9
,
9
,
/* 560 */
124
,
17
,
123
,
16
,
795
,
793
,
796
,
794
,
350
,
9
,
/* 570 */
364
,
363
,
253
,
19
,
325
,
18
,
77
,
130
,
21
,
129
,
/* 580 */
20
,
143
,
142
,
1190
,
1189
,
254
,
373
,
162
,
877
,
759
,
/* 590 */
1102
,
1130
,
26
,
1173
,
1141
,
1138
,
1172
,
1139
,
1123
,
292
,
/* 600 */
1143
,
164
,
169
,
1098
,
310
,
1171
,
1170
,
180
,
182
,
1096
,
/* 610 */
183
,
184
,
1011
,
158
,
821
,
327
,
328
,
303
,
329
,
332
,
/* 620 */
333
,
69
,
212
,
65
,
344
,
1005
,
249
,
170
,
356
,
1262
,
/* 630 */
305
,
307
,
121
,
1261
,
1258
,
190
,
81
,
365
,
1254
,
1120
,
/* 640 */
127
,
1253
,
78
,
1250
,
191
,
1031
,
66
,
319
,
171
,
61
,
/* 650 */
70
,
213
,
28
,
993
,
315
,
173
,
137
,
309
,
313
,
991
,
/* 660 */
139
,
311
,
140
,
172
,
306
,
989
,
988
,
277
,
202
,
203
,
/* 670 */
985
,
984
,
983
,
982
,
302
,
981
,
980
,
27
,
979
,
206
,
/* 680 */
208
,
971
,
210
,
968
,
211
,
964
,
87
,
331
,
290
,
1100
,
/* 690 */
90
,
95
,
308
,
383
,
376
,
132
,
375
,
377
,
378
,
379
,
/* 700 */
82
,
380
,
381
,
260
,
391
,
944
,
326
,
279
,
943
,
282
,
/* 710 */
942
,
278
,
235
,
236
,
281
,
925
,
924
,
115
,
1010
,
1009
,
/* 720 */
116
,
286
,
321
,
291
,
11
,
293
,
987
,
93
,
798
,
52
,
/* 730 */
96
,
830
,
986
,
193
,
1032
,
194
,
195
,
192
,
196
,
198
,
/* 740 */
197
,
152
,
828
,
153
,
978
,
977
,
320
,
1069
,
154
,
1033
,
/* 750 */
155
,
74
,
176
,
174
,
175
,
177
,
970
,
53
,
179
,
969
,
/* 760 */
1079
,
2
,
4
,
824
,
823
,
75
,
166
,
827
,
832
,
843
,
/* 770 */
167
,
168
,
837
,
97
,
251
,
839
,
98
,
312
,
63
,
350
,
/* 780 */
316
,
12
,
104
,
49
,
22
,
23
,
323
,
64
,
107
,
109
,
/* 790 */
56
,
111
,
50
,
112
,
690
,
725
,
723
,
722
,
721
,
57
,
/* 800 */
113
,
719
,
718
,
717
,
714
,
680
,
342
,
117
,
7
,
916
,
/* 810 */
914
,
894
,
917
,
893
,
915
,
8
,
896
,
354
,
120
,
72
,
/* 820 */
122
,
60
,
353
,
792
,
73
,
762
,
126
,
128
,
761
,
758
,
/* 830 */
706
,
704
,
696
,
702
,
791
,
698
,
700
,
694
,
692
,
728
,
/* 840 */
727
,
726
,
724
,
720
,
716
,
715
,
201
,
643
,
948
,
678
,
/* 850 */
652
,
392
,
650
,
947
,
947
,
947
,
947
,
947
,
947
,
947
,
/* 860 */
947
,
947
,
947
,
947
,
394
,
/* 0 */
106
,
682
,
401
,
247
,
953
,
402
,
266
,
1129
,
682
,
683
,
/* 10 */
1190
,
718
,
1191
,
319
,
37
,
38
,
683
,
41
,
42
,
395
,
/* 20 */
1041
,
269
,
31
,
30
,
29
,
250
,
167
,
40
,
352
,
45
,
/* 30 */
43
,
46
,
44
,
1093
,
1094
,
55
,
1097
,
36
,
35
,
24
,
/* 40 */
220
,
34
,
33
,
32
,
37
,
38
,
256
,
41
,
42
,
1248
,
/* 50 */
1248
,
269
,
31
,
30
,
29
,
221
,
1129
,
40
,
352
,
45
,
/* 60 */
43
,
46
,
44
,
323
,
101
,
1248
,
100
,
36
,
35
,
222
,
/* 70 */
218
,
34
,
33
,
32
,
293
,
766
,
132
,
126
,
137
,
1248
,
/* 80 */
1248
,
1250
,
1251
,
136
,
1113
,
142
,
145
,
135
,
37
,
38
,
/* 90 */
89
,
41
,
42
,
51
,
139
,
269
,
31
,
30
,
29
,
300
,
/* 100 */
299
,
40
,
352
,
45
,
43
,
46
,
44
,
377
,
376
,
348
,
/* 110 */
182
,
36
,
35
,
1138
,
227
,
34
,
33
,
32
,
37
,
38
,
/* 120 */
58
,
41
,
42
,
59
,
1248
,
269
,
31
,
30
,
29
,
309
,
/* 130 */
228
,
40
,
352
,
45
,
43
,
46
,
44
,
34
,
33
,
32
,
/* 140 */
1248
,
36
,
35
,
682
,
229
,
34
,
33
,
32
,
13
,
37
,
/* 150 */
39
,
683
,
41
,
42
,
1248
,
809
,
269
,
31
,
30
,
29
,
/* 160 */
1270
,
880
,
40
,
352
,
45
,
43
,
46
,
44
,
249
,
400
,
/* 170 */
398
,
659
,
36
,
35
,
59
,
1111
,
34
,
33
,
32
,
213
,
/* 180 */
211
,
209
,
108
,
87
,
10
,
1135
,
208
,
152
,
151
,
150
,
/* 190 */
149
,
632
,
633
,
634
,
635
,
636
,
637
,
638
,
639
,
640
,
/* 200 */
641
,
642
,
643
,
644
,
645
,
161
,
254
,
248
,
38
,
59
,
/* 210 */
41
,
42
,
387
,
1114
,
269
,
31
,
30
,
29
,
285
,
259
,
/* 220 */
40
,
352
,
45
,
43
,
46
,
44
,
1111
,
289
,
288
,
682
,
/* 230 */
36
,
35
,
1262
,
261
,
34
,
33
,
32
,
683
,
41
,
42
,
/* 240 */
1114
,
294
,
269
,
31
,
30
,
29
,
1240
,
1239
,
40
,
352
,
/* 250 */
45
,
43
,
46
,
44
,
260
,
60
,
1248
,
1248
,
36
,
35
,
/* 260 */
59
,
1111
,
34
,
33
,
32
,
67
,
346
,
394
,
393
,
345
,
/* 270 */
344
,
343
,
392
,
342
,
341
,
340
,
391
,
339
,
390
,
389
,
/* 280 */
1072
,
1060
,
1061
,
1062
,
1063
,
1064
,
1065
,
1066
,
1067
,
1068
,
/* 290 */
1069
,
1070
,
1071
,
1073
,
1074
,
241
,
896
,
25
,
1096
,
884
,
/* 300 */
1238
,
887
,
95
,
890
,
794
,
364
,
134
,
791
,
301
,
792
,
/* 310 */
1248
,
793
,
1111
,
243
,
226
,
244
,
241
,
896
,
387
,
263
,
/* 320 */
884
,
234
,
887
,
1248
,
890
,
1248
,
1114
,
148
,
147
,
146
,
/* 330 */
233
,
245
,
246
,
104
,
360
,
95
,
5
,
62
,
193
,
274
,
/* 340 */
275
,
224
,
68
,
192
,
115
,
120
,
111
,
119
,
90
,
837
,
/* 350 */
828
,
1248
,
245
,
246
,
831
,
1129
,
354
,
45
,
43
,
46
,
/* 360 */
44
,
272
,
335
,
169
,
59
,
36
,
35
,
278
,
225
,
34
,
/* 370 */
33
,
32
,
302
,
251
,
67
,
68
,
394
,
393
,
1248
,
230
,
/* 380 */
47
,
392
,
305
,
306
,
59
,
391
,
348
,
390
,
389
,
1248
,
/* 390 */
36
,
35
,
265
,
351
,
34
,
33
,
32
,
886
,
292
,
889
,
/* 400 */
85
,
47
,
885
,
59
,
888
,
59
,
270
,
242
,
59
,
365
,
/* 410 */
1188
,
282
,
1189
,
59
,
223
,
350
,
1111
,
897
,
891
,
893
,
/* 420 */
1080
,
1003
,
1078
,
1079
,
1248
,
795
,
276
,
1081
,
203
,
366
,
/* 430 */
812
,
1082
,
268
,
1083
,
1084
,
1201
,
1111
,
1104
,
897
,
891
,
/* 440 */
893
,
273
,
892
,
271
,
59
,
363
,
362
,
280
,
367
,
277
,
/* 450 */
373
,
372
,
371
,
374
,
6
,
1111
,
222
,
1111
,
375
,
109
,
/* 460 */
1111
,
840
,
841
,
892
,
231
,
1111
,
1248
,
59
,
1251
,
252
,
/* 470 */
222
,
160
,
158
,
157
,
1248
,
232
,
86
,
236
,
237
,
860
,
/* 480 */
1248
,
238
,
1251
,
235
,
262
,
1248
,
279
,
1248
,
1248
,
379
,
/* 490 */
219
,
1248
,
279
,
1248
,
279
,
1098
,
1111
,
189
,
279
,
76
,
/* 500 */
1248
,
1013
,
92
,
190
,
103
,
353
,
102
,
93
,
203
,
1112
,
/* 510 */
1095
,
304
,
303
,
1004
,
847
,
1
,
191
,
894
,
816
,
1110
,
/* 520 */
203
,
848
,
895
,
3
,
204
,
79
,
350
,
776
,
71
,
54
,
/* 530 */
267
,
327
,
778
,
356
,
329
,
48
,
777
,
925
,
898
,
859
,
/* 540 */
357
,
60
,
296
,
322
,
77
,
60
,
71
,
296
,
107
,
681
,
/* 550 */
71
,
9
,
9
,
83
,
15
,
355
,
14
,
125
,
801
,
124
,
/* 560 */
802
,
1200
,
330
,
9
,
17
,
799
,
16
,
800
,
80
,
257
,
/* 570 */
883
,
369
,
368
,
1197
,
19
,
131
,
18
,
130
,
21
,
1196
,
/* 580 */
20
,
144
,
143
,
258
,
378
,
765
,
185
,
163
,
290
,
165
,
/* 590 */
166
,
1109
,
1137
,
26
,
1148
,
1145
,
1130
,
1146
,
297
,
1105
,
/* 600 */
1150
,
168
,
173
,
315
,
1180
,
1179
,
1178
,
1177
,
184
,
186
,
/* 610 */
1103
,
1275
,
159
,
187
,
188
,
1018
,
332
,
333
,
396
,
334
,
/* 620 */
337
,
338
,
827
,
69
,
216
,
65
,
349
,
81
,
27
,
308
,
/* 630 */
1012
,
253
,
310
,
361
,
312
,
1269
,
122
,
1268
,
1265
,
194
,
/* 640 */
370
,
1127
,
1261
,
128
,
1260
,
1257
,
195
,
901
,
1038
,
66
,
/* 650 */
78
,
174
,
324
,
61
,
28
,
70
,
320
,
318
,
175
,
217
,
/* 660 */
1000
,
138
,
998
,
140
,
141
,
996
,
995
,
281
,
206
,
178
,
/* 670 */
207
,
992
,
991
,
990
,
316
,
989
,
988
,
987
,
986
,
210
,
/* 680 */
212
,
314
,
978
,
214
,
975
,
215
,
311
,
971
,
307
,
88
,
/* 690 */
336
,
162
,
388
,
84
,
295
,
1107
,
91
,
96
,
313
,
133
,
/* 700 */
380
,
381
,
382
,
383
,
384
,
82
,
385
,
386
,
164
,
950
,
/* 710 */
264
,
331
,
283
,
284
,
949
,
286
,
239
,
287
,
948
,
931
,
/* 720 */
240
,
930
,
1017
,
1016
,
116
,
117
,
291
,
296
,
11
,
326
,
/* 730 */
94
,
804
,
298
,
52
,
97
,
836
,
994
,
993
,
74
,
198
,
/* 740 */
985
,
1039
,
200
,
196
,
197
,
199
,
201
,
202
,
153
,
2
,
/* 750 */
154
,
325
,
1076
,
155
,
984
,
1040
,
156
,
834
,
53
,
179
,
/* 760 */
180
,
176
,
177
,
183
,
181
,
977
,
4
,
976
,
833
,
1086
,
/* 770 */
830
,
829
,
75
,
172
,
838
,
170
,
255
,
849
,
171
,
63
,
/* 780 */
843
,
98
,
355
,
845
,
99
,
317
,
321
,
105
,
22
,
64
,
/* 790 */
23
,
12
,
49
,
328
,
56
,
108
,
50
,
110
,
113
,
696
,
/* 800 */
731
,
112
,
729
,
728
,
727
,
57
,
114
,
725
,
724
,
723
,
/* 810 */
720
,
686
,
347
,
118
,
7
,
922
,
920
,
900
,
923
,
899
,
/* 820 */
921
,
358
,
8
,
902
,
359
,
72
,
121
,
60
,
123
,
73
,
/* 830 */
768
,
127
,
798
,
767
,
129
,
764
,
712
,
710
,
702
,
708
,
/* 840 */
704
,
706
,
797
,
700
,
698
,
734
,
733
,
732
,
730
,
726
,
/* 850 */
722
,
721
,
205
,
684
,
649
,
955
,
658
,
656
,
954
,
397
,
/* 860 */
954
,
954
,
954
,
954
,
954
,
954
,
954
,
954
,
954
,
954
,
/* 870 */
954
,
399
,
};
static
const
YYCODETYPE
yy_lookahead
[]
=
{
/* 0 */
21
4
,
1
,
206
,
206
,
204
,
205
,
213
,
5
,
1
,
9
,
/* 10 */
28
5
,
5
,
287
,
288
,
14
,
15
,
9
,
17
,
18
,
206
,
/* 20 */
2
07
,
21
,
22
,
23
,
24
,
0
,
206
,
27
,
28
,
29
,
/* 30 */
30
,
31
,
32
,
24
7
,
248
,
249
,
250
,
37
,
38
,
37
,
/* 40 */
38
,
41
,
42
,
43
,
14
,
15
,
1
,
17
,
18
,
253
,
/* 50 */
2
14
,
21
,
22
,
23
,
24
,
277
,
256
,
27
,
28
,
29
,
/* 60 */
30
,
31
,
32
,
28
4
,
285
,
287
,
287
,
37
,
38
,
277
,
/* 70 */
27
7
,
41
,
42
,
43
,
274
,
278
,
66
,
67
,
68
,
287
,
/* 80 */
28
7
,
289
,
289
,
73
,
248
,
75
,
76
,
77
,
14
,
15
,
/* 90 */
90
,
17
,
18
,
86
,
84
,
21
,
22
,
23
,
24
,
2
79
,
/* 100 */
28
0
,
27
,
28
,
29
,
30
,
31
,
32
,
88
,
41
,
42
,
/* 110 */
43
,
37
,
38
,
88
,
277
,
41
,
42
,
43
,
14
,
15
,
/* 120 */
90
,
17
,
18
,
20
6
,
287
,
21
,
22
,
23
,
24
,
206
,
/* 130 */
1
,
27
,
28
,
29
,
30
,
31
,
32
,
5
,
9
,
7
,
/* 140 */
2
17
,
37
,
38
,
1
,
277
,
41
,
42
,
43
,
86
,
14
,
/* 150 */
15
,
9
,
17
,
18
,
28
7
,
94
,
21
,
22
,
23
,
24
,
/* 160 */
2
59
,
87
,
27
,
28
,
29
,
30
,
31
,
32
,
251
,
69
,
/* 170 */
70
,
71
,
37
,
38
,
20
6
,
258
,
41
,
42
,
43
,
66
,
/* 180 */
67
,
68
,
120
,
121
,
228
,
22
9
,
73
,
74
,
75
,
76
,
/* 0 */
21
5
,
1
,
207
,
208
,
205
,
206
,
214
,
257
,
1
,
9
,
/* 10 */
28
6
,
5
,
288
,
289
,
14
,
15
,
9
,
17
,
18
,
229
,
/* 20 */
2
30
,
21
,
22
,
23
,
24
,
275
,
207
,
27
,
28
,
29
,
/* 30 */
30
,
31
,
32
,
24
8
,
249
,
250
,
251
,
37
,
38
,
278
,
/* 40 */
278
,
41
,
42
,
43
,
14
,
15
,
1
,
17
,
18
,
288
,
/* 50 */
2
88
,
21
,
22
,
23
,
24
,
278
,
257
,
27
,
28
,
29
,
/* 60 */
30
,
31
,
32
,
28
5
,
286
,
288
,
288
,
37
,
38
,
278
,
/* 70 */
27
8
,
41
,
42
,
43
,
275
,
5
,
66
,
67
,
68
,
288
,
/* 80 */
28
8
,
290
,
290
,
73
,
260
,
75
,
76
,
77
,
14
,
15
,
/* 90 */
90
,
17
,
18
,
86
,
84
,
21
,
22
,
23
,
24
,
2
80
,
/* 100 */
28
1
,
27
,
28
,
29
,
30
,
31
,
32
,
37
,
38
,
88
,
/* 110 */
265
,
37
,
38
,
207
,
278
,
41
,
42
,
43
,
14
,
15
,
/* 120 */
90
,
17
,
18
,
20
7
,
288
,
21
,
22
,
23
,
24
,
284
,
/* 130 */
278
,
27
,
28
,
29
,
30
,
31
,
32
,
41
,
42
,
43
,
/* 140 */
2
88
,
37
,
38
,
1
,
278
,
41
,
42
,
43
,
86
,
14
,
/* 150 */
15
,
9
,
17
,
18
,
28
8
,
101
,
21
,
22
,
23
,
24
,
/* 160 */
2
60
,
87
,
27
,
28
,
29
,
30
,
31
,
32
,
252
,
69
,
/* 170 */
70
,
71
,
37
,
38
,
20
7
,
259
,
41
,
42
,
43
,
66
,
/* 180 */
67
,
68
,
120
,
121
,
130
,
27
9
,
73
,
74
,
75
,
76
,
/* 190 */
77
,
49
,
50
,
51
,
52
,
53
,
54
,
55
,
56
,
57
,
/* 200 */
58
,
59
,
60
,
61
,
62
,
63
,
25
2
,
65
,
15
,
259
,
/* 210 */
17
,
18
,
47
,
259
,
21
,
22
,
23
,
24
,
150
,
251
,
/* 220 */
27
,
28
,
29
,
30
,
31
,
32
,
25
8
,
159
,
160
,
64
,
/* 230 */
37
,
38
,
2
15
,
216
,
41
,
42
,
43
,
277
,
17
,
18
,
/* 240 */
72
,
264
,
21
,
22
,
23
,
24
,
259
,
287
,
27
,
28
,
/* 250 */
29
,
30
,
31
,
32
,
5
,
282
,
7
,
125
,
37
,
38
,
/* 260 */
2
83
,
86
,
41
,
42
,
43
,
102
,
103
,
104
,
105
,
106
,
/* 200 */
58
,
59
,
60
,
61
,
62
,
63
,
25
3
,
65
,
15
,
207
,
/* 210 */
17
,
18
,
94
,
260
,
21
,
22
,
23
,
24
,
150
,
252
,
/* 220 */
27
,
28
,
29
,
30
,
31
,
32
,
25
9
,
159
,
160
,
1
,
/* 230 */
37
,
38
,
2
60
,
253
,
41
,
42
,
43
,
9
,
17
,
18
,
/* 240 */
260
,
87
,
21
,
22
,
23
,
24
,
278
,
278
,
27
,
28
,
/* 250 */
29
,
30
,
31
,
32
,
252
,
101
,
288
,
288
,
37
,
38
,
/* 260 */
2
07
,
259
,
41
,
42
,
43
,
102
,
103
,
104
,
105
,
106
,
/* 270 */
107
,
108
,
109
,
110
,
111
,
112
,
113
,
114
,
115
,
116
,
/* 280 */
48
,
206
,
230
,
231
,
232
,
233
,
234
,
235
,
236
,
237
,
/* 290 */
238
,
239
,
240
,
241
,
242
,
243
,
244
,
65
,
277
,
1
,
/* 300 */
2
,
126
,
282
,
5
,
72
,
7
,
16
,
9
,
287
,
256
,
/* 310 */
78
,
79
,
80
,
81
,
254
,
1
,
2
,
85
,
86
,
5
,
/* 320 */
152
,
7
,
154
,
9
,
156
,
157
,
251
,
274
,
206
,
29
,
/* 330 */
30
,
31
,
32
,
258
,
277
,
37
,
38
,
37
,
38
,
41
,
/* 340 */
213
,
41
,
42
,
43
,
287
,
206
,
66
,
67
,
68
,
246
,
/* 350 */
256
,
37
,
38
,
73
,
74
,
75
,
76
,
77
,
126
,
2
,
/* 360 */
72
,
277
,
5
,
252
,
7
,
214
,
9
,
213
,
274
,
277
,
/* 370 */
259
,
287
,
92
,
251
,
125
,
102
,
246
,
104
,
105
,
287
,
/* 380 */
258
,
149
,
109
,
151
,
86
,
206
,
113
,
5
,
115
,
116
,
/* 390 */
158
,
9
,
277
,
25
,
37
,
38
,
230
,
258
,
232
,
233
,
/* 400 */
86
,
250
,
287
,
237
,
277
,
206
,
206
,
241
,
206
,
243
,
/* 410 */
244
,
206
,
206
,
123
,
287
,
47
,
289
,
277
,
101
,
37
,
/* 420 */
38
,
123
,
124
,
125
,
37
,
38
,
206
,
287
,
41
,
42
,
/* 430 */
43
,
277
,
64
,
66
,
67
,
68
,
82
,
123
,
124
,
125
,
/* 440 */
152
,
287
,
154
,
289
,
156
,
157
,
148
,
206
,
94
,
206
,
/* 450 */
251
,
251
,
41
,
251
,
86
,
277
,
251
,
258
,
258
,
277
,
/* 460 */
258
,
144
,
148
,
258
,
277
,
287
,
277
,
277
,
206
,
287
,
/* 470 */
80
,
251
,
277
,
277
,
287
,
277
,
287
,
287
,
258
,
217
,
/* 480 */
123
,
124
,
287
,
287
,
87
,
287
,
277
,
87
,
277
,
206
,
/* 490 */
252
,
206
,
251
,
277
,
251
,
277
,
287
,
259
,
287
,
258
,
/* 500 */
217
,
258
,
217
,
287
,
212
,
287
,
124
,
132
,
133
,
212
,
/* 510 */
285
,
219
,
287
,
285
,
212
,
287
,
219
,
260
,
210
,
211
,
/* 520 */
87
,
219
,
101
,
87
,
127
,
37
,
38
,
127
,
87
,
87
,
/* 530 */
140
,
101
,
275
,
87
,
101
,
87
,
87
,
101
,
87
,
87
,
/* 540 */
129
,
86
,
101
,
101
,
87
,
87
,
25
,
101
,
1
,
101
,
/* 550 */
101
,
130
,
101
,
101
,
153
,
87
,
155
,
86
,
101
,
101
,
/* 560 */
153
,
153
,
155
,
155
,
5
,
5
,
7
,
7
,
47
,
101
,
/* 570 */
37
,
38
,
246
,
153
,
119
,
155
,
146
,
153
,
153
,
155
,
/* 580 */
155
,
82
,
83
,
246
,
246
,
246
,
246
,
206
,
41
,
118
,
/* 590 */
206
,
206
,
276
,
286
,
206
,
206
,
286
,
206
,
256
,
256
,
/* 600 */
206
,
206
,
206
,
256
,
206
,
286
,
286
,
261
,
206
,
206
,
/* 610 */
206
,
206
,
206
,
64
,
125
,
206
,
206
,
281
,
206
,
206
,
/* 620 */
206
,
206
,
206
,
206
,
206
,
206
,
281
,
272
,
206
,
206
,
/* 630 */
281
,
281
,
206
,
206
,
206
,
206
,
143
,
206
,
206
,
273
,
/* 640 */
206
,
206
,
145
,
206
,
206
,
206
,
206
,
138
,
271
,
206
,
/* 650 */
206
,
206
,
142
,
206
,
141
,
269
,
206
,
134
,
136
,
206
,
/* 660 */
206
,
135
,
206
,
270
,
137
,
206
,
206
,
206
,
206
,
206
,
/* 670 */
206
,
206
,
206
,
206
,
131
,
206
,
206
,
147
,
206
,
206
,
/* 680 */
206
,
206
,
206
,
206
,
206
,
206
,
122
,
93
,
208
,
208
,
/* 690 */
208
,
208
,
208
,
117
,
55
,
100
,
99
,
96
,
98
,
59
,
/* 700 */
208
,
97
,
95
,
208
,
88
,
5
,
208
,
5
,
5
,
5
,
/* 710 */
5
,
161
,
208
,
208
,
161
,
104
,
103
,
214
,
218
,
218
,
/* 720 */
214
,
150
,
119
,
127
,
86
,
101
,
208
,
128
,
87
,
86
,
/* 730 */
101
,
87
,
208
,
225
,
227
,
221
,
224
,
226
,
222
,
220
,
/* 740 */
223
,
209
,
125
,
209
,
208
,
208
,
255
,
245
,
209
,
229
,
/* 750 */
209
,
101
,
266
,
268
,
267
,
265
,
208
,
263
,
262
,
208
,
/* 760 */
245
,
215
,
210
,
5
,
5
,
86
,
86
,
125
,
87
,
87
,
/* 770 */
86
,
101
,
87
,
86
,
1
,
87
,
86
,
86
,
101
,
47
,
/* 780 */
1
,
86
,
90
,
86
,
139
,
139
,
119
,
101
,
120
,
82
,
/* 790 */
91
,
90
,
86
,
74
,
5
,
9
,
5
,
5
,
5
,
91
,
/* 800 */
90
,
5
,
5
,
5
,
5
,
89
,
16
,
82
,
86
,
9
,
/* 810 */
9
,
87
,
9
,
87
,
9
,
86
,
123
,
63
,
155
,
17
,
/* 820 */
155
,
101
,
28
,
125
,
17
,
5
,
155
,
155
,
5
,
87
,
/* 830 */
5
,
5
,
5
,
5
,
125
,
5
,
5
,
5
,
5
,
5
,
/* 840 */
5
,
5
,
5
,
5
,
5
,
5
,
101
,
64
,
0
,
89
,
/* 850 */
9
,
22
,
9
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 860 */
290
,
290
,
290
,
290
,
22
,
290
,
290
,
290
,
290
,
290
,
/* 870 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 880 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 890 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 900 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 910 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 920 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 930 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 940 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 950 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 960 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 970 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 980 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 990 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 1000 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 1010 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 1020 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 1030 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 1040 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 1050 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 1060 */
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 280 */
231
,
232
,
233
,
234
,
235
,
236
,
237
,
238
,
239
,
240
,
/* 290 */
241
,
242
,
243
,
244
,
245
,
1
,
2
,
48
,
0
,
5
,
/* 300 */
278
,
7
,
86
,
9
,
2
,
252
,
82
,
5
,
283
,
7
,
/* 310 */
288
,
9
,
259
,
278
,
65
,
278
,
1
,
2
,
94
,
253
,
/* 320 */
5
,
72
,
7
,
288
,
9
,
288
,
260
,
78
,
79
,
80
,
/* 330 */
81
,
37
,
38
,
261
,
85
,
86
,
66
,
67
,
68
,
37
,
/* 340 */
38
,
278
,
126
,
73
,
74
,
75
,
76
,
77
,
276
,
87
,
/* 350 */
5
,
288
,
37
,
38
,
9
,
257
,
41
,
29
,
30
,
31
,
/* 360 */
32
,
72
,
92
,
101
,
207
,
37
,
38
,
72
,
278
,
41
,
/* 370 */
42
,
43
,
283
,
275
,
102
,
126
,
104
,
105
,
288
,
278
,
/* 380 */
86
,
109
,
37
,
38
,
207
,
113
,
88
,
115
,
116
,
288
,
/* 390 */
37
,
38
,
214
,
25
,
41
,
42
,
43
,
5
,
149
,
7
,
/* 400 */
151
,
86
,
5
,
207
,
7
,
207
,
214
,
158
,
207
,
252
,
/* 410 */
286
,
162
,
288
,
207
,
278
,
47
,
259
,
123
,
124
,
125
,
/* 420 */
231
,
213
,
233
,
234
,
288
,
123
,
124
,
238
,
220
,
252
,
/* 430 */
41
,
242
,
64
,
244
,
245
,
247
,
259
,
207
,
123
,
124
,
/* 440 */
125
,
152
,
148
,
154
,
207
,
156
,
157
,
152
,
252
,
154
,
/* 450 */
252
,
156
,
157
,
252
,
86
,
259
,
278
,
259
,
252
,
215
,
/* 460 */
259
,
132
,
133
,
148
,
278
,
259
,
288
,
207
,
290
,
124
,
/* 470 */
278
,
66
,
67
,
68
,
288
,
278
,
215
,
278
,
278
,
80
,
/* 480 */
288
,
278
,
290
,
278
,
254
,
288
,
207
,
288
,
288
,
252
,
/* 490 */
278
,
288
,
207
,
288
,
207
,
251
,
259
,
218
,
207
,
101
,
/* 500 */
288
,
213
,
87
,
218
,
286
,
218
,
288
,
87
,
220
,
218
,
/* 510 */
249
,
37
,
38
,
213
,
87
,
216
,
217
,
125
,
129
,
259
,
/* 520 */
220
,
87
,
125
,
211
,
212
,
101
,
47
,
87
,
101
,
86
,
/* 530 */
1
,
87
,
87
,
25
,
87
,
101
,
87
,
87
,
87
,
140
,
/* 540 */
16
,
101
,
127
,
64
,
146
,
101
,
101
,
127
,
101
,
87
,
/* 550 */
101
,
101
,
101
,
86
,
153
,
47
,
155
,
153
,
5
,
155
,
/* 560 */
7
,
247
,
119
,
101
,
153
,
5
,
155
,
7
,
144
,
247
,
/* 570 */
41
,
37
,
38
,
247
,
153
,
153
,
155
,
155
,
153
,
247
,
/* 580 */
155
,
82
,
83
,
247
,
247
,
118
,
255
,
207
,
207
,
207
,
/* 590 */
207
,
207
,
207
,
277
,
207
,
207
,
257
,
207
,
257
,
257
,
/* 600 */
207
,
207
,
207
,
207
,
287
,
287
,
287
,
287
,
262
,
207
,
/* 610 */
207
,
263
,
64
,
207
,
207
,
207
,
207
,
207
,
88
,
207
,
/* 620 */
207
,
207
,
125
,
207
,
207
,
207
,
207
,
143
,
147
,
282
,
/* 630 */
207
,
282
,
282
,
207
,
282
,
207
,
207
,
207
,
207
,
207
,
/* 640 */
207
,
274
,
207
,
207
,
207
,
207
,
207
,
123
,
207
,
207
,
/* 650 */
145
,
273
,
138
,
207
,
142
,
207
,
141
,
136
,
272
,
207
,
/* 660 */
207
,
207
,
207
,
207
,
207
,
207
,
207
,
207
,
207
,
269
,
/* 670 */
207
,
207
,
207
,
207
,
135
,
207
,
207
,
207
,
207
,
207
,
/* 680 */
207
,
134
,
207
,
207
,
207
,
207
,
137
,
207
,
131
,
122
,
/* 690 */
93
,
209
,
117
,
210
,
209
,
209
,
209
,
209
,
209
,
100
,
/* 700 */
99
,
55
,
96
,
98
,
59
,
209
,
97
,
95
,
130
,
5
,
/* 710 */
209
,
209
,
161
,
5
,
5
,
161
,
209
,
5
,
5
,
104
,
/* 720 */
209
,
103
,
219
,
219
,
215
,
215
,
150
,
127
,
86
,
119
,
/* 730 */
128
,
87
,
101
,
86
,
101
,
87
,
209
,
209
,
101
,
222
,
/* 740 */
209
,
228
,
223
,
227
,
226
,
225
,
224
,
221
,
210
,
216
,
/* 750 */
210
,
256
,
246
,
210
,
209
,
230
,
210
,
125
,
264
,
268
,
/* 760 */
267
,
271
,
270
,
263
,
266
,
209
,
211
,
209
,
125
,
246
,
/* 770 */
5
,
5
,
86
,
101
,
87
,
86
,
1
,
87
,
86
,
101
,
/* 780 */
87
,
86
,
47
,
87
,
86
,
86
,
1
,
90
,
139
,
101
,
/* 790 */
139
,
86
,
86
,
119
,
91
,
120
,
86
,
82
,
74
,
5
,
/* 800 */
9
,
90
,
5
,
5
,
5
,
91
,
90
,
5
,
5
,
5
,
/* 810 */
5
,
89
,
16
,
82
,
86
,
9
,
9
,
87
,
9
,
87
,
/* 820 */
9
,
28
,
86
,
123
,
63
,
17
,
155
,
101
,
155
,
17
,
/* 830 */
5
,
155
,
125
,
5
,
155
,
87
,
5
,
5
,
5
,
5
,
/* 840 */
5
,
5
,
125
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
/* 850 */
5
,
5
,
101
,
89
,
64
,
0
,
9
,
9
,
291
,
22
,
/* 860 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 870 */
291
,
22
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 880 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 890 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 900 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 910 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 920 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 930 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 940 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 950 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 960 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 970 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 980 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 990 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 1000 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 1010 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 1020 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 1030 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 1040 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 1050 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 1060 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
291
,
/* 1070 */
291
,
291
,
291
,
291
,
291
,
291
,
291
,
};
#define YY_SHIFT_COUNT (
397
)
#define YY_SHIFT_COUNT (
402
)
#define YY_SHIFT_MIN (0)
#define YY_SHIFT_MAX (8
48
)
#define YY_SHIFT_MAX (8
55
)
static
const
unsigned
short
int
yy_shift_ofst
[]
=
{
/* 0 */
232
,
163
,
163
,
273
,
273
,
19
,
298
,
314
,
314
,
314
,
/* 10 */
7
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 20 */
129
,
129
,
45
,
45
,
0
,
142
,
314
,
314
,
314
,
314
,
/* 30 */
314
,
314
,
314
,
314
,
314
,
314
,
314
,
314
,
314
,
314
,
/* 40 */
314
,
314
,
314
,
314
,
314
,
314
,
314
,
314
,
357
,
357
,
/* 50 */
357
,
175
,
175
,
375
,
129
,
25
,
129
,
129
,
129
,
129
,
/* 60 */
129
,
354
,
19
,
45
,
45
,
61
,
61
,
6
,
865
,
865
,
/* 70 */
865
,
357
,
357
,
357
,
382
,
382
,
2
,
2
,
2
,
2
,
/* 80 */
2
,
2
,
62
,
2
,
129
,
129
,
129
,
129
,
129
,
411
,
/* 90 */
129
,
129
,
129
,
175
,
175
,
129
,
129
,
129
,
129
,
390
,
/* 100 */
390
,
390
,
390
,
421
,
175
,
129
,
129
,
129
,
129
,
129
,
/* 110 */
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 120 */
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 130 */
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 140 */
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 150 */
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 160 */
129
,
549
,
549
,
549
,
549
,
489
,
489
,
489
,
489
,
549
,
/* 170 */
493
,
497
,
509
,
510
,
513
,
522
,
526
,
523
,
527
,
543
,
/* 180 */
530
,
564
,
549
,
549
,
549
,
594
,
594
,
576
,
19
,
19
,
/* 190 */
549
,
549
,
595
,
597
,
639
,
601
,
600
,
640
,
604
,
607
,
/* 200 */
576
,
6
,
549
,
549
,
616
,
616
,
549
,
616
,
549
,
616
,
/* 210 */
549
,
549
,
865
,
865
,
30
,
74
,
104
,
104
,
104
,
135
,
/* 220 */
193
,
221
,
280
,
300
,
300
,
300
,
300
,
300
,
300
,
10
,
/* 230 */
113
,
387
,
387
,
387
,
387
,
168
,
288
,
368
,
68
,
67
,
/* 240 */
67
,
132
,
249
,
100
,
367
,
433
,
397
,
400
,
488
,
436
,
/* 250 */
441
,
442
,
165
,
430
,
317
,
446
,
448
,
449
,
451
,
452
,
/* 260 */
455
,
457
,
458
,
521
,
547
,
290
,
468
,
401
,
407
,
408
,
/* 270 */
559
,
560
,
533
,
420
,
424
,
471
,
425
,
499
,
700
,
550
,
/* 280 */
702
,
703
,
553
,
704
,
705
,
611
,
613
,
571
,
596
,
603
,
/* 290 */
638
,
599
,
641
,
643
,
624
,
629
,
644
,
650
,
617
,
642
,
/* 300 */
758
,
759
,
679
,
681
,
680
,
682
,
684
,
685
,
670
,
687
,
/* 310 */
688
,
690
,
773
,
691
,
677
,
645
,
732
,
779
,
686
,
646
,
/* 320 */
692
,
695
,
603
,
697
,
667
,
706
,
668
,
707
,
699
,
701
,
/* 330 */
719
,
789
,
708
,
710
,
786
,
791
,
792
,
793
,
796
,
797
,
/* 340 */
798
,
799
,
716
,
790
,
725
,
800
,
801
,
722
,
724
,
726
,
/* 350 */
803
,
805
,
693
,
729
,
794
,
754
,
802
,
663
,
665
,
720
,
/* 360 */
720
,
720
,
720
,
698
,
709
,
807
,
671
,
672
,
720
,
720
,
/* 370 */
720
,
820
,
823
,
742
,
720
,
825
,
826
,
827
,
828
,
830
,
/* 380 */
831
,
832
,
833
,
834
,
835
,
836
,
837
,
838
,
839
,
840
,
/* 390 */
745
,
760
,
841
,
829
,
843
,
842
,
783
,
848
,
/* 0 */
249
,
163
,
163
,
272
,
272
,
21
,
315
,
294
,
294
,
294
,
/* 10 */
7
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
/* 20 */
228
,
228
,
45
,
45
,
0
,
142
,
294
,
294
,
294
,
294
,
/* 30 */
294
,
294
,
294
,
294
,
294
,
294
,
294
,
294
,
294
,
294
,
/* 40 */
294
,
294
,
294
,
294
,
294
,
294
,
294
,
294
,
302
,
302
,
/* 50 */
302
,
216
,
216
,
329
,
228
,
298
,
228
,
228
,
228
,
228
,
/* 60 */
228
,
224
,
21
,
45
,
45
,
118
,
118
,
6
,
872
,
872
,
/* 70 */
872
,
302
,
302
,
302
,
345
,
345
,
70
,
70
,
70
,
70
,
/* 80 */
70
,
70
,
62
,
70
,
228
,
228
,
228
,
228
,
228
,
228
,
/* 90 */
389
,
228
,
228
,
228
,
216
,
216
,
228
,
228
,
228
,
228
,
/* 100 */
399
,
399
,
399
,
399
,
54
,
216
,
228
,
228
,
228
,
228
,
/* 110 */
228
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
/* 120 */
228
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
/* 130 */
228
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
/* 140 */
228
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
/* 150 */
228
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
228
,
/* 160 */
228
,
228
,
481
,
548
,
530
,
548
,
548
,
548
,
548
,
497
,
/* 170 */
497
,
497
,
497
,
548
,
484
,
505
,
514
,
512
,
515
,
521
,
/* 180 */
539
,
547
,
549
,
557
,
481
,
567
,
548
,
548
,
548
,
597
,
/* 190 */
597
,
575
,
21
,
21
,
548
,
548
,
599
,
601
,
646
,
606
,
/* 200 */
605
,
645
,
609
,
612
,
575
,
6
,
548
,
548
,
530
,
530
,
/* 210 */
548
,
530
,
548
,
530
,
548
,
548
,
872
,
872
,
30
,
74
,
/* 220 */
104
,
104
,
104
,
135
,
193
,
221
,
270
,
328
,
328
,
328
,
/* 230 */
328
,
328
,
328
,
10
,
113
,
353
,
353
,
353
,
353
,
289
,
/* 240 */
295
,
368
,
68
,
96
,
96
,
392
,
397
,
100
,
405
,
154
,
/* 250 */
415
,
420
,
474
,
262
,
427
,
434
,
479
,
398
,
424
,
440
,
/* 260 */
444
,
445
,
447
,
449
,
443
,
450
,
451
,
508
,
529
,
524
,
/* 270 */
462
,
401
,
404
,
411
,
553
,
560
,
534
,
421
,
422
,
467
,
/* 280 */
425
,
499
,
578
,
704
,
551
,
708
,
709
,
554
,
712
,
713
,
/* 290 */
615
,
618
,
576
,
600
,
610
,
642
,
602
,
644
,
647
,
631
,
/* 300 */
633
,
648
,
637
,
632
,
643
,
765
,
766
,
686
,
687
,
689
,
/* 310 */
690
,
692
,
693
,
672
,
695
,
696
,
698
,
775
,
699
,
678
,
/* 320 */
649
,
735
,
785
,
688
,
651
,
697
,
705
,
610
,
706
,
674
,
/* 330 */
710
,
675
,
715
,
703
,
711
,
724
,
794
,
714
,
716
,
791
,
/* 340 */
797
,
798
,
799
,
802
,
803
,
804
,
805
,
722
,
796
,
731
,
/* 350 */
806
,
807
,
728
,
730
,
732
,
809
,
811
,
700
,
736
,
793
,
/* 360 */
761
,
808
,
671
,
673
,
726
,
726
,
726
,
726
,
707
,
717
,
/* 370 */
812
,
676
,
679
,
726
,
726
,
726
,
825
,
828
,
748
,
726
,
/* 380 */
831
,
832
,
833
,
834
,
835
,
836
,
838
,
839
,
840
,
841
,
/* 390 */
842
,
843
,
844
,
845
,
846
,
751
,
764
,
847
,
837
,
848
,
/* 400 */
849
,
790
,
855
,
};
#define YY_REDUCE_COUNT (21
3
)
#define YY_REDUCE_MIN (-27
5
)
#define YY_REDUCE_MAX (55
2
)
#define YY_REDUCE_COUNT (21
7
)
#define YY_REDUCE_MIN (-27
6
)
#define YY_REDUCE_MAX (55
8
)
static
const
short
yy_reduce_ofst
[]
=
{
/* 0 */
-
20
0
,
52
,
52
,
166
,
166
,
-
214
,
-
207
,
127
,
154
,
-
208
,
/* 10 */
-
18
0
,
-
83
,
-
32
,
75
,
122
,
199
,
200
,
202
,
205
,
220
,
/* 20 */
2
41
,
243
,
-
275
,
-
221
,
-
203
,
-
187
,
-
222
,
-
163
,
-
133
,
-
40
,
/* 30 */
21
,
57
,
84
,
92
,
115
,
140
,
178
,
182
,
187
,
189
,
/* 40 */
1
90
,
195
,
196
,
198
,
209
,
211
,
216
,
218
,
-
46
,
111
,
/* 50 */
238
,
53
,
94
,
-
23
,
-
204
,
151
,
-
77
,
262
,
283
,
285
,
/* 60 */
139
,
292
,
-
164
,
225
,
228
,
297
,
302
,
-
44
,
257
,
17
,
/* 70 */
3
08
,
-
99
,
-
50
,
-
13
,
-
27
,
20
,
103
,
130
,
326
,
337
,
/* 80 */
33
8
,
339
,
60
,
340
,
179
,
206
,
381
,
384
,
385
,
316
,
/* 90 */
3
88
,
389
,
391
,
342
,
343
,
394
,
395
,
396
,
398
,
307
,
/* 100 */
31
0
,
319
,
320
,
346
,
347
,
402
,
403
,
404
,
405
,
406
,
/* 110 */
40
9
,
410
,
412
,
413
,
414
,
415
,
416
,
417
,
418
,
419
,
/* 120 */
42
2
,
423
,
426
,
427
,
428
,
429
,
431
,
432
,
434
,
435
,
/* 130 */
437
,
438
,
439
,
44
0
,
443
,
444
,
445
,
447
,
450
,
453
,
/* 140 */
45
4
,
456
,
459
,
460
,
461
,
462
,
463
,
464
,
465
,
466
,
/* 150 */
46
7
,
469
,
470
,
472
,
473
,
474
,
475
,
476
,
477
,
478
,
/* 160 */
47
9
,
480
,
481
,
482
,
483
,
336
,
345
,
349
,
350
,
484
,
/* 170 */
3
66
,
355
,
377
,
393
,
386
,
485
,
487
,
486
,
490
,
494
,
/* 180 */
49
6
,
491
,
492
,
495
,
498
,
500
,
501
,
502
,
503
,
506
,
/* 190 */
504
,
50
5
,
507
,
511
,
508
,
514
,
512
,
516
,
517
,
519
,
/* 200 */
5
15
,
520
,
518
,
524
,
532
,
534
,
536
,
539
,
537
,
541
,
/* 210 */
5
48
,
551
,
546
,
552
,
/* 0 */
-
20
1
,
49
,
49
,
189
,
189
,
-
215
,
-
208
,
178
,
192
,
-
209
,
/* 10 */
-
18
1
,
-
84
,
-
33
,
2
,
53
,
157
,
177
,
196
,
198
,
201
,
/* 20 */
2
06
,
237
,
-
276
,
-
222
,
-
94
,
-
205
,
-
239
,
-
238
,
-
223
,
-
164
,
/* 30 */
-
148
,
-
134
,
-
32
,
-
31
,
22
,
35
,
37
,
63
,
90
,
101
,
/* 40 */
1
36
,
186
,
197
,
199
,
200
,
203
,
205
,
212
,
-
47
,
-
20
,
/* 50 */
66
,
-
250
,
98
,
-
155
,
230
,
244
,
279
,
285
,
287
,
291
,
/* 60 */
260
,
208
,
261
,
124
,
218
,
288
,
300
,
-
210
,
72
,
299
,
/* 70 */
3
12
,
-
176
,
-
100
,
-
28
,
25
,
89
,
188
,
314
,
322
,
326
,
/* 80 */
33
2
,
336
,
331
,
337
,
380
,
381
,
382
,
383
,
384
,
385
,
/* 90 */
3
16
,
387
,
388
,
390
,
339
,
341
,
393
,
394
,
395
,
396
,
/* 100 */
31
7
,
318
,
319
,
320
,
346
,
342
,
402
,
403
,
406
,
407
,
/* 110 */
40
8
,
409
,
410
,
412
,
413
,
414
,
416
,
417
,
418
,
419
,
/* 120 */
42
3
,
426
,
428
,
429
,
430
,
431
,
432
,
433
,
435
,
436
,
/* 130 */
437
,
438
,
439
,
44
1
,
442
,
446
,
448
,
452
,
453
,
454
,
/* 140 */
45
5
,
456
,
457
,
458
,
459
,
460
,
461
,
463
,
464
,
465
,
/* 150 */
46
6
,
468
,
469
,
470
,
471
,
472
,
473
,
475
,
476
,
477
,
/* 160 */
47
8
,
480
,
348
,
482
,
483
,
485
,
486
,
487
,
488
,
347
,
/* 170 */
3
49
,
350
,
352
,
489
,
367
,
378
,
386
,
490
,
492
,
400
,
/* 180 */
49
1
,
493
,
498
,
494
,
500
,
495
,
496
,
501
,
502
,
503
,
/* 190 */
504
,
50
6
,
509
,
510
,
507
,
511
,
513
,
516
,
518
,
517
,
/* 200 */
5
20
,
519
,
522
,
526
,
523
,
525
,
527
,
528
,
538
,
540
,
/* 210 */
5
31
,
543
,
545
,
546
,
556
,
558
,
533
,
555
,
};
static
const
YYACTIONTYPE
yy_default
[]
=
{
/* 0 */
945
,
1068
,
1007
,
1078
,
994
,
1004
,
1246
,
1246
,
1246
,
1246
,
/* 10 */
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 20 */
945
,
945
,
945
,
945
,
1132
,
965
,
945
,
945
,
945
,
945
,
/* 30 */
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 40 */
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 50 */
945
,
945
,
945
,
1156
,
945
,
1004
,
945
,
945
,
945
,
945
,
/* 60 */
945
,
1014
,
1004
,
945
,
945
,
1014
,
1014
,
945
,
1127
,
1052
,
/* 70 */
1070
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 80 */
945
,
945
,
1099
,
945
,
945
,
945
,
945
,
945
,
945
,
1134
,
/* 90 */
1140
,
1137
,
945
,
945
,
945
,
1142
,
945
,
945
,
945
,
1178
,
/* 100 */
1178
,
1178
,
1178
,
1125
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 110 */
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 120 */
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 130 */
945
,
945
,
945
,
945
,
945
,
945
,
945
,
992
,
945
,
990
,
/* 140 */
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 150 */
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 160 */
963
,
967
,
967
,
967
,
967
,
945
,
945
,
945
,
945
,
967
,
/* 170 */
1187
,
1191
,
1168
,
1185
,
1179
,
1163
,
1161
,
1159
,
1167
,
1152
,
/* 180 */
1195
,
1101
,
967
,
967
,
967
,
1012
,
1012
,
1008
,
1004
,
1004
,
/* 190 */
967
,
967
,
1030
,
1028
,
1026
,
1018
,
1024
,
1020
,
1022
,
1016
,
/* 200 */
995
,
945
,
967
,
967
,
1002
,
1002
,
967
,
1002
,
967
,
1002
,
/* 210 */
967
,
967
,
1052
,
1070
,
1245
,
945
,
1196
,
1186
,
1245
,
945
,
/* 220 */
1228
,
1227
,
945
,
1236
,
1235
,
1234
,
1226
,
1225
,
1224
,
945
,
/* 230 */
945
,
1220
,
1223
,
1222
,
1221
,
945
,
945
,
1198
,
945
,
1230
,
/* 240 */
1229
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
1149
,
945
,
/* 250 */
945
,
945
,
1174
,
1192
,
1188
,
945
,
945
,
945
,
945
,
945
,
/* 260 */
945
,
945
,
945
,
1199
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 270 */
945
,
945
,
1113
,
945
,
945
,
1080
,
945
,
945
,
945
,
945
,
/* 280 */
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
1124
,
945
,
/* 290 */
945
,
945
,
945
,
945
,
1136
,
1135
,
945
,
945
,
945
,
945
,
/* 300 */
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 310 */
945
,
945
,
945
,
945
,
1180
,
945
,
1175
,
945
,
1169
,
945
,
/* 320 */
945
,
945
,
1092
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 330 */
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 340 */
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 350 */
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
1264
,
/* 360 */
1259
,
1260
,
1257
,
945
,
945
,
945
,
945
,
945
,
1256
,
1251
,
/* 370 */
1252
,
945
,
945
,
945
,
1249
,
945
,
945
,
945
,
945
,
945
,
/* 380 */
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 390 */
1036
,
945
,
945
,
974
,
945
,
972
,
945
,
945
,
/* 0 */
952
,
1075
,
1014
,
1085
,
1001
,
1011
,
1253
,
1253
,
1253
,
1253
,
/* 10 */
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
/* 20 */
952
,
952
,
952
,
952
,
1139
,
972
,
952
,
952
,
952
,
952
,
/* 30 */
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
/* 40 */
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
/* 50 */
952
,
952
,
952
,
1163
,
952
,
1011
,
952
,
952
,
952
,
952
,
/* 60 */
952
,
1021
,
1011
,
952
,
952
,
1021
,
1021
,
952
,
1134
,
1059
,
/* 70 */
1077
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
/* 80 */
952
,
952
,
1106
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
/* 90 */
1141
,
1147
,
1144
,
952
,
952
,
952
,
1149
,
952
,
952
,
952
,
/* 100 */
1185
,
1185
,
1185
,
1185
,
1132
,
952
,
952
,
952
,
952
,
952
,
/* 110 */
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
/* 120 */
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
/* 130 */
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
999
,
952
,
/* 140 */
997
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
/* 150 */
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
/* 160 */
952
,
970
,
1202
,
974
,
1009
,
974
,
974
,
974
,
974
,
952
,
/* 170 */
952
,
952
,
952
,
974
,
1194
,
1198
,
1175
,
1192
,
1186
,
1170
,
/* 180 */
1168
,
1166
,
1174
,
1159
,
1202
,
1108
,
974
,
974
,
974
,
1019
,
/* 190 */
1019
,
1015
,
1011
,
1011
,
974
,
974
,
1037
,
1035
,
1033
,
1025
,
/* 200 */
1031
,
1027
,
1029
,
1023
,
1002
,
952
,
974
,
974
,
1009
,
1009
,
/* 210 */
974
,
1009
,
974
,
1009
,
974
,
974
,
1059
,
1077
,
1252
,
952
,
/* 220 */
1203
,
1193
,
1252
,
952
,
1235
,
1234
,
952
,
1243
,
1242
,
1241
,
/* 230 */
1233
,
1232
,
1231
,
952
,
952
,
1227
,
1230
,
1229
,
1228
,
952
,
/* 240 */
952
,
1205
,
952
,
1237
,
1236
,
952
,
952
,
952
,
952
,
952
,
/* 250 */
952
,
952
,
1156
,
952
,
952
,
952
,
1181
,
1199
,
1195
,
952
,
/* 260 */
952
,
952
,
952
,
952
,
952
,
952
,
952
,
1206
,
952
,
952
,
/* 270 */
952
,
952
,
952
,
952
,
952
,
952
,
1120
,
952
,
952
,
1087
,
/* 280 */
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
/* 290 */
952
,
952
,
952
,
1131
,
952
,
952
,
952
,
952
,
952
,
1143
,
/* 300 */
1142
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
/* 310 */
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
1187
,
/* 320 */
952
,
1182
,
952
,
1176
,
952
,
952
,
952
,
1099
,
952
,
952
,
/* 330 */
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
/* 340 */
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
/* 350 */
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
/* 360 */
952
,
952
,
952
,
952
,
1271
,
1266
,
1267
,
1264
,
952
,
952
,
/* 370 */
952
,
952
,
952
,
1263
,
1258
,
1259
,
952
,
952
,
952
,
1256
,
/* 380 */
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
952
,
/* 390 */
952
,
952
,
952
,
952
,
952
,
1043
,
952
,
952
,
981
,
952
,
/* 400 */
979
,
952
,
952
,
};
/********** End of lemon-generated parsing tables *****************************/
...
...
@@ -710,6 +713,7 @@ static const YYCODETYPE yyFallback[] = {
0
,
/* CONNECTION => nothing */
0
,
/* STREAM => nothing */
0
,
/* COLON => nothing */
0
,
/* DELETE => nothing */
1
,
/* ABORT => ID */
1
,
/* AFTER => ID */
1
,
/* ATTACH => ID */
...
...
@@ -1001,134 +1005,135 @@ static const char *const yyTokenName[] = {
/* 159 */
"CONNECTION"
,
/* 160 */
"STREAM"
,
/* 161 */
"COLON"
,
/* 162 */
"ABORT"
,
/* 163 */
"AFTER"
,
/* 164 */
"ATTACH"
,
/* 165 */
"BEFORE"
,
/* 166 */
"BEGIN"
,
/* 167 */
"CASCADE"
,
/* 168 */
"CLUSTER"
,
/* 169 */
"CONFLICT"
,
/* 170 */
"COPY"
,
/* 171 */
"DEFERRED"
,
/* 172 */
"DELIMITERS"
,
/* 173 */
"DETACH"
,
/* 174 */
"EACH"
,
/* 175 */
"END"
,
/* 176 */
"EXPLAIN"
,
/* 177 */
"FAIL"
,
/* 178 */
"FOR"
,
/* 179 */
"IGNORE"
,
/* 180 */
"IMMEDIATE"
,
/* 181 */
"INITIALLY"
,
/* 182 */
"INSTEAD"
,
/* 183 */
"KEY"
,
/* 184 */
"OF"
,
/* 185 */
"RAISE"
,
/* 186 */
"REPLACE"
,
/* 187 */
"RESTRICT"
,
/* 188 */
"ROW"
,
/* 189 */
"STATEMENT"
,
/* 190 */
"TRIGGER"
,
/* 191 */
"VIEW"
,
/* 192 */
"IPTOKEN"
,
/* 193 */
"SEMI"
,
/* 194 */
"NONE"
,
/* 195 */
"PREV"
,
/* 196 */
"LINEAR"
,
/* 197 */
"IMPORT"
,
/* 198 */
"TBNAME"
,
/* 199 */
"JOIN"
,
/* 200 */
"INSERT"
,
/* 201 */
"INTO"
,
/* 202 */
"VALUES"
,
/* 203 */
"FILE"
,
/* 204 */
"program"
,
/* 205 */
"cmd"
,
/* 206 */
"ids"
,
/* 207 */
"dbPrefix"
,
/* 208 */
"cpxName"
,
/* 209 */
"ifexists"
,
/* 210 */
"alter_db_optr"
,
/* 211 */
"alter_topic_optr"
,
/* 212 */
"acct_optr"
,
/* 213 */
"exprlist"
,
/* 214 */
"ifnotexists"
,
/* 215 */
"db_optr"
,
/* 216 */
"topic_optr"
,
/* 217 */
"typename"
,
/* 218 */
"bufsize"
,
/* 219 */
"pps"
,
/* 220 */
"tseries"
,
/* 221 */
"dbs"
,
/* 222 */
"streams"
,
/* 223 */
"storage"
,
/* 224 */
"qtime"
,
/* 225 */
"users"
,
/* 226 */
"conns"
,
/* 227 */
"state"
,
/* 228 */
"intitemlist"
,
/* 229 */
"intitem"
,
/* 230 */
"keep"
,
/* 231 */
"cache"
,
/* 232 */
"replica"
,
/* 233 */
"quorum"
,
/* 234 */
"days"
,
/* 235 */
"minrows"
,
/* 236 */
"maxrows"
,
/* 237 */
"blocks"
,
/* 238 */
"ctime"
,
/* 239 */
"wal"
,
/* 240 */
"fsync"
,
/* 241 */
"comp"
,
/* 242 */
"prec"
,
/* 243 */
"update"
,
/* 244 */
"cachelast"
,
/* 245 */
"partitions"
,
/* 246 */
"signed"
,
/* 247 */
"create_table_args"
,
/* 248 */
"create_stable_args"
,
/* 249 */
"create_table_list"
,
/* 250 */
"create_from_stable"
,
/* 251 */
"columnlist"
,
/* 252 */
"tagitemlist"
,
/* 253 */
"tagNamelist"
,
/* 254 */
"to_opt"
,
/* 255 */
"split_opt"
,
/* 256 */
"select"
,
/* 257 */
"to_split"
,
/* 258 */
"column"
,
/* 259 */
"tagitem"
,
/* 260 */
"selcollist"
,
/* 261 */
"from"
,
/* 262 */
"where_opt"
,
/* 263 */
"range_option"
,
/* 264 */
"interval_option"
,
/* 265 */
"sliding_opt"
,
/* 266 */
"session_option"
,
/* 267 */
"windowstate_option"
,
/* 268 */
"fill_opt"
,
/* 269 */
"groupby_opt"
,
/* 270 */
"having_opt"
,
/* 271 */
"orderby_opt"
,
/* 272 */
"slimit_opt"
,
/* 273 */
"limit_opt"
,
/* 274 */
"union"
,
/* 275 */
"sclp"
,
/* 276 */
"distinct"
,
/* 277 */
"expr"
,
/* 278 */
"as"
,
/* 279 */
"tablelist"
,
/* 280 */
"sub"
,
/* 281 */
"tmvar"
,
/* 282 */
"timestamp"
,
/* 283 */
"intervalKey"
,
/* 284 */
"sortlist"
,
/* 285 */
"item"
,
/* 286 */
"sortorder"
,
/* 287 */
"arrow"
,
/* 288 */
"grouplist"
,
/* 289 */
"expritem"
,
/* 162 */
"DELETE"
,
/* 163 */
"ABORT"
,
/* 164 */
"AFTER"
,
/* 165 */
"ATTACH"
,
/* 166 */
"BEFORE"
,
/* 167 */
"BEGIN"
,
/* 168 */
"CASCADE"
,
/* 169 */
"CLUSTER"
,
/* 170 */
"CONFLICT"
,
/* 171 */
"COPY"
,
/* 172 */
"DEFERRED"
,
/* 173 */
"DELIMITERS"
,
/* 174 */
"DETACH"
,
/* 175 */
"EACH"
,
/* 176 */
"END"
,
/* 177 */
"EXPLAIN"
,
/* 178 */
"FAIL"
,
/* 179 */
"FOR"
,
/* 180 */
"IGNORE"
,
/* 181 */
"IMMEDIATE"
,
/* 182 */
"INITIALLY"
,
/* 183 */
"INSTEAD"
,
/* 184 */
"KEY"
,
/* 185 */
"OF"
,
/* 186 */
"RAISE"
,
/* 187 */
"REPLACE"
,
/* 188 */
"RESTRICT"
,
/* 189 */
"ROW"
,
/* 190 */
"STATEMENT"
,
/* 191 */
"TRIGGER"
,
/* 192 */
"VIEW"
,
/* 193 */
"IPTOKEN"
,
/* 194 */
"SEMI"
,
/* 195 */
"NONE"
,
/* 196 */
"PREV"
,
/* 197 */
"LINEAR"
,
/* 198 */
"IMPORT"
,
/* 199 */
"TBNAME"
,
/* 200 */
"JOIN"
,
/* 201 */
"INSERT"
,
/* 202 */
"INTO"
,
/* 203 */
"VALUES"
,
/* 204 */
"FILE"
,
/* 205 */
"program"
,
/* 206 */
"cmd"
,
/* 207 */
"ids"
,
/* 208 */
"dbPrefix"
,
/* 209 */
"cpxName"
,
/* 210 */
"ifexists"
,
/* 211 */
"alter_db_optr"
,
/* 212 */
"alter_topic_optr"
,
/* 213 */
"acct_optr"
,
/* 214 */
"exprlist"
,
/* 215 */
"ifnotexists"
,
/* 216 */
"db_optr"
,
/* 217 */
"topic_optr"
,
/* 218 */
"typename"
,
/* 219 */
"bufsize"
,
/* 220 */
"pps"
,
/* 221 */
"tseries"
,
/* 222 */
"dbs"
,
/* 223 */
"streams"
,
/* 224 */
"storage"
,
/* 225 */
"qtime"
,
/* 226 */
"users"
,
/* 227 */
"conns"
,
/* 228 */
"state"
,
/* 229 */
"intitemlist"
,
/* 230 */
"intitem"
,
/* 231 */
"keep"
,
/* 232 */
"cache"
,
/* 233 */
"replica"
,
/* 234 */
"quorum"
,
/* 235 */
"days"
,
/* 236 */
"minrows"
,
/* 237 */
"maxrows"
,
/* 238 */
"blocks"
,
/* 239 */
"ctime"
,
/* 240 */
"wal"
,
/* 241 */
"fsync"
,
/* 242 */
"comp"
,
/* 243 */
"prec"
,
/* 244 */
"update"
,
/* 245 */
"cachelast"
,
/* 246 */
"partitions"
,
/* 247 */
"signed"
,
/* 248 */
"create_table_args"
,
/* 249 */
"create_stable_args"
,
/* 250 */
"create_table_list"
,
/* 251 */
"create_from_stable"
,
/* 252 */
"columnlist"
,
/* 253 */
"tagitemlist"
,
/* 254 */
"tagNamelist"
,
/* 255 */
"to_opt"
,
/* 256 */
"split_opt"
,
/* 257 */
"select"
,
/* 258 */
"to_split"
,
/* 259 */
"column"
,
/* 260 */
"tagitem"
,
/* 261 */
"selcollist"
,
/* 262 */
"from"
,
/* 263 */
"where_opt"
,
/* 264 */
"range_option"
,
/* 265 */
"interval_option"
,
/* 266 */
"sliding_opt"
,
/* 267 */
"session_option"
,
/* 268 */
"windowstate_option"
,
/* 269 */
"fill_opt"
,
/* 270 */
"groupby_opt"
,
/* 271 */
"having_opt"
,
/* 272 */
"orderby_opt"
,
/* 273 */
"slimit_opt"
,
/* 274 */
"limit_opt"
,
/* 275 */
"union"
,
/* 276 */
"sclp"
,
/* 277 */
"distinct"
,
/* 278 */
"expr"
,
/* 279 */
"as"
,
/* 280 */
"tablelist"
,
/* 281 */
"sub"
,
/* 282 */
"tmvar"
,
/* 283 */
"timestamp"
,
/* 284 */
"intervalKey"
,
/* 285 */
"sortlist"
,
/* 286 */
"item"
,
/* 287 */
"sortorder"
,
/* 288 */
"arrow"
,
/* 289 */
"grouplist"
,
/* 290 */
"expritem"
,
};
#endif
/* defined(YYCOVERAGE) || !defined(NDEBUG) */
...
...
@@ -1456,6 +1461,7 @@ static const char *const yyRuleName[] = {
/* 317 */
"cmd ::= KILL CONNECTION INTEGER"
,
/* 318 */
"cmd ::= KILL STREAM INTEGER COLON INTEGER"
,
/* 319 */
"cmd ::= KILL QUERY INTEGER COLON INTEGER"
,
/* 320 */
"cmd ::= DELETE FROM ifexists ids cpxName where_opt"
,
};
#endif
/* NDEBUG */
...
...
@@ -1581,57 +1587,57 @@ static void yy_destructor(
** inside the C code.
*/
/********* Begin destructor definitions ***************************************/
case
21
3
:
/* exprlist */
case
26
0
:
/* selcollist */
case
27
5
:
/* sclp */
case
21
4
:
/* exprlist */
case
26
1
:
/* selcollist */
case
27
6
:
/* sclp */
{
tSqlExprListDestroy
((
yypminor
->
yy
161
));
tSqlExprListDestroy
((
yypminor
->
yy
525
));
}
break
;
case
22
8
:
/* intitemlist */
case
23
0
:
/* keep */
case
25
1
:
/* columnlist */
case
25
2
:
/* tagitemlist */
case
25
3
:
/* tagNamelist */
case
26
8
:
/* fill_opt */
case
2
69
:
/* groupby_opt */
case
27
1
:
/* orderby_opt */
case
28
4
:
/* sortlist */
case
28
8
:
/* grouplist */
case
22
9
:
/* intitemlist */
case
23
1
:
/* keep */
case
25
2
:
/* columnlist */
case
25
3
:
/* tagitemlist */
case
25
4
:
/* tagNamelist */
case
26
9
:
/* fill_opt */
case
2
70
:
/* groupby_opt */
case
27
2
:
/* orderby_opt */
case
28
5
:
/* sortlist */
case
28
9
:
/* grouplist */
{
taosArrayDestroy
(
&
(
yypminor
->
yy
161
));
taosArrayDestroy
(
&
(
yypminor
->
yy
525
));
}
break
;
case
2
49
:
/* create_table_list */
case
2
50
:
/* create_table_list */
{
destroyCreateTableSql
((
yypminor
->
yy
46
2
));
destroyCreateTableSql
((
yypminor
->
yy
57
2
));
}
break
;
case
25
6
:
/* select */
case
25
7
:
/* select */
{
destroySqlNode
((
yypminor
->
yy
27
6
));
destroySqlNode
((
yypminor
->
yy
8
6
));
}
break
;
case
26
1
:
/* from */
case
2
79
:
/* tablelist */
case
28
0
:
/* sub */
case
26
2
:
/* from */
case
2
80
:
/* tablelist */
case
28
1
:
/* sub */
{
destroyRelationInfo
((
yypminor
->
yy
84
));
destroyRelationInfo
((
yypminor
->
yy
328
));
}
break
;
case
26
2
:
/* where_opt */
case
27
0
:
/* having_opt */
case
27
7
:
/* expr */
case
28
2
:
/* timestamp */
case
28
7
:
/* arrow */
case
2
89
:
/* expritem */
case
26
3
:
/* where_opt */
case
27
1
:
/* having_opt */
case
27
8
:
/* expr */
case
28
3
:
/* timestamp */
case
28
8
:
/* arrow */
case
2
90
:
/* expritem */
{
tSqlExprDestroy
((
yypminor
->
yy
546
));
tSqlExprDestroy
((
yypminor
->
yy
142
));
}
break
;
case
27
4
:
/* union */
case
27
5
:
/* union */
{
destroyAllSqlNode
((
yypminor
->
yy
161
));
destroyAllSqlNode
((
yypminor
->
yy
525
));
}
break
;
/********* End destructor definitions *****************************************/
...
...
@@ -1757,18 +1763,15 @@ static YYACTIONTYPE yy_find_shift_action(
do
{
i
=
yy_shift_ofst
[
stateno
];
assert
(
i
>=
0
);
assert
(
i
<=
YY_ACTTAB_COUNT
);
assert
(
i
+
YYNTOKEN
<=
(
int
)
YY_NLOOKAHEAD
);
/* assert( i+YYNTOKEN<=(int)YY_NLOOKAHEAD ); */
assert
(
iLookAhead
!=
YYNOCODE
);
assert
(
iLookAhead
<
YYNTOKEN
);
i
+=
iLookAhead
;
assert
(
i
<
(
int
)
YY_NLOOKAHEAD
);
if
(
yy_lookahead
[
i
]
!=
iLookAhead
){
if
(
i
>=
YY_NLOOKAHEAD
||
yy_lookahead
[
i
]
!=
iLookAhead
){
#ifdef YYFALLBACK
YYCODETYPE
iFallback
;
/* Fallback token */
assert
(
iLookAhead
<
sizeof
(
yyFallback
)
/
sizeof
(
yyFallback
[
0
])
);
iFallback
=
yyFallback
[
iLookAhead
];
if
(
iFallback
!=
0
){
if
(
iLookAhead
<
sizeof
(
yyFallback
)
/
sizeof
(
yyFallback
[
0
])
&&
(
iFallback
=
yyFallback
[
iLookAhead
])
!=
0
){
#ifndef NDEBUG
if
(
yyTraceFILE
){
fprintf
(
yyTraceFILE
,
"%sFALLBACK %s => %s
\n
"
,
...
...
@@ -1783,8 +1786,16 @@ static YYACTIONTYPE yy_find_shift_action(
#ifdef YYWILDCARD
{
int
j
=
i
-
iLookAhead
+
YYWILDCARD
;
assert
(
j
<
(
int
)(
sizeof
(
yy_lookahead
)
/
sizeof
(
yy_lookahead
[
0
]))
);
if
(
yy_lookahead
[
j
]
==
YYWILDCARD
&&
iLookAhead
>
0
){
if
(
#if YY_SHIFT_MIN+YYWILDCARD<0
j
>=
0
&&
#endif
#if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT
j
<
YY_ACTTAB_COUNT
&&
#endif
j
<
(
int
)(
sizeof
(
yy_lookahead
)
/
sizeof
(
yy_lookahead
[
0
]))
&&
yy_lookahead
[
j
]
==
YYWILDCARD
&&
iLookAhead
>
0
){
#ifndef NDEBUG
if
(
yyTraceFILE
){
fprintf
(
yyTraceFILE
,
"%sWILDCARD %s => %s
\n
"
,
...
...
@@ -1798,7 +1809,6 @@ static YYACTIONTYPE yy_find_shift_action(
#endif
/* YYWILDCARD */
return
yy_default
[
stateno
];
}
else
{
assert
(
i
>=
0
&&
i
<
sizeof
(
yy_action
)
/
sizeof
(
yy_action
[
0
])
);
return
yy_action
[
i
];
}
}
while
(
1
);
...
...
@@ -1917,654 +1927,334 @@ static void yy_shift(
yyTraceShift
(
yypParser
,
yyNewState
,
"Shift"
);
}
/* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side
** of that rule */
static
const
YYCODETYPE
yyRuleInfoLhs
[]
=
{
204
,
/* (0) program ::= cmd */
205
,
/* (1) cmd ::= SHOW DATABASES */
205
,
/* (2) cmd ::= SHOW TOPICS */
205
,
/* (3) cmd ::= SHOW FUNCTIONS */
205
,
/* (4) cmd ::= SHOW MNODES */
205
,
/* (5) cmd ::= SHOW DNODES */
205
,
/* (6) cmd ::= SHOW ACCOUNTS */
205
,
/* (7) cmd ::= SHOW USERS */
205
,
/* (8) cmd ::= SHOW MODULES */
205
,
/* (9) cmd ::= SHOW QUERIES */
205
,
/* (10) cmd ::= SHOW CONNECTIONS */
205
,
/* (11) cmd ::= SHOW STREAMS */
205
,
/* (12) cmd ::= SHOW VARIABLES */
205
,
/* (13) cmd ::= SHOW SCORES */
205
,
/* (14) cmd ::= SHOW GRANTS */
205
,
/* (15) cmd ::= SHOW VNODES */
205
,
/* (16) cmd ::= SHOW VNODES ids */
207
,
/* (17) dbPrefix ::= */
207
,
/* (18) dbPrefix ::= ids DOT */
208
,
/* (19) cpxName ::= */
208
,
/* (20) cpxName ::= DOT ids */
205
,
/* (21) cmd ::= SHOW CREATE TABLE ids cpxName */
205
,
/* (22) cmd ::= SHOW CREATE STABLE ids cpxName */
205
,
/* (23) cmd ::= SHOW CREATE DATABASE ids */
205
,
/* (24) cmd ::= SHOW dbPrefix TABLES */
205
,
/* (25) cmd ::= SHOW dbPrefix TABLES LIKE STRING */
205
,
/* (26) cmd ::= SHOW dbPrefix STABLES */
205
,
/* (27) cmd ::= SHOW dbPrefix STABLES LIKE STRING */
205
,
/* (28) cmd ::= SHOW dbPrefix VGROUPS */
205
,
/* (29) cmd ::= DROP TABLE ifexists ids cpxName */
205
,
/* (30) cmd ::= DROP STABLE ifexists ids cpxName */
205
,
/* (31) cmd ::= DROP DATABASE ifexists ids */
205
,
/* (32) cmd ::= DROP TOPIC ifexists ids */
205
,
/* (33) cmd ::= DROP FUNCTION ids */
205
,
/* (34) cmd ::= DROP DNODE ids */
205
,
/* (35) cmd ::= DROP USER ids */
205
,
/* (36) cmd ::= DROP ACCOUNT ids */
205
,
/* (37) cmd ::= USE ids */
205
,
/* (38) cmd ::= DESCRIBE ids cpxName */
205
,
/* (39) cmd ::= DESC ids cpxName */
205
,
/* (40) cmd ::= ALTER USER ids PASS ids */
205
,
/* (41) cmd ::= ALTER USER ids PRIVILEGE ids */
205
,
/* (42) cmd ::= ALTER DNODE ids ids */
205
,
/* (43) cmd ::= ALTER DNODE ids ids ids */
205
,
/* (44) cmd ::= ALTER LOCAL ids */
205
,
/* (45) cmd ::= ALTER LOCAL ids ids */
205
,
/* (46) cmd ::= ALTER DATABASE ids alter_db_optr */
205
,
/* (47) cmd ::= ALTER TOPIC ids alter_topic_optr */
205
,
/* (48) cmd ::= ALTER ACCOUNT ids acct_optr */
205
,
/* (49) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
205
,
/* (50) cmd ::= COMPACT VNODES IN LP exprlist RP */
206
,
/* (51) ids ::= ID */
206
,
/* (52) ids ::= STRING */
209
,
/* (53) ifexists ::= IF EXISTS */
209
,
/* (54) ifexists ::= */
214
,
/* (55) ifnotexists ::= IF NOT EXISTS */
214
,
/* (56) ifnotexists ::= */
205
,
/* (57) cmd ::= CREATE DNODE ids */
205
,
/* (58) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
205
,
/* (59) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
205
,
/* (60) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
205
,
/* (61) cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
205
,
/* (62) cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
205
,
/* (63) cmd ::= CREATE USER ids PASS ids */
218
,
/* (64) bufsize ::= */
218
,
/* (65) bufsize ::= BUFSIZE INTEGER */
219
,
/* (66) pps ::= */
219
,
/* (67) pps ::= PPS INTEGER */
220
,
/* (68) tseries ::= */
220
,
/* (69) tseries ::= TSERIES INTEGER */
221
,
/* (70) dbs ::= */
221
,
/* (71) dbs ::= DBS INTEGER */
222
,
/* (72) streams ::= */
222
,
/* (73) streams ::= STREAMS INTEGER */
223
,
/* (74) storage ::= */
223
,
/* (75) storage ::= STORAGE INTEGER */
224
,
/* (76) qtime ::= */
224
,
/* (77) qtime ::= QTIME INTEGER */
225
,
/* (78) users ::= */
225
,
/* (79) users ::= USERS INTEGER */
226
,
/* (80) conns ::= */
226
,
/* (81) conns ::= CONNS INTEGER */
227
,
/* (82) state ::= */
227
,
/* (83) state ::= STATE ids */
212
,
/* (84) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
228
,
/* (85) intitemlist ::= intitemlist COMMA intitem */
228
,
/* (86) intitemlist ::= intitem */
229
,
/* (87) intitem ::= INTEGER */
230
,
/* (88) keep ::= KEEP intitemlist */
231
,
/* (89) cache ::= CACHE INTEGER */
232
,
/* (90) replica ::= REPLICA INTEGER */
233
,
/* (91) quorum ::= QUORUM INTEGER */
234
,
/* (92) days ::= DAYS INTEGER */
235
,
/* (93) minrows ::= MINROWS INTEGER */
236
,
/* (94) maxrows ::= MAXROWS INTEGER */
237
,
/* (95) blocks ::= BLOCKS INTEGER */
238
,
/* (96) ctime ::= CTIME INTEGER */
239
,
/* (97) wal ::= WAL INTEGER */
240
,
/* (98) fsync ::= FSYNC INTEGER */
241
,
/* (99) comp ::= COMP INTEGER */
242
,
/* (100) prec ::= PRECISION STRING */
243
,
/* (101) update ::= UPDATE INTEGER */
244
,
/* (102) cachelast ::= CACHELAST INTEGER */
245
,
/* (103) partitions ::= PARTITIONS INTEGER */
215
,
/* (104) db_optr ::= */
215
,
/* (105) db_optr ::= db_optr cache */
215
,
/* (106) db_optr ::= db_optr replica */
215
,
/* (107) db_optr ::= db_optr quorum */
215
,
/* (108) db_optr ::= db_optr days */
215
,
/* (109) db_optr ::= db_optr minrows */
215
,
/* (110) db_optr ::= db_optr maxrows */
215
,
/* (111) db_optr ::= db_optr blocks */
215
,
/* (112) db_optr ::= db_optr ctime */
215
,
/* (113) db_optr ::= db_optr wal */
215
,
/* (114) db_optr ::= db_optr fsync */
215
,
/* (115) db_optr ::= db_optr comp */
215
,
/* (116) db_optr ::= db_optr prec */
215
,
/* (117) db_optr ::= db_optr keep */
215
,
/* (118) db_optr ::= db_optr update */
215
,
/* (119) db_optr ::= db_optr cachelast */
216
,
/* (120) topic_optr ::= db_optr */
216
,
/* (121) topic_optr ::= topic_optr partitions */
210
,
/* (122) alter_db_optr ::= */
210
,
/* (123) alter_db_optr ::= alter_db_optr replica */
210
,
/* (124) alter_db_optr ::= alter_db_optr quorum */
210
,
/* (125) alter_db_optr ::= alter_db_optr keep */
210
,
/* (126) alter_db_optr ::= alter_db_optr blocks */
210
,
/* (127) alter_db_optr ::= alter_db_optr comp */
210
,
/* (128) alter_db_optr ::= alter_db_optr update */
210
,
/* (129) alter_db_optr ::= alter_db_optr cachelast */
211
,
/* (130) alter_topic_optr ::= alter_db_optr */
211
,
/* (131) alter_topic_optr ::= alter_topic_optr partitions */
217
,
/* (132) typename ::= ids */
217
,
/* (133) typename ::= ids LP signed RP */
217
,
/* (134) typename ::= ids UNSIGNED */
246
,
/* (135) signed ::= INTEGER */
246
,
/* (136) signed ::= PLUS INTEGER */
246
,
/* (137) signed ::= MINUS INTEGER */
205
,
/* (138) cmd ::= CREATE TABLE create_table_args */
205
,
/* (139) cmd ::= CREATE TABLE create_stable_args */
205
,
/* (140) cmd ::= CREATE STABLE create_stable_args */
205
,
/* (141) cmd ::= CREATE TABLE create_table_list */
249
,
/* (142) create_table_list ::= create_from_stable */
249
,
/* (143) create_table_list ::= create_table_list create_from_stable */
247
,
/* (144) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
248
,
/* (145) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
250
,
/* (146) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
250
,
/* (147) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
253
,
/* (148) tagNamelist ::= tagNamelist COMMA ids */
253
,
/* (149) tagNamelist ::= ids */
247
,
/* (150) create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select */
254
,
/* (151) to_opt ::= */
254
,
/* (152) to_opt ::= TO ids cpxName */
255
,
/* (153) split_opt ::= */
255
,
/* (154) split_opt ::= SPLIT ids */
251
,
/* (155) columnlist ::= columnlist COMMA column */
251
,
/* (156) columnlist ::= column */
258
,
/* (157) column ::= ids typename */
252
,
/* (158) tagitemlist ::= tagitemlist COMMA tagitem */
252
,
/* (159) tagitemlist ::= tagitem */
259
,
/* (160) tagitem ::= INTEGER */
259
,
/* (161) tagitem ::= FLOAT */
259
,
/* (162) tagitem ::= STRING */
259
,
/* (163) tagitem ::= BOOL */
259
,
/* (164) tagitem ::= NULL */
259
,
/* (165) tagitem ::= NOW */
259
,
/* (166) tagitem ::= NOW PLUS VARIABLE */
259
,
/* (167) tagitem ::= NOW MINUS VARIABLE */
259
,
/* (168) tagitem ::= MINUS INTEGER */
259
,
/* (169) tagitem ::= MINUS FLOAT */
259
,
/* (170) tagitem ::= PLUS INTEGER */
259
,
/* (171) tagitem ::= PLUS FLOAT */
256
,
/* (172) select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
256
,
/* (173) select ::= LP select RP */
274
,
/* (174) union ::= select */
274
,
/* (175) union ::= union UNION ALL select */
205
,
/* (176) cmd ::= union */
256
,
/* (177) select ::= SELECT selcollist */
275
,
/* (178) sclp ::= selcollist COMMA */
275
,
/* (179) sclp ::= */
260
,
/* (180) selcollist ::= sclp distinct expr as */
260
,
/* (181) selcollist ::= sclp STAR */
278
,
/* (182) as ::= AS ids */
278
,
/* (183) as ::= ids */
278
,
/* (184) as ::= */
276
,
/* (185) distinct ::= DISTINCT */
276
,
/* (186) distinct ::= */
261
,
/* (187) from ::= FROM tablelist */
261
,
/* (188) from ::= FROM sub */
280
,
/* (189) sub ::= LP union RP */
280
,
/* (190) sub ::= LP union RP ids */
280
,
/* (191) sub ::= sub COMMA LP union RP ids */
279
,
/* (192) tablelist ::= ids cpxName */
279
,
/* (193) tablelist ::= ids cpxName ids */
279
,
/* (194) tablelist ::= tablelist COMMA ids cpxName */
279
,
/* (195) tablelist ::= tablelist COMMA ids cpxName ids */
281
,
/* (196) tmvar ::= VARIABLE */
282
,
/* (197) timestamp ::= INTEGER */
282
,
/* (198) timestamp ::= MINUS INTEGER */
282
,
/* (199) timestamp ::= PLUS INTEGER */
282
,
/* (200) timestamp ::= STRING */
282
,
/* (201) timestamp ::= NOW */
282
,
/* (202) timestamp ::= NOW PLUS VARIABLE */
282
,
/* (203) timestamp ::= NOW MINUS VARIABLE */
263
,
/* (204) range_option ::= */
263
,
/* (205) range_option ::= RANGE LP timestamp COMMA timestamp RP */
264
,
/* (206) interval_option ::= intervalKey LP tmvar RP */
264
,
/* (207) interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
264
,
/* (208) interval_option ::= */
283
,
/* (209) intervalKey ::= INTERVAL */
283
,
/* (210) intervalKey ::= EVERY */
266
,
/* (211) session_option ::= */
266
,
/* (212) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
267
,
/* (213) windowstate_option ::= */
267
,
/* (214) windowstate_option ::= STATE_WINDOW LP ids RP */
268
,
/* (215) fill_opt ::= */
268
,
/* (216) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
268
,
/* (217) fill_opt ::= FILL LP ID RP */
265
,
/* (218) sliding_opt ::= SLIDING LP tmvar RP */
265
,
/* (219) sliding_opt ::= */
271
,
/* (220) orderby_opt ::= */
271
,
/* (221) orderby_opt ::= ORDER BY sortlist */
284
,
/* (222) sortlist ::= sortlist COMMA item sortorder */
284
,
/* (223) sortlist ::= sortlist COMMA arrow sortorder */
284
,
/* (224) sortlist ::= item sortorder */
284
,
/* (225) sortlist ::= arrow sortorder */
285
,
/* (226) item ::= ID */
285
,
/* (227) item ::= ID DOT ID */
286
,
/* (228) sortorder ::= ASC */
286
,
/* (229) sortorder ::= DESC */
286
,
/* (230) sortorder ::= */
269
,
/* (231) groupby_opt ::= */
269
,
/* (232) groupby_opt ::= GROUP BY grouplist */
288
,
/* (233) grouplist ::= grouplist COMMA item */
288
,
/* (234) grouplist ::= grouplist COMMA arrow */
288
,
/* (235) grouplist ::= item */
288
,
/* (236) grouplist ::= arrow */
270
,
/* (237) having_opt ::= */
270
,
/* (238) having_opt ::= HAVING expr */
273
,
/* (239) limit_opt ::= */
273
,
/* (240) limit_opt ::= LIMIT signed */
273
,
/* (241) limit_opt ::= LIMIT signed OFFSET signed */
273
,
/* (242) limit_opt ::= LIMIT signed COMMA signed */
272
,
/* (243) slimit_opt ::= */
272
,
/* (244) slimit_opt ::= SLIMIT signed */
272
,
/* (245) slimit_opt ::= SLIMIT signed SOFFSET signed */
272
,
/* (246) slimit_opt ::= SLIMIT signed COMMA signed */
262
,
/* (247) where_opt ::= */
262
,
/* (248) where_opt ::= WHERE expr */
277
,
/* (249) expr ::= LP expr RP */
277
,
/* (250) expr ::= ID */
277
,
/* (251) expr ::= ID DOT ID */
277
,
/* (252) expr ::= ID DOT STAR */
277
,
/* (253) expr ::= INTEGER */
277
,
/* (254) expr ::= MINUS INTEGER */
277
,
/* (255) expr ::= PLUS INTEGER */
277
,
/* (256) expr ::= FLOAT */
277
,
/* (257) expr ::= MINUS FLOAT */
277
,
/* (258) expr ::= PLUS FLOAT */
277
,
/* (259) expr ::= STRING */
277
,
/* (260) expr ::= NOW */
277
,
/* (261) expr ::= TODAY */
277
,
/* (262) expr ::= VARIABLE */
277
,
/* (263) expr ::= PLUS VARIABLE */
277
,
/* (264) expr ::= MINUS VARIABLE */
277
,
/* (265) expr ::= BOOL */
277
,
/* (266) expr ::= NULL */
277
,
/* (267) expr ::= ID LP exprlist RP */
277
,
/* (268) expr ::= ID LP STAR RP */
277
,
/* (269) expr ::= ID LP expr AS typename RP */
277
,
/* (270) expr ::= expr IS NULL */
277
,
/* (271) expr ::= expr IS NOT NULL */
277
,
/* (272) expr ::= expr LT expr */
277
,
/* (273) expr ::= expr GT expr */
277
,
/* (274) expr ::= expr LE expr */
277
,
/* (275) expr ::= expr GE expr */
277
,
/* (276) expr ::= expr NE expr */
277
,
/* (277) expr ::= expr EQ expr */
277
,
/* (278) expr ::= expr BETWEEN expr AND expr */
277
,
/* (279) expr ::= expr AND expr */
277
,
/* (280) expr ::= expr OR expr */
277
,
/* (281) expr ::= expr PLUS expr */
277
,
/* (282) expr ::= expr MINUS expr */
277
,
/* (283) expr ::= expr STAR expr */
277
,
/* (284) expr ::= expr SLASH expr */
277
,
/* (285) expr ::= expr REM expr */
277
,
/* (286) expr ::= expr LIKE expr */
277
,
/* (287) expr ::= expr MATCH expr */
277
,
/* (288) expr ::= expr NMATCH expr */
277
,
/* (289) expr ::= ID CONTAINS STRING */
277
,
/* (290) expr ::= ID DOT ID CONTAINS STRING */
287
,
/* (291) arrow ::= ID ARROW STRING */
287
,
/* (292) arrow ::= ID DOT ID ARROW STRING */
277
,
/* (293) expr ::= arrow */
277
,
/* (294) expr ::= expr IN LP exprlist RP */
213
,
/* (295) exprlist ::= exprlist COMMA expritem */
213
,
/* (296) exprlist ::= expritem */
289
,
/* (297) expritem ::= expr */
289
,
/* (298) expritem ::= */
205
,
/* (299) cmd ::= RESET QUERY CACHE */
205
,
/* (300) cmd ::= SYNCDB ids REPLICA */
205
,
/* (301) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
205
,
/* (302) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
205
,
/* (303) cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
205
,
/* (304) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
205
,
/* (305) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
205
,
/* (306) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
205
,
/* (307) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
205
,
/* (308) cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
205
,
/* (309) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
205
,
/* (310) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
205
,
/* (311) cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
205
,
/* (312) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
205
,
/* (313) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
205
,
/* (314) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
205
,
/* (315) cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */
205
,
/* (316) cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
205
,
/* (317) cmd ::= KILL CONNECTION INTEGER */
205
,
/* (318) cmd ::= KILL STREAM INTEGER COLON INTEGER */
205
,
/* (319) cmd ::= KILL QUERY INTEGER COLON INTEGER */
};
/* For rule J, yyRuleInfoNRhs[J] contains the negative of the number
** of symbols on the right-hand side of that rule. */
static
const
signed
char
yyRuleInfoNRhs
[]
=
{
-
1
,
/* (0) program ::= cmd */
-
2
,
/* (1) cmd ::= SHOW DATABASES */
-
2
,
/* (2) cmd ::= SHOW TOPICS */
-
2
,
/* (3) cmd ::= SHOW FUNCTIONS */
-
2
,
/* (4) cmd ::= SHOW MNODES */
-
2
,
/* (5) cmd ::= SHOW DNODES */
-
2
,
/* (6) cmd ::= SHOW ACCOUNTS */
-
2
,
/* (7) cmd ::= SHOW USERS */
-
2
,
/* (8) cmd ::= SHOW MODULES */
-
2
,
/* (9) cmd ::= SHOW QUERIES */
-
2
,
/* (10) cmd ::= SHOW CONNECTIONS */
-
2
,
/* (11) cmd ::= SHOW STREAMS */
-
2
,
/* (12) cmd ::= SHOW VARIABLES */
-
2
,
/* (13) cmd ::= SHOW SCORES */
-
2
,
/* (14) cmd ::= SHOW GRANTS */
-
2
,
/* (15) cmd ::= SHOW VNODES */
-
3
,
/* (16) cmd ::= SHOW VNODES ids */
0
,
/* (17) dbPrefix ::= */
-
2
,
/* (18) dbPrefix ::= ids DOT */
0
,
/* (19) cpxName ::= */
-
2
,
/* (20) cpxName ::= DOT ids */
-
5
,
/* (21) cmd ::= SHOW CREATE TABLE ids cpxName */
-
5
,
/* (22) cmd ::= SHOW CREATE STABLE ids cpxName */
-
4
,
/* (23) cmd ::= SHOW CREATE DATABASE ids */
-
3
,
/* (24) cmd ::= SHOW dbPrefix TABLES */
-
5
,
/* (25) cmd ::= SHOW dbPrefix TABLES LIKE STRING */
-
3
,
/* (26) cmd ::= SHOW dbPrefix STABLES */
-
5
,
/* (27) cmd ::= SHOW dbPrefix STABLES LIKE STRING */
-
3
,
/* (28) cmd ::= SHOW dbPrefix VGROUPS */
-
5
,
/* (29) cmd ::= DROP TABLE ifexists ids cpxName */
-
5
,
/* (30) cmd ::= DROP STABLE ifexists ids cpxName */
-
4
,
/* (31) cmd ::= DROP DATABASE ifexists ids */
-
4
,
/* (32) cmd ::= DROP TOPIC ifexists ids */
-
3
,
/* (33) cmd ::= DROP FUNCTION ids */
-
3
,
/* (34) cmd ::= DROP DNODE ids */
-
3
,
/* (35) cmd ::= DROP USER ids */
-
3
,
/* (36) cmd ::= DROP ACCOUNT ids */
-
2
,
/* (37) cmd ::= USE ids */
-
3
,
/* (38) cmd ::= DESCRIBE ids cpxName */
-
3
,
/* (39) cmd ::= DESC ids cpxName */
-
5
,
/* (40) cmd ::= ALTER USER ids PASS ids */
-
5
,
/* (41) cmd ::= ALTER USER ids PRIVILEGE ids */
-
4
,
/* (42) cmd ::= ALTER DNODE ids ids */
-
5
,
/* (43) cmd ::= ALTER DNODE ids ids ids */
-
3
,
/* (44) cmd ::= ALTER LOCAL ids */
-
4
,
/* (45) cmd ::= ALTER LOCAL ids ids */
-
4
,
/* (46) cmd ::= ALTER DATABASE ids alter_db_optr */
-
4
,
/* (47) cmd ::= ALTER TOPIC ids alter_topic_optr */
-
4
,
/* (48) cmd ::= ALTER ACCOUNT ids acct_optr */
-
6
,
/* (49) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
-
6
,
/* (50) cmd ::= COMPACT VNODES IN LP exprlist RP */
-
1
,
/* (51) ids ::= ID */
-
1
,
/* (52) ids ::= STRING */
-
2
,
/* (53) ifexists ::= IF EXISTS */
0
,
/* (54) ifexists ::= */
-
3
,
/* (55) ifnotexists ::= IF NOT EXISTS */
0
,
/* (56) ifnotexists ::= */
-
3
,
/* (57) cmd ::= CREATE DNODE ids */
-
6
,
/* (58) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
-
5
,
/* (59) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
-
5
,
/* (60) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
-
8
,
/* (61) cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
-
9
,
/* (62) cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
-
5
,
/* (63) cmd ::= CREATE USER ids PASS ids */
0
,
/* (64) bufsize ::= */
-
2
,
/* (65) bufsize ::= BUFSIZE INTEGER */
0
,
/* (66) pps ::= */
-
2
,
/* (67) pps ::= PPS INTEGER */
0
,
/* (68) tseries ::= */
-
2
,
/* (69) tseries ::= TSERIES INTEGER */
0
,
/* (70) dbs ::= */
-
2
,
/* (71) dbs ::= DBS INTEGER */
0
,
/* (72) streams ::= */
-
2
,
/* (73) streams ::= STREAMS INTEGER */
0
,
/* (74) storage ::= */
-
2
,
/* (75) storage ::= STORAGE INTEGER */
0
,
/* (76) qtime ::= */
-
2
,
/* (77) qtime ::= QTIME INTEGER */
0
,
/* (78) users ::= */
-
2
,
/* (79) users ::= USERS INTEGER */
0
,
/* (80) conns ::= */
-
2
,
/* (81) conns ::= CONNS INTEGER */
0
,
/* (82) state ::= */
-
2
,
/* (83) state ::= STATE ids */
-
9
,
/* (84) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
-
3
,
/* (85) intitemlist ::= intitemlist COMMA intitem */
-
1
,
/* (86) intitemlist ::= intitem */
-
1
,
/* (87) intitem ::= INTEGER */
-
2
,
/* (88) keep ::= KEEP intitemlist */
-
2
,
/* (89) cache ::= CACHE INTEGER */
-
2
,
/* (90) replica ::= REPLICA INTEGER */
-
2
,
/* (91) quorum ::= QUORUM INTEGER */
-
2
,
/* (92) days ::= DAYS INTEGER */
-
2
,
/* (93) minrows ::= MINROWS INTEGER */
-
2
,
/* (94) maxrows ::= MAXROWS INTEGER */
-
2
,
/* (95) blocks ::= BLOCKS INTEGER */
-
2
,
/* (96) ctime ::= CTIME INTEGER */
-
2
,
/* (97) wal ::= WAL INTEGER */
-
2
,
/* (98) fsync ::= FSYNC INTEGER */
-
2
,
/* (99) comp ::= COMP INTEGER */
-
2
,
/* (100) prec ::= PRECISION STRING */
-
2
,
/* (101) update ::= UPDATE INTEGER */
-
2
,
/* (102) cachelast ::= CACHELAST INTEGER */
-
2
,
/* (103) partitions ::= PARTITIONS INTEGER */
0
,
/* (104) db_optr ::= */
-
2
,
/* (105) db_optr ::= db_optr cache */
-
2
,
/* (106) db_optr ::= db_optr replica */
-
2
,
/* (107) db_optr ::= db_optr quorum */
-
2
,
/* (108) db_optr ::= db_optr days */
-
2
,
/* (109) db_optr ::= db_optr minrows */
-
2
,
/* (110) db_optr ::= db_optr maxrows */
-
2
,
/* (111) db_optr ::= db_optr blocks */
-
2
,
/* (112) db_optr ::= db_optr ctime */
-
2
,
/* (113) db_optr ::= db_optr wal */
-
2
,
/* (114) db_optr ::= db_optr fsync */
-
2
,
/* (115) db_optr ::= db_optr comp */
-
2
,
/* (116) db_optr ::= db_optr prec */
-
2
,
/* (117) db_optr ::= db_optr keep */
-
2
,
/* (118) db_optr ::= db_optr update */
-
2
,
/* (119) db_optr ::= db_optr cachelast */
-
1
,
/* (120) topic_optr ::= db_optr */
-
2
,
/* (121) topic_optr ::= topic_optr partitions */
0
,
/* (122) alter_db_optr ::= */
-
2
,
/* (123) alter_db_optr ::= alter_db_optr replica */
-
2
,
/* (124) alter_db_optr ::= alter_db_optr quorum */
-
2
,
/* (125) alter_db_optr ::= alter_db_optr keep */
-
2
,
/* (126) alter_db_optr ::= alter_db_optr blocks */
-
2
,
/* (127) alter_db_optr ::= alter_db_optr comp */
-
2
,
/* (128) alter_db_optr ::= alter_db_optr update */
-
2
,
/* (129) alter_db_optr ::= alter_db_optr cachelast */
-
1
,
/* (130) alter_topic_optr ::= alter_db_optr */
-
2
,
/* (131) alter_topic_optr ::= alter_topic_optr partitions */
-
1
,
/* (132) typename ::= ids */
-
4
,
/* (133) typename ::= ids LP signed RP */
-
2
,
/* (134) typename ::= ids UNSIGNED */
-
1
,
/* (135) signed ::= INTEGER */
-
2
,
/* (136) signed ::= PLUS INTEGER */
-
2
,
/* (137) signed ::= MINUS INTEGER */
-
3
,
/* (138) cmd ::= CREATE TABLE create_table_args */
-
3
,
/* (139) cmd ::= CREATE TABLE create_stable_args */
-
3
,
/* (140) cmd ::= CREATE STABLE create_stable_args */
-
3
,
/* (141) cmd ::= CREATE TABLE create_table_list */
-
1
,
/* (142) create_table_list ::= create_from_stable */
-
2
,
/* (143) create_table_list ::= create_table_list create_from_stable */
-
6
,
/* (144) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
-
10
,
/* (145) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
-
10
,
/* (146) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
-
13
,
/* (147) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
-
3
,
/* (148) tagNamelist ::= tagNamelist COMMA ids */
-
1
,
/* (149) tagNamelist ::= ids */
-
7
,
/* (150) create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select */
0
,
/* (151) to_opt ::= */
-
3
,
/* (152) to_opt ::= TO ids cpxName */
0
,
/* (153) split_opt ::= */
-
2
,
/* (154) split_opt ::= SPLIT ids */
-
3
,
/* (155) columnlist ::= columnlist COMMA column */
-
1
,
/* (156) columnlist ::= column */
-
2
,
/* (157) column ::= ids typename */
-
3
,
/* (158) tagitemlist ::= tagitemlist COMMA tagitem */
-
1
,
/* (159) tagitemlist ::= tagitem */
-
1
,
/* (160) tagitem ::= INTEGER */
-
1
,
/* (161) tagitem ::= FLOAT */
-
1
,
/* (162) tagitem ::= STRING */
-
1
,
/* (163) tagitem ::= BOOL */
-
1
,
/* (164) tagitem ::= NULL */
-
1
,
/* (165) tagitem ::= NOW */
-
3
,
/* (166) tagitem ::= NOW PLUS VARIABLE */
-
3
,
/* (167) tagitem ::= NOW MINUS VARIABLE */
-
2
,
/* (168) tagitem ::= MINUS INTEGER */
-
2
,
/* (169) tagitem ::= MINUS FLOAT */
-
2
,
/* (170) tagitem ::= PLUS INTEGER */
-
2
,
/* (171) tagitem ::= PLUS FLOAT */
-
15
,
/* (172) select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
-
3
,
/* (173) select ::= LP select RP */
-
1
,
/* (174) union ::= select */
-
4
,
/* (175) union ::= union UNION ALL select */
-
1
,
/* (176) cmd ::= union */
-
2
,
/* (177) select ::= SELECT selcollist */
-
2
,
/* (178) sclp ::= selcollist COMMA */
0
,
/* (179) sclp ::= */
-
4
,
/* (180) selcollist ::= sclp distinct expr as */
-
2
,
/* (181) selcollist ::= sclp STAR */
-
2
,
/* (182) as ::= AS ids */
-
1
,
/* (183) as ::= ids */
0
,
/* (184) as ::= */
-
1
,
/* (185) distinct ::= DISTINCT */
0
,
/* (186) distinct ::= */
-
2
,
/* (187) from ::= FROM tablelist */
-
2
,
/* (188) from ::= FROM sub */
-
3
,
/* (189) sub ::= LP union RP */
-
4
,
/* (190) sub ::= LP union RP ids */
-
6
,
/* (191) sub ::= sub COMMA LP union RP ids */
-
2
,
/* (192) tablelist ::= ids cpxName */
-
3
,
/* (193) tablelist ::= ids cpxName ids */
-
4
,
/* (194) tablelist ::= tablelist COMMA ids cpxName */
-
5
,
/* (195) tablelist ::= tablelist COMMA ids cpxName ids */
-
1
,
/* (196) tmvar ::= VARIABLE */
-
1
,
/* (197) timestamp ::= INTEGER */
-
2
,
/* (198) timestamp ::= MINUS INTEGER */
-
2
,
/* (199) timestamp ::= PLUS INTEGER */
-
1
,
/* (200) timestamp ::= STRING */
-
1
,
/* (201) timestamp ::= NOW */
-
3
,
/* (202) timestamp ::= NOW PLUS VARIABLE */
-
3
,
/* (203) timestamp ::= NOW MINUS VARIABLE */
0
,
/* (204) range_option ::= */
-
6
,
/* (205) range_option ::= RANGE LP timestamp COMMA timestamp RP */
-
4
,
/* (206) interval_option ::= intervalKey LP tmvar RP */
-
6
,
/* (207) interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
0
,
/* (208) interval_option ::= */
-
1
,
/* (209) intervalKey ::= INTERVAL */
-
1
,
/* (210) intervalKey ::= EVERY */
0
,
/* (211) session_option ::= */
-
7
,
/* (212) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
0
,
/* (213) windowstate_option ::= */
-
4
,
/* (214) windowstate_option ::= STATE_WINDOW LP ids RP */
0
,
/* (215) fill_opt ::= */
-
6
,
/* (216) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
-
4
,
/* (217) fill_opt ::= FILL LP ID RP */
-
4
,
/* (218) sliding_opt ::= SLIDING LP tmvar RP */
0
,
/* (219) sliding_opt ::= */
0
,
/* (220) orderby_opt ::= */
-
3
,
/* (221) orderby_opt ::= ORDER BY sortlist */
-
4
,
/* (222) sortlist ::= sortlist COMMA item sortorder */
-
4
,
/* (223) sortlist ::= sortlist COMMA arrow sortorder */
-
2
,
/* (224) sortlist ::= item sortorder */
-
2
,
/* (225) sortlist ::= arrow sortorder */
-
1
,
/* (226) item ::= ID */
-
3
,
/* (227) item ::= ID DOT ID */
-
1
,
/* (228) sortorder ::= ASC */
-
1
,
/* (229) sortorder ::= DESC */
0
,
/* (230) sortorder ::= */
0
,
/* (231) groupby_opt ::= */
-
3
,
/* (232) groupby_opt ::= GROUP BY grouplist */
-
3
,
/* (233) grouplist ::= grouplist COMMA item */
-
3
,
/* (234) grouplist ::= grouplist COMMA arrow */
-
1
,
/* (235) grouplist ::= item */
-
1
,
/* (236) grouplist ::= arrow */
0
,
/* (237) having_opt ::= */
-
2
,
/* (238) having_opt ::= HAVING expr */
0
,
/* (239) limit_opt ::= */
-
2
,
/* (240) limit_opt ::= LIMIT signed */
-
4
,
/* (241) limit_opt ::= LIMIT signed OFFSET signed */
-
4
,
/* (242) limit_opt ::= LIMIT signed COMMA signed */
0
,
/* (243) slimit_opt ::= */
-
2
,
/* (244) slimit_opt ::= SLIMIT signed */
-
4
,
/* (245) slimit_opt ::= SLIMIT signed SOFFSET signed */
-
4
,
/* (246) slimit_opt ::= SLIMIT signed COMMA signed */
0
,
/* (247) where_opt ::= */
-
2
,
/* (248) where_opt ::= WHERE expr */
-
3
,
/* (249) expr ::= LP expr RP */
-
1
,
/* (250) expr ::= ID */
-
3
,
/* (251) expr ::= ID DOT ID */
-
3
,
/* (252) expr ::= ID DOT STAR */
-
1
,
/* (253) expr ::= INTEGER */
-
2
,
/* (254) expr ::= MINUS INTEGER */
-
2
,
/* (255) expr ::= PLUS INTEGER */
-
1
,
/* (256) expr ::= FLOAT */
-
2
,
/* (257) expr ::= MINUS FLOAT */
-
2
,
/* (258) expr ::= PLUS FLOAT */
-
1
,
/* (259) expr ::= STRING */
-
1
,
/* (260) expr ::= NOW */
-
1
,
/* (261) expr ::= TODAY */
-
1
,
/* (262) expr ::= VARIABLE */
-
2
,
/* (263) expr ::= PLUS VARIABLE */
-
2
,
/* (264) expr ::= MINUS VARIABLE */
-
1
,
/* (265) expr ::= BOOL */
-
1
,
/* (266) expr ::= NULL */
-
4
,
/* (267) expr ::= ID LP exprlist RP */
-
4
,
/* (268) expr ::= ID LP STAR RP */
-
6
,
/* (269) expr ::= ID LP expr AS typename RP */
-
3
,
/* (270) expr ::= expr IS NULL */
-
4
,
/* (271) expr ::= expr IS NOT NULL */
-
3
,
/* (272) expr ::= expr LT expr */
-
3
,
/* (273) expr ::= expr GT expr */
-
3
,
/* (274) expr ::= expr LE expr */
-
3
,
/* (275) expr ::= expr GE expr */
-
3
,
/* (276) expr ::= expr NE expr */
-
3
,
/* (277) expr ::= expr EQ expr */
-
5
,
/* (278) expr ::= expr BETWEEN expr AND expr */
-
3
,
/* (279) expr ::= expr AND expr */
-
3
,
/* (280) expr ::= expr OR expr */
-
3
,
/* (281) expr ::= expr PLUS expr */
-
3
,
/* (282) expr ::= expr MINUS expr */
-
3
,
/* (283) expr ::= expr STAR expr */
-
3
,
/* (284) expr ::= expr SLASH expr */
-
3
,
/* (285) expr ::= expr REM expr */
-
3
,
/* (286) expr ::= expr LIKE expr */
-
3
,
/* (287) expr ::= expr MATCH expr */
-
3
,
/* (288) expr ::= expr NMATCH expr */
-
3
,
/* (289) expr ::= ID CONTAINS STRING */
-
5
,
/* (290) expr ::= ID DOT ID CONTAINS STRING */
-
3
,
/* (291) arrow ::= ID ARROW STRING */
-
5
,
/* (292) arrow ::= ID DOT ID ARROW STRING */
-
1
,
/* (293) expr ::= arrow */
-
5
,
/* (294) expr ::= expr IN LP exprlist RP */
-
3
,
/* (295) exprlist ::= exprlist COMMA expritem */
-
1
,
/* (296) exprlist ::= expritem */
-
1
,
/* (297) expritem ::= expr */
0
,
/* (298) expritem ::= */
-
3
,
/* (299) cmd ::= RESET QUERY CACHE */
-
3
,
/* (300) cmd ::= SYNCDB ids REPLICA */
-
7
,
/* (301) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
-
7
,
/* (302) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
-
7
,
/* (303) cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
-
7
,
/* (304) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
-
7
,
/* (305) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
-
8
,
/* (306) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
-
9
,
/* (307) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
-
7
,
/* (308) cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
-
7
,
/* (309) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
-
7
,
/* (310) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
-
7
,
/* (311) cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
-
7
,
/* (312) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
-
7
,
/* (313) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
-
8
,
/* (314) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
-
9
,
/* (315) cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */
-
7
,
/* (316) cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
-
3
,
/* (317) cmd ::= KILL CONNECTION INTEGER */
-
5
,
/* (318) cmd ::= KILL STREAM INTEGER COLON INTEGER */
-
5
,
/* (319) cmd ::= KILL QUERY INTEGER COLON INTEGER */
/* The following table contains information about every rule that
** is used during the reduce.
*/
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
[]
=
{
{
205
,
-
1
},
/* (0) program ::= cmd */
{
206
,
-
2
},
/* (1) cmd ::= SHOW DATABASES */
{
206
,
-
2
},
/* (2) cmd ::= SHOW TOPICS */
{
206
,
-
2
},
/* (3) cmd ::= SHOW FUNCTIONS */
{
206
,
-
2
},
/* (4) cmd ::= SHOW MNODES */
{
206
,
-
2
},
/* (5) cmd ::= SHOW DNODES */
{
206
,
-
2
},
/* (6) cmd ::= SHOW ACCOUNTS */
{
206
,
-
2
},
/* (7) cmd ::= SHOW USERS */
{
206
,
-
2
},
/* (8) cmd ::= SHOW MODULES */
{
206
,
-
2
},
/* (9) cmd ::= SHOW QUERIES */
{
206
,
-
2
},
/* (10) cmd ::= SHOW CONNECTIONS */
{
206
,
-
2
},
/* (11) cmd ::= SHOW STREAMS */
{
206
,
-
2
},
/* (12) cmd ::= SHOW VARIABLES */
{
206
,
-
2
},
/* (13) cmd ::= SHOW SCORES */
{
206
,
-
2
},
/* (14) cmd ::= SHOW GRANTS */
{
206
,
-
2
},
/* (15) cmd ::= SHOW VNODES */
{
206
,
-
3
},
/* (16) cmd ::= SHOW VNODES ids */
{
208
,
0
},
/* (17) dbPrefix ::= */
{
208
,
-
2
},
/* (18) dbPrefix ::= ids DOT */
{
209
,
0
},
/* (19) cpxName ::= */
{
209
,
-
2
},
/* (20) cpxName ::= DOT ids */
{
206
,
-
5
},
/* (21) cmd ::= SHOW CREATE TABLE ids cpxName */
{
206
,
-
5
},
/* (22) cmd ::= SHOW CREATE STABLE ids cpxName */
{
206
,
-
4
},
/* (23) cmd ::= SHOW CREATE DATABASE ids */
{
206
,
-
3
},
/* (24) cmd ::= SHOW dbPrefix TABLES */
{
206
,
-
5
},
/* (25) cmd ::= SHOW dbPrefix TABLES LIKE STRING */
{
206
,
-
3
},
/* (26) cmd ::= SHOW dbPrefix STABLES */
{
206
,
-
5
},
/* (27) cmd ::= SHOW dbPrefix STABLES LIKE STRING */
{
206
,
-
3
},
/* (28) cmd ::= SHOW dbPrefix VGROUPS */
{
206
,
-
5
},
/* (29) cmd ::= DROP TABLE ifexists ids cpxName */
{
206
,
-
5
},
/* (30) cmd ::= DROP STABLE ifexists ids cpxName */
{
206
,
-
4
},
/* (31) cmd ::= DROP DATABASE ifexists ids */
{
206
,
-
4
},
/* (32) cmd ::= DROP TOPIC ifexists ids */
{
206
,
-
3
},
/* (33) cmd ::= DROP FUNCTION ids */
{
206
,
-
3
},
/* (34) cmd ::= DROP DNODE ids */
{
206
,
-
3
},
/* (35) cmd ::= DROP USER ids */
{
206
,
-
3
},
/* (36) cmd ::= DROP ACCOUNT ids */
{
206
,
-
2
},
/* (37) cmd ::= USE ids */
{
206
,
-
3
},
/* (38) cmd ::= DESCRIBE ids cpxName */
{
206
,
-
3
},
/* (39) cmd ::= DESC ids cpxName */
{
206
,
-
5
},
/* (40) cmd ::= ALTER USER ids PASS ids */
{
206
,
-
5
},
/* (41) cmd ::= ALTER USER ids PRIVILEGE ids */
{
206
,
-
4
},
/* (42) cmd ::= ALTER DNODE ids ids */
{
206
,
-
5
},
/* (43) cmd ::= ALTER DNODE ids ids ids */
{
206
,
-
3
},
/* (44) cmd ::= ALTER LOCAL ids */
{
206
,
-
4
},
/* (45) cmd ::= ALTER LOCAL ids ids */
{
206
,
-
4
},
/* (46) cmd ::= ALTER DATABASE ids alter_db_optr */
{
206
,
-
4
},
/* (47) cmd ::= ALTER TOPIC ids alter_topic_optr */
{
206
,
-
4
},
/* (48) cmd ::= ALTER ACCOUNT ids acct_optr */
{
206
,
-
6
},
/* (49) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{
206
,
-
6
},
/* (50) cmd ::= COMPACT VNODES IN LP exprlist RP */
{
207
,
-
1
},
/* (51) ids ::= ID */
{
207
,
-
1
},
/* (52) ids ::= STRING */
{
210
,
-
2
},
/* (53) ifexists ::= IF EXISTS */
{
210
,
0
},
/* (54) ifexists ::= */
{
215
,
-
3
},
/* (55) ifnotexists ::= IF NOT EXISTS */
{
215
,
0
},
/* (56) ifnotexists ::= */
{
206
,
-
3
},
/* (57) cmd ::= CREATE DNODE ids */
{
206
,
-
6
},
/* (58) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{
206
,
-
5
},
/* (59) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
{
206
,
-
5
},
/* (60) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
{
206
,
-
8
},
/* (61) cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
{
206
,
-
9
},
/* (62) cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
{
206
,
-
5
},
/* (63) cmd ::= CREATE USER ids PASS ids */
{
219
,
0
},
/* (64) bufsize ::= */
{
219
,
-
2
},
/* (65) bufsize ::= BUFSIZE INTEGER */
{
220
,
0
},
/* (66) pps ::= */
{
220
,
-
2
},
/* (67) pps ::= PPS INTEGER */
{
221
,
0
},
/* (68) tseries ::= */
{
221
,
-
2
},
/* (69) tseries ::= TSERIES INTEGER */
{
222
,
0
},
/* (70) dbs ::= */
{
222
,
-
2
},
/* (71) dbs ::= DBS INTEGER */
{
223
,
0
},
/* (72) streams ::= */
{
223
,
-
2
},
/* (73) streams ::= STREAMS INTEGER */
{
224
,
0
},
/* (74) storage ::= */
{
224
,
-
2
},
/* (75) storage ::= STORAGE INTEGER */
{
225
,
0
},
/* (76) qtime ::= */
{
225
,
-
2
},
/* (77) qtime ::= QTIME INTEGER */
{
226
,
0
},
/* (78) users ::= */
{
226
,
-
2
},
/* (79) users ::= USERS INTEGER */
{
227
,
0
},
/* (80) conns ::= */
{
227
,
-
2
},
/* (81) conns ::= CONNS INTEGER */
{
228
,
0
},
/* (82) state ::= */
{
228
,
-
2
},
/* (83) state ::= STATE ids */
{
213
,
-
9
},
/* (84) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{
229
,
-
3
},
/* (85) intitemlist ::= intitemlist COMMA intitem */
{
229
,
-
1
},
/* (86) intitemlist ::= intitem */
{
230
,
-
1
},
/* (87) intitem ::= INTEGER */
{
231
,
-
2
},
/* (88) keep ::= KEEP intitemlist */
{
232
,
-
2
},
/* (89) cache ::= CACHE INTEGER */
{
233
,
-
2
},
/* (90) replica ::= REPLICA INTEGER */
{
234
,
-
2
},
/* (91) quorum ::= QUORUM INTEGER */
{
235
,
-
2
},
/* (92) days ::= DAYS INTEGER */
{
236
,
-
2
},
/* (93) minrows ::= MINROWS INTEGER */
{
237
,
-
2
},
/* (94) maxrows ::= MAXROWS INTEGER */
{
238
,
-
2
},
/* (95) blocks ::= BLOCKS INTEGER */
{
239
,
-
2
},
/* (96) ctime ::= CTIME INTEGER */
{
240
,
-
2
},
/* (97) wal ::= WAL INTEGER */
{
241
,
-
2
},
/* (98) fsync ::= FSYNC INTEGER */
{
242
,
-
2
},
/* (99) comp ::= COMP INTEGER */
{
243
,
-
2
},
/* (100) prec ::= PRECISION STRING */
{
244
,
-
2
},
/* (101) update ::= UPDATE INTEGER */
{
245
,
-
2
},
/* (102) cachelast ::= CACHELAST INTEGER */
{
246
,
-
2
},
/* (103) partitions ::= PARTITIONS INTEGER */
{
216
,
0
},
/* (104) db_optr ::= */
{
216
,
-
2
},
/* (105) db_optr ::= db_optr cache */
{
216
,
-
2
},
/* (106) db_optr ::= db_optr replica */
{
216
,
-
2
},
/* (107) db_optr ::= db_optr quorum */
{
216
,
-
2
},
/* (108) db_optr ::= db_optr days */
{
216
,
-
2
},
/* (109) db_optr ::= db_optr minrows */
{
216
,
-
2
},
/* (110) db_optr ::= db_optr maxrows */
{
216
,
-
2
},
/* (111) db_optr ::= db_optr blocks */
{
216
,
-
2
},
/* (112) db_optr ::= db_optr ctime */
{
216
,
-
2
},
/* (113) db_optr ::= db_optr wal */
{
216
,
-
2
},
/* (114) db_optr ::= db_optr fsync */
{
216
,
-
2
},
/* (115) db_optr ::= db_optr comp */
{
216
,
-
2
},
/* (116) db_optr ::= db_optr prec */
{
216
,
-
2
},
/* (117) db_optr ::= db_optr keep */
{
216
,
-
2
},
/* (118) db_optr ::= db_optr update */
{
216
,
-
2
},
/* (119) db_optr ::= db_optr cachelast */
{
217
,
-
1
},
/* (120) topic_optr ::= db_optr */
{
217
,
-
2
},
/* (121) topic_optr ::= topic_optr partitions */
{
211
,
0
},
/* (122) alter_db_optr ::= */
{
211
,
-
2
},
/* (123) alter_db_optr ::= alter_db_optr replica */
{
211
,
-
2
},
/* (124) alter_db_optr ::= alter_db_optr quorum */
{
211
,
-
2
},
/* (125) alter_db_optr ::= alter_db_optr keep */
{
211
,
-
2
},
/* (126) alter_db_optr ::= alter_db_optr blocks */
{
211
,
-
2
},
/* (127) alter_db_optr ::= alter_db_optr comp */
{
211
,
-
2
},
/* (128) alter_db_optr ::= alter_db_optr update */
{
211
,
-
2
},
/* (129) alter_db_optr ::= alter_db_optr cachelast */
{
212
,
-
1
},
/* (130) alter_topic_optr ::= alter_db_optr */
{
212
,
-
2
},
/* (131) alter_topic_optr ::= alter_topic_optr partitions */
{
218
,
-
1
},
/* (132) typename ::= ids */
{
218
,
-
4
},
/* (133) typename ::= ids LP signed RP */
{
218
,
-
2
},
/* (134) typename ::= ids UNSIGNED */
{
247
,
-
1
},
/* (135) signed ::= INTEGER */
{
247
,
-
2
},
/* (136) signed ::= PLUS INTEGER */
{
247
,
-
2
},
/* (137) signed ::= MINUS INTEGER */
{
206
,
-
3
},
/* (138) cmd ::= CREATE TABLE create_table_args */
{
206
,
-
3
},
/* (139) cmd ::= CREATE TABLE create_stable_args */
{
206
,
-
3
},
/* (140) cmd ::= CREATE STABLE create_stable_args */
{
206
,
-
3
},
/* (141) cmd ::= CREATE TABLE create_table_list */
{
250
,
-
1
},
/* (142) create_table_list ::= create_from_stable */
{
250
,
-
2
},
/* (143) create_table_list ::= create_table_list create_from_stable */
{
248
,
-
6
},
/* (144) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
{
249
,
-
10
},
/* (145) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
{
251
,
-
10
},
/* (146) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
{
251
,
-
13
},
/* (147) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
{
254
,
-
3
},
/* (148) tagNamelist ::= tagNamelist COMMA ids */
{
254
,
-
1
},
/* (149) tagNamelist ::= ids */
{
248
,
-
7
},
/* (150) create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select */
{
255
,
0
},
/* (151) to_opt ::= */
{
255
,
-
3
},
/* (152) to_opt ::= TO ids cpxName */
{
256
,
0
},
/* (153) split_opt ::= */
{
256
,
-
2
},
/* (154) split_opt ::= SPLIT ids */
{
252
,
-
3
},
/* (155) columnlist ::= columnlist COMMA column */
{
252
,
-
1
},
/* (156) columnlist ::= column */
{
259
,
-
2
},
/* (157) column ::= ids typename */
{
253
,
-
3
},
/* (158) tagitemlist ::= tagitemlist COMMA tagitem */
{
253
,
-
1
},
/* (159) tagitemlist ::= tagitem */
{
260
,
-
1
},
/* (160) tagitem ::= INTEGER */
{
260
,
-
1
},
/* (161) tagitem ::= FLOAT */
{
260
,
-
1
},
/* (162) tagitem ::= STRING */
{
260
,
-
1
},
/* (163) tagitem ::= BOOL */
{
260
,
-
1
},
/* (164) tagitem ::= NULL */
{
260
,
-
1
},
/* (165) tagitem ::= NOW */
{
260
,
-
3
},
/* (166) tagitem ::= NOW PLUS VARIABLE */
{
260
,
-
3
},
/* (167) tagitem ::= NOW MINUS VARIABLE */
{
260
,
-
2
},
/* (168) tagitem ::= MINUS INTEGER */
{
260
,
-
2
},
/* (169) tagitem ::= MINUS FLOAT */
{
260
,
-
2
},
/* (170) tagitem ::= PLUS INTEGER */
{
260
,
-
2
},
/* (171) tagitem ::= PLUS FLOAT */
{
257
,
-
15
},
/* (172) select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
{
257
,
-
3
},
/* (173) select ::= LP select RP */
{
275
,
-
1
},
/* (174) union ::= select */
{
275
,
-
4
},
/* (175) union ::= union UNION ALL select */
{
206
,
-
1
},
/* (176) cmd ::= union */
{
257
,
-
2
},
/* (177) select ::= SELECT selcollist */
{
276
,
-
2
},
/* (178) sclp ::= selcollist COMMA */
{
276
,
0
},
/* (179) sclp ::= */
{
261
,
-
4
},
/* (180) selcollist ::= sclp distinct expr as */
{
261
,
-
2
},
/* (181) selcollist ::= sclp STAR */
{
279
,
-
2
},
/* (182) as ::= AS ids */
{
279
,
-
1
},
/* (183) as ::= ids */
{
279
,
0
},
/* (184) as ::= */
{
277
,
-
1
},
/* (185) distinct ::= DISTINCT */
{
277
,
0
},
/* (186) distinct ::= */
{
262
,
-
2
},
/* (187) from ::= FROM tablelist */
{
262
,
-
2
},
/* (188) from ::= FROM sub */
{
281
,
-
3
},
/* (189) sub ::= LP union RP */
{
281
,
-
4
},
/* (190) sub ::= LP union RP ids */
{
281
,
-
6
},
/* (191) sub ::= sub COMMA LP union RP ids */
{
280
,
-
2
},
/* (192) tablelist ::= ids cpxName */
{
280
,
-
3
},
/* (193) tablelist ::= ids cpxName ids */
{
280
,
-
4
},
/* (194) tablelist ::= tablelist COMMA ids cpxName */
{
280
,
-
5
},
/* (195) tablelist ::= tablelist COMMA ids cpxName ids */
{
282
,
-
1
},
/* (196) tmvar ::= VARIABLE */
{
283
,
-
1
},
/* (197) timestamp ::= INTEGER */
{
283
,
-
2
},
/* (198) timestamp ::= MINUS INTEGER */
{
283
,
-
2
},
/* (199) timestamp ::= PLUS INTEGER */
{
283
,
-
1
},
/* (200) timestamp ::= STRING */
{
283
,
-
1
},
/* (201) timestamp ::= NOW */
{
283
,
-
3
},
/* (202) timestamp ::= NOW PLUS VARIABLE */
{
283
,
-
3
},
/* (203) timestamp ::= NOW MINUS VARIABLE */
{
264
,
0
},
/* (204) range_option ::= */
{
264
,
-
6
},
/* (205) range_option ::= RANGE LP timestamp COMMA timestamp RP */
{
265
,
-
4
},
/* (206) interval_option ::= intervalKey LP tmvar RP */
{
265
,
-
6
},
/* (207) interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
{
265
,
0
},
/* (208) interval_option ::= */
{
284
,
-
1
},
/* (209) intervalKey ::= INTERVAL */
{
284
,
-
1
},
/* (210) intervalKey ::= EVERY */
{
267
,
0
},
/* (211) session_option ::= */
{
267
,
-
7
},
/* (212) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
{
268
,
0
},
/* (213) windowstate_option ::= */
{
268
,
-
4
},
/* (214) windowstate_option ::= STATE_WINDOW LP ids RP */
{
269
,
0
},
/* (215) fill_opt ::= */
{
269
,
-
6
},
/* (216) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
269
,
-
4
},
/* (217) fill_opt ::= FILL LP ID RP */
{
266
,
-
4
},
/* (218) sliding_opt ::= SLIDING LP tmvar RP */
{
266
,
0
},
/* (219) sliding_opt ::= */
{
272
,
0
},
/* (220) orderby_opt ::= */
{
272
,
-
3
},
/* (221) orderby_opt ::= ORDER BY sortlist */
{
285
,
-
4
},
/* (222) sortlist ::= sortlist COMMA item sortorder */
{
285
,
-
4
},
/* (223) sortlist ::= sortlist COMMA arrow sortorder */
{
285
,
-
2
},
/* (224) sortlist ::= item sortorder */
{
285
,
-
2
},
/* (225) sortlist ::= arrow sortorder */
{
286
,
-
1
},
/* (226) item ::= ID */
{
286
,
-
3
},
/* (227) item ::= ID DOT ID */
{
287
,
-
1
},
/* (228) sortorder ::= ASC */
{
287
,
-
1
},
/* (229) sortorder ::= DESC */
{
287
,
0
},
/* (230) sortorder ::= */
{
270
,
0
},
/* (231) groupby_opt ::= */
{
270
,
-
3
},
/* (232) groupby_opt ::= GROUP BY grouplist */
{
289
,
-
3
},
/* (233) grouplist ::= grouplist COMMA item */
{
289
,
-
3
},
/* (234) grouplist ::= grouplist COMMA arrow */
{
289
,
-
1
},
/* (235) grouplist ::= item */
{
289
,
-
1
},
/* (236) grouplist ::= arrow */
{
271
,
0
},
/* (237) having_opt ::= */
{
271
,
-
2
},
/* (238) having_opt ::= HAVING expr */
{
274
,
0
},
/* (239) limit_opt ::= */
{
274
,
-
2
},
/* (240) limit_opt ::= LIMIT signed */
{
274
,
-
4
},
/* (241) limit_opt ::= LIMIT signed OFFSET signed */
{
274
,
-
4
},
/* (242) limit_opt ::= LIMIT signed COMMA signed */
{
273
,
0
},
/* (243) slimit_opt ::= */
{
273
,
-
2
},
/* (244) slimit_opt ::= SLIMIT signed */
{
273
,
-
4
},
/* (245) slimit_opt ::= SLIMIT signed SOFFSET signed */
{
273
,
-
4
},
/* (246) slimit_opt ::= SLIMIT signed COMMA signed */
{
263
,
0
},
/* (247) where_opt ::= */
{
263
,
-
2
},
/* (248) where_opt ::= WHERE expr */
{
278
,
-
3
},
/* (249) expr ::= LP expr RP */
{
278
,
-
1
},
/* (250) expr ::= ID */
{
278
,
-
3
},
/* (251) expr ::= ID DOT ID */
{
278
,
-
3
},
/* (252) expr ::= ID DOT STAR */
{
278
,
-
1
},
/* (253) expr ::= INTEGER */
{
278
,
-
2
},
/* (254) expr ::= MINUS INTEGER */
{
278
,
-
2
},
/* (255) expr ::= PLUS INTEGER */
{
278
,
-
1
},
/* (256) expr ::= FLOAT */
{
278
,
-
2
},
/* (257) expr ::= MINUS FLOAT */
{
278
,
-
2
},
/* (258) expr ::= PLUS FLOAT */
{
278
,
-
1
},
/* (259) expr ::= STRING */
{
278
,
-
1
},
/* (260) expr ::= NOW */
{
278
,
-
1
},
/* (261) expr ::= TODAY */
{
278
,
-
1
},
/* (262) expr ::= VARIABLE */
{
278
,
-
2
},
/* (263) expr ::= PLUS VARIABLE */
{
278
,
-
2
},
/* (264) expr ::= MINUS VARIABLE */
{
278
,
-
1
},
/* (265) expr ::= BOOL */
{
278
,
-
1
},
/* (266) expr ::= NULL */
{
278
,
-
4
},
/* (267) expr ::= ID LP exprlist RP */
{
278
,
-
4
},
/* (268) expr ::= ID LP STAR RP */
{
278
,
-
6
},
/* (269) expr ::= ID LP expr AS typename RP */
{
278
,
-
3
},
/* (270) expr ::= expr IS NULL */
{
278
,
-
4
},
/* (271) expr ::= expr IS NOT NULL */
{
278
,
-
3
},
/* (272) expr ::= expr LT expr */
{
278
,
-
3
},
/* (273) expr ::= expr GT expr */
{
278
,
-
3
},
/* (274) expr ::= expr LE expr */
{
278
,
-
3
},
/* (275) expr ::= expr GE expr */
{
278
,
-
3
},
/* (276) expr ::= expr NE expr */
{
278
,
-
3
},
/* (277) expr ::= expr EQ expr */
{
278
,
-
5
},
/* (278) expr ::= expr BETWEEN expr AND expr */
{
278
,
-
3
},
/* (279) expr ::= expr AND expr */
{
278
,
-
3
},
/* (280) expr ::= expr OR expr */
{
278
,
-
3
},
/* (281) expr ::= expr PLUS expr */
{
278
,
-
3
},
/* (282) expr ::= expr MINUS expr */
{
278
,
-
3
},
/* (283) expr ::= expr STAR expr */
{
278
,
-
3
},
/* (284) expr ::= expr SLASH expr */
{
278
,
-
3
},
/* (285) expr ::= expr REM expr */
{
278
,
-
3
},
/* (286) expr ::= expr LIKE expr */
{
278
,
-
3
},
/* (287) expr ::= expr MATCH expr */
{
278
,
-
3
},
/* (288) expr ::= expr NMATCH expr */
{
278
,
-
3
},
/* (289) expr ::= ID CONTAINS STRING */
{
278
,
-
5
},
/* (290) expr ::= ID DOT ID CONTAINS STRING */
{
288
,
-
3
},
/* (291) arrow ::= ID ARROW STRING */
{
288
,
-
5
},
/* (292) arrow ::= ID DOT ID ARROW STRING */
{
278
,
-
1
},
/* (293) expr ::= arrow */
{
278
,
-
5
},
/* (294) expr ::= expr IN LP exprlist RP */
{
214
,
-
3
},
/* (295) exprlist ::= exprlist COMMA expritem */
{
214
,
-
1
},
/* (296) exprlist ::= expritem */
{
290
,
-
1
},
/* (297) expritem ::= expr */
{
290
,
0
},
/* (298) expritem ::= */
{
206
,
-
3
},
/* (299) cmd ::= RESET QUERY CACHE */
{
206
,
-
3
},
/* (300) cmd ::= SYNCDB ids REPLICA */
{
206
,
-
7
},
/* (301) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{
206
,
-
7
},
/* (302) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{
206
,
-
7
},
/* (303) cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
{
206
,
-
7
},
/* (304) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
206
,
-
7
},
/* (305) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{
206
,
-
8
},
/* (306) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{
206
,
-
9
},
/* (307) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{
206
,
-
7
},
/* (308) cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
{
206
,
-
7
},
/* (309) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
{
206
,
-
7
},
/* (310) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
{
206
,
-
7
},
/* (311) cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
{
206
,
-
7
},
/* (312) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
{
206
,
-
7
},
/* (313) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
{
206
,
-
8
},
/* (314) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
{
206
,
-
9
},
/* (315) cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */
{
206
,
-
7
},
/* (316) cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
{
206
,
-
3
},
/* (317) cmd ::= KILL CONNECTION INTEGER */
{
206
,
-
5
},
/* (318) cmd ::= KILL STREAM INTEGER COLON INTEGER */
{
206
,
-
5
},
/* (319) cmd ::= KILL QUERY INTEGER COLON INTEGER */
{
206
,
-
6
},
/* (320) cmd ::= DELETE FROM ifexists ids cpxName where_opt */
};
static
void
yy_accept
(
yyParser
*
);
/* Forward Declaration */
...
...
@@ -2596,17 +2286,14 @@ static YYACTIONTYPE yy_reduce(
yymsp
=
yypParser
->
yytos
;
#ifndef NDEBUG
if
(
yyTraceFILE
&&
yyruleno
<
(
int
)(
sizeof
(
yyRuleName
)
/
sizeof
(
yyRuleName
[
0
]))
){
yysize
=
yyRuleInfo
NRhs
[
yyruleno
]
;
yysize
=
yyRuleInfo
[
yyruleno
].
nrhs
;
if
(
yysize
){
fprintf
(
yyTraceFILE
,
"%sReduce %d [%s]
%s, pop back
to state %d.
\n
"
,
fprintf
(
yyTraceFILE
,
"%sReduce %d [%s]
, go
to state %d.
\n
"
,
yyTracePrompt
,
yyruleno
,
yyRuleName
[
yyruleno
],
yyruleno
<
YYNRULE_WITH_ACTION
?
""
:
" without external action"
,
yymsp
[
yysize
].
stateno
);
yyruleno
,
yyRuleName
[
yyruleno
],
yymsp
[
yysize
].
stateno
);
}
else
{
fprintf
(
yyTraceFILE
,
"%sReduce %d [%s]%s.
\n
"
,
yyTracePrompt
,
yyruleno
,
yyRuleName
[
yyruleno
],
yyruleno
<
YYNRULE_WITH_ACTION
?
""
:
" without external action"
);
fprintf
(
yyTraceFILE
,
"%sReduce %d [%s].
\n
"
,
yyTracePrompt
,
yyruleno
,
yyRuleName
[
yyruleno
]);
}
}
#endif
/* NDEBUG */
...
...
@@ -2614,7 +2301,7 @@ static YYACTIONTYPE yy_reduce(
/* Check that the stack is large enough to grow by a single entry
** if the RHS of the rule is empty. This ensures that there is room
** enough on the stack to push the LHS value */
if
(
yyRuleInfo
NRhs
[
yyruleno
]
==
0
){
if
(
yyRuleInfo
[
yyruleno
].
nrhs
==
0
){
#ifdef YYTRACKMAXSTACKDEPTH
if
(
(
int
)(
yypParser
->
yytos
-
yypParser
->
yystack
)
>
yypParser
->
yyhwm
){
yypParser
->
yyhwm
++
;
...
...
@@ -2827,16 +2514,16 @@ static YYACTIONTYPE yy_reduce(
break
;
case
46
:
/* cmd ::= ALTER DATABASE ids alter_db_optr */
case
47
:
/* cmd ::= ALTER TOPIC ids alter_topic_optr */
yytestcase
(
yyruleno
==
47
);
{
SStrToken
t
=
{
0
};
setCreateDbInfo
(
pInfo
,
TSDB_SQL_ALTER_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
302
,
&
t
);}
{
SStrToken
t
=
{
0
};
setCreateDbInfo
(
pInfo
,
TSDB_SQL_ALTER_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
436
,
&
t
);}
break
;
case
48
:
/* cmd ::= ALTER ACCOUNT ids acct_optr */
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
,
&
yymsp
[
0
].
minor
.
yy
231
);}
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
,
&
yymsp
[
0
].
minor
.
yy
517
);}
break
;
case
49
:
/* 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
231
);}
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
517
);}
break
;
case
50
:
/* cmd ::= COMPACT VNODES IN LP exprlist RP */
{
setCompactVnodeSql
(
pInfo
,
TSDB_SQL_COMPACT_VNODE
,
yymsp
[
-
1
].
minor
.
yy
161
);}
{
setCompactVnodeSql
(
pInfo
,
TSDB_SQL_COMPACT_VNODE
,
yymsp
[
-
1
].
minor
.
yy
525
);}
break
;
case
51
:
/* ids ::= ID */
case
52
:
/* ids ::= STRING */
yytestcase
(
yyruleno
==
52
);
...
...
@@ -2858,17 +2545,17 @@ static YYACTIONTYPE yy_reduce(
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_CREATE_DNODE
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);}
break
;
case
58
:
/* 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
231
);}
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_CREATE_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
517
);}
break
;
case
59
:
/* cmd ::= CREATE DATABASE ifnotexists ids db_optr */
case
60
:
/* cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
yytestcase
(
yyruleno
==
60
);
{
setCreateDbInfo
(
pInfo
,
TSDB_SQL_CREATE_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
302
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
{
setCreateDbInfo
(
pInfo
,
TSDB_SQL_CREATE_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
436
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
break
;
case
61
:
/* cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
{
setCreateFuncInfo
(
pInfo
,
TSDB_SQL_CREATE_FUNCTION
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy
223
,
&
yymsp
[
0
].
minor
.
yy0
,
1
);}
{
setCreateFuncInfo
(
pInfo
,
TSDB_SQL_CREATE_FUNCTION
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy
115
,
&
yymsp
[
0
].
minor
.
yy0
,
1
);}
break
;
case
62
:
/* cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
{
setCreateFuncInfo
(
pInfo
,
TSDB_SQL_CREATE_FUNCTION
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy
223
,
&
yymsp
[
0
].
minor
.
yy0
,
2
);}
{
setCreateFuncInfo
(
pInfo
,
TSDB_SQL_CREATE_FUNCTION
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy
115
,
&
yymsp
[
0
].
minor
.
yy0
,
2
);}
break
;
case
63
:
/* cmd ::= CREATE USER ids PASS ids */
{
setCreateUserSql
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);}
...
...
@@ -2899,38 +2586,38 @@ static YYACTIONTYPE yy_reduce(
break
;
case
84
:
/* acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{
yylhsminor
.
yy
231
.
maxUsers
=
(
yymsp
[
-
2
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
2
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
231
.
maxDbs
=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
3
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
231
.
maxTimeSeries
=
(
yymsp
[
-
7
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
7
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
231
.
maxStreams
=
(
yymsp
[
-
5
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
5
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
231
.
maxPointsPerSecond
=
(
yymsp
[
-
8
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
8
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
231
.
maxStorage
=
(
yymsp
[
-
6
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
6
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy
231
.
maxQueryTime
=
(
yymsp
[
-
4
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
4
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy
231
.
maxConnections
=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
1
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
231
.
stat
=
yymsp
[
0
].
minor
.
yy0
;
yylhsminor
.
yy
517
.
maxUsers
=
(
yymsp
[
-
2
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
2
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
517
.
maxDbs
=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
3
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
517
.
maxTimeSeries
=
(
yymsp
[
-
7
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
7
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
517
.
maxStreams
=
(
yymsp
[
-
5
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
5
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
517
.
maxPointsPerSecond
=
(
yymsp
[
-
8
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
8
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
517
.
maxStorage
=
(
yymsp
[
-
6
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
6
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy
517
.
maxQueryTime
=
(
yymsp
[
-
4
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
4
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy
517
.
maxConnections
=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
1
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
517
.
stat
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
-
8
].
minor
.
yy
231
=
yylhsminor
.
yy231
;
yymsp
[
-
8
].
minor
.
yy
517
=
yylhsminor
.
yy517
;
break
;
case
85
:
/* intitemlist ::= intitemlist COMMA intitem */
case
158
:
/* tagitemlist ::= tagitemlist COMMA tagitem */
yytestcase
(
yyruleno
==
158
);
{
yylhsminor
.
yy
161
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy161
,
&
yymsp
[
0
].
minor
.
yy526
,
-
1
);
}
yymsp
[
-
2
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
{
yylhsminor
.
yy
525
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy525
,
&
yymsp
[
0
].
minor
.
yy110
,
-
1
);
}
yymsp
[
-
2
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
86
:
/* intitemlist ::= intitem */
case
159
:
/* tagitemlist ::= tagitem */
yytestcase
(
yyruleno
==
159
);
{
yylhsminor
.
yy
161
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy526
,
-
1
);
}
yymsp
[
0
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
{
yylhsminor
.
yy
525
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy110
,
-
1
);
}
yymsp
[
0
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
87
:
/* intitem ::= INTEGER */
case
160
:
/* tagitem ::= INTEGER */
yytestcase
(
yyruleno
==
160
);
case
161
:
/* tagitem ::= FLOAT */
yytestcase
(
yyruleno
==
161
);
case
162
:
/* tagitem ::= STRING */
yytestcase
(
yyruleno
==
162
);
case
163
:
/* tagitem ::= BOOL */
yytestcase
(
yyruleno
==
163
);
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy
526
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
526
=
yylhsminor
.
yy526
;
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy
110
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
110
=
yylhsminor
.
yy110
;
break
;
case
88
:
/* keep ::= KEEP intitemlist */
{
yymsp
[
-
1
].
minor
.
yy
161
=
yymsp
[
0
].
minor
.
yy161
;
}
{
yymsp
[
-
1
].
minor
.
yy
525
=
yymsp
[
0
].
minor
.
yy525
;
}
break
;
case
89
:
/* cache ::= CACHE INTEGER */
case
90
:
/* replica ::= REPLICA INTEGER */
yytestcase
(
yyruleno
==
90
);
...
...
@@ -2950,200 +2637,200 @@ static YYACTIONTYPE yy_reduce(
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
break
;
case
104
:
/* db_optr ::= */
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy
302
);
yymsp
[
1
].
minor
.
yy302
.
dbType
=
TSDB_DB_TYPE_DEFAULT
;}
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy
436
);
yymsp
[
1
].
minor
.
yy436
.
dbType
=
TSDB_DB_TYPE_DEFAULT
;}
break
;
case
105
:
/* db_optr ::= db_optr cache */
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
cacheBlockSize
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
{
yylhsminor
.
yy
436
=
yymsp
[
-
1
].
minor
.
yy436
;
yylhsminor
.
yy436
.
cacheBlockSize
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
436
=
yylhsminor
.
yy436
;
break
;
case
106
:
/* db_optr ::= db_optr replica */
case
123
:
/* alter_db_optr ::= alter_db_optr replica */
yytestcase
(
yyruleno
==
123
);
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
replica
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
{
yylhsminor
.
yy
436
=
yymsp
[
-
1
].
minor
.
yy436
;
yylhsminor
.
yy436
.
replica
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
436
=
yylhsminor
.
yy436
;
break
;
case
107
:
/* db_optr ::= db_optr quorum */
case
124
:
/* alter_db_optr ::= alter_db_optr quorum */
yytestcase
(
yyruleno
==
124
);
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
quorum
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
{
yylhsminor
.
yy
436
=
yymsp
[
-
1
].
minor
.
yy436
;
yylhsminor
.
yy436
.
quorum
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
436
=
yylhsminor
.
yy436
;
break
;
case
108
:
/* db_optr ::= db_optr days */
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
daysPerFile
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
{
yylhsminor
.
yy
436
=
yymsp
[
-
1
].
minor
.
yy436
;
yylhsminor
.
yy436
.
daysPerFile
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
436
=
yylhsminor
.
yy436
;
break
;
case
109
:
/* db_optr ::= db_optr minrows */
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
minRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
{
yylhsminor
.
yy
436
=
yymsp
[
-
1
].
minor
.
yy436
;
yylhsminor
.
yy436
.
minRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
436
=
yylhsminor
.
yy436
;
break
;
case
110
:
/* db_optr ::= db_optr maxrows */
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
maxRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
{
yylhsminor
.
yy
436
=
yymsp
[
-
1
].
minor
.
yy436
;
yylhsminor
.
yy436
.
maxRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
436
=
yylhsminor
.
yy436
;
break
;
case
111
:
/* db_optr ::= db_optr blocks */
case
126
:
/* alter_db_optr ::= alter_db_optr blocks */
yytestcase
(
yyruleno
==
126
);
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
numOfBlocks
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
{
yylhsminor
.
yy
436
=
yymsp
[
-
1
].
minor
.
yy436
;
yylhsminor
.
yy436
.
numOfBlocks
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
436
=
yylhsminor
.
yy436
;
break
;
case
112
:
/* db_optr ::= db_optr ctime */
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
commitTime
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
{
yylhsminor
.
yy
436
=
yymsp
[
-
1
].
minor
.
yy436
;
yylhsminor
.
yy436
.
commitTime
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
436
=
yylhsminor
.
yy436
;
break
;
case
113
:
/* db_optr ::= db_optr wal */
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
walLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
{
yylhsminor
.
yy
436
=
yymsp
[
-
1
].
minor
.
yy436
;
yylhsminor
.
yy436
.
walLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
436
=
yylhsminor
.
yy436
;
break
;
case
114
:
/* db_optr ::= db_optr fsync */
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
fsyncPeriod
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
{
yylhsminor
.
yy
436
=
yymsp
[
-
1
].
minor
.
yy436
;
yylhsminor
.
yy436
.
fsyncPeriod
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
436
=
yylhsminor
.
yy436
;
break
;
case
115
:
/* db_optr ::= db_optr comp */
case
127
:
/* alter_db_optr ::= alter_db_optr comp */
yytestcase
(
yyruleno
==
127
);
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
compressionLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
{
yylhsminor
.
yy
436
=
yymsp
[
-
1
].
minor
.
yy436
;
yylhsminor
.
yy436
.
compressionLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
436
=
yylhsminor
.
yy436
;
break
;
case
116
:
/* db_optr ::= db_optr prec */
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
precision
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
{
yylhsminor
.
yy
436
=
yymsp
[
-
1
].
minor
.
yy436
;
yylhsminor
.
yy436
.
precision
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
-
1
].
minor
.
yy
436
=
yylhsminor
.
yy436
;
break
;
case
117
:
/* db_optr ::= db_optr keep */
case
125
:
/* alter_db_optr ::= alter_db_optr keep */
yytestcase
(
yyruleno
==
125
);
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
keep
=
yymsp
[
0
].
minor
.
yy161
;
}
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
{
yylhsminor
.
yy
436
=
yymsp
[
-
1
].
minor
.
yy436
;
yylhsminor
.
yy436
.
keep
=
yymsp
[
0
].
minor
.
yy525
;
}
yymsp
[
-
1
].
minor
.
yy
436
=
yylhsminor
.
yy436
;
break
;
case
118
:
/* db_optr ::= db_optr update */
case
128
:
/* alter_db_optr ::= alter_db_optr update */
yytestcase
(
yyruleno
==
128
);
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
update
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
{
yylhsminor
.
yy
436
=
yymsp
[
-
1
].
minor
.
yy436
;
yylhsminor
.
yy436
.
update
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
436
=
yylhsminor
.
yy436
;
break
;
case
119
:
/* db_optr ::= db_optr cachelast */
case
129
:
/* alter_db_optr ::= alter_db_optr cachelast */
yytestcase
(
yyruleno
==
129
);
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
cachelast
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
{
yylhsminor
.
yy
436
=
yymsp
[
-
1
].
minor
.
yy436
;
yylhsminor
.
yy436
.
cachelast
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
436
=
yylhsminor
.
yy436
;
break
;
case
120
:
/* topic_optr ::= db_optr */
case
130
:
/* alter_topic_optr ::= alter_db_optr */
yytestcase
(
yyruleno
==
130
);
{
yylhsminor
.
yy
302
=
yymsp
[
0
].
minor
.
yy302
;
yylhsminor
.
yy302
.
dbType
=
TSDB_DB_TYPE_TOPIC
;
}
yymsp
[
0
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
{
yylhsminor
.
yy
436
=
yymsp
[
0
].
minor
.
yy436
;
yylhsminor
.
yy436
.
dbType
=
TSDB_DB_TYPE_TOPIC
;
}
yymsp
[
0
].
minor
.
yy
436
=
yylhsminor
.
yy436
;
break
;
case
121
:
/* topic_optr ::= topic_optr partitions */
case
131
:
/* alter_topic_optr ::= alter_topic_optr partitions */
yytestcase
(
yyruleno
==
131
);
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
partitions
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
{
yylhsminor
.
yy
436
=
yymsp
[
-
1
].
minor
.
yy436
;
yylhsminor
.
yy436
.
partitions
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
436
=
yylhsminor
.
yy436
;
break
;
case
122
:
/* alter_db_optr ::= */
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy
302
);
yymsp
[
1
].
minor
.
yy302
.
dbType
=
TSDB_DB_TYPE_DEFAULT
;}
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy
436
);
yymsp
[
1
].
minor
.
yy436
.
dbType
=
TSDB_DB_TYPE_DEFAULT
;}
break
;
case
132
:
/* typename ::= ids */
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tSetColumnType
(
&
yylhsminor
.
yy
223
,
&
yymsp
[
0
].
minor
.
yy0
);
tSetColumnType
(
&
yylhsminor
.
yy
115
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
223
=
yylhsminor
.
yy223
;
yymsp
[
0
].
minor
.
yy
115
=
yylhsminor
.
yy115
;
break
;
case
133
:
/* typename ::= ids LP signed RP */
{
if
(
yymsp
[
-
1
].
minor
.
yy
369
<=
0
)
{
if
(
yymsp
[
-
1
].
minor
.
yy
543
<=
0
)
{
yymsp
[
-
3
].
minor
.
yy0
.
type
=
0
;
tSetColumnType
(
&
yylhsminor
.
yy
223
,
&
yymsp
[
-
3
].
minor
.
yy0
);
tSetColumnType
(
&
yylhsminor
.
yy
115
,
&
yymsp
[
-
3
].
minor
.
yy0
);
}
else
{
yymsp
[
-
3
].
minor
.
yy0
.
type
=
-
yymsp
[
-
1
].
minor
.
yy
369
;
// negative value of name length
tSetColumnType
(
&
yylhsminor
.
yy
223
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yymsp
[
-
3
].
minor
.
yy0
.
type
=
-
yymsp
[
-
1
].
minor
.
yy
543
;
// negative value of name length
tSetColumnType
(
&
yylhsminor
.
yy
115
,
&
yymsp
[
-
3
].
minor
.
yy0
);
}
}
yymsp
[
-
3
].
minor
.
yy
223
=
yylhsminor
.
yy223
;
yymsp
[
-
3
].
minor
.
yy
115
=
yylhsminor
.
yy115
;
break
;
case
134
:
/* 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
.
yy
223
,
&
yymsp
[
-
1
].
minor
.
yy0
);
tSetColumnType
(
&
yylhsminor
.
yy
115
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
yymsp
[
-
1
].
minor
.
yy
223
=
yylhsminor
.
yy223
;
yymsp
[
-
1
].
minor
.
yy
115
=
yylhsminor
.
yy115
;
break
;
case
135
:
/* signed ::= INTEGER */
{
yylhsminor
.
yy
369
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
0
].
minor
.
yy
369
=
yylhsminor
.
yy369
;
{
yylhsminor
.
yy
543
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
0
].
minor
.
yy
543
=
yylhsminor
.
yy543
;
break
;
case
136
:
/* signed ::= PLUS INTEGER */
{
yymsp
[
-
1
].
minor
.
yy
369
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yymsp
[
-
1
].
minor
.
yy
543
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
break
;
case
137
:
/* signed ::= MINUS INTEGER */
{
yymsp
[
-
1
].
minor
.
yy
369
=
-
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);}
{
yymsp
[
-
1
].
minor
.
yy
543
=
-
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);}
break
;
case
141
:
/* cmd ::= CREATE TABLE create_table_list */
{
pInfo
->
type
=
TSDB_SQL_CREATE_TABLE
;
pInfo
->
pCreateTableInfo
=
yymsp
[
0
].
minor
.
yy
46
2
;}
{
pInfo
->
type
=
TSDB_SQL_CREATE_TABLE
;
pInfo
->
pCreateTableInfo
=
yymsp
[
0
].
minor
.
yy
57
2
;}
break
;
case
142
:
/* create_table_list ::= create_from_stable */
{
SCreateTableSql
*
pCreateTable
=
calloc
(
1
,
sizeof
(
SCreateTableSql
));
pCreateTable
->
childTableInfo
=
taosArrayInit
(
4
,
sizeof
(
SCreatedTableInfo
));
taosArrayPush
(
pCreateTable
->
childTableInfo
,
&
yymsp
[
0
].
minor
.
yy
356
);
taosArrayPush
(
pCreateTable
->
childTableInfo
,
&
yymsp
[
0
].
minor
.
yy
480
);
pCreateTable
->
type
=
TSQL_CREATE_TABLE_FROM_STABLE
;
yylhsminor
.
yy
46
2
=
pCreateTable
;
yylhsminor
.
yy
57
2
=
pCreateTable
;
}
yymsp
[
0
].
minor
.
yy
462
=
yylhsminor
.
yy46
2
;
yymsp
[
0
].
minor
.
yy
572
=
yylhsminor
.
yy57
2
;
break
;
case
143
:
/* create_table_list ::= create_table_list create_from_stable */
{
taosArrayPush
(
yymsp
[
-
1
].
minor
.
yy
462
->
childTableInfo
,
&
yymsp
[
0
].
minor
.
yy356
);
yylhsminor
.
yy
462
=
yymsp
[
-
1
].
minor
.
yy46
2
;
taosArrayPush
(
yymsp
[
-
1
].
minor
.
yy
572
->
childTableInfo
,
&
yymsp
[
0
].
minor
.
yy480
);
yylhsminor
.
yy
572
=
yymsp
[
-
1
].
minor
.
yy57
2
;
}
yymsp
[
-
1
].
minor
.
yy
462
=
yylhsminor
.
yy46
2
;
yymsp
[
-
1
].
minor
.
yy
572
=
yylhsminor
.
yy57
2
;
break
;
case
144
:
/* create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
{
yylhsminor
.
yy
462
=
tSetCreateTableInfo
(
yymsp
[
-
1
].
minor
.
yy161
,
NULL
,
NULL
,
TSQL_CREATE_TABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy
46
2
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yylhsminor
.
yy
572
=
tSetCreateTableInfo
(
yymsp
[
-
1
].
minor
.
yy525
,
NULL
,
NULL
,
TSQL_CREATE_TABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy
57
2
,
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
.
yy
462
=
yylhsminor
.
yy46
2
;
yymsp
[
-
5
].
minor
.
yy
572
=
yylhsminor
.
yy57
2
;
break
;
case
145
:
/* create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
{
yylhsminor
.
yy
462
=
tSetCreateTableInfo
(
yymsp
[
-
5
].
minor
.
yy161
,
yymsp
[
-
1
].
minor
.
yy161
,
NULL
,
TSQL_CREATE_STABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy
46
2
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yylhsminor
.
yy
572
=
tSetCreateTableInfo
(
yymsp
[
-
5
].
minor
.
yy525
,
yymsp
[
-
1
].
minor
.
yy525
,
NULL
,
TSQL_CREATE_STABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy
57
2
,
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
.
yy
462
=
yylhsminor
.
yy46
2
;
yymsp
[
-
9
].
minor
.
yy
572
=
yylhsminor
.
yy57
2
;
break
;
case
146
:
/* 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
.
yy
356
=
createNewChildTableInfo
(
&
yymsp
[
-
5
].
minor
.
yy0
,
NULL
,
yymsp
[
-
1
].
minor
.
yy161
,
&
yymsp
[
-
8
].
minor
.
yy0
,
&
yymsp
[
-
9
].
minor
.
yy0
);
yylhsminor
.
yy
480
=
createNewChildTableInfo
(
&
yymsp
[
-
5
].
minor
.
yy0
,
NULL
,
yymsp
[
-
1
].
minor
.
yy525
,
&
yymsp
[
-
8
].
minor
.
yy0
,
&
yymsp
[
-
9
].
minor
.
yy0
);
}
yymsp
[
-
9
].
minor
.
yy
356
=
yylhsminor
.
yy356
;
yymsp
[
-
9
].
minor
.
yy
480
=
yylhsminor
.
yy480
;
break
;
case
147
:
/* 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
.
yy
356
=
createNewChildTableInfo
(
&
yymsp
[
-
8
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy161
,
yymsp
[
-
1
].
minor
.
yy161
,
&
yymsp
[
-
11
].
minor
.
yy0
,
&
yymsp
[
-
12
].
minor
.
yy0
);
yylhsminor
.
yy
480
=
createNewChildTableInfo
(
&
yymsp
[
-
8
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy525
,
yymsp
[
-
1
].
minor
.
yy525
,
&
yymsp
[
-
11
].
minor
.
yy0
,
&
yymsp
[
-
12
].
minor
.
yy0
);
}
yymsp
[
-
12
].
minor
.
yy
356
=
yylhsminor
.
yy356
;
yymsp
[
-
12
].
minor
.
yy
480
=
yylhsminor
.
yy480
;
break
;
case
148
:
/* tagNamelist ::= tagNamelist COMMA ids */
{
taosArrayPush
(
yymsp
[
-
2
].
minor
.
yy
161
,
&
yymsp
[
0
].
minor
.
yy0
);
yylhsminor
.
yy161
=
yymsp
[
-
2
].
minor
.
yy161
;
}
yymsp
[
-
2
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
{
taosArrayPush
(
yymsp
[
-
2
].
minor
.
yy
525
,
&
yymsp
[
0
].
minor
.
yy0
);
yylhsminor
.
yy525
=
yymsp
[
-
2
].
minor
.
yy525
;
}
yymsp
[
-
2
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
149
:
/* tagNamelist ::= ids */
{
yylhsminor
.
yy
161
=
taosArrayInit
(
4
,
sizeof
(
SStrToken
));
taosArrayPush
(
yylhsminor
.
yy161
,
&
yymsp
[
0
].
minor
.
yy0
);}
yymsp
[
0
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
{
yylhsminor
.
yy
525
=
taosArrayInit
(
4
,
sizeof
(
SStrToken
));
taosArrayPush
(
yylhsminor
.
yy525
,
&
yymsp
[
0
].
minor
.
yy0
);}
yymsp
[
0
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
150
:
/* create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select */
{
yylhsminor
.
yy
462
=
tSetCreateTableInfo
(
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy27
6
,
TSQL_CREATE_STREAM
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy
46
2
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yylhsminor
.
yy
572
=
tSetCreateTableInfo
(
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy8
6
,
TSQL_CREATE_STREAM
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy
57
2
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
setCreatedStreamOpt
(
pInfo
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
2
].
minor
.
yy0
);
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
setCreatedTableName
(
pInfo
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
-
6
].
minor
.
yy0
);
}
yymsp
[
-
6
].
minor
.
yy
462
=
yylhsminor
.
yy46
2
;
yymsp
[
-
6
].
minor
.
yy
572
=
yylhsminor
.
yy57
2
;
break
;
case
151
:
/* to_opt ::= */
case
153
:
/* split_opt ::= */
yytestcase
(
yyruleno
==
153
);
...
...
@@ -3159,37 +2846,37 @@ static YYACTIONTYPE yy_reduce(
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;}
break
;
case
155
:
/* columnlist ::= columnlist COMMA column */
{
taosArrayPush
(
yymsp
[
-
2
].
minor
.
yy
161
,
&
yymsp
[
0
].
minor
.
yy223
);
yylhsminor
.
yy161
=
yymsp
[
-
2
].
minor
.
yy161
;
}
yymsp
[
-
2
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
{
taosArrayPush
(
yymsp
[
-
2
].
minor
.
yy
525
,
&
yymsp
[
0
].
minor
.
yy115
);
yylhsminor
.
yy525
=
yymsp
[
-
2
].
minor
.
yy525
;
}
yymsp
[
-
2
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
156
:
/* columnlist ::= column */
{
yylhsminor
.
yy
161
=
taosArrayInit
(
4
,
sizeof
(
TAOS_FIELD
));
taosArrayPush
(
yylhsminor
.
yy161
,
&
yymsp
[
0
].
minor
.
yy223
);}
yymsp
[
0
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
{
yylhsminor
.
yy
525
=
taosArrayInit
(
4
,
sizeof
(
TAOS_FIELD
));
taosArrayPush
(
yylhsminor
.
yy525
,
&
yymsp
[
0
].
minor
.
yy115
);}
yymsp
[
0
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
157
:
/* column ::= ids typename */
{
tSetColumnInfo
(
&
yylhsminor
.
yy
223
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy223
);
tSetColumnInfo
(
&
yylhsminor
.
yy
115
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy115
);
}
yymsp
[
-
1
].
minor
.
yy
223
=
yylhsminor
.
yy223
;
yymsp
[
-
1
].
minor
.
yy
115
=
yylhsminor
.
yy115
;
break
;
case
164
:
/* tagitem ::= NULL */
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tVariantCreate
(
&
yylhsminor
.
yy
526
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
526
=
yylhsminor
.
yy526
;
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tVariantCreate
(
&
yylhsminor
.
yy
110
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
110
=
yylhsminor
.
yy110
;
break
;
case
165
:
/* tagitem ::= NOW */
{
yymsp
[
0
].
minor
.
yy0
.
type
=
TSDB_DATA_TYPE_TIMESTAMP
;
tVariantCreateExt
(
&
yylhsminor
.
yy
526
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
,
true
);}
yymsp
[
0
].
minor
.
yy
526
=
yylhsminor
.
yy526
;
{
yymsp
[
0
].
minor
.
yy0
.
type
=
TSDB_DATA_TYPE_TIMESTAMP
;
tVariantCreateExt
(
&
yylhsminor
.
yy
110
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
,
true
);}
yymsp
[
0
].
minor
.
yy
110
=
yylhsminor
.
yy110
;
break
;
case
166
:
/* tagitem ::= NOW PLUS VARIABLE */
{
yymsp
[
0
].
minor
.
yy0
.
type
=
TSDB_DATA_TYPE_TIMESTAMP
;
tVariantCreateExt
(
&
yymsp
[
-
2
].
minor
.
yy
526
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_PLUS
,
true
);
tVariantCreateExt
(
&
yymsp
[
-
2
].
minor
.
yy
110
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_PLUS
,
true
);
}
break
;
case
167
:
/* tagitem ::= NOW MINUS VARIABLE */
{
yymsp
[
0
].
minor
.
yy0
.
type
=
TSDB_DATA_TYPE_TIMESTAMP
;
tVariantCreateExt
(
&
yymsp
[
-
2
].
minor
.
yy
526
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_MINUS
,
true
);
tVariantCreateExt
(
&
yymsp
[
-
2
].
minor
.
yy
110
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_MINUS
,
true
);
}
break
;
case
168
:
/* tagitem ::= MINUS INTEGER */
...
...
@@ -3200,56 +2887,56 @@ static YYACTIONTYPE 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
526
,
&
yymsp
[
-
1
].
minor
.
yy0
);
tVariantCreate
(
&
yylhsminor
.
yy
110
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
yymsp
[
-
1
].
minor
.
yy
526
=
yylhsminor
.
yy526
;
yymsp
[
-
1
].
minor
.
yy
110
=
yylhsminor
.
yy110
;
break
;
case
172
:
/* select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
{
yylhsminor
.
yy
276
=
tSetQuerySqlNode
(
&
yymsp
[
-
14
].
minor
.
yy0
,
yymsp
[
-
13
].
minor
.
yy161
,
yymsp
[
-
12
].
minor
.
yy84
,
yymsp
[
-
11
].
minor
.
yy546
,
yymsp
[
-
4
].
minor
.
yy161
,
yymsp
[
-
2
].
minor
.
yy161
,
&
yymsp
[
-
9
].
minor
.
yy300
,
&
yymsp
[
-
7
].
minor
.
yy219
,
&
yymsp
[
-
6
].
minor
.
yy548
,
&
yymsp
[
-
8
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy161
,
&
yymsp
[
0
].
minor
.
yy394
,
&
yymsp
[
-
1
].
minor
.
yy394
,
yymsp
[
-
3
].
minor
.
yy546
,
&
yymsp
[
-
10
].
minor
.
yy42
0
);
yylhsminor
.
yy
86
=
tSetQuerySqlNode
(
&
yymsp
[
-
14
].
minor
.
yy0
,
yymsp
[
-
13
].
minor
.
yy525
,
yymsp
[
-
12
].
minor
.
yy328
,
yymsp
[
-
11
].
minor
.
yy142
,
yymsp
[
-
4
].
minor
.
yy525
,
yymsp
[
-
2
].
minor
.
yy525
,
&
yymsp
[
-
9
].
minor
.
yy238
,
&
yymsp
[
-
7
].
minor
.
yy319
,
&
yymsp
[
-
6
].
minor
.
yy546
,
&
yymsp
[
-
8
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy525
,
&
yymsp
[
0
].
minor
.
yy6
,
&
yymsp
[
-
1
].
minor
.
yy6
,
yymsp
[
-
3
].
minor
.
yy142
,
&
yymsp
[
-
10
].
minor
.
yy33
0
);
}
yymsp
[
-
14
].
minor
.
yy
276
=
yylhsminor
.
yy27
6
;
yymsp
[
-
14
].
minor
.
yy
86
=
yylhsminor
.
yy8
6
;
break
;
case
173
:
/* select ::= LP select RP */
{
yymsp
[
-
2
].
minor
.
yy
276
=
yymsp
[
-
1
].
minor
.
yy27
6
;}
{
yymsp
[
-
2
].
minor
.
yy
86
=
yymsp
[
-
1
].
minor
.
yy8
6
;}
break
;
case
174
:
/* union ::= select */
{
yylhsminor
.
yy
161
=
setSubclause
(
NULL
,
yymsp
[
0
].
minor
.
yy27
6
);
}
yymsp
[
0
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
{
yylhsminor
.
yy
525
=
setSubclause
(
NULL
,
yymsp
[
0
].
minor
.
yy8
6
);
}
yymsp
[
0
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
175
:
/* union ::= union UNION ALL select */
{
yylhsminor
.
yy
161
=
appendSelectClause
(
yymsp
[
-
3
].
minor
.
yy161
,
yymsp
[
0
].
minor
.
yy27
6
);
}
yymsp
[
-
3
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
{
yylhsminor
.
yy
525
=
appendSelectClause
(
yymsp
[
-
3
].
minor
.
yy525
,
yymsp
[
0
].
minor
.
yy8
6
);
}
yymsp
[
-
3
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
176
:
/* cmd ::= union */
{
setSqlInfo
(
pInfo
,
yymsp
[
0
].
minor
.
yy
161
,
NULL
,
TSDB_SQL_SELECT
);
}
{
setSqlInfo
(
pInfo
,
yymsp
[
0
].
minor
.
yy
525
,
NULL
,
TSDB_SQL_SELECT
);
}
break
;
case
177
:
/* select ::= SELECT selcollist */
{
yylhsminor
.
yy
276
=
tSetQuerySqlNode
(
&
yymsp
[
-
1
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy161
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
yylhsminor
.
yy
86
=
tSetQuerySqlNode
(
&
yymsp
[
-
1
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy525
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
276
=
yylhsminor
.
yy27
6
;
yymsp
[
-
1
].
minor
.
yy
86
=
yylhsminor
.
yy8
6
;
break
;
case
178
:
/* sclp ::= selcollist COMMA */
{
yylhsminor
.
yy
161
=
yymsp
[
-
1
].
minor
.
yy161
;}
yymsp
[
-
1
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
{
yylhsminor
.
yy
525
=
yymsp
[
-
1
].
minor
.
yy525
;}
yymsp
[
-
1
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
179
:
/* sclp ::= */
case
220
:
/* orderby_opt ::= */
yytestcase
(
yyruleno
==
220
);
{
yymsp
[
1
].
minor
.
yy
161
=
0
;}
{
yymsp
[
1
].
minor
.
yy
525
=
0
;}
break
;
case
180
:
/* selcollist ::= sclp distinct expr as */
{
yylhsminor
.
yy
161
=
tSqlExprListAppend
(
yymsp
[
-
3
].
minor
.
yy161
,
yymsp
[
-
1
].
minor
.
yy546
,
yymsp
[
-
2
].
minor
.
yy0
.
n
?
&
yymsp
[
-
2
].
minor
.
yy0
:
0
,
yymsp
[
0
].
minor
.
yy0
.
n
?&
yymsp
[
0
].
minor
.
yy0
:
0
);
yylhsminor
.
yy
525
=
tSqlExprListAppend
(
yymsp
[
-
3
].
minor
.
yy525
,
yymsp
[
-
1
].
minor
.
yy142
,
yymsp
[
-
2
].
minor
.
yy0
.
n
?
&
yymsp
[
-
2
].
minor
.
yy0
:
0
,
yymsp
[
0
].
minor
.
yy0
.
n
?&
yymsp
[
0
].
minor
.
yy0
:
0
);
}
yymsp
[
-
3
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
yymsp
[
-
3
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
181
:
/* selcollist ::= sclp STAR */
{
tSqlExpr
*
pNode
=
tSqlExprCreateIdValue
(
pInfo
,
NULL
,
TK_ALL
);
yylhsminor
.
yy
161
=
tSqlExprListAppend
(
yymsp
[
-
1
].
minor
.
yy161
,
pNode
,
0
,
0
);
yylhsminor
.
yy
525
=
tSqlExprListAppend
(
yymsp
[
-
1
].
minor
.
yy525
,
pNode
,
0
,
0
);
}
yymsp
[
-
1
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
yymsp
[
-
1
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
182
:
/* as ::= AS ids */
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
...
...
@@ -3267,114 +2954,114 @@ static YYACTIONTYPE yy_reduce(
break
;
case
187
:
/* from ::= FROM tablelist */
case
188
:
/* from ::= FROM sub */
yytestcase
(
yyruleno
==
188
);
{
yymsp
[
-
1
].
minor
.
yy
84
=
yymsp
[
0
].
minor
.
yy84
;}
{
yymsp
[
-
1
].
minor
.
yy
328
=
yymsp
[
0
].
minor
.
yy328
;}
break
;
case
189
:
/* sub ::= LP union RP */
{
yymsp
[
-
2
].
minor
.
yy
84
=
addSubqueryElem
(
NULL
,
yymsp
[
-
1
].
minor
.
yy161
,
NULL
);}
{
yymsp
[
-
2
].
minor
.
yy
328
=
addSubqueryElem
(
NULL
,
yymsp
[
-
1
].
minor
.
yy525
,
NULL
);}
break
;
case
190
:
/* sub ::= LP union RP ids */
{
yymsp
[
-
3
].
minor
.
yy
84
=
addSubqueryElem
(
NULL
,
yymsp
[
-
2
].
minor
.
yy161
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
yymsp
[
-
3
].
minor
.
yy
328
=
addSubqueryElem
(
NULL
,
yymsp
[
-
2
].
minor
.
yy525
,
&
yymsp
[
0
].
minor
.
yy0
);}
break
;
case
191
:
/* sub ::= sub COMMA LP union RP ids */
{
yylhsminor
.
yy
84
=
addSubqueryElem
(
yymsp
[
-
5
].
minor
.
yy84
,
yymsp
[
-
2
].
minor
.
yy161
,
&
yymsp
[
0
].
minor
.
yy0
);}
yymsp
[
-
5
].
minor
.
yy
84
=
yylhsminor
.
yy84
;
{
yylhsminor
.
yy
328
=
addSubqueryElem
(
yymsp
[
-
5
].
minor
.
yy328
,
yymsp
[
-
2
].
minor
.
yy525
,
&
yymsp
[
0
].
minor
.
yy0
);}
yymsp
[
-
5
].
minor
.
yy
328
=
yylhsminor
.
yy328
;
break
;
case
192
:
/* tablelist ::= ids cpxName */
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yylhsminor
.
yy
84
=
setTableNameList
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
);
yylhsminor
.
yy
328
=
setTableNameList
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
84
=
yylhsminor
.
yy84
;
yymsp
[
-
1
].
minor
.
yy
328
=
yylhsminor
.
yy328
;
break
;
case
193
:
/* tablelist ::= ids cpxName ids */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
yymsp
[
-
1
].
minor
.
yy0
.
n
;
yylhsminor
.
yy
84
=
setTableNameList
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
yylhsminor
.
yy
328
=
setTableNameList
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
84
=
yylhsminor
.
yy84
;
yymsp
[
-
2
].
minor
.
yy
328
=
yylhsminor
.
yy328
;
break
;
case
194
:
/* tablelist ::= tablelist COMMA ids cpxName */
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yylhsminor
.
yy
84
=
setTableNameList
(
yymsp
[
-
3
].
minor
.
yy84
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
);
yylhsminor
.
yy
328
=
setTableNameList
(
yymsp
[
-
3
].
minor
.
yy328
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
);
}
yymsp
[
-
3
].
minor
.
yy
84
=
yylhsminor
.
yy84
;
yymsp
[
-
3
].
minor
.
yy
328
=
yylhsminor
.
yy328
;
break
;
case
195
:
/* tablelist ::= tablelist COMMA ids cpxName ids */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
yymsp
[
-
1
].
minor
.
yy0
.
n
;
yylhsminor
.
yy
84
=
setTableNameList
(
yymsp
[
-
4
].
minor
.
yy84
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
yylhsminor
.
yy
328
=
setTableNameList
(
yymsp
[
-
4
].
minor
.
yy328
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
4
].
minor
.
yy
84
=
yylhsminor
.
yy84
;
yymsp
[
-
4
].
minor
.
yy
328
=
yylhsminor
.
yy328
;
break
;
case
196
:
/* tmvar ::= VARIABLE */
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;}
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
break
;
case
197
:
/* timestamp ::= INTEGER */
{
yylhsminor
.
yy
546
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
0
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
0
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
198
:
/* timestamp ::= MINUS INTEGER */
case
199
:
/* timestamp ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
199
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy
546
=
tSqlExprCreateTimestamp
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
-
1
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy
142
=
tSqlExprCreateTimestamp
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
-
1
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
200
:
/* timestamp ::= STRING */
{
yylhsminor
.
yy
546
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
yymsp
[
0
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
yymsp
[
0
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
201
:
/* timestamp ::= NOW */
{
yylhsminor
.
yy
546
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
yymsp
[
0
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
yymsp
[
0
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
202
:
/* timestamp ::= NOW PLUS VARIABLE */
{
yymsp
[
-
2
].
minor
.
yy
546
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_PLUS
);
}
{
yymsp
[
-
2
].
minor
.
yy
142
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_PLUS
);
}
break
;
case
203
:
/* timestamp ::= NOW MINUS VARIABLE */
{
yymsp
[
-
2
].
minor
.
yy
546
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_MINUS
);
}
{
yymsp
[
-
2
].
minor
.
yy
142
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_MINUS
);
}
break
;
case
204
:
/* range_option ::= */
{
yymsp
[
1
].
minor
.
yy
420
.
start
=
0
;
yymsp
[
1
].
minor
.
yy42
0
.
end
=
0
;}
{
yymsp
[
1
].
minor
.
yy
330
.
start
=
0
;
yymsp
[
1
].
minor
.
yy33
0
.
end
=
0
;}
break
;
case
205
:
/* range_option ::= RANGE LP timestamp COMMA timestamp RP */
{
yymsp
[
-
5
].
minor
.
yy
420
.
start
=
yymsp
[
-
3
].
minor
.
yy546
;
yymsp
[
-
5
].
minor
.
yy420
.
end
=
yymsp
[
-
1
].
minor
.
yy546
;}
{
yymsp
[
-
5
].
minor
.
yy
330
.
start
=
yymsp
[
-
3
].
minor
.
yy142
;
yymsp
[
-
5
].
minor
.
yy330
.
end
=
yymsp
[
-
1
].
minor
.
yy142
;}
break
;
case
206
:
/* interval_option ::= intervalKey LP tmvar RP */
{
yylhsminor
.
yy
300
.
interval
=
yymsp
[
-
1
].
minor
.
yy0
;
yylhsminor
.
yy300
.
offset
.
n
=
0
;
yylhsminor
.
yy300
.
token
=
yymsp
[
-
3
].
minor
.
yy520
;}
yymsp
[
-
3
].
minor
.
yy
300
=
yylhsminor
.
yy300
;
{
yylhsminor
.
yy
238
.
interval
=
yymsp
[
-
1
].
minor
.
yy0
;
yylhsminor
.
yy238
.
offset
.
n
=
0
;
yylhsminor
.
yy238
.
token
=
yymsp
[
-
3
].
minor
.
yy508
;}
yymsp
[
-
3
].
minor
.
yy
238
=
yylhsminor
.
yy238
;
break
;
case
207
:
/* interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
{
yylhsminor
.
yy
300
.
interval
=
yymsp
[
-
3
].
minor
.
yy0
;
yylhsminor
.
yy300
.
offset
=
yymsp
[
-
1
].
minor
.
yy0
;
yylhsminor
.
yy300
.
token
=
yymsp
[
-
5
].
minor
.
yy520
;}
yymsp
[
-
5
].
minor
.
yy
300
=
yylhsminor
.
yy300
;
{
yylhsminor
.
yy
238
.
interval
=
yymsp
[
-
3
].
minor
.
yy0
;
yylhsminor
.
yy238
.
offset
=
yymsp
[
-
1
].
minor
.
yy0
;
yylhsminor
.
yy238
.
token
=
yymsp
[
-
5
].
minor
.
yy508
;}
yymsp
[
-
5
].
minor
.
yy
238
=
yylhsminor
.
yy238
;
break
;
case
208
:
/* interval_option ::= */
{
memset
(
&
yymsp
[
1
].
minor
.
yy
300
,
0
,
sizeof
(
yymsp
[
1
].
minor
.
yy300
));}
{
memset
(
&
yymsp
[
1
].
minor
.
yy
238
,
0
,
sizeof
(
yymsp
[
1
].
minor
.
yy238
));}
break
;
case
209
:
/* intervalKey ::= INTERVAL */
{
yymsp
[
0
].
minor
.
yy5
20
=
TK_INTERVAL
;}
{
yymsp
[
0
].
minor
.
yy5
08
=
TK_INTERVAL
;}
break
;
case
210
:
/* intervalKey ::= EVERY */
{
yymsp
[
0
].
minor
.
yy5
20
=
TK_EVERY
;
}
{
yymsp
[
0
].
minor
.
yy5
08
=
TK_EVERY
;
}
break
;
case
211
:
/* session_option ::= */
{
yymsp
[
1
].
minor
.
yy
219
.
col
.
n
=
0
;
yymsp
[
1
].
minor
.
yy2
19
.
gap
.
n
=
0
;}
{
yymsp
[
1
].
minor
.
yy
319
.
col
.
n
=
0
;
yymsp
[
1
].
minor
.
yy3
19
.
gap
.
n
=
0
;}
break
;
case
212
:
/* session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
6
].
minor
.
yy
2
19
.
col
=
yymsp
[
-
4
].
minor
.
yy0
;
yymsp
[
-
6
].
minor
.
yy
2
19
.
gap
=
yymsp
[
-
1
].
minor
.
yy0
;
yymsp
[
-
6
].
minor
.
yy
3
19
.
col
=
yymsp
[
-
4
].
minor
.
yy0
;
yymsp
[
-
6
].
minor
.
yy
3
19
.
gap
=
yymsp
[
-
1
].
minor
.
yy0
;
}
break
;
case
213
:
/* windowstate_option ::= */
{
yymsp
[
1
].
minor
.
yy54
8
.
col
.
n
=
0
;
yymsp
[
1
].
minor
.
yy548
.
col
.
z
=
NULL
;}
{
yymsp
[
1
].
minor
.
yy54
6
.
col
.
n
=
0
;
yymsp
[
1
].
minor
.
yy546
.
col
.
z
=
NULL
;}
break
;
case
214
:
/* windowstate_option ::= STATE_WINDOW LP ids RP */
{
yymsp
[
-
3
].
minor
.
yy54
8
.
col
=
yymsp
[
-
1
].
minor
.
yy0
;
}
{
yymsp
[
-
3
].
minor
.
yy54
6
.
col
=
yymsp
[
-
1
].
minor
.
yy0
;
}
break
;
case
215
:
/* fill_opt ::= */
{
yymsp
[
1
].
minor
.
yy
161
=
0
;
}
{
yymsp
[
1
].
minor
.
yy
525
=
0
;
}
break
;
case
216
:
/* fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
...
...
@@ -3382,14 +3069,14 @@ static YYACTIONTYPE yy_reduce(
toTSDBType
(
yymsp
[
-
3
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
A
,
&
yymsp
[
-
3
].
minor
.
yy0
);
tVariantListInsert
(
yymsp
[
-
1
].
minor
.
yy
161
,
&
A
,
-
1
,
0
);
yymsp
[
-
5
].
minor
.
yy
161
=
yymsp
[
-
1
].
minor
.
yy161
;
tVariantListInsert
(
yymsp
[
-
1
].
minor
.
yy
525
,
&
A
,
-
1
,
0
);
yymsp
[
-
5
].
minor
.
yy
525
=
yymsp
[
-
1
].
minor
.
yy525
;
}
break
;
case
217
:
/* fill_opt ::= FILL LP ID RP */
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
3
].
minor
.
yy
161
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
,
true
);
yymsp
[
-
3
].
minor
.
yy
525
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
,
true
);
}
break
;
case
218
:
/* sliding_opt ::= SLIDING LP tmvar RP */
...
...
@@ -3399,298 +3086,298 @@ static YYACTIONTYPE yy_reduce(
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
yymsp
[
1
].
minor
.
yy0
.
z
=
NULL
;
yymsp
[
1
].
minor
.
yy0
.
type
=
0
;
}
break
;
case
221
:
/* orderby_opt ::= ORDER BY sortlist */
{
yymsp
[
-
2
].
minor
.
yy
161
=
yymsp
[
0
].
minor
.
yy161
;}
{
yymsp
[
-
2
].
minor
.
yy
525
=
yymsp
[
0
].
minor
.
yy525
;}
break
;
case
222
:
/* sortlist ::= sortlist COMMA item sortorder */
{
yylhsminor
.
yy
161
=
commonItemAppend
(
yymsp
[
-
3
].
minor
.
yy161
,
&
yymsp
[
-
1
].
minor
.
yy526
,
NULL
,
false
,
yymsp
[
0
].
minor
.
yy452
);
yylhsminor
.
yy
525
=
commonItemAppend
(
yymsp
[
-
3
].
minor
.
yy525
,
&
yymsp
[
-
1
].
minor
.
yy110
,
NULL
,
false
,
yymsp
[
0
].
minor
.
yy580
);
}
yymsp
[
-
3
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
yymsp
[
-
3
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
223
:
/* sortlist ::= sortlist COMMA arrow sortorder */
{
yylhsminor
.
yy
161
=
commonItemAppend
(
yymsp
[
-
3
].
minor
.
yy161
,
NULL
,
yymsp
[
-
1
].
minor
.
yy546
,
true
,
yymsp
[
0
].
minor
.
yy452
);
yylhsminor
.
yy
525
=
commonItemAppend
(
yymsp
[
-
3
].
minor
.
yy525
,
NULL
,
yymsp
[
-
1
].
minor
.
yy142
,
true
,
yymsp
[
0
].
minor
.
yy580
);
}
yymsp
[
-
3
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
yymsp
[
-
3
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
224
:
/* sortlist ::= item sortorder */
{
yylhsminor
.
yy
161
=
commonItemAppend
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy526
,
NULL
,
false
,
yymsp
[
0
].
minor
.
yy452
);
yylhsminor
.
yy
525
=
commonItemAppend
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy110
,
NULL
,
false
,
yymsp
[
0
].
minor
.
yy580
);
}
yymsp
[
-
1
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
yymsp
[
-
1
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
225
:
/* sortlist ::= arrow sortorder */
{
yylhsminor
.
yy
161
=
commonItemAppend
(
NULL
,
NULL
,
yymsp
[
-
1
].
minor
.
yy546
,
true
,
yymsp
[
0
].
minor
.
yy452
);
yylhsminor
.
yy
525
=
commonItemAppend
(
NULL
,
NULL
,
yymsp
[
-
1
].
minor
.
yy142
,
true
,
yymsp
[
0
].
minor
.
yy580
);
}
yymsp
[
-
1
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
yymsp
[
-
1
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
226
:
/* item ::= ID */
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy
526
,
&
yymsp
[
0
].
minor
.
yy0
);
tVariantCreate
(
&
yylhsminor
.
yy
110
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
526
=
yylhsminor
.
yy526
;
yymsp
[
0
].
minor
.
yy
110
=
yylhsminor
.
yy110
;
break
;
case
227
:
/* item ::= ID DOT ID */
{
toTSDBType
(
yymsp
[
-
2
].
minor
.
yy0
.
type
);
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
tVariantCreate
(
&
yylhsminor
.
yy
526
,
&
yymsp
[
-
2
].
minor
.
yy0
);
tVariantCreate
(
&
yylhsminor
.
yy
110
,
&
yymsp
[
-
2
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
526
=
yylhsminor
.
yy526
;
yymsp
[
-
2
].
minor
.
yy
110
=
yylhsminor
.
yy110
;
break
;
case
228
:
/* sortorder ::= ASC */
{
yymsp
[
0
].
minor
.
yy
452
=
TSDB_ORDER_ASC
;
}
{
yymsp
[
0
].
minor
.
yy
580
=
TSDB_ORDER_ASC
;
}
break
;
case
229
:
/* sortorder ::= DESC */
{
yymsp
[
0
].
minor
.
yy
452
=
TSDB_ORDER_DESC
;}
{
yymsp
[
0
].
minor
.
yy
580
=
TSDB_ORDER_DESC
;}
break
;
case
230
:
/* sortorder ::= */
{
yymsp
[
1
].
minor
.
yy
452
=
TSDB_ORDER_ASC
;
}
{
yymsp
[
1
].
minor
.
yy
580
=
TSDB_ORDER_ASC
;
}
break
;
case
231
:
/* groupby_opt ::= */
{
yymsp
[
1
].
minor
.
yy
161
=
0
;}
{
yymsp
[
1
].
minor
.
yy
525
=
0
;}
break
;
case
232
:
/* groupby_opt ::= GROUP BY grouplist */
{
yymsp
[
-
2
].
minor
.
yy
161
=
yymsp
[
0
].
minor
.
yy161
;}
{
yymsp
[
-
2
].
minor
.
yy
525
=
yymsp
[
0
].
minor
.
yy525
;}
break
;
case
233
:
/* grouplist ::= grouplist COMMA item */
{
yylhsminor
.
yy
161
=
commonItemAppend
(
yymsp
[
-
2
].
minor
.
yy161
,
&
yymsp
[
0
].
minor
.
yy526
,
NULL
,
false
,
-
1
);
yylhsminor
.
yy
525
=
commonItemAppend
(
yymsp
[
-
2
].
minor
.
yy525
,
&
yymsp
[
0
].
minor
.
yy110
,
NULL
,
false
,
-
1
);
}
yymsp
[
-
2
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
yymsp
[
-
2
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
234
:
/* grouplist ::= grouplist COMMA arrow */
{
yylhsminor
.
yy
161
=
commonItemAppend
(
yymsp
[
-
2
].
minor
.
yy161
,
NULL
,
yymsp
[
0
].
minor
.
yy546
,
true
,
-
1
);
yylhsminor
.
yy
525
=
commonItemAppend
(
yymsp
[
-
2
].
minor
.
yy525
,
NULL
,
yymsp
[
0
].
minor
.
yy142
,
true
,
-
1
);
}
yymsp
[
-
2
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
yymsp
[
-
2
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
235
:
/* grouplist ::= item */
{
yylhsminor
.
yy
161
=
commonItemAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy526
,
NULL
,
false
,
-
1
);
yylhsminor
.
yy
525
=
commonItemAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy110
,
NULL
,
false
,
-
1
);
}
yymsp
[
0
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
yymsp
[
0
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
236
:
/* grouplist ::= arrow */
{
yylhsminor
.
yy
161
=
commonItemAppend
(
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy546
,
true
,
-
1
);
yylhsminor
.
yy
525
=
commonItemAppend
(
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy142
,
true
,
-
1
);
}
yymsp
[
0
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
yymsp
[
0
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
237
:
/* having_opt ::= */
case
247
:
/* where_opt ::= */
yytestcase
(
yyruleno
==
247
);
case
298
:
/* expritem ::= */
yytestcase
(
yyruleno
==
298
);
{
yymsp
[
1
].
minor
.
yy
546
=
0
;}
{
yymsp
[
1
].
minor
.
yy
142
=
0
;}
break
;
case
238
:
/* having_opt ::= HAVING expr */
case
248
:
/* where_opt ::= WHERE expr */
yytestcase
(
yyruleno
==
248
);
{
yymsp
[
-
1
].
minor
.
yy
546
=
yymsp
[
0
].
minor
.
yy546
;}
{
yymsp
[
-
1
].
minor
.
yy
142
=
yymsp
[
0
].
minor
.
yy142
;}
break
;
case
239
:
/* limit_opt ::= */
case
243
:
/* slimit_opt ::= */
yytestcase
(
yyruleno
==
243
);
{
yymsp
[
1
].
minor
.
yy
394
.
limit
=
-
1
;
yymsp
[
1
].
minor
.
yy394
.
offset
=
0
;}
{
yymsp
[
1
].
minor
.
yy
6
.
limit
=
-
1
;
yymsp
[
1
].
minor
.
yy6
.
offset
=
0
;}
break
;
case
240
:
/* limit_opt ::= LIMIT signed */
case
244
:
/* slimit_opt ::= SLIMIT signed */
yytestcase
(
yyruleno
==
244
);
{
yymsp
[
-
1
].
minor
.
yy
394
.
limit
=
yymsp
[
0
].
minor
.
yy369
;
yymsp
[
-
1
].
minor
.
yy394
.
offset
=
0
;}
{
yymsp
[
-
1
].
minor
.
yy
6
.
limit
=
yymsp
[
0
].
minor
.
yy543
;
yymsp
[
-
1
].
minor
.
yy6
.
offset
=
0
;}
break
;
case
241
:
/* limit_opt ::= LIMIT signed OFFSET signed */
{
yymsp
[
-
3
].
minor
.
yy
394
.
limit
=
yymsp
[
-
2
].
minor
.
yy369
;
yymsp
[
-
3
].
minor
.
yy394
.
offset
=
yymsp
[
0
].
minor
.
yy369
;}
{
yymsp
[
-
3
].
minor
.
yy
6
.
limit
=
yymsp
[
-
2
].
minor
.
yy543
;
yymsp
[
-
3
].
minor
.
yy6
.
offset
=
yymsp
[
0
].
minor
.
yy543
;}
break
;
case
242
:
/* limit_opt ::= LIMIT signed COMMA signed */
{
yymsp
[
-
3
].
minor
.
yy
394
.
limit
=
yymsp
[
0
].
minor
.
yy369
;
yymsp
[
-
3
].
minor
.
yy394
.
offset
=
yymsp
[
-
2
].
minor
.
yy369
;}
{
yymsp
[
-
3
].
minor
.
yy
6
.
limit
=
yymsp
[
0
].
minor
.
yy543
;
yymsp
[
-
3
].
minor
.
yy6
.
offset
=
yymsp
[
-
2
].
minor
.
yy543
;}
break
;
case
245
:
/* slimit_opt ::= SLIMIT signed SOFFSET signed */
{
yymsp
[
-
3
].
minor
.
yy
394
.
limit
=
yymsp
[
-
2
].
minor
.
yy369
;
yymsp
[
-
3
].
minor
.
yy394
.
offset
=
yymsp
[
0
].
minor
.
yy369
;}
{
yymsp
[
-
3
].
minor
.
yy
6
.
limit
=
yymsp
[
-
2
].
minor
.
yy543
;
yymsp
[
-
3
].
minor
.
yy6
.
offset
=
yymsp
[
0
].
minor
.
yy543
;}
break
;
case
246
:
/* slimit_opt ::= SLIMIT signed COMMA signed */
{
yymsp
[
-
3
].
minor
.
yy
394
.
limit
=
yymsp
[
0
].
minor
.
yy369
;
yymsp
[
-
3
].
minor
.
yy394
.
offset
=
yymsp
[
-
2
].
minor
.
yy369
;}
{
yymsp
[
-
3
].
minor
.
yy
6
.
limit
=
yymsp
[
0
].
minor
.
yy543
;
yymsp
[
-
3
].
minor
.
yy6
.
offset
=
yymsp
[
-
2
].
minor
.
yy543
;}
break
;
case
249
:
/* expr ::= LP expr RP */
{
yylhsminor
.
yy
546
=
yymsp
[
-
1
].
minor
.
yy546
;
yylhsminor
.
yy546
->
exprToken
.
z
=
yymsp
[
-
2
].
minor
.
yy0
.
z
;
yylhsminor
.
yy546
->
exprToken
.
n
=
(
yymsp
[
0
].
minor
.
yy0
.
z
-
yymsp
[
-
2
].
minor
.
yy0
.
z
+
1
);}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
yymsp
[
-
1
].
minor
.
yy142
;
yylhsminor
.
yy142
->
exprToken
.
z
=
yymsp
[
-
2
].
minor
.
yy0
.
z
;
yylhsminor
.
yy142
->
exprToken
.
n
=
(
yymsp
[
0
].
minor
.
yy0
.
z
-
yymsp
[
-
2
].
minor
.
yy0
.
z
+
1
);}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
250
:
/* expr ::= ID */
{
yylhsminor
.
yy
546
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
0
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
0
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
251
:
/* expr ::= ID DOT ID */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy
546
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy
142
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
252
:
/* expr ::= ID DOT STAR */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy
546
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ALL
);}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy
142
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ALL
);}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
253
:
/* expr ::= INTEGER */
{
yylhsminor
.
yy
546
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
0
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
0
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
254
:
/* expr ::= MINUS INTEGER */
case
255
:
/* expr ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
255
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy
546
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
-
1
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy
142
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
-
1
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
256
:
/* expr ::= FLOAT */
{
yylhsminor
.
yy
546
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
0
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
0
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
257
:
/* expr ::= MINUS FLOAT */
case
258
:
/* expr ::= PLUS FLOAT */
yytestcase
(
yyruleno
==
258
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_FLOAT
;
yylhsminor
.
yy
546
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
-
1
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_FLOAT
;
yylhsminor
.
yy
142
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
-
1
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
259
:
/* expr ::= STRING */
{
yylhsminor
.
yy
546
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
yymsp
[
0
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
yymsp
[
0
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
260
:
/* expr ::= NOW */
{
yylhsminor
.
yy
546
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
yymsp
[
0
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
yymsp
[
0
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
261
:
/* expr ::= TODAY */
{
yylhsminor
.
yy
546
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_TODAY
);
}
yymsp
[
0
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_TODAY
);
}
yymsp
[
0
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
262
:
/* expr ::= VARIABLE */
{
yylhsminor
.
yy
546
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_VARIABLE
);}
yymsp
[
0
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_VARIABLE
);}
yymsp
[
0
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
263
:
/* expr ::= PLUS VARIABLE */
case
264
:
/* expr ::= MINUS VARIABLE */
yytestcase
(
yyruleno
==
264
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_VARIABLE
;
yylhsminor
.
yy
546
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_VARIABLE
);}
yymsp
[
-
1
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_VARIABLE
;
yylhsminor
.
yy
142
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_VARIABLE
);}
yymsp
[
-
1
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
265
:
/* expr ::= BOOL */
{
yylhsminor
.
yy
546
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_BOOL
);}
yymsp
[
0
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_BOOL
);}
yymsp
[
0
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
266
:
/* expr ::= NULL */
{
yylhsminor
.
yy
546
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_NULL
);}
yymsp
[
0
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_NULL
);}
yymsp
[
0
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
267
:
/* expr ::= ID LP exprlist RP */
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yylhsminor
.
yy
546
=
tSqlExprCreateFunction
(
yymsp
[
-
1
].
minor
.
yy161
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
yymsp
[
-
3
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yylhsminor
.
yy
142
=
tSqlExprCreateFunction
(
yymsp
[
-
1
].
minor
.
yy525
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
yymsp
[
-
3
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
268
:
/* expr ::= ID LP STAR RP */
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yylhsminor
.
yy
546
=
tSqlExprCreateFunction
(
NULL
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
yymsp
[
-
3
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yylhsminor
.
yy
142
=
tSqlExprCreateFunction
(
NULL
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
yymsp
[
-
3
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
269
:
/* expr ::= ID LP expr AS typename RP */
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
5
].
minor
.
yy0
);
yylhsminor
.
yy
546
=
tSqlExprCreateFuncWithParams
(
pInfo
,
yymsp
[
-
3
].
minor
.
yy546
,
&
yymsp
[
-
1
].
minor
.
yy223
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy0
.
type
);
}
yymsp
[
-
5
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
5
].
minor
.
yy0
);
yylhsminor
.
yy
142
=
tSqlExprCreateFuncWithParams
(
pInfo
,
yymsp
[
-
3
].
minor
.
yy142
,
&
yymsp
[
-
1
].
minor
.
yy115
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy0
.
type
);
}
yymsp
[
-
5
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
270
:
/* expr ::= expr IS NULL */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
NULL
,
TK_ISNULL
);}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy142
,
NULL
,
TK_ISNULL
);}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
271
:
/* expr ::= expr IS NOT NULL */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
3
].
minor
.
yy546
,
NULL
,
TK_NOTNULL
);}
yymsp
[
-
3
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
3
].
minor
.
yy142
,
NULL
,
TK_NOTNULL
);}
yymsp
[
-
3
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
272
:
/* expr ::= expr LT expr */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_LT
);}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy142
,
yymsp
[
0
].
minor
.
yy142
,
TK_LT
);}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
273
:
/* expr ::= expr GT expr */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_GT
);}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy142
,
yymsp
[
0
].
minor
.
yy142
,
TK_GT
);}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
274
:
/* expr ::= expr LE expr */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_LE
);}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy142
,
yymsp
[
0
].
minor
.
yy142
,
TK_LE
);}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
275
:
/* expr ::= expr GE expr */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_GE
);}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy142
,
yymsp
[
0
].
minor
.
yy142
,
TK_GE
);}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
276
:
/* expr ::= expr NE expr */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_NE
);}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy142
,
yymsp
[
0
].
minor
.
yy142
,
TK_NE
);}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
277
:
/* expr ::= expr EQ expr */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_EQ
);}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy142
,
yymsp
[
0
].
minor
.
yy142
,
TK_EQ
);}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
278
:
/* expr ::= expr BETWEEN expr AND expr */
{
tSqlExpr
*
X2
=
tSqlExprClone
(
yymsp
[
-
4
].
minor
.
yy
546
);
yylhsminor
.
yy546
=
tSqlExprCreate
(
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy546
,
yymsp
[
-
2
].
minor
.
yy546
,
TK_GE
),
tSqlExprCreate
(
X2
,
yymsp
[
0
].
minor
.
yy546
,
TK_LE
),
TK_AND
);}
yymsp
[
-
4
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
tSqlExpr
*
X2
=
tSqlExprClone
(
yymsp
[
-
4
].
minor
.
yy
142
);
yylhsminor
.
yy142
=
tSqlExprCreate
(
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy142
,
yymsp
[
-
2
].
minor
.
yy142
,
TK_GE
),
tSqlExprCreate
(
X2
,
yymsp
[
0
].
minor
.
yy142
,
TK_LE
),
TK_AND
);}
yymsp
[
-
4
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
279
:
/* expr ::= expr AND expr */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_AND
);}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy142
,
yymsp
[
0
].
minor
.
yy142
,
TK_AND
);}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
280
:
/* expr ::= expr OR expr */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_OR
);
}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy142
,
yymsp
[
0
].
minor
.
yy142
,
TK_OR
);
}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
281
:
/* expr ::= expr PLUS expr */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_PLUS
);
}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy142
,
yymsp
[
0
].
minor
.
yy142
,
TK_PLUS
);
}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
282
:
/* expr ::= expr MINUS expr */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_MINUS
);
}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy142
,
yymsp
[
0
].
minor
.
yy142
,
TK_MINUS
);
}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
283
:
/* expr ::= expr STAR expr */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_STAR
);
}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy142
,
yymsp
[
0
].
minor
.
yy142
,
TK_STAR
);
}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
284
:
/* expr ::= expr SLASH expr */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_DIVIDE
);}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy142
,
yymsp
[
0
].
minor
.
yy142
,
TK_DIVIDE
);}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
285
:
/* expr ::= expr REM expr */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_REM
);
}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy142
,
yymsp
[
0
].
minor
.
yy142
,
TK_REM
);
}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
286
:
/* expr ::= expr LIKE expr */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_LIKE
);
}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy142
,
yymsp
[
0
].
minor
.
yy142
,
TK_LIKE
);
}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
287
:
/* expr ::= expr MATCH expr */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_MATCH
);
}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy142
,
yymsp
[
0
].
minor
.
yy142
,
TK_MATCH
);
}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
288
:
/* expr ::= expr NMATCH expr */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_NMATCH
);
}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy142
,
yymsp
[
0
].
minor
.
yy142
,
TK_NMATCH
);
}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
289
:
/* expr ::= ID CONTAINS STRING */
{
tSqlExpr
*
S
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);
tSqlExpr
*
M
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);
yylhsminor
.
yy
546
=
tSqlExprCreate
(
S
,
M
,
TK_CONTAINS
);
}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
tSqlExpr
*
S
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);
tSqlExpr
*
M
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);
yylhsminor
.
yy
142
=
tSqlExprCreate
(
S
,
M
,
TK_CONTAINS
);
}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
290
:
/* expr ::= ID DOT ID CONTAINS STRING */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
-
2
].
minor
.
yy0
.
n
);
tSqlExpr
*
S
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
4
].
minor
.
yy0
,
TK_ID
);
tSqlExpr
*
M
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);
yylhsminor
.
yy
546
=
tSqlExprCreate
(
S
,
M
,
TK_CONTAINS
);
}
yymsp
[
-
4
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
-
2
].
minor
.
yy0
.
n
);
tSqlExpr
*
S
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
4
].
minor
.
yy0
,
TK_ID
);
tSqlExpr
*
M
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);
yylhsminor
.
yy
142
=
tSqlExprCreate
(
S
,
M
,
TK_CONTAINS
);
}
yymsp
[
-
4
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
291
:
/* arrow ::= ID ARROW STRING */
{
tSqlExpr
*
S
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);
tSqlExpr
*
M
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);
yylhsminor
.
yy
546
=
tSqlExprCreate
(
S
,
M
,
TK_ARROW
);
}
yymsp
[
-
2
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
tSqlExpr
*
S
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);
tSqlExpr
*
M
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);
yylhsminor
.
yy
142
=
tSqlExprCreate
(
S
,
M
,
TK_ARROW
);
}
yymsp
[
-
2
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
292
:
/* arrow ::= ID DOT ID ARROW STRING */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
-
2
].
minor
.
yy0
.
n
);
tSqlExpr
*
S
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
4
].
minor
.
yy0
,
TK_ID
);
tSqlExpr
*
M
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);
yylhsminor
.
yy
546
=
tSqlExprCreate
(
S
,
M
,
TK_ARROW
);
}
yymsp
[
-
4
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
-
2
].
minor
.
yy0
.
n
);
tSqlExpr
*
S
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
4
].
minor
.
yy0
,
TK_ID
);
tSqlExpr
*
M
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);
yylhsminor
.
yy
142
=
tSqlExprCreate
(
S
,
M
,
TK_ARROW
);
}
yymsp
[
-
4
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
293
:
/* expr ::= arrow */
case
297
:
/* expritem ::= expr */
yytestcase
(
yyruleno
==
297
);
{
yylhsminor
.
yy
546
=
yymsp
[
0
].
minor
.
yy546
;}
yymsp
[
0
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
yymsp
[
0
].
minor
.
yy142
;}
yymsp
[
0
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
294
:
/* expr ::= expr IN LP exprlist RP */
{
yylhsminor
.
yy
546
=
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy546
,
(
tSqlExpr
*
)
yymsp
[
-
1
].
minor
.
yy161
,
TK_IN
);
}
yymsp
[
-
4
].
minor
.
yy
546
=
yylhsminor
.
yy546
;
{
yylhsminor
.
yy
142
=
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy142
,
(
tSqlExpr
*
)
yymsp
[
-
1
].
minor
.
yy525
,
TK_IN
);
}
yymsp
[
-
4
].
minor
.
yy
142
=
yylhsminor
.
yy142
;
break
;
case
295
:
/* exprlist ::= exprlist COMMA expritem */
{
yylhsminor
.
yy
161
=
tSqlExprListAppend
(
yymsp
[
-
2
].
minor
.
yy161
,
yymsp
[
0
].
minor
.
yy546
,
0
,
0
);}
yymsp
[
-
2
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
{
yylhsminor
.
yy
525
=
tSqlExprListAppend
(
yymsp
[
-
2
].
minor
.
yy525
,
yymsp
[
0
].
minor
.
yy142
,
0
,
0
);}
yymsp
[
-
2
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
296
:
/* exprlist ::= expritem */
{
yylhsminor
.
yy
161
=
tSqlExprListAppend
(
0
,
yymsp
[
0
].
minor
.
yy546
,
0
,
0
);}
yymsp
[
0
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
{
yylhsminor
.
yy
525
=
tSqlExprListAppend
(
0
,
yymsp
[
0
].
minor
.
yy142
,
0
,
0
);}
yymsp
[
0
].
minor
.
yy
525
=
yylhsminor
.
yy525
;
break
;
case
299
:
/* cmd ::= RESET QUERY CACHE */
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_RESET_CACHE
,
0
);}
...
...
@@ -3701,7 +3388,7 @@ static YYACTIONTYPE yy_reduce(
case
301
:
/* 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
161
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
525
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
...
...
@@ -3719,14 +3406,14 @@ static YYACTIONTYPE yy_reduce(
case
303
:
/* cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
161
,
NULL
,
TSDB_ALTER_TABLE_CHANGE_COLUMN
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
525
,
NULL
,
TSDB_ALTER_TABLE_CHANGE_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
304
:
/* 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
161
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
525
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
...
...
@@ -3761,7 +3448,7 @@ static YYACTIONTYPE yy_reduce(
toTSDBType
(
yymsp
[
-
2
].
minor
.
yy0
.
type
);
SArray
*
A
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
-
1
,
false
);
A
=
tVariantListAppend
(
A
,
&
yymsp
[
0
].
minor
.
yy
526
,
-
1
);
A
=
tVariantListAppend
(
A
,
&
yymsp
[
0
].
minor
.
yy
110
,
-
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
);
...
...
@@ -3770,14 +3457,14 @@ static YYACTIONTYPE yy_reduce(
case
308
:
/* cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
161
,
NULL
,
TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
525
,
NULL
,
TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
309
:
/* 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
161
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
525
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
...
...
@@ -3795,14 +3482,14 @@ static YYACTIONTYPE yy_reduce(
case
311
:
/* cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
161
,
NULL
,
TSDB_ALTER_TABLE_CHANGE_COLUMN
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
525
,
NULL
,
TSDB_ALTER_TABLE_CHANGE_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
312
:
/* 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
161
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
525
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
...
...
@@ -3837,7 +3524,7 @@ static YYACTIONTYPE yy_reduce(
toTSDBType
(
yymsp
[
-
2
].
minor
.
yy0
.
type
);
SArray
*
A
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
-
1
,
false
);
A
=
tVariantListAppend
(
A
,
&
yymsp
[
0
].
minor
.
yy
526
,
-
1
);
A
=
tVariantListAppend
(
A
,
&
yymsp
[
0
].
minor
.
yy
110
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
6
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_UPDATE_TAG_VAL
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
...
...
@@ -3846,7 +3533,7 @@ static YYACTIONTYPE yy_reduce(
case
316
:
/* cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
161
,
NULL
,
TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
525
,
NULL
,
TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
...
...
@@ -3859,13 +3546,20 @@ static YYACTIONTYPE yy_reduce(
case
319
:
/* 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
;
case
320
:
/* cmd ::= DELETE FROM ifexists ids cpxName where_opt */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
yymsp
[
-
1
].
minor
.
yy0
.
n
;
SDelData
*
pDelData
=
tGetDelData
(
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
-
3
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy142
);
setSqlInfo
(
pInfo
,
pDelData
,
NULL
,
TSDB_SQL_DELETE_DATA
);
}
break
;
default:
break
;
/********** End reduce actions ************************************************/
};
assert
(
yyruleno
<
sizeof
(
yyRuleInfo
Lhs
)
/
sizeof
(
yyRuleInfoLhs
[
0
])
);
yygoto
=
yyRuleInfo
Lhs
[
yyruleno
]
;
yysize
=
yyRuleInfo
NRhs
[
yyruleno
]
;
assert
(
yyruleno
<
sizeof
(
yyRuleInfo
)
/
sizeof
(
yyRuleInfo
[
0
])
);
yygoto
=
yyRuleInfo
[
yyruleno
].
lhs
;
yysize
=
yyRuleInfo
[
yyruleno
].
nrhs
;
yyact
=
yy_find_reduce_action
(
yymsp
[
yysize
].
stateno
,(
YYCODETYPE
)
yygoto
);
/* There are no SHIFTREDUCE actions on nonterminals because the table
...
...
@@ -4167,10 +3861,11 @@ void Parse(
*/
int
ParseFallback
(
int
iToken
){
#ifdef YYFALLBACK
assert
(
iToken
<
(
int
)(
sizeof
(
yyFallback
)
/
sizeof
(
yyFallback
[
0
]))
);
if
(
iToken
<
(
int
)(
sizeof
(
yyFallback
)
/
sizeof
(
yyFallback
[
0
]))
){
return
yyFallback
[
iToken
];
}
#else
(
void
)
iToken
;
return
0
;
#endif
return
0
;
}
src/tsdb/src/tsdbMemTable.c
浏览文件 @
eeba8d02
...
...
@@ -49,15 +49,17 @@ static int tsdbInitSubmitMsgIter(SSubmitMsg *pMsg, SSubmitMsgIter *pIte
static
int
tsdbGetSubmitMsgNext
(
SSubmitMsgIter
*
pIter
,
SSubmitBlk
**
pPBlock
);
static
int
tsdbCheckTableSchema
(
STsdbRepo
*
pRepo
,
SSubmitBlk
*
pBlock
,
STable
*
pTable
);
static
int
tsdbUpdateTableLatestInfo
(
STsdbRepo
*
pRepo
,
STable
*
pTable
,
SMemRow
row
);
static
int32_t
tsdbInsertControlData
(
STsdbRepo
*
pRepo
,
SSubmitBlk
*
pBlock
,
SShellSubmitRspMsg
*
pRsp
,
sem_t
*
pSem
);
static
FORCE_INLINE
int
tsdbCheckRowRange
(
STsdbRepo
*
pRepo
,
STable
*
pTable
,
SMemRow
row
,
TSKEY
minKey
,
TSKEY
maxKey
,
TSKEY
now
);
int32_t
tsdbInsertData
(
STsdbRepo
*
repo
,
SSubmitMsg
*
pMsg
,
SShellSubmitRspMsg
*
pRsp
)
{
int32_t
tsdbInsertData
(
STsdbRepo
*
repo
,
SSubmitMsg
*
pMsg
,
SShellSubmitRspMsg
*
pRsp
,
sem_t
*
pSem
)
{
STsdbRepo
*
pRepo
=
repo
;
SSubmitMsgIter
msgIter
=
{
0
};
SSubmitBlk
*
pBlock
=
NULL
;
int32_t
affectedrows
=
0
,
numOfRows
=
0
;
int32_t
ret
=
TSDB_CODE_SUCCESS
;
if
(
tsdbScanAndConvertSubmitMsg
(
pRepo
,
pMsg
)
<
0
)
{
if
(
terrno
!=
TSDB_CODE_TDB_TABLE_RECONFIGURE
)
{
...
...
@@ -70,9 +72,17 @@ int32_t tsdbInsertData(STsdbRepo *repo, SSubmitMsg *pMsg, SShellSubmitRspMsg *pR
while
(
true
)
{
tsdbGetSubmitMsgNext
(
&
msgIter
,
&
pBlock
);
if
(
pBlock
==
NULL
)
break
;
if
(
IS_CONTROL_BLOCK
(
pBlock
))
{
// COMMAND DATA BLOCK
ret
=
tsdbInsertControlData
(
pRepo
,
pBlock
,
pRsp
,
pSem
);
// all control msg is one SSubmitMsg, so need return
return
ret
;
}
else
{
// INSERT DATA BLOCK
if
(
tsdbInsertDataToTable
(
pRepo
,
pBlock
,
&
affectedrows
)
<
0
)
{
return
-
1
;
}
}
numOfRows
+=
pBlock
->
numOfRows
;
}
...
...
@@ -82,7 +92,7 @@ int32_t tsdbInsertData(STsdbRepo *repo, SSubmitMsg *pMsg, SShellSubmitRspMsg *pR
}
if
(
tsdbCheckCommit
(
pRepo
)
<
0
)
return
-
1
;
return
0
;
return
ret
;
}
// ---------------- INTERNAL FUNCTIONS ----------------
...
...
@@ -702,6 +712,8 @@ static int tsdbScanAndConvertSubmitMsg(STsdbRepo *pRepo, SSubmitMsg *pMsg) {
}
}
// check each row time invalid if not control block
if
(
!
IS_CONTROL_BLOCK
(
pBlock
))
{
tsdbInitSubmitBlkIter
(
pBlock
,
&
blkIter
);
while
((
row
=
tsdbGetSubmitBlkNext
(
&
blkIter
))
!=
NULL
)
{
if
(
tsdbCheckRowRange
(
pRepo
,
pTable
,
row
,
minKey
,
maxKey
,
now
)
<
0
)
{
...
...
@@ -709,6 +721,7 @@ static int tsdbScanAndConvertSubmitMsg(STsdbRepo *pRepo, SSubmitMsg *pMsg) {
}
}
}
}
if
(
terrno
!=
TSDB_CODE_SUCCESS
)
return
-
1
;
return
0
;
...
...
@@ -1082,3 +1095,39 @@ static int tsdbUpdateTableLatestInfo(STsdbRepo *pRepo, STable *pTable, SMemRow r
return
0
;
}
// Delete Data
int32_t
tsdbInsertDeleteData
(
STsdbRepo
*
pRepo
,
SControlData
*
pCtlData
,
SShellSubmitRspMsg
*
pRsp
,
sem_t
*
pSem
)
{
pRsp
->
affectedRows
=
htonl
(
99
);
// INIT SEM
int32_t
ret
=
sem_init
(
pSem
,
0
,
0
);
if
(
ret
!=
0
)
{
return
TAOS_SYSTEM_ERROR
(
ret
);
}
// CREATE DELETE MEMTABLE
// FORCE COMMIT ALL MEM AND IMEM
return
0
;
}
// Control Data
int32_t
tsdbInsertControlData
(
STsdbRepo
*
pRepo
,
SSubmitBlk
*
pBlock
,
SShellSubmitRspMsg
*
pRsp
,
sem_t
*
pSem
)
{
int32_t
ret
=
TSDB_CODE_SUCCESS
;
assert
(
pBlock
->
dataLen
==
sizeof
(
SControlData
));
SControlData
*
pCtlData
=
(
SControlData
*
)
pBlock
->
data
;
// anti-serialize
pCtlData
->
command
=
htonl
(
pCtlData
->
command
);
pCtlData
->
win
.
skey
=
htobe64
(
pCtlData
->
win
.
skey
);
pCtlData
->
win
.
ekey
=
htobe64
(
pCtlData
->
win
.
ekey
);
if
(
pCtlData
->
command
==
CMD_DELETE_DATA
)
{
ret
=
tsdbInsertDeleteData
(
pRepo
,
pCtlData
,
pRsp
,
pSem
);
}
return
ret
;
}
\ No newline at end of file
src/tsdb/src/tsdbTruncate.c
浏览文件 @
eeba8d02
...
...
@@ -400,8 +400,8 @@ static int tsdbInitTruncateH(STruncateH *pTruncateH, STsdbRepo *pRepo) {
static
void
tsdbDestroyTruncateH
(
STruncateH
*
pTruncateH
)
{
pTruncateH
->
pDCols
=
tdFreeDataCols
(
pTruncateH
->
pDCols
);
pTruncateH
->
aSupBlk
=
taosArrayDestroy
(
pTruncateH
->
aSupBlk
);
pTruncateH
->
aBlkIdx
=
taosArrayDestroy
(
pTruncateH
->
aBlkIdx
);
pTruncateH
->
aSupBlk
=
taosArrayDestroy
(
&
pTruncateH
->
aSupBlk
);
pTruncateH
->
aBlkIdx
=
taosArrayDestroy
(
&
pTruncateH
->
aBlkIdx
);
tsdbDestroyTruncateTblArray
(
pTruncateH
);
tsdbDestroyReadH
(
&
(
pTruncateH
->
readh
));
tsdbCloseDFileSet
(
TSDB_TRUNCATE_WSET
(
pTruncateH
));
...
...
@@ -453,7 +453,7 @@ static void tsdbDestroyTruncateTblArray(STruncateH *pTruncateH) {
tfree
(
pTblHandle
->
pInfo
);
}
pTruncateH
->
tblArray
=
taosArrayDestroy
(
pTruncateH
->
tblArray
);
pTruncateH
->
tblArray
=
taosArrayDestroy
(
&
pTruncateH
->
tblArray
);
}
static
int
tsdbCacheFSetIndex
(
STruncateH
*
pTruncateH
)
{
...
...
src/tsdb/tests/tsdbTests.cpp
浏览文件 @
eeba8d02
...
...
@@ -74,7 +74,7 @@ static int insertData(SInsertInfo *pInfo) {
pBlock
->
tid
=
htonl
(
pBlock
->
tid
);
pBlock
->
sversion
=
htonl
(
pBlock
->
sversion
);
pBlock
->
padding
=
htonl
(
pBlock
->
paddin
g
);
pBlock
->
flag
=
htonl
(
pBlock
->
fla
g
);
pMsg
->
length
=
htonl
(
pMsg
->
length
);
pMsg
->
numOfBlocks
=
htonl
(
pMsg
->
numOfBlocks
);
...
...
src/util/inc/tqueue.h
浏览文件 @
eeba8d02
...
...
@@ -47,6 +47,8 @@ void *taosAllocateQitem(int size);
void
taosFreeQitem
(
void
*
item
);
int
taosWriteQitem
(
taos_queue
,
int
type
,
void
*
item
);
int
taosReadQitem
(
taos_queue
,
int
*
type
,
void
**
pitem
);
// special type search Qitem
int
taosSearchQitem
(
taos_queue
,
int
type
,
void
**
pitem
);
taos_qall
taosAllocateQall
();
void
taosFreeQall
(
taos_qall
);
...
...
src/util/src/tqueue.c
浏览文件 @
eeba8d02
...
...
@@ -160,6 +160,47 @@ int taosReadQitem(taos_queue param, int *type, void **pitem) {
return
code
;
}
// search Qitem with type
int
taosSearchQitem
(
taos_queue
param
,
int
type
,
void
**
pitem
)
{
STaosQueue
*
queue
=
(
STaosQueue
*
)
param
;
STaosQnode
*
pNode
=
NULL
;
STaosQnode
*
pPre
=
NULL
;
int
code
=
0
;
pthread_mutex_lock
(
&
queue
->
mutex
);
pNode
=
queue
->
head
;
while
(
pNode
)
{
if
(
pNode
->
type
==
type
)
{
// found
*
pitem
=
pNode
->
item
;
if
(
pPre
==
NULL
)
{
queue
->
head
=
pNode
->
next
;
}
else
{
pPre
->
next
=
pNode
->
next
;
}
if
(
queue
->
head
==
NULL
)
queue
->
tail
=
NULL
;
// reduce number
queue
->
numOfItems
--
;
if
(
queue
->
qset
)
{
atomic_sub_fetch_32
(
&
queue
->
qset
->
numOfItems
,
1
);
}
code
=
1
;
uDebug
(
"item:%p is read out from queue:%p, type:%d items:%d"
,
*
pitem
,
queue
,
type
,
queue
->
numOfItems
);
break
;
}
// move next
pPre
=
pNode
;
pNode
=
pNode
->
next
;
}
pthread_mutex_unlock
(
&
queue
->
mutex
);
return
code
;
}
void
*
taosAllocateQall
()
{
void
*
p
=
calloc
(
sizeof
(
STaosQall
),
1
);
return
p
;
...
...
src/util/src/ttokenizer.c
浏览文件 @
eeba8d02
...
...
@@ -228,7 +228,8 @@ static SKeyword keywordTable[] = {
{
"RANGE"
,
TK_RANGE
},
{
"CONTAINS"
,
TK_CONTAINS
},
{
"TO"
,
TK_TO
},
{
"SPLIT"
,
TK_SPLIT
}
{
"SPLIT"
,
TK_SPLIT
},
{
"DELETE"
,
TK_DELETE
}
};
static
const
char
isIdChar
[]
=
{
...
...
src/vnode/inc/vnodeInt.h
浏览文件 @
eeba8d02
...
...
@@ -75,6 +75,7 @@ typedef struct {
tsem_t
sem
;
char
db
[
TSDB_ACCT_ID_LEN
+
TSDB_DB_NAME_LEN
];
pthread_mutex_t
statusMutex
;
void
*
tqueue
;
// async threads queue
}
SVnodeObj
;
#ifdef __cplusplus
...
...
src/vnode/src/vnodeMain.c
浏览文件 @
eeba8d02
...
...
@@ -29,6 +29,9 @@
#include "vnodeWorker.h"
#include "vnodeBackup.h"
#include "vnodeMain.h"
#include "tqueue.h"
#include "tthread.h"
#include "tcrc32c.h"
static
int32_t
vnodeProcessTsdbStatus
(
void
*
arg
,
int32_t
status
,
int32_t
eno
);
...
...
@@ -465,6 +468,42 @@ int32_t vnodeOpen(int32_t vgId) {
return
TSDB_CODE_SUCCESS
;
}
#define LOOP_CNT 10
void
freeWaitThread
(
SVnodeObj
*
pVnode
)
{
// check wait thread empty
int
type
=
0
;
SWaitThread
*
pWaitThread
=
NULL
;
while
(
taosReadQitem
(
pVnode
->
tqueue
,
&
type
,
(
void
**
)
&
pWaitThread
)
>
0
)
{
// thread is running
int32_t
loop
=
LOOP_CNT
;
while
(
taosThreadRunning
(
pWaitThread
->
pthread
))
{
// only post once
if
(
loop
==
LOOP_CNT
)
tsem_post
(
pWaitThread
->
psem
);
taosMsleep
(
50
);
loop
-=
1
;
if
(
loop
==
0
)
break
;
}
// free all
if
(
loop
==
0
)
{
// thread not stop , so need kill
taosDestoryThread
(
pWaitThread
->
pthread
);
// write msg need remove from queue
SVWriteMsg
*
pWrite
=
(
SVWriteMsg
*
)
pWaitThread
->
param
;
if
(
pWrite
)
vnodeFreeFromWQueue
(
pWrite
->
pVnode
,
pWrite
);
}
else
{
free
(
pWaitThread
->
pthread
);
}
tsem_destroy
(
pWaitThread
->
psem
);
taosFreeQitem
(
pWaitThread
);
}
taosCloseQueue
(
pVnode
->
tqueue
);
}
int32_t
vnodeClose
(
int32_t
vgId
)
{
SVnodeObj
*
pVnode
=
vnodeAcquireNotClose
(
vgId
);
if
(
pVnode
==
NULL
)
return
0
;
...
...
@@ -475,6 +514,10 @@ int32_t vnodeClose(int32_t vgId) {
pVnode
->
preClose
=
1
;
// wait result threads need deal
if
(
pVnode
->
tqueue
)
freeWaitThread
(
pVnode
);
vDebug
(
"vgId:%d, vnode will be closed, pVnode:%p"
,
pVnode
->
vgId
,
pVnode
);
vnodeRelease
(
pVnode
);
vnodeCleanUp
(
pVnode
);
...
...
@@ -614,3 +657,37 @@ static int32_t vnodeProcessTsdbStatus(void *arg, int32_t status, int32_t eno) {
return
0
;
}
// wait thread
void
vnodeAddWait
(
void
*
vparam
,
pthread_t
*
pthread
,
sem_t
*
psem
,
void
*
param
)
{
SVnodeObj
*
pVnode
=
(
SVnodeObj
*
)
vparam
;
if
(
pVnode
->
tqueue
==
NULL
)
{
pVnode
->
tqueue
=
taosOpenQueue
();
}
SWaitThread
*
pWaitThread
=
(
SWaitThread
*
)
taosAllocateQitem
(
sizeof
(
SWaitThread
));
pWaitThread
->
pthread
=
pthread
;
pWaitThread
->
startTime
=
taosGetTimestampSec
();
pWaitThread
->
psem
=
psem
;
pWaitThread
->
param
=
param
;
int32_t
crc
=
crc32c_sf
(
0
,
(
crc_stream
)
pWaitThread
,
sizeof
(
void
*
));
taosWriteQitem
(
pVnode
->
tqueue
,
crc
,
pWaitThread
);
}
// called in wait thread
void
vnodeRemoveWait
(
void
*
vparam
,
void
*
param
)
{
SVnodeObj
*
pVnode
=
(
SVnodeObj
*
)
vparam
;
int32_t
crc
=
crc32c_sf
(
0
,
(
crc_stream
)
param
,
sizeof
(
void
*
));
SWaitThread
*
pWaitThread
=
NULL
;
taosSearchQitem
(
pVnode
->
tqueue
,
crc
,
(
void
**
)
&
pWaitThread
);
if
(
pWaitThread
==
NULL
)
{
// not found
return
;
}
// free thread
free
(
pWaitThread
->
pthread
);
taosFreeQitem
(
pWaitThread
);
}
\ No newline at end of file
src/vnode/src/vnodeWrite.c
浏览文件 @
eeba8d02
...
...
@@ -169,7 +169,7 @@ static int32_t vnodeProcessSubmitMsg(SVnodeObj *pVnode, void *pCont, SRspRet *pR
pRsp
=
pRet
->
rsp
;
}
if
(
tsdbInsertData
(
pVnode
->
tsdb
,
pCont
,
pRsp
)
<
0
)
{
if
(
tsdbInsertData
(
pVnode
->
tsdb
,
pCont
,
pRsp
,
pRet
->
psem_rsp
)
<
0
)
{
code
=
terrno
;
}
else
{
if
(
pRsp
!=
NULL
)
atomic_fetch_add_64
(
&
tsSubmitReqSucNum
,
1
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录