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