Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
dc09cd39
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
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看板
提交
dc09cd39
编写于
5月 09, 2020
作者:
H
hzcheng
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' into feature/2.0tsdb
上级
6a3618b6
1a7061a8
变更
21
隐藏空白更改
内联
并排
Showing
21 changed file
with
1058 addition
and
860 deletion
+1058
-860
src/client/src/tscFunctionImpl.c
src/client/src/tscFunctionImpl.c
+4
-3
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+61
-4
src/client/src/tscSubquery.c
src/client/src/tscSubquery.c
+1
-20
src/inc/ttokendef.h
src/inc/ttokendef.h
+14
-13
src/mnode/src/mgmtMain.c
src/mnode/src/mgmtMain.c
+10
-11
src/mnode/src/mgmtShell.c
src/mnode/src/mgmtShell.c
+10
-5
src/plugins/http/src/restJson.c
src/plugins/http/src/restJson.c
+2
-1
src/plugins/monitor/src/monitorMain.c
src/plugins/monitor/src/monitorMain.c
+4
-4
src/query/inc/sql.y
src/query/inc/sql.y
+1
-1
src/query/inc/tsqlfunction.h
src/query/inc/tsqlfunction.h
+0
-14
src/query/src/qtokenizer.c
src/query/src/qtokenizer.c
+1
-0
src/query/src/queryExecutor.c
src/query/src/queryExecutor.c
+95
-87
src/query/src/sql.c
src/query/src/sql.c
+675
-673
tests/examples/JDBC/springbootdemo/readme.md
tests/examples/JDBC/springbootdemo/readme.md
+1
-1
tests/examples/JDBC/springbootdemo/src/main/resources/application.properties
.../springbootdemo/src/main/resources/application.properties
+2
-2
tests/pytest/fulltest.sh
tests/pytest/fulltest.sh
+1
-0
tests/pytest/insert/nchar.py
tests/pytest/insert/nchar.py
+44
-0
tests/pytest/smoketest.sh
tests/pytest/smoketest.sh
+116
-10
tests/pytest/util/dnodes.py
tests/pytest/util/dnodes.py
+1
-1
tests/script/unique/db/replica_add12.sim
tests/script/unique/db/replica_add12.sim
+6
-6
tests/script/unique/mnode/mgmt22.sim
tests/script/unique/mnode/mgmt22.sim
+9
-4
未找到文件。
src/client/src/tscFunctionImpl.c
浏览文件 @
dc09cd39
...
...
@@ -168,9 +168,10 @@ int32_t getResultDataInfo(int32_t dataType, int32_t dataBytes, int32_t functionI
return
TSDB_CODE_SUCCESS
;
}
// (uid, tid) + VGID + TAGSIZE + VARSTR_HEADER_SIZE
if
(
functionId
==
TSDB_FUNC_TID_TAG
)
{
// todo use struct
*
type
=
TSDB_DATA_TYPE_BINARY
;
*
bytes
=
dataBytes
+
sizeof
(
int64_t
)
+
sizeof
(
int32_t
)
+
sizeof
(
int32_t
)
;
// (uid, tid) + VGID + TAGSIZE
*
bytes
=
dataBytes
+
sizeof
(
int64_t
)
+
sizeof
(
int32_t
)
+
sizeof
(
int32_t
)
+
VARSTR_HEADER_SIZE
;
*
interBytes
=
*
bytes
;
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -5285,10 +5286,10 @@ SQLAggFuncElem aAggs[] = {{
},
{
// 34
"tid_tag"
,
// return table id and the corresponding tags for join match
"tid_tag"
,
// return table id and the corresponding tags for join match
and subscribe
TSDB_FUNC_TID_TAG
,
TSDB_FUNC_TID_TAG
,
TSDB_FUNCSTATE_MO
,
TSDB_FUNCSTATE_MO
|
TSDB_FUNCSTATE_STABLE
,
function_setup
,
noop1
,
noop2
,
...
...
src/client/src/tscSQLParser.c
浏览文件 @
dc09cd39
...
...
@@ -1123,7 +1123,7 @@ int32_t parseSelectClause(SSqlCmd* pCmd, int32_t clauseIndex, tSQLExprList* pSel
if
(
addProjectionExprAndResultField
(
pQueryInfo
,
pItem
)
!=
TSDB_CODE_SUCCESS
)
{
return
TSDB_CODE_INVALID_SQL
;
}
}
else
if
(
pItem
->
pNode
->
nSQLOptr
>=
TK_COUNT
&&
pItem
->
pNode
->
nSQLOptr
<=
TK_
AVG_IRATE
)
{
}
else
if
(
pItem
->
pNode
->
nSQLOptr
>=
TK_COUNT
&&
pItem
->
pNode
->
nSQLOptr
<=
TK_
TBID
)
{
// sql function in selection clause, append sql function info in pSqlCmd structure sequentially
if
(
addExprAndResultField
(
pQueryInfo
,
outputIndex
,
pItem
,
true
)
!=
TSDB_CODE_SUCCESS
)
{
return
TSDB_CODE_INVALID_SQL
;
...
...
@@ -1468,7 +1468,8 @@ static int32_t setExprInfoForFunctions(SQueryInfo* pQueryInfo, SSchema* pSchema,
int32_t
addExprAndResultField
(
SQueryInfo
*
pQueryInfo
,
int32_t
colIndex
,
tSQLExprItem
*
pItem
,
bool
finalResult
)
{
STableMetaInfo
*
pTableMetaInfo
=
NULL
;
int32_t
optr
=
pItem
->
pNode
->
nSQLOptr
;
int32_t
optr
=
pItem
->
pNode
->
nSQLOptr
;
const
char
*
msg1
=
"not support column types"
;
const
char
*
msg2
=
"invalid parameters"
;
...
...
@@ -1476,7 +1477,8 @@ int32_t addExprAndResultField(SQueryInfo* pQueryInfo, int32_t colIndex, tSQLExpr
const
char
*
msg4
=
"invalid table name"
;
const
char
*
msg5
=
"parameter is out of range [0, 100]"
;
const
char
*
msg6
=
"function applied to tags not allowed"
;
const
char
*
msg7
=
"normal table can not apply this function"
;
switch
(
optr
)
{
case
TK_COUNT
:
{
if
(
pItem
->
pNode
->
pParam
!=
NULL
&&
pItem
->
pNode
->
pParam
->
nExpr
!=
1
)
{
...
...
@@ -1858,13 +1860,68 @@ int32_t addExprAndResultField(SQueryInfo* pQueryInfo, int32_t colIndex, tSQLExpr
}
}
return
TSDB_CODE_SUCCESS
;
};
case
TK_TBID
:
{
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
0
);
if
(
UTIL_TABLE_IS_NOMRAL_TABLE
(
pTableMetaInfo
))
{
return
invalidSqlErrMsg
(
pQueryInfo
->
msg
,
msg7
);
}
// no parameters or more than one parameter for function
if
(
pItem
->
pNode
->
pParam
==
NULL
||
pItem
->
pNode
->
pParam
->
nExpr
!=
1
)
{
return
invalidSqlErrMsg
(
pQueryInfo
->
msg
,
msg2
);
}
tSQLExpr
*
pParam
=
pItem
->
pNode
->
pParam
->
a
[
0
].
pNode
;
SColumnIndex
index
=
COLUMN_INDEX_INITIALIZER
;
if
(
getColumnIndexByName
(
&
pParam
->
colInfo
,
pQueryInfo
,
&
index
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidSqlErrMsg
(
pQueryInfo
->
msg
,
msg3
);
}
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
index
.
tableIndex
);
SSchema
*
pSchema
=
tscGetTableTagSchema
(
pTableMetaInfo
->
pTableMeta
);
// functions can not be applied to normal columns
int32_t
numOfCols
=
tscGetNumOfColumns
(
pTableMetaInfo
->
pTableMeta
);
if
(
index
.
columnIndex
<
numOfCols
)
{
return
invalidSqlErrMsg
(
pQueryInfo
->
msg
,
msg6
);
}
index
.
columnIndex
-=
numOfCols
;
// 2. valid the column type
int16_t
colType
=
pSchema
[
index
.
columnIndex
].
type
;
if
(
colType
==
TSDB_DATA_TYPE_BOOL
||
colType
>=
TSDB_DATA_TYPE_BINARY
)
{
return
invalidSqlErrMsg
(
pQueryInfo
->
msg
,
msg1
);
}
tscColumnListInsert
(
pTableMetaInfo
->
tagColList
,
&
index
);
SSchema
*
pTagSchema
=
tscGetTableTagSchema
(
pTableMetaInfo
->
pTableMeta
);
SSchema
s
=
pTagSchema
[
index
.
columnIndex
];
int16_t
bytes
=
0
;
int16_t
type
=
0
;
int16_t
inter
=
0
;
int32_t
ret
=
getResultDataInfo
(
s
.
type
,
s
.
bytes
,
TSDB_FUNC_TID_TAG
,
0
,
&
type
,
&
bytes
,
&
inter
,
0
,
0
);
assert
(
ret
==
TSDB_CODE_SUCCESS
);
s
.
type
=
type
;
s
.
bytes
=
bytes
;
TSDB_QUERY_SET_TYPE
(
pQueryInfo
->
type
,
TSDB_QUERY_TYPE_TAG_FILTER_QUERY
);
tscAddSpecialColumnForSelect
(
pQueryInfo
,
0
,
TSDB_FUNC_TID_TAG
,
&
index
,
&
s
,
TSDB_COL_TAG
);
return
TSDB_CODE_SUCCESS
;
}
default:
return
TSDB_CODE_INVALID_SQL
;
}
}
// todo refactor
...
...
src/client/src/tscSubquery.c
浏览文件 @
dc09cd39
...
...
@@ -412,10 +412,6 @@ static void updateQueryTimeRange(SQueryInfo* pQueryInfo, int64_t st, int64_t et)
static
void
tSIntersectionAndLaunchSecQuery
(
SJoinSupporter
*
pSupporter
,
SSqlObj
*
pSql
)
{
SSqlObj
*
pParentSql
=
pSupporter
->
pObj
;
// SSqlCmd* pCmd = &pSql->cmd;
// SSqlRes* pRes = &pSql->res;
// SQueryInfo *pQueryInfo = tscGetQueryInfoDetail(pCmd, pCmd->clauseIndex);
SQueryInfo
*
pParentQueryInfo
=
tscGetQueryInfoDetail
(
&
pParentSql
->
cmd
,
pParentSql
->
cmd
.
clauseIndex
);
// if (tscNonOrderedProjectionQueryOnSTable(pParentQueryInfo, 0)) {
...
...
@@ -602,21 +598,6 @@ static void joinRetrieveCallback(void* param, TAOS_RES* tres, int numOfRows) {
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfoDetail
(
pCmd
,
pCmd
->
clauseIndex
);
// if (pSupporter->pState->code != TSDB_CODE_SUCCESS) {
// tscError("%p abort query due to other subquery failure. code:%d, global code:%s", pSql, numOfRows,
// tstrerror(pSupporter->pState->code));
//
// quitAllSubquery(pParentSql, pSupporter);
// return;
// }
//
// if (numOfRows < 0) {
// tscError("%p sub query failed, code:%s, index:%d", pSql, tstrerror(numOfRows), pSupporter->subqueryIndex);
// pSupporter->pState->code = numOfRows;
// quitAllSubquery(pParentSql, pSupporter);
// return;
// }
// response of tag retrieve
if
(
TSDB_QUERY_HAS_TYPE
(
pQueryInfo
->
type
,
TSDB_QUERY_TYPE_TAG_FILTER_QUERY
))
{
if
(
numOfRows
==
0
||
pSql
->
res
.
completed
)
{
...
...
@@ -1455,7 +1436,7 @@ void tscHandleSubqueryError(SRetrieveSupport *trsupport, SSqlObj *pSql, int numO
return
;
}
else
{
// reach the maximum retry count, abort
atomic_val_compare_exchange_32
(
&
pState
->
code
,
TSDB_CODE_SUCCESS
,
numOfRows
);
tscError
(
"%p sub:%p retrieve failed,code:%
s
,orderOfSub:%d failed.no more retry,set global code:%d"
,
pPObj
,
pSql
,
tscError
(
"%p sub:%p retrieve failed,code:%
d
,orderOfSub:%d failed.no more retry,set global code:%d"
,
pPObj
,
pSql
,
numOfRows
,
subqueryIndex
,
tstrerror
(
pState
->
code
));
}
}
...
...
src/inc/ttokendef.h
浏览文件 @
dc09cd39
...
...
@@ -206,19 +206,20 @@
#define TK_SUM_IRATE 188
#define TK_AVG_RATE 189
#define TK_AVG_IRATE 190
#define TK_SEMI 191
#define TK_NONE 192
#define TK_PREV 193
#define TK_LINEAR 194
#define TK_IMPORT 195
#define TK_METRIC 196
#define TK_TBNAME 197
#define TK_JOIN 198
#define TK_METRICS 199
#define TK_STABLE 200
#define TK_INSERT 201
#define TK_INTO 202
#define TK_VALUES 203
#define TK_TBID 191
#define TK_SEMI 192
#define TK_NONE 193
#define TK_PREV 194
#define TK_LINEAR 195
#define TK_IMPORT 196
#define TK_METRIC 197
#define TK_TBNAME 198
#define TK_JOIN 199
#define TK_METRICS 200
#define TK_STABLE 201
#define TK_INSERT 202
#define TK_INTO 203
#define TK_VALUES 204
#endif
...
...
src/mnode/src/mgmtMain.c
浏览文件 @
dc09cd39
...
...
@@ -55,11 +55,6 @@ int32_t mgmtStartSystem() {
return
-
1
;
}
if
(
grantInit
()
<
0
)
{
mError
(
"failed to init grant"
);
return
-
1
;
}
if
(
mgmtInitUsers
()
<
0
)
{
mError
(
"failed to init users"
);
return
-
1
;
...
...
@@ -99,6 +94,11 @@ int32_t mgmtStartSystem() {
mError
(
"failed to init balance"
)
}
if
(
grantInit
()
<
0
)
{
mError
(
"failed to init grant"
);
return
-
1
;
}
if
(
mgmtInitServer
()
<
0
)
{
return
-
1
;
}
...
...
@@ -132,19 +132,18 @@ int32_t mgmtInitSystem() {
void
mgmtCleanUpSystem
()
{
mPrint
(
"starting to clean up mgmt"
);
grantCleanUp
();
mgmtCleanupMnodes
();
balanceCleanUp
();
mgmtCleanUpShell
();
mgmtCleanupServer
();
mgmtCleanUpAccts
();
grantCleanUp
();
balanceCleanUp
();
sdbCleanUp
();
mgmtCleanupMnodes
();
mgmtCleanUpTables
();
mgmtCleanUpVgroups
();
mgmtCleanUpDbs
();
mgmtCleanupDnodes
();
mgmtCleanUpUsers
();
sdbCleanUp
();
taosTmrCleanUp
(
tsMgmtTmr
);
mgmtCleanUpAccts
();
tsMgmtIsRunning
=
false
;
mPrint
(
"mgmt is cleaned up"
);
}
...
...
src/mnode/src/mgmtShell.c
浏览文件 @
dc09cd39
...
...
@@ -66,21 +66,26 @@ int32_t mgmtInitShell() {
tsMgmtTmr
=
taosTmrInit
((
tsMaxShellConns
)
*
3
,
200
,
3600000
,
"MND"
);
tsMgmtTranQhandle
=
taosInitScheduler
(
tsMaxShellConns
,
1
,
"mnodeT"
);
tsQhandleCache
=
taosCacheInit
(
tsMgmtTmr
,
2
);
tsQhandleCache
=
taosCacheInit
(
tsMgmtTmr
,
10
);
return
0
;
}
void
mgmtCleanUpShell
()
{
if
(
tsMgmtT
ranQhandle
)
{
taos
CleanUpScheduler
(
tsMgmtTranQhandle
);
tsMgmtT
ranQhandle
=
NULL
;
if
(
tsMgmtT
mr
!=
NULL
)
{
taos
TmrCleanUp
(
tsMgmtTmr
);
tsMgmtT
mr
=
NULL
;
}
if
(
tsQhandleCache
)
{
if
(
tsQhandleCache
!=
NULL
)
{
taosCacheCleanup
(
tsQhandleCache
);
tsQhandleCache
=
NULL
;
}
if
(
tsMgmtTranQhandle
!=
NULL
)
{
taosCleanUpScheduler
(
tsMgmtTranQhandle
);
tsMgmtTranQhandle
=
NULL
;
}
}
void
mgmtAddShellMsgHandle
(
uint8_t
showType
,
void
(
*
fp
)(
SQueuedMsg
*
queuedMsg
))
{
...
...
src/plugins/http/src/restJson.c
浏览文件 @
dc09cd39
...
...
@@ -94,6 +94,7 @@ bool restBuildSqlJson(HttpContext *pContext, HttpSqlCmd *cmd, TAOS_RES *result,
for
(
int
k
=
0
;
k
<
numOfRows
;
++
k
)
{
TAOS_ROW
row
=
taos_fetch_row
(
result
);
int32_t
*
length
=
taos_fetch_lengths
(
result
);
// data row array begin
httpJsonItemToken
(
jsonBuf
);
...
...
@@ -129,7 +130,7 @@ bool restBuildSqlJson(HttpContext *pContext, HttpSqlCmd *cmd, TAOS_RES *result,
break
;
case
TSDB_DATA_TYPE_BINARY
:
case
TSDB_DATA_TYPE_NCHAR
:
httpJsonStringForTransMean
(
jsonBuf
,
row
[
i
],
fields
[
i
].
bytes
);
httpJsonStringForTransMean
(
jsonBuf
,
row
[
i
],
length
[
i
]
);
break
;
case
TSDB_DATA_TYPE_TIMESTAMP
:
if
(
timestampFormat
==
REST_TIMESTAMP_FMT_LOCAL_STRING
)
{
...
...
src/plugins/monitor/src/monitorMain.c
浏览文件 @
dc09cd39
...
...
@@ -160,11 +160,11 @@ static void dnodeBuildMonitorSql(char *sql, int32_t cmd) {
", band_speed float"
", io_read float, io_write float"
", req_http int, req_select int, req_insert int"
") tags (
ipaddr
binary(%d))"
,
") tags (
dnodeid int, fqdn
binary(%d))"
,
tsMonitorDbName
,
TSDB_FQDN_LEN
+
1
);
}
else
if
(
cmd
==
MONITOR_CMD_CREATE_TB_DN
)
{
snprintf
(
sql
,
SQL_LENGTH
,
"create table if not exists %s.dn
_%s using %s.dn tags(
'%s')"
,
tsMonitorDbName
,
tsMonitorConn
.
ep
,
tsMonitorDbName
,
tsLocalEp
);
snprintf
(
sql
,
SQL_LENGTH
,
"create table if not exists %s.dn
%d using %s.dn tags(%d,
'%s')"
,
tsMonitorDbName
,
dnodeGetDnodeId
(),
tsMonitorDbName
,
dnodeGetDnodeId
()
,
tsLocalEp
);
}
else
if
(
cmd
==
MONITOR_CMD_CREATE_MT_ACCT
)
{
snprintf
(
sql
,
SQL_LENGTH
,
"create table if not exists %s.acct(ts timestamp "
...
...
@@ -347,7 +347,7 @@ static void monitorSaveSystemInfo() {
int64_t
ts
=
taosGetTimestampUs
();
char
*
sql
=
tsMonitorConn
.
sql
;
int32_t
pos
=
snprintf
(
sql
,
SQL_LENGTH
,
"insert into %s.dn
_%s values(%"
PRId64
,
tsMonitorDbName
,
tsMonitorConn
.
ep
,
ts
);
int32_t
pos
=
snprintf
(
sql
,
SQL_LENGTH
,
"insert into %s.dn
%d values(%"
PRId64
,
tsMonitorDbName
,
dnodeGetDnodeId
()
,
ts
);
pos
+=
monitorBuildCpuSql
(
sql
+
pos
);
pos
+=
monitorBuildMemorySql
(
sql
+
pos
);
...
...
src/query/inc/sql.y
浏览文件 @
dc09cd39
...
...
@@ -655,5 +655,5 @@ cmd ::= KILL QUERY IPTOKEN(X) COLON(Z) INTEGER(Y) COLON(K) INTEGER(F). {X
DELIMITERS DESC DETACH EACH END EXPLAIN FAIL FOR GLOB IGNORE IMMEDIATE INITIALLY INSTEAD
LIKE MATCH KEY OF OFFSET RAISE REPLACE RESTRICT ROW STATEMENT TRIGGER VIEW ALL
COUNT SUM AVG MIN MAX FIRST LAST TOP BOTTOM STDDEV PERCENTILE APERCENTILE LEASTSQUARES HISTOGRAM DIFF
SPREAD TWA INTERP LAST_ROW RATE IRATE SUM_RATE SUM_IRATE AVG_RATE AVG_IRATE NOW IPTOKEN SEMI NONE PREV LINEAR IMPORT
SPREAD TWA INTERP LAST_ROW RATE IRATE SUM_RATE SUM_IRATE AVG_RATE AVG_IRATE
TBID
NOW IPTOKEN SEMI NONE PREV LINEAR IMPORT
METRIC TBNAME JOIN METRICS STABLE NULL INSERT INTO VALUES.
src/query/inc/tsqlfunction.h
浏览文件 @
dc09cd39
...
...
@@ -245,21 +245,8 @@ enum {
BLK_DATA_ALL_NEEDED
=
0x3
,
};
#define IS_FILE_BLOCK(x) (((x)&BLK_FILE_BLOCK) != 0)
#define SET_FILE_BLOCK_FLAG(x) \
do { \
(x) &= (~BLK_CACHE_BLOCK); \
(x) |= BLK_FILE_BLOCK; \
} while (0);
#define SET_CACHE_BLOCK_FLAG(x) ((x) = BLK_CACHE_BLOCK | BLK_BLOCK_LOADED);
#define SET_DATA_BLOCK_NOT_LOADED(x) ((x) &= (~BLK_BLOCK_LOADED));
#define SET_DATA_BLOCK_LOADED(x) ((x) |= BLK_BLOCK_LOADED);
#define IS_DATA_BLOCK_LOADED(x) (((x)&BLK_BLOCK_LOADED) != 0)
typedef
struct
STwaInfo
{
TSKEY
lastKey
;
int8_t
hasResult
;
// flag to denote has value
...
...
@@ -291,7 +278,6 @@ bool top_bot_datablock_filter(SQLFunctionCtx *pCtx, int32_t functionId, char *mi
bool
stableQueryFunctChanged
(
int32_t
funcId
);
void
resetResultInfo
(
SResultInfo
*
pResInfo
);
void
initResultInfo
(
SResultInfo
*
pResInfo
);
void
setResultInfoBuf
(
SResultInfo
*
pResInfo
,
int32_t
size
,
bool
superTable
);
...
...
src/query/src/qtokenizer.c
浏览文件 @
dc09cd39
...
...
@@ -225,6 +225,7 @@ static SKeyword keywordTable[] = {
{
"TBNAME"
,
TK_TBNAME
},
{
"JOIN"
,
TK_JOIN
},
{
"METRICS"
,
TK_METRICS
},
{
"TBID"
,
TK_TBID
},
{
"STABLE"
,
TK_STABLE
},
{
"FILE"
,
TK_FILE
},
{
"VNODES"
,
TK_VNODES
},
...
...
src/query/src/queryExecutor.c
浏览文件 @
dc09cd39
...
...
@@ -39,10 +39,10 @@
#define TSDB_COL_IS_TAG(f) (((f)&TSDB_COL_TAG) != 0)
#define QUERY_IS_ASC_QUERY(q) (GET_FORWARD_DIRECTION_FACTOR((q)->order.order) == QUERY_ASC_FORWARD_STEP)
#define IS_MASTER_SCAN(runtime)
(((runtime)->scanFlag & 1u)
== MASTER_SCAN)
#define IS_
SUPPLEMENT_SCAN(runtime)
((runtime)->scanFlag == SUPPLEMENTARY_SCAN)
#define SET_
SUPPLEMENT_SCAN_FLAG(runtime) ((runtime)->scanFlag = SUPPLEMENTARY
_SCAN)
#define SET_
MASTER_SCAN_FLAG(runtime) ((runtime)->scanFlag = MASTER
_SCAN)
#define IS_MASTER_SCAN(runtime)
((runtime)->scanFlag
== MASTER_SCAN)
#define IS_
REVERSE_SCAN(runtime)
((runtime)->scanFlag == SUPPLEMENTARY_SCAN)
#define SET_
MASTER_SCAN_FLAG(runtime) ((runtime)->scanFlag = MASTER
_SCAN)
#define SET_
REVERSE_SCAN_FLAG(runtime) ((runtime)->scanFlag = SUPPLEMENTARY
_SCAN)
#define GET_QINFO_ADDR(x) ((void *)((char *)(x)-offsetof(SQInfo, runtimeEnv)))
...
...
@@ -1101,7 +1101,7 @@ static bool functionNeedToExecute(SQueryRuntimeEnv *pRuntimeEnv, SQLFunctionCtx
}
// in the supplementary scan, only the following functions need to be executed
if
(
IS_
SUPPLEMENT
_SCAN
(
pRuntimeEnv
)
&&
if
(
IS_
REVERSE
_SCAN
(
pRuntimeEnv
)
&&
!
(
functionId
==
TSDB_FUNC_LAST_DST
||
functionId
==
TSDB_FUNC_FIRST_DST
||
functionId
==
TSDB_FUNC_FIRST
||
functionId
==
TSDB_FUNC_LAST
||
functionId
==
TSDB_FUNC_TAG
||
functionId
==
TSDB_FUNC_TS
))
{
return
false
;
...
...
@@ -2450,8 +2450,7 @@ static int64_t doScanAllDataBlocks(SQueryRuntimeEnv *pRuntimeEnv) {
qTrace
(
"QInfo:%p query start, qrange:%"
PRId64
"-%"
PRId64
", lastkey:%"
PRId64
", order:%d"
,
GET_QINFO_ADDR
(
pRuntimeEnv
),
pQuery
->
window
.
skey
,
pQuery
->
window
.
ekey
,
pQuery
->
lastKey
,
pQuery
->
order
.
order
);
TsdbQueryHandleT
pQueryHandle
=
pRuntimeEnv
->
scanFlag
==
MASTER_SCAN
?
pRuntimeEnv
->
pQueryHandle
:
pRuntimeEnv
->
pSecQueryHandle
;
TsdbQueryHandleT
pQueryHandle
=
IS_MASTER_SCAN
(
pRuntimeEnv
)
?
pRuntimeEnv
->
pQueryHandle
:
pRuntimeEnv
->
pSecQueryHandle
;
while
(
tsdbNextDataBlock
(
pQueryHandle
))
{
if
(
isQueryKilled
(
GET_QINFO_ADDR
(
pRuntimeEnv
)))
{
return
0
;
...
...
@@ -2835,11 +2834,12 @@ void copyResToQueryResultBuf(SQInfo *pQInfo, SQuery *pQuery) {
return
;
// failed to save data in the disk
}
// set current query completed
// if (pQInfo->numOfGroupResultPages == 0 && pQInfo->groupIndex == pQInfo->pSidSet->numOfSubSet) {
// pQInfo->tableIndex = pQInfo->pSidSet->numOfTables;
// return;
// }
// check if all results has been sent to client
int32_t
numOfGroup
=
taosArrayGetSize
(
pQInfo
->
groupInfo
.
pGroupList
);
if
(
pQInfo
->
numOfGroupResultPages
==
0
&&
pQInfo
->
groupIndex
==
numOfGroup
)
{
pQInfo
->
tableIndex
=
pQInfo
->
groupInfo
.
numOfTables
;
// set query completed
return
;
}
}
SQueryRuntimeEnv
*
pRuntimeEnv
=
&
pQInfo
->
runtimeEnv
;
...
...
@@ -3087,7 +3087,31 @@ void setTableDataInfo(STableQueryInfo *pTableQueryInfo, int32_t tableIndex, int3
pTableQueryInfo
->
tableIndex
=
tableIndex
;
}
static
void
doDisableFunctsForSupplementaryScan
(
SQuery
*
pQuery
,
SWindowResInfo
*
pWindowResInfo
,
int32_t
order
)
{
static
void
updateTableQueryInfoForReverseScan
(
SQuery
*
pQuery
,
STableQueryInfo
*
pTableQueryInfo
)
{
if
(
pTableQueryInfo
==
NULL
)
{
return
;
}
// order has change already!
int32_t
step
=
GET_FORWARD_DIRECTION_FACTOR
(
pQuery
->
order
.
order
);
if
(
!
QUERY_IS_ASC_QUERY
(
pQuery
))
{
assert
(
pTableQueryInfo
->
win
.
ekey
>=
pTableQueryInfo
->
lastKey
+
step
);
}
else
{
assert
(
pTableQueryInfo
->
win
.
ekey
<=
pTableQueryInfo
->
lastKey
+
step
);
}
pTableQueryInfo
->
win
.
ekey
=
pTableQueryInfo
->
lastKey
+
step
;
SWAP
(
pTableQueryInfo
->
win
.
skey
,
pTableQueryInfo
->
win
.
ekey
,
TSKEY
);
pTableQueryInfo
->
lastKey
=
pTableQueryInfo
->
win
.
skey
;
SWITCH_ORDER
(
pTableQueryInfo
->
cur
.
order
);
pTableQueryInfo
->
cur
.
vgroupIndex
=
-
1
;
}
static
void
disableFuncInReverseScanImpl
(
SQInfo
*
pQInfo
,
SWindowResInfo
*
pWindowResInfo
,
int32_t
order
)
{
SQuery
*
pQuery
=
pQInfo
->
runtimeEnv
.
pQuery
;
for
(
int32_t
i
=
0
;
i
<
pWindowResInfo
->
size
;
++
i
)
{
SWindowStatus
*
pStatus
=
getTimeWindowResStatus
(
pWindowResInfo
,
i
);
if
(
!
pStatus
->
closed
)
{
...
...
@@ -3108,18 +3132,32 @@ static void doDisableFunctsForSupplementaryScan(SQuery *pQuery, SWindowResInfo *
}
}
}
int32_t
numOfGroups
=
taosArrayGetSize
(
pQInfo
->
groupInfo
.
pGroupList
);
for
(
int32_t
i
=
0
;
i
<
numOfGroups
;
++
i
)
{
SArray
*
group
=
taosArrayGetP
(
pQInfo
->
groupInfo
.
pGroupList
,
i
);
qTrace
(
"QInfo:%p no result in group %d, continue"
,
pQInfo
,
pQInfo
->
groupIndex
-
1
);
size_t
t
=
taosArrayGetSize
(
group
);
for
(
int32_t
j
=
0
;
j
<
t
;
++
j
)
{
SGroupItem
*
item
=
taosArrayGet
(
group
,
j
);
updateTableQueryInfoForReverseScan
(
pQuery
,
item
->
info
);
}
}
}
void
disableFuncInReverseScan
(
SQueryRuntimeEnv
*
pRuntimeEnv
)
{
void
disableFuncInReverseScan
(
SQInfo
*
pQInfo
)
{
SQueryRuntimeEnv
*
pRuntimeEnv
=
&
pQInfo
->
runtimeEnv
;
SQuery
*
pQuery
=
pRuntimeEnv
->
pQuery
;
int32_t
order
=
pQuery
->
order
.
order
;
// group by normal columns and interval query on normal table
SWindowResInfo
*
pWindowResInfo
=
&
pRuntimeEnv
->
windowResInfo
;
if
(
isGroupbyNormalCol
(
pQuery
->
pGroupbyExpr
)
||
isIntervalQuery
(
pQuery
))
{
d
oDisableFunctsForSupplementaryScan
(
pQuery
,
pWindowResInfo
,
order
);
d
isableFuncInReverseScanImpl
(
pQInfo
,
pWindowResInfo
,
order
);
}
else
{
// for simple result of table query,
for
(
int32_t
j
=
0
;
j
<
pQuery
->
numOfOutput
;
++
j
)
{
for
(
int32_t
j
=
0
;
j
<
pQuery
->
numOfOutput
;
++
j
)
{
// todo refactor
int32_t
functId
=
pQuery
->
pSelectExpr
[
j
].
base
.
functionId
;
SQLFunctionCtx
*
pCtx
=
&
pRuntimeEnv
->
pCtx
[
j
];
...
...
@@ -3134,34 +3172,10 @@ void disableFuncInReverseScan(SQueryRuntimeEnv *pRuntimeEnv) {
}
}
void
disableFuncForReverseScan
(
SQInfo
*
pQInfo
,
int32_t
order
)
{
SQueryRuntimeEnv
*
pRuntimeEnv
=
&
pQInfo
->
runtimeEnv
;
SQuery
*
pQuery
=
pRuntimeEnv
->
pQuery
;
for
(
int32_t
i
=
0
;
i
<
pQuery
->
numOfOutput
;
++
i
)
{
pRuntimeEnv
->
pCtx
[
i
].
order
=
(
pRuntimeEnv
->
pCtx
[
i
].
order
)
^
1u
;
}
if
(
isIntervalQuery
(
pQuery
))
{
// for (int32_t i = 0; i < pQInfo->groupInfo.numOfTables; ++i) {
// STableQueryInfo *pTableQueryInfo = pQInfo->pTableQueryInfo[i].pTableQInfo;
// SWindowResInfo * pWindowResInfo = &pTableQueryInfo->windowResInfo;
//
// doDisableFunctsForSupplementaryScan(pQuery, pWindowResInfo, order);
// }
}
else
{
SWindowResInfo
*
pWindowResInfo
=
&
pRuntimeEnv
->
windowResInfo
;
doDisableFunctsForSupplementaryScan
(
pQuery
,
pWindowResInfo
,
order
);
}
pQuery
->
order
.
order
=
(
pQuery
->
order
.
order
)
^
1u
;
}
void
switchCtxOrder
(
SQueryRuntimeEnv
*
pRuntimeEnv
)
{
SQuery
*
pQuery
=
pRuntimeEnv
->
pQuery
;
for
(
int32_t
i
=
0
;
i
<
pQuery
->
numOfOutput
;
++
i
)
{
SWITCH_ORDER
(
pRuntimeEnv
->
pCtx
[
i
]
.
order
);
// = (pRuntimeEnv->pCtx[i].order == TSDB_ORDER_ASC)? TSDB_ORDER_DESC:TSDB_ORDER_ASC;
SWITCH_ORDER
(
pRuntimeEnv
->
pCtx
[
i
]
.
order
);
}
}
...
...
@@ -3358,7 +3372,7 @@ static void setEnvBeforeReverseScan(SQueryRuntimeEnv *pRuntimeEnv, SQueryStatusI
SWAP
(
pQuery
->
window
.
skey
,
pQuery
->
window
.
ekey
,
TSKEY
);
SWITCH_ORDER
(
pQuery
->
order
.
order
);
SET_
SUPPLEMENT
_SCAN_FLAG
(
pRuntimeEnv
);
SET_
REVERSE
_SCAN_FLAG
(
pRuntimeEnv
);
STsdbQueryCond
cond
=
{
.
twindow
=
pQuery
->
window
,
...
...
@@ -3376,7 +3390,7 @@ static void setEnvBeforeReverseScan(SQueryRuntimeEnv *pRuntimeEnv, SQueryStatusI
setQueryStatus
(
pQuery
,
QUERY_NOT_COMPLETED
);
switchCtxOrder
(
pRuntimeEnv
);
disableFuncInReverseScan
(
p
RuntimeEnv
);
disableFuncInReverseScan
(
p
QInfo
);
}
static
void
clearEnvAfterReverseScan
(
SQueryRuntimeEnv
*
pRuntimeEnv
,
SQueryStatusInfo
*
pStatus
)
{
...
...
@@ -3533,28 +3547,6 @@ void destroyTableQueryInfo(STableQueryInfo *pTableQueryInfo, int32_t numOfCols)
free
(
pTableQueryInfo
);
}
void
changeMeterQueryInfoForSuppleQuery
(
SQuery
*
pQuery
,
STableQueryInfo
*
pTableQueryInfo
)
{
if
(
pTableQueryInfo
==
NULL
)
{
return
;
}
// order has change already!
int32_t
step
=
GET_FORWARD_DIRECTION_FACTOR
(
pQuery
->
order
.
order
);
if
(
!
QUERY_IS_ASC_QUERY
(
pQuery
))
{
assert
(
pTableQueryInfo
->
win
.
ekey
>=
pTableQueryInfo
->
lastKey
+
step
);
}
else
{
assert
(
pTableQueryInfo
->
win
.
ekey
<=
pTableQueryInfo
->
lastKey
+
step
);
}
pTableQueryInfo
->
win
.
ekey
=
pTableQueryInfo
->
lastKey
+
step
;
SWAP
(
pTableQueryInfo
->
win
.
skey
,
pTableQueryInfo
->
win
.
ekey
,
TSKEY
);
pTableQueryInfo
->
lastKey
=
pTableQueryInfo
->
win
.
skey
;
pTableQueryInfo
->
cur
.
order
=
pTableQueryInfo
->
cur
.
order
^
1u
;
pTableQueryInfo
->
cur
.
vgroupIndex
=
-
1
;
}
void
restoreIntervalQueryRange
(
SQueryRuntimeEnv
*
pRuntimeEnv
,
STableQueryInfo
*
pTableQueryInfo
)
{
SQuery
*
pQuery
=
pRuntimeEnv
->
pQuery
;
...
...
@@ -3943,9 +3935,16 @@ static void doCopyQueryResultToMsg(SQInfo *pQInfo, int32_t numOfRows, char *data
data
+=
bytes
*
numOfRows
;
}
// all data returned, set query over
if
(
Q_STATUS_EQUAL
(
pQuery
->
status
,
QUERY_COMPLETED
))
{
setQueryStatus
(
pQuery
,
QUERY_OVER
);
if
(
pQInfo
->
runtimeEnv
.
stableQuery
&&
isIntervalQuery
(
pQuery
))
{
if
(
pQInfo
->
tableIndex
>=
pQInfo
->
groupInfo
.
numOfTables
)
{
setQueryStatus
(
pQuery
,
QUERY_OVER
);
}
}
else
{
setQueryStatus
(
pQuery
,
QUERY_OVER
);
}
}
}
...
...
@@ -4368,7 +4367,8 @@ static int64_t queryOnDataBlocks(SQInfo *pQInfo) {
int64_t
st
=
taosGetTimestampMs
();
TsdbQueryHandleT
*
pQueryHandle
=
pRuntimeEnv
->
pQueryHandle
;
TsdbQueryHandleT
pQueryHandle
=
IS_MASTER_SCAN
(
pRuntimeEnv
)
?
pRuntimeEnv
->
pQueryHandle
:
pRuntimeEnv
->
pSecQueryHandle
;
while
(
tsdbNextDataBlock
(
pQueryHandle
))
{
if
(
isQueryKilled
(
pQInfo
))
{
break
;
...
...
@@ -4400,7 +4400,7 @@ static int64_t queryOnDataBlocks(SQInfo *pQInfo) {
}
}
assert
(
pTableQueryInfo
!=
NULL
&&
pTableQueryInfo
!=
NULL
);
assert
(
pTableQueryInfo
!=
NULL
);
restoreIntervalQueryRange
(
pRuntimeEnv
,
pTableQueryInfo
);
SDataStatis
*
pStatis
=
NULL
;
...
...
@@ -4759,28 +4759,35 @@ static void createTableQueryInfo(SQInfo *pQInfo) {
}
}
static
void
prepareQueryInfoForReverseScan
(
SQInfo
*
pQInfo
)
{
// SQuery *pQuery = pQInfo->runtimeEnv.pQuery;
// for (int32_t i = 0; i < pQInfo->groupInfo.numOfTables; ++i) {
// STableQueryInfo *pTableQueryInfo = pQInfo->pTableQueryInfo[i].pTableQInfo;
// changeMeterQueryInfoForSuppleQuery(pQuery, pTableQueryInfo);
// }
}
static
void
doSaveContext
(
SQInfo
*
pQInfo
)
{
SQueryRuntimeEnv
*
pRuntimeEnv
=
&
pQInfo
->
runtimeEnv
;
SQuery
*
pQuery
=
pRuntimeEnv
->
pQuery
;
SET_SUPPLEMENT_SCAN_FLAG
(
pRuntimeEnv
);
disableFuncForReverseScan
(
pQInfo
,
pQuery
->
order
.
order
);
SET_REVERSE_SCAN_FLAG
(
pRuntimeEnv
);
SWAP
(
pQuery
->
window
.
skey
,
pQuery
->
window
.
ekey
,
TSKEY
);
SWITCH_ORDER
(
pQuery
->
order
.
order
);
if
(
pRuntimeEnv
->
pTSBuf
!=
NULL
)
{
pRuntimeEnv
->
pTSBuf
->
cur
.
order
=
p
RuntimeEnv
->
pTSBuf
->
cur
.
order
^
1u
;
pRuntimeEnv
->
pTSBuf
->
cur
.
order
=
p
Query
->
order
.
order
;
}
SWAP
(
pQuery
->
window
.
skey
,
pQuery
->
window
.
ekey
,
TSKEY
);
prepareQueryInfoForReverseScan
(
pQInfo
);
STsdbQueryCond
cond
=
{
.
twindow
=
pQuery
->
window
,
.
order
=
pQuery
->
order
.
order
,
.
colList
=
pQuery
->
colList
,
.
numOfCols
=
pQuery
->
numOfCols
,
};
// clean unused handle
if
(
pRuntimeEnv
->
pSecQueryHandle
!=
NULL
)
{
tsdbCleanupQueryHandle
(
pRuntimeEnv
->
pSecQueryHandle
);
}
pRuntimeEnv
->
pSecQueryHandle
=
tsdbQueryTables
(
pQInfo
->
tsdb
,
&
cond
,
&
pQInfo
->
tableIdGroupInfo
);
setQueryStatus
(
pQuery
,
QUERY_NOT_COMPLETED
);
switchCtxOrder
(
pRuntimeEnv
);
disableFuncInReverseScan
(
pQInfo
);
}
static
void
doRestoreContext
(
SQInfo
*
pQInfo
)
{
...
...
@@ -4835,8 +4842,6 @@ static void multiTableQueryProcess(SQInfo *pQInfo) {
copyFromWindowResToSData
(
pQInfo
,
pRuntimeEnv
->
windowResInfo
.
pResult
);
}
pQuery
->
rec
.
rows
+=
pQuery
->
rec
.
rows
;
if
(
pQuery
->
rec
.
rows
==
0
)
{
// vnodePrintQueryStatistics(pSupporter);
}
...
...
@@ -6287,7 +6292,10 @@ static void buildTagQueryResult(SQInfo* pQInfo) {
SGroupItem
*
item
=
taosArrayGet
(
pa
,
i
);
char
*
output
=
pQuery
->
sdata
[
0
]
->
data
+
i
*
rsize
;
*
(
int64_t
*
)
output
=
item
->
id
.
uid
;
// memory align problem
varDataSetLen
(
output
,
rsize
-
VARSTR_HEADER_SIZE
);
output
=
varDataVal
(
output
);
*
(
int64_t
*
)
output
=
item
->
id
.
uid
;
// memory align problem, todo serialize
output
+=
sizeof
(
item
->
id
.
uid
);
*
(
int32_t
*
)
output
=
item
->
id
.
tid
;
...
...
src/query/src/sql.c
浏览文件 @
dc09cd39
...
...
@@ -97,26 +97,26 @@
#endif
/************* Begin control #defines *****************************************/
#define YYCODETYPE unsigned short int
#define YYNOCODE 2
69
#define YYNOCODE 2
70
#define YYACTIONTYPE unsigned short int
#define ParseTOKENTYPE SSQLToken
typedef
union
{
int
yyinit
;
ParseTOKENTYPE
yy0
;
tSQLExpr
*
yy2
;
tSQLExprList
*
yy1
0
;
TAOS_FIELD
yy47
;
SCreateAcctSQL
yy63
;
SSubclauseInfo
*
yy
145
;
int
yy196
;
SLimitVal
yy2
30
;
int64_t
yy373
;
SQuerySQL
*
yy392
;
t
Variant
yy442
;
tVariantList
*
yy456
;
SCreate
DBInfo
yy47
8
;
SCreateTableSQL
*
yy494
;
t
FieldList
*
yy503
;
int
yy150
;
SQuerySQL
*
yy19
0
;
SCreateAcctSQL
yy219
;
tSQLExprList
*
yy260
;
SSubclauseInfo
*
yy
263
;
int
64_t
yy279
;
SLimitVal
yy2
84
;
tVariantList
*
yy322
;
TAOS_FIELD
yy325
;
t
FieldList
*
yy369
;
SCreateDBInfo
yy374
;
SCreate
TableSQL
*
yy40
8
;
tSQLExpr
*
yy500
;
t
Variant
yy518
;
}
YYMINORTYPE
;
#ifndef YYSTACKDEPTH
#define YYSTACKDEPTH 100
...
...
@@ -128,7 +128,7 @@ typedef union {
#define YYFALLBACK 1
#define YYNSTATE 247
#define YYNRULE 220
#define YYNTOKEN 20
4
#define YYNTOKEN 20
5
#define YY_MAX_SHIFT 246
#define YY_MIN_SHIFTREDUCE 403
#define YY_MAX_SHIFTREDUCE 622
...
...
@@ -222,121 +222,121 @@ static const YYACTIONTYPE yy_action[] = {
/* 150 */
26
,
739
,
169
,
34
,
33
,
220
,
219
,
32
,
31
,
30
,
/* 160 */
16
,
239
,
214
,
238
,
213
,
212
,
211
,
237
,
210
,
236
,
/* 170 */
235
,
209
,
720
,
828
,
709
,
710
,
711
,
712
,
713
,
714
,
/* 180 */
715
,
716
,
717
,
718
,
719
,
162
,
591
,
2
25
,
234
,
582
,
/* 190 */
165
,
585
,
240
,
588
,
76
,
162
,
591
,
98
,
827
,
582
,
/* 200 */
2
34
,
585
,
60
,
588
,
26
,
162
,
591
,
12
,
742
,
582
,
/* 210 */
742
,
585
,
151
,
588
,
27
,
21
,
740
,
159
,
160
,
34
,
/* 220 */
33
,
202
,
531
,
32
,
31
,
30
,
148
,
159
,
160
,
19
0
,
/* 230 */
536
,
539
,
88
,
87
,
142
,
18
,
6
74
,
159
,
160
,
126
,
/* 240 */
147
,
177
,
152
,
39
,
37
,
40
,
38
,
226
,
185
,
739
,
/* 250 */
182
,
34
,
33
,
559
,
560
,
32
,
31
,
30
,
523
,
666
,
/* 260 */
17
,
520
,
1
26
,
521
,
842
,
522
,
55
0
,
26
,
16
,
239
,
/* 270 */
46
,
238
,
243
,
242
,
95
,
237
,
551
,
236
,
235
,
608
,
/* 280 */
14
,
42
,
584
,
13
,
587
,
140
,
583
,
187
,
586
,
170
,
/* 290 */
171
,
42
,
590
,
50
,
150
,
4
7
,
74
,
78
,
83
,
86
,
/* 300 */
77
,
42
,
590
,
580
,
592
,
507
,
80
,
589
,
13
,
161
,
/* 310 */
51
,
527
,
590
,
528
,
48
,
513
,
525
,
589
,
526
,
46
,
/* 320 */
141
,
116
,
117
,
68
,
64
,
67
,
741
,
589
,
130
,
128
,
/* 330 */
91
,
90
,
89
,
223
,
222
,
143
,
512
,
207
,
144
,
581
,
/* 340 */
22
,
22
,
73
,
72
,
85
,
84
,
145
,
3
,
10
,
9
,
/* 350 */
146
,
137
,
798
,
133
,
138
,
136
,
797
,
163
,
755
,
524
,
/* 360 */
7
33
,
794
,
763
,
793
,
164
,
224
,
100
,
780
,
779
,
114
,
/* 370 */
115
,
26
,
676
,
208
,
112
,
131
,
189
,
24
,
217
,
673
,
/* 380 */
218
,
841
,
70
,
840
,
838
,
118
,
93
,
694
,
25
,
5
2
,
/* 390 */
23
,
546
,
192
,
132
,
196
,
663
,
79
,
661
,
81
,
752
,
/* 400 */
82
,
104
,
49
,
659
,
658
,
172
,
127
,
656
,
655
,
654
,
/* 410 */
65
3
,
652
,
44
,
644
,
199
,
129
,
650
,
648
,
646
,
20
1
,
/* 420 */
767
,
197
,
768
,
781
,
195
,
193
,
28
,
216
,
75
,
227
,
/* 430 */
22
8
,
229
,
230
,
231
,
205
,
232
,
53
,
233
,
241
,
622
,
/* 440 */
1
49
,
173
,
62
,
65
,
174
,
175
,
657
,
176
,
621
,
179
,
/* 450 */
1
78
,
180
,
651
,
121
,
92
,
120
,
695
,
119
,
94
,
123
,
/* 460 */
12
2
,
124
,
125
,
1
,
2
,
737
,
181
,
620
,
105
,
108
,
/* 470 */
10
6
,
109
,
107
,
110
,
111
,
183
,
184
,
61
3
,
186
,
190
,
/* 480 */
533
,
55
,
547
,
1
01
,
156
,
57
,
552
,
19
,
194
,
102
,
/* 490 */
5
,
6
,
593
,
4
,
15
,
20
,
7
,
204
,
63
,
206
,
/* 500 */
484
,
481
,
479
,
478
,
477
,
475
,
448
,
215
,
66
,
45
,
/* 510 */
509
,
22
,
508
,
506
,
54
,
69
,
469
,
467
,
459
,
465
,
/* 520 */
461
,
463
,
457
,
71
,
455
,
483
,
482
,
480
,
476
,
474
,
/* 530 */
46
,
446
,
419
,
417
,
626
,
625
,
625
,
625
,
625
,
96
,
/* 540 */
625
,
625
,
625
,
625
,
625
,
625
,
97
,
/* 180 */
715
,
716
,
717
,
718
,
719
,
162
,
591
,
2
34
,
76
,
582
,
/* 190 */
165
,
585
,
240
,
588
,
234
,
162
,
591
,
98
,
827
,
582
,
/* 200 */
2
25
,
585
,
60
,
588
,
26
,
162
,
591
,
12
,
742
,
582
,
/* 210 */
742
,
585
,
674
,
588
,
27
,
126
,
21
,
159
,
160
,
34
,
/* 220 */
33
,
202
,
842
,
32
,
31
,
30
,
148
,
159
,
160
,
74
0
,
/* 230 */
536
,
539
,
88
,
87
,
142
,
18
,
6
66
,
159
,
160
,
126
,
/* 240 */
147
,
559
,
560
,
39
,
37
,
40
,
38
,
50
,
226
,
550
,
/* 250 */
739
,
34
,
33
,
46
,
507
,
32
,
31
,
30
,
523
,
531
,
/* 260 */
17
,
520
,
1
51
,
521
,
51
,
522
,
19
0
,
26
,
16
,
239
,
/* 270 */
152
,
238
,
243
,
242
,
95
,
237
,
551
,
236
,
235
,
177
,
/* 280 */
14
,
42
,
223
,
222
,
580
,
741
,
185
,
187
,
182
,
170
,
/* 290 */
171
,
42
,
590
,
584
,
150
,
58
7
,
74
,
78
,
83
,
86
,
/* 300 */
77
,
42
,
590
,
161
,
608
,
592
,
80
,
589
,
13
,
13
,
/* 310 */
140
,
583
,
590
,
586
,
513
,
47
,
141
,
589
,
46
,
798
,
/* 320 */
581
,
116
,
117
,
68
,
64
,
67
,
143
,
589
,
130
,
128
,
/* 330 */
91
,
90
,
89
,
512
,
48
,
207
,
527
,
22
,
528
,
22
,
/* 340 */
144
,
3
,
73
,
72
,
10
,
9
,
145
,
525
,
146
,
526
,
/* 350 */
85
,
84
,
137
,
797
,
133
,
138
,
136
,
163
,
794
,
524
,
/* 360 */
7
93
,
164
,
763
,
733
,
224
,
100
,
755
,
780
,
779
,
114
,
/* 370 */
26
,
115
,
112
,
676
,
208
,
131
,
24
,
217
,
673
,
218
,
/* 380 */
841
,
70
,
840
,
838
,
118
,
694
,
25
,
93
,
23
,
13
2
,
/* 390 */
663
,
79
,
189
,
546
,
661
,
192
,
81
,
82
,
659
,
658
,
/* 400 */
172
,
127
,
656
,
196
,
655
,
654
,
653
,
652
,
644
,
129
,
/* 410 */
65
0
,
648
,
646
,
52
,
752
,
767
,
49
,
44
,
768
,
78
1
,
/* 420 */
201
,
199
,
197
,
195
,
193
,
28
,
216
,
75
,
227
,
228
,
/* 430 */
22
9
,
230
,
205
,
232
,
231
,
53
,
233
,
241
,
622
,
149
,
/* 440 */
1
73
,
62
,
65
,
174
,
176
,
175
,
621
,
178
,
179
,
180
,
/* 450 */
1
81
,
657
,
121
,
120
,
695
,
125
,
119
,
122
,
123
,
92
,
/* 460 */
12
4
,
651
,
1
,
106
,
104
,
737
,
94
,
105
,
620
,
109
,
/* 470 */
10
7
,
108
,
110
,
111
,
2
,
184
,
613
,
18
3
,
186
,
190
,
/* 480 */
533
,
55
,
547
,
1
56
,
101
,
57
,
552
,
194
,
102
,
5
,
/* 490 */
6
,
63
,
484
,
593
,
4
,
19
,
20
,
15
,
204
,
7
,
/* 500 */
206
,
481
,
479
,
478
,
477
,
475
,
448
,
215
,
66
,
45
,
/* 510 */
22
,
509
,
508
,
69
,
506
,
54
,
469
,
467
,
459
,
465
,
/* 520 */
461
,
463
,
457
,
455
,
71
,
483
,
482
,
480
,
476
,
474
,
/* 530 */
46
,
446
,
419
,
417
,
626
,
625
,
625
,
625
,
625
,
625
,
/* 540 */
96
,
625
,
625
,
625
,
625
,
625
,
97
,
};
static
const
YYCODETYPE
yy_lookahead
[]
=
{
/* 0 */
22
4
,
1
,
226
,
257
,
228
,
257
,
205
,
206
,
232
,
9
,
/* 10 */
23
4
,
235
,
208
,
13
,
14
,
208
,
16
,
17
,
207
,
208
,
/* 20 */
25
7
,
21
,
257
,
1
,
24
,
25
,
26
,
27
,
28
,
266
,
/* 30 */
26
7
,
9
,
267
,
33
,
34
,
257
,
257
,
37
,
38
,
39
,
/* 40 */
13
,
14
,
24
1
,
16
,
17
,
266
,
267
,
240
,
21
,
242
,
/* 50 */
20
8
,
24
,
25
,
26
,
27
,
28
,
255
,
208
,
208
,
208
,
/* 60 */
33
,
34
,
25
8
,
225
,
37
,
38
,
39
,
45
,
46
,
47
,
/* 0 */
22
5
,
1
,
227
,
258
,
229
,
258
,
206
,
207
,
233
,
9
,
/* 10 */
23
5
,
236
,
209
,
13
,
14
,
209
,
16
,
17
,
208
,
209
,
/* 20 */
25
8
,
21
,
258
,
1
,
24
,
25
,
26
,
27
,
28
,
267
,
/* 30 */
26
8
,
9
,
268
,
33
,
34
,
258
,
258
,
37
,
38
,
39
,
/* 40 */
13
,
14
,
24
2
,
16
,
17
,
267
,
268
,
241
,
21
,
243
,
/* 50 */
20
9
,
24
,
25
,
26
,
27
,
28
,
256
,
209
,
209
,
209
,
/* 60 */
33
,
34
,
25
9
,
226
,
37
,
38
,
39
,
45
,
46
,
47
,
/* 70 */
48
,
49
,
50
,
51
,
52
,
53
,
54
,
55
,
56
,
57
,
/* 80 */
1
,
24
3
,
13
,
14
,
208
,
16
,
17
,
208
,
9
,
63
,
/* 90 */
21
,
24
2
,
208
,
24
,
25
,
26
,
27
,
28
,
37
,
38
,
/* 100 */
39
,
101
,
33
,
34
,
24
1
,
263
,
37
,
38
,
39
,
14
,
/* 110 */
2
59
,
16
,
17
,
263
,
257
,
265
,
21
,
208
,
255
,
24
,
/* 120 */
25
,
26
,
27
,
28
,
24
0
,
98
,
242
,
97
,
33
,
34
,
/* 130 */
100
,
101
,
37
,
38
,
39
,
21
2
,
16
,
17
,
215
,
263
,
/* 140 */
26
1
,
21
,
263
,
97
,
24
,
25
,
26
,
27
,
28
,
240
,
/* 150 */
104
,
24
2
,
126
,
33
,
34
,
129
,
130
,
37
,
38
,
39
,
/* 80 */
1
,
24
4
,
13
,
14
,
209
,
16
,
17
,
209
,
9
,
63
,
/* 90 */
21
,
24
3
,
209
,
24
,
25
,
26
,
27
,
28
,
37
,
38
,
/* 100 */
39
,
101
,
33
,
34
,
24
2
,
264
,
37
,
38
,
39
,
14
,
/* 110 */
2
60
,
16
,
17
,
264
,
258
,
266
,
21
,
209
,
256
,
24
,
/* 120 */
25
,
26
,
27
,
28
,
24
1
,
98
,
243
,
97
,
33
,
34
,
/* 130 */
100
,
101
,
37
,
38
,
39
,
21
3
,
16
,
17
,
216
,
264
,
/* 140 */
26
2
,
21
,
264
,
97
,
24
,
25
,
26
,
27
,
28
,
241
,
/* 150 */
104
,
24
3
,
126
,
33
,
34
,
129
,
130
,
37
,
38
,
39
,
/* 160 */
85
,
86
,
87
,
88
,
89
,
90
,
91
,
92
,
93
,
94
,
/* 170 */
95
,
96
,
22
4
,
257
,
226
,
227
,
228
,
229
,
230
,
231
,
/* 180 */
23
2
,
233
,
234
,
235
,
236
,
1
,
2
,
208
,
78
,
5
,
/* 190 */
22
5
,
7
,
225
,
9
,
72
,
1
,
2
,
97
,
257
,
5
,
/* 200 */
78
,
7
,
244
,
9
,
104
,
1
,
2
,
44
,
243
,
5
,
/* 210 */
24
3
,
7
,
257
,
9
,
256
,
208
,
237
,
33
,
34
,
33
,
/* 220 */
34
,
37
,
98
,
37
,
38
,
39
,
63
,
33
,
34
,
105
,
/* 230 */
102
,
37
,
69
,
70
,
71
,
107
,
21
2
,
33
,
34
,
215
,
/* 240 */
77
,
1
25
,
257
,
25
,
26
,
27
,
28
,
240
,
132
,
242
,
/* 250 */
134
,
33
,
34
,
114
,
115
,
37
,
38
,
39
,
2
,
212
,
/* 260 */
97
,
5
,
2
15
,
7
,
243
,
9
,
98
,
104
,
85
,
86
,
/* 270 */
102
,
88
,
60
,
61
,
62
,
92
,
98
,
94
,
95
,
98
,
/* 280 */
102
,
97
,
5
,
102
,
7
,
257
,
5
,
124
,
7
,
33
,
/* 290 */
34
,
97
,
108
,
102
,
131
,
102
,
64
,
65
,
66
,
67
,
/* 300 */
68
,
97
,
108
,
1
,
98
,
5
,
74
,
123
,
102
,
59
,
/* 310 */
119
,
5
,
108
,
7
,
121
,
98
,
5
,
123
,
7
,
102
,
/* 320 */
257
,
64
,
65
,
66
,
67
,
68
,
243
,
123
,
64
,
65
,
/* 330 */
66
,
67
,
68
,
33
,
34
,
257
,
98
,
98
,
257
,
37
,
/* 340 */
102
,
102
,
127
,
128
,
72
,
73
,
257
,
97
,
127
,
128
,
/* 350 */
257
,
257
,
238
,
257
,
257
,
257
,
238
,
238
,
241
,
103
,
/* 360 */
239
,
23
8
,
208
,
238
,
238
,
238
,
208
,
264
,
264
,
208
,
/* 370 */
208
,
104
,
208
,
208
,
245
,
208
,
241
,
208
,
208
,
208
,
/* 380 */
20
8
,
208
,
208
,
208
,
208
,
208
,
59
,
208
,
208
,
118
,
/* 390 */
20
8
,
108
,
260
,
208
,
260
,
208
,
208
,
208
,
208
,
254
,
/* 400 */
20
8
,
253
,
120
,
208
,
208
,
208
,
208
,
208
,
208
,
208
,
/* 410 */
20
8
,
208
,
117
,
208
,
116
,
208
,
208
,
208
,
208
,
112
,
/* 420 */
209
,
111
,
209
,
209
,
110
,
109
,
122
,
75
,
84
,
83
,
/* 430 */
49
,
80
,
82
,
53
,
209
,
81
,
209
,
79
,
75
,
5
,
/* 440 */
209
,
133
,
213
,
213
,
5
,
133
,
209
,
58
,
5
,
5
,
/* 450 */
133
,
133
,
209
,
217
,
210
,
221
,
223
,
222
,
210
,
218
,
/* 460 */
220
,
21
9
,
216
,
214
,
211
,
241
,
58
,
5
,
252
,
249
,
/* 470 */
251
,
2
48
,
250
,
247
,
246
,
133
,
58
,
87
,
125
,
105
,
/* 480 */
98
,
106
,
98
,
97
,
1
,
102
,
98
,
102
,
97
,
97
,
/* 490 */
113
,
113
,
98
,
97
,
97
,
102
,
97
,
99
,
72
,
99
,
/* 500 */
9
,
5
,
5
,
5
,
5
,
5
,
76
,
15
,
72
,
16
,
/* 510 */
5
,
102
,
5
,
98
,
97
,
128
,
5
,
5
,
5
,
5
,
/* 520 */
5
,
5
,
5
,
128
,
5
,
5
,
5
,
5
,
5
,
5
,
/* 530 */
102
,
76
,
59
,
58
,
0
,
26
8
,
268
,
268
,
268
,
21
,
/* 540 */
268
,
268
,
268
,
268
,
268
,
268
,
21
,
268
,
268
,
268
,
/* 550 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 560 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 570 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 580 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 590 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 600 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 610 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 620 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 630 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 640 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 650 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 660 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 670 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 680 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 690 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 700 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 710 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 720 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 730 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 740 */
26
8
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 750 */
26
8
,
/* 170 */
95
,
96
,
22
5
,
258
,
227
,
228
,
229
,
230
,
231
,
232
,
/* 180 */
23
3
,
234
,
235
,
236
,
237
,
1
,
2
,
78
,
72
,
5
,
/* 190 */
22
6
,
7
,
226
,
9
,
78
,
1
,
2
,
97
,
258
,
5
,
/* 200 */
209
,
7
,
245
,
9
,
104
,
1
,
2
,
44
,
244
,
5
,
/* 210 */
24
4
,
7
,
213
,
9
,
257
,
216
,
209
,
33
,
34
,
33
,
/* 220 */
34
,
37
,
244
,
37
,
38
,
39
,
63
,
33
,
34
,
238
,
/* 230 */
102
,
37
,
69
,
70
,
71
,
107
,
21
3
,
33
,
34
,
216
,
/* 240 */
77
,
1
14
,
115
,
25
,
26
,
27
,
28
,
102
,
241
,
98
,
/* 250 */
243
,
33
,
34
,
102
,
5
,
37
,
38
,
39
,
2
,
98
,
/* 260 */
97
,
5
,
2
58
,
7
,
119
,
9
,
105
,
104
,
85
,
86
,
/* 270 */
258
,
88
,
60
,
61
,
62
,
92
,
98
,
94
,
95
,
125
,
/* 280 */
102
,
97
,
33
,
34
,
1
,
244
,
132
,
124
,
134
,
33
,
/* 290 */
34
,
97
,
108
,
5
,
131
,
7
,
64
,
65
,
66
,
67
,
/* 300 */
68
,
97
,
108
,
59
,
98
,
98
,
74
,
123
,
102
,
102
,
/* 310 */
258
,
5
,
108
,
7
,
98
,
102
,
258
,
123
,
102
,
239
,
/* 320 */
37
,
64
,
65
,
66
,
67
,
68
,
258
,
123
,
64
,
65
,
/* 330 */
66
,
67
,
68
,
98
,
121
,
98
,
5
,
102
,
7
,
102
,
/* 340 */
258
,
97
,
127
,
128
,
127
,
128
,
258
,
5
,
258
,
7
,
/* 350 */
72
,
73
,
258
,
239
,
258
,
258
,
258
,
239
,
239
,
103
,
/* 360 */
239
,
23
9
,
209
,
240
,
239
,
209
,
242
,
265
,
265
,
209
,
/* 370 */
104
,
209
,
246
,
209
,
209
,
209
,
209
,
209
,
209
,
209
,
/* 380 */
20
9
,
209
,
209
,
209
,
209
,
209
,
209
,
59
,
209
,
209
,
/* 390 */
20
9
,
209
,
242
,
108
,
209
,
261
,
209
,
209
,
209
,
209
,
/* 400 */
20
9
,
209
,
209
,
261
,
209
,
209
,
209
,
209
,
209
,
209
,
/* 410 */
20
9
,
209
,
209
,
118
,
255
,
210
,
120
,
117
,
210
,
210
,
/* 420 */
112
,
116
,
111
,
110
,
109
,
122
,
75
,
84
,
83
,
49
,
/* 430 */
80
,
82
,
210
,
81
,
53
,
210
,
79
,
75
,
5
,
210
,
/* 440 */
133
,
214
,
214
,
5
,
58
,
133
,
5
,
133
,
5
,
133
,
/* 450 */
58
,
210
,
218
,
222
,
224
,
217
,
223
,
221
,
219
,
211
,
/* 460 */
220
,
21
0
,
215
,
252
,
254
,
242
,
211
,
253
,
5
,
249
,
/* 470 */
251
,
2
50
,
248
,
247
,
212
,
58
,
87
,
133
,
125
,
105
,
/* 480 */
98
,
106
,
98
,
1
,
97
,
102
,
98
,
97
,
97
,
113
,
/* 490 */
113
,
72
,
9
,
98
,
97
,
102
,
102
,
97
,
99
,
97
,
/* 500 */
9
9
,
5
,
5
,
5
,
5
,
5
,
76
,
15
,
72
,
16
,
/* 510 */
102
,
5
,
5
,
128
,
98
,
97
,
5
,
5
,
5
,
5
,
/* 520 */
5
,
5
,
5
,
5
,
128
,
5
,
5
,
5
,
5
,
5
,
/* 530 */
102
,
76
,
59
,
58
,
0
,
26
9
,
269
,
269
,
269
,
269
,
/* 540 */
21
,
269
,
269
,
269
,
269
,
269
,
21
,
269
,
269
,
269
,
/* 550 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 560 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 570 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 580 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 590 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 600 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 610 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 620 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 630 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 640 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 650 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 660 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 670 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 680 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 690 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 700 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 710 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 720 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 730 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 740 */
26
9
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 750 */
26
9
,
269
,
};
#define YY_SHIFT_COUNT (246)
#define YY_SHIFT_MIN (0)
...
...
@@ -344,48 +344,48 @@ static const YYCODETYPE yy_lookahead[] = {
static
const
unsigned
short
int
yy_shift_ofst
[]
=
{
/* 0 */
163
,
75
,
183
,
184
,
204
,
79
,
79
,
79
,
79
,
79
,
/* 10 */
79
,
0
,
22
,
204
,
256
,
256
,
256
,
46
,
79
,
79
,
/* 20 */
79
,
79
,
79
,
1
22
,
110
,
110
,
547
,
194
,
204
,
204
,
/* 20 */
79
,
79
,
79
,
1
16
,
109
,
109
,
547
,
194
,
204
,
204
,
/* 30 */
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
204
,
/* 40 */
204
,
204
,
204
,
204
,
204
,
256
,
256
,
300
,
300
,
300
,
/* 50 */
300
,
300
,
300
,
30
,
300
,
100
,
79
,
79
,
139
,
139
,
/* 40 */
204
,
204
,
204
,
204
,
204
,
256
,
256
,
249
,
249
,
249
,
/* 50 */
249
,
249
,
249
,
30
,
249
,
100
,
79
,
79
,
127
,
127
,
/* 60 */
128
,
79
,
79
,
79
,
79
,
79
,
79
,
79
,
79
,
79
,
/* 70 */
79
,
79
,
79
,
79
,
79
,
79
,
79
,
79
,
79
,
79
,
/* 80 */
79
,
79
,
79
,
79
,
79
,
79
,
79
,
79
,
79
,
79
,
/* 90 */
79
,
79
,
79
,
79
,
79
,
79
,
79
,
79
,
26
7
,
327
,
/* 100 */
32
7
,
283
,
283
,
327
,
271
,
282
,
295
,
307
,
298
,
310
,
/* 110 */
31
4
,
316
,
304
,
267
,
327
,
327
,
352
,
352
,
327
,
344
,
/* 120 */
34
6
,
381
,
351
,
350
,
380
,
354
,
358
,
327
,
363
,
327
,
/* 130 */
36
3
,
547
,
547
,
27
,
69
,
69
,
69
,
95
,
120
,
218
,
/* 90 */
79
,
79
,
79
,
79
,
79
,
79
,
79
,
79
,
26
6
,
328
,
/* 100 */
32
8
,
285
,
285
,
328
,
295
,
296
,
300
,
308
,
305
,
311
,
/* 110 */
31
3
,
315
,
303
,
266
,
328
,
328
,
351
,
351
,
328
,
343
,
/* 120 */
34
5
,
380
,
350
,
349
,
381
,
352
,
357
,
328
,
362
,
328
,
/* 130 */
36
2
,
547
,
547
,
27
,
69
,
69
,
69
,
95
,
120
,
218
,
/* 140 */
218
,
218
,
232
,
186
,
186
,
186
,
186
,
257
,
264
,
26
,
/* 150 */
1
16
,
61
,
61
,
212
,
124
,
168
,
178
,
181
,
206
,
277
,
/* 160 */
281
,
302
,
250
,
193
,
191
,
217
,
238
,
239
,
215
,
221
,
/* 170 */
3
06
,
311
,
272
,
434
,
308
,
439
,
312
,
389
,
443
,
317
,
/* 180 */
44
4
,
318
,
408
,
462
,
342
,
418
,
390
,
353
,
374
,
382
,
/* 190 */
375
,
383
,
384
,
38
6
,
483
,
391
,
388
,
392
,
385
,
377
,
/* 200 */
39
3
,
378
,
394
,
396
,
397
,
398
,
399
,
400
,
426
,
491
,
/* 210 */
496
,
497
,
498
,
499
,
500
,
430
,
492
,
436
,
493
,
38
7
,
/* 220 */
39
5
,
409
,
505
,
507
,
415
,
417
,
409
,
511
,
512
,
513
,
/* 230 */
514
,
515
,
516
,
517
,
51
9
,
520
,
521
,
522
,
523
,
524
,
/* 240 */
428
,
455
,
51
8
,
525
,
473
,
475
,
534
,
/* 150 */
1
54
,
61
,
61
,
212
,
161
,
151
,
178
,
206
,
207
,
288
,
/* 160 */
306
,
283
,
244
,
213
,
145
,
216
,
235
,
237
,
215
,
217
,
/* 170 */
3
31
,
342
,
278
,
433
,
307
,
438
,
312
,
386
,
441
,
314
,
/* 180 */
44
3
,
316
,
392
,
463
,
344
,
417
,
389
,
353
,
374
,
382
,
/* 190 */
375
,
383
,
384
,
38
7
,
482
,
390
,
388
,
391
,
393
,
376
,
/* 200 */
39
4
,
377
,
395
,
397
,
400
,
399
,
402
,
401
,
419
,
483
,
/* 210 */
496
,
497
,
498
,
499
,
500
,
430
,
492
,
436
,
493
,
38
5
,
/* 220 */
39
6
,
408
,
506
,
507
,
416
,
418
,
408
,
511
,
512
,
513
,
/* 230 */
514
,
515
,
516
,
517
,
51
8
,
520
,
521
,
522
,
523
,
524
,
/* 240 */
428
,
455
,
51
9
,
525
,
473
,
475
,
534
,
};
#define YY_REDUCE_COUNT (132)
#define YY_REDUCE_MIN (-25
4
)
#define YY_REDUCE_MAX (2
53
)
#define YY_REDUCE_MIN (-25
5
)
#define YY_REDUCE_MAX (2
62
)
static
const
short
yy_reduce_ofst
[]
=
{
/* 0 */
-
199
,
-
52
,
-
224
,
-
237
,
-
221
,
-
150
,
-
121
,
-
193
,
-
116
,
-
91
,
/* 10 */
7
,
-
19
6
,
-
189
,
-
235
,
-
162
,
-
35
,
-
33
,
-
137
,
-
149
,
-
158
,
/* 20 */
-
12
4
,
-
21
,
-
151
,
-
77
,
24
,
47
,
-
42
,
-
254
,
-
252
,
-
222
,
/* 30 */
-
14
3
,
-
84
,
-
59
,
-
45
,
-
15
,
28
,
63
,
78
,
81
,
89
,
/* 40 */
9
3
,
94
,
96
,
97
,
98
,
21
,
83
,
114
,
118
,
119
,
/* 50 */
1
23
,
125
,
126
,
121
,
127
,
117
,
154
,
158
,
103
,
104
,
/* 60 */
12
9
,
161
,
162
,
164
,
165
,
167
,
169
,
170
,
171
,
172
,
/* 70 */
17
3
,
174
,
175
,
176
,
177
,
179
,
180
,
182
,
185
,
187
,
/* 80 */
18
8
,
189
,
190
,
192
,
195
,
196
,
197
,
198
,
199
,
200
,
/* 90 */
201
,
202
,
203
,
205
,
207
,
208
,
209
,
210
,
135
,
211
,
/* 100 */
2
13
,
132
,
134
,
214
,
145
,
148
,
216
,
219
,
222
,
220
,
/* 110 */
22
3
,
226
,
228
,
224
,
225
,
227
,
229
,
230
,
231
,
233
,
/* 120 */
23
5
,
234
,
236
,
240
,
241
,
242
,
246
,
237
,
244
,
243
,
/* 130 */
2
48
,
249
,
253
,
/* 0 */
-
200
,
-
53
,
-
225
,
-
238
,
-
222
,
-
151
,
-
122
,
-
194
,
-
117
,
-
92
,
/* 10 */
7
,
-
19
7
,
-
190
,
-
236
,
-
163
,
-
36
,
-
34
,
-
138
,
-
150
,
-
159
,
/* 20 */
-
12
5
,
-
9
,
-
152
,
-
78
,
-
1
,
23
,
-
43
,
-
255
,
-
253
,
-
223
,
/* 30 */
-
14
4
,
-
85
,
-
60
,
4
,
12
,
52
,
58
,
68
,
82
,
88
,
/* 40 */
9
0
,
94
,
96
,
97
,
98
,
-
22
,
41
,
80
,
114
,
118
,
/* 50 */
1
19
,
121
,
122
,
123
,
125
,
124
,
153
,
156
,
102
,
103
,
/* 60 */
12
6
,
160
,
162
,
164
,
165
,
166
,
167
,
168
,
169
,
170
,
/* 70 */
17
1
,
172
,
173
,
174
,
175
,
176
,
177
,
179
,
180
,
181
,
/* 80 */
18
2
,
185
,
187
,
188
,
189
,
190
,
191
,
192
,
193
,
195
,
/* 90 */
196
,
197
,
198
,
199
,
200
,
201
,
202
,
203
,
150
,
205
,
/* 100 */
2
08
,
134
,
142
,
209
,
159
,
210
,
214
,
211
,
219
,
221
,
/* 110 */
22
0
,
224
,
226
,
223
,
222
,
225
,
227
,
228
,
229
,
230
,
/* 120 */
23
3
,
231
,
234
,
236
,
239
,
240
,
238
,
241
,
248
,
251
,
/* 130 */
2
55
,
247
,
262
,
};
static
const
YYACTIONTYPE
yy_default
[]
=
{
/* 0 */
623
,
675
,
664
,
835
,
835
,
623
,
623
,
623
,
623
,
623
,
...
...
@@ -623,6 +623,7 @@ static const YYCODETYPE yyFallback[] = {
1
,
/* SUM_IRATE => ID */
1
,
/* AVG_RATE => ID */
1
,
/* AVG_IRATE => ID */
1
,
/* TBID => ID */
1
,
/* SEMI => ID */
1
,
/* NONE => ID */
1
,
/* PREV => ID */
...
...
@@ -913,83 +914,84 @@ static const char *const yyTokenName[] = {
/* 188 */
"SUM_IRATE"
,
/* 189 */
"AVG_RATE"
,
/* 190 */
"AVG_IRATE"
,
/* 191 */
"SEMI"
,
/* 192 */
"NONE"
,
/* 193 */
"PREV"
,
/* 194 */
"LINEAR"
,
/* 195 */
"IMPORT"
,
/* 196 */
"METRIC"
,
/* 197 */
"TBNAME"
,
/* 198 */
"JOIN"
,
/* 199 */
"METRICS"
,
/* 200 */
"STABLE"
,
/* 201 */
"INSERT"
,
/* 202 */
"INTO"
,
/* 203 */
"VALUES"
,
/* 204 */
"error"
,
/* 205 */
"program"
,
/* 206 */
"cmd"
,
/* 207 */
"dbPrefix"
,
/* 208 */
"ids"
,
/* 209 */
"cpxName"
,
/* 210 */
"ifexists"
,
/* 211 */
"alter_db_optr"
,
/* 212 */
"acct_optr"
,
/* 213 */
"ifnotexists"
,
/* 214 */
"db_optr"
,
/* 215 */
"pps"
,
/* 216 */
"tseries"
,
/* 217 */
"dbs"
,
/* 218 */
"streams"
,
/* 219 */
"storage"
,
/* 220 */
"qtime"
,
/* 221 */
"users"
,
/* 222 */
"conns"
,
/* 223 */
"state"
,
/* 224 */
"keep"
,
/* 225 */
"tagitemlist"
,
/* 226 */
"tables"
,
/* 227 */
"cache"
,
/* 228 */
"replica"
,
/* 229 */
"days"
,
/* 230 */
"minrows"
,
/* 231 */
"maxrows"
,
/* 232 */
"blocks"
,
/* 233 */
"ctime"
,
/* 234 */
"wal"
,
/* 235 */
"comp"
,
/* 236 */
"prec"
,
/* 237 */
"typename"
,
/* 238 */
"signed"
,
/* 239 */
"create_table_args"
,
/* 240 */
"columnlist"
,
/* 241 */
"select"
,
/* 242 */
"column"
,
/* 243 */
"tagitem"
,
/* 244 */
"selcollist"
,
/* 245 */
"from"
,
/* 246 */
"where_opt"
,
/* 247 */
"interval_opt"
,
/* 248 */
"fill_opt"
,
/* 249 */
"sliding_opt"
,
/* 250 */
"groupby_opt"
,
/* 251 */
"orderby_opt"
,
/* 252 */
"having_opt"
,
/* 253 */
"slimit_opt"
,
/* 254 */
"limit_opt"
,
/* 255 */
"union"
,
/* 256 */
"sclp"
,
/* 257 */
"expr"
,
/* 258 */
"as"
,
/* 259 */
"tablelist"
,
/* 260 */
"tmvar"
,
/* 261 */
"sortlist"
,
/* 262 */
"sortitem"
,
/* 263 */
"item"
,
/* 264 */
"sortorder"
,
/* 265 */
"grouplist"
,
/* 266 */
"exprlist"
,
/* 267 */
"expritem"
,
/* 191 */
"TBID"
,
/* 192 */
"SEMI"
,
/* 193 */
"NONE"
,
/* 194 */
"PREV"
,
/* 195 */
"LINEAR"
,
/* 196 */
"IMPORT"
,
/* 197 */
"METRIC"
,
/* 198 */
"TBNAME"
,
/* 199 */
"JOIN"
,
/* 200 */
"METRICS"
,
/* 201 */
"STABLE"
,
/* 202 */
"INSERT"
,
/* 203 */
"INTO"
,
/* 204 */
"VALUES"
,
/* 205 */
"error"
,
/* 206 */
"program"
,
/* 207 */
"cmd"
,
/* 208 */
"dbPrefix"
,
/* 209 */
"ids"
,
/* 210 */
"cpxName"
,
/* 211 */
"ifexists"
,
/* 212 */
"alter_db_optr"
,
/* 213 */
"acct_optr"
,
/* 214 */
"ifnotexists"
,
/* 215 */
"db_optr"
,
/* 216 */
"pps"
,
/* 217 */
"tseries"
,
/* 218 */
"dbs"
,
/* 219 */
"streams"
,
/* 220 */
"storage"
,
/* 221 */
"qtime"
,
/* 222 */
"users"
,
/* 223 */
"conns"
,
/* 224 */
"state"
,
/* 225 */
"keep"
,
/* 226 */
"tagitemlist"
,
/* 227 */
"tables"
,
/* 228 */
"cache"
,
/* 229 */
"replica"
,
/* 230 */
"days"
,
/* 231 */
"minrows"
,
/* 232 */
"maxrows"
,
/* 233 */
"blocks"
,
/* 234 */
"ctime"
,
/* 235 */
"wal"
,
/* 236 */
"comp"
,
/* 237 */
"prec"
,
/* 238 */
"typename"
,
/* 239 */
"signed"
,
/* 240 */
"create_table_args"
,
/* 241 */
"columnlist"
,
/* 242 */
"select"
,
/* 243 */
"column"
,
/* 244 */
"tagitem"
,
/* 245 */
"selcollist"
,
/* 246 */
"from"
,
/* 247 */
"where_opt"
,
/* 248 */
"interval_opt"
,
/* 249 */
"fill_opt"
,
/* 250 */
"sliding_opt"
,
/* 251 */
"groupby_opt"
,
/* 252 */
"orderby_opt"
,
/* 253 */
"having_opt"
,
/* 254 */
"slimit_opt"
,
/* 255 */
"limit_opt"
,
/* 256 */
"union"
,
/* 257 */
"sclp"
,
/* 258 */
"expr"
,
/* 259 */
"as"
,
/* 260 */
"tablelist"
,
/* 261 */
"tmvar"
,
/* 262 */
"sortlist"
,
/* 263 */
"sortitem"
,
/* 264 */
"item"
,
/* 265 */
"sortorder"
,
/* 266 */
"grouplist"
,
/* 267 */
"exprlist"
,
/* 268 */
"expritem"
,
};
#endif
/* defined(YYCOVERAGE) || !defined(NDEBUG) */
...
...
@@ -1337,50 +1339,50 @@ static void yy_destructor(
** inside the C code.
*/
/********* Begin destructor definitions ***************************************/
case
22
4
:
/* keep */
case
22
5
:
/* tagitemlist */
case
24
8
:
/* fill_opt */
case
25
0
:
/* groupby_opt */
case
25
1
:
/* orderby_opt */
case
26
1
:
/* sortlist */
case
26
5
:
/* grouplist */
case
22
5
:
/* keep */
case
22
6
:
/* tagitemlist */
case
24
9
:
/* fill_opt */
case
25
1
:
/* groupby_opt */
case
25
2
:
/* orderby_opt */
case
26
2
:
/* sortlist */
case
26
6
:
/* grouplist */
{
tVariantListDestroy
((
yypminor
->
yy
456
));
tVariantListDestroy
((
yypminor
->
yy
322
));
}
break
;
case
24
0
:
/* columnlist */
case
24
1
:
/* columnlist */
{
tFieldListDestroy
((
yypminor
->
yy
503
));
tFieldListDestroy
((
yypminor
->
yy
369
));
}
break
;
case
24
1
:
/* select */
case
24
2
:
/* select */
{
doDestroyQuerySql
((
yypminor
->
yy
392
));
doDestroyQuerySql
((
yypminor
->
yy
190
));
}
break
;
case
24
4
:
/* selcollist */
case
25
6
:
/* sclp */
case
26
6
:
/* exprlist */
case
24
5
:
/* selcollist */
case
25
7
:
/* sclp */
case
26
7
:
/* exprlist */
{
tSQLExprListDestroy
((
yypminor
->
yy
1
0
));
tSQLExprListDestroy
((
yypminor
->
yy
26
0
));
}
break
;
case
24
6
:
/* where_opt */
case
25
2
:
/* having_opt */
case
25
7
:
/* expr */
case
26
7
:
/* expritem */
case
24
7
:
/* where_opt */
case
25
3
:
/* having_opt */
case
25
8
:
/* expr */
case
26
8
:
/* expritem */
{
tSQLExprDestroy
((
yypminor
->
yy
2
));
tSQLExprDestroy
((
yypminor
->
yy
500
));
}
break
;
case
25
5
:
/* union */
case
25
6
:
/* union */
{
destroyAllSelectClause
((
yypminor
->
yy
145
));
destroyAllSelectClause
((
yypminor
->
yy
263
));
}
break
;
case
26
2
:
/* sortitem */
case
26
3
:
/* sortitem */
{
tVariantDestroy
(
&
(
yypminor
->
yy
442
));
tVariantDestroy
(
&
(
yypminor
->
yy
518
));
}
break
;
/********* End destructor definitions *****************************************/
...
...
@@ -1674,226 +1676,226 @@ static const struct {
YYCODETYPE
lhs
;
/* Symbol on the left-hand side of the rule */
signed
char
nrhs
;
/* Negative of the number of RHS symbols in the rule */
}
yyRuleInfo
[]
=
{
{
20
5
,
-
1
},
/* (0) program ::= cmd */
{
20
6
,
-
2
},
/* (1) cmd ::= SHOW DATABASES */
{
20
6
,
-
2
},
/* (2) cmd ::= SHOW MNODES */
{
20
6
,
-
2
},
/* (3) cmd ::= SHOW DNODES */
{
20
6
,
-
2
},
/* (4) cmd ::= SHOW ACCOUNTS */
{
20
6
,
-
2
},
/* (5) cmd ::= SHOW USERS */
{
20
6
,
-
2
},
/* (6) cmd ::= SHOW MODULES */
{
20
6
,
-
2
},
/* (7) cmd ::= SHOW QUERIES */
{
20
6
,
-
2
},
/* (8) cmd ::= SHOW CONNECTIONS */
{
20
6
,
-
2
},
/* (9) cmd ::= SHOW STREAMS */
{
20
6
,
-
2
},
/* (10) cmd ::= SHOW CONFIGS */
{
20
6
,
-
2
},
/* (11) cmd ::= SHOW SCORES */
{
20
6
,
-
2
},
/* (12) cmd ::= SHOW GRANTS */
{
20
6
,
-
2
},
/* (13) cmd ::= SHOW VNODES */
{
20
6
,
-
3
},
/* (14) cmd ::= SHOW VNODES IPTOKEN */
{
20
7
,
0
},
/* (15) dbPrefix ::= */
{
20
7
,
-
2
},
/* (16) dbPrefix ::= ids DOT */
{
2
09
,
0
},
/* (17) cpxName ::= */
{
2
09
,
-
2
},
/* (18) cpxName ::= DOT ids */
{
20
6
,
-
3
},
/* (19) cmd ::= SHOW dbPrefix TABLES */
{
20
6
,
-
5
},
/* (20) cmd ::= SHOW dbPrefix TABLES LIKE ids */
{
20
6
,
-
3
},
/* (21) cmd ::= SHOW dbPrefix STABLES */
{
20
6
,
-
5
},
/* (22) cmd ::= SHOW dbPrefix STABLES LIKE ids */
{
20
6
,
-
3
},
/* (23) cmd ::= SHOW dbPrefix VGROUPS */
{
20
6
,
-
4
},
/* (24) cmd ::= SHOW dbPrefix VGROUPS ids */
{
20
6
,
-
5
},
/* (25) cmd ::= DROP TABLE ifexists ids cpxName */
{
20
6
,
-
4
},
/* (26) cmd ::= DROP DATABASE ifexists ids */
{
20
6
,
-
3
},
/* (27) cmd ::= DROP DNODE ids */
{
20
6
,
-
3
},
/* (28) cmd ::= DROP USER ids */
{
20
6
,
-
3
},
/* (29) cmd ::= DROP ACCOUNT ids */
{
20
6
,
-
2
},
/* (30) cmd ::= USE ids */
{
20
6
,
-
3
},
/* (31) cmd ::= DESCRIBE ids cpxName */
{
20
6
,
-
5
},
/* (32) cmd ::= ALTER USER ids PASS ids */
{
20
6
,
-
5
},
/* (33) cmd ::= ALTER USER ids PRIVILEGE ids */
{
20
6
,
-
4
},
/* (34) cmd ::= ALTER DNODE ids ids */
{
20
6
,
-
5
},
/* (35) cmd ::= ALTER DNODE ids ids ids */
{
20
6
,
-
3
},
/* (36) cmd ::= ALTER LOCAL ids */
{
20
6
,
-
4
},
/* (37) cmd ::= ALTER LOCAL ids ids */
{
20
6
,
-
4
},
/* (38) cmd ::= ALTER DATABASE ids alter_db_optr */
{
20
6
,
-
4
},
/* (39) cmd ::= ALTER ACCOUNT ids acct_optr */
{
20
6
,
-
6
},
/* (40) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{
20
8
,
-
1
},
/* (41) ids ::= ID */
{
20
8
,
-
1
},
/* (42) ids ::= STRING */
{
21
0
,
-
2
},
/* (43) ifexists ::= IF EXISTS */
{
21
0
,
0
},
/* (44) ifexists ::= */
{
21
3
,
-
3
},
/* (45) ifnotexists ::= IF NOT EXISTS */
{
21
3
,
0
},
/* (46) ifnotexists ::= */
{
20
6
,
-
3
},
/* (47) cmd ::= CREATE DNODE ids */
{
20
6
,
-
6
},
/* (48) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{
20
6
,
-
5
},
/* (49) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
{
20
6
,
-
5
},
/* (50) cmd ::= CREATE USER ids PASS ids */
{
21
5
,
0
},
/* (51) pps ::= */
{
21
5
,
-
2
},
/* (52) pps ::= PPS INTEGER */
{
21
6
,
0
},
/* (53) tseries ::= */
{
21
6
,
-
2
},
/* (54) tseries ::= TSERIES INTEGER */
{
21
7
,
0
},
/* (55) dbs ::= */
{
21
7
,
-
2
},
/* (56) dbs ::= DBS INTEGER */
{
21
8
,
0
},
/* (57) streams ::= */
{
21
8
,
-
2
},
/* (58) streams ::= STREAMS INTEGER */
{
2
19
,
0
},
/* (59) storage ::= */
{
2
19
,
-
2
},
/* (60) storage ::= STORAGE INTEGER */
{
22
0
,
0
},
/* (61) qtime ::= */
{
22
0
,
-
2
},
/* (62) qtime ::= QTIME INTEGER */
{
22
1
,
0
},
/* (63) users ::= */
{
22
1
,
-
2
},
/* (64) users ::= USERS INTEGER */
{
22
2
,
0
},
/* (65) conns ::= */
{
22
2
,
-
2
},
/* (66) conns ::= CONNS INTEGER */
{
22
3
,
0
},
/* (67) state ::= */
{
22
3
,
-
2
},
/* (68) state ::= STATE ids */
{
21
2
,
-
9
},
/* (69) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{
22
4
,
-
2
},
/* (70) keep ::= KEEP tagitemlist */
{
22
6
,
-
2
},
/* (71) tables ::= MAXTABLES INTEGER */
{
22
7
,
-
2
},
/* (72) cache ::= CACHE INTEGER */
{
22
8
,
-
2
},
/* (73) replica ::= REPLICA INTEGER */
{
2
29
,
-
2
},
/* (74) days ::= DAYS INTEGER */
{
23
0
,
-
2
},
/* (75) minrows ::= MINROWS INTEGER */
{
23
1
,
-
2
},
/* (76) maxrows ::= MAXROWS INTEGER */
{
23
2
,
-
2
},
/* (77) blocks ::= BLOCKS INTEGER */
{
23
3
,
-
2
},
/* (78) ctime ::= CTIME INTEGER */
{
23
4
,
-
2
},
/* (79) wal ::= WAL INTEGER */
{
23
5
,
-
2
},
/* (80) comp ::= COMP INTEGER */
{
23
6
,
-
2
},
/* (81) prec ::= PRECISION STRING */
{
21
4
,
0
},
/* (82) db_optr ::= */
{
21
4
,
-
2
},
/* (83) db_optr ::= db_optr tables */
{
21
4
,
-
2
},
/* (84) db_optr ::= db_optr cache */
{
21
4
,
-
2
},
/* (85) db_optr ::= db_optr replica */
{
21
4
,
-
2
},
/* (86) db_optr ::= db_optr days */
{
21
4
,
-
2
},
/* (87) db_optr ::= db_optr minrows */
{
21
4
,
-
2
},
/* (88) db_optr ::= db_optr maxrows */
{
21
4
,
-
2
},
/* (89) db_optr ::= db_optr blocks */
{
21
4
,
-
2
},
/* (90) db_optr ::= db_optr ctime */
{
21
4
,
-
2
},
/* (91) db_optr ::= db_optr wal */
{
21
4
,
-
2
},
/* (92) db_optr ::= db_optr comp */
{
21
4
,
-
2
},
/* (93) db_optr ::= db_optr prec */
{
21
4
,
-
2
},
/* (94) db_optr ::= db_optr keep */
{
21
1
,
0
},
/* (95) alter_db_optr ::= */
{
21
1
,
-
2
},
/* (96) alter_db_optr ::= alter_db_optr replica */
{
21
1
,
-
2
},
/* (97) alter_db_optr ::= alter_db_optr tables */
{
21
1
,
-
2
},
/* (98) alter_db_optr ::= alter_db_optr keep */
{
21
1
,
-
2
},
/* (99) alter_db_optr ::= alter_db_optr blocks */
{
21
1
,
-
2
},
/* (100) alter_db_optr ::= alter_db_optr comp */
{
21
1
,
-
2
},
/* (101) alter_db_optr ::= alter_db_optr wal */
{
23
7
,
-
1
},
/* (102) typename ::= ids */
{
23
7
,
-
4
},
/* (103) typename ::= ids LP signed RP */
{
23
8
,
-
1
},
/* (104) signed ::= INTEGER */
{
23
8
,
-
2
},
/* (105) signed ::= PLUS INTEGER */
{
23
8
,
-
2
},
/* (106) signed ::= MINUS INTEGER */
{
20
6
,
-
6
},
/* (107) cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */
{
2
39
,
-
3
},
/* (108) create_table_args ::= LP columnlist RP */
{
2
39
,
-
7
},
/* (109) create_table_args ::= LP columnlist RP TAGS LP columnlist RP */
{
2
39
,
-
7
},
/* (110) create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP */
{
2
39
,
-
2
},
/* (111) create_table_args ::= AS select */
{
24
0
,
-
3
},
/* (112) columnlist ::= columnlist COMMA column */
{
24
0
,
-
1
},
/* (113) columnlist ::= column */
{
24
2
,
-
2
},
/* (114) column ::= ids typename */
{
22
5
,
-
3
},
/* (115) tagitemlist ::= tagitemlist COMMA tagitem */
{
22
5
,
-
1
},
/* (116) tagitemlist ::= tagitem */
{
24
3
,
-
1
},
/* (117) tagitem ::= INTEGER */
{
24
3
,
-
1
},
/* (118) tagitem ::= FLOAT */
{
24
3
,
-
1
},
/* (119) tagitem ::= STRING */
{
24
3
,
-
1
},
/* (120) tagitem ::= BOOL */
{
24
3
,
-
1
},
/* (121) tagitem ::= NULL */
{
24
3
,
-
2
},
/* (122) tagitem ::= MINUS INTEGER */
{
24
3
,
-
2
},
/* (123) tagitem ::= MINUS FLOAT */
{
24
3
,
-
2
},
/* (124) tagitem ::= PLUS INTEGER */
{
24
3
,
-
2
},
/* (125) tagitem ::= PLUS FLOAT */
{
24
1
,
-
12
},
/* (126) select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
{
25
5
,
-
1
},
/* (127) union ::= select */
{
25
5
,
-
3
},
/* (128) union ::= LP union RP */
{
25
5
,
-
4
},
/* (129) union ::= union UNION ALL select */
{
25
5
,
-
6
},
/* (130) union ::= union UNION ALL LP select RP */
{
20
6
,
-
1
},
/* (131) cmd ::= union */
{
24
1
,
-
2
},
/* (132) select ::= SELECT selcollist */
{
25
6
,
-
2
},
/* (133) sclp ::= selcollist COMMA */
{
25
6
,
0
},
/* (134) sclp ::= */
{
24
4
,
-
3
},
/* (135) selcollist ::= sclp expr as */
{
24
4
,
-
2
},
/* (136) selcollist ::= sclp STAR */
{
25
8
,
-
2
},
/* (137) as ::= AS ids */
{
25
8
,
-
1
},
/* (138) as ::= ids */
{
25
8
,
0
},
/* (139) as ::= */
{
24
5
,
-
2
},
/* (140) from ::= FROM tablelist */
{
2
59
,
-
2
},
/* (141) tablelist ::= ids cpxName */
{
2
59
,
-
4
},
/* (142) tablelist ::= tablelist COMMA ids cpxName */
{
26
0
,
-
1
},
/* (143) tmvar ::= VARIABLE */
{
24
7
,
-
4
},
/* (144) interval_opt ::= INTERVAL LP tmvar RP */
{
24
7
,
0
},
/* (145) interval_opt ::= */
{
24
8
,
0
},
/* (146) fill_opt ::= */
{
24
8
,
-
6
},
/* (147) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
24
8
,
-
4
},
/* (148) fill_opt ::= FILL LP ID RP */
{
2
49
,
-
4
},
/* (149) sliding_opt ::= SLIDING LP tmvar RP */
{
2
49
,
0
},
/* (150) sliding_opt ::= */
{
25
1
,
0
},
/* (151) orderby_opt ::= */
{
25
1
,
-
3
},
/* (152) orderby_opt ::= ORDER BY sortlist */
{
26
1
,
-
4
},
/* (153) sortlist ::= sortlist COMMA item sortorder */
{
26
1
,
-
2
},
/* (154) sortlist ::= item sortorder */
{
26
3
,
-
2
},
/* (155) item ::= ids cpxName */
{
26
4
,
-
1
},
/* (156) sortorder ::= ASC */
{
26
4
,
-
1
},
/* (157) sortorder ::= DESC */
{
26
4
,
0
},
/* (158) sortorder ::= */
{
25
0
,
0
},
/* (159) groupby_opt ::= */
{
25
0
,
-
3
},
/* (160) groupby_opt ::= GROUP BY grouplist */
{
26
5
,
-
3
},
/* (161) grouplist ::= grouplist COMMA item */
{
26
5
,
-
1
},
/* (162) grouplist ::= item */
{
25
2
,
0
},
/* (163) having_opt ::= */
{
25
2
,
-
2
},
/* (164) having_opt ::= HAVING expr */
{
25
4
,
0
},
/* (165) limit_opt ::= */
{
25
4
,
-
2
},
/* (166) limit_opt ::= LIMIT signed */
{
25
4
,
-
4
},
/* (167) limit_opt ::= LIMIT signed OFFSET signed */
{
25
4
,
-
4
},
/* (168) limit_opt ::= LIMIT signed COMMA signed */
{
25
3
,
0
},
/* (169) slimit_opt ::= */
{
25
3
,
-
2
},
/* (170) slimit_opt ::= SLIMIT signed */
{
25
3
,
-
4
},
/* (171) slimit_opt ::= SLIMIT signed SOFFSET signed */
{
25
3
,
-
4
},
/* (172) slimit_opt ::= SLIMIT signed COMMA signed */
{
24
6
,
0
},
/* (173) where_opt ::= */
{
24
6
,
-
2
},
/* (174) where_opt ::= WHERE expr */
{
25
7
,
-
3
},
/* (175) expr ::= LP expr RP */
{
25
7
,
-
1
},
/* (176) expr ::= ID */
{
25
7
,
-
3
},
/* (177) expr ::= ID DOT ID */
{
25
7
,
-
3
},
/* (178) expr ::= ID DOT STAR */
{
25
7
,
-
1
},
/* (179) expr ::= INTEGER */
{
25
7
,
-
2
},
/* (180) expr ::= MINUS INTEGER */
{
25
7
,
-
2
},
/* (181) expr ::= PLUS INTEGER */
{
25
7
,
-
1
},
/* (182) expr ::= FLOAT */
{
25
7
,
-
2
},
/* (183) expr ::= MINUS FLOAT */
{
25
7
,
-
2
},
/* (184) expr ::= PLUS FLOAT */
{
25
7
,
-
1
},
/* (185) expr ::= STRING */
{
25
7
,
-
1
},
/* (186) expr ::= NOW */
{
25
7
,
-
1
},
/* (187) expr ::= VARIABLE */
{
25
7
,
-
1
},
/* (188) expr ::= BOOL */
{
25
7
,
-
4
},
/* (189) expr ::= ID LP exprlist RP */
{
25
7
,
-
4
},
/* (190) expr ::= ID LP STAR RP */
{
25
7
,
-
3
},
/* (191) expr ::= expr AND expr */
{
25
7
,
-
3
},
/* (192) expr ::= expr OR expr */
{
25
7
,
-
3
},
/* (193) expr ::= expr LT expr */
{
25
7
,
-
3
},
/* (194) expr ::= expr GT expr */
{
25
7
,
-
3
},
/* (195) expr ::= expr LE expr */
{
25
7
,
-
3
},
/* (196) expr ::= expr GE expr */
{
25
7
,
-
3
},
/* (197) expr ::= expr NE expr */
{
25
7
,
-
3
},
/* (198) expr ::= expr EQ expr */
{
25
7
,
-
3
},
/* (199) expr ::= expr PLUS expr */
{
25
7
,
-
3
},
/* (200) expr ::= expr MINUS expr */
{
25
7
,
-
3
},
/* (201) expr ::= expr STAR expr */
{
25
7
,
-
3
},
/* (202) expr ::= expr SLASH expr */
{
25
7
,
-
3
},
/* (203) expr ::= expr REM expr */
{
25
7
,
-
3
},
/* (204) expr ::= expr LIKE expr */
{
25
7
,
-
5
},
/* (205) expr ::= expr IN LP exprlist RP */
{
26
6
,
-
3
},
/* (206) exprlist ::= exprlist COMMA expritem */
{
26
6
,
-
1
},
/* (207) exprlist ::= expritem */
{
26
7
,
-
1
},
/* (208) expritem ::= expr */
{
26
7
,
0
},
/* (209) expritem ::= */
{
20
6
,
-
3
},
/* (210) cmd ::= RESET QUERY CACHE */
{
20
6
,
-
7
},
/* (211) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{
20
6
,
-
7
},
/* (212) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{
20
6
,
-
7
},
/* (213) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
20
6
,
-
7
},
/* (214) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{
20
6
,
-
8
},
/* (215) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{
20
6
,
-
9
},
/* (216) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{
20
6
,
-
5
},
/* (217) cmd ::= KILL CONNECTION IPTOKEN COLON INTEGER */
{
20
6
,
-
7
},
/* (218) cmd ::= KILL STREAM IPTOKEN COLON INTEGER COLON INTEGER */
{
20
6
,
-
7
},
/* (219) cmd ::= KILL QUERY IPTOKEN COLON INTEGER COLON INTEGER */
{
20
6
,
-
1
},
/* (0) program ::= cmd */
{
20
7
,
-
2
},
/* (1) cmd ::= SHOW DATABASES */
{
20
7
,
-
2
},
/* (2) cmd ::= SHOW MNODES */
{
20
7
,
-
2
},
/* (3) cmd ::= SHOW DNODES */
{
20
7
,
-
2
},
/* (4) cmd ::= SHOW ACCOUNTS */
{
20
7
,
-
2
},
/* (5) cmd ::= SHOW USERS */
{
20
7
,
-
2
},
/* (6) cmd ::= SHOW MODULES */
{
20
7
,
-
2
},
/* (7) cmd ::= SHOW QUERIES */
{
20
7
,
-
2
},
/* (8) cmd ::= SHOW CONNECTIONS */
{
20
7
,
-
2
},
/* (9) cmd ::= SHOW STREAMS */
{
20
7
,
-
2
},
/* (10) cmd ::= SHOW CONFIGS */
{
20
7
,
-
2
},
/* (11) cmd ::= SHOW SCORES */
{
20
7
,
-
2
},
/* (12) cmd ::= SHOW GRANTS */
{
20
7
,
-
2
},
/* (13) cmd ::= SHOW VNODES */
{
20
7
,
-
3
},
/* (14) cmd ::= SHOW VNODES IPTOKEN */
{
20
8
,
0
},
/* (15) dbPrefix ::= */
{
20
8
,
-
2
},
/* (16) dbPrefix ::= ids DOT */
{
2
10
,
0
},
/* (17) cpxName ::= */
{
2
10
,
-
2
},
/* (18) cpxName ::= DOT ids */
{
20
7
,
-
3
},
/* (19) cmd ::= SHOW dbPrefix TABLES */
{
20
7
,
-
5
},
/* (20) cmd ::= SHOW dbPrefix TABLES LIKE ids */
{
20
7
,
-
3
},
/* (21) cmd ::= SHOW dbPrefix STABLES */
{
20
7
,
-
5
},
/* (22) cmd ::= SHOW dbPrefix STABLES LIKE ids */
{
20
7
,
-
3
},
/* (23) cmd ::= SHOW dbPrefix VGROUPS */
{
20
7
,
-
4
},
/* (24) cmd ::= SHOW dbPrefix VGROUPS ids */
{
20
7
,
-
5
},
/* (25) cmd ::= DROP TABLE ifexists ids cpxName */
{
20
7
,
-
4
},
/* (26) cmd ::= DROP DATABASE ifexists ids */
{
20
7
,
-
3
},
/* (27) cmd ::= DROP DNODE ids */
{
20
7
,
-
3
},
/* (28) cmd ::= DROP USER ids */
{
20
7
,
-
3
},
/* (29) cmd ::= DROP ACCOUNT ids */
{
20
7
,
-
2
},
/* (30) cmd ::= USE ids */
{
20
7
,
-
3
},
/* (31) cmd ::= DESCRIBE ids cpxName */
{
20
7
,
-
5
},
/* (32) cmd ::= ALTER USER ids PASS ids */
{
20
7
,
-
5
},
/* (33) cmd ::= ALTER USER ids PRIVILEGE ids */
{
20
7
,
-
4
},
/* (34) cmd ::= ALTER DNODE ids ids */
{
20
7
,
-
5
},
/* (35) cmd ::= ALTER DNODE ids ids ids */
{
20
7
,
-
3
},
/* (36) cmd ::= ALTER LOCAL ids */
{
20
7
,
-
4
},
/* (37) cmd ::= ALTER LOCAL ids ids */
{
20
7
,
-
4
},
/* (38) cmd ::= ALTER DATABASE ids alter_db_optr */
{
20
7
,
-
4
},
/* (39) cmd ::= ALTER ACCOUNT ids acct_optr */
{
20
7
,
-
6
},
/* (40) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{
20
9
,
-
1
},
/* (41) ids ::= ID */
{
20
9
,
-
1
},
/* (42) ids ::= STRING */
{
21
1
,
-
2
},
/* (43) ifexists ::= IF EXISTS */
{
21
1
,
0
},
/* (44) ifexists ::= */
{
21
4
,
-
3
},
/* (45) ifnotexists ::= IF NOT EXISTS */
{
21
4
,
0
},
/* (46) ifnotexists ::= */
{
20
7
,
-
3
},
/* (47) cmd ::= CREATE DNODE ids */
{
20
7
,
-
6
},
/* (48) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{
20
7
,
-
5
},
/* (49) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
{
20
7
,
-
5
},
/* (50) cmd ::= CREATE USER ids PASS ids */
{
21
6
,
0
},
/* (51) pps ::= */
{
21
6
,
-
2
},
/* (52) pps ::= PPS INTEGER */
{
21
7
,
0
},
/* (53) tseries ::= */
{
21
7
,
-
2
},
/* (54) tseries ::= TSERIES INTEGER */
{
21
8
,
0
},
/* (55) dbs ::= */
{
21
8
,
-
2
},
/* (56) dbs ::= DBS INTEGER */
{
21
9
,
0
},
/* (57) streams ::= */
{
21
9
,
-
2
},
/* (58) streams ::= STREAMS INTEGER */
{
2
20
,
0
},
/* (59) storage ::= */
{
2
20
,
-
2
},
/* (60) storage ::= STORAGE INTEGER */
{
22
1
,
0
},
/* (61) qtime ::= */
{
22
1
,
-
2
},
/* (62) qtime ::= QTIME INTEGER */
{
22
2
,
0
},
/* (63) users ::= */
{
22
2
,
-
2
},
/* (64) users ::= USERS INTEGER */
{
22
3
,
0
},
/* (65) conns ::= */
{
22
3
,
-
2
},
/* (66) conns ::= CONNS INTEGER */
{
22
4
,
0
},
/* (67) state ::= */
{
22
4
,
-
2
},
/* (68) state ::= STATE ids */
{
21
3
,
-
9
},
/* (69) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{
22
5
,
-
2
},
/* (70) keep ::= KEEP tagitemlist */
{
22
7
,
-
2
},
/* (71) tables ::= MAXTABLES INTEGER */
{
22
8
,
-
2
},
/* (72) cache ::= CACHE INTEGER */
{
22
9
,
-
2
},
/* (73) replica ::= REPLICA INTEGER */
{
2
30
,
-
2
},
/* (74) days ::= DAYS INTEGER */
{
23
1
,
-
2
},
/* (75) minrows ::= MINROWS INTEGER */
{
23
2
,
-
2
},
/* (76) maxrows ::= MAXROWS INTEGER */
{
23
3
,
-
2
},
/* (77) blocks ::= BLOCKS INTEGER */
{
23
4
,
-
2
},
/* (78) ctime ::= CTIME INTEGER */
{
23
5
,
-
2
},
/* (79) wal ::= WAL INTEGER */
{
23
6
,
-
2
},
/* (80) comp ::= COMP INTEGER */
{
23
7
,
-
2
},
/* (81) prec ::= PRECISION STRING */
{
21
5
,
0
},
/* (82) db_optr ::= */
{
21
5
,
-
2
},
/* (83) db_optr ::= db_optr tables */
{
21
5
,
-
2
},
/* (84) db_optr ::= db_optr cache */
{
21
5
,
-
2
},
/* (85) db_optr ::= db_optr replica */
{
21
5
,
-
2
},
/* (86) db_optr ::= db_optr days */
{
21
5
,
-
2
},
/* (87) db_optr ::= db_optr minrows */
{
21
5
,
-
2
},
/* (88) db_optr ::= db_optr maxrows */
{
21
5
,
-
2
},
/* (89) db_optr ::= db_optr blocks */
{
21
5
,
-
2
},
/* (90) db_optr ::= db_optr ctime */
{
21
5
,
-
2
},
/* (91) db_optr ::= db_optr wal */
{
21
5
,
-
2
},
/* (92) db_optr ::= db_optr comp */
{
21
5
,
-
2
},
/* (93) db_optr ::= db_optr prec */
{
21
5
,
-
2
},
/* (94) db_optr ::= db_optr keep */
{
21
2
,
0
},
/* (95) alter_db_optr ::= */
{
21
2
,
-
2
},
/* (96) alter_db_optr ::= alter_db_optr replica */
{
21
2
,
-
2
},
/* (97) alter_db_optr ::= alter_db_optr tables */
{
21
2
,
-
2
},
/* (98) alter_db_optr ::= alter_db_optr keep */
{
21
2
,
-
2
},
/* (99) alter_db_optr ::= alter_db_optr blocks */
{
21
2
,
-
2
},
/* (100) alter_db_optr ::= alter_db_optr comp */
{
21
2
,
-
2
},
/* (101) alter_db_optr ::= alter_db_optr wal */
{
23
8
,
-
1
},
/* (102) typename ::= ids */
{
23
8
,
-
4
},
/* (103) typename ::= ids LP signed RP */
{
23
9
,
-
1
},
/* (104) signed ::= INTEGER */
{
23
9
,
-
2
},
/* (105) signed ::= PLUS INTEGER */
{
23
9
,
-
2
},
/* (106) signed ::= MINUS INTEGER */
{
20
7
,
-
6
},
/* (107) cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */
{
2
40
,
-
3
},
/* (108) create_table_args ::= LP columnlist RP */
{
2
40
,
-
7
},
/* (109) create_table_args ::= LP columnlist RP TAGS LP columnlist RP */
{
2
40
,
-
7
},
/* (110) create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP */
{
2
40
,
-
2
},
/* (111) create_table_args ::= AS select */
{
24
1
,
-
3
},
/* (112) columnlist ::= columnlist COMMA column */
{
24
1
,
-
1
},
/* (113) columnlist ::= column */
{
24
3
,
-
2
},
/* (114) column ::= ids typename */
{
22
6
,
-
3
},
/* (115) tagitemlist ::= tagitemlist COMMA tagitem */
{
22
6
,
-
1
},
/* (116) tagitemlist ::= tagitem */
{
24
4
,
-
1
},
/* (117) tagitem ::= INTEGER */
{
24
4
,
-
1
},
/* (118) tagitem ::= FLOAT */
{
24
4
,
-
1
},
/* (119) tagitem ::= STRING */
{
24
4
,
-
1
},
/* (120) tagitem ::= BOOL */
{
24
4
,
-
1
},
/* (121) tagitem ::= NULL */
{
24
4
,
-
2
},
/* (122) tagitem ::= MINUS INTEGER */
{
24
4
,
-
2
},
/* (123) tagitem ::= MINUS FLOAT */
{
24
4
,
-
2
},
/* (124) tagitem ::= PLUS INTEGER */
{
24
4
,
-
2
},
/* (125) tagitem ::= PLUS FLOAT */
{
24
2
,
-
12
},
/* (126) select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
{
25
6
,
-
1
},
/* (127) union ::= select */
{
25
6
,
-
3
},
/* (128) union ::= LP union RP */
{
25
6
,
-
4
},
/* (129) union ::= union UNION ALL select */
{
25
6
,
-
6
},
/* (130) union ::= union UNION ALL LP select RP */
{
20
7
,
-
1
},
/* (131) cmd ::= union */
{
24
2
,
-
2
},
/* (132) select ::= SELECT selcollist */
{
25
7
,
-
2
},
/* (133) sclp ::= selcollist COMMA */
{
25
7
,
0
},
/* (134) sclp ::= */
{
24
5
,
-
3
},
/* (135) selcollist ::= sclp expr as */
{
24
5
,
-
2
},
/* (136) selcollist ::= sclp STAR */
{
25
9
,
-
2
},
/* (137) as ::= AS ids */
{
25
9
,
-
1
},
/* (138) as ::= ids */
{
25
9
,
0
},
/* (139) as ::= */
{
24
6
,
-
2
},
/* (140) from ::= FROM tablelist */
{
2
60
,
-
2
},
/* (141) tablelist ::= ids cpxName */
{
2
60
,
-
4
},
/* (142) tablelist ::= tablelist COMMA ids cpxName */
{
26
1
,
-
1
},
/* (143) tmvar ::= VARIABLE */
{
24
8
,
-
4
},
/* (144) interval_opt ::= INTERVAL LP tmvar RP */
{
24
8
,
0
},
/* (145) interval_opt ::= */
{
24
9
,
0
},
/* (146) fill_opt ::= */
{
24
9
,
-
6
},
/* (147) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
24
9
,
-
4
},
/* (148) fill_opt ::= FILL LP ID RP */
{
2
50
,
-
4
},
/* (149) sliding_opt ::= SLIDING LP tmvar RP */
{
2
50
,
0
},
/* (150) sliding_opt ::= */
{
25
2
,
0
},
/* (151) orderby_opt ::= */
{
25
2
,
-
3
},
/* (152) orderby_opt ::= ORDER BY sortlist */
{
26
2
,
-
4
},
/* (153) sortlist ::= sortlist COMMA item sortorder */
{
26
2
,
-
2
},
/* (154) sortlist ::= item sortorder */
{
26
4
,
-
2
},
/* (155) item ::= ids cpxName */
{
26
5
,
-
1
},
/* (156) sortorder ::= ASC */
{
26
5
,
-
1
},
/* (157) sortorder ::= DESC */
{
26
5
,
0
},
/* (158) sortorder ::= */
{
25
1
,
0
},
/* (159) groupby_opt ::= */
{
25
1
,
-
3
},
/* (160) groupby_opt ::= GROUP BY grouplist */
{
26
6
,
-
3
},
/* (161) grouplist ::= grouplist COMMA item */
{
26
6
,
-
1
},
/* (162) grouplist ::= item */
{
25
3
,
0
},
/* (163) having_opt ::= */
{
25
3
,
-
2
},
/* (164) having_opt ::= HAVING expr */
{
25
5
,
0
},
/* (165) limit_opt ::= */
{
25
5
,
-
2
},
/* (166) limit_opt ::= LIMIT signed */
{
25
5
,
-
4
},
/* (167) limit_opt ::= LIMIT signed OFFSET signed */
{
25
5
,
-
4
},
/* (168) limit_opt ::= LIMIT signed COMMA signed */
{
25
4
,
0
},
/* (169) slimit_opt ::= */
{
25
4
,
-
2
},
/* (170) slimit_opt ::= SLIMIT signed */
{
25
4
,
-
4
},
/* (171) slimit_opt ::= SLIMIT signed SOFFSET signed */
{
25
4
,
-
4
},
/* (172) slimit_opt ::= SLIMIT signed COMMA signed */
{
24
7
,
0
},
/* (173) where_opt ::= */
{
24
7
,
-
2
},
/* (174) where_opt ::= WHERE expr */
{
25
8
,
-
3
},
/* (175) expr ::= LP expr RP */
{
25
8
,
-
1
},
/* (176) expr ::= ID */
{
25
8
,
-
3
},
/* (177) expr ::= ID DOT ID */
{
25
8
,
-
3
},
/* (178) expr ::= ID DOT STAR */
{
25
8
,
-
1
},
/* (179) expr ::= INTEGER */
{
25
8
,
-
2
},
/* (180) expr ::= MINUS INTEGER */
{
25
8
,
-
2
},
/* (181) expr ::= PLUS INTEGER */
{
25
8
,
-
1
},
/* (182) expr ::= FLOAT */
{
25
8
,
-
2
},
/* (183) expr ::= MINUS FLOAT */
{
25
8
,
-
2
},
/* (184) expr ::= PLUS FLOAT */
{
25
8
,
-
1
},
/* (185) expr ::= STRING */
{
25
8
,
-
1
},
/* (186) expr ::= NOW */
{
25
8
,
-
1
},
/* (187) expr ::= VARIABLE */
{
25
8
,
-
1
},
/* (188) expr ::= BOOL */
{
25
8
,
-
4
},
/* (189) expr ::= ID LP exprlist RP */
{
25
8
,
-
4
},
/* (190) expr ::= ID LP STAR RP */
{
25
8
,
-
3
},
/* (191) expr ::= expr AND expr */
{
25
8
,
-
3
},
/* (192) expr ::= expr OR expr */
{
25
8
,
-
3
},
/* (193) expr ::= expr LT expr */
{
25
8
,
-
3
},
/* (194) expr ::= expr GT expr */
{
25
8
,
-
3
},
/* (195) expr ::= expr LE expr */
{
25
8
,
-
3
},
/* (196) expr ::= expr GE expr */
{
25
8
,
-
3
},
/* (197) expr ::= expr NE expr */
{
25
8
,
-
3
},
/* (198) expr ::= expr EQ expr */
{
25
8
,
-
3
},
/* (199) expr ::= expr PLUS expr */
{
25
8
,
-
3
},
/* (200) expr ::= expr MINUS expr */
{
25
8
,
-
3
},
/* (201) expr ::= expr STAR expr */
{
25
8
,
-
3
},
/* (202) expr ::= expr SLASH expr */
{
25
8
,
-
3
},
/* (203) expr ::= expr REM expr */
{
25
8
,
-
3
},
/* (204) expr ::= expr LIKE expr */
{
25
8
,
-
5
},
/* (205) expr ::= expr IN LP exprlist RP */
{
26
7
,
-
3
},
/* (206) exprlist ::= exprlist COMMA expritem */
{
26
7
,
-
1
},
/* (207) exprlist ::= expritem */
{
26
8
,
-
1
},
/* (208) expritem ::= expr */
{
26
8
,
0
},
/* (209) expritem ::= */
{
20
7
,
-
3
},
/* (210) cmd ::= RESET QUERY CACHE */
{
20
7
,
-
7
},
/* (211) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{
20
7
,
-
7
},
/* (212) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{
20
7
,
-
7
},
/* (213) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
20
7
,
-
7
},
/* (214) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{
20
7
,
-
8
},
/* (215) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{
20
7
,
-
9
},
/* (216) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{
20
7
,
-
5
},
/* (217) cmd ::= KILL CONNECTION IPTOKEN COLON INTEGER */
{
20
7
,
-
7
},
/* (218) cmd ::= KILL STREAM IPTOKEN COLON INTEGER COLON INTEGER */
{
20
7
,
-
7
},
/* (219) cmd ::= KILL QUERY IPTOKEN COLON INTEGER COLON INTEGER */
};
static
void
yy_accept
(
yyParser
*
);
/* Forward Declaration */
...
...
@@ -2113,13 +2115,13 @@ static void yy_reduce(
{
setDCLSQLElems
(
pInfo
,
TSDB_SQL_CFG_LOCAL
,
2
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
break
;
case
38
:
/* cmd ::= ALTER DATABASE ids alter_db_optr */
{
SSQLToken
t
=
{
0
};
setCreateDBSQL
(
pInfo
,
TSDB_SQL_ALTER_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
478
,
&
t
);}
{
SSQLToken
t
=
{
0
};
setCreateDBSQL
(
pInfo
,
TSDB_SQL_ALTER_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
374
,
&
t
);}
break
;
case
39
:
/* cmd ::= ALTER ACCOUNT ids acct_optr */
{
setCreateAcctSQL
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
,
&
yymsp
[
0
].
minor
.
yy
63
);}
{
setCreateAcctSQL
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
,
&
yymsp
[
0
].
minor
.
yy
219
);}
break
;
case
40
:
/* cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{
setCreateAcctSQL
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
63
);}
{
setCreateAcctSQL
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
219
);}
break
;
case
41
:
/* ids ::= ID */
case
42
:
/* ids ::= STRING */
yytestcase
(
yyruleno
==
42
);
...
...
@@ -2140,10 +2142,10 @@ static void yy_reduce(
{
setDCLSQLElems
(
pInfo
,
TSDB_SQL_CREATE_DNODE
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);}
break
;
case
48
:
/* cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{
setCreateAcctSQL
(
pInfo
,
TSDB_SQL_CREATE_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
63
);}
{
setCreateAcctSQL
(
pInfo
,
TSDB_SQL_CREATE_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
219
);}
break
;
case
49
:
/* cmd ::= CREATE DATABASE ifnotexists ids db_optr */
{
setCreateDBSQL
(
pInfo
,
TSDB_SQL_CREATE_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
478
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
{
setCreateDBSQL
(
pInfo
,
TSDB_SQL_CREATE_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
374
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
break
;
case
50
:
/* cmd ::= CREATE USER ids PASS ids */
{
setCreateUserSQL
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);}
...
...
@@ -2172,20 +2174,20 @@ static void yy_reduce(
break
;
case
69
:
/* acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{
yylhsminor
.
yy
63
.
maxUsers
=
(
yymsp
[
-
2
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
2
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
63
.
maxDbs
=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
3
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
63
.
maxTimeSeries
=
(
yymsp
[
-
7
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
7
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
63
.
maxStreams
=
(
yymsp
[
-
5
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
5
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
63
.
maxPointsPerSecond
=
(
yymsp
[
-
8
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
8
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
63
.
maxStorage
=
(
yymsp
[
-
6
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
6
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy
63
.
maxQueryTime
=
(
yymsp
[
-
4
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
4
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy
63
.
maxConnections
=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
1
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
63
.
stat
=
yymsp
[
0
].
minor
.
yy0
;
yylhsminor
.
yy
219
.
maxUsers
=
(
yymsp
[
-
2
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
2
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
219
.
maxDbs
=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
3
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
219
.
maxTimeSeries
=
(
yymsp
[
-
7
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
7
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
219
.
maxStreams
=
(
yymsp
[
-
5
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
5
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
219
.
maxPointsPerSecond
=
(
yymsp
[
-
8
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
8
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
219
.
maxStorage
=
(
yymsp
[
-
6
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
6
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy
219
.
maxQueryTime
=
(
yymsp
[
-
4
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
4
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy
219
.
maxConnections
=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
1
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
219
.
stat
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
-
8
].
minor
.
yy
63
=
yylhsminor
.
yy63
;
yymsp
[
-
8
].
minor
.
yy
219
=
yylhsminor
.
yy219
;
break
;
case
70
:
/* keep ::= KEEP tagitemlist */
{
yymsp
[
-
1
].
minor
.
yy
456
=
yymsp
[
0
].
minor
.
yy456
;
}
{
yymsp
[
-
1
].
minor
.
yy
322
=
yymsp
[
0
].
minor
.
yy322
;
}
break
;
case
71
:
/* tables ::= MAXTABLES INTEGER */
case
72
:
/* cache ::= CACHE INTEGER */
yytestcase
(
yyruleno
==
72
);
...
...
@@ -2201,85 +2203,85 @@ static void yy_reduce(
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
break
;
case
82
:
/* db_optr ::= */
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy
478
);}
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy
374
);}
break
;
case
83
:
/* db_optr ::= db_optr tables */
case
97
:
/* alter_db_optr ::= alter_db_optr tables */
yytestcase
(
yyruleno
==
97
);
{
yylhsminor
.
yy
478
=
yymsp
[
-
1
].
minor
.
yy478
;
yylhsminor
.
yy478
.
maxTablesPerVnode
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
478
=
yylhsminor
.
yy478
;
{
yylhsminor
.
yy
374
=
yymsp
[
-
1
].
minor
.
yy374
;
yylhsminor
.
yy374
.
maxTablesPerVnode
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
374
=
yylhsminor
.
yy374
;
break
;
case
84
:
/* db_optr ::= db_optr cache */
{
yylhsminor
.
yy
478
=
yymsp
[
-
1
].
minor
.
yy478
;
yylhsminor
.
yy478
.
cacheBlockSize
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
478
=
yylhsminor
.
yy478
;
{
yylhsminor
.
yy
374
=
yymsp
[
-
1
].
minor
.
yy374
;
yylhsminor
.
yy374
.
cacheBlockSize
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
374
=
yylhsminor
.
yy374
;
break
;
case
85
:
/* db_optr ::= db_optr replica */
case
96
:
/* alter_db_optr ::= alter_db_optr replica */
yytestcase
(
yyruleno
==
96
);
{
yylhsminor
.
yy
478
=
yymsp
[
-
1
].
minor
.
yy478
;
yylhsminor
.
yy478
.
replica
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
478
=
yylhsminor
.
yy478
;
{
yylhsminor
.
yy
374
=
yymsp
[
-
1
].
minor
.
yy374
;
yylhsminor
.
yy374
.
replica
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
374
=
yylhsminor
.
yy374
;
break
;
case
86
:
/* db_optr ::= db_optr days */
{
yylhsminor
.
yy
478
=
yymsp
[
-
1
].
minor
.
yy478
;
yylhsminor
.
yy478
.
daysPerFile
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
478
=
yylhsminor
.
yy478
;
{
yylhsminor
.
yy
374
=
yymsp
[
-
1
].
minor
.
yy374
;
yylhsminor
.
yy374
.
daysPerFile
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
374
=
yylhsminor
.
yy374
;
break
;
case
87
:
/* db_optr ::= db_optr minrows */
{
yylhsminor
.
yy
478
=
yymsp
[
-
1
].
minor
.
yy478
;
yylhsminor
.
yy478
.
minRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
478
=
yylhsminor
.
yy478
;
{
yylhsminor
.
yy
374
=
yymsp
[
-
1
].
minor
.
yy374
;
yylhsminor
.
yy374
.
minRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
374
=
yylhsminor
.
yy374
;
break
;
case
88
:
/* db_optr ::= db_optr maxrows */
{
yylhsminor
.
yy
478
=
yymsp
[
-
1
].
minor
.
yy478
;
yylhsminor
.
yy478
.
maxRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
478
=
yylhsminor
.
yy478
;
{
yylhsminor
.
yy
374
=
yymsp
[
-
1
].
minor
.
yy374
;
yylhsminor
.
yy374
.
maxRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
374
=
yylhsminor
.
yy374
;
break
;
case
89
:
/* db_optr ::= db_optr blocks */
case
99
:
/* alter_db_optr ::= alter_db_optr blocks */
yytestcase
(
yyruleno
==
99
);
{
yylhsminor
.
yy
478
=
yymsp
[
-
1
].
minor
.
yy478
;
yylhsminor
.
yy478
.
numOfBlocks
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
478
=
yylhsminor
.
yy478
;
{
yylhsminor
.
yy
374
=
yymsp
[
-
1
].
minor
.
yy374
;
yylhsminor
.
yy374
.
numOfBlocks
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
374
=
yylhsminor
.
yy374
;
break
;
case
90
:
/* db_optr ::= db_optr ctime */
{
yylhsminor
.
yy
478
=
yymsp
[
-
1
].
minor
.
yy478
;
yylhsminor
.
yy478
.
commitTime
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
478
=
yylhsminor
.
yy478
;
{
yylhsminor
.
yy
374
=
yymsp
[
-
1
].
minor
.
yy374
;
yylhsminor
.
yy374
.
commitTime
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
374
=
yylhsminor
.
yy374
;
break
;
case
91
:
/* db_optr ::= db_optr wal */
case
101
:
/* alter_db_optr ::= alter_db_optr wal */
yytestcase
(
yyruleno
==
101
);
{
yylhsminor
.
yy
478
=
yymsp
[
-
1
].
minor
.
yy478
;
yylhsminor
.
yy478
.
walLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
478
=
yylhsminor
.
yy478
;
{
yylhsminor
.
yy
374
=
yymsp
[
-
1
].
minor
.
yy374
;
yylhsminor
.
yy374
.
walLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
374
=
yylhsminor
.
yy374
;
break
;
case
92
:
/* db_optr ::= db_optr comp */
case
100
:
/* alter_db_optr ::= alter_db_optr comp */
yytestcase
(
yyruleno
==
100
);
{
yylhsminor
.
yy
478
=
yymsp
[
-
1
].
minor
.
yy478
;
yylhsminor
.
yy478
.
compressionLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
478
=
yylhsminor
.
yy478
;
{
yylhsminor
.
yy
374
=
yymsp
[
-
1
].
minor
.
yy374
;
yylhsminor
.
yy374
.
compressionLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
374
=
yylhsminor
.
yy374
;
break
;
case
93
:
/* db_optr ::= db_optr prec */
{
yylhsminor
.
yy
478
=
yymsp
[
-
1
].
minor
.
yy478
;
yylhsminor
.
yy478
.
precision
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
-
1
].
minor
.
yy
478
=
yylhsminor
.
yy478
;
{
yylhsminor
.
yy
374
=
yymsp
[
-
1
].
minor
.
yy374
;
yylhsminor
.
yy374
.
precision
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
-
1
].
minor
.
yy
374
=
yylhsminor
.
yy374
;
break
;
case
94
:
/* db_optr ::= db_optr keep */
case
98
:
/* alter_db_optr ::= alter_db_optr keep */
yytestcase
(
yyruleno
==
98
);
{
yylhsminor
.
yy
478
=
yymsp
[
-
1
].
minor
.
yy478
;
yylhsminor
.
yy478
.
keep
=
yymsp
[
0
].
minor
.
yy456
;
}
yymsp
[
-
1
].
minor
.
yy
478
=
yylhsminor
.
yy478
;
{
yylhsminor
.
yy
374
=
yymsp
[
-
1
].
minor
.
yy374
;
yylhsminor
.
yy374
.
keep
=
yymsp
[
0
].
minor
.
yy322
;
}
yymsp
[
-
1
].
minor
.
yy
374
=
yylhsminor
.
yy374
;
break
;
case
95
:
/* alter_db_optr ::= */
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy
478
);}
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy
374
);}
break
;
case
102
:
/* typename ::= ids */
{
tSQLSetColumnType
(
&
yylhsminor
.
yy
47
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
47
=
yylhsminor
.
yy47
;
{
tSQLSetColumnType
(
&
yylhsminor
.
yy
325
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
325
=
yylhsminor
.
yy325
;
break
;
case
103
:
/* typename ::= ids LP signed RP */
{
yymsp
[
-
3
].
minor
.
yy0
.
type
=
-
yymsp
[
-
1
].
minor
.
yy
373
;
// negative value of name length
tSQLSetColumnType
(
&
yylhsminor
.
yy
47
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yymsp
[
-
3
].
minor
.
yy0
.
type
=
-
yymsp
[
-
1
].
minor
.
yy
279
;
// negative value of name length
tSQLSetColumnType
(
&
yylhsminor
.
yy
325
,
&
yymsp
[
-
3
].
minor
.
yy0
);
}
yymsp
[
-
3
].
minor
.
yy
47
=
yylhsminor
.
yy47
;
yymsp
[
-
3
].
minor
.
yy
325
=
yylhsminor
.
yy325
;
break
;
case
104
:
/* signed ::= INTEGER */
{
yylhsminor
.
yy
373
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
0
].
minor
.
yy
373
=
yylhsminor
.
yy373
;
{
yylhsminor
.
yy
279
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
0
].
minor
.
yy
279
=
yylhsminor
.
yy279
;
break
;
case
105
:
/* signed ::= PLUS INTEGER */
{
yymsp
[
-
1
].
minor
.
yy
373
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yymsp
[
-
1
].
minor
.
yy
279
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
break
;
case
106
:
/* signed ::= MINUS INTEGER */
{
yymsp
[
-
1
].
minor
.
yy
373
=
-
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);}
{
yymsp
[
-
1
].
minor
.
yy
279
=
-
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);}
break
;
case
107
:
/* cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */
{
...
...
@@ -2289,61 +2291,61 @@ static void yy_reduce(
break
;
case
108
:
/* create_table_args ::= LP columnlist RP */
{
yymsp
[
-
2
].
minor
.
yy4
94
=
tSetCreateSQLElems
(
yymsp
[
-
1
].
minor
.
yy503
,
NULL
,
NULL
,
NULL
,
NULL
,
TSQL_CREATE_TABLE
);
setSQLInfo
(
pInfo
,
yymsp
[
-
2
].
minor
.
yy4
94
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yymsp
[
-
2
].
minor
.
yy4
08
=
tSetCreateSQLElems
(
yymsp
[
-
1
].
minor
.
yy369
,
NULL
,
NULL
,
NULL
,
NULL
,
TSQL_CREATE_TABLE
);
setSQLInfo
(
pInfo
,
yymsp
[
-
2
].
minor
.
yy4
08
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
}
break
;
case
109
:
/* create_table_args ::= LP columnlist RP TAGS LP columnlist RP */
{
yymsp
[
-
6
].
minor
.
yy4
94
=
tSetCreateSQLElems
(
yymsp
[
-
5
].
minor
.
yy503
,
yymsp
[
-
1
].
minor
.
yy503
,
NULL
,
NULL
,
NULL
,
TSQL_CREATE_STABLE
);
setSQLInfo
(
pInfo
,
yymsp
[
-
6
].
minor
.
yy4
94
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yymsp
[
-
6
].
minor
.
yy4
08
=
tSetCreateSQLElems
(
yymsp
[
-
5
].
minor
.
yy369
,
yymsp
[
-
1
].
minor
.
yy369
,
NULL
,
NULL
,
NULL
,
TSQL_CREATE_STABLE
);
setSQLInfo
(
pInfo
,
yymsp
[
-
6
].
minor
.
yy4
08
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
}
break
;
case
110
:
/* create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP */
{
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
yymsp
[
-
6
].
minor
.
yy4
94
=
tSetCreateSQLElems
(
NULL
,
NULL
,
&
yymsp
[
-
5
].
minor
.
yy0
,
yymsp
[
-
1
].
minor
.
yy456
,
NULL
,
TSQL_CREATE_TABLE_FROM_STABLE
);
setSQLInfo
(
pInfo
,
yymsp
[
-
6
].
minor
.
yy4
94
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yymsp
[
-
6
].
minor
.
yy4
08
=
tSetCreateSQLElems
(
NULL
,
NULL
,
&
yymsp
[
-
5
].
minor
.
yy0
,
yymsp
[
-
1
].
minor
.
yy322
,
NULL
,
TSQL_CREATE_TABLE_FROM_STABLE
);
setSQLInfo
(
pInfo
,
yymsp
[
-
6
].
minor
.
yy4
08
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
}
break
;
case
111
:
/* create_table_args ::= AS select */
{
yymsp
[
-
1
].
minor
.
yy4
94
=
tSetCreateSQLElems
(
NULL
,
NULL
,
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy392
,
TSQL_CREATE_STREAM
);
setSQLInfo
(
pInfo
,
yymsp
[
-
1
].
minor
.
yy4
94
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yymsp
[
-
1
].
minor
.
yy4
08
=
tSetCreateSQLElems
(
NULL
,
NULL
,
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy190
,
TSQL_CREATE_STREAM
);
setSQLInfo
(
pInfo
,
yymsp
[
-
1
].
minor
.
yy4
08
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
}
break
;
case
112
:
/* columnlist ::= columnlist COMMA column */
{
yylhsminor
.
yy
503
=
tFieldListAppend
(
yymsp
[
-
2
].
minor
.
yy503
,
&
yymsp
[
0
].
minor
.
yy47
);
}
yymsp
[
-
2
].
minor
.
yy
503
=
yylhsminor
.
yy503
;
{
yylhsminor
.
yy
369
=
tFieldListAppend
(
yymsp
[
-
2
].
minor
.
yy369
,
&
yymsp
[
0
].
minor
.
yy325
);
}
yymsp
[
-
2
].
minor
.
yy
369
=
yylhsminor
.
yy369
;
break
;
case
113
:
/* columnlist ::= column */
{
yylhsminor
.
yy
503
=
tFieldListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy47
);}
yymsp
[
0
].
minor
.
yy
503
=
yylhsminor
.
yy503
;
{
yylhsminor
.
yy
369
=
tFieldListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy325
);}
yymsp
[
0
].
minor
.
yy
369
=
yylhsminor
.
yy369
;
break
;
case
114
:
/* column ::= ids typename */
{
tSQLSetColumnInfo
(
&
yylhsminor
.
yy
47
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy47
);
tSQLSetColumnInfo
(
&
yylhsminor
.
yy
325
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy325
);
}
yymsp
[
-
1
].
minor
.
yy
47
=
yylhsminor
.
yy47
;
yymsp
[
-
1
].
minor
.
yy
325
=
yylhsminor
.
yy325
;
break
;
case
115
:
/* tagitemlist ::= tagitemlist COMMA tagitem */
{
yylhsminor
.
yy
456
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy456
,
&
yymsp
[
0
].
minor
.
yy442
,
-
1
);
}
yymsp
[
-
2
].
minor
.
yy
456
=
yylhsminor
.
yy456
;
{
yylhsminor
.
yy
322
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy322
,
&
yymsp
[
0
].
minor
.
yy518
,
-
1
);
}
yymsp
[
-
2
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
116
:
/* tagitemlist ::= tagitem */
{
yylhsminor
.
yy
456
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy442
,
-
1
);
}
yymsp
[
0
].
minor
.
yy
456
=
yylhsminor
.
yy456
;
{
yylhsminor
.
yy
322
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy518
,
-
1
);
}
yymsp
[
0
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
117
:
/* tagitem ::= INTEGER */
case
118
:
/* tagitem ::= FLOAT */
yytestcase
(
yyruleno
==
118
);
case
119
:
/* tagitem ::= STRING */
yytestcase
(
yyruleno
==
119
);
case
120
:
/* tagitem ::= BOOL */
yytestcase
(
yyruleno
==
120
);
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy
442
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
442
=
yylhsminor
.
yy442
;
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy
518
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
518
=
yylhsminor
.
yy518
;
break
;
case
121
:
/* tagitem ::= NULL */
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tVariantCreate
(
&
yylhsminor
.
yy
442
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
442
=
yylhsminor
.
yy442
;
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tVariantCreate
(
&
yylhsminor
.
yy
518
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
518
=
yylhsminor
.
yy518
;
break
;
case
122
:
/* tagitem ::= MINUS INTEGER */
case
123
:
/* tagitem ::= MINUS FLOAT */
yytestcase
(
yyruleno
==
123
);
...
...
@@ -2353,59 +2355,59 @@ static void yy_reduce(
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
yymsp
[
0
].
minor
.
yy0
.
type
;
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy
442
,
&
yymsp
[
-
1
].
minor
.
yy0
);
tVariantCreate
(
&
yylhsminor
.
yy
518
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
yymsp
[
-
1
].
minor
.
yy
442
=
yylhsminor
.
yy442
;
yymsp
[
-
1
].
minor
.
yy
518
=
yylhsminor
.
yy518
;
break
;
case
126
:
/* select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
{
yylhsminor
.
yy
392
=
tSetQuerySQLElems
(
&
yymsp
[
-
11
].
minor
.
yy0
,
yymsp
[
-
10
].
minor
.
yy10
,
yymsp
[
-
9
].
minor
.
yy456
,
yymsp
[
-
8
].
minor
.
yy2
,
yymsp
[
-
4
].
minor
.
yy456
,
yymsp
[
-
3
].
minor
.
yy456
,
&
yymsp
[
-
7
].
minor
.
yy0
,
&
yymsp
[
-
5
].
minor
.
yy0
,
yymsp
[
-
6
].
minor
.
yy456
,
&
yymsp
[
0
].
minor
.
yy230
,
&
yymsp
[
-
1
].
minor
.
yy230
);
yylhsminor
.
yy
190
=
tSetQuerySQLElems
(
&
yymsp
[
-
11
].
minor
.
yy0
,
yymsp
[
-
10
].
minor
.
yy260
,
yymsp
[
-
9
].
minor
.
yy322
,
yymsp
[
-
8
].
minor
.
yy500
,
yymsp
[
-
4
].
minor
.
yy322
,
yymsp
[
-
3
].
minor
.
yy322
,
&
yymsp
[
-
7
].
minor
.
yy0
,
&
yymsp
[
-
5
].
minor
.
yy0
,
yymsp
[
-
6
].
minor
.
yy322
,
&
yymsp
[
0
].
minor
.
yy284
,
&
yymsp
[
-
1
].
minor
.
yy284
);
}
yymsp
[
-
11
].
minor
.
yy
392
=
yylhsminor
.
yy392
;
yymsp
[
-
11
].
minor
.
yy
190
=
yylhsminor
.
yy190
;
break
;
case
127
:
/* union ::= select */
{
yylhsminor
.
yy
145
=
setSubclause
(
NULL
,
yymsp
[
0
].
minor
.
yy392
);
}
yymsp
[
0
].
minor
.
yy
145
=
yylhsminor
.
yy145
;
{
yylhsminor
.
yy
263
=
setSubclause
(
NULL
,
yymsp
[
0
].
minor
.
yy190
);
}
yymsp
[
0
].
minor
.
yy
263
=
yylhsminor
.
yy263
;
break
;
case
128
:
/* union ::= LP union RP */
{
yymsp
[
-
2
].
minor
.
yy
145
=
yymsp
[
-
1
].
minor
.
yy145
;
}
{
yymsp
[
-
2
].
minor
.
yy
263
=
yymsp
[
-
1
].
minor
.
yy263
;
}
break
;
case
129
:
/* union ::= union UNION ALL select */
{
yylhsminor
.
yy
145
=
appendSelectClause
(
yymsp
[
-
3
].
minor
.
yy145
,
yymsp
[
0
].
minor
.
yy392
);
}
yymsp
[
-
3
].
minor
.
yy
145
=
yylhsminor
.
yy145
;
{
yylhsminor
.
yy
263
=
appendSelectClause
(
yymsp
[
-
3
].
minor
.
yy263
,
yymsp
[
0
].
minor
.
yy190
);
}
yymsp
[
-
3
].
minor
.
yy
263
=
yylhsminor
.
yy263
;
break
;
case
130
:
/* union ::= union UNION ALL LP select RP */
{
yylhsminor
.
yy
145
=
appendSelectClause
(
yymsp
[
-
5
].
minor
.
yy145
,
yymsp
[
-
1
].
minor
.
yy392
);
}
yymsp
[
-
5
].
minor
.
yy
145
=
yylhsminor
.
yy145
;
{
yylhsminor
.
yy
263
=
appendSelectClause
(
yymsp
[
-
5
].
minor
.
yy263
,
yymsp
[
-
1
].
minor
.
yy190
);
}
yymsp
[
-
5
].
minor
.
yy
263
=
yylhsminor
.
yy263
;
break
;
case
131
:
/* cmd ::= union */
{
setSQLInfo
(
pInfo
,
yymsp
[
0
].
minor
.
yy
145
,
NULL
,
TSDB_SQL_SELECT
);
}
{
setSQLInfo
(
pInfo
,
yymsp
[
0
].
minor
.
yy
263
,
NULL
,
TSDB_SQL_SELECT
);
}
break
;
case
132
:
/* select ::= SELECT selcollist */
{
yylhsminor
.
yy
392
=
tSetQuerySQLElems
(
&
yymsp
[
-
1
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy1
0
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
yylhsminor
.
yy
190
=
tSetQuerySQLElems
(
&
yymsp
[
-
1
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy26
0
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
392
=
yylhsminor
.
yy392
;
yymsp
[
-
1
].
minor
.
yy
190
=
yylhsminor
.
yy190
;
break
;
case
133
:
/* sclp ::= selcollist COMMA */
{
yylhsminor
.
yy
10
=
yymsp
[
-
1
].
minor
.
yy1
0
;}
yymsp
[
-
1
].
minor
.
yy
10
=
yylhsminor
.
yy1
0
;
{
yylhsminor
.
yy
260
=
yymsp
[
-
1
].
minor
.
yy26
0
;}
yymsp
[
-
1
].
minor
.
yy
260
=
yylhsminor
.
yy26
0
;
break
;
case
134
:
/* sclp ::= */
{
yymsp
[
1
].
minor
.
yy
1
0
=
0
;}
{
yymsp
[
1
].
minor
.
yy
26
0
=
0
;}
break
;
case
135
:
/* selcollist ::= sclp expr as */
{
yylhsminor
.
yy
10
=
tSQLExprListAppend
(
yymsp
[
-
2
].
minor
.
yy10
,
yymsp
[
-
1
].
minor
.
yy2
,
yymsp
[
0
].
minor
.
yy0
.
n
?&
yymsp
[
0
].
minor
.
yy0
:
0
);
yylhsminor
.
yy
260
=
tSQLExprListAppend
(
yymsp
[
-
2
].
minor
.
yy260
,
yymsp
[
-
1
].
minor
.
yy500
,
yymsp
[
0
].
minor
.
yy0
.
n
?&
yymsp
[
0
].
minor
.
yy0
:
0
);
}
yymsp
[
-
2
].
minor
.
yy
10
=
yylhsminor
.
yy1
0
;
yymsp
[
-
2
].
minor
.
yy
260
=
yylhsminor
.
yy26
0
;
break
;
case
136
:
/* selcollist ::= sclp STAR */
{
tSQLExpr
*
pNode
=
tSQLExprIdValueCreate
(
NULL
,
TK_ALL
);
yylhsminor
.
yy
10
=
tSQLExprListAppend
(
yymsp
[
-
1
].
minor
.
yy1
0
,
pNode
,
0
);
yylhsminor
.
yy
260
=
tSQLExprListAppend
(
yymsp
[
-
1
].
minor
.
yy26
0
,
pNode
,
0
);
}
yymsp
[
-
1
].
minor
.
yy
10
=
yylhsminor
.
yy1
0
;
yymsp
[
-
1
].
minor
.
yy
260
=
yylhsminor
.
yy26
0
;
break
;
case
137
:
/* as ::= AS ids */
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
...
...
@@ -2418,15 +2420,15 @@ static void yy_reduce(
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
}
break
;
case
140
:
/* from ::= FROM tablelist */
{
yymsp
[
-
1
].
minor
.
yy
456
=
yymsp
[
0
].
minor
.
yy456
;}
{
yymsp
[
-
1
].
minor
.
yy
322
=
yymsp
[
0
].
minor
.
yy322
;}
break
;
case
141
:
/* tablelist ::= ids cpxName */
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yylhsminor
.
yy
456
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);}
yymsp
[
-
1
].
minor
.
yy
456
=
yylhsminor
.
yy456
;
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yylhsminor
.
yy
322
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);}
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
142
:
/* tablelist ::= tablelist COMMA ids cpxName */
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yylhsminor
.
yy
456
=
tVariantListAppendToken
(
yymsp
[
-
3
].
minor
.
yy456
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
}
yymsp
[
-
3
].
minor
.
yy
456
=
yylhsminor
.
yy456
;
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yylhsminor
.
yy
322
=
tVariantListAppendToken
(
yymsp
[
-
3
].
minor
.
yy322
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
}
yymsp
[
-
3
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
143
:
/* tmvar ::= VARIABLE */
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;}
...
...
@@ -2441,7 +2443,7 @@ static void yy_reduce(
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
yymsp
[
1
].
minor
.
yy0
.
z
=
NULL
;
yymsp
[
1
].
minor
.
yy0
.
type
=
0
;
}
break
;
case
146
:
/* fill_opt ::= */
{
yymsp
[
1
].
minor
.
yy
456
=
0
;
}
{
yymsp
[
1
].
minor
.
yy
322
=
0
;
}
break
;
case
147
:
/* fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
...
...
@@ -2449,223 +2451,223 @@ static void yy_reduce(
toTSDBType
(
yymsp
[
-
3
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
A
,
&
yymsp
[
-
3
].
minor
.
yy0
);
tVariantListInsert
(
yymsp
[
-
1
].
minor
.
yy
456
,
&
A
,
-
1
,
0
);
yymsp
[
-
5
].
minor
.
yy
456
=
yymsp
[
-
1
].
minor
.
yy456
;
tVariantListInsert
(
yymsp
[
-
1
].
minor
.
yy
322
,
&
A
,
-
1
,
0
);
yymsp
[
-
5
].
minor
.
yy
322
=
yymsp
[
-
1
].
minor
.
yy322
;
}
break
;
case
148
:
/* fill_opt ::= FILL LP ID RP */
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
3
].
minor
.
yy
456
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
yymsp
[
-
3
].
minor
.
yy
322
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
}
break
;
case
151
:
/* orderby_opt ::= */
case
159
:
/* groupby_opt ::= */
yytestcase
(
yyruleno
==
159
);
{
yymsp
[
1
].
minor
.
yy
456
=
0
;}
{
yymsp
[
1
].
minor
.
yy
322
=
0
;}
break
;
case
152
:
/* orderby_opt ::= ORDER BY sortlist */
case
160
:
/* groupby_opt ::= GROUP BY grouplist */
yytestcase
(
yyruleno
==
160
);
{
yymsp
[
-
2
].
minor
.
yy
456
=
yymsp
[
0
].
minor
.
yy456
;}
{
yymsp
[
-
2
].
minor
.
yy
322
=
yymsp
[
0
].
minor
.
yy322
;}
break
;
case
153
:
/* sortlist ::= sortlist COMMA item sortorder */
{
yylhsminor
.
yy
456
=
tVariantListAppend
(
yymsp
[
-
3
].
minor
.
yy456
,
&
yymsp
[
-
1
].
minor
.
yy442
,
yymsp
[
0
].
minor
.
yy196
);
yylhsminor
.
yy
322
=
tVariantListAppend
(
yymsp
[
-
3
].
minor
.
yy322
,
&
yymsp
[
-
1
].
minor
.
yy518
,
yymsp
[
0
].
minor
.
yy150
);
}
yymsp
[
-
3
].
minor
.
yy
456
=
yylhsminor
.
yy456
;
yymsp
[
-
3
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
154
:
/* sortlist ::= item sortorder */
{
yylhsminor
.
yy
456
=
tVariantListAppend
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy442
,
yymsp
[
0
].
minor
.
yy196
);
yylhsminor
.
yy
322
=
tVariantListAppend
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy518
,
yymsp
[
0
].
minor
.
yy150
);
}
yymsp
[
-
1
].
minor
.
yy
456
=
yylhsminor
.
yy456
;
yymsp
[
-
1
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
155
:
/* item ::= ids cpxName */
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
tVariantCreate
(
&
yylhsminor
.
yy
442
,
&
yymsp
[
-
1
].
minor
.
yy0
);
tVariantCreate
(
&
yylhsminor
.
yy
518
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
yymsp
[
-
1
].
minor
.
yy
442
=
yylhsminor
.
yy442
;
yymsp
[
-
1
].
minor
.
yy
518
=
yylhsminor
.
yy518
;
break
;
case
156
:
/* sortorder ::= ASC */
{
yymsp
[
0
].
minor
.
yy1
96
=
TSDB_ORDER_ASC
;
}
{
yymsp
[
0
].
minor
.
yy1
50
=
TSDB_ORDER_ASC
;
}
break
;
case
157
:
/* sortorder ::= DESC */
{
yymsp
[
0
].
minor
.
yy1
96
=
TSDB_ORDER_DESC
;}
{
yymsp
[
0
].
minor
.
yy1
50
=
TSDB_ORDER_DESC
;}
break
;
case
158
:
/* sortorder ::= */
{
yymsp
[
1
].
minor
.
yy1
96
=
TSDB_ORDER_ASC
;}
{
yymsp
[
1
].
minor
.
yy1
50
=
TSDB_ORDER_ASC
;}
break
;
case
161
:
/* grouplist ::= grouplist COMMA item */
{
yylhsminor
.
yy
456
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy456
,
&
yymsp
[
0
].
minor
.
yy442
,
-
1
);
yylhsminor
.
yy
322
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy322
,
&
yymsp
[
0
].
minor
.
yy518
,
-
1
);
}
yymsp
[
-
2
].
minor
.
yy
456
=
yylhsminor
.
yy456
;
yymsp
[
-
2
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
162
:
/* grouplist ::= item */
{
yylhsminor
.
yy
456
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy442
,
-
1
);
yylhsminor
.
yy
322
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy518
,
-
1
);
}
yymsp
[
0
].
minor
.
yy
456
=
yylhsminor
.
yy456
;
yymsp
[
0
].
minor
.
yy
322
=
yylhsminor
.
yy322
;
break
;
case
163
:
/* having_opt ::= */
case
173
:
/* where_opt ::= */
yytestcase
(
yyruleno
==
173
);
case
209
:
/* expritem ::= */
yytestcase
(
yyruleno
==
209
);
{
yymsp
[
1
].
minor
.
yy
2
=
0
;}
{
yymsp
[
1
].
minor
.
yy
500
=
0
;}
break
;
case
164
:
/* having_opt ::= HAVING expr */
case
174
:
/* where_opt ::= WHERE expr */
yytestcase
(
yyruleno
==
174
);
{
yymsp
[
-
1
].
minor
.
yy
2
=
yymsp
[
0
].
minor
.
yy2
;}
{
yymsp
[
-
1
].
minor
.
yy
500
=
yymsp
[
0
].
minor
.
yy500
;}
break
;
case
165
:
/* limit_opt ::= */
case
169
:
/* slimit_opt ::= */
yytestcase
(
yyruleno
==
169
);
{
yymsp
[
1
].
minor
.
yy2
30
.
limit
=
-
1
;
yymsp
[
1
].
minor
.
yy230
.
offset
=
0
;}
{
yymsp
[
1
].
minor
.
yy2
84
.
limit
=
-
1
;
yymsp
[
1
].
minor
.
yy284
.
offset
=
0
;}
break
;
case
166
:
/* limit_opt ::= LIMIT signed */
case
170
:
/* slimit_opt ::= SLIMIT signed */
yytestcase
(
yyruleno
==
170
);
{
yymsp
[
-
1
].
minor
.
yy2
30
.
limit
=
yymsp
[
0
].
minor
.
yy373
;
yymsp
[
-
1
].
minor
.
yy230
.
offset
=
0
;}
{
yymsp
[
-
1
].
minor
.
yy2
84
.
limit
=
yymsp
[
0
].
minor
.
yy279
;
yymsp
[
-
1
].
minor
.
yy284
.
offset
=
0
;}
break
;
case
167
:
/* limit_opt ::= LIMIT signed OFFSET signed */
case
171
:
/* slimit_opt ::= SLIMIT signed SOFFSET signed */
yytestcase
(
yyruleno
==
171
);
{
yymsp
[
-
3
].
minor
.
yy2
30
.
limit
=
yymsp
[
-
2
].
minor
.
yy373
;
yymsp
[
-
3
].
minor
.
yy230
.
offset
=
yymsp
[
0
].
minor
.
yy373
;}
{
yymsp
[
-
3
].
minor
.
yy2
84
.
limit
=
yymsp
[
-
2
].
minor
.
yy279
;
yymsp
[
-
3
].
minor
.
yy284
.
offset
=
yymsp
[
0
].
minor
.
yy279
;}
break
;
case
168
:
/* limit_opt ::= LIMIT signed COMMA signed */
case
172
:
/* slimit_opt ::= SLIMIT signed COMMA signed */
yytestcase
(
yyruleno
==
172
);
{
yymsp
[
-
3
].
minor
.
yy2
30
.
limit
=
yymsp
[
0
].
minor
.
yy373
;
yymsp
[
-
3
].
minor
.
yy230
.
offset
=
yymsp
[
-
2
].
minor
.
yy373
;}
{
yymsp
[
-
3
].
minor
.
yy2
84
.
limit
=
yymsp
[
0
].
minor
.
yy279
;
yymsp
[
-
3
].
minor
.
yy284
.
offset
=
yymsp
[
-
2
].
minor
.
yy279
;}
break
;
case
175
:
/* expr ::= LP expr RP */
{
yymsp
[
-
2
].
minor
.
yy
2
=
yymsp
[
-
1
].
minor
.
yy2
;
}
{
yymsp
[
-
2
].
minor
.
yy
500
=
yymsp
[
-
1
].
minor
.
yy500
;
}
break
;
case
176
:
/* expr ::= ID */
{
yylhsminor
.
yy
2
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
0
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
0
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
177
:
/* expr ::= ID DOT ID */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy
2
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
-
2
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy
500
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
-
2
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
178
:
/* expr ::= ID DOT STAR */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy
2
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ALL
);}
yymsp
[
-
2
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy
500
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ALL
);}
yymsp
[
-
2
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
179
:
/* expr ::= INTEGER */
{
yylhsminor
.
yy
2
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
0
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
0
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
180
:
/* expr ::= MINUS INTEGER */
case
181
:
/* expr ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
181
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy
2
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
-
1
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy
500
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
-
1
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
182
:
/* expr ::= FLOAT */
{
yylhsminor
.
yy
2
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
0
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
0
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
183
:
/* expr ::= MINUS FLOAT */
case
184
:
/* expr ::= PLUS FLOAT */
yytestcase
(
yyruleno
==
184
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_FLOAT
;
yylhsminor
.
yy
2
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
-
1
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_FLOAT
;
yylhsminor
.
yy
500
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
-
1
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
185
:
/* expr ::= STRING */
{
yylhsminor
.
yy
2
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
yymsp
[
0
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
yymsp
[
0
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
186
:
/* expr ::= NOW */
{
yylhsminor
.
yy
2
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
yymsp
[
0
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
yymsp
[
0
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
187
:
/* expr ::= VARIABLE */
{
yylhsminor
.
yy
2
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_VARIABLE
);}
yymsp
[
0
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_VARIABLE
);}
yymsp
[
0
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
188
:
/* expr ::= BOOL */
{
yylhsminor
.
yy
2
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_BOOL
);}
yymsp
[
0
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_BOOL
);}
yymsp
[
0
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
189
:
/* expr ::= ID LP exprlist RP */
{
yylhsminor
.
yy
2
=
tSQLExprCreateFunction
(
yymsp
[
-
1
].
minor
.
yy1
0
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
yylhsminor
.
yy
500
=
tSQLExprCreateFunction
(
yymsp
[
-
1
].
minor
.
yy26
0
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
yymsp
[
-
3
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
yymsp
[
-
3
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
190
:
/* expr ::= ID LP STAR RP */
{
yylhsminor
.
yy
2
=
tSQLExprCreateFunction
(
NULL
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
yylhsminor
.
yy
500
=
tSQLExprCreateFunction
(
NULL
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
yymsp
[
-
3
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
yymsp
[
-
3
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
191
:
/* expr ::= expr AND expr */
{
yylhsminor
.
yy
2
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy2
,
yymsp
[
0
].
minor
.
yy2
,
TK_AND
);}
yymsp
[
-
2
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy500
,
yymsp
[
0
].
minor
.
yy500
,
TK_AND
);}
yymsp
[
-
2
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
192
:
/* expr ::= expr OR expr */
{
yylhsminor
.
yy
2
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy2
,
yymsp
[
0
].
minor
.
yy2
,
TK_OR
);
}
yymsp
[
-
2
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy500
,
yymsp
[
0
].
minor
.
yy500
,
TK_OR
);
}
yymsp
[
-
2
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
193
:
/* expr ::= expr LT expr */
{
yylhsminor
.
yy
2
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy2
,
yymsp
[
0
].
minor
.
yy2
,
TK_LT
);}
yymsp
[
-
2
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy500
,
yymsp
[
0
].
minor
.
yy500
,
TK_LT
);}
yymsp
[
-
2
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
194
:
/* expr ::= expr GT expr */
{
yylhsminor
.
yy
2
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy2
,
yymsp
[
0
].
minor
.
yy2
,
TK_GT
);}
yymsp
[
-
2
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy500
,
yymsp
[
0
].
minor
.
yy500
,
TK_GT
);}
yymsp
[
-
2
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
195
:
/* expr ::= expr LE expr */
{
yylhsminor
.
yy
2
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy2
,
yymsp
[
0
].
minor
.
yy2
,
TK_LE
);}
yymsp
[
-
2
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy500
,
yymsp
[
0
].
minor
.
yy500
,
TK_LE
);}
yymsp
[
-
2
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
196
:
/* expr ::= expr GE expr */
{
yylhsminor
.
yy
2
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy2
,
yymsp
[
0
].
minor
.
yy2
,
TK_GE
);}
yymsp
[
-
2
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy500
,
yymsp
[
0
].
minor
.
yy500
,
TK_GE
);}
yymsp
[
-
2
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
197
:
/* expr ::= expr NE expr */
{
yylhsminor
.
yy
2
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy2
,
yymsp
[
0
].
minor
.
yy2
,
TK_NE
);}
yymsp
[
-
2
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy500
,
yymsp
[
0
].
minor
.
yy500
,
TK_NE
);}
yymsp
[
-
2
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
198
:
/* expr ::= expr EQ expr */
{
yylhsminor
.
yy
2
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy2
,
yymsp
[
0
].
minor
.
yy2
,
TK_EQ
);}
yymsp
[
-
2
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy500
,
yymsp
[
0
].
minor
.
yy500
,
TK_EQ
);}
yymsp
[
-
2
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
199
:
/* expr ::= expr PLUS expr */
{
yylhsminor
.
yy
2
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy2
,
yymsp
[
0
].
minor
.
yy2
,
TK_PLUS
);
}
yymsp
[
-
2
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy500
,
yymsp
[
0
].
minor
.
yy500
,
TK_PLUS
);
}
yymsp
[
-
2
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
200
:
/* expr ::= expr MINUS expr */
{
yylhsminor
.
yy
2
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy2
,
yymsp
[
0
].
minor
.
yy2
,
TK_MINUS
);
}
yymsp
[
-
2
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy500
,
yymsp
[
0
].
minor
.
yy500
,
TK_MINUS
);
}
yymsp
[
-
2
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
201
:
/* expr ::= expr STAR expr */
{
yylhsminor
.
yy
2
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy2
,
yymsp
[
0
].
minor
.
yy2
,
TK_STAR
);
}
yymsp
[
-
2
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy500
,
yymsp
[
0
].
minor
.
yy500
,
TK_STAR
);
}
yymsp
[
-
2
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
202
:
/* expr ::= expr SLASH expr */
{
yylhsminor
.
yy
2
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy2
,
yymsp
[
0
].
minor
.
yy2
,
TK_DIVIDE
);}
yymsp
[
-
2
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy500
,
yymsp
[
0
].
minor
.
yy500
,
TK_DIVIDE
);}
yymsp
[
-
2
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
203
:
/* expr ::= expr REM expr */
{
yylhsminor
.
yy
2
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy2
,
yymsp
[
0
].
minor
.
yy2
,
TK_REM
);
}
yymsp
[
-
2
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy500
,
yymsp
[
0
].
minor
.
yy500
,
TK_REM
);
}
yymsp
[
-
2
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
204
:
/* expr ::= expr LIKE expr */
{
yylhsminor
.
yy
2
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy2
,
yymsp
[
0
].
minor
.
yy2
,
TK_LIKE
);
}
yymsp
[
-
2
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy500
,
yymsp
[
0
].
minor
.
yy500
,
TK_LIKE
);
}
yymsp
[
-
2
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
205
:
/* expr ::= expr IN LP exprlist RP */
{
yylhsminor
.
yy
2
=
tSQLExprCreate
(
yymsp
[
-
4
].
minor
.
yy2
,
(
tSQLExpr
*
)
yymsp
[
-
1
].
minor
.
yy1
0
,
TK_IN
);
}
yymsp
[
-
4
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
tSQLExprCreate
(
yymsp
[
-
4
].
minor
.
yy500
,
(
tSQLExpr
*
)
yymsp
[
-
1
].
minor
.
yy26
0
,
TK_IN
);
}
yymsp
[
-
4
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
206
:
/* exprlist ::= exprlist COMMA expritem */
{
yylhsminor
.
yy
10
=
tSQLExprListAppend
(
yymsp
[
-
2
].
minor
.
yy10
,
yymsp
[
0
].
minor
.
yy2
,
0
);}
yymsp
[
-
2
].
minor
.
yy
10
=
yylhsminor
.
yy1
0
;
{
yylhsminor
.
yy
260
=
tSQLExprListAppend
(
yymsp
[
-
2
].
minor
.
yy260
,
yymsp
[
0
].
minor
.
yy500
,
0
);}
yymsp
[
-
2
].
minor
.
yy
260
=
yylhsminor
.
yy26
0
;
break
;
case
207
:
/* exprlist ::= expritem */
{
yylhsminor
.
yy
10
=
tSQLExprListAppend
(
0
,
yymsp
[
0
].
minor
.
yy2
,
0
);}
yymsp
[
0
].
minor
.
yy
10
=
yylhsminor
.
yy1
0
;
{
yylhsminor
.
yy
260
=
tSQLExprListAppend
(
0
,
yymsp
[
0
].
minor
.
yy500
,
0
);}
yymsp
[
0
].
minor
.
yy
260
=
yylhsminor
.
yy26
0
;
break
;
case
208
:
/* expritem ::= expr */
{
yylhsminor
.
yy
2
=
yymsp
[
0
].
minor
.
yy2
;}
yymsp
[
0
].
minor
.
yy
2
=
yylhsminor
.
yy2
;
{
yylhsminor
.
yy
500
=
yymsp
[
0
].
minor
.
yy500
;}
yymsp
[
0
].
minor
.
yy
500
=
yylhsminor
.
yy500
;
break
;
case
210
:
/* cmd ::= RESET QUERY CACHE */
{
setDCLSQLElems
(
pInfo
,
TSDB_SQL_RESET_CACHE
,
0
);}
...
...
@@ -2673,7 +2675,7 @@ static void yy_reduce(
case
211
:
/* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableSQL
*
pAlterTable
=
tAlterTableSQLElems
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
503
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
);
SAlterTableSQL
*
pAlterTable
=
tAlterTableSQLElems
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
369
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
);
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
...
...
@@ -2691,7 +2693,7 @@ static void yy_reduce(
case
213
:
/* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableSQL
*
pAlterTable
=
tAlterTableSQLElems
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
503
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
);
SAlterTableSQL
*
pAlterTable
=
tAlterTableSQLElems
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
369
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
);
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
...
...
@@ -2726,7 +2728,7 @@ static void yy_reduce(
toTSDBType
(
yymsp
[
-
2
].
minor
.
yy0
.
type
);
tVariantList
*
A
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
-
1
);
A
=
tVariantListAppend
(
A
,
&
yymsp
[
0
].
minor
.
yy
442
,
-
1
);
A
=
tVariantListAppend
(
A
,
&
yymsp
[
0
].
minor
.
yy
518
,
-
1
);
SAlterTableSQL
*
pAlterTable
=
tAlterTableSQLElems
(
&
yymsp
[
-
6
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_UPDATE_TAG_VAL
);
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
...
...
tests/examples/JDBC/springbootdemo/readme.md
浏览文件 @
dc09cd39
...
...
@@ -14,7 +14,7 @@ spring.datasource.druid.max-active=5
# max wait time for get connection, ms
spring.datasource.druid.max-wait
=
60000
spring.datasource.druid.validation-query
=
describe log.dn
spring.datasource.druid.validation-query
=
select server_status();
spring.datasource.druid.validation-query-timeout
=
5000
spring.datasource.druid.test-on-borrow
=
false
spring.datasource.druid.test-on-return
=
false
...
...
tests/examples/JDBC/springbootdemo/src/main/resources/application.properties
浏览文件 @
dc09cd39
...
...
@@ -10,7 +10,7 @@ spring.datasource.druid.max-active=5
# max wait time for get connection, ms
spring.datasource.druid.max-wait
=
60000
spring.datasource.druid.validation-query
=
describe log.dn
spring.datasource.druid.validation-query
=
select server_status();
spring.datasource.druid.validation-query-timeout
=
5000
spring.datasource.druid.test-on-borrow
=
false
spring.datasource.druid.test-on-return
=
false
...
...
@@ -23,4 +23,4 @@ spring.datasource.druid.max-evictable-idle-time-millis=900000
#mybatis
mybatis.mapper-locations
=
classpath:mapper/*.xml
logging.level.com.taosdata.jdbc.springbootdemo.dao
=
debug
\ No newline at end of file
logging.level.com.taosdata.jdbc.springbootdemo.dao
=
debug
tests/pytest/fulltest.sh
浏览文件 @
dc09cd39
...
...
@@ -9,6 +9,7 @@ python3 ./test.py $1 -f insert/smallint.py
python3 ./test.py
$1
-f
insert/tinyint.py
python3 ./test.py
$1
-f
insert/date.py
python3 ./test.py
$1
-f
insert/binary.py
python3 ./test.py
$1
-f
insert/nchar.py
python3 ./test.py
$1
-f
table/column_name.py
python3 ./test.py
$1
-f
table/column_num.py
...
...
tests/pytest/insert/nchar.py
0 → 100644
浏览文件 @
dc09cd39
###################################################################
# Copyright (c) 2016 by TAOS Technologies, Inc.
# All rights reserved.
#
# This file is proprietary and confidential to TAOS Technologies.
# No part of this file may be reproduced, stored, transmitted,
# disclosed or used in any form or by any means other than as
# expressly provided by the written permission from Jianhui Tao
#
###################################################################
# -*- coding: utf-8 -*-
import
sys
from
util.log
import
*
from
util.cases
import
*
from
util.sql
import
*
class
TDTestCase
:
def
init
(
self
,
conn
):
tdLog
.
debug
(
"start to execute %s"
%
__file__
)
tdSql
.
init
(
conn
.
cursor
())
def
run
(
self
):
tdSql
.
prepare
()
tdSql
.
execute
(
'create table tb (ts timestamp, col nchar(10))'
)
tdSql
.
execute
(
"insert into tb values (now, 'taosdata')"
)
tdSql
.
query
(
"select * from tb"
)
tdSql
.
checkRows
(
1
)
tdSql
.
checkData
(
0
,
1
,
'taosdata'
)
tdSql
.
execute
(
"insert into tb values (now, '涛思数据')"
)
tdSql
.
query
(
"select * from tb"
)
tdSql
.
checkRows
(
2
)
tdSql
.
checkData
(
1
,
1
,
'涛思数据'
)
def
stop
(
self
):
tdSql
.
close
()
tdLog
.
success
(
"%s successfully executed"
%
__file__
)
tdCases
.
addWindows
(
__file__
,
TDTestCase
())
tdCases
.
addLinux
(
__file__
,
TDTestCase
())
tests/pytest/smoketest.sh
浏览文件 @
dc09cd39
...
...
@@ -23,6 +23,15 @@ sleep 1
python3 ./test.py
$1
-f
insert/tinyint.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
insert/binary.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
insert/date.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
insert/nchar.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
table/column_name.py
python3 ./test.py
-s
$1
...
...
@@ -34,33 +43,130 @@ python3 ./test.py $1 -f table/db_table.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importDataLastTO.py
python3 ./test.py
$1
-f
import_merge/importDataLastTO.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importDataLastT.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importDataTO.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importDataT.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importHeadOverlap.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importHeadPartOverlap.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importHORestart.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importHPORestart.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importHRestart.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importLastSub.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock1HO.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock1HPO.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock1H.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock1S.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock1Sub.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock1TO.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock1TPO.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock1T.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock2HO.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock2HPO.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock2H.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock2S.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock2Sub.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock2TO.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock2TPO.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlock2T.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importBlockbetween.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importCacheFileSub.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importCacheFileTO.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importCacheFileT.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importDataLastSub.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importHead.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/importLastTO.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/import
DataLastT.py
python3 ./test.py
$1
-f
import_merge/import
LastT.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/import
DataTO.py
python3 ./test.py
$1
-f
import_merge/import
Span.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/import
DataT.py
python3 ./test.py
$1
-f
import_merge/import
SRestart.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/import
HeadOverlap.py
python3 ./test.py
$1
-f
import_merge/import
SubRestart.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/import
HeadPartOverlap.py
python3 ./test.py
$1
-f
import_merge/import
TailOverlap.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/import
HORestart.py
python3 ./test.py
$1
-f
import_merge/import
Tail.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/import
HPORestart.py
python3 ./test.py
$1
-f
import_merge/import
TORestart.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/import
HRestart.py
python3 ./test.py
$1
-f
import_merge/import
TPORestart.py
python3 ./test.py
-s
$1
sleep
1
python3 ./test.py
$1
-f
import_merge/import
LastSub.py
python3 ./test.py
$1
-f
import_merge/import
TRestart.py
python3 ./test.py
-s
$1
sleep
1
tests/pytest/util/dnodes.py
浏览文件 @
dc09cd39
...
...
@@ -69,7 +69,7 @@ class TDSimClient:
self
.
cfg
(
"numOfLogLines"
,
"100000000"
)
self
.
cfg
(
"numOfThreadsPerCore"
,
"2.0"
)
self
.
cfg
(
"locale"
,
"en_US.UTF-8"
)
self
.
cfg
(
"charset"
,
"
GBK
"
)
self
.
cfg
(
"charset"
,
"
UTF-8
"
)
self
.
cfg
(
"asyncLog"
,
"0"
)
self
.
cfg
(
"anyIp"
,
"0"
)
self
.
cfg
(
"sdbDebugFlag"
,
"135"
)
...
...
tests/script/unique/db/replica_add12.sim
浏览文件 @
dc09cd39
...
...
@@ -73,9 +73,9 @@ endi
sleep 2000
sql show dnodes
print dnode1 ==> openVnodes: $data
3
_1
print dnode2 ==> openVnodes: $data
3
_2
print dnode3 ==> openVnodes: $data
3
_3
print dnode1 ==> openVnodes: $data
2
_1
print dnode2 ==> openVnodes: $data
2
_2
print dnode3 ==> openVnodes: $data
2
_3
if $data2_1 != 0 then
return -1
...
...
@@ -99,9 +99,9 @@ sleep 10000
print ======== step3
sql show dnodes
print dnode1 ==> openVnodes: $data
3
_1
print dnode2 ==> openVnodes: $data
3
_2
print dnode3 ==> openVnodes: $data
3
_3
print dnode1 ==> openVnodes: $data
2
_1
print dnode2 ==> openVnodes: $data
2
_2
print dnode3 ==> openVnodes: $data
2
_3
if $data2_1 != 0 then
return -1
...
...
tests/script/unique/mnode/mgmt22.sim
浏览文件 @
dc09cd39
...
...
@@ -8,7 +8,8 @@ system sh/cfg.sh -n dnode2 -c numOfMPeers -v 2
system sh/cfg.sh -n dnode3 -c numOfMPeers -v 2
print ============== step1
system sh/exec_up.sh -n dnode1 -s start
system sh/exec_up.sh -n dnode1 -s start -t
sleep 3000
sql connect
sql show mnodes
...
...
@@ -19,7 +20,7 @@ if $data2_1 != master then
endi
print ============== step2
system sh/exec_up.sh -n dnode2 -s start
system sh/exec_up.sh -n dnode2 -s start
-t
sql create dnode $hostname2
$x = 0
...
...
@@ -44,8 +45,12 @@ print ============== step3
sql_error drop dnode $hostname1 -x error1
print should not drop master
system sh/exec_up.sh -n dnode1 -s stop -x SIGINT
system sh/exec_up.sh -n dnode2 -s stop -x SIGINT
return
print ============== step4
system sh/exec_up.sh -n dnode1 -s stop
system sh/exec_up.sh -n dnode1 -s stop
-x SIGINT
sql_error show mnodes
print error of no master
...
...
@@ -78,7 +83,7 @@ if $data2_2 != slave then
endi
print ============== step7
system sh/exec_up.sh -n dnode3 -s start
system sh/exec_up.sh -n dnode3 -s start
-t
sql create dnode $hostname3
sleep 5000
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录