Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
11dd3efd
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
11dd3efd
编写于
11月 21, 2019
作者:
H
hzcheng
提交者:
GitHub
11月 21, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #752 from taosdata/feature/liaohj
Feature/liaohj
上级
8715de7f
24863d6d
变更
19
隐藏空白更改
内联
并排
Showing
19 changed file
with
1693 addition
and
1080 deletion
+1693
-1080
src/client/inc/tscUtil.h
src/client/inc/tscUtil.h
+4
-2
src/client/inc/tsclient.h
src/client/inc/tsclient.h
+6
-1
src/client/src/tscLocal.c
src/client/src/tscLocal.c
+85
-15
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+76
-10
src/client/src/tscSQLParserImpl.c
src/client/src/tscSQLParserImpl.c
+16
-6
src/client/src/tscServer.c
src/client/src/tscServer.c
+19
-0
src/client/src/tscSql.c
src/client/src/tscSql.c
+3
-3
src/client/src/tscUtil.c
src/client/src/tscUtil.c
+15
-2
src/inc/sql.y
src/inc/sql.y
+18
-11
src/inc/tsql.h
src/inc/tsql.h
+1
-0
src/inc/tsqldef.h
src/inc/tsqldef.h
+1
-2
src/system/detail/inc/vnodeUtil.h
src/system/detail/inc/vnodeUtil.h
+2
-0
src/system/detail/src/vnodeImport.c
src/system/detail/src/vnodeImport.c
+24
-21
src/system/detail/src/vnodeMeter.c
src/system/detail/src/vnodeMeter.c
+8
-2
src/system/detail/src/vnodeShell.c
src/system/detail/src/vnodeShell.c
+5
-30
src/system/detail/src/vnodeStream.c
src/system/detail/src/vnodeStream.c
+4
-7
src/system/detail/src/vnodeUtil.c
src/system/detail/src/vnodeUtil.c
+20
-0
src/util/src/sql.c
src/util/src/sql.c
+1385
-966
src/util/src/ttokenizer.c
src/util/src/ttokenizer.c
+1
-2
未找到文件。
src/client/inc/tscUtil.h
浏览文件 @
11dd3efd
...
@@ -127,7 +127,7 @@ int tscAllocPayload(SSqlCmd* pCmd, int size);
...
@@ -127,7 +127,7 @@ int tscAllocPayload(SSqlCmd* pCmd, int size);
void
tscFieldInfoSetValFromSchema
(
SFieldInfo
*
pFieldInfo
,
int32_t
index
,
SSchema
*
pSchema
);
void
tscFieldInfoSetValFromSchema
(
SFieldInfo
*
pFieldInfo
,
int32_t
index
,
SSchema
*
pSchema
);
void
tscFieldInfoSetValFromField
(
SFieldInfo
*
pFieldInfo
,
int32_t
index
,
TAOS_FIELD
*
pField
);
void
tscFieldInfoSetValFromField
(
SFieldInfo
*
pFieldInfo
,
int32_t
index
,
TAOS_FIELD
*
pField
);
void
tscFieldInfoSetValue
(
SFieldInfo
*
pFieldInfo
,
int32_t
index
,
int8_t
type
,
char
*
name
,
int16_t
bytes
);
void
tscFieldInfoSetValue
(
SFieldInfo
*
pFieldInfo
,
int32_t
index
,
int8_t
type
,
c
onst
c
har
*
name
,
int16_t
bytes
);
void
tscFieldInfoUpdateVisible
(
SFieldInfo
*
pFieldInfo
,
int32_t
index
,
bool
visible
);
void
tscFieldInfoUpdateVisible
(
SFieldInfo
*
pFieldInfo
,
int32_t
index
,
bool
visible
);
void
tscFieldInfoCalOffset
(
SSqlCmd
*
pCmd
);
void
tscFieldInfoCalOffset
(
SSqlCmd
*
pCmd
);
...
@@ -143,7 +143,9 @@ void tscClearFieldInfo(SFieldInfo* pFieldInfo);
...
@@ -143,7 +143,9 @@ void tscClearFieldInfo(SFieldInfo* pFieldInfo);
void
addExprParams
(
SSqlExpr
*
pExpr
,
char
*
argument
,
int32_t
type
,
int32_t
bytes
,
int16_t
tableIndex
);
void
addExprParams
(
SSqlExpr
*
pExpr
,
char
*
argument
,
int32_t
type
,
int32_t
bytes
,
int16_t
tableIndex
);
SSqlExpr
*
tscSqlExprInsert
(
SSqlCmd
*
pCmd
,
int32_t
index
,
int16_t
functionId
,
SColumnIndex
*
pColIndex
,
int16_t
type
,
SSqlExpr
*
tscSqlExprInsert
(
SSqlCmd
*
pCmd
,
int32_t
index
,
int16_t
functionId
,
SColumnIndex
*
pColIndex
,
int16_t
type
,
int16_t
size
,
/*int16_t colId,*/
int16_t
interSize
);
int16_t
size
,
int16_t
interSize
);
SSqlExpr
*
tscSqlExprInsertEmpty
(
SSqlCmd
*
pCmd
,
int32_t
index
,
int16_t
functionId
);
SSqlExpr
*
tscSqlExprUpdate
(
SSqlCmd
*
pCmd
,
int32_t
index
,
int16_t
functionId
,
int16_t
srcColumnIndex
,
int16_t
type
,
SSqlExpr
*
tscSqlExprUpdate
(
SSqlCmd
*
pCmd
,
int32_t
index
,
int16_t
functionId
,
int16_t
srcColumnIndex
,
int16_t
type
,
int16_t
size
);
int16_t
size
);
...
...
src/client/inc/tsclient.h
浏览文件 @
11dd3efd
...
@@ -92,7 +92,12 @@ enum _sql_cmd {
...
@@ -92,7 +92,12 @@ enum _sql_cmd {
*/
*/
TSDB_SQL_RETRIEVE_EMPTY_RESULT
,
TSDB_SQL_RETRIEVE_EMPTY_RESULT
,
TSDB_SQL_RESET_CACHE
,
TSDB_SQL_RESET_CACHE
,
// 40
TSDB_SQL_SERV_STATUS
,
TSDB_SQL_CURRENT_DB
,
TSDB_SQL_SERV_VERSION
,
TSDB_SQL_CLI_VERSION
,
TSDB_SQL_CURRENT_USER
,
TSDB_SQL_CFG_LOCAL
,
TSDB_SQL_CFG_LOCAL
,
TSDB_SQL_MAX
TSDB_SQL_MAX
...
...
src/client/src/tscLocal.c
浏览文件 @
11dd3efd
...
@@ -26,6 +26,8 @@
...
@@ -26,6 +26,8 @@
#include "tschemautil.h"
#include "tschemautil.h"
#include "tsocket.h"
#include "tsocket.h"
static
void
tscSetLocalQueryResult
(
SSqlObj
*
pSql
,
const
char
*
val
,
const
char
*
columnName
,
size_t
valueLength
);
static
int32_t
getToStringLength
(
const
char
*
pData
,
int32_t
length
,
int32_t
type
)
{
static
int32_t
getToStringLength
(
const
char
*
pData
,
int32_t
length
,
int32_t
type
)
{
char
buf
[
512
]
=
{
0
};
char
buf
[
512
]
=
{
0
};
...
@@ -39,7 +41,7 @@ static int32_t getToStringLength(const char *pData, int32_t length, int32_t type
...
@@ -39,7 +41,7 @@ static int32_t getToStringLength(const char *pData, int32_t length, int32_t type
case
TSDB_DATA_TYPE_DOUBLE
:
{
case
TSDB_DATA_TYPE_DOUBLE
:
{
#ifdef _TD_ARM_32_
#ifdef _TD_ARM_32_
double
dv
=
0
;
double
dv
=
0
;
*
(
int64_t
*
)(
&
dv
)
=
*
(
int64_t
*
)
pData
;
*
(
int64_t
*
)(
&
dv
)
=
*
(
int64_t
*
)
pData
;
len
=
sprintf
(
buf
,
"%f"
,
dv
);
len
=
sprintf
(
buf
,
"%f"
,
dv
);
#else
#else
len
=
sprintf
(
buf
,
"%lf"
,
*
(
double
*
)
pData
);
len
=
sprintf
(
buf
,
"%lf"
,
*
(
double
*
)
pData
);
...
@@ -47,12 +49,11 @@ static int32_t getToStringLength(const char *pData, int32_t length, int32_t type
...
@@ -47,12 +49,11 @@ static int32_t getToStringLength(const char *pData, int32_t length, int32_t type
if
(
strncasecmp
(
"nan"
,
buf
,
3
)
==
0
)
{
if
(
strncasecmp
(
"nan"
,
buf
,
3
)
==
0
)
{
len
=
4
;
len
=
4
;
}
}
}
}
break
;
break
;
case
TSDB_DATA_TYPE_FLOAT
:
{
case
TSDB_DATA_TYPE_FLOAT
:
{
#ifdef _TD_ARM_32_
#ifdef _TD_ARM_32_
float
fv
=
0
;
float
fv
=
0
;
*
(
int32_t
*
)(
&
fv
)
=
*
(
int32_t
*
)
pData
;
*
(
int32_t
*
)(
&
fv
)
=
*
(
int32_t
*
)
pData
;
len
=
sprintf
(
buf
,
"%f"
,
fv
);
len
=
sprintf
(
buf
,
"%f"
,
fv
);
#else
#else
len
=
sprintf
(
buf
,
"%f"
,
*
(
float
*
)
pData
);
len
=
sprintf
(
buf
,
"%f"
,
*
(
float
*
)
pData
);
...
@@ -60,8 +61,7 @@ static int32_t getToStringLength(const char *pData, int32_t length, int32_t type
...
@@ -60,8 +61,7 @@ static int32_t getToStringLength(const char *pData, int32_t length, int32_t type
if
(
strncasecmp
(
"nan"
,
buf
,
3
)
==
0
)
{
if
(
strncasecmp
(
"nan"
,
buf
,
3
)
==
0
)
{
len
=
4
;
len
=
4
;
}
}
}
}
break
;
break
;
case
TSDB_DATA_TYPE_TIMESTAMP
:
case
TSDB_DATA_TYPE_TIMESTAMP
:
case
TSDB_DATA_TYPE_BIGINT
:
case
TSDB_DATA_TYPE_BIGINT
:
len
=
sprintf
(
buf
,
"%lld"
,
*
(
int64_t
*
)
pData
);
len
=
sprintf
(
buf
,
"%lld"
,
*
(
int64_t
*
)
pData
);
...
@@ -203,23 +203,21 @@ static int32_t tscSetValueToResObj(SSqlObj *pSql, int32_t rowLen) {
...
@@ -203,23 +203,21 @@ static int32_t tscSetValueToResObj(SSqlObj *pSql, int32_t rowLen) {
case
TSDB_DATA_TYPE_FLOAT
:
{
case
TSDB_DATA_TYPE_FLOAT
:
{
#ifdef _TD_ARM_32_
#ifdef _TD_ARM_32_
float
fv
=
0
;
float
fv
=
0
;
*
(
int32_t
*
)(
&
fv
)
=
*
(
int32_t
*
)
pTagValue
;
*
(
int32_t
*
)(
&
fv
)
=
*
(
int32_t
*
)
pTagValue
;
sprintf
(
target
,
"%f"
,
fv
);
sprintf
(
target
,
"%f"
,
fv
);
#else
#else
sprintf
(
target
,
"%f"
,
*
(
float
*
)
pTagValue
);
sprintf
(
target
,
"%f"
,
*
(
float
*
)
pTagValue
);
#endif
#endif
}
}
break
;
break
;
case
TSDB_DATA_TYPE_DOUBLE
:
{
case
TSDB_DATA_TYPE_DOUBLE
:
{
#ifdef _TD_ARM_32_
#ifdef _TD_ARM_32_
double
dv
=
0
;
double
dv
=
0
;
*
(
int64_t
*
)(
&
dv
)
=
*
(
int64_t
*
)
pTagValue
;
*
(
int64_t
*
)(
&
dv
)
=
*
(
int64_t
*
)
pTagValue
;
sprintf
(
target
,
"%lf"
,
dv
);
sprintf
(
target
,
"%lf"
,
dv
);
#else
#else
sprintf
(
target
,
"%lf"
,
*
(
double
*
)
pTagValue
);
sprintf
(
target
,
"%lf"
,
*
(
double
*
)
pTagValue
);
#endif
#endif
}
}
break
;
break
;
case
TSDB_DATA_TYPE_TINYINT
:
case
TSDB_DATA_TYPE_TINYINT
:
sprintf
(
target
,
"%d"
,
*
(
int8_t
*
)
pTagValue
);
sprintf
(
target
,
"%d"
,
*
(
int8_t
*
)
pTagValue
);
break
;
break
;
...
@@ -391,6 +389,68 @@ static int tscProcessQueryTags(SSqlObj *pSql) {
...
@@ -391,6 +389,68 @@ static int tscProcessQueryTags(SSqlObj *pSql) {
}
}
}
}
static
void
tscProcessCurrentUser
(
SSqlObj
*
pSql
)
{
SSqlExpr
*
pExpr
=
tscSqlExprGet
(
&
pSql
->
cmd
,
0
);
tscSetLocalQueryResult
(
pSql
,
pSql
->
pTscObj
->
user
,
pExpr
->
aliasName
,
TSDB_USER_LEN
);
}
static
void
tscProcessCurrentDB
(
SSqlObj
*
pSql
)
{
char
db
[
TSDB_DB_NAME_LEN
+
1
]
=
{
0
};
extractDBName
(
pSql
->
pTscObj
->
db
,
db
);
// no use db is invoked before.
if
(
strlen
(
db
)
==
0
)
{
setNull
(
db
,
TSDB_DATA_TYPE_BINARY
,
TSDB_DB_NAME_LEN
);
}
SSqlExpr
*
pExpr
=
tscSqlExprGet
(
&
pSql
->
cmd
,
0
);
tscSetLocalQueryResult
(
pSql
,
db
,
pExpr
->
aliasName
,
TSDB_DB_NAME_LEN
);
}
static
void
tscProcessServerVer
(
SSqlObj
*
pSql
)
{
const
char
*
v
=
pSql
->
pTscObj
->
sversion
;
SSqlExpr
*
pExpr
=
tscSqlExprGet
(
&
pSql
->
cmd
,
0
);
tscSetLocalQueryResult
(
pSql
,
v
,
pExpr
->
aliasName
,
tListLen
(
pSql
->
pTscObj
->
sversion
));
}
static
void
tscProcessClientVer
(
SSqlObj
*
pSql
)
{
SSqlExpr
*
pExpr
=
tscSqlExprGet
(
&
pSql
->
cmd
,
0
);
tscSetLocalQueryResult
(
pSql
,
version
,
pExpr
->
aliasName
,
strlen
(
version
));
}
static
void
tscProcessServStatus
(
SSqlObj
*
pSql
)
{
STscObj
*
pObj
=
pSql
->
pTscObj
;
if
(
pObj
->
pHb
!=
NULL
)
{
if
(
pObj
->
pHb
->
res
.
code
==
TSDB_CODE_NETWORK_UNAVAIL
)
{
pSql
->
res
.
code
=
TSDB_CODE_NETWORK_UNAVAIL
;
return
;
}
}
else
{
if
(
pSql
->
res
.
code
==
TSDB_CODE_NETWORK_UNAVAIL
)
{
return
;
}
}
SSqlExpr
*
pExpr
=
tscSqlExprGet
(
&
pSql
->
cmd
,
0
);
tscSetLocalQueryResult
(
pSql
,
"1"
,
pExpr
->
aliasName
,
2
);
}
void
tscSetLocalQueryResult
(
SSqlObj
*
pSql
,
const
char
*
val
,
const
char
*
columnName
,
size_t
valueLength
)
{
SSqlCmd
*
pCmd
=
&
pSql
->
cmd
;
SSqlRes
*
pRes
=
&
pSql
->
res
;
pCmd
->
numOfCols
=
1
;
pCmd
->
order
.
order
=
TSQL_SO_ASC
;
tscFieldInfoSetValue
(
&
pCmd
->
fieldsInfo
,
0
,
TSDB_DATA_TYPE_BINARY
,
columnName
,
valueLength
);
tscInitResObjForLocalQuery
(
pSql
,
1
,
valueLength
);
TAOS_FIELD
*
pField
=
tscFieldInfoGetField
(
pCmd
,
0
);
strncpy
(
pRes
->
data
,
val
,
pField
->
bytes
);
}
int
tscProcessLocalCmd
(
SSqlObj
*
pSql
)
{
int
tscProcessLocalCmd
(
SSqlObj
*
pSql
)
{
SSqlCmd
*
pCmd
=
&
pSql
->
cmd
;
SSqlCmd
*
pCmd
=
&
pSql
->
cmd
;
...
@@ -402,13 +462,23 @@ int tscProcessLocalCmd(SSqlObj *pSql) {
...
@@ -402,13 +462,23 @@ int tscProcessLocalCmd(SSqlObj *pSql) {
pSql
->
res
.
code
=
(
uint8_t
)
tscProcessQueryTags
(
pSql
);
pSql
->
res
.
code
=
(
uint8_t
)
tscProcessQueryTags
(
pSql
);
}
else
if
(
pCmd
->
command
==
TSDB_SQL_RETRIEVE_EMPTY_RESULT
)
{
}
else
if
(
pCmd
->
command
==
TSDB_SQL_RETRIEVE_EMPTY_RESULT
)
{
/*
/*
*
pass the qhandle check, in order
to call partial release function to
*
set the qhandle to be 1 in order to pass the qhandle check, and
to call partial release function to
* free allocated resources and remove the SqlObj from linked list
* free allocated resources and remove the SqlObj from
sql query
linked list
*/
*/
pSql
->
res
.
qhandle
=
0x1
;
// pass the qhandle check
pSql
->
res
.
qhandle
=
0x1
;
pSql
->
res
.
numOfRows
=
0
;
pSql
->
res
.
numOfRows
=
0
;
}
else
if
(
pCmd
->
command
==
TSDB_SQL_RESET_CACHE
)
{
}
else
if
(
pCmd
->
command
==
TSDB_SQL_RESET_CACHE
)
{
taosClearDataCache
(
tscCacheHandle
);
taosClearDataCache
(
tscCacheHandle
);
}
else
if
(
pCmd
->
command
==
TSDB_SQL_SERV_VERSION
)
{
tscProcessServerVer
(
pSql
);
}
else
if
(
pCmd
->
command
==
TSDB_SQL_CLI_VERSION
)
{
tscProcessClientVer
(
pSql
);
}
else
if
(
pCmd
->
command
==
TSDB_SQL_CURRENT_USER
)
{
tscProcessCurrentUser
(
pSql
);
}
else
if
(
pCmd
->
command
==
TSDB_SQL_CURRENT_DB
)
{
tscProcessCurrentDB
(
pSql
);
}
else
if
(
pCmd
->
command
==
TSDB_SQL_SERV_STATUS
)
{
tscProcessServStatus
(
pSql
);
}
else
{
}
else
{
pSql
->
res
.
code
=
TSDB_CODE_INVALID_SQL
;
pSql
->
res
.
code
=
TSDB_CODE_INVALID_SQL
;
tscError
(
"%p not support command:%d"
,
pSql
,
pCmd
->
command
);
tscError
(
"%p not support command:%d"
,
pSql
,
pCmd
->
command
);
...
...
src/client/src/tscSQLParser.c
浏览文件 @
11dd3efd
...
@@ -117,7 +117,8 @@ static int32_t optrToString(tSQLExpr* pExpr, char** exprString);
...
@@ -117,7 +117,8 @@ static int32_t optrToString(tSQLExpr* pExpr, char** exprString);
static
SColumnList
getColumnList
(
int32_t
num
,
int16_t
tableIndex
,
int32_t
columnIndex
);
static
SColumnList
getColumnList
(
int32_t
num
,
int16_t
tableIndex
,
int32_t
columnIndex
);
static
int32_t
getMeterIndex
(
SSQLToken
*
pTableToken
,
SSqlCmd
*
pCmd
,
SColumnIndex
*
pIndex
);
static
int32_t
getMeterIndex
(
SSQLToken
*
pTableToken
,
SSqlCmd
*
pCmd
,
SColumnIndex
*
pIndex
);
static
int32_t
doFunctionsCompatibleCheck
(
SSqlObj
*
pSql
);
static
int32_t
doFunctionsCompatibleCheck
(
SSqlObj
*
pSql
);
static
int32_t
doLocalQueryProcess
(
SQuerySQL
*
pQuerySql
,
SSqlCmd
*
pCmd
);
static
int32_t
tscQueryOnlyMetricTags
(
SSqlCmd
*
pCmd
,
bool
*
queryOnMetricTags
)
{
static
int32_t
tscQueryOnlyMetricTags
(
SSqlCmd
*
pCmd
,
bool
*
queryOnMetricTags
)
{
assert
(
QUERY_IS_STABLE_QUERY
(
pCmd
->
type
));
assert
(
QUERY_IS_STABLE_QUERY
(
pCmd
->
type
));
...
@@ -877,7 +878,7 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) {
...
@@ -877,7 +878,7 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) {
case
TSQL_QUERY_METER
:
{
case
TSQL_QUERY_METER
:
{
SQuerySQL
*
pQuerySql
=
pInfo
->
pQueryInfo
;
SQuerySQL
*
pQuerySql
=
pInfo
->
pQueryInfo
;
assert
(
pQuerySql
!=
NULL
&&
pQuerySql
->
from
->
nExpr
>
0
);
assert
(
pQuerySql
!=
NULL
&&
(
pQuerySql
->
from
==
NULL
||
pQuerySql
->
from
->
nExpr
>
0
)
);
const
char
*
msg0
=
"invalid table name"
;
const
char
*
msg0
=
"invalid table name"
;
const
char
*
msg1
=
"table name too long"
;
const
char
*
msg1
=
"table name too long"
;
...
@@ -895,6 +896,19 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) {
...
@@ -895,6 +896,19 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) {
setErrMsg
(
pCmd
,
msg8
);
setErrMsg
(
pCmd
,
msg8
);
return
TSDB_CODE_INVALID_SQL
;
return
TSDB_CODE_INVALID_SQL
;
}
}
/*
* handle the sql expression without from subclause
* select current_database();
* select server_version();
* select client_version();
* select server_state();
*/
if
(
pQuerySql
->
from
==
NULL
)
{
assert
(
pQuerySql
->
fillType
==
NULL
&&
pQuerySql
->
pGroupby
==
NULL
&&
pQuerySql
->
pWhere
==
NULL
&&
pQuerySql
->
pSortOrder
==
NULL
);
return
doLocalQueryProcess
(
pQuerySql
,
pCmd
);
}
if
(
pQuerySql
->
from
->
nExpr
>
TSDB_MAX_JOIN_TABLE_NUM
)
{
if
(
pQuerySql
->
from
->
nExpr
>
TSDB_MAX_JOIN_TABLE_NUM
)
{
setErrMsg
(
pCmd
,
msg7
);
setErrMsg
(
pCmd
,
msg7
);
...
@@ -1120,7 +1134,7 @@ int32_t parseIntervalClause(SSqlCmd* pCmd, SQuerySQL* pQuerySql) {
...
@@ -1120,7 +1134,7 @@ int32_t parseIntervalClause(SSqlCmd* pCmd, SQuerySQL* pQuerySql) {
SMeterMetaInfo
*
pMeterMetaInfo
=
tscGetMeterMetaInfo
(
pCmd
,
0
);
SMeterMetaInfo
*
pMeterMetaInfo
=
tscGetMeterMetaInfo
(
pCmd
,
0
);
if
(
pQuerySql
->
interval
.
type
==
0
)
{
if
(
pQuerySql
->
interval
.
type
==
0
||
pQuerySql
->
interval
.
n
==
0
)
{
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
}
...
@@ -4971,8 +4985,8 @@ int32_t validateFunctionsInIntervalOrGroupbyQuery(SSqlCmd* pCmd) {
...
@@ -4971,8 +4985,8 @@ int32_t validateFunctionsInIntervalOrGroupbyQuery(SSqlCmd* pCmd) {
}
}
typedef
struct
SDNodeDynConfOption
{
typedef
struct
SDNodeDynConfOption
{
char
*
name
;
char
*
name
;
// command name
int32_t
len
;
int32_t
len
;
// name string length
}
SDNodeDynConfOption
;
}
SDNodeDynConfOption
;
int32_t
validateDNodeConfig
(
tDCLSQL
*
pOptions
)
{
int32_t
validateDNodeConfig
(
tDCLSQL
*
pOptions
)
{
...
@@ -4980,7 +4994,7 @@ int32_t validateDNodeConfig(tDCLSQL* pOptions) {
...
@@ -4980,7 +4994,7 @@ int32_t validateDNodeConfig(tDCLSQL* pOptions) {
return
TSDB_CODE_INVALID_SQL
;
return
TSDB_CODE_INVALID_SQL
;
}
}
SDNodeDynConfOption
DNODE_DYNAMIC_CFG_OPTIONS
[
14
]
=
{
const
SDNodeDynConfOption
DNODE_DYNAMIC_CFG_OPTIONS
[
14
]
=
{
{
"resetLog"
,
8
},
{
"resetQueryCache"
,
15
},
{
"dDebugFlag"
,
10
},
{
"rpcDebugFlag"
,
12
},
{
"resetLog"
,
8
},
{
"resetQueryCache"
,
15
},
{
"dDebugFlag"
,
10
},
{
"rpcDebugFlag"
,
12
},
{
"tmrDebugFlag"
,
12
},
{
"cDebugFlag"
,
10
},
{
"uDebugFlag"
,
10
},
{
"mDebugFlag"
,
10
},
{
"tmrDebugFlag"
,
12
},
{
"cDebugFlag"
,
10
},
{
"uDebugFlag"
,
10
},
{
"mDebugFlag"
,
10
},
{
"sdbDebugFlag"
,
12
},
{
"httpDebugFlag"
,
13
},
{
"monitorDebugFlag"
,
16
},
{
"qDebugflag"
,
10
},
{
"sdbDebugFlag"
,
12
},
{
"httpDebugFlag"
,
13
},
{
"monitorDebugFlag"
,
16
},
{
"qDebugflag"
,
10
},
...
@@ -4991,7 +5005,7 @@ int32_t validateDNodeConfig(tDCLSQL* pOptions) {
...
@@ -4991,7 +5005,7 @@ int32_t validateDNodeConfig(tDCLSQL* pOptions) {
if
(
pOptions
->
nTokens
==
2
)
{
if
(
pOptions
->
nTokens
==
2
)
{
// reset log and reset query cache does not need value
// reset log and reset query cache does not need value
for
(
int32_t
i
=
0
;
i
<
2
;
++
i
)
{
for
(
int32_t
i
=
0
;
i
<
2
;
++
i
)
{
SDNodeDynConfOption
*
pOption
=
&
DNODE_DYNAMIC_CFG_OPTIONS
[
i
];
const
SDNodeDynConfOption
*
pOption
=
&
DNODE_DYNAMIC_CFG_OPTIONS
[
i
];
if
((
strncasecmp
(
pOption
->
name
,
pOptionToken
->
z
,
pOptionToken
->
n
)
==
0
)
&&
(
pOption
->
len
==
pOptionToken
->
n
))
{
if
((
strncasecmp
(
pOption
->
name
,
pOptionToken
->
z
,
pOptionToken
->
n
)
==
0
)
&&
(
pOption
->
len
==
pOptionToken
->
n
))
{
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
}
...
@@ -5014,7 +5028,7 @@ int32_t validateDNodeConfig(tDCLSQL* pOptions) {
...
@@ -5014,7 +5028,7 @@ int32_t validateDNodeConfig(tDCLSQL* pOptions) {
}
}
for
(
int32_t
i
=
2
;
i
<
tListLen
(
DNODE_DYNAMIC_CFG_OPTIONS
)
-
1
;
++
i
)
{
for
(
int32_t
i
=
2
;
i
<
tListLen
(
DNODE_DYNAMIC_CFG_OPTIONS
)
-
1
;
++
i
)
{
SDNodeDynConfOption
*
pOption
=
&
DNODE_DYNAMIC_CFG_OPTIONS
[
i
];
const
SDNodeDynConfOption
*
pOption
=
&
DNODE_DYNAMIC_CFG_OPTIONS
[
i
];
if
((
strncasecmp
(
pOption
->
name
,
pOptionToken
->
z
,
pOptionToken
->
n
)
==
0
)
&&
(
pOption
->
len
==
pOptionToken
->
n
))
{
if
((
strncasecmp
(
pOption
->
name
,
pOptionToken
->
z
,
pOptionToken
->
n
)
==
0
)
&&
(
pOption
->
len
==
pOptionToken
->
n
))
{
/* options is valid */
/* options is valid */
...
@@ -5031,8 +5045,10 @@ int32_t validateLocalConfig(tDCLSQL* pOptions) {
...
@@ -5031,8 +5045,10 @@ int32_t validateLocalConfig(tDCLSQL* pOptions) {
return
TSDB_CODE_INVALID_SQL
;
return
TSDB_CODE_INVALID_SQL
;
}
}
SDNodeDynConfOption
LOCAL_DYNAMIC_CFG_OPTIONS
[
6
]
=
{{
"resetLog"
,
8
},
{
"rpcDebugFlag"
,
12
},
{
"tmrDebugFlag"
,
12
},
SDNodeDynConfOption
LOCAL_DYNAMIC_CFG_OPTIONS
[
6
]
=
{
{
"cDebugFlag"
,
10
},
{
"uDebugFlag"
,
10
},
{
"debugFlag"
,
9
}};
{
"resetLog"
,
8
},
{
"rpcDebugFlag"
,
12
},
{
"tmrDebugFlag"
,
12
},
{
"cDebugFlag"
,
10
},
{
"uDebugFlag"
,
10
},
{
"debugFlag"
,
9
}
};
SSQLToken
*
pOptionToken
=
&
pOptions
->
a
[
0
];
SSQLToken
*
pOptionToken
=
&
pOptions
->
a
[
0
];
...
@@ -5686,3 +5702,53 @@ int32_t doFunctionsCompatibleCheck(SSqlObj* pSql) {
...
@@ -5686,3 +5702,53 @@ int32_t doFunctionsCompatibleCheck(SSqlObj* pSql) {
return
checkUpdateTagPrjFunctions
(
pCmd
);
return
checkUpdateTagPrjFunctions
(
pCmd
);
}
}
}
}
int32_t
doLocalQueryProcess
(
SQuerySQL
*
pQuerySql
,
SSqlCmd
*
pCmd
)
{
const
char
*
msg1
=
"only one expression allowed"
;
const
char
*
msg2
=
"invalid expression in select clause"
;
const
char
*
msg3
=
"invalid function"
;
tSQLExprList
*
pExprList
=
pQuerySql
->
pSelection
;
if
(
pExprList
->
nExpr
!=
1
)
{
setErrMsg
(
pCmd
,
msg1
);
return
TSDB_CODE_INVALID_SQL
;
}
tSQLExpr
*
pExpr
=
pExprList
->
a
[
0
].
pNode
;
if
(
pExpr
->
operand
.
z
==
NULL
)
{
setErrMsg
(
pCmd
,
msg2
);
return
TSDB_CODE_INVALID_SQL
;
}
SDNodeDynConfOption
functionsInfo
[
5
]
=
{
{
"database()"
,
10
},
{
"server_version()"
,
16
},
{
"server_status()"
,
15
},
{
"client_version()"
,
16
},
{
"current_user()"
,
14
}
};
int32_t
index
=
-
1
;
for
(
int32_t
i
=
0
;
i
<
tListLen
(
functionsInfo
);
++
i
)
{
if
(
strncasecmp
(
functionsInfo
[
i
].
name
,
pExpr
->
operand
.
z
,
functionsInfo
[
i
].
len
)
==
0
&&
functionsInfo
[
i
].
len
==
pExpr
->
operand
.
n
)
{
index
=
i
;
break
;
}
}
SSqlExpr
*
pExpr1
=
tscSqlExprInsertEmpty
(
pCmd
,
0
,
TSDB_FUNC_TAG_DUMMY
);
if
(
pExprList
->
a
[
0
].
aliasName
!=
NULL
)
{
strncpy
(
pExpr1
->
aliasName
,
pExprList
->
a
[
0
].
aliasName
,
tListLen
(
pExpr1
->
aliasName
));
}
else
{
strncpy
(
pExpr1
->
aliasName
,
functionsInfo
[
index
].
name
,
tListLen
(
pExpr1
->
aliasName
));
}
switch
(
index
)
{
case
0
:
pCmd
->
command
=
TSDB_SQL_CURRENT_DB
;
return
TSDB_CODE_SUCCESS
;
case
1
:
pCmd
->
command
=
TSDB_SQL_SERV_VERSION
;
return
TSDB_CODE_SUCCESS
;
case
2
:
pCmd
->
command
=
TSDB_SQL_SERV_STATUS
;
return
TSDB_CODE_SUCCESS
;
case
3
:
pCmd
->
command
=
TSDB_SQL_CLI_VERSION
;
return
TSDB_CODE_SUCCESS
;
case
4
:
pCmd
->
command
=
TSDB_SQL_CURRENT_USER
;
return
TSDB_CODE_SUCCESS
;
default:
{
setErrMsg
(
pCmd
,
msg3
);
return
TSDB_CODE_INVALID_SQL
;
}
}
}
src/client/src/tscSQLParserImpl.c
浏览文件 @
11dd3efd
...
@@ -500,7 +500,7 @@ void tSQLSetColumnType(TAOS_FIELD *pField, SSQLToken *type) {
...
@@ -500,7 +500,7 @@ void tSQLSetColumnType(TAOS_FIELD *pField, SSQLToken *type) {
SQuerySQL
*
tSetQuerySQLElems
(
SSQLToken
*
pSelectToken
,
tSQLExprList
*
pSelection
,
tVariantList
*
pFrom
,
tSQLExpr
*
pWhere
,
SQuerySQL
*
tSetQuerySQLElems
(
SSQLToken
*
pSelectToken
,
tSQLExprList
*
pSelection
,
tVariantList
*
pFrom
,
tSQLExpr
*
pWhere
,
tVariantList
*
pGroupby
,
tVariantList
*
pSortOrder
,
SSQLToken
*
pInterval
,
tVariantList
*
pGroupby
,
tVariantList
*
pSortOrder
,
SSQLToken
*
pInterval
,
SSQLToken
*
pSliding
,
tVariantList
*
pFill
,
SLimitVal
*
pLimit
,
SLimitVal
*
pGLimit
)
{
SSQLToken
*
pSliding
,
tVariantList
*
pFill
,
SLimitVal
*
pLimit
,
SLimitVal
*
pGLimit
)
{
assert
(
pSelection
!=
NULL
&&
pFrom
!=
NULL
&&
pInterval
!=
NULL
&&
pLimit
!=
NULL
&&
pGLimit
!=
NULL
);
assert
(
pSelection
!=
NULL
);
SQuerySQL
*
pQuery
=
calloc
(
1
,
sizeof
(
SQuerySQL
));
SQuerySQL
*
pQuery
=
calloc
(
1
,
sizeof
(
SQuerySQL
));
pQuery
->
selectToken
=
*
pSelectToken
;
pQuery
->
selectToken
=
*
pSelectToken
;
...
@@ -512,13 +512,23 @@ SQuerySQL *tSetQuerySQLElems(SSQLToken *pSelectToken, tSQLExprList *pSelection,
...
@@ -512,13 +512,23 @@ SQuerySQL *tSetQuerySQLElems(SSQLToken *pSelectToken, tSQLExprList *pSelection,
pQuery
->
pSortOrder
=
pSortOrder
;
pQuery
->
pSortOrder
=
pSortOrder
;
pQuery
->
pWhere
=
pWhere
;
pQuery
->
pWhere
=
pWhere
;
pQuery
->
limit
=
*
pLimit
;
if
(
pLimit
!=
NULL
)
{
pQuery
->
slimit
=
*
pGLimit
;
pQuery
->
limit
=
*
pLimit
;
}
if
(
pGLimit
!=
NULL
)
{
pQuery
->
slimit
=
*
pGLimit
;
}
pQuery
->
interval
=
*
pInterval
;
if
(
pInterval
!=
NULL
)
{
pQuery
->
sliding
=
*
pSliding
;
pQuery
->
interval
=
*
pInterval
;
}
if
(
pSliding
!=
NULL
)
{
pQuery
->
sliding
=
*
pSliding
;
}
pQuery
->
fillType
=
pFill
;
pQuery
->
fillType
=
pFill
;
return
pQuery
;
return
pQuery
;
}
}
...
...
src/client/src/tscServer.c
浏览文件 @
11dd3efd
...
@@ -184,6 +184,15 @@ void tscGetConnToMgmt(SSqlObj *pSql, uint8_t *pCode) {
...
@@ -184,6 +184,15 @@ void tscGetConnToMgmt(SSqlObj *pSql, uint8_t *pCode) {
pSql
->
vnode
=
TSC_MGMT_VNODE
;
pSql
->
vnode
=
TSC_MGMT_VNODE
;
#endif
#endif
}
}
// the pSql->res.code is the previous error(status) code.
if
(
pSql
->
thandle
==
NULL
&&
pSql
->
retry
>=
pSql
->
maxRetry
)
{
if
(
pSql
->
res
.
code
!=
TSDB_CODE_SUCCESS
&&
pSql
->
res
.
code
!=
TSDB_CODE_ACTION_IN_PROGRESS
)
{
*
pCode
=
pSql
->
res
.
code
;
}
tscError
(
"%p reach the max retry:%d, code:%d"
,
pSql
,
pSql
->
retry
,
*
pCode
);
}
}
}
void
tscGetConnToVnode
(
SSqlObj
*
pSql
,
uint8_t
*
pCode
)
{
void
tscGetConnToVnode
(
SSqlObj
*
pSql
,
uint8_t
*
pCode
)
{
...
@@ -442,6 +451,9 @@ void *tscProcessMsgFromServer(char *msg, void *ahandle, void *thandle) {
...
@@ -442,6 +451,9 @@ void *tscProcessMsgFromServer(char *msg, void *ahandle, void *thandle) {
tscTrace
(
"%p it shall be redirected!"
,
pSql
);
tscTrace
(
"%p it shall be redirected!"
,
pSql
);
taosAddConnIntoCache
(
tscConnCache
,
thandle
,
pSql
->
ip
,
pSql
->
vnode
,
pObj
->
user
);
taosAddConnIntoCache
(
tscConnCache
,
thandle
,
pSql
->
ip
,
pSql
->
vnode
,
pObj
->
user
);
pSql
->
thandle
=
NULL
;
pSql
->
thandle
=
NULL
;
// reset the retry times for a new mgmt node
pSql
->
retry
=
0
;
if
(
pCmd
->
command
>
TSDB_SQL_MGMT
)
{
if
(
pCmd
->
command
>
TSDB_SQL_MGMT
)
{
tscProcessMgmtRedirect
(
pSql
,
pMsg
->
content
+
1
);
tscProcessMgmtRedirect
(
pSql
,
pMsg
->
content
+
1
);
...
@@ -3795,7 +3807,14 @@ void tscInitMsgs() {
...
@@ -3795,7 +3807,14 @@ void tscInitMsgs() {
tscProcessMsgRsp
[
TSDB_SQL_SHOW
]
=
tscProcessShowRsp
;
tscProcessMsgRsp
[
TSDB_SQL_SHOW
]
=
tscProcessShowRsp
;
tscProcessMsgRsp
[
TSDB_SQL_RETRIEVE
]
=
tscProcessRetrieveRspFromVnode
;
// rsp handled by same function.
tscProcessMsgRsp
[
TSDB_SQL_RETRIEVE
]
=
tscProcessRetrieveRspFromVnode
;
// rsp handled by same function.
tscProcessMsgRsp
[
TSDB_SQL_DESCRIBE_TABLE
]
=
tscProcessDescribeTableRsp
;
tscProcessMsgRsp
[
TSDB_SQL_DESCRIBE_TABLE
]
=
tscProcessDescribeTableRsp
;
tscProcessMsgRsp
[
TSDB_SQL_RETRIEVE_TAGS
]
=
tscProcessTagRetrieveRsp
;
tscProcessMsgRsp
[
TSDB_SQL_RETRIEVE_TAGS
]
=
tscProcessTagRetrieveRsp
;
tscProcessMsgRsp
[
TSDB_SQL_CURRENT_DB
]
=
tscProcessTagRetrieveRsp
;
tscProcessMsgRsp
[
TSDB_SQL_CURRENT_USER
]
=
tscProcessTagRetrieveRsp
;
tscProcessMsgRsp
[
TSDB_SQL_SERV_VERSION
]
=
tscProcessTagRetrieveRsp
;
tscProcessMsgRsp
[
TSDB_SQL_CLI_VERSION
]
=
tscProcessTagRetrieveRsp
;
tscProcessMsgRsp
[
TSDB_SQL_SERV_STATUS
]
=
tscProcessTagRetrieveRsp
;
tscProcessMsgRsp
[
TSDB_SQL_RETRIEVE_EMPTY_RESULT
]
=
tscProcessEmptyResultRsp
;
tscProcessMsgRsp
[
TSDB_SQL_RETRIEVE_EMPTY_RESULT
]
=
tscProcessEmptyResultRsp
;
tscProcessMsgRsp
[
TSDB_SQL_RETRIEVE_METRIC
]
=
tscProcessRetrieveMetricRsp
;
tscProcessMsgRsp
[
TSDB_SQL_RETRIEVE_METRIC
]
=
tscProcessRetrieveMetricRsp
;
...
...
src/client/src/tscSql.c
浏览文件 @
11dd3efd
...
@@ -246,9 +246,9 @@ int taos_query_imp(STscObj* pObj, SSqlObj* pSql) {
...
@@ -246,9 +246,9 @@ int taos_query_imp(STscObj* pObj, SSqlObj* pSql) {
pRes
->
qhandle
=
0
;
pRes
->
qhandle
=
0
;
pSql
->
thandle
=
NULL
;
pSql
->
thandle
=
NULL
;
if
(
pRes
->
code
!=
TSDB_CODE_SUCCESS
)
return
pRes
->
code
;
if
(
pRes
->
code
==
TSDB_CODE_SUCCESS
)
{
tscDoQuery
(
pSql
);
tscDoQuery
(
pSql
);
}
tscTrace
(
"%p SQL result:%d, %s pObj:%p"
,
pSql
,
pRes
->
code
,
taos_errstr
(
pObj
),
pObj
);
tscTrace
(
"%p SQL result:%d, %s pObj:%p"
,
pSql
,
pRes
->
code
,
taos_errstr
(
pObj
),
pObj
);
if
(
pRes
->
code
!=
TSDB_CODE_SUCCESS
)
{
if
(
pRes
->
code
!=
TSDB_CODE_SUCCESS
)
{
...
...
src/client/src/tscUtil.c
浏览文件 @
11dd3efd
...
@@ -720,7 +720,7 @@ static void evic(SFieldInfo* pFieldInfo, int32_t index) {
...
@@ -720,7 +720,7 @@ static void evic(SFieldInfo* pFieldInfo, int32_t index) {
}
}
}
}
static
void
setValueImpl
(
TAOS_FIELD
*
pField
,
int8_t
type
,
char
*
name
,
int16_t
bytes
)
{
static
void
setValueImpl
(
TAOS_FIELD
*
pField
,
int8_t
type
,
c
onst
c
har
*
name
,
int16_t
bytes
)
{
pField
->
type
=
type
;
pField
->
type
=
type
;
strncpy
(
pField
->
name
,
name
,
TSDB_COL_NAME_LEN
);
strncpy
(
pField
->
name
,
name
,
TSDB_COL_NAME_LEN
);
pField
->
bytes
=
bytes
;
pField
->
bytes
=
bytes
;
...
@@ -764,7 +764,7 @@ void tscFieldInfoUpdateVisible(SFieldInfo* pFieldInfo, int32_t index, bool visib
...
@@ -764,7 +764,7 @@ void tscFieldInfoUpdateVisible(SFieldInfo* pFieldInfo, int32_t index, bool visib
}
}
}
}
void
tscFieldInfoSetValue
(
SFieldInfo
*
pFieldInfo
,
int32_t
index
,
int8_t
type
,
char
*
name
,
int16_t
bytes
)
{
void
tscFieldInfoSetValue
(
SFieldInfo
*
pFieldInfo
,
int32_t
index
,
int8_t
type
,
c
onst
c
har
*
name
,
int16_t
bytes
)
{
ensureSpace
(
pFieldInfo
,
pFieldInfo
->
numOfOutputCols
+
1
);
ensureSpace
(
pFieldInfo
,
pFieldInfo
->
numOfOutputCols
+
1
);
evic
(
pFieldInfo
,
index
);
evic
(
pFieldInfo
,
index
);
...
@@ -896,6 +896,19 @@ static void _exprEvic(SSqlExprInfo* pExprInfo, int32_t index) {
...
@@ -896,6 +896,19 @@ static void _exprEvic(SSqlExprInfo* pExprInfo, int32_t index) {
}
}
}
}
SSqlExpr
*
tscSqlExprInsertEmpty
(
SSqlCmd
*
pCmd
,
int32_t
index
,
int16_t
functionId
)
{
SSqlExprInfo
*
pExprInfo
=
&
pCmd
->
exprsInfo
;
_exprCheckSpace
(
pExprInfo
,
pExprInfo
->
numOfExprs
+
1
);
_exprEvic
(
pExprInfo
,
index
);
SSqlExpr
*
pExpr
=
&
pExprInfo
->
pExprs
[
index
];
pExpr
->
functionId
=
functionId
;
pExprInfo
->
numOfExprs
++
;
return
pExpr
;
}
SSqlExpr
*
tscSqlExprInsert
(
SSqlCmd
*
pCmd
,
int32_t
index
,
int16_t
functionId
,
SColumnIndex
*
pColIndex
,
int16_t
type
,
SSqlExpr
*
tscSqlExprInsert
(
SSqlCmd
*
pCmd
,
int32_t
index
,
int16_t
functionId
,
SColumnIndex
*
pColIndex
,
int16_t
type
,
int16_t
size
,
int16_t
interSize
)
{
int16_t
size
,
int16_t
interSize
)
{
SMeterMetaInfo
*
pMeterMetaInfo
=
tscGetMeterMetaInfo
(
pCmd
,
pColIndex
->
tableIndex
);
SMeterMetaInfo
*
pMeterMetaInfo
=
tscGetMeterMetaInfo
(
pCmd
,
pColIndex
->
tableIndex
);
...
...
src/inc/sql.y
浏览文件 @
11dd3efd
...
@@ -26,7 +26,6 @@
...
@@ -26,7 +26,6 @@
#include <string.h>
#include <string.h>
#include <assert.h>
#include <assert.h>
#include <stdbool.h>
#include <stdbool.h>
#include "tsql.h"
#include "tsql.h"
#include "tutil.h"
#include "tutil.h"
}
}
...
@@ -113,7 +112,7 @@ cmd ::= DROP TABLE ifexists(Y) ids(X) cpxName(Z). {
...
@@ -113,7 +112,7 @@ cmd ::= DROP TABLE ifexists(Y) ids(X) cpxName(Z). {
}
}
cmd ::= DROP DATABASE ifexists(Y) ids(X). { setDCLSQLElems(pInfo, DROP_DATABASE, 2, &X, &Y); }
cmd ::= DROP DATABASE ifexists(Y) ids(X). { setDCLSQLElems(pInfo, DROP_DATABASE, 2, &X, &Y); }
cmd ::= DROP DNODE IP(X). { setDCLSQLElems(pInfo, DROP_DNODE, 1, &X); }
cmd ::= DROP DNODE IP
TOKEN
(X). { setDCLSQLElems(pInfo, DROP_DNODE, 1, &X); }
cmd ::= DROP USER ids(X). { setDCLSQLElems(pInfo, DROP_USER, 1, &X); }
cmd ::= DROP USER ids(X). { setDCLSQLElems(pInfo, DROP_USER, 1, &X); }
cmd ::= DROP ACCOUNT ids(X). { setDCLSQLElems(pInfo, DROP_ACCOUNT, 1, &X); }
cmd ::= DROP ACCOUNT ids(X). { setDCLSQLElems(pInfo, DROP_ACCOUNT, 1, &X); }
...
@@ -129,8 +128,8 @@ cmd ::= DESCRIBE ids(X) cpxName(Y). {
...
@@ -129,8 +128,8 @@ cmd ::= DESCRIBE ids(X) cpxName(Y). {
/////////////////////////////////THE ALTER STATEMENT////////////////////////////////////////
/////////////////////////////////THE ALTER STATEMENT////////////////////////////////////////
cmd ::= ALTER USER ids(X) PASS ids(Y). { setDCLSQLElems(pInfo, ALTER_USER_PASSWD, 2, &X, &Y); }
cmd ::= ALTER USER ids(X) PASS ids(Y). { setDCLSQLElems(pInfo, ALTER_USER_PASSWD, 2, &X, &Y); }
cmd ::= ALTER USER ids(X) PRIVILEGE ids(Y). { setDCLSQLElems(pInfo, ALTER_USER_PRIVILEGES, 2, &X, &Y);}
cmd ::= ALTER USER ids(X) PRIVILEGE ids(Y). { setDCLSQLElems(pInfo, ALTER_USER_PRIVILEGES, 2, &X, &Y);}
cmd ::= ALTER DNODE IP(X) ids(Y). { setDCLSQLElems(pInfo, ALTER_DNODE, 2, &X, &Y); }
cmd ::= ALTER DNODE IP
TOKEN
(X) ids(Y). { setDCLSQLElems(pInfo, ALTER_DNODE, 2, &X, &Y); }
cmd ::= ALTER DNODE IP(X) ids(Y) ids(Z). { setDCLSQLElems(pInfo, ALTER_DNODE, 3, &X, &Y, &Z); }
cmd ::= ALTER DNODE IP
TOKEN
(X) ids(Y) ids(Z). { setDCLSQLElems(pInfo, ALTER_DNODE, 3, &X, &Y, &Z); }
cmd ::= ALTER LOCAL ids(X). { setDCLSQLElems(pInfo, ALTER_LOCAL, 1, &X); }
cmd ::= ALTER LOCAL ids(X). { setDCLSQLElems(pInfo, ALTER_LOCAL, 1, &X); }
cmd ::= ALTER LOCAL ids(X) ids(Y). { setDCLSQLElems(pInfo, ALTER_LOCAL, 2, &X, &Y); }
cmd ::= ALTER LOCAL ids(X) ids(Y). { setDCLSQLElems(pInfo, ALTER_LOCAL, 2, &X, &Y); }
cmd ::= ALTER DATABASE ids(X) alter_db_optr(Y). { SSQLToken t = {0}; setCreateDBSQL(pInfo, ALTER_DATABASE, &X, &Y, &t);}
cmd ::= ALTER DATABASE ids(X) alter_db_optr(Y). { SSQLToken t = {0}; setCreateDBSQL(pInfo, ALTER_DATABASE, &X, &Y, &t);}
...
@@ -155,7 +154,7 @@ ifnotexists(X) ::= . {X.n = 0;}
...
@@ -155,7 +154,7 @@ ifnotexists(X) ::= . {X.n = 0;}
/////////////////////////////////THE CREATE STATEMENT///////////////////////////////////////
/////////////////////////////////THE CREATE STATEMENT///////////////////////////////////////
//create option for dnode/db/user/account
//create option for dnode/db/user/account
cmd ::= CREATE DNODE IP(X). { setDCLSQLElems(pInfo, CREATE_DNODE, 1, &X);}
cmd ::= CREATE DNODE IP
TOKEN
(X). { setDCLSQLElems(pInfo, CREATE_DNODE, 1, &X);}
cmd ::= CREATE ACCOUNT ids(X) PASS ids(Y) acct_optr(Z).
cmd ::= CREATE ACCOUNT ids(X) PASS ids(Y) acct_optr(Z).
{ setCreateAcctSQL(pInfo, CREATE_ACCOUNT, &X, &Y, &Z);}
{ setCreateAcctSQL(pInfo, CREATE_ACCOUNT, &X, &Y, &Z);}
cmd ::= CREATE DATABASE ifnotexists(Z) ids(X) db_optr(Y). { setCreateDBSQL(pInfo, CREATE_DATABASE, &X, &Y, &Z);}
cmd ::= CREATE DATABASE ifnotexists(Z) ids(X) db_optr(Y). { setCreateDBSQL(pInfo, CREATE_DATABASE, &X, &Y, &Z);}
...
@@ -350,6 +349,14 @@ select(A) ::= SELECT(T) selcollist(W) from(X) where_opt(Y) interval_opt(K) fill_
...
@@ -350,6 +349,14 @@ select(A) ::= SELECT(T) selcollist(W) from(X) where_opt(Y) interval_opt(K) fill_
A = tSetQuerySQLElems(&T, W, X, Y, P, Z, &K, &S, F, &L, &G);
A = tSetQuerySQLElems(&T, W, X, Y, P, Z, &K, &S, F, &L, &G);
}
}
// Support for the SQL exprssion without from & where subclauses, e.g.,
// select current_database(),
// select server_version(), select client_version(),
// select server_state();
select(A) ::= SELECT(T) selcollist(W). {
A = tSetQuerySQLElems(&T, W, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
}
// selcollist is a list of expressions that are to become the return
// selcollist is a list of expressions that are to become the return
// values of the SELECT statement. The "*" in statements like
// values of the SELECT statement. The "*" in statements like
// "SELECT * FROM ..." is encoded as a special expression with an opcode of TK_ALL.
// "SELECT * FROM ..." is encoded as a special expression with an opcode of TK_ALL.
...
@@ -392,7 +399,7 @@ tmvar(A) ::= VARIABLE(X). {A = X;}
...
@@ -392,7 +399,7 @@ tmvar(A) ::= VARIABLE(X). {A = X;}
%type interval_opt {SSQLToken}
%type interval_opt {SSQLToken}
interval_opt(N) ::= INTERVAL LP tmvar(E) RP. {N = E; }
interval_opt(N) ::= INTERVAL LP tmvar(E) RP. {N = E; }
interval_opt(N) ::= . {N.n = 0; }
interval_opt(N) ::= . {N.n = 0;
N.z = NULL; N.type = 0;
}
%type fill_opt {tVariantList*}
%type fill_opt {tVariantList*}
%destructor fill_opt {tVariantListDestroy($$);}
%destructor fill_opt {tVariantListDestroy($$);}
...
@@ -413,7 +420,7 @@ fill_opt(N) ::= FILL LP ID(Y) RP. {
...
@@ -413,7 +420,7 @@ fill_opt(N) ::= FILL LP ID(Y) RP. {
%type sliding_opt {SSQLToken}
%type sliding_opt {SSQLToken}
sliding_opt(K) ::= SLIDING LP tmvar(E) RP. {K = E; }
sliding_opt(K) ::= SLIDING LP tmvar(E) RP. {K = E; }
sliding_opt(K) ::= . {K.n = 0; }
sliding_opt(K) ::= . {K.n = 0;
K.z = NULL; K.type = 0;
}
%type orderby_opt {tVariantList*}
%type orderby_opt {tVariantList*}
%destructor orderby_opt {tVariantListDestroy($$);}
%destructor orderby_opt {tVariantListDestroy($$);}
...
@@ -642,12 +649,12 @@ cmd ::= ALTER TABLE ids(X) cpxName(F) SET TAG ids(Y) EQ tagitem(Z). {
...
@@ -642,12 +649,12 @@ cmd ::= ALTER TABLE ids(X) cpxName(F) SET TAG ids(Y) EQ tagitem(Z). {
}
}
////////////////////////////////////////kill statement///////////////////////////////////////
////////////////////////////////////////kill statement///////////////////////////////////////
cmd ::= KILL CONNECTION IP(X) COLON(Z) INTEGER(Y). {X.n += (Z.n + Y.n); setDCLSQLElems(pInfo, KILL_CONNECTION, 1, &X);}
cmd ::= KILL CONNECTION IP
TOKEN
(X) COLON(Z) INTEGER(Y). {X.n += (Z.n + Y.n); setDCLSQLElems(pInfo, KILL_CONNECTION, 1, &X);}
cmd ::= KILL STREAM IP(X) COLON(Z) INTEGER(Y) COLON(K) INTEGER(F). {X.n += (Z.n + Y.n + K.n + F.n); setDCLSQLElems(pInfo, KILL_STREAM, 1, &X);}
cmd ::= KILL STREAM IP
TOKEN
(X) COLON(Z) INTEGER(Y) COLON(K) INTEGER(F). {X.n += (Z.n + Y.n + K.n + F.n); setDCLSQLElems(pInfo, KILL_STREAM, 1, &X);}
cmd ::= KILL QUERY IP(X) COLON(Z) INTEGER(Y) COLON(K) INTEGER(F). {X.n += (Z.n + Y.n + K.n + F.n); setDCLSQLElems(pInfo, KILL_QUERY, 1, &X);}
cmd ::= KILL QUERY IP
TOKEN
(X) COLON(Z) INTEGER(Y) COLON(K) INTEGER(F). {X.n += (Z.n + Y.n + K.n + F.n); setDCLSQLElems(pInfo, KILL_QUERY, 1, &X);}
%fallback ID ABORT AFTER ASC ATTACH BEFORE BEGIN CASCADE CLUSTER CONFLICT COPY DATABASE DEFERRED
%fallback ID ABORT AFTER ASC ATTACH BEFORE BEGIN CASCADE CLUSTER CONFLICT COPY DATABASE DEFERRED
DELIMITERS DESC DETACH EACH END EXPLAIN FAIL FOR GLOB IGNORE IMMEDIATE INITIALLY INSTEAD
DELIMITERS DESC DETACH EACH END EXPLAIN FAIL FOR GLOB IGNORE IMMEDIATE INITIALLY INSTEAD
LIKE MATCH KEY OF OFFSET RAISE REPLACE RESTRICT ROW STATEMENT TRIGGER VIEW ALL
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
COUNT SUM AVG MIN MAX FIRST LAST TOP BOTTOM STDDEV PERCENTILE APERCENTILE LEASTSQUARES HISTOGRAM DIFF
SPREAD TWA INTERP LAST_ROW NOW IP SEMI NONE PREV LINEAR IMPORT METRIC TBNAME JOIN METRICS STABLE.
SPREAD TWA INTERP LAST_ROW NOW IPTOKEN SEMI NONE PREV LINEAR IMPORT METRIC TBNAME JOIN METRICS STABLE NULL.
\ No newline at end of file
\ No newline at end of file
src/inc/tsql.h
浏览文件 @
11dd3efd
...
@@ -31,6 +31,7 @@ extern "C" {
...
@@ -31,6 +31,7 @@ extern "C" {
#define TK_OCT 204 // oct number
#define TK_OCT 204 // oct number
#define TK_BIN 205 // bin format data 0b111
#define TK_BIN 205 // bin format data 0b111
#define TK_FILE 206
#define TK_FILE 206
#define TK_QUESTION 207 // denoting the placeholder of "?",when invoking statement bind query
#define TSQL_SO_ASC 1
#define TSQL_SO_ASC 1
#define TSQL_SO_DESC 0
#define TSQL_SO_DESC 0
...
...
src/inc/tsqldef.h
浏览文件 @
11dd3efd
...
@@ -80,7 +80,7 @@
...
@@ -80,7 +80,7 @@
#define TK_TABLE 62
#define TK_TABLE 62
#define TK_DATABASE 63
#define TK_DATABASE 63
#define TK_DNODE 64
#define TK_DNODE 64
#define TK_IP
65
#define TK_IP
TOKEN
65
#define TK_USER 66
#define TK_USER 66
#define TK_ACCOUNT 67
#define TK_ACCOUNT 67
#define TK_USE 68
#define TK_USE 68
...
@@ -210,7 +210,6 @@
...
@@ -210,7 +210,6 @@
#define TK_JOIN 192
#define TK_JOIN 192
#define TK_METRICS 193
#define TK_METRICS 193
#define TK_STABLE 194
#define TK_STABLE 194
#define TK_QUESTION 195
#endif
#endif
...
...
src/system/detail/inc/vnodeUtil.h
浏览文件 @
11dd3efd
...
@@ -81,6 +81,8 @@ int32_t vnodeSetMeterState(SMeterObj* pMeterObj, int32_t state);
...
@@ -81,6 +81,8 @@ int32_t vnodeSetMeterState(SMeterObj* pMeterObj, int32_t state);
void
vnodeClearMeterState
(
SMeterObj
*
pMeterObj
,
int32_t
state
);
void
vnodeClearMeterState
(
SMeterObj
*
pMeterObj
,
int32_t
state
);
bool
vnodeIsMeterState
(
SMeterObj
*
pMeterObj
,
int32_t
state
);
bool
vnodeIsMeterState
(
SMeterObj
*
pMeterObj
,
int32_t
state
);
void
vnodeSetMeterDeleting
(
SMeterObj
*
pMeterObj
);
void
vnodeSetMeterDeleting
(
SMeterObj
*
pMeterObj
);
int32_t
vnodeSetMeterInsertImportStateEx
(
SMeterObj
*
pObj
,
int32_t
st
);
bool
vnodeIsSafeToDeleteMeter
(
SVnodeObj
*
pVnode
,
int32_t
sid
);
bool
vnodeIsSafeToDeleteMeter
(
SVnodeObj
*
pVnode
,
int32_t
sid
);
void
vnodeFreeColumnInfo
(
SColumnInfo
*
pColumnInfo
);
void
vnodeFreeColumnInfo
(
SColumnInfo
*
pColumnInfo
);
bool
isGroupbyNormalCol
(
SSqlGroupbyExpr
*
pExpr
);
bool
isGroupbyNormalCol
(
SSqlGroupbyExpr
*
pExpr
);
...
...
src/system/detail/src/vnodeImport.c
浏览文件 @
11dd3efd
...
@@ -286,12 +286,9 @@ void vnodeProcessImportTimer(void *param, void *tmrId) {
...
@@ -286,12 +286,9 @@ void vnodeProcessImportTimer(void *param, void *tmrId) {
SShellObj
*
pShell
=
pImport
->
pShell
;
SShellObj
*
pShell
=
pImport
->
pShell
;
pImport
->
retry
++
;
pImport
->
retry
++
;
//slow query will block the import operation
int32_t
code
=
vnodeSetMeterInsertImportStateEx
(
pObj
,
TSDB_METER_STATE_IMPORTING
);
int32_t
state
=
vnodeSetMeterState
(
pObj
,
TSDB_METER_STATE_IMPORTING
);
if
(
code
==
TSDB_CODE_NOT_ACTIVE_TABLE
)
{
if
(
state
>=
TSDB_METER_STATE_DELETING
)
{
dError
(
"vid:%d sid:%d id:%s, meter is deleted, failed to import, state:%d"
,
pObj
->
vnode
,
pObj
->
sid
,
pObj
->
meterId
,
state
);
return
;
return
;
}
}
...
@@ -303,14 +300,14 @@ void vnodeProcessImportTimer(void *param, void *tmrId) {
...
@@ -303,14 +300,14 @@ void vnodeProcessImportTimer(void *param, void *tmrId) {
//if the num == 0, it will never be increased before state is set to TSDB_METER_STATE_READY
//if the num == 0, it will never be increased before state is set to TSDB_METER_STATE_READY
int32_t
commitInProcess
=
0
;
int32_t
commitInProcess
=
0
;
pthread_mutex_lock
(
&
pPool
->
vmutex
);
pthread_mutex_lock
(
&
pPool
->
vmutex
);
if
(((
commitInProcess
=
pPool
->
commitInProcess
)
==
1
)
||
num
>
0
||
state
!=
TSDB_METER_STATE_READY
)
{
if
(((
commitInProcess
=
pPool
->
commitInProcess
)
==
1
)
||
num
>
0
||
code
==
TSDB_CODE_ACTION_IN_PROGRESS
)
{
pthread_mutex_unlock
(
&
pPool
->
vmutex
);
pthread_mutex_unlock
(
&
pPool
->
vmutex
);
vnodeClearMeterState
(
pObj
,
TSDB_METER_STATE_IMPORTING
);
vnodeClearMeterState
(
pObj
,
TSDB_METER_STATE_IMPORTING
);
if
(
pImport
->
retry
<
1000
)
{
if
(
pImport
->
retry
<
1000
)
{
dTrace
(
"vid:%d sid:%d id:%s, import failed, retry later. commit in process or queries on it, or not ready."
dTrace
(
"vid:%d sid:%d id:%s, import failed, retry later. commit in process or queries on it, or not ready."
"commitInProcess:%d, numOfQueries:%d, state:%d"
,
pObj
->
vnode
,
pObj
->
sid
,
pObj
->
meterId
,
"commitInProcess:%d, numOfQueries:%d, state:%d"
,
pObj
->
vnode
,
pObj
->
sid
,
pObj
->
meterId
,
commitInProcess
,
num
,
state
);
commitInProcess
,
num
,
pObj
->
state
);
taosTmrStart
(
vnodeProcessImportTimer
,
10
,
pImport
,
vnodeTmrCtrl
);
taosTmrStart
(
vnodeProcessImportTimer
,
10
,
pImport
,
vnodeTmrCtrl
);
return
;
return
;
...
@@ -320,15 +317,14 @@ void vnodeProcessImportTimer(void *param, void *tmrId) {
...
@@ -320,15 +317,14 @@ void vnodeProcessImportTimer(void *param, void *tmrId) {
}
else
{
}
else
{
pPool
->
commitInProcess
=
1
;
pPool
->
commitInProcess
=
1
;
pthread_mutex_unlock
(
&
pPool
->
vmutex
);
pthread_mutex_unlock
(
&
pPool
->
vmutex
);
int
code
=
vnodeImportData
(
pObj
,
pImport
);
int
32_t
ret
=
vnodeImportData
(
pObj
,
pImport
);
if
(
pShell
)
{
if
(
pShell
)
{
pShell
->
code
=
code
;
pShell
->
code
=
ret
;
pShell
->
numOfTotalPoints
+=
pImport
->
importedRows
;
pShell
->
numOfTotalPoints
+=
pImport
->
importedRows
;
}
}
}
}
vnodeClearMeterState
(
pObj
,
TSDB_METER_STATE_IMPORTING
);
vnodeClearMeterState
(
pObj
,
TSDB_METER_STATE_IMPORTING
);
pVnode
->
version
++
;
pVnode
->
version
++
;
// send response back to shell
// send response back to shell
...
@@ -702,8 +698,8 @@ int vnodeFindKeyInFile(SImportInfo *pImport, int order) {
...
@@ -702,8 +698,8 @@ int vnodeFindKeyInFile(SImportInfo *pImport, int order) {
if
(
pImport
->
key
!=
key
&&
pImport
->
pos
>
0
)
{
if
(
pImport
->
key
!=
key
&&
pImport
->
pos
>
0
)
{
if
(
pObj
->
sversion
!=
pBlock
->
sversion
)
{
if
(
pObj
->
sversion
!=
pBlock
->
sversion
)
{
dError
(
"vid:%d sid:%d id:%s, import sversion not mat
a
ched, expected:%d received:%d"
,
pObj
->
vnode
,
pObj
->
sid
,
dError
(
"vid:%d sid:%d id:%s, import sversion not matched, expected:%d received:%d"
,
pObj
->
vnode
,
pObj
->
sid
,
pBlock
->
sversion
,
pObj
->
sversion
);
p
Obj
->
meterId
,
p
Block
->
sversion
,
pObj
->
sversion
);
code
=
TSDB_CODE_OTHERS
;
code
=
TSDB_CODE_OTHERS
;
}
else
{
}
else
{
pImport
->
offset
=
pBlock
->
offset
;
pImport
->
offset
=
pBlock
->
offset
;
...
@@ -912,16 +908,12 @@ int vnodeImportPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi
...
@@ -912,16 +908,12 @@ int vnodeImportPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi
}
}
if
(
*
((
TSKEY
*
)(
pSubmit
->
payLoad
+
(
rows
-
1
)
*
pObj
->
bytesPerPoint
))
>
pObj
->
lastKey
)
{
if
(
*
((
TSKEY
*
)(
pSubmit
->
payLoad
+
(
rows
-
1
)
*
pObj
->
bytesPerPoint
))
>
pObj
->
lastKey
)
{
vnodeClearMeterState
(
pObj
,
TSDB_METER_STATE_IMPORTING
);
vnodeSetMeterState
(
pObj
,
TSDB_METER_STATE_INSERT
);
code
=
vnodeInsertPoints
(
pObj
,
cont
,
contLen
,
TSDB_DATA_SOURCE_LOG
,
NULL
,
pObj
->
sversion
,
&
pointsImported
,
now
);
code
=
vnodeInsertPoints
(
pObj
,
cont
,
contLen
,
TSDB_DATA_SOURCE_LOG
,
NULL
,
pObj
->
sversion
,
&
pointsImported
,
now
);
if
(
pShell
)
{
if
(
pShell
)
{
pShell
->
code
=
code
;
pShell
->
code
=
code
;
pShell
->
numOfTotalPoints
+=
pointsImported
;
pShell
->
numOfTotalPoints
+=
pointsImported
;
}
}
vnodeClearMeterState
(
pObj
,
TSDB_METER_STATE_INSERT
);
}
else
{
}
else
{
SImportInfo
*
pNew
,
import
;
SImportInfo
*
pNew
,
import
;
...
@@ -933,7 +925,11 @@ int vnodeImportPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi
...
@@ -933,7 +925,11 @@ int vnodeImportPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi
import
.
pShell
=
pShell
;
import
.
pShell
=
pShell
;
import
.
payload
=
payload
;
import
.
payload
=
payload
;
import
.
rows
=
rows
;
import
.
rows
=
rows
;
if
((
code
=
vnodeSetMeterInsertImportStateEx
(
pObj
,
TSDB_METER_STATE_IMPORTING
))
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
int32_t
num
=
0
;
int32_t
num
=
0
;
pthread_mutex_lock
(
&
pVnode
->
vmutex
);
pthread_mutex_lock
(
&
pVnode
->
vmutex
);
num
=
pObj
->
numOfQueries
;
num
=
pObj
->
numOfQueries
;
...
@@ -944,7 +940,8 @@ int vnodeImportPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi
...
@@ -944,7 +940,8 @@ int vnodeImportPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi
pthread_mutex_lock
(
&
pPool
->
vmutex
);
pthread_mutex_lock
(
&
pPool
->
vmutex
);
if
(((
commitInProcess
=
pPool
->
commitInProcess
)
==
1
)
||
num
>
0
)
{
if
(((
commitInProcess
=
pPool
->
commitInProcess
)
==
1
)
||
num
>
0
)
{
pthread_mutex_unlock
(
&
pPool
->
vmutex
);
pthread_mutex_unlock
(
&
pPool
->
vmutex
);
vnodeClearMeterState
(
pObj
,
TSDB_METER_STATE_IMPORTING
);
pNew
=
(
SImportInfo
*
)
malloc
(
sizeof
(
SImportInfo
));
pNew
=
(
SImportInfo
*
)
malloc
(
sizeof
(
SImportInfo
));
memcpy
(
pNew
,
&
import
,
sizeof
(
SImportInfo
));
memcpy
(
pNew
,
&
import
,
sizeof
(
SImportInfo
));
pNew
->
signature
=
pNew
;
pNew
->
signature
=
pNew
;
...
@@ -956,19 +953,25 @@ int vnodeImportPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi
...
@@ -956,19 +953,25 @@ int vnodeImportPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi
dTrace
(
"vid:%d sid:%d id:%s, import later, commit in process:%d, numOfQueries:%d"
,
pObj
->
vnode
,
pObj
->
sid
,
dTrace
(
"vid:%d sid:%d id:%s, import later, commit in process:%d, numOfQueries:%d"
,
pObj
->
vnode
,
pObj
->
sid
,
pObj
->
meterId
,
commitInProcess
,
pObj
->
numOfQueries
);
pObj
->
meterId
,
commitInProcess
,
pObj
->
numOfQueries
);
/*
* vnodeProcessImportTimer will set the import status for this table, so need to
* set the import flag here
*/
taosTmrStart
(
vnodeProcessImportTimer
,
10
,
pNew
,
vnodeTmrCtrl
);
taosTmrStart
(
vnodeProcessImportTimer
,
10
,
pNew
,
vnodeTmrCtrl
);
return
0
;
return
0
;
}
else
{
}
else
{
pPool
->
commitInProcess
=
1
;
pPool
->
commitInProcess
=
1
;
pthread_mutex_unlock
(
&
pPool
->
vmutex
);
pthread_mutex_unlock
(
&
pPool
->
vmutex
);
int
code
=
vnodeImportData
(
pObj
,
&
import
);
int
ret
=
vnodeImportData
(
pObj
,
&
import
);
if
(
pShell
)
{
if
(
pShell
)
{
pShell
->
code
=
code
;
pShell
->
code
=
ret
;
pShell
->
numOfTotalPoints
+=
import
.
importedRows
;
pShell
->
numOfTotalPoints
+=
import
.
importedRows
;
}
}
}
}
}
}
vnodeClearMeterState
(
pObj
,
TSDB_METER_STATE_IMPORTING
);
pVnode
->
version
++
;
pVnode
->
version
++
;
if
(
pShell
)
{
if
(
pShell
)
{
...
...
src/system/detail/src/vnodeMeter.c
浏览文件 @
11dd3efd
...
@@ -572,7 +572,7 @@ int vnodeInsertPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi
...
@@ -572,7 +572,7 @@ int vnodeInsertPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi
dTrace
(
"vid:%d sid:%d id:%s, cache is full, freePoints:%d, notFreeSlots:%d"
,
pObj
->
vnode
,
pObj
->
sid
,
pObj
->
meterId
,
dTrace
(
"vid:%d sid:%d id:%s, cache is full, freePoints:%d, notFreeSlots:%d"
,
pObj
->
vnode
,
pObj
->
sid
,
pObj
->
meterId
,
pObj
->
freePoints
,
pPool
->
notFreeSlots
);
pObj
->
freePoints
,
pPool
->
notFreeSlots
);
vnodeProcessCommitTimer
(
pVnode
,
NULL
);
vnodeProcessCommitTimer
(
pVnode
,
NULL
);
return
TSDB_CODE_ACTION_IN_PROGRESS
;
return
code
;
}
}
// FIXME: Here should be after the comparison of sversions.
// FIXME: Here should be after the comparison of sversions.
...
@@ -608,7 +608,11 @@ int vnodeInsertPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi
...
@@ -608,7 +608,11 @@ int vnodeInsertPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi
pObj
->
vnode
,
pObj
->
sid
,
pObj
->
meterId
,
pVnode
->
lastKeyOnFile
,
numOfPoints
,
firstKey
,
lastKey
,
minAllowedKey
,
maxAllowedKey
);
pObj
->
vnode
,
pObj
->
sid
,
pObj
->
meterId
,
pVnode
->
lastKeyOnFile
,
numOfPoints
,
firstKey
,
lastKey
,
minAllowedKey
,
maxAllowedKey
);
return
TSDB_CODE_TIMESTAMP_OUT_OF_RANGE
;
return
TSDB_CODE_TIMESTAMP_OUT_OF_RANGE
;
}
}
if
((
code
=
vnodeSetMeterInsertImportStateEx
(
pObj
,
TSDB_METER_STATE_INSERT
))
!=
TSDB_CODE_SUCCESS
)
{
goto
_over
;
}
for
(
i
=
0
;
i
<
numOfPoints
;
++
i
)
{
for
(
i
=
0
;
i
<
numOfPoints
;
++
i
)
{
// meter will be dropped, abort current insertion
// meter will be dropped, abort current insertion
if
(
pObj
->
state
>=
TSDB_METER_STATE_DELETING
)
{
if
(
pObj
->
state
>=
TSDB_METER_STATE_DELETING
)
{
...
@@ -654,6 +658,8 @@ int vnodeInsertPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi
...
@@ -654,6 +658,8 @@ int vnodeInsertPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi
pthread_mutex_unlock
(
&
(
pVnode
->
vmutex
));
pthread_mutex_unlock
(
&
(
pVnode
->
vmutex
));
_over:
_over:
vnodeClearMeterState
(
pObj
,
TSDB_METER_STATE_INSERT
);
dTrace
(
"vid:%d sid:%d id:%s, %d out of %d points are inserted, lastKey:%ld source:%d, vnode total storage: %ld"
,
dTrace
(
"vid:%d sid:%d id:%s, %d out of %d points are inserted, lastKey:%ld source:%d, vnode total storage: %ld"
,
pObj
->
vnode
,
pObj
->
sid
,
pObj
->
meterId
,
points
,
numOfPoints
,
pObj
->
lastKey
,
source
,
pObj
->
vnode
,
pObj
->
sid
,
pObj
->
meterId
,
points
,
numOfPoints
,
pObj
->
lastKey
,
source
,
pVnode
->
vnodeStatistic
.
totalStorage
);
pVnode
->
vnodeStatistic
.
totalStorage
);
...
...
src/system/detail/src/vnodeShell.c
浏览文件 @
11dd3efd
...
@@ -565,40 +565,15 @@ int vnodeProcessShellSubmitRequest(char *pMsg, int msgLen, SShellObj *pObj) {
...
@@ -565,40 +565,15 @@ int vnodeProcessShellSubmitRequest(char *pMsg, int msgLen, SShellObj *pObj) {
int
subMsgLen
=
sizeof
(
pBlocks
->
numOfRows
)
+
htons
(
pBlocks
->
numOfRows
)
*
pMeterObj
->
bytesPerPoint
;
int
subMsgLen
=
sizeof
(
pBlocks
->
numOfRows
)
+
htons
(
pBlocks
->
numOfRows
)
*
pMeterObj
->
bytesPerPoint
;
int
sversion
=
htonl
(
pBlocks
->
sversion
);
int
sversion
=
htonl
(
pBlocks
->
sversion
);
int32_t
state
=
TSDB_METER_STATE_READY
;
if
(
pSubmit
->
import
)
{
if
(
pSubmit
->
import
)
{
state
=
vnodeSetMeterState
(
pMeterObj
,
TSDB_METER_STATE_IMPORTING
);
code
=
vnodeImportPoints
(
pMeterObj
,
(
char
*
)
&
(
pBlocks
->
numOfRows
),
subMsgLen
,
TSDB_DATA_SOURCE_SHELL
,
pObj
,
sversion
,
&
numOfPoints
,
now
);
}
else
{
}
else
{
state
=
vnodeSetMeterState
(
pMeterObj
,
TSDB_METER_STATE_INSERT
);
code
=
vnodeInsertPoints
(
pMeterObj
,
(
char
*
)
&
(
pBlocks
->
numOfRows
),
subMsgLen
,
TSDB_DATA_SOURCE_SHELL
,
NULL
,
sversion
,
&
numOfPoints
,
now
);
}
}
if
(
state
==
TSDB_METER_STATE_READY
)
{
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
break
;}
// meter status is ready for insert/import
if
(
pSubmit
->
import
)
{
code
=
vnodeImportPoints
(
pMeterObj
,
(
char
*
)
&
(
pBlocks
->
numOfRows
),
subMsgLen
,
TSDB_DATA_SOURCE_SHELL
,
pObj
,
sversion
,
&
numOfPoints
,
now
);
vnodeClearMeterState
(
pMeterObj
,
TSDB_METER_STATE_IMPORTING
);
}
else
{
code
=
vnodeInsertPoints
(
pMeterObj
,
(
char
*
)
&
(
pBlocks
->
numOfRows
),
subMsgLen
,
TSDB_DATA_SOURCE_SHELL
,
NULL
,
sversion
,
&
numOfPoints
,
now
);
vnodeClearMeterState
(
pMeterObj
,
TSDB_METER_STATE_INSERT
);
}
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
break
;}
}
else
{
if
(
vnodeIsMeterState
(
pMeterObj
,
TSDB_METER_STATE_DELETING
))
{
dTrace
(
"vid:%d sid:%d id:%s, it is removed, state:%d"
,
pMeterObj
->
vnode
,
pMeterObj
->
sid
,
pMeterObj
->
meterId
,
pMeterObj
->
state
);
code
=
TSDB_CODE_NOT_ACTIVE_TABLE
;
break
;
}
else
{
// waiting for 300ms by default and try again
dTrace
(
"vid:%d sid:%d id:%s, try submit again since in state:%d"
,
pMeterObj
->
vnode
,
pMeterObj
->
sid
,
pMeterObj
->
meterId
,
pMeterObj
->
state
);
code
=
TSDB_CODE_ACTION_IN_PROGRESS
;
break
;
}
}
numOfTotalPoints
+=
numOfPoints
;
numOfTotalPoints
+=
numOfPoints
;
pBlocks
=
(
SShellSubmitBlock
*
)((
char
*
)
pBlocks
+
sizeof
(
SShellSubmitBlock
)
+
pBlocks
=
(
SShellSubmitBlock
*
)((
char
*
)
pBlocks
+
sizeof
(
SShellSubmitBlock
)
+
...
...
src/system/detail/src/vnodeStream.c
浏览文件 @
11dd3efd
...
@@ -55,14 +55,11 @@ void vnodeProcessStreamRes(void *param, TAOS_RES *tres, TAOS_ROW row) {
...
@@ -55,14 +55,11 @@ void vnodeProcessStreamRes(void *param, TAOS_RES *tres, TAOS_ROW row) {
contLen
+=
sizeof
(
SSubmitMsg
);
contLen
+=
sizeof
(
SSubmitMsg
);
int32_t
numOfPoints
=
0
;
int32_t
numOfPoints
=
0
;
int32_t
code
=
vnodeInsertPoints
(
pObj
,
(
char
*
)
pMsg
,
contLen
,
TSDB_DATA_SOURCE_SHELL
,
NULL
,
pObj
->
sversion
,
&
numOfPoints
,
taosGetTimestamp
(
vnodeList
[
pObj
->
vnode
].
cfg
.
precision
));
int32_t
state
=
vnodeSetMeterState
(
pObj
,
TSDB_METER_STATE_INSERT
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
if
(
state
==
TSDB_METER_STATE_READY
)
{
dError
(
"vid:%d sid:%d id:%s, failed to insert continuous query results"
,
pObj
->
vnode
,
pObj
->
sid
,
pObj
->
meterId
);
vnodeInsertPoints
(
pObj
,
(
char
*
)
pMsg
,
contLen
,
TSDB_DATA_SOURCE_SHELL
,
NULL
,
pObj
->
sversion
,
&
numOfPoints
,
taosGetTimestamp
(
vnodeList
[
pObj
->
vnode
].
cfg
.
precision
));
vnodeClearMeterState
(
pObj
,
TSDB_METER_STATE_INSERT
);
}
else
{
dError
(
"vid:%d sid:%d id:%s, failed to insert continuous query results, state:%d"
,
pObj
->
vnode
,
pObj
->
sid
,
pObj
->
meterId
,
state
);
}
}
assert
(
numOfPoints
>=
0
&&
numOfPoints
<=
1
);
assert
(
numOfPoints
>=
0
&&
numOfPoints
<=
1
);
...
...
src/system/detail/src/vnodeUtil.c
浏览文件 @
11dd3efd
...
@@ -668,6 +668,26 @@ void vnodeSetMeterDeleting(SMeterObj* pMeterObj) {
...
@@ -668,6 +668,26 @@ void vnodeSetMeterDeleting(SMeterObj* pMeterObj) {
pMeterObj
->
state
|=
TSDB_METER_STATE_DELETING
;
pMeterObj
->
state
|=
TSDB_METER_STATE_DELETING
;
}
}
int32_t
vnodeSetMeterInsertImportStateEx
(
SMeterObj
*
pObj
,
int32_t
st
)
{
int32_t
code
=
TSDB_CODE_SUCCESS
;
int32_t
state
=
vnodeSetMeterState
(
pObj
,
st
);
if
(
state
!=
TSDB_METER_STATE_READY
)
{
//return to denote import is not performed
if
(
vnodeIsMeterState
(
pObj
,
TSDB_METER_STATE_DELETING
))
{
dTrace
(
"vid:%d sid:%d id:%s, meter is deleted, state:%d"
,
pObj
->
vnode
,
pObj
->
sid
,
pObj
->
meterId
,
pObj
->
state
);
code
=
TSDB_CODE_NOT_ACTIVE_TABLE
;
}
else
{
// waiting for 300ms by default and try again
dTrace
(
"vid:%d sid:%d id:%s, try submit again since in state:%d"
,
pObj
->
vnode
,
pObj
->
sid
,
pObj
->
meterId
,
pObj
->
state
);
code
=
TSDB_CODE_ACTION_IN_PROGRESS
;
}
}
return
code
;
}
bool
vnodeIsSafeToDeleteMeter
(
SVnodeObj
*
pVnode
,
int32_t
sid
)
{
bool
vnodeIsSafeToDeleteMeter
(
SVnodeObj
*
pVnode
,
int32_t
sid
)
{
SMeterObj
*
pObj
=
pVnode
->
meterList
[
sid
];
SMeterObj
*
pObj
=
pVnode
->
meterList
[
sid
];
...
...
src/util/src/sql.c
浏览文件 @
11dd3efd
...
@@ -30,7 +30,6 @@
...
@@ -30,7 +30,6 @@
#include <string.h>
#include <string.h>
#include <assert.h>
#include <assert.h>
#include <stdbool.h>
#include <stdbool.h>
#include "tsql.h"
#include "tsql.h"
#include "tutil.h"
#include "tutil.h"
/**************** End of %include directives **********************************/
/**************** End of %include directives **********************************/
...
@@ -79,13 +78,15 @@
...
@@ -79,13 +78,15 @@
** defined, then do no error processing.
** defined, then do no error processing.
** YYNSTATE the combined number of states.
** YYNSTATE the combined number of states.
** YYNRULE the number of rules in the grammar
** YYNRULE the number of rules in the grammar
** YYNTOKEN Number of terminal symbols
** YY_MAX_SHIFT Maximum value for shift actions
** YY_MAX_SHIFT Maximum value for shift actions
** YY_MIN_SHIFTREDUCE Minimum value for shift-reduce actions
** YY_MIN_SHIFTREDUCE Minimum value for shift-reduce actions
** YY_MAX_SHIFTREDUCE Maximum value for shift-reduce actions
** YY_MAX_SHIFTREDUCE Maximum value for shift-reduce actions
** YY_MIN_REDUCE Maximum value for reduce actions
** YY_ERROR_ACTION The yy_action[] code for syntax error
** YY_ERROR_ACTION The yy_action[] code for syntax error
** YY_ACCEPT_ACTION The yy_action[] code for accept
** YY_ACCEPT_ACTION The yy_action[] code for accept
** YY_NO_ACTION The yy_action[] code for no-op
** YY_NO_ACTION The yy_action[] code for no-op
** YY_MIN_REDUCE Minimum value for reduce actions
** YY_MAX_REDUCE Maximum value for reduce actions
*/
*/
#ifndef INTERFACE
#ifndef INTERFACE
# define INTERFACE 1
# define INTERFACE 1
...
@@ -122,21 +123,18 @@ typedef union {
...
@@ -122,21 +123,18 @@ typedef union {
#define ParseARG_STORE yypParser->pInfo = pInfo
#define ParseARG_STORE yypParser->pInfo = pInfo
#define YYFALLBACK 1
#define YYFALLBACK 1
#define YYNSTATE 251
#define YYNSTATE 251
#define YYNRULE 213
#define YYNRULE 214
#define YYNTOKEN 195
#define YY_MAX_SHIFT 250
#define YY_MAX_SHIFT 250
#define YY_MIN_SHIFTREDUCE 401
#define YY_MIN_SHIFTREDUCE 401
#define YY_MAX_SHIFTREDUCE 61
3
#define YY_MAX_SHIFTREDUCE 61
4
#define YY_
MIN_REDUCE 614
#define YY_
ERROR_ACTION 615
#define YY_
MAX_REDUCE 82
6
#define YY_
ACCEPT_ACTION 61
6
#define YY_
ERROR_ACTION 82
7
#define YY_
NO_ACTION 61
7
#define YY_
ACCEPT_ACTION 82
8
#define YY_
MIN_REDUCE 61
8
#define YY_
NO_ACTION 829
#define YY_
MAX_REDUCE 831
/************* End control #defines *******************************************/
/************* End control #defines *******************************************/
/* The yyzerominor constant is used to initialize instances of
** YYMINORTYPE objects to zero. */
static
const
YYMINORTYPE
yyzerominor
=
{
0
};
/* Define the yytestcase() macro to be a no-op if is not already defined
/* Define the yytestcase() macro to be a no-op if is not already defined
** otherwise.
** otherwise.
**
**
...
@@ -164,9 +162,6 @@ static const YYMINORTYPE yyzerominor = { 0 };
...
@@ -164,9 +162,6 @@ static const YYMINORTYPE yyzerominor = { 0 };
** N between YY_MIN_SHIFTREDUCE Shift to an arbitrary state then
** N between YY_MIN_SHIFTREDUCE Shift to an arbitrary state then
** and YY_MAX_SHIFTREDUCE reduce by rule N-YY_MIN_SHIFTREDUCE.
** and YY_MAX_SHIFTREDUCE reduce by rule N-YY_MIN_SHIFTREDUCE.
**
**
** N between YY_MIN_REDUCE Reduce by rule N-YY_MIN_REDUCE
** and YY_MAX_REDUCE
** N == YY_ERROR_ACTION A syntax error has occurred.
** N == YY_ERROR_ACTION A syntax error has occurred.
**
**
** N == YY_ACCEPT_ACTION The parser accepts its input.
** N == YY_ACCEPT_ACTION The parser accepts its input.
...
@@ -174,21 +169,22 @@ static const YYMINORTYPE yyzerominor = { 0 };
...
@@ -174,21 +169,22 @@ static const YYMINORTYPE yyzerominor = { 0 };
** N == YY_NO_ACTION No such action. Denotes unused
** N == YY_NO_ACTION No such action. Denotes unused
** slots in the yy_action[] table.
** slots in the yy_action[] table.
**
**
** N between YY_MIN_REDUCE Reduce by rule N-YY_MIN_REDUCE
** and YY_MAX_REDUCE
**
** The action table is constructed as a single large table named yy_action[].
** The action table is constructed as a single large table named yy_action[].
** Given state S and lookahead X, the action is computed as
** Given state S and lookahead X, the action is computed as
either:
**
**
** yy_action[ yy_shift_ofst[S] + X ]
** (A) N = yy_action[ yy_shift_ofst[S] + X ]
** (B) N = yy_default[S]
**
**
** If the index value yy_shift_ofst[S]+X is out of range or if the value
** The (A) formula is preferred. The B formula is used instead if
** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S]
** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X.
** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table
** and that yy_default[S] should be used instead.
**
**
** The formula
above is
for computing the action when the lookahead is
** The formula
s above are
for computing the action when the lookahead is
** a terminal symbol. If the lookahead is a non-terminal (as occurs after
** a terminal symbol. If the lookahead is a non-terminal (as occurs after
** a reduce action) then the yy_reduce_ofst[] array is used in place of
** a reduce action) then the yy_reduce_ofst[] array is used in place of
** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of
** the yy_shift_ofst[] array.
** YY_SHIFT_USE_DFLT.
**
**
** The following are the tables generated in this section:
** The following are the tables generated in this section:
**
**
...
@@ -202,196 +198,214 @@ static const YYMINORTYPE yyzerominor = { 0 };
...
@@ -202,196 +198,214 @@ static const YYMINORTYPE yyzerominor = { 0 };
** yy_default[] Default action for each state.
** yy_default[] Default action for each state.
**
**
*********** Begin parsing tables **********************************************/
*********** Begin parsing tables **********************************************/
#define YY_ACTTAB_COUNT (5
29
)
#define YY_ACTTAB_COUNT (5
30
)
static
const
YYACTIONTYPE
yy_action
[]
=
{
static
const
YYACTIONTYPE
yy_action
[]
=
{
/* 0 */
439
,
36
,
35
,
153
,
249
,
34
,
33
,
32
,
440
,
34
,
/* 0 */
97
,
439
,
135
,
101
,
101
,
156
,
616
,
250
,
135
,
440
,
/* 10 */
33
,
32
,
43
,
45
,
49
,
37
,
38
,
74
,
78
,
244
,
/* 10 */
135
,
159
,
814
,
43
,
45
,
21
,
37
,
38
,
813
,
158
,
/* 20 */
31
,
85
,
77
,
205
,
41
,
39
,
42
,
40
,
80
,
133
,
/* 20 */
814
,
31
,
439
,
727
,
205
,
41
,
39
,
42
,
40
,
10
,
/* 30 */
101
,
50
,
36
,
35
,
527
,
171
,
34
,
33
,
32
,
43
,
/* 30 */
440
,
153
,
249
,
36
,
35
,
745
,
726
,
34
,
33
,
32
,
/* 40 */
4
5
,
154
,
37
,
38
,
114
,
115
,
224
,
31
,
65
,
68
,
/* 40 */
4
3
,
45
,
737
,
37
,
38
,
166
,
132
,
167
,
31
,
724
,
/* 50 */
205
,
41
,
39
,
42
,
40
,
76
,
133
,
828
,
250
,
36
,
/* 50 */
193
,
205
,
41
,
39
,
42
,
40
,
202
,
769
,
59
,
200
,
/* 60 */
3
5
,
241
,
241
,
34
,
33
,
32
,
43
,
45
,
155
,
37
,
/* 60 */
3
6
,
35
,
21
,
727
,
34
,
33
,
32
,
43
,
45
,
134
,
/* 70 */
3
8
,
128
,
126
,
245
,
31
,
89
,
88
,
205
,
41
,
39
,
/* 70 */
3
7
,
38
,
74
,
78
,
244
,
31
,
85
,
77
,
205
,
41
,
/* 80 */
42
,
40
,
202
,
524
,
59
,
135
,
36
,
35
,
439
,
21
,
/* 80 */
39
,
42
,
40
,
80
,
742
,
220
,
498
,
36
,
35
,
439
,
/* 90 */
34
,
33
,
32
,
520
,
159
,
596
,
440
,
10
,
57
,
172
,
/* 90 */
21
,
34
,
33
,
32
,
168
,
101
,
724
,
440
,
101
,
57
,
/* 100 */
1
35
,
135
,
227
,
226
,
101
,
45
,
439
,
37
,
38
,
15
8
,
/* 100 */
1
14
,
115
,
224
,
727
,
65
,
68
,
45
,
7
,
37
,
3
8
,
/* 110 */
596
,
595
,
31
,
156
,
440
,
205
,
41
,
39
,
42
,
40
,
/* 110 */
62
,
111
,
241
,
31
,
230
,
229
,
205
,
41
,
39
,
42
,
/* 120 */
232
,
167
,
564
,
507
,
36
,
35
,
166
,
21
,
34
,
33
,
/* 120 */
40
,
232
,
228
,
565
,
724
,
36
,
35
,
21
,
139
,
34
,
/* 130 */
3
2
,
510
,
402
,
403
,
404
,
405
,
406
,
407
,
408
,
409
,
/* 130 */
3
3
,
32
,
21
,
402
,
403
,
404
,
405
,
406
,
407
,
408
,
/* 140 */
4
10
,
411
,
412
,
413
,
510
,
37
,
38
,
243
,
132
,
50
8
,
/* 140 */
4
09
,
410
,
411
,
412
,
413
,
810
,
37
,
38
,
243
,
76
8
,
/* 150 */
31
,
220
,
101
,
205
,
41
,
39
,
42
,
40
,
551
,
168
,
/* 150 */
725
,
31
,
60
,
178
,
205
,
41
,
39
,
42
,
40
,
233
,
/* 160 */
200
,
507
,
36
,
35
,
97
,
134
,
34
,
33
,
32
,
510
,
/* 160 */
186
,
724
,
183
,
36
,
35
,
809
,
723
,
34
,
33
,
32
,
/* 170 */
21
,
139
,
101
,
17
,
219
,
242
,
218
,
217
,
216
,
215
,
/* 170 */
654
,
171
,
808
,
124
,
17
,
219
,
242
,
218
,
217
,
216
,
/* 180 */
21
4
,
213
,
212
,
211
,
492
,
21
,
481
,
482
,
483
,
484
,
/* 180 */
21
5
,
214
,
213
,
212
,
211
,
709
,
151
,
698
,
699
,
700
,
/* 190 */
485
,
486
,
487
,
488
,
489
,
490
,
491
,
163
,
577
,
11
,
/* 190 */
701
,
702
,
703
,
704
,
705
,
706
,
707
,
708
,
163
,
578
,
/* 200 */
243
,
568
,
228
,
571
,
507
,
574
,
550
,
163
,
577
,
49
8
,
/* 200 */
11
,
133
,
569
,
133
,
572
,
76
,
575
,
663
,
163
,
57
8
,
/* 210 */
21
,
568
,
509
,
571
,
193
,
574
,
148
,
233
,
7
,
507
,
/* 210 */
124
,
241
,
569
,
154
,
572
,
155
,
575
,
148
,
34
,
33
,
/* 220 */
561
,
62
,
111
,
87
,
86
,
142
,
60
,
178
,
242
,
160
,
/* 220 */
32
,
248
,
247
,
422
,
87
,
86
,
142
,
243
,
546
,
547
,
/* 230 */
16
1
,
147
,
437
,
204
,
186
,
124
,
183
,
230
,
229
,
160
,
/* 230 */
16
0
,
161
,
147
,
523
,
204
,
172
,
18
,
152
,
227
,
226
,
/* 240 */
16
1
,
163
,
577
,
525
,
506
,
568
,
570
,
571
,
573
,
574
,
/* 240 */
16
0
,
161
,
163
,
578
,
526
,
712
,
569
,
711
,
572
,
140
,
/* 250 */
41
,
39
,
42
,
40
,
495
,
61
,
494
,
27
,
36
,
35
,
/* 250 */
575
,
41
,
39
,
42
,
40
,
242
,
141
,
61
,
27
,
36
,
/* 260 */
545
,
546
,
34
,
33
,
32
,
514
,
28
,
600
,
511
,
162
,
/* 260 */
35
,
73
,
72
,
34
,
33
,
32
,
514
,
655
,
28
,
511
,
/* 270 */
512
,
29
,
513
,
160
,
161
,
192
,
446
,
566
,
188
,
124
,
/* 270 */
124
,
512
,
143
,
513
,
160
,
161
,
192
,
36
,
35
,
188
,
/* 280 */
248
,
247
,
422
,
438
,
522
,
150
,
124
,
18
,
601
,
536
,
/* 280 */
601
,
34
,
33
,
32
,
29
,
571
,
150
,
574
,
567
,
128
,
/* 290 */
537
,
44
,
29
,
47
,
15
,
594
,
169
,
170
,
578
,
14
,
/* 290 */
126
,
245
,
44
,
89
,
88
,
602
,
537
,
169
,
170
,
29
,
/* 300 */
576
,
44
,
14
,
569
,
518
,
572
,
519
,
2
,
52
,
516
,
/* 300 */
47
,
577
,
44
,
162
,
538
,
595
,
579
,
144
,
15
,
14
,
/* 310 */
576
,
517
,
504
,
567
,
503
,
575
,
47
,
592
,
22
,
591
,
/* 310 */
14
,
577
,
570
,
49
,
573
,
504
,
576
,
52
,
503
,
47
,
/* 320 */
209
,
73
,
72
,
53
,
22
,
575
,
9
,
8
,
84
,
83
,
/* 320 */
145
,
209
,
22
,
146
,
568
,
22
,
576
,
518
,
828
,
519
,
/* 330 */
590
,
151
,
152
,
140
,
501
,
44
,
610
,
141
,
560
,
143
,
/* 330 */
50
,
516
,
53
,
517
,
84
,
83
,
44
,
9
,
8
,
718
,
/* 340 */
1
44
,
145
,
146
,
137
,
576
,
131
,
138
,
136
,
164
,
557
,
/* 340 */
1
37
,
2
,
131
,
138
,
136
,
577
,
779
,
744
,
778
,
164
,
/* 350 */
556
,
165
,
526
,
231
,
110
,
98
,
112
,
113
,
448
,
57
5
,
/* 350 */
775
,
774
,
165
,
231
,
98
,
761
,
760
,
112
,
113
,
66
5
,
/* 360 */
5
43
,
542
,
210
,
129
,
515
,
25
,
223
,
225
,
609
,
70
,
/* 360 */
5
76
,
110
,
189
,
210
,
129
,
515
,
25
,
223
,
91
,
225
,
/* 370 */
189
,
608
,
606
,
116
,
466
,
26
,
23
,
130
,
435
,
79
,
/* 370 */
827
,
70
,
826
,
824
,
116
,
683
,
26
,
23
,
130
,
652
,
/* 380 */
433
,
81
,
431
,
191
,
430
,
173
,
125
,
428
,
427
,
426
,
/* 380 */
533
,
79
,
650
,
54
,
81
,
648
,
647
,
173
,
125
,
645
,
/* 390 */
424
,
91
,
532
,
194
,
198
,
54
,
417
,
127
,
51
,
521
,
/* 390 */
644
,
643
,
641
,
634
,
127
,
638
,
191
,
636
,
738
,
194
,
/* 400 */
421
,
203
,
419
,
46
,
102
,
95
,
201
,
530
,
103
,
531
,
/* 400 */
198
,
95
,
748
,
749
,
762
,
51
,
102
,
46
,
203
,
103
,
/* 410 */
544
,
195
,
199
,
197
,
30
,
27
,
222
,
235
,
75
,
234
,
/* 410 */
201
,
199
,
197
,
195
,
30
,
27
,
222
,
75
,
234
,
235
,
/* 420 */
2
36
,
207
,
238
,
55
,
237
,
239
,
240
,
246
,
149
,
613
,
/* 420 */
2
07
,
55
,
236
,
240
,
238
,
237
,
239
,
63
,
66
,
149
,
/* 430 */
63
,
66
,
174
,
429
,
175
,
176
,
90
,
92
,
177
,
423
,
/* 430 */
246
,
614
,
175
,
174
,
176
,
646
,
613
,
90
,
640
,
119
,
/* 440 */
1
19
,
612
,
118
,
467
,
117
,
120
,
121
,
179
,
122
,
123
,
/* 440 */
1
23
,
177
,
684
,
117
,
118
,
120
,
106
,
104
,
722
,
122
,
/* 450 */
1
,
505
,
108
,
104
,
105
,
106
,
107
,
109
,
24
,
180
,
/* 450 */
92
,
121
,
108
,
105
,
107
,
109
,
1
,
24
,
180
,
179
,
/* 460 */
181
,
182
,
61
1
,
184
,
185
,
604
,
12
,
13
,
187
,
190
,
/* 460 */
181
,
182
,
61
2
,
184
,
185
,
605
,
58
,
12
,
13
,
99
,
/* 470 */
96
,
533
,
99
,
157
,
58
,
538
,
196
,
100
,
19
,
4
,
/* 470 */
190
,
187
,
96
,
534
,
157
,
539
,
196
,
100
,
19
,
6
4
,
/* 480 */
579
,
3
,
16
,
20
,
64
,
5
,
206
,
6
,
208
,
479
,
/* 480 */
479
,
580
,
3
,
20
,
4
,
16
,
206
,
6
,
208
,
478
,
/* 490 */
47
8
,
477
,
476
,
475
,
474
,
473
,
472
,
470
,
47
,
221
,
/* 490 */
47
7
,
476
,
475
,
5
,
474
,
473
,
472
,
470
,
47
,
443
,
/* 500 */
443
,
67
,
445
,
22
,
500
,
48
,
499
,
497
,
464
,
56
,
/* 500 */
67
,
445
,
22
,
221
,
500
,
48
,
499
,
497
,
56
,
464
,
/* 510 */
462
,
454
,
69
,
460
,
456
,
71
,
458
,
452
,
450
,
471
,
/* 510 */
462
,
454
,
460
,
69
,
456
,
71
,
458
,
452
,
450
,
471
,
/* 520 */
469
,
82
,
441
,
425
,
415
,
93
,
614
,
616
,
94
,
/* 520 */
469
,
82
,
441
,
425
,
93
,
415
,
618
,
617
,
617
,
94
,
};
};
static
const
YYCODETYPE
yy_lookahead
[]
=
{
static
const
YYCODETYPE
yy_lookahead
[]
=
{
/* 0 */
1
,
33
,
34
,
198
,
199
,
37
,
38
,
39
,
9
,
37
,
/* 0 */
199
,
1
,
247
,
199
,
199
,
216
,
196
,
197
,
247
,
9
,
/* 10 */
38
,
39
,
13
,
14
,
100
,
16
,
17
,
62
,
63
,
64
,
/* 10 */
247
,
256
,
257
,
13
,
14
,
199
,
16
,
17
,
257
,
256
,
/* 20 */
21
,
66
,
67
,
24
,
25
,
26
,
27
,
28
,
73
,
247
,
/* 20 */
257
,
21
,
1
,
234
,
24
,
25
,
26
,
27
,
28
,
247
,
/* 30 */
199
,
117
,
33
,
34
,
199
,
61
,
37
,
38
,
39
,
13
,
/* 30 */
9
,
198
,
199
,
33
,
34
,
199
,
234
,
37
,
38
,
39
,
/* 40 */
14
,
259
,
16
,
17
,
62
,
63
,
64
,
21
,
66
,
67
,
/* 40 */
13
,
14
,
232
,
16
,
17
,
216
,
247
,
231
,
21
,
233
,
/* 50 */
24
,
25
,
26
,
27
,
28
,
71
,
247
,
196
,
197
,
33
,
/* 50 */
249
,
24
,
25
,
26
,
27
,
28
,
251
,
253
,
253
,
255
,
/* 60 */
34
,
77
,
77
,
37
,
38
,
39
,
13
,
14
,
259
,
16
,
/* 60 */
33
,
34
,
199
,
234
,
37
,
38
,
39
,
13
,
14
,
247
,
/* 70 */
17
,
62
,
63
,
64
,
21
,
66
,
67
,
24
,
25
,
26
,
/* 70 */
16
,
17
,
62
,
63
,
64
,
21
,
66
,
67
,
24
,
25
,
/* 80 */
27
,
28
,
251
,
248
,
253
,
247
,
33
,
34
,
1
,
199
,
/* 80 */
26
,
27
,
28
,
73
,
248
,
216
,
5
,
33
,
34
,
1
,
/* 90 */
37
,
38
,
39
,
232
,
256
,
257
,
9
,
247
,
99
,
125
,
/* 90 */
199
,
37
,
38
,
39
,
231
,
199
,
233
,
9
,
199
,
99
,
/* 100 */
247
,
247
,
128
,
129
,
199
,
14
,
1
,
16
,
17
,
256
,
/* 100 */
62
,
63
,
64
,
234
,
66
,
67
,
14
,
95
,
16
,
17
,
/* 110 */
257
,
257
,
21
,
216
,
9
,
24
,
25
,
26
,
27
,
28
,
/* 110 */
98
,
99
,
77
,
21
,
33
,
34
,
24
,
25
,
26
,
27
,
/* 120 */
199
,
231
,
96
,
233
,
33
,
34
,
216
,
199
,
37
,
38
,
/* 120 */
28
,
199
,
231
,
96
,
233
,
33
,
34
,
199
,
247
,
37
,
/* 130 */
39
,
234
,
45
,
46
,
47
,
48
,
49
,
50
,
51
,
52
,
/* 130 */
38
,
39
,
199
,
45
,
46
,
47
,
48
,
49
,
50
,
51
,
/* 140 */
53
,
54
,
55
,
56
,
234
,
16
,
17
,
58
,
247
,
228
,
/* 140 */
52
,
53
,
54
,
55
,
56
,
247
,
16
,
17
,
58
,
253
,
/* 150 */
21
,
216
,
199
,
24
,
25
,
26
,
27
,
28
,
253
,
231
,
/* 150 */
228
,
21
,
253
,
124
,
24
,
25
,
26
,
27
,
28
,
231
,
/* 160 */
255
,
233
,
33
,
34
,
199
,
247
,
37
,
38
,
39
,
234
,
/* 160 */
131
,
233
,
133
,
33
,
34
,
247
,
233
,
37
,
38
,
39
,
/* 170 */
199
,
247
,
199
,
84
,
85
,
86
,
87
,
88
,
89
,
90
,
/* 170 */
203
,
61
,
247
,
206
,
84
,
85
,
86
,
87
,
88
,
89
,
/* 180 */
91
,
92
,
93
,
94
,
215
,
199
,
217
,
218
,
219
,
220
,
/* 180 */
90
,
91
,
92
,
93
,
94
,
215
,
247
,
217
,
218
,
219
,
/* 190 */
221
,
222
,
223
,
224
,
225
,
226
,
227
,
1
,
2
,
44
,
/* 190 */
220
,
221
,
222
,
223
,
224
,
225
,
226
,
227
,
1
,
2
,
/* 200 */
58
,
5
,
231
,
7
,
233
,
9
,
253
,
1
,
2
,
5
,
/* 200 */
44
,
247
,
5
,
247
,
7
,
71
,
9
,
203
,
1
,
2
,
/* 210 */
199
,
5
,
234
,
7
,
249
,
9
,
61
,
231
,
95
,
233
,
/* 210 */
206
,
77
,
5
,
259
,
7
,
259
,
9
,
61
,
37
,
38
,
/* 220 */
229
,
98
,
99
,
68
,
69
,
70
,
253
,
124
,
86
,
33
,
/* 220 */
39
,
58
,
59
,
60
,
68
,
69
,
70
,
58
,
110
,
111
,
/* 230 */
34
,
76
,
203
,
37
,
131
,
206
,
133
,
33
,
34
,
33
,
/* 230 */
33
,
34
,
76
,
100
,
37
,
125
,
103
,
247
,
128
,
129
,
/* 240 */
34
,
1
,
2
,
37
,
233
,
5
,
5
,
7
,
7
,
9
,
/* 240 */
33
,
34
,
1
,
2
,
37
,
217
,
5
,
219
,
7
,
247
,
/* 250 */
25
,
26
,
27
,
28
,
217
,
235
,
219
,
102
,
33
,
34
,
/* 250 */
9
,
25
,
26
,
27
,
28
,
86
,
247
,
235
,
102
,
33
,
/* 260 */
110
,
111
,
37
,
38
,
39
,
2
,
246
,
96
,
5
,
57
,
/* 260 */
34
,
126
,
127
,
37
,
38
,
39
,
2
,
203
,
246
,
5
,
/* 270 */
7
,
100
,
9
,
33
,
34
,
120
,
203
,
1
,
123
,
206
,
/* 270 */
206
,
7
,
247
,
9
,
33
,
34
,
120
,
33
,
34
,
123
,
/* 280 */
58
,
59
,
60
,
203
,
100
,
130
,
206
,
103
,
96
,
96
,
/* 280 */
96
,
37
,
38
,
39
,
100
,
5
,
130
,
7
,
1
,
62
,
/* 290 */
96
,
95
,
100
,
100
,
100
,
96
,
33
,
34
,
96
,
100
,
/* 290 */
63
,
64
,
95
,
66
,
67
,
96
,
96
,
33
,
34
,
100
,
/* 300 */
104
,
95
,
100
,
5
,
5
,
7
,
7
,
95
,
100
,
5
,
/* 300 */
100
,
104
,
95
,
57
,
96
,
96
,
96
,
247
,
100
,
100
,
/* 310 */
104
,
7
,
96
,
37
,
96
,
119
,
100
,
247
,
100
,
247
,
/* 310 */
100
,
104
,
5
,
100
,
7
,
96
,
119
,
100
,
96
,
100
,
/* 320 */
96
,
126
,
127
,
115
,
100
,
119
,
126
,
127
,
71
,
72
,
/* 320 */
247
,
96
,
100
,
247
,
37
,
100
,
119
,
5
,
234
,
7
,
/* 330 */
247
,
247
,
247
,
247
,
230
,
95
,
234
,
247
,
229
,
247
,
/* 330 */
117
,
5
,
115
,
7
,
71
,
72
,
95
,
126
,
127
,
230
,
/* 340 */
247
,
247
,
247
,
247
,
104
,
247
,
247
,
247
,
229
,
229
,
/* 340 */
247
,
95
,
247
,
247
,
247
,
104
,
229
,
199
,
229
,
229
,
/* 350 */
229
,
229
,
199
,
229
,
236
,
199
,
199
,
199
,
199
,
119
,
/* 350 */
229
,
229
,
229
,
229
,
199
,
254
,
254
,
199
,
199
,
199
,
/* 360 */
254
,
254
,
199
,
199
,
101
,
199
,
199
,
199
,
199
,
199
,
/* 360 */
119
,
236
,
122
,
199
,
199
,
101
,
199
,
199
,
57
,
199
,
/* 370 */
122
,
199
,
199
,
199
,
199
,
199
,
199
,
199
,
199
,
199
,
/* 370 */
199
,
199
,
199
,
199
,
199
,
199
,
199
,
199
,
199
,
199
,
/* 380 */
199
,
199
,
199
,
258
,
199
,
199
,
199
,
199
,
199
,
199
,
/* 380 */
104
,
199
,
199
,
114
,
199
,
199
,
199
,
199
,
199
,
199
,
/* 390 */
199
,
57
,
104
,
250
,
250
,
114
,
199
,
199
,
116
,
245
,
/* 390 */
199
,
199
,
199
,
199
,
199
,
199
,
258
,
199
,
245
,
250
,
/* 400 */
199
,
108
,
199
,
113
,
244
,
200
,
112
,
200
,
243
,
200
,
/* 400 */
250
,
200
,
200
,
200
,
200
,
116
,
244
,
113
,
108
,
243
,
/* 410 */
200
,
105
,
107
,
106
,
118
,
102
,
74
,
49
,
83
,
82
,
/* 410 */
112
,
107
,
106
,
105
,
118
,
102
,
74
,
83
,
82
,
49
,
/* 420 */
79
,
200
,
53
,
200
,
81
,
80
,
78
,
74
,
200
,
5
,
/* 420 */
200
,
200
,
79
,
78
,
53
,
81
,
80
,
204
,
204
,
200
,
/* 430 */
204
,
204
,
132
,
200
,
5
,
132
,
201
,
201
,
65
,
200
,
/* 430 */
74
,
5
,
5
,
132
,
132
,
200
,
5
,
201
,
200
,
208
,
/* 440 */
208
,
5
,
212
,
214
,
213
,
211
,
209
,
132
,
210
,
207
,
/* 440 */
207
,
65
,
214
,
213
,
212
,
211
,
240
,
242
,
232
,
210
,
/* 450 */
205
,
232
,
238
,
242
,
241
,
240
,
239
,
237
,
202
,
5
,
/* 450 */
201
,
209
,
238
,
241
,
239
,
237
,
205
,
202
,
5
,
132
,
/* 460 */
132
,
65
,
5
,
132
,
65
,
85
,
95
,
95
,
124
,
122
,
/* 460 */
132
,
65
,
5
,
132
,
65
,
85
,
100
,
95
,
95
,
95
,
/* 470 */
121
,
96
,
95
,
1
,
100
,
96
,
95
,
95
,
100
,
109
,
/* 470 */
122
,
124
,
121
,
96
,
1
,
96
,
95
,
95
,
100
,
71
,
/* 480 */
96
,
95
,
95
,
100
,
71
,
109
,
97
,
95
,
97
,
9
,
/* 480 */
9
,
96
,
95
,
100
,
109
,
95
,
97
,
95
,
97
,
5
,
/* 490 */
5
,
5
,
5
,
5
,
1
,
5
,
5
,
5
,
100
,
15
,
/* 490 */
5
,
5
,
5
,
109
,
1
,
5
,
5
,
5
,
100
,
75
,
/* 500 */
75
,
71
,
65
,
100
,
5
,
16
,
5
,
96
,
5
,
95
,
/* 500 */
71
,
65
,
100
,
15
,
5
,
16
,
5
,
96
,
95
,
5
,
/* 510 */
5
,
5
,
127
,
5
,
5
,
127
,
5
,
5
,
5
,
5
,
/* 510 */
5
,
5
,
5
,
127
,
5
,
127
,
5
,
5
,
5
,
5
,
/* 520 */
5
,
65
,
75
,
65
,
57
,
21
,
0
,
260
,
21
,
/* 520 */
5
,
65
,
75
,
65
,
21
,
57
,
0
,
260
,
260
,
21
,
/* 530 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 540 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 550 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 560 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 570 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 580 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 590 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 600 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 610 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 620 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 630 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 640 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 650 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 660 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 670 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 680 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 690 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 700 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 710 */
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
260
,
/* 720 */
260
,
260
,
260
,
260
,
260
,
};
};
#define YY_SHIFT_USE_DFLT (-87)
#define YY_SHIFT_COUNT (250)
#define YY_SHIFT_COUNT (250)
#define YY_SHIFT_MIN (0)
#define YY_SHIFT_MIN (-86)
#define YY_SHIFT_MAX (526)
#define YY_SHIFT_MAX (526)
static
const
unsigned
short
int
yy_shift_ofst
[]
=
{
static
const
short
yy_shift_ofst
[]
=
{
/* 0 */
156
,
90
,
197
,
241
,
21
,
21
,
21
,
21
,
21
,
21
,
/* 0 */
155
,
89
,
196
,
240
,
105
,
105
,
105
,
105
,
105
,
105
,
/* 10 */
0
,
88
,
241
,
241
,
241
,
264
,
264
,
264
,
21
,
21
,
/* 10 */
-
1
,
87
,
240
,
240
,
240
,
263
,
263
,
263
,
105
,
105
,
/* 20 */
21
,
21
,
21
,
134
,
169
,
35
,
35
,
530
,
207
,
241
,
/* 20 */
105
,
105
,
105
,
-
16
,
142
,
-
15
,
-
15
,
-
87
,
206
,
240
,
/* 30 */
241
,
241
,
241
,
241
,
241
,
241
,
241
,
241
,
241
,
241
,
/* 30 */
240
,
240
,
240
,
240
,
240
,
240
,
240
,
240
,
240
,
240
,
/* 40 */
241
,
241
,
241
,
241
,
241
,
241
,
241
,
264
,
264
,
81
,
/* 40 */
240
,
240
,
240
,
240
,
240
,
240
,
240
,
263
,
263
,
204
,
/* 50 */
81
,
81
,
81
,
81
,
81
,
12
,
81
,
21
,
21
,
118
,
/* 50 */
204
,
204
,
204
,
204
,
204
,
123
,
204
,
105
,
105
,
150
,
/* 60 */
118
,
133
,
21
,
21
,
21
,
21
,
21
,
21
,
21
,
21
,
/* 60 */
150
,
184
,
105
,
105
,
105
,
105
,
105
,
105
,
105
,
105
,
/* 70 */
21
,
21
,
21
,
21
,
21
,
21
,
21
,
21
,
21
,
21
,
/* 70 */
105
,
105
,
105
,
105
,
105
,
105
,
105
,
105
,
105
,
105
,
/* 80 */
21
,
21
,
21
,
21
,
21
,
21
,
21
,
21
,
21
,
21
,
/* 80 */
105
,
105
,
105
,
105
,
105
,
105
,
105
,
105
,
105
,
105
,
/* 90 */
21
,
21
,
21
,
21
,
21
,
240
,
311
,
311
,
311
,
276
,
/* 90 */
105
,
105
,
105
,
105
,
105
,
248
,
334
,
334
,
334
,
288
,
/* 100 */
276
,
311
,
269
,
289
,
294
,
300
,
298
,
304
,
306
,
308
,
/* 100 */
288
,
334
,
281
,
282
,
290
,
293
,
294
,
305
,
307
,
306
,
/* 110 */
296
,
313
,
311
,
311
,
342
,
342
,
311
,
334
,
336
,
370
,
/* 110 */
296
,
313
,
334
,
334
,
342
,
342
,
334
,
335
,
337
,
368
,
/* 120 */
343
,
344
,
371
,
346
,
345
,
311
,
356
,
311
,
356
,
530
,
/* 120 */
341
,
343
,
369
,
345
,
348
,
334
,
353
,
334
,
353
,
-
87
,
/* 130 */
530
,
27
,
54
,
54
,
54
,
54
,
54
,
92
,
130
,
226
,
/* 130 */
-
87
,
26
,
53
,
53
,
53
,
53
,
53
,
91
,
129
,
225
,
/* 140 */
226
,
226
,
10
,
244
,
244
,
244
,
244
,
38
,
227
,
110
,
/* 140 */
225
,
225
,
-
45
,
-
32
,
-
32
,
-
32
,
-
32
,
-
18
,
9
,
-
26
,
/* 150 */
29
,
181
,
181
,
163
,
184
,
199
,
200
,
208
,
209
,
210
,
/* 150 */
103
,
-
28
,
-
28
,
222
,
171
,
192
,
193
,
194
,
199
,
202
,
/* 160 */
280
,
307
,
287
,
246
,
213
,
217
,
219
,
222
,
225
,
322
,
/* 160 */
241
,
298
,
276
,
212
,
-
86
,
208
,
216
,
218
,
224
,
299
,
/* 170 */
326
,
135
,
211
,
263
,
426
,
301
,
427
,
302
,
376
,
431
,
/* 170 */
304
,
195
,
200
,
257
,
424
,
300
,
429
,
303
,
373
,
436
,
/* 180 */
327
,
453
,
328
,
396
,
457
,
331
,
399
,
380
,
347
,
372
,
/* 180 */
315
,
454
,
328
,
396
,
457
,
331
,
399
,
380
,
344
,
371
,
/* 190 */
373
,
348
,
351
,
366
,
377
,
374
,
473
,
381
,
379
,
382
,
/* 190 */
372
,
347
,
349
,
374
,
375
,
377
,
472
,
381
,
379
,
382
,
/* 200 */
378
,
375
,
383
,
384
,
385
,
387
,
390
,
389
,
392
,
391
,
/* 200 */
378
,
370
,
383
,
376
,
384
,
386
,
387
,
389
,
392
,
391
,
/* 210 */
408
,
471
,
484
,
485
,
486
,
487
,
493
,
490
,
491
,
492
,
/* 210 */
413
,
480
,
485
,
486
,
487
,
488
,
493
,
490
,
491
,
492
,
/* 220 */
398
,
424
,
488
,
429
,
436
,
489
,
386
,
388
,
402
,
499
,
/* 220 */
398
,
425
,
484
,
430
,
437
,
489
,
385
,
388
,
403
,
499
,
/* 230 */
501
,
411
,
413
,
402
,
504
,
505
,
506
,
507
,
509
,
511
,
/* 230 */
501
,
411
,
414
,
403
,
503
,
505
,
506
,
508
,
509
,
511
,
/* 240 */
512
,
513
,
514
,
515
,
456
,
458
,
447
,
503
,
508
,
468
,
/* 240 */
512
,
513
,
514
,
515
,
456
,
458
,
447
,
504
,
507
,
467
,
/* 250 */
526
,
/* 250 */
526
,
};
};
#define YY_REDUCE_USE_DFLT (-219)
#define YY_REDUCE_COUNT (130)
#define YY_REDUCE_COUNT (130)
#define YY_REDUCE_MIN (-2
18
)
#define YY_REDUCE_MIN (-2
45
)
#define YY_REDUCE_MAX (25
6
)
#define YY_REDUCE_MAX (25
5
)
static
const
short
yy_reduce_ofst
[]
=
{
static
const
short
yy_reduce_ofst
[]
=
{
/* 0 */
-
1
39
,
-
31
,
-
162
,
-
147
,
-
95
,
-
169
,
-
110
,
-
72
,
-
29
,
-
14
,
/* 0 */
-
1
90
,
-
30
,
-
245
,
-
237
,
-
196
,
-
195
,
-
184
,
-
137
,
-
109
,
-
72
,
/* 10 */
-
16
5
,
-
195
,
-
218
,
-
191
,
-
146
,
-
103
,
-
90
,
-
65
,
-
35
,
-
47
,
/* 10 */
-
16
4
,
-
167
,
-
46
,
-
44
,
-
239
,
-
211
,
-
171
,
-
131
,
-
199
,
-
104
,
/* 20 */
-
27
,
-
79
,
11
,
29
,
37
,
73
,
80
,
20
,
-
150
,
-
99
,
/* 20 */
-
101
,
-
78
,
-
67
,
-
33
,
28
,
4
,
64
,
22
,
-
218
,
-
201
,
/* 30 */
-
82
,
-
76
,
70
,
72
,
83
,
84
,
85
,
86
,
90
,
92
,
/* 30 */
-
178
,
-
119
,
-
102
,
-
82
,
-
75
,
-
61
,
-
10
,
2
,
9
,
25
,
/* 40 */
93
,
94
,
95
,
96
,
98
,
99
,
100
,
-
22
,
102
,
-
9
,
/* 40 */
60
,
73
,
76
,
93
,
95
,
96
,
97
,
-
198
,
94
,
117
,
/* 50 */
1
09
,
119
,
120
,
121
,
122
,
104
,
124
,
153
,
156
,
106
,
/* 50 */
1
19
,
120
,
121
,
122
,
123
,
109
,
124
,
148
,
155
,
101
,
/* 60 */
10
7
,
118
,
157
,
158
,
159
,
163
,
164
,
166
,
167
,
168
,
/* 60 */
10
2
,
125
,
158
,
159
,
160
,
164
,
165
,
167
,
168
,
170
,
/* 70 */
1
69
,
170
,
172
,
173
,
174
,
175
,
176
,
177
,
178
,
179
,
/* 70 */
1
71
,
172
,
173
,
174
,
175
,
176
,
177
,
178
,
179
,
180
,
/* 80 */
18
0
,
181
,
182
,
183
,
185
,
186
,
187
,
188
,
189
,
190
,
/* 80 */
18
2
,
183
,
185
,
186
,
187
,
188
,
189
,
190
,
191
,
192
,
/* 90 */
19
1
,
197
,
198
,
201
,
203
,
125
,
205
,
207
,
209
,
143
,
/* 90 */
19
3
,
194
,
195
,
196
,
198
,
138
,
201
,
202
,
203
,
149
,
/* 100 */
1
44
,
210
,
154
,
160
,
165
,
211
,
213
,
215
,
217
,
214
,
/* 100 */
1
50
,
204
,
153
,
162
,
166
,
205
,
212
,
206
,
215
,
214
,
/* 110 */
2
20
,
219
,
221
,
223
,
226
,
227
,
228
,
229
,
231
,
230
,
/* 110 */
2
18
,
216
,
220
,
221
,
223
,
224
,
229
,
228
,
230
,
232
,
/* 120 */
23
2
,
234
,
237
,
238
,
242
,
233
,
235
,
239
,
236
,
245
,
/* 120 */
23
1
,
234
,
242
,
239
,
233
,
235
,
236
,
238
,
249
,
251
,
/* 130 */
25
6
,
/* 130 */
25
5
,
};
};
static
const
YYACTIONTYPE
yy_default
[]
=
{
static
const
YYACTIONTYPE
yy_default
[]
=
{
/* 0 */
827
,
660
,
811
,
811
,
827
,
827
,
827
,
827
,
827
,
827
,
/* 0 */
615
,
664
,
816
,
816
,
615
,
615
,
615
,
615
,
615
,
615
,
/* 10 */
74
1
,
627
,
827
,
827
,
811
,
827
,
827
,
827
,
827
,
827
,
/* 10 */
74
6
,
631
,
615
,
615
,
816
,
615
,
615
,
615
,
615
,
615
,
/* 20 */
827
,
827
,
827
,
662
,
649
,
662
,
662
,
736
,
827
,
827
,
/* 20 */
615
,
615
,
615
,
666
,
653
,
666
,
666
,
741
,
615
,
615
,
/* 30 */
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
/* 30 */
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
/* 40 */
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
/* 40 */
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
/* 50 */
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
760
,
/* 50 */
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
765
,
/* 60 */
76
0
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
/* 60 */
76
5
,
739
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
/* 70 */
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
647
,
/* 70 */
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
651
,
/* 80 */
827
,
645
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
/* 80 */
615
,
649
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
/* 90 */
827
,
827
,
827
,
827
,
827
,
827
,
629
,
629
,
629
,
827
,
/* 90 */
615
,
615
,
615
,
615
,
615
,
615
,
633
,
633
,
633
,
615
,
/* 100 */
827
,
629
,
767
,
771
,
765
,
753
,
761
,
752
,
748
,
747
,
/* 100 */
615
,
633
,
772
,
776
,
770
,
758
,
766
,
757
,
753
,
752
,
/* 110 */
7
75
,
827
,
629
,
629
,
657
,
657
,
629
,
678
,
676
,
674
,
/* 110 */
7
80
,
615
,
633
,
633
,
661
,
661
,
633
,
682
,
680
,
678
,
/* 120 */
6
66
,
672
,
668
,
670
,
664
,
629
,
655
,
629
,
655
,
693
,
/* 120 */
6
70
,
676
,
672
,
674
,
668
,
633
,
659
,
633
,
659
,
697
,
/* 130 */
7
06
,
827
,
815
,
816
,
776
,
810
,
766
,
794
,
793
,
806
,
/* 130 */
7
10
,
615
,
820
,
821
,
781
,
815
,
771
,
799
,
798
,
811
,
/* 140 */
80
0
,
799
,
827
,
798
,
797
,
796
,
795
,
827
,
827
,
827
,
/* 140 */
80
5
,
804
,
615
,
803
,
802
,
801
,
800
,
615
,
615
,
615
,
/* 150 */
827
,
802
,
801
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
/* 150 */
615
,
807
,
806
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
/* 160 */
827
,
827
,
827
,
778
,
772
,
768
,
827
,
827
,
827
,
827
,
/* 160 */
615
,
615
,
615
,
783
,
777
,
773
,
615
,
615
,
615
,
615
,
/* 170 */
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
/* 170 */
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
/* 180 */
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
/* 180 */
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
/* 190 */
827
,
812
,
827
,
742
,
827
,
827
,
827
,
827
,
827
,
827
,
/* 190 */
615
,
817
,
615
,
747
,
615
,
615
,
615
,
615
,
615
,
615
,
/* 200 */
76
2
,
827
,
754
,
827
,
827
,
827
,
827
,
827
,
827
,
715
,
/* 200 */
76
7
,
615
,
759
,
615
,
615
,
615
,
615
,
615
,
615
,
719
,
/* 210 */
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
/* 210 */
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
/* 220 */
68
1
,
827
,
827
,
827
,
827
,
827
,
827
,
827
,
820
,
827
,
/* 220 */
68
5
,
615
,
615
,
615
,
615
,
615
,
615
,
615
,
825
,
615
,
/* 230 */
827
,
827
,
709
,
818
,
827
,
827
,
827
,
827
,
827
,
827
,
/* 230 */
615
,
615
,
713
,
823
,
615
,
615
,
615
,
615
,
615
,
615
,
/* 240 */
827
,
827
,
827
,
827
,
827
,
827
,
827
,
633
,
631
,
827
,
/* 240 */
615
,
615
,
615
,
615
,
615
,
615
,
615
,
637
,
635
,
615
,
/* 250 */
827
,
/* 250 */
615
,
};
};
/********** End of lemon-generated parsing tables *****************************/
/********** End of lemon-generated parsing tables *****************************/
...
@@ -476,7 +490,7 @@ static const YYCODETYPE yyFallback[] = {
...
@@ -476,7 +490,7 @@ static const YYCODETYPE yyFallback[] = {
0
,
/* TABLE => nothing */
0
,
/* TABLE => nothing */
1
,
/* DATABASE => ID */
1
,
/* DATABASE => ID */
0
,
/* DNODE => nothing */
0
,
/* DNODE => nothing */
1
,
/*
IP
=> ID */
1
,
/*
IPTOKEN
=> ID */
0
,
/* USER => nothing */
0
,
/* USER => nothing */
0
,
/* ACCOUNT => nothing */
0
,
/* ACCOUNT => nothing */
0
,
/* USE => nothing */
0
,
/* USE => nothing */
...
@@ -512,7 +526,7 @@ static const YYCODETYPE yyFallback[] = {
...
@@ -512,7 +526,7 @@ static const YYCODETYPE yyFallback[] = {
0
,
/* USING => nothing */
0
,
/* USING => nothing */
0
,
/* AS => nothing */
0
,
/* AS => nothing */
0
,
/* COMMA => nothing */
0
,
/* COMMA => nothing */
0
,
/* NULL => nothing
*/
1
,
/* NULL => ID
*/
0
,
/* SELECT => nothing */
0
,
/* SELECT => nothing */
0
,
/* FROM => nothing */
0
,
/* FROM => nothing */
0
,
/* VARIABLE => nothing */
0
,
/* VARIABLE => nothing */
...
@@ -637,17 +651,21 @@ typedef struct yyStackEntry yyStackEntry;
...
@@ -637,17 +651,21 @@ typedef struct yyStackEntry yyStackEntry;
/* The state of the parser is completely contained in an instance of
/* The state of the parser is completely contained in an instance of
** the following structure */
** the following structure */
struct
yyParser
{
struct
yyParser
{
int
yyidx
;
/* Index of top element in
stack */
yyStackEntry
*
yytos
;
/* Pointer to top element of the
stack */
#ifdef YYTRACKMAXSTACKDEPTH
#ifdef YYTRACKMAXSTACKDEPTH
int
yy
idxMax
;
/* Maximum value of yyidx
*/
int
yy
hwm
;
/* High-water mark of the stack
*/
#endif
#endif
#ifndef YYNOERRORRECOVERY
int
yyerrcnt
;
/* Shifts left before out of the error */
int
yyerrcnt
;
/* Shifts left before out of the error */
#endif
ParseARG_SDECL
/* A place to hold %extra_argument */
ParseARG_SDECL
/* A place to hold %extra_argument */
#if YYSTACKDEPTH<=0
#if YYSTACKDEPTH<=0
int
yystksz
;
/* Current side of the stack */
int
yystksz
;
/* Current side of the stack */
yyStackEntry
*
yystack
;
/* The parser's stack */
yyStackEntry
*
yystack
;
/* The parser's stack */
yyStackEntry
yystk0
;
/* First stack entry */
#else
#else
yyStackEntry
yystack
[
YYSTACKDEPTH
];
/* The parser's stack */
yyStackEntry
yystack
[
YYSTACKDEPTH
];
/* The parser's stack */
yyStackEntry
*
yystackEnd
;
/* Last entry in the stack */
#endif
#endif
};
};
typedef
struct
yyParser
yyParser
;
typedef
struct
yyParser
yyParser
;
...
@@ -684,77 +702,272 @@ void ParseTrace(FILE *TraceFILE, char *zTracePrompt){
...
@@ -684,77 +702,272 @@ void ParseTrace(FILE *TraceFILE, char *zTracePrompt){
}
}
#endif
/* NDEBUG */
#endif
/* NDEBUG */
#if
ndef NDEBUG
#if
defined(YYCOVERAGE) || !defined(NDEBUG)
/* For tracing shifts, the names of all terminals and nonterminals
/* For tracing shifts, the names of all terminals and nonterminals
** are required. The following table supplies these names */
** are required. The following table supplies these names */
static
const
char
*
const
yyTokenName
[]
=
{
static
const
char
*
const
yyTokenName
[]
=
{
"$"
,
"ID"
,
"BOOL"
,
"TINYINT"
,
/* 0 */
"$"
,
"SMALLINT"
,
"INTEGER"
,
"BIGINT"
,
"FLOAT"
,
/* 1 */
"ID"
,
"DOUBLE"
,
"STRING"
,
"TIMESTAMP"
,
"BINARY"
,
/* 2 */
"BOOL"
,
"NCHAR"
,
"OR"
,
"AND"
,
"NOT"
,
/* 3 */
"TINYINT"
,
"EQ"
,
"NE"
,
"ISNULL"
,
"NOTNULL"
,
/* 4 */
"SMALLINT"
,
"IS"
,
"LIKE"
,
"GLOB"
,
"BETWEEN"
,
/* 5 */
"INTEGER"
,
"IN"
,
"GT"
,
"GE"
,
"LT"
,
/* 6 */
"BIGINT"
,
"LE"
,
"BITAND"
,
"BITOR"
,
"LSHIFT"
,
/* 7 */
"FLOAT"
,
"RSHIFT"
,
"PLUS"
,
"MINUS"
,
"DIVIDE"
,
/* 8 */
"DOUBLE"
,
"TIMES"
,
"STAR"
,
"SLASH"
,
"REM"
,
/* 9 */
"STRING"
,
"CONCAT"
,
"UMINUS"
,
"UPLUS"
,
"BITNOT"
,
/* 10 */
"TIMESTAMP"
,
"SHOW"
,
"DATABASES"
,
"MNODES"
,
"DNODES"
,
/* 11 */
"BINARY"
,
"ACCOUNTS"
,
"USERS"
,
"MODULES"
,
"QUERIES"
,
/* 12 */
"NCHAR"
,
"CONNECTIONS"
,
"STREAMS"
,
"CONFIGS"
,
"SCORES"
,
/* 13 */
"OR"
,
"GRANTS"
,
"DOT"
,
"TABLES"
,
"STABLES"
,
/* 14 */
"AND"
,
"VGROUPS"
,
"DROP"
,
"TABLE"
,
"DATABASE"
,
/* 15 */
"NOT"
,
"DNODE"
,
"IP"
,
"USER"
,
"ACCOUNT"
,
/* 16 */
"EQ"
,
"USE"
,
"DESCRIBE"
,
"ALTER"
,
"PASS"
,
/* 17 */
"NE"
,
"PRIVILEGE"
,
"LOCAL"
,
"IF"
,
"EXISTS"
,
/* 18 */
"ISNULL"
,
"CREATE"
,
"PPS"
,
"TSERIES"
,
"DBS"
,
/* 19 */
"NOTNULL"
,
"STORAGE"
,
"QTIME"
,
"CONNS"
,
"STATE"
,
/* 20 */
"IS"
,
"KEEP"
,
"CACHE"
,
"REPLICA"
,
"DAYS"
,
/* 21 */
"LIKE"
,
"ROWS"
,
"ABLOCKS"
,
"TBLOCKS"
,
"CTIME"
,
/* 22 */
"GLOB"
,
"CLOG"
,
"COMP"
,
"PRECISION"
,
"LP"
,
/* 23 */
"BETWEEN"
,
"RP"
,
"TAGS"
,
"USING"
,
"AS"
,
/* 24 */
"IN"
,
"COMMA"
,
"NULL"
,
"SELECT"
,
"FROM"
,
/* 25 */
"GT"
,
"VARIABLE"
,
"INTERVAL"
,
"FILL"
,
"SLIDING"
,
/* 26 */
"GE"
,
"ORDER"
,
"BY"
,
"ASC"
,
"DESC"
,
/* 27 */
"LT"
,
"GROUP"
,
"HAVING"
,
"LIMIT"
,
"OFFSET"
,
/* 28 */
"LE"
,
"SLIMIT"
,
"SOFFSET"
,
"WHERE"
,
"NOW"
,
/* 29 */
"BITAND"
,
"INSERT"
,
"INTO"
,
"VALUES"
,
"RESET"
,
/* 30 */
"BITOR"
,
"QUERY"
,
"ADD"
,
"COLUMN"
,
"TAG"
,
/* 31 */
"LSHIFT"
,
"CHANGE"
,
"SET"
,
"KILL"
,
"CONNECTION"
,
/* 32 */
"RSHIFT"
,
"COLON"
,
"STREAM"
,
"ABORT"
,
"AFTER"
,
/* 33 */
"PLUS"
,
"ATTACH"
,
"BEFORE"
,
"BEGIN"
,
"CASCADE"
,
/* 34 */
"MINUS"
,
"CLUSTER"
,
"CONFLICT"
,
"COPY"
,
"DEFERRED"
,
/* 35 */
"DIVIDE"
,
"DELIMITERS"
,
"DETACH"
,
"EACH"
,
"END"
,
/* 36 */
"TIMES"
,
"EXPLAIN"
,
"FAIL"
,
"FOR"
,
"IGNORE"
,
/* 37 */
"STAR"
,
"IMMEDIATE"
,
"INITIALLY"
,
"INSTEAD"
,
"MATCH"
,
/* 38 */
"SLASH"
,
"KEY"
,
"OF"
,
"RAISE"
,
"REPLACE"
,
/* 39 */
"REM"
,
"RESTRICT"
,
"ROW"
,
"STATEMENT"
,
"TRIGGER"
,
/* 40 */
"CONCAT"
,
"VIEW"
,
"ALL"
,
"COUNT"
,
"SUM"
,
/* 41 */
"UMINUS"
,
"AVG"
,
"MIN"
,
"MAX"
,
"FIRST"
,
/* 42 */
"UPLUS"
,
"LAST"
,
"TOP"
,
"BOTTOM"
,
"STDDEV"
,
/* 43 */
"BITNOT"
,
"PERCENTILE"
,
"APERCENTILE"
,
"LEASTSQUARES"
,
"HISTOGRAM"
,
/* 44 */
"SHOW"
,
"DIFF"
,
"SPREAD"
,
"TWA"
,
"INTERP"
,
/* 45 */
"DATABASES"
,
"LAST_ROW"
,
"SEMI"
,
"NONE"
,
"PREV"
,
/* 46 */
"MNODES"
,
"LINEAR"
,
"IMPORT"
,
"METRIC"
,
"TBNAME"
,
/* 47 */
"DNODES"
,
"JOIN"
,
"METRICS"
,
"STABLE"
,
"error"
,
/* 48 */
"ACCOUNTS"
,
"program"
,
"cmd"
,
"dbPrefix"
,
"ids"
,
/* 49 */
"USERS"
,
"cpxName"
,
"ifexists"
,
"alter_db_optr"
,
"acct_optr"
,
/* 50 */
"MODULES"
,
"ifnotexists"
,
"db_optr"
,
"pps"
,
"tseries"
,
/* 51 */
"QUERIES"
,
"dbs"
,
"streams"
,
"storage"
,
"qtime"
,
/* 52 */
"CONNECTIONS"
,
"users"
,
"conns"
,
"state"
,
"keep"
,
/* 53 */
"STREAMS"
,
"tagitemlist"
,
"tables"
,
"cache"
,
"replica"
,
/* 54 */
"CONFIGS"
,
"days"
,
"rows"
,
"ablocks"
,
"tblocks"
,
/* 55 */
"SCORES"
,
"ctime"
,
"clog"
,
"comp"
,
"prec"
,
/* 56 */
"GRANTS"
,
"typename"
,
"signed"
,
"create_table_args"
,
"columnlist"
,
/* 57 */
"DOT"
,
"select"
,
"column"
,
"tagitem"
,
"selcollist"
,
/* 58 */
"TABLES"
,
"from"
,
"where_opt"
,
"interval_opt"
,
"fill_opt"
,
/* 59 */
"STABLES"
,
"sliding_opt"
,
"groupby_opt"
,
"orderby_opt"
,
"having_opt"
,
/* 60 */
"VGROUPS"
,
"slimit_opt"
,
"limit_opt"
,
"sclp"
,
"expr"
,
/* 61 */
"DROP"
,
"as"
,
"tablelist"
,
"tmvar"
,
"sortlist"
,
/* 62 */
"TABLE"
,
"sortitem"
,
"item"
,
"sortorder"
,
"grouplist"
,
/* 63 */
"DATABASE"
,
"exprlist"
,
"expritem"
,
"insert_value_list"
,
"itemlist"
,
/* 64 */
"DNODE"
,
/* 65 */
"IPTOKEN"
,
/* 66 */
"USER"
,
/* 67 */
"ACCOUNT"
,
/* 68 */
"USE"
,
/* 69 */
"DESCRIBE"
,
/* 70 */
"ALTER"
,
/* 71 */
"PASS"
,
/* 72 */
"PRIVILEGE"
,
/* 73 */
"LOCAL"
,
/* 74 */
"IF"
,
/* 75 */
"EXISTS"
,
/* 76 */
"CREATE"
,
/* 77 */
"PPS"
,
/* 78 */
"TSERIES"
,
/* 79 */
"DBS"
,
/* 80 */
"STORAGE"
,
/* 81 */
"QTIME"
,
/* 82 */
"CONNS"
,
/* 83 */
"STATE"
,
/* 84 */
"KEEP"
,
/* 85 */
"CACHE"
,
/* 86 */
"REPLICA"
,
/* 87 */
"DAYS"
,
/* 88 */
"ROWS"
,
/* 89 */
"ABLOCKS"
,
/* 90 */
"TBLOCKS"
,
/* 91 */
"CTIME"
,
/* 92 */
"CLOG"
,
/* 93 */
"COMP"
,
/* 94 */
"PRECISION"
,
/* 95 */
"LP"
,
/* 96 */
"RP"
,
/* 97 */
"TAGS"
,
/* 98 */
"USING"
,
/* 99 */
"AS"
,
/* 100 */
"COMMA"
,
/* 101 */
"NULL"
,
/* 102 */
"SELECT"
,
/* 103 */
"FROM"
,
/* 104 */
"VARIABLE"
,
/* 105 */
"INTERVAL"
,
/* 106 */
"FILL"
,
/* 107 */
"SLIDING"
,
/* 108 */
"ORDER"
,
/* 109 */
"BY"
,
/* 110 */
"ASC"
,
/* 111 */
"DESC"
,
/* 112 */
"GROUP"
,
/* 113 */
"HAVING"
,
/* 114 */
"LIMIT"
,
/* 115 */
"OFFSET"
,
/* 116 */
"SLIMIT"
,
/* 117 */
"SOFFSET"
,
/* 118 */
"WHERE"
,
/* 119 */
"NOW"
,
/* 120 */
"INSERT"
,
/* 121 */
"INTO"
,
/* 122 */
"VALUES"
,
/* 123 */
"RESET"
,
/* 124 */
"QUERY"
,
/* 125 */
"ADD"
,
/* 126 */
"COLUMN"
,
/* 127 */
"TAG"
,
/* 128 */
"CHANGE"
,
/* 129 */
"SET"
,
/* 130 */
"KILL"
,
/* 131 */
"CONNECTION"
,
/* 132 */
"COLON"
,
/* 133 */
"STREAM"
,
/* 134 */
"ABORT"
,
/* 135 */
"AFTER"
,
/* 136 */
"ATTACH"
,
/* 137 */
"BEFORE"
,
/* 138 */
"BEGIN"
,
/* 139 */
"CASCADE"
,
/* 140 */
"CLUSTER"
,
/* 141 */
"CONFLICT"
,
/* 142 */
"COPY"
,
/* 143 */
"DEFERRED"
,
/* 144 */
"DELIMITERS"
,
/* 145 */
"DETACH"
,
/* 146 */
"EACH"
,
/* 147 */
"END"
,
/* 148 */
"EXPLAIN"
,
/* 149 */
"FAIL"
,
/* 150 */
"FOR"
,
/* 151 */
"IGNORE"
,
/* 152 */
"IMMEDIATE"
,
/* 153 */
"INITIALLY"
,
/* 154 */
"INSTEAD"
,
/* 155 */
"MATCH"
,
/* 156 */
"KEY"
,
/* 157 */
"OF"
,
/* 158 */
"RAISE"
,
/* 159 */
"REPLACE"
,
/* 160 */
"RESTRICT"
,
/* 161 */
"ROW"
,
/* 162 */
"STATEMENT"
,
/* 163 */
"TRIGGER"
,
/* 164 */
"VIEW"
,
/* 165 */
"ALL"
,
/* 166 */
"COUNT"
,
/* 167 */
"SUM"
,
/* 168 */
"AVG"
,
/* 169 */
"MIN"
,
/* 170 */
"MAX"
,
/* 171 */
"FIRST"
,
/* 172 */
"LAST"
,
/* 173 */
"TOP"
,
/* 174 */
"BOTTOM"
,
/* 175 */
"STDDEV"
,
/* 176 */
"PERCENTILE"
,
/* 177 */
"APERCENTILE"
,
/* 178 */
"LEASTSQUARES"
,
/* 179 */
"HISTOGRAM"
,
/* 180 */
"DIFF"
,
/* 181 */
"SPREAD"
,
/* 182 */
"TWA"
,
/* 183 */
"INTERP"
,
/* 184 */
"LAST_ROW"
,
/* 185 */
"SEMI"
,
/* 186 */
"NONE"
,
/* 187 */
"PREV"
,
/* 188 */
"LINEAR"
,
/* 189 */
"IMPORT"
,
/* 190 */
"METRIC"
,
/* 191 */
"TBNAME"
,
/* 192 */
"JOIN"
,
/* 193 */
"METRICS"
,
/* 194 */
"STABLE"
,
/* 195 */
"error"
,
/* 196 */
"program"
,
/* 197 */
"cmd"
,
/* 198 */
"dbPrefix"
,
/* 199 */
"ids"
,
/* 200 */
"cpxName"
,
/* 201 */
"ifexists"
,
/* 202 */
"alter_db_optr"
,
/* 203 */
"acct_optr"
,
/* 204 */
"ifnotexists"
,
/* 205 */
"db_optr"
,
/* 206 */
"pps"
,
/* 207 */
"tseries"
,
/* 208 */
"dbs"
,
/* 209 */
"streams"
,
/* 210 */
"storage"
,
/* 211 */
"qtime"
,
/* 212 */
"users"
,
/* 213 */
"conns"
,
/* 214 */
"state"
,
/* 215 */
"keep"
,
/* 216 */
"tagitemlist"
,
/* 217 */
"tables"
,
/* 218 */
"cache"
,
/* 219 */
"replica"
,
/* 220 */
"days"
,
/* 221 */
"rows"
,
/* 222 */
"ablocks"
,
/* 223 */
"tblocks"
,
/* 224 */
"ctime"
,
/* 225 */
"clog"
,
/* 226 */
"comp"
,
/* 227 */
"prec"
,
/* 228 */
"typename"
,
/* 229 */
"signed"
,
/* 230 */
"create_table_args"
,
/* 231 */
"columnlist"
,
/* 232 */
"select"
,
/* 233 */
"column"
,
/* 234 */
"tagitem"
,
/* 235 */
"selcollist"
,
/* 236 */
"from"
,
/* 237 */
"where_opt"
,
/* 238 */
"interval_opt"
,
/* 239 */
"fill_opt"
,
/* 240 */
"sliding_opt"
,
/* 241 */
"groupby_opt"
,
/* 242 */
"orderby_opt"
,
/* 243 */
"having_opt"
,
/* 244 */
"slimit_opt"
,
/* 245 */
"limit_opt"
,
/* 246 */
"sclp"
,
/* 247 */
"expr"
,
/* 248 */
"as"
,
/* 249 */
"tablelist"
,
/* 250 */
"tmvar"
,
/* 251 */
"sortlist"
,
/* 252 */
"sortitem"
,
/* 253 */
"item"
,
/* 254 */
"sortorder"
,
/* 255 */
"grouplist"
,
/* 256 */
"exprlist"
,
/* 257 */
"expritem"
,
/* 258 */
"insert_value_list"
,
/* 259 */
"itemlist"
,
};
};
#endif
/*
NDEBUG
*/
#endif
/*
defined(YYCOVERAGE) || !defined(NDEBUG)
*/
#ifndef NDEBUG
#ifndef NDEBUG
/* For tracing reduce actions, the names of all rules are required.
/* For tracing reduce actions, the names of all rules are required.
...
@@ -784,15 +997,15 @@ static const char *const yyRuleName[] = {
...
@@ -784,15 +997,15 @@ static const char *const yyRuleName[] = {
/* 21 */
"cmd ::= SHOW dbPrefix VGROUPS"
,
/* 21 */
"cmd ::= SHOW dbPrefix VGROUPS"
,
/* 22 */
"cmd ::= DROP TABLE ifexists ids cpxName"
,
/* 22 */
"cmd ::= DROP TABLE ifexists ids cpxName"
,
/* 23 */
"cmd ::= DROP DATABASE ifexists ids"
,
/* 23 */
"cmd ::= DROP DATABASE ifexists ids"
,
/* 24 */
"cmd ::= DROP DNODE IP"
,
/* 24 */
"cmd ::= DROP DNODE IP
TOKEN
"
,
/* 25 */
"cmd ::= DROP USER ids"
,
/* 25 */
"cmd ::= DROP USER ids"
,
/* 26 */
"cmd ::= DROP ACCOUNT ids"
,
/* 26 */
"cmd ::= DROP ACCOUNT ids"
,
/* 27 */
"cmd ::= USE ids"
,
/* 27 */
"cmd ::= USE ids"
,
/* 28 */
"cmd ::= DESCRIBE ids cpxName"
,
/* 28 */
"cmd ::= DESCRIBE ids cpxName"
,
/* 29 */
"cmd ::= ALTER USER ids PASS ids"
,
/* 29 */
"cmd ::= ALTER USER ids PASS ids"
,
/* 30 */
"cmd ::= ALTER USER ids PRIVILEGE ids"
,
/* 30 */
"cmd ::= ALTER USER ids PRIVILEGE ids"
,
/* 31 */
"cmd ::= ALTER DNODE IP ids"
,
/* 31 */
"cmd ::= ALTER DNODE IP
TOKEN
ids"
,
/* 32 */
"cmd ::= ALTER DNODE IP ids ids"
,
/* 32 */
"cmd ::= ALTER DNODE IP
TOKEN
ids ids"
,
/* 33 */
"cmd ::= ALTER LOCAL ids"
,
/* 33 */
"cmd ::= ALTER LOCAL ids"
,
/* 34 */
"cmd ::= ALTER LOCAL ids ids"
,
/* 34 */
"cmd ::= ALTER LOCAL ids ids"
,
/* 35 */
"cmd ::= ALTER DATABASE ids alter_db_optr"
,
/* 35 */
"cmd ::= ALTER DATABASE ids alter_db_optr"
,
...
@@ -804,7 +1017,7 @@ static const char *const yyRuleName[] = {
...
@@ -804,7 +1017,7 @@ static const char *const yyRuleName[] = {
/* 41 */
"ifexists ::="
,
/* 41 */
"ifexists ::="
,
/* 42 */
"ifnotexists ::= IF NOT EXISTS"
,
/* 42 */
"ifnotexists ::= IF NOT EXISTS"
,
/* 43 */
"ifnotexists ::="
,
/* 43 */
"ifnotexists ::="
,
/* 44 */
"cmd ::= CREATE DNODE IP"
,
/* 44 */
"cmd ::= CREATE DNODE IP
TOKEN
"
,
/* 45 */
"cmd ::= CREATE ACCOUNT ids PASS ids acct_optr"
,
/* 45 */
"cmd ::= CREATE ACCOUNT ids PASS ids acct_optr"
,
/* 46 */
"cmd ::= CREATE DATABASE ifnotexists ids db_optr"
,
/* 46 */
"cmd ::= CREATE DATABASE ifnotexists ids db_optr"
,
/* 47 */
"cmd ::= CREATE USER ids PASS ids"
,
/* 47 */
"cmd ::= CREATE USER ids PASS ids"
,
...
@@ -881,122 +1094,133 @@ static const char *const yyRuleName[] = {
...
@@ -881,122 +1094,133 @@ static const char *const yyRuleName[] = {
/* 118 */
"tagitem ::= PLUS FLOAT"
,
/* 118 */
"tagitem ::= PLUS FLOAT"
,
/* 119 */
"cmd ::= select"
,
/* 119 */
"cmd ::= select"
,
/* 120 */
"select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt"
,
/* 120 */
"select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt"
,
/* 121 */
"sclp ::= selcollist COMMA"
,
/* 121 */
"select ::= SELECT selcollist"
,
/* 122 */
"sclp ::="
,
/* 122 */
"sclp ::= selcollist COMMA"
,
/* 123 */
"selcollist ::= sclp expr as"
,
/* 123 */
"sclp ::="
,
/* 124 */
"selcollist ::= sclp STAR"
,
/* 124 */
"selcollist ::= sclp expr as"
,
/* 125 */
"as ::= AS ids"
,
/* 125 */
"selcollist ::= sclp STAR"
,
/* 126 */
"as ::= ids"
,
/* 126 */
"as ::= AS ids"
,
/* 127 */
"as ::="
,
/* 127 */
"as ::= ids"
,
/* 128 */
"from ::= FROM tablelist"
,
/* 128 */
"as ::="
,
/* 129 */
"tablelist ::= ids cpxName"
,
/* 129 */
"from ::= FROM tablelist"
,
/* 130 */
"tablelist ::= tablelist COMMA ids cpxName"
,
/* 130 */
"tablelist ::= ids cpxName"
,
/* 131 */
"tmvar ::= VARIABLE"
,
/* 131 */
"tablelist ::= tablelist COMMA ids cpxName"
,
/* 132 */
"interval_opt ::= INTERVAL LP tmvar RP"
,
/* 132 */
"tmvar ::= VARIABLE"
,
/* 133 */
"interval_opt ::="
,
/* 133 */
"interval_opt ::= INTERVAL LP tmvar RP"
,
/* 134 */
"fill_opt ::="
,
/* 134 */
"interval_opt ::="
,
/* 135 */
"fill_opt ::= FILL LP ID COMMA tagitemlist RP"
,
/* 135 */
"fill_opt ::="
,
/* 136 */
"fill_opt ::= FILL LP ID RP"
,
/* 136 */
"fill_opt ::= FILL LP ID COMMA tagitemlist RP"
,
/* 137 */
"sliding_opt ::= SLIDING LP tmvar RP"
,
/* 137 */
"fill_opt ::= FILL LP ID RP"
,
/* 138 */
"sliding_opt ::="
,
/* 138 */
"sliding_opt ::= SLIDING LP tmvar RP"
,
/* 139 */
"orderby_opt ::="
,
/* 139 */
"sliding_opt ::="
,
/* 140 */
"orderby_opt ::= ORDER BY sortlist"
,
/* 140 */
"orderby_opt ::="
,
/* 141 */
"sortlist ::= sortlist COMMA item sortorder"
,
/* 141 */
"orderby_opt ::= ORDER BY sortlist"
,
/* 142 */
"sortlist ::= item sortorder"
,
/* 142 */
"sortlist ::= sortlist COMMA item sortorder"
,
/* 143 */
"item ::= ids cpxName"
,
/* 143 */
"sortlist ::= item sortorder"
,
/* 144 */
"sortorder ::= ASC"
,
/* 144 */
"item ::= ids cpxName"
,
/* 145 */
"sortorder ::= DESC"
,
/* 145 */
"sortorder ::= ASC"
,
/* 146 */
"sortorder ::="
,
/* 146 */
"sortorder ::= DESC"
,
/* 147 */
"groupby_opt ::="
,
/* 147 */
"sortorder ::="
,
/* 148 */
"groupby_opt ::= GROUP BY grouplist"
,
/* 148 */
"groupby_opt ::="
,
/* 149 */
"grouplist ::= grouplist COMMA item"
,
/* 149 */
"groupby_opt ::= GROUP BY grouplist"
,
/* 150 */
"grouplist ::= item"
,
/* 150 */
"grouplist ::= grouplist COMMA item"
,
/* 151 */
"having_opt ::="
,
/* 151 */
"grouplist ::= item"
,
/* 152 */
"having_opt ::= HAVING expr"
,
/* 152 */
"having_opt ::="
,
/* 153 */
"limit_opt ::="
,
/* 153 */
"having_opt ::= HAVING expr"
,
/* 154 */
"limit_opt ::= LIMIT signed"
,
/* 154 */
"limit_opt ::="
,
/* 155 */
"limit_opt ::= LIMIT signed OFFSET signed"
,
/* 155 */
"limit_opt ::= LIMIT signed"
,
/* 156 */
"limit_opt ::= LIMIT signed COMMA signed"
,
/* 156 */
"limit_opt ::= LIMIT signed OFFSET signed"
,
/* 157 */
"slimit_opt ::="
,
/* 157 */
"limit_opt ::= LIMIT signed COMMA signed"
,
/* 158 */
"slimit_opt ::= SLIMIT signed"
,
/* 158 */
"slimit_opt ::="
,
/* 159 */
"slimit_opt ::= SLIMIT signed SOFFSET signed"
,
/* 159 */
"slimit_opt ::= SLIMIT signed"
,
/* 160 */
"slimit_opt ::= SLIMIT signed COMMA signed"
,
/* 160 */
"slimit_opt ::= SLIMIT signed SOFFSET signed"
,
/* 161 */
"where_opt ::="
,
/* 161 */
"slimit_opt ::= SLIMIT signed COMMA signed"
,
/* 162 */
"where_opt ::= WHERE expr"
,
/* 162 */
"where_opt ::="
,
/* 163 */
"expr ::= LP expr RP"
,
/* 163 */
"where_opt ::= WHERE expr"
,
/* 164 */
"expr ::= ID"
,
/* 164 */
"expr ::= LP expr RP"
,
/* 165 */
"expr ::= ID DOT ID"
,
/* 165 */
"expr ::= ID"
,
/* 166 */
"expr ::= ID DOT STAR"
,
/* 166 */
"expr ::= ID DOT ID"
,
/* 167 */
"expr ::= INTEGER"
,
/* 167 */
"expr ::= ID DOT STAR"
,
/* 168 */
"expr ::= MINUS INTEGER"
,
/* 168 */
"expr ::= INTEGER"
,
/* 169 */
"expr ::= PLUS INTEGER"
,
/* 169 */
"expr ::= MINUS INTEGER"
,
/* 170 */
"expr ::= FLOAT"
,
/* 170 */
"expr ::= PLUS INTEGER"
,
/* 171 */
"expr ::= MINUS FLOAT"
,
/* 171 */
"expr ::= FLOAT"
,
/* 172 */
"expr ::= PLUS FLOAT"
,
/* 172 */
"expr ::= MINUS FLOAT"
,
/* 173 */
"expr ::= STRING"
,
/* 173 */
"expr ::= PLUS FLOAT"
,
/* 174 */
"expr ::= NOW"
,
/* 174 */
"expr ::= STRING"
,
/* 175 */
"expr ::= VARIABLE"
,
/* 175 */
"expr ::= NOW"
,
/* 176 */
"expr ::= BOOL"
,
/* 176 */
"expr ::= VARIABLE"
,
/* 177 */
"expr ::= ID LP exprlist RP"
,
/* 177 */
"expr ::= BOOL"
,
/* 178 */
"expr ::= ID LP STAR RP"
,
/* 178 */
"expr ::= ID LP exprlist RP"
,
/* 179 */
"expr ::= expr AND expr"
,
/* 179 */
"expr ::= ID LP STAR RP"
,
/* 180 */
"expr ::= expr OR expr"
,
/* 180 */
"expr ::= expr AND expr"
,
/* 181 */
"expr ::= expr LT expr"
,
/* 181 */
"expr ::= expr OR expr"
,
/* 182 */
"expr ::= expr GT expr"
,
/* 182 */
"expr ::= expr LT expr"
,
/* 183 */
"expr ::= expr LE expr"
,
/* 183 */
"expr ::= expr GT expr"
,
/* 184 */
"expr ::= expr GE expr"
,
/* 184 */
"expr ::= expr LE expr"
,
/* 185 */
"expr ::= expr NE expr"
,
/* 185 */
"expr ::= expr GE expr"
,
/* 186 */
"expr ::= expr EQ expr"
,
/* 186 */
"expr ::= expr NE expr"
,
/* 187 */
"expr ::= expr PLUS expr"
,
/* 187 */
"expr ::= expr EQ expr"
,
/* 188 */
"expr ::= expr MINUS expr"
,
/* 188 */
"expr ::= expr PLUS expr"
,
/* 189 */
"expr ::= expr STAR expr"
,
/* 189 */
"expr ::= expr MINUS expr"
,
/* 190 */
"expr ::= expr SLASH expr"
,
/* 190 */
"expr ::= expr STAR expr"
,
/* 191 */
"expr ::= expr REM expr"
,
/* 191 */
"expr ::= expr SLASH expr"
,
/* 192 */
"expr ::= expr LIKE expr"
,
/* 192 */
"expr ::= expr REM expr"
,
/* 193 */
"expr ::= expr IN LP exprlist RP"
,
/* 193 */
"expr ::= expr LIKE expr"
,
/* 194 */
"exprlist ::= exprlist COMMA expritem"
,
/* 194 */
"expr ::= expr IN LP exprlist RP"
,
/* 195 */
"exprlist ::= expritem"
,
/* 195 */
"exprlist ::= exprlist COMMA expritem"
,
/* 196 */
"expritem ::= expr"
,
/* 196 */
"exprlist ::= expritem"
,
/* 197 */
"expritem ::="
,
/* 197 */
"expritem ::= expr"
,
/* 198 */
"cmd ::= INSERT INTO cpxName insert_value_list"
,
/* 198 */
"expritem ::="
,
/* 199 */
"insert_value_list ::= VALUES LP itemlist RP"
,
/* 199 */
"cmd ::= INSERT INTO cpxName insert_value_list"
,
/* 200 */
"insert_value_list ::= insert_value_list VALUES LP itemlist RP"
,
/* 200 */
"insert_value_list ::= VALUES LP itemlist RP"
,
/* 201 */
"itemlist ::= itemlist COMMA expr"
,
/* 201 */
"insert_value_list ::= insert_value_list VALUES LP itemlist RP"
,
/* 202 */
"itemlist ::= expr"
,
/* 202 */
"itemlist ::= itemlist COMMA expr"
,
/* 203 */
"cmd ::= RESET QUERY CACHE"
,
/* 203 */
"itemlist ::= expr"
,
/* 204 */
"cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist"
,
/* 204 */
"cmd ::= RESET QUERY CACHE"
,
/* 205 */
"cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids"
,
/* 205 */
"cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist"
,
/* 206 */
"cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist"
,
/* 206 */
"cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids"
,
/* 207 */
"cmd ::= ALTER TABLE ids cpxName DROP TAG ids"
,
/* 207 */
"cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist"
,
/* 208 */
"cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids"
,
/* 208 */
"cmd ::= ALTER TABLE ids cpxName DROP TAG ids"
,
/* 209 */
"cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem"
,
/* 209 */
"cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids"
,
/* 210 */
"cmd ::= KILL CONNECTION IP COLON INTEGER"
,
/* 210 */
"cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem"
,
/* 211 */
"cmd ::= KILL STREAM IP COLON INTEGER COLON INTEGER"
,
/* 211 */
"cmd ::= KILL CONNECTION IPTOKEN COLON INTEGER"
,
/* 212 */
"cmd ::= KILL QUERY IP COLON INTEGER COLON INTEGER"
,
/* 212 */
"cmd ::= KILL STREAM IPTOKEN COLON INTEGER COLON INTEGER"
,
/* 213 */
"cmd ::= KILL QUERY IPTOKEN COLON INTEGER COLON INTEGER"
,
};
};
#endif
/* NDEBUG */
#endif
/* NDEBUG */
#if YYSTACKDEPTH<=0
#if YYSTACKDEPTH<=0
/*
/*
** Try to increase the size of the parser stack.
** Try to increase the size of the parser stack. Return the number
** of errors. Return 0 on success.
*/
*/
static
void
yyGrowStack
(
yyParser
*
p
){
static
int
yyGrowStack
(
yyParser
*
p
){
int
newSize
;
int
newSize
;
int
idx
;
yyStackEntry
*
pNew
;
yyStackEntry
*
pNew
;
newSize
=
p
->
yystksz
*
2
+
100
;
newSize
=
p
->
yystksz
*
2
+
100
;
pNew
=
realloc
(
p
->
yystack
,
newSize
*
sizeof
(
pNew
[
0
]));
idx
=
p
->
yytos
?
(
int
)(
p
->
yytos
-
p
->
yystack
)
:
0
;
if
(
p
->
yystack
==&
p
->
yystk0
){
pNew
=
malloc
(
newSize
*
sizeof
(
pNew
[
0
]));
if
(
pNew
)
pNew
[
0
]
=
p
->
yystk0
;
}
else
{
pNew
=
realloc
(
p
->
yystack
,
newSize
*
sizeof
(
pNew
[
0
]));
}
if
(
pNew
){
if
(
pNew
){
p
->
yystack
=
pNew
;
p
->
yystack
=
pNew
;
p
->
yy
stksz
=
newSize
;
p
->
yy
tos
=
&
p
->
yystack
[
idx
]
;
#ifndef NDEBUG
#ifndef NDEBUG
if
(
yyTraceFILE
){
if
(
yyTraceFILE
){
fprintf
(
yyTraceFILE
,
"%sStack grows
to %d entries!
\n
"
,
fprintf
(
yyTraceFILE
,
"%sStack grows
from %d to %d entries.
\n
"
,
yyTracePrompt
,
p
->
yystksz
);
yyTracePrompt
,
p
->
yystksz
,
newSize
);
}
}
#endif
#endif
p
->
yystksz
=
newSize
;
}
}
return
pNew
==
0
;
}
}
#endif
#endif
...
@@ -1009,6 +1233,34 @@ static void yyGrowStack(yyParser *p){
...
@@ -1009,6 +1233,34 @@ static void yyGrowStack(yyParser *p){
# define YYMALLOCARGTYPE size_t
# define YYMALLOCARGTYPE size_t
#endif
#endif
/* Initialize a new parser that has already been allocated.
*/
void
ParseInit
(
void
*
yypParser
){
yyParser
*
pParser
=
(
yyParser
*
)
yypParser
;
#ifdef YYTRACKMAXSTACKDEPTH
pParser
->
yyhwm
=
0
;
#endif
#if YYSTACKDEPTH<=0
pParser
->
yytos
=
NULL
;
pParser
->
yystack
=
NULL
;
pParser
->
yystksz
=
0
;
if
(
yyGrowStack
(
pParser
)
){
pParser
->
yystack
=
&
pParser
->
yystk0
;
pParser
->
yystksz
=
1
;
}
#endif
#ifndef YYNOERRORRECOVERY
pParser
->
yyerrcnt
=
-
1
;
#endif
pParser
->
yytos
=
pParser
->
yystack
;
pParser
->
yystack
[
0
].
stateno
=
0
;
pParser
->
yystack
[
0
].
major
=
0
;
#if YYSTACKDEPTH>0
pParser
->
yystackEnd
=
&
pParser
->
yystack
[
YYSTACKDEPTH
-
1
];
#endif
}
#ifndef Parse_ENGINEALWAYSONSTACK
/*
/*
** This function allocates a new parser.
** This function allocates a new parser.
** The only argument is a pointer to a function which works like
** The only argument is a pointer to a function which works like
...
@@ -1024,19 +1276,11 @@ static void yyGrowStack(yyParser *p){
...
@@ -1024,19 +1276,11 @@ static void yyGrowStack(yyParser *p){
void
*
ParseAlloc
(
void
*
(
*
mallocProc
)(
YYMALLOCARGTYPE
)){
void
*
ParseAlloc
(
void
*
(
*
mallocProc
)(
YYMALLOCARGTYPE
)){
yyParser
*
pParser
;
yyParser
*
pParser
;
pParser
=
(
yyParser
*
)(
*
mallocProc
)(
(
YYMALLOCARGTYPE
)
sizeof
(
yyParser
)
);
pParser
=
(
yyParser
*
)(
*
mallocProc
)(
(
YYMALLOCARGTYPE
)
sizeof
(
yyParser
)
);
if
(
pParser
){
if
(
pParser
)
ParseInit
(
pParser
);
pParser
->
yyidx
=
-
1
;
#ifdef YYTRACKMAXSTACKDEPTH
pParser
->
yyidxMax
=
0
;
#endif
#if YYSTACKDEPTH<=0
pParser
->
yystack
=
NULL
;
pParser
->
yystksz
=
0
;
yyGrowStack
(
pParser
);
#endif
}
return
pParser
;
return
pParser
;
}
}
#endif
/* Parse_ENGINEALWAYSONSTACK */
/* The following function deletes the "minor type" or semantic value
/* The following function deletes the "minor type" or semantic value
** associated with a symbol. The symbol can be either a terminal
** associated with a symbol. The symbol can be either a terminal
...
@@ -1118,8 +1362,9 @@ tVariantDestroy(&(yypminor->yy186));
...
@@ -1118,8 +1362,9 @@ tVariantDestroy(&(yypminor->yy186));
*/
*/
static
void
yy_pop_parser_stack
(
yyParser
*
pParser
){
static
void
yy_pop_parser_stack
(
yyParser
*
pParser
){
yyStackEntry
*
yytos
;
yyStackEntry
*
yytos
;
assert
(
pParser
->
yyidx
>=
0
);
assert
(
pParser
->
yytos
!=
0
);
yytos
=
&
pParser
->
yystack
[
pParser
->
yyidx
--
];
assert
(
pParser
->
yytos
>
pParser
->
yystack
);
yytos
=
pParser
->
yytos
--
;
#ifndef NDEBUG
#ifndef NDEBUG
if
(
yyTraceFILE
){
if
(
yyTraceFILE
){
fprintf
(
yyTraceFILE
,
"%sPopping %s
\n
"
,
fprintf
(
yyTraceFILE
,
"%sPopping %s
\n
"
,
...
@@ -1130,6 +1375,18 @@ static void yy_pop_parser_stack(yyParser *pParser){
...
@@ -1130,6 +1375,18 @@ static void yy_pop_parser_stack(yyParser *pParser){
yy_destructor
(
pParser
,
yytos
->
major
,
&
yytos
->
minor
);
yy_destructor
(
pParser
,
yytos
->
major
,
&
yytos
->
minor
);
}
}
/*
** Clear all secondary memory allocations from the parser
*/
void
ParseFinalize
(
void
*
p
){
yyParser
*
pParser
=
(
yyParser
*
)
p
;
while
(
pParser
->
yytos
>
pParser
->
yystack
)
yy_pop_parser_stack
(
pParser
);
#if YYSTACKDEPTH<=0
if
(
pParser
->
yystack
!=&
pParser
->
yystk0
)
free
(
pParser
->
yystack
);
#endif
}
#ifndef Parse_ENGINEALWAYSONSTACK
/*
/*
** Deallocate and destroy a parser. Destructors are called for
** Deallocate and destroy a parser. Destructors are called for
** all stack elements before shutting the parser down.
** all stack elements before shutting the parser down.
...
@@ -1142,16 +1399,13 @@ void ParseFree(
...
@@ -1142,16 +1399,13 @@ void ParseFree(
void
*
p
,
/* The parser to be deleted */
void
*
p
,
/* The parser to be deleted */
void
(
*
freeProc
)(
void
*
)
/* Function used to reclaim memory */
void
(
*
freeProc
)(
void
*
)
/* Function used to reclaim memory */
){
){
yyParser
*
pParser
=
(
yyParser
*
)
p
;
#ifndef YYPARSEFREENEVERNULL
#ifndef YYPARSEFREENEVERNULL
if
(
pParser
==
0
)
return
;
if
(
p
==
0
)
return
;
#endif
while
(
pParser
->
yyidx
>=
0
)
yy_pop_parser_stack
(
pParser
);
#if YYSTACKDEPTH<=0
free
(
pParser
->
yystack
);
#endif
#endif
(
*
freeProc
)((
void
*
)
pParser
);
ParseFinalize
(
p
);
(
*
freeProc
)(
p
);
}
}
#endif
/* Parse_ENGINEALWAYSONSTACK */
/*
/*
** Return the peak depth of the stack for a parser.
** Return the peak depth of the stack for a parser.
...
@@ -1159,7 +1413,44 @@ void ParseFree(
...
@@ -1159,7 +1413,44 @@ void ParseFree(
#ifdef YYTRACKMAXSTACKDEPTH
#ifdef YYTRACKMAXSTACKDEPTH
int
ParseStackPeak
(
void
*
p
){
int
ParseStackPeak
(
void
*
p
){
yyParser
*
pParser
=
(
yyParser
*
)
p
;
yyParser
*
pParser
=
(
yyParser
*
)
p
;
return
pParser
->
yyidxMax
;
return
pParser
->
yyhwm
;
}
#endif
/* This array of booleans keeps track of the parser statement
** coverage. The element yycoverage[X][Y] is set when the parser
** is in state X and has a lookahead token Y. In a well-tested
** systems, every element of this matrix should end up being set.
*/
#if defined(YYCOVERAGE)
static
unsigned
char
yycoverage
[
YYNSTATE
][
YYNTOKEN
];
#endif
/*
** Write into out a description of every state/lookahead combination that
**
** (1) has not been used by the parser, and
** (2) is not a syntax error.
**
** Return the number of missed state/lookahead combinations.
*/
#if defined(YYCOVERAGE)
int
ParseCoverage
(
FILE
*
out
){
int
stateno
,
iLookAhead
,
i
;
int
nMissed
=
0
;
for
(
stateno
=
0
;
stateno
<
YYNSTATE
;
stateno
++
){
i
=
yy_shift_ofst
[
stateno
];
for
(
iLookAhead
=
0
;
iLookAhead
<
YYNTOKEN
;
iLookAhead
++
){
if
(
yy_lookahead
[
i
+
iLookAhead
]
!=
iLookAhead
)
continue
;
if
(
yycoverage
[
stateno
][
iLookAhead
]
==
0
)
nMissed
++
;
if
(
out
){
fprintf
(
out
,
"State %d lookahead %s %s
\n
"
,
stateno
,
yyTokenName
[
iLookAhead
],
yycoverage
[
stateno
][
iLookAhead
]
?
"ok"
:
"missed"
);
}
}
}
return
nMissed
;
}
}
#endif
#endif
...
@@ -1167,61 +1458,63 @@ int ParseStackPeak(void *p){
...
@@ -1167,61 +1458,63 @@ int ParseStackPeak(void *p){
** Find the appropriate action for a parser given the terminal
** Find the appropriate action for a parser given the terminal
** look-ahead token iLookAhead.
** look-ahead token iLookAhead.
*/
*/
static
int
yy_find_shift_action
(
static
unsigned
int
yy_find_shift_action
(
yyParser
*
pParser
,
/* The parser */
yyParser
*
pParser
,
/* The parser */
YYCODETYPE
iLookAhead
/* The look-ahead token */
YYCODETYPE
iLookAhead
/* The look-ahead token */
){
){
int
i
;
int
i
;
int
stateno
=
pParser
->
yy
stack
[
pParser
->
yyidx
].
stateno
;
int
stateno
=
pParser
->
yy
tos
->
stateno
;
if
(
stateno
>
=
YY_MIN_REDUCE
)
return
stateno
;
if
(
stateno
>
YY_MAX_SHIFT
)
return
stateno
;
assert
(
stateno
<=
YY_SHIFT_COUNT
);
assert
(
stateno
<=
YY_SHIFT_COUNT
);
#if defined(YYCOVERAGE)
yycoverage
[
stateno
][
iLookAhead
]
=
1
;
#endif
do
{
do
{
i
=
yy_shift_ofst
[
stateno
];
i
=
yy_shift_ofst
[
stateno
];
if
(
i
==
YY_SHIFT_USE_DFLT
)
return
yy_default
[
stateno
]
;
assert
(
i
>=
0
&&
i
+
YYNTOKEN
<=
sizeof
(
yy_lookahead
)
/
sizeof
(
yy_lookahead
[
0
])
)
;
assert
(
iLookAhead
!=
YYNOCODE
);
assert
(
iLookAhead
!=
YYNOCODE
);
assert
(
iLookAhead
<
YYNTOKEN
);
i
+=
iLookAhead
;
i
+=
iLookAhead
;
if
(
i
<
0
||
i
>=
YY_ACTTAB_COUNT
||
yy_lookahead
[
i
]
!=
iLookAhead
){
if
(
yy_lookahead
[
i
]
!=
iLookAhead
){
if
(
iLookAhead
>
0
){
#ifdef YYFALLBACK
#ifdef YYFALLBACK
YYCODETYPE
iFallback
;
/* Fallback token */
YYCODETYPE
iFallback
;
/* Fallback token */
if
(
iLookAhead
<
sizeof
(
yyFallback
)
/
sizeof
(
yyFallback
[
0
])
if
(
iLookAhead
<
sizeof
(
yyFallback
)
/
sizeof
(
yyFallback
[
0
])
&&
(
iFallback
=
yyFallback
[
iLookAhead
])
!=
0
){
&&
(
iFallback
=
yyFallback
[
iLookAhead
])
!=
0
){
#ifndef NDEBUG
#ifndef NDEBUG
if
(
yyTraceFILE
){
if
(
yyTraceFILE
){
fprintf
(
yyTraceFILE
,
"%sFALLBACK %s => %s
\n
"
,
fprintf
(
yyTraceFILE
,
"%sFALLBACK %s => %s
\n
"
,
yyTracePrompt
,
yyTokenName
[
iLookAhead
],
yyTokenName
[
iFallback
]);
yyTracePrompt
,
yyTokenName
[
iLookAhead
],
yyTokenName
[
iFallback
]);
}
#endif
assert
(
yyFallback
[
iFallback
]
==
0
);
/* Fallback loop must terminate */
iLookAhead
=
iFallback
;
continue
;
}
}
#endif
assert
(
yyFallback
[
iFallback
]
==
0
);
/* Fallback loop must terminate */
iLookAhead
=
iFallback
;
continue
;
}
#endif
#endif
#ifdef YYWILDCARD
#ifdef YYWILDCARD
{
{
int
j
=
i
-
iLookAhead
+
YYWILDCARD
;
int
j
=
i
-
iLookAhead
+
YYWILDCARD
;
if
(
if
(
#if YY_SHIFT_MIN+YYWILDCARD<0
#if YY_SHIFT_MIN+YYWILDCARD<0
j
>=
0
&&
j
>=
0
&&
#endif
#endif
#if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT
#if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT
j
<
YY_ACTTAB_COUNT
&&
j
<
YY_ACTTAB_COUNT
&&
#endif
#endif
yy_lookahead
[
j
]
==
YYWILDCARD
yy_lookahead
[
j
]
==
YYWILDCARD
&&
iLookAhead
>
0
){
){
#ifndef NDEBUG
#ifndef NDEBUG
if
(
yyTraceFILE
){
if
(
yyTraceFILE
){
fprintf
(
yyTraceFILE
,
"%sWILDCARD %s => %s
\n
"
,
fprintf
(
yyTraceFILE
,
"%sWILDCARD %s => %s
\n
"
,
yyTracePrompt
,
yyTokenName
[
iLookAhead
],
yyTracePrompt
,
yyTokenName
[
iLookAhead
],
yyTokenName
[
YYWILDCARD
]);
yyTokenName
[
YYWILDCARD
]);
}
#endif
/* NDEBUG */
return
yy_action
[
j
];
}
}
#endif
/* NDEBUG */
return
yy_action
[
j
];
}
}
#endif
/* YYWILDCARD */
}
}
#endif
/* YYWILDCARD */
return
yy_default
[
stateno
];
return
yy_default
[
stateno
];
}
else
{
}
else
{
return
yy_action
[
i
];
return
yy_action
[
i
];
...
@@ -1246,7 +1539,6 @@ static int yy_find_reduce_action(
...
@@ -1246,7 +1539,6 @@ static int yy_find_reduce_action(
assert
(
stateno
<=
YY_REDUCE_COUNT
);
assert
(
stateno
<=
YY_REDUCE_COUNT
);
#endif
#endif
i
=
yy_reduce_ofst
[
stateno
];
i
=
yy_reduce_ofst
[
stateno
];
assert
(
i
!=
YY_REDUCE_USE_DFLT
);
assert
(
iLookAhead
!=
YYNOCODE
);
assert
(
iLookAhead
!=
YYNOCODE
);
i
+=
iLookAhead
;
i
+=
iLookAhead
;
#ifdef YYERRORSYMBOL
#ifdef YYERRORSYMBOL
...
@@ -1263,15 +1555,14 @@ static int yy_find_reduce_action(
...
@@ -1263,15 +1555,14 @@ static int yy_find_reduce_action(
/*
/*
** The following routine is called if the stack overflows.
** The following routine is called if the stack overflows.
*/
*/
static
void
yyStackOverflow
(
yyParser
*
yypParser
,
YYMINORTYPE
*
yypMinor
){
static
void
yyStackOverflow
(
yyParser
*
yypParser
){
ParseARG_FETCH
;
ParseARG_FETCH
;
yypParser
->
yyidx
--
;
#ifndef NDEBUG
#ifndef NDEBUG
if
(
yyTraceFILE
){
if
(
yyTraceFILE
){
fprintf
(
yyTraceFILE
,
"%sStack Overflow!
\n
"
,
yyTracePrompt
);
fprintf
(
yyTraceFILE
,
"%sStack Overflow!
\n
"
,
yyTracePrompt
);
}
}
#endif
#endif
while
(
yypParser
->
yy
idx
>=
0
)
yy_pop_parser_stack
(
yypParser
);
while
(
yypParser
->
yy
tos
>
yypParser
->
yystack
)
yy_pop_parser_stack
(
yypParser
);
/* Here code is inserted which will execute if the parser
/* Here code is inserted which will execute if the parser
** stack every overflows */
** stack every overflows */
/******** Begin %stack_overflow code ******************************************/
/******** Begin %stack_overflow code ******************************************/
...
@@ -1283,20 +1574,21 @@ static void yyStackOverflow(yyParser *yypParser, YYMINORTYPE *yypMinor){
...
@@ -1283,20 +1574,21 @@ static void yyStackOverflow(yyParser *yypParser, YYMINORTYPE *yypMinor){
** Print tracing information for a SHIFT action
** Print tracing information for a SHIFT action
*/
*/
#ifndef NDEBUG
#ifndef NDEBUG
static
void
yyTraceShift
(
yyParser
*
yypParser
,
int
yyNewState
){
static
void
yyTraceShift
(
yyParser
*
yypParser
,
int
yyNewState
,
const
char
*
zTag
){
if
(
yyTraceFILE
){
if
(
yyTraceFILE
){
if
(
yyNewState
<
YYNSTATE
){
if
(
yyNewState
<
YYNSTATE
){
fprintf
(
yyTraceFILE
,
"%s
Shift
'%s', go to state %d
\n
"
,
fprintf
(
yyTraceFILE
,
"%s
%s
'%s', go to state %d
\n
"
,
yyTracePrompt
,
yyTokenName
[
yypParser
->
yystack
[
yypParser
->
yyidx
].
major
],
yyTracePrompt
,
zTag
,
yyTokenName
[
yypParser
->
yytos
->
major
],
yyNewState
);
yyNewState
);
}
else
{
}
else
{
fprintf
(
yyTraceFILE
,
"%sShift '%s'
\n
"
,
fprintf
(
yyTraceFILE
,
"%s%s '%s', pending reduce %d
\n
"
,
yyTracePrompt
,
yyTokenName
[
yypParser
->
yystack
[
yypParser
->
yyidx
].
major
]);
yyTracePrompt
,
zTag
,
yyTokenName
[
yypParser
->
yytos
->
major
],
yyNewState
-
YY_MIN_REDUCE
);
}
}
}
}
}
}
#else
#else
# define yyTraceShift(X,Y)
# define yyTraceShift(X,Y
,Z
)
#endif
#endif
/*
/*
...
@@ -1306,256 +1598,262 @@ static void yy_shift(
...
@@ -1306,256 +1598,262 @@ static void yy_shift(
yyParser
*
yypParser
,
/* The parser to be shifted */
yyParser
*
yypParser
,
/* The parser to be shifted */
int
yyNewState
,
/* The new state to shift in */
int
yyNewState
,
/* The new state to shift in */
int
yyMajor
,
/* The major token to shift in */
int
yyMajor
,
/* The major token to shift in */
YYMINORTYPE
*
yypMinor
/* Pointer to t
he minor token to shift in */
ParseTOKENTYPE
yyMinor
/* T
he minor token to shift in */
){
){
yyStackEntry
*
yytos
;
yyStackEntry
*
yytos
;
yypParser
->
yy
idx
++
;
yypParser
->
yy
tos
++
;
#ifdef YYTRACKMAXSTACKDEPTH
#ifdef YYTRACKMAXSTACKDEPTH
if
(
yypParser
->
yyidx
>
yypParser
->
yyidxMax
){
if
(
(
int
)(
yypParser
->
yytos
-
yypParser
->
yystack
)
>
yypParser
->
yyhwm
){
yypParser
->
yyidxMax
=
yypParser
->
yyidx
;
yypParser
->
yyhwm
++
;
assert
(
yypParser
->
yyhwm
==
(
int
)(
yypParser
->
yytos
-
yypParser
->
yystack
)
);
}
}
#endif
#endif
#if YYSTACKDEPTH>0
#if YYSTACKDEPTH>0
if
(
yypParser
->
yyidx
>=
YYSTACKDEPTH
){
if
(
yypParser
->
yytos
>
yypParser
->
yystackEnd
){
yyStackOverflow
(
yypParser
,
yypMinor
);
yypParser
->
yytos
--
;
yyStackOverflow
(
yypParser
);
return
;
return
;
}
}
#else
#else
if
(
yypParser
->
yy
idx
>=
yypParser
->
yystksz
){
if
(
yypParser
->
yy
tos
>=&
yypParser
->
yystack
[
yypParser
->
yystksz
]
){
yyGrowStack
(
yypParser
);
if
(
yyGrowStack
(
yypParser
)
){
if
(
yypParser
->
yyidx
>=
yypParser
->
yystksz
){
yypParser
->
yytos
--
;
yyStackOverflow
(
yypParser
,
yypMinor
);
yyStackOverflow
(
yypParser
);
return
;
return
;
}
}
}
}
#endif
#endif
yytos
=
&
yypParser
->
yystack
[
yypParser
->
yyidx
];
if
(
yyNewState
>
YY_MAX_SHIFT
){
yyNewState
+=
YY_MIN_REDUCE
-
YY_MIN_SHIFTREDUCE
;
}
yytos
=
yypParser
->
yytos
;
yytos
->
stateno
=
(
YYACTIONTYPE
)
yyNewState
;
yytos
->
stateno
=
(
YYACTIONTYPE
)
yyNewState
;
yytos
->
major
=
(
YYCODETYPE
)
yyMajor
;
yytos
->
major
=
(
YYCODETYPE
)
yyMajor
;
yytos
->
minor
=
*
yyp
Minor
;
yytos
->
minor
.
yy0
=
yy
Minor
;
yyTraceShift
(
yypParser
,
yyNewState
);
yyTraceShift
(
yypParser
,
yyNewState
,
"Shift"
);
}
}
/* The following table contains information about every rule that
/* The following table contains information about every rule that
** is used during the reduce.
** is used during the reduce.
*/
*/
static
const
struct
{
static
const
struct
{
YYCODETYPE
lhs
;
/* Symbol on the left-hand side of the rule */
YYCODETYPE
lhs
;
/* Symbol on the left-hand side of the rule */
unsigned
char
nrhs
;
/* Number of right-hand side
symbols in the rule */
signed
char
nrhs
;
/* Negative of the number of RHS
symbols in the rule */
}
yyRuleInfo
[]
=
{
}
yyRuleInfo
[]
=
{
{
196
,
1
},
{
196
,
-
1
},
/* (0) program ::= cmd */
{
197
,
2
},
{
197
,
-
2
},
/* (1) cmd ::= SHOW DATABASES */
{
197
,
2
},
{
197
,
-
2
},
/* (2) cmd ::= SHOW MNODES */
{
197
,
2
},
{
197
,
-
2
},
/* (3) cmd ::= SHOW DNODES */
{
197
,
2
},
{
197
,
-
2
},
/* (4) cmd ::= SHOW ACCOUNTS */
{
197
,
2
},
{
197
,
-
2
},
/* (5) cmd ::= SHOW USERS */
{
197
,
2
},
{
197
,
-
2
},
/* (6) cmd ::= SHOW MODULES */
{
197
,
2
},
{
197
,
-
2
},
/* (7) cmd ::= SHOW QUERIES */
{
197
,
2
},
{
197
,
-
2
},
/* (8) cmd ::= SHOW CONNECTIONS */
{
197
,
2
},
{
197
,
-
2
},
/* (9) cmd ::= SHOW STREAMS */
{
197
,
2
},
{
197
,
-
2
},
/* (10) cmd ::= SHOW CONFIGS */
{
197
,
2
},
{
197
,
-
2
},
/* (11) cmd ::= SHOW SCORES */
{
197
,
2
},
{
197
,
-
2
},
/* (12) cmd ::= SHOW GRANTS */
{
198
,
0
},
{
198
,
0
},
/* (13) dbPrefix ::= */
{
198
,
2
},
{
198
,
-
2
},
/* (14) dbPrefix ::= ids DOT */
{
200
,
0
},
{
200
,
0
},
/* (15) cpxName ::= */
{
200
,
2
},
{
200
,
-
2
},
/* (16) cpxName ::= DOT ids */
{
197
,
3
},
{
197
,
-
3
},
/* (17) cmd ::= SHOW dbPrefix TABLES */
{
197
,
5
},
{
197
,
-
5
},
/* (18) cmd ::= SHOW dbPrefix TABLES LIKE ids */
{
197
,
3
},
{
197
,
-
3
},
/* (19) cmd ::= SHOW dbPrefix STABLES */
{
197
,
5
},
{
197
,
-
5
},
/* (20) cmd ::= SHOW dbPrefix STABLES LIKE ids */
{
197
,
3
},
{
197
,
-
3
},
/* (21) cmd ::= SHOW dbPrefix VGROUPS */
{
197
,
5
},
{
197
,
-
5
},
/* (22) cmd ::= DROP TABLE ifexists ids cpxName */
{
197
,
4
},
{
197
,
-
4
},
/* (23) cmd ::= DROP DATABASE ifexists ids */
{
197
,
3
},
{
197
,
-
3
},
/* (24) cmd ::= DROP DNODE IPTOKEN */
{
197
,
3
},
{
197
,
-
3
},
/* (25) cmd ::= DROP USER ids */
{
197
,
3
},
{
197
,
-
3
},
/* (26) cmd ::= DROP ACCOUNT ids */
{
197
,
2
},
{
197
,
-
2
},
/* (27) cmd ::= USE ids */
{
197
,
3
},
{
197
,
-
3
},
/* (28) cmd ::= DESCRIBE ids cpxName */
{
197
,
5
},
{
197
,
-
5
},
/* (29) cmd ::= ALTER USER ids PASS ids */
{
197
,
5
},
{
197
,
-
5
},
/* (30) cmd ::= ALTER USER ids PRIVILEGE ids */
{
197
,
4
},
{
197
,
-
4
},
/* (31) cmd ::= ALTER DNODE IPTOKEN ids */
{
197
,
5
},
{
197
,
-
5
},
/* (32) cmd ::= ALTER DNODE IPTOKEN ids ids */
{
197
,
3
},
{
197
,
-
3
},
/* (33) cmd ::= ALTER LOCAL ids */
{
197
,
4
},
{
197
,
-
4
},
/* (34) cmd ::= ALTER LOCAL ids ids */
{
197
,
4
},
{
197
,
-
4
},
/* (35) cmd ::= ALTER DATABASE ids alter_db_optr */
{
197
,
4
},
{
197
,
-
4
},
/* (36) cmd ::= ALTER ACCOUNT ids acct_optr */
{
197
,
6
},
{
197
,
-
6
},
/* (37) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{
199
,
1
},
{
199
,
-
1
},
/* (38) ids ::= ID */
{
199
,
1
},
{
199
,
-
1
},
/* (39) ids ::= STRING */
{
201
,
2
},
{
201
,
-
2
},
/* (40) ifexists ::= IF EXISTS */
{
201
,
0
},
{
201
,
0
},
/* (41) ifexists ::= */
{
204
,
3
},
{
204
,
-
3
},
/* (42) ifnotexists ::= IF NOT EXISTS */
{
204
,
0
},
{
204
,
0
},
/* (43) ifnotexists ::= */
{
197
,
3
},
{
197
,
-
3
},
/* (44) cmd ::= CREATE DNODE IPTOKEN */
{
197
,
6
},
{
197
,
-
6
},
/* (45) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{
197
,
5
},
{
197
,
-
5
},
/* (46) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
{
197
,
5
},
{
197
,
-
5
},
/* (47) cmd ::= CREATE USER ids PASS ids */
{
206
,
0
},
{
206
,
0
},
/* (48) pps ::= */
{
206
,
2
},
{
206
,
-
2
},
/* (49) pps ::= PPS INTEGER */
{
207
,
0
},
{
207
,
0
},
/* (50) tseries ::= */
{
207
,
2
},
{
207
,
-
2
},
/* (51) tseries ::= TSERIES INTEGER */
{
208
,
0
},
{
208
,
0
},
/* (52) dbs ::= */
{
208
,
2
},
{
208
,
-
2
},
/* (53) dbs ::= DBS INTEGER */
{
209
,
0
},
{
209
,
0
},
/* (54) streams ::= */
{
209
,
2
},
{
209
,
-
2
},
/* (55) streams ::= STREAMS INTEGER */
{
210
,
0
},
{
210
,
0
},
/* (56) storage ::= */
{
210
,
2
},
{
210
,
-
2
},
/* (57) storage ::= STORAGE INTEGER */
{
211
,
0
},
{
211
,
0
},
/* (58) qtime ::= */
{
211
,
2
},
{
211
,
-
2
},
/* (59) qtime ::= QTIME INTEGER */
{
212
,
0
},
{
212
,
0
},
/* (60) users ::= */
{
212
,
2
},
{
212
,
-
2
},
/* (61) users ::= USERS INTEGER */
{
213
,
0
},
{
213
,
0
},
/* (62) conns ::= */
{
213
,
2
},
{
213
,
-
2
},
/* (63) conns ::= CONNS INTEGER */
{
214
,
0
},
{
214
,
0
},
/* (64) state ::= */
{
214
,
2
},
{
214
,
-
2
},
/* (65) state ::= STATE ids */
{
203
,
9
},
{
203
,
-
9
},
/* (66) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{
215
,
2
},
{
215
,
-
2
},
/* (67) keep ::= KEEP tagitemlist */
{
217
,
2
},
{
217
,
-
2
},
/* (68) tables ::= TABLES INTEGER */
{
218
,
2
},
{
218
,
-
2
},
/* (69) cache ::= CACHE INTEGER */
{
219
,
2
},
{
219
,
-
2
},
/* (70) replica ::= REPLICA INTEGER */
{
220
,
2
},
{
220
,
-
2
},
/* (71) days ::= DAYS INTEGER */
{
221
,
2
},
{
221
,
-
2
},
/* (72) rows ::= ROWS INTEGER */
{
222
,
2
},
{
222
,
-
2
},
/* (73) ablocks ::= ABLOCKS ID */
{
223
,
2
},
{
223
,
-
2
},
/* (74) tblocks ::= TBLOCKS INTEGER */
{
224
,
2
},
{
224
,
-
2
},
/* (75) ctime ::= CTIME INTEGER */
{
225
,
2
},
{
225
,
-
2
},
/* (76) clog ::= CLOG INTEGER */
{
226
,
2
},
{
226
,
-
2
},
/* (77) comp ::= COMP INTEGER */
{
227
,
2
},
{
227
,
-
2
},
/* (78) prec ::= PRECISION STRING */
{
205
,
0
},
{
205
,
0
},
/* (79) db_optr ::= */
{
205
,
2
},
{
205
,
-
2
},
/* (80) db_optr ::= db_optr tables */
{
205
,
2
},
{
205
,
-
2
},
/* (81) db_optr ::= db_optr cache */
{
205
,
2
},
{
205
,
-
2
},
/* (82) db_optr ::= db_optr replica */
{
205
,
2
},
{
205
,
-
2
},
/* (83) db_optr ::= db_optr days */
{
205
,
2
},
{
205
,
-
2
},
/* (84) db_optr ::= db_optr rows */
{
205
,
2
},
{
205
,
-
2
},
/* (85) db_optr ::= db_optr ablocks */
{
205
,
2
},
{
205
,
-
2
},
/* (86) db_optr ::= db_optr tblocks */
{
205
,
2
},
{
205
,
-
2
},
/* (87) db_optr ::= db_optr ctime */
{
205
,
2
},
{
205
,
-
2
},
/* (88) db_optr ::= db_optr clog */
{
205
,
2
},
{
205
,
-
2
},
/* (89) db_optr ::= db_optr comp */
{
205
,
2
},
{
205
,
-
2
},
/* (90) db_optr ::= db_optr prec */
{
205
,
2
},
{
205
,
-
2
},
/* (91) db_optr ::= db_optr keep */
{
202
,
0
},
{
202
,
0
},
/* (92) alter_db_optr ::= */
{
202
,
2
},
{
202
,
-
2
},
/* (93) alter_db_optr ::= alter_db_optr replica */
{
202
,
2
},
{
202
,
-
2
},
/* (94) alter_db_optr ::= alter_db_optr tables */
{
228
,
1
},
{
228
,
-
1
},
/* (95) typename ::= ids */
{
228
,
4
},
{
228
,
-
4
},
/* (96) typename ::= ids LP signed RP */
{
229
,
1
},
{
229
,
-
1
},
/* (97) signed ::= INTEGER */
{
229
,
2
},
{
229
,
-
2
},
/* (98) signed ::= PLUS INTEGER */
{
229
,
2
},
{
229
,
-
2
},
/* (99) signed ::= MINUS INTEGER */
{
197
,
6
},
{
197
,
-
6
},
/* (100) cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */
{
230
,
3
},
{
230
,
-
3
},
/* (101) create_table_args ::= LP columnlist RP */
{
230
,
7
},
{
230
,
-
7
},
/* (102) create_table_args ::= LP columnlist RP TAGS LP columnlist RP */
{
230
,
7
},
{
230
,
-
7
},
/* (103) create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP */
{
230
,
2
},
{
230
,
-
2
},
/* (104) create_table_args ::= AS select */
{
231
,
3
},
{
231
,
-
3
},
/* (105) columnlist ::= columnlist COMMA column */
{
231
,
1
},
{
231
,
-
1
},
/* (106) columnlist ::= column */
{
233
,
2
},
{
233
,
-
2
},
/* (107) column ::= ids typename */
{
216
,
3
},
{
216
,
-
3
},
/* (108) tagitemlist ::= tagitemlist COMMA tagitem */
{
216
,
1
},
{
216
,
-
1
},
/* (109) tagitemlist ::= tagitem */
{
234
,
1
},
{
234
,
-
1
},
/* (110) tagitem ::= INTEGER */
{
234
,
1
},
{
234
,
-
1
},
/* (111) tagitem ::= FLOAT */
{
234
,
1
},
{
234
,
-
1
},
/* (112) tagitem ::= STRING */
{
234
,
1
},
{
234
,
-
1
},
/* (113) tagitem ::= BOOL */
{
234
,
1
},
{
234
,
-
1
},
/* (114) tagitem ::= NULL */
{
234
,
2
},
{
234
,
-
2
},
/* (115) tagitem ::= MINUS INTEGER */
{
234
,
2
},
{
234
,
-
2
},
/* (116) tagitem ::= MINUS FLOAT */
{
234
,
2
},
{
234
,
-
2
},
/* (117) tagitem ::= PLUS INTEGER */
{
234
,
2
},
{
234
,
-
2
},
/* (118) tagitem ::= PLUS FLOAT */
{
197
,
1
},
{
197
,
-
1
},
/* (119) cmd ::= select */
{
232
,
12
},
{
232
,
-
12
},
/* (120) select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
{
246
,
2
},
{
232
,
-
2
},
/* (121) select ::= SELECT selcollist */
{
246
,
0
},
{
246
,
-
2
},
/* (122) sclp ::= selcollist COMMA */
{
235
,
3
},
{
246
,
0
},
/* (123) sclp ::= */
{
235
,
2
},
{
235
,
-
3
},
/* (124) selcollist ::= sclp expr as */
{
248
,
2
},
{
235
,
-
2
},
/* (125) selcollist ::= sclp STAR */
{
248
,
1
},
{
248
,
-
2
},
/* (126) as ::= AS ids */
{
248
,
0
},
{
248
,
-
1
},
/* (127) as ::= ids */
{
236
,
2
},
{
248
,
0
},
/* (128) as ::= */
{
249
,
2
},
{
236
,
-
2
},
/* (129) from ::= FROM tablelist */
{
249
,
4
},
{
249
,
-
2
},
/* (130) tablelist ::= ids cpxName */
{
250
,
1
},
{
249
,
-
4
},
/* (131) tablelist ::= tablelist COMMA ids cpxName */
{
238
,
4
},
{
250
,
-
1
},
/* (132) tmvar ::= VARIABLE */
{
238
,
0
},
{
238
,
-
4
},
/* (133) interval_opt ::= INTERVAL LP tmvar RP */
{
239
,
0
},
{
238
,
0
},
/* (134) interval_opt ::= */
{
239
,
6
},
{
239
,
0
},
/* (135) fill_opt ::= */
{
239
,
4
},
{
239
,
-
6
},
/* (136) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
240
,
4
},
{
239
,
-
4
},
/* (137) fill_opt ::= FILL LP ID RP */
{
240
,
0
},
{
240
,
-
4
},
/* (138) sliding_opt ::= SLIDING LP tmvar RP */
{
242
,
0
},
{
240
,
0
},
/* (139) sliding_opt ::= */
{
242
,
3
},
{
242
,
0
},
/* (140) orderby_opt ::= */
{
251
,
4
},
{
242
,
-
3
},
/* (141) orderby_opt ::= ORDER BY sortlist */
{
251
,
2
},
{
251
,
-
4
},
/* (142) sortlist ::= sortlist COMMA item sortorder */
{
253
,
2
},
{
251
,
-
2
},
/* (143) sortlist ::= item sortorder */
{
254
,
1
},
{
253
,
-
2
},
/* (144) item ::= ids cpxName */
{
254
,
1
},
{
254
,
-
1
},
/* (145) sortorder ::= ASC */
{
254
,
0
},
{
254
,
-
1
},
/* (146) sortorder ::= DESC */
{
241
,
0
},
{
254
,
0
},
/* (147) sortorder ::= */
{
241
,
3
},
{
241
,
0
},
/* (148) groupby_opt ::= */
{
255
,
3
},
{
241
,
-
3
},
/* (149) groupby_opt ::= GROUP BY grouplist */
{
255
,
1
},
{
255
,
-
3
},
/* (150) grouplist ::= grouplist COMMA item */
{
243
,
0
},
{
255
,
-
1
},
/* (151) grouplist ::= item */
{
243
,
2
},
{
243
,
0
},
/* (152) having_opt ::= */
{
245
,
0
},
{
243
,
-
2
},
/* (153) having_opt ::= HAVING expr */
{
245
,
2
},
{
245
,
0
},
/* (154) limit_opt ::= */
{
245
,
4
},
{
245
,
-
2
},
/* (155) limit_opt ::= LIMIT signed */
{
245
,
4
},
{
245
,
-
4
},
/* (156) limit_opt ::= LIMIT signed OFFSET signed */
{
244
,
0
},
{
245
,
-
4
},
/* (157) limit_opt ::= LIMIT signed COMMA signed */
{
244
,
2
},
{
244
,
0
},
/* (158) slimit_opt ::= */
{
244
,
4
},
{
244
,
-
2
},
/* (159) slimit_opt ::= SLIMIT signed */
{
244
,
4
},
{
244
,
-
4
},
/* (160) slimit_opt ::= SLIMIT signed SOFFSET signed */
{
237
,
0
},
{
244
,
-
4
},
/* (161) slimit_opt ::= SLIMIT signed COMMA signed */
{
237
,
2
},
{
237
,
0
},
/* (162) where_opt ::= */
{
247
,
3
},
{
237
,
-
2
},
/* (163) where_opt ::= WHERE expr */
{
247
,
1
},
{
247
,
-
3
},
/* (164) expr ::= LP expr RP */
{
247
,
3
},
{
247
,
-
1
},
/* (165) expr ::= ID */
{
247
,
3
},
{
247
,
-
3
},
/* (166) expr ::= ID DOT ID */
{
247
,
1
},
{
247
,
-
3
},
/* (167) expr ::= ID DOT STAR */
{
247
,
2
},
{
247
,
-
1
},
/* (168) expr ::= INTEGER */
{
247
,
2
},
{
247
,
-
2
},
/* (169) expr ::= MINUS INTEGER */
{
247
,
1
},
{
247
,
-
2
},
/* (170) expr ::= PLUS INTEGER */
{
247
,
2
},
{
247
,
-
1
},
/* (171) expr ::= FLOAT */
{
247
,
2
},
{
247
,
-
2
},
/* (172) expr ::= MINUS FLOAT */
{
247
,
1
},
{
247
,
-
2
},
/* (173) expr ::= PLUS FLOAT */
{
247
,
1
},
{
247
,
-
1
},
/* (174) expr ::= STRING */
{
247
,
1
},
{
247
,
-
1
},
/* (175) expr ::= NOW */
{
247
,
1
},
{
247
,
-
1
},
/* (176) expr ::= VARIABLE */
{
247
,
4
},
{
247
,
-
1
},
/* (177) expr ::= BOOL */
{
247
,
4
},
{
247
,
-
4
},
/* (178) expr ::= ID LP exprlist RP */
{
247
,
3
},
{
247
,
-
4
},
/* (179) expr ::= ID LP STAR RP */
{
247
,
3
},
{
247
,
-
3
},
/* (180) expr ::= expr AND expr */
{
247
,
3
},
{
247
,
-
3
},
/* (181) expr ::= expr OR expr */
{
247
,
3
},
{
247
,
-
3
},
/* (182) expr ::= expr LT expr */
{
247
,
3
},
{
247
,
-
3
},
/* (183) expr ::= expr GT expr */
{
247
,
3
},
{
247
,
-
3
},
/* (184) expr ::= expr LE expr */
{
247
,
3
},
{
247
,
-
3
},
/* (185) expr ::= expr GE expr */
{
247
,
3
},
{
247
,
-
3
},
/* (186) expr ::= expr NE expr */
{
247
,
3
},
{
247
,
-
3
},
/* (187) expr ::= expr EQ expr */
{
247
,
3
},
{
247
,
-
3
},
/* (188) expr ::= expr PLUS expr */
{
247
,
3
},
{
247
,
-
3
},
/* (189) expr ::= expr MINUS expr */
{
247
,
3
},
{
247
,
-
3
},
/* (190) expr ::= expr STAR expr */
{
247
,
3
},
{
247
,
-
3
},
/* (191) expr ::= expr SLASH expr */
{
247
,
3
},
{
247
,
-
3
},
/* (192) expr ::= expr REM expr */
{
247
,
5
},
{
247
,
-
3
},
/* (193) expr ::= expr LIKE expr */
{
256
,
3
},
{
247
,
-
5
},
/* (194) expr ::= expr IN LP exprlist RP */
{
256
,
1
},
{
256
,
-
3
},
/* (195) exprlist ::= exprlist COMMA expritem */
{
257
,
1
},
{
256
,
-
1
},
/* (196) exprlist ::= expritem */
{
257
,
0
},
{
257
,
-
1
},
/* (197) expritem ::= expr */
{
197
,
4
},
{
257
,
0
},
/* (198) expritem ::= */
{
258
,
4
},
{
197
,
-
4
},
/* (199) cmd ::= INSERT INTO cpxName insert_value_list */
{
258
,
5
},
{
258
,
-
4
},
/* (200) insert_value_list ::= VALUES LP itemlist RP */
{
259
,
3
},
{
258
,
-
5
},
/* (201) insert_value_list ::= insert_value_list VALUES LP itemlist RP */
{
259
,
1
},
{
259
,
-
3
},
/* (202) itemlist ::= itemlist COMMA expr */
{
197
,
3
},
{
259
,
-
1
},
/* (203) itemlist ::= expr */
{
197
,
7
},
{
197
,
-
3
},
/* (204) cmd ::= RESET QUERY CACHE */
{
197
,
7
},
{
197
,
-
7
},
/* (205) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{
197
,
7
},
{
197
,
-
7
},
/* (206) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{
197
,
7
},
{
197
,
-
7
},
/* (207) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
197
,
8
},
{
197
,
-
7
},
/* (208) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{
197
,
9
},
{
197
,
-
8
},
/* (209) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{
197
,
5
},
{
197
,
-
9
},
/* (210) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{
197
,
7
},
{
197
,
-
5
},
/* (211) cmd ::= KILL CONNECTION IPTOKEN COLON INTEGER */
{
197
,
7
},
{
197
,
-
7
},
/* (212) cmd ::= KILL STREAM IPTOKEN COLON INTEGER COLON INTEGER */
{
197
,
-
7
},
/* (213) cmd ::= KILL QUERY IPTOKEN COLON INTEGER COLON INTEGER */
};
};
static
void
yy_accept
(
yyParser
*
);
/* Forward Declaration */
static
void
yy_accept
(
yyParser
*
);
/* Forward Declaration */
...
@@ -1563,27 +1861,66 @@ static void yy_accept(yyParser*); /* Forward Declaration */
...
@@ -1563,27 +1861,66 @@ static void yy_accept(yyParser*); /* Forward Declaration */
/*
/*
** Perform a reduce action and the shift that must immediately
** Perform a reduce action and the shift that must immediately
** follow the reduce.
** follow the reduce.
**
** The yyLookahead and yyLookaheadToken parameters provide reduce actions
** access to the lookahead token (if any). The yyLookahead will be YYNOCODE
** if the lookahead token has already been consumed. As this procedure is
** only called from one place, optimizing compilers will in-line it, which
** means that the extra parameters have no performance impact.
*/
*/
static
void
yy_reduce
(
static
void
yy_reduce
(
yyParser
*
yypParser
,
/* The parser */
yyParser
*
yypParser
,
/* The parser */
int
yyruleno
/* Number of the rule by which to reduce */
unsigned
int
yyruleno
,
/* Number of the rule by which to reduce */
int
yyLookahead
,
/* Lookahead token, or YYNOCODE if none */
ParseTOKENTYPE
yyLookaheadToken
/* Value of the lookahead token */
){
){
int
yygoto
;
/* The next state */
int
yygoto
;
/* The next state */
int
yyact
;
/* The next action */
int
yyact
;
/* The next action */
YYMINORTYPE
yygotominor
;
/* The LHS of the rule reduced */
yyStackEntry
*
yymsp
;
/* The top of the parser's stack */
yyStackEntry
*
yymsp
;
/* The top of the parser's stack */
int
yysize
;
/* Amount to pop the stack */
int
yysize
;
/* Amount to pop the stack */
ParseARG_FETCH
;
ParseARG_FETCH
;
yymsp
=
&
yypParser
->
yystack
[
yypParser
->
yyidx
];
(
void
)
yyLookahead
;
(
void
)
yyLookaheadToken
;
yymsp
=
yypParser
->
yytos
;
#ifndef NDEBUG
#ifndef NDEBUG
if
(
yyTraceFILE
&&
yyruleno
>=
0
if
(
yyTraceFILE
&&
yyruleno
<
(
int
)(
sizeof
(
yyRuleName
)
/
sizeof
(
yyRuleName
[
0
]))
){
&&
yyruleno
<
(
int
)(
sizeof
(
yyRuleName
)
/
sizeof
(
yyRuleName
[
0
]))
){
yysize
=
yyRuleInfo
[
yyruleno
].
nrhs
;
yysize
=
yyRuleInfo
[
yyruleno
].
nrhs
;
fprintf
(
yyTraceFILE
,
"%sReduce [%s], go to state %d.
\n
"
,
yyTracePrompt
,
if
(
yysize
){
yyRuleName
[
yyruleno
],
yymsp
[
-
yysize
].
stateno
);
fprintf
(
yyTraceFILE
,
"%sReduce %d [%s], go to state %d.
\n
"
,
yyTracePrompt
,
yyruleno
,
yyRuleName
[
yyruleno
],
yymsp
[
yysize
].
stateno
);
}
else
{
fprintf
(
yyTraceFILE
,
"%sReduce %d [%s].
\n
"
,
yyTracePrompt
,
yyruleno
,
yyRuleName
[
yyruleno
]);
}
}
}
#endif
/* NDEBUG */
#endif
/* NDEBUG */
yygotominor
=
yyzerominor
;
/* Check that the stack is large enough to grow by a single entry
** if the RHS of the rule is empty. This ensures that there is room
** enough on the stack to push the LHS value */
if
(
yyRuleInfo
[
yyruleno
].
nrhs
==
0
){
#ifdef YYTRACKMAXSTACKDEPTH
if
(
(
int
)(
yypParser
->
yytos
-
yypParser
->
yystack
)
>
yypParser
->
yyhwm
){
yypParser
->
yyhwm
++
;
assert
(
yypParser
->
yyhwm
==
(
int
)(
yypParser
->
yytos
-
yypParser
->
yystack
));
}
#endif
#if YYSTACKDEPTH>0
if
(
yypParser
->
yytos
>=
yypParser
->
yystackEnd
){
yyStackOverflow
(
yypParser
);
return
;
}
#else
if
(
yypParser
->
yytos
>=&
yypParser
->
yystack
[
yypParser
->
yystksz
-
1
]
){
if
(
yyGrowStack
(
yypParser
)
){
yyStackOverflow
(
yypParser
);
return
;
}
yymsp
=
yypParser
->
yytos
;
}
#endif
}
switch
(
yyruleno
){
switch
(
yyruleno
){
/* Beginning here are the reduction cases. A typical example
/* Beginning here are the reduction cases. A typical example
...
@@ -1595,7 +1932,9 @@ static void yy_reduce(
...
@@ -1595,7 +1932,9 @@ static void yy_reduce(
** break;
** break;
*/
*/
/********** Begin reduce actions **********************************************/
/********** Begin reduce actions **********************************************/
YYMINORTYPE
yylhsminor
;
case
0
:
/* program ::= cmd */
case
0
:
/* program ::= cmd */
case
79
:
/* db_optr ::= */
yytestcase
(
yyruleno
==
79
);
{}
{}
break
;
break
;
case
1
:
/* cmd ::= SHOW DATABASES */
case
1
:
/* cmd ::= SHOW DATABASES */
...
@@ -1637,16 +1976,17 @@ static void yy_reduce(
...
@@ -1637,16 +1976,17 @@ static void yy_reduce(
case
13
:
/* dbPrefix ::= */
case
13
:
/* dbPrefix ::= */
case
41
:
/* ifexists ::= */
yytestcase
(
yyruleno
==
41
);
case
41
:
/* ifexists ::= */
yytestcase
(
yyruleno
==
41
);
case
43
:
/* ifnotexists ::= */
yytestcase
(
yyruleno
==
43
);
case
43
:
/* ifnotexists ::= */
yytestcase
(
yyruleno
==
43
);
{
yy
goto
minor
.
yy0
.
n
=
0
;}
{
yy
msp
[
1
].
minor
.
yy0
.
n
=
0
;}
break
;
break
;
case
14
:
/* dbPrefix ::= ids DOT */
case
14
:
/* dbPrefix ::= ids DOT */
{
yygotominor
.
yy0
=
yymsp
[
-
1
].
minor
.
yy0
;
}
{
yylhsminor
.
yy0
=
yymsp
[
-
1
].
minor
.
yy0
;
}
yymsp
[
-
1
].
minor
.
yy0
=
yylhsminor
.
yy0
;
break
;
break
;
case
15
:
/* cpxName ::= */
case
15
:
/* cpxName ::= */
{
yy
goto
minor
.
yy0
.
n
=
0
;
}
{
yy
msp
[
1
].
minor
.
yy0
.
n
=
0
;
}
break
;
break
;
case
16
:
/* cpxName ::= DOT ids */
case
16
:
/* cpxName ::= DOT ids */
{
yy
gotominor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
yygoto
minor
.
yy0
.
n
+=
1
;
}
{
yy
msp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
1
;
}
break
;
break
;
case
17
:
/* cmd ::= SHOW dbPrefix TABLES */
case
17
:
/* cmd ::= SHOW dbPrefix TABLES */
{
{
...
@@ -1686,7 +2026,7 @@ static void yy_reduce(
...
@@ -1686,7 +2026,7 @@ static void yy_reduce(
case
23
:
/* cmd ::= DROP DATABASE ifexists ids */
case
23
:
/* cmd ::= DROP DATABASE ifexists ids */
{
setDCLSQLElems
(
pInfo
,
DROP_DATABASE
,
2
,
&
yymsp
[
0
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
{
setDCLSQLElems
(
pInfo
,
DROP_DATABASE
,
2
,
&
yymsp
[
0
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
break
;
break
;
case
24
:
/* cmd ::= DROP DNODE IP */
case
24
:
/* cmd ::= DROP DNODE IP
TOKEN
*/
{
setDCLSQLElems
(
pInfo
,
DROP_DNODE
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
setDCLSQLElems
(
pInfo
,
DROP_DNODE
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);
}
break
;
break
;
case
25
:
/* cmd ::= DROP USER ids */
case
25
:
/* cmd ::= DROP USER ids */
...
@@ -1710,10 +2050,10 @@ static void yy_reduce(
...
@@ -1710,10 +2050,10 @@ static void yy_reduce(
case
30
:
/* cmd ::= ALTER USER ids PRIVILEGE ids */
case
30
:
/* cmd ::= ALTER USER ids PRIVILEGE ids */
{
setDCLSQLElems
(
pInfo
,
ALTER_USER_PRIVILEGES
,
2
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
setDCLSQLElems
(
pInfo
,
ALTER_USER_PRIVILEGES
,
2
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);}
break
;
break
;
case
31
:
/* cmd ::= ALTER DNODE IP ids */
case
31
:
/* cmd ::= ALTER DNODE IP
TOKEN
ids */
{
setDCLSQLElems
(
pInfo
,
ALTER_DNODE
,
2
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
setDCLSQLElems
(
pInfo
,
ALTER_DNODE
,
2
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
break
;
break
;
case
32
:
/* cmd ::= ALTER DNODE IP ids ids */
case
32
:
/* cmd ::= ALTER DNODE IP
TOKEN
ids ids */
{
setDCLSQLElems
(
pInfo
,
ALTER_DNODE
,
3
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
setDCLSQLElems
(
pInfo
,
ALTER_DNODE
,
3
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
break
;
break
;
case
33
:
/* cmd ::= ALTER LOCAL ids */
case
33
:
/* cmd ::= ALTER LOCAL ids */
...
@@ -1733,13 +2073,16 @@ static void yy_reduce(
...
@@ -1733,13 +2073,16 @@ static void yy_reduce(
break
;
break
;
case
38
:
/* ids ::= ID */
case
38
:
/* ids ::= ID */
case
39
:
/* ids ::= STRING */
yytestcase
(
yyruleno
==
39
);
case
39
:
/* ids ::= STRING */
yytestcase
(
yyruleno
==
39
);
{
yygotominor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
break
;
break
;
case
40
:
/* ifexists ::= IF EXISTS */
case
40
:
/* ifexists ::= IF EXISTS */
case
42
:
/* ifnotexists ::= IF NOT EXISTS */
yytestcase
(
yyruleno
==
42
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
=
1
;}
{
yygotominor
.
yy0
.
n
=
1
;}
break
;
break
;
case
44
:
/* cmd ::= CREATE DNODE IP */
case
42
:
/* ifnotexists ::= IF NOT EXISTS */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
=
1
;}
break
;
case
44
:
/* cmd ::= CREATE DNODE IPTOKEN */
{
setDCLSQLElems
(
pInfo
,
CREATE_DNODE
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
setDCLSQLElems
(
pInfo
,
CREATE_DNODE
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);}
break
;
break
;
case
45
:
/* cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
case
45
:
/* cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
...
@@ -1760,9 +2103,7 @@ static void yy_reduce(
...
@@ -1760,9 +2103,7 @@ static void yy_reduce(
case
60
:
/* users ::= */
yytestcase
(
yyruleno
==
60
);
case
60
:
/* users ::= */
yytestcase
(
yyruleno
==
60
);
case
62
:
/* conns ::= */
yytestcase
(
yyruleno
==
62
);
case
62
:
/* conns ::= */
yytestcase
(
yyruleno
==
62
);
case
64
:
/* state ::= */
yytestcase
(
yyruleno
==
64
);
case
64
:
/* state ::= */
yytestcase
(
yyruleno
==
64
);
case
133
:
/* interval_opt ::= */
yytestcase
(
yyruleno
==
133
);
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
}
case
138
:
/* sliding_opt ::= */
yytestcase
(
yyruleno
==
138
);
{
yygotominor
.
yy0
.
n
=
0
;
}
break
;
break
;
case
49
:
/* pps ::= PPS INTEGER */
case
49
:
/* pps ::= PPS INTEGER */
case
51
:
/* tseries ::= TSERIES INTEGER */
yytestcase
(
yyruleno
==
51
);
case
51
:
/* tseries ::= TSERIES INTEGER */
yytestcase
(
yyruleno
==
51
);
...
@@ -1773,23 +2114,24 @@ static void yy_reduce(
...
@@ -1773,23 +2114,24 @@ static void yy_reduce(
case
61
:
/* users ::= USERS INTEGER */
yytestcase
(
yyruleno
==
61
);
case
61
:
/* users ::= USERS INTEGER */
yytestcase
(
yyruleno
==
61
);
case
63
:
/* conns ::= CONNS INTEGER */
yytestcase
(
yyruleno
==
63
);
case
63
:
/* conns ::= CONNS INTEGER */
yytestcase
(
yyruleno
==
63
);
case
65
:
/* state ::= STATE ids */
yytestcase
(
yyruleno
==
65
);
case
65
:
/* state ::= STATE ids */
yytestcase
(
yyruleno
==
65
);
{
yy
goto
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
{
yy
msp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
break
;
break
;
case
66
:
/* acct_optr ::= pps tseries storage streams qtime dbs users conns state */
case
66
:
/* acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{
{
yy
goto
minor
.
yy279
.
users
=
(
yymsp
[
-
2
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
2
].
minor
.
yy0
.
z
)
:-
1
;
yy
lhs
minor
.
yy279
.
users
=
(
yymsp
[
-
2
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
2
].
minor
.
yy0
.
z
)
:-
1
;
yy
goto
minor
.
yy279
.
dbs
=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
3
].
minor
.
yy0
.
z
)
:-
1
;
yy
lhs
minor
.
yy279
.
dbs
=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
3
].
minor
.
yy0
.
z
)
:-
1
;
yy
goto
minor
.
yy279
.
tseries
=
(
yymsp
[
-
7
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
7
].
minor
.
yy0
.
z
)
:-
1
;
yy
lhs
minor
.
yy279
.
tseries
=
(
yymsp
[
-
7
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
7
].
minor
.
yy0
.
z
)
:-
1
;
yy
goto
minor
.
yy279
.
streams
=
(
yymsp
[
-
5
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
5
].
minor
.
yy0
.
z
)
:-
1
;
yy
lhs
minor
.
yy279
.
streams
=
(
yymsp
[
-
5
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
5
].
minor
.
yy0
.
z
)
:-
1
;
yy
goto
minor
.
yy279
.
pps
=
(
yymsp
[
-
8
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
8
].
minor
.
yy0
.
z
)
:-
1
;
yy
lhs
minor
.
yy279
.
pps
=
(
yymsp
[
-
8
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
8
].
minor
.
yy0
.
z
)
:-
1
;
yy
goto
minor
.
yy279
.
storage
=
(
yymsp
[
-
6
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
6
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yy
lhs
minor
.
yy279
.
storage
=
(
yymsp
[
-
6
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
6
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yy
goto
minor
.
yy279
.
qtime
=
(
yymsp
[
-
4
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
4
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yy
lhs
minor
.
yy279
.
qtime
=
(
yymsp
[
-
4
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
4
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yy
goto
minor
.
yy279
.
conns
=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
1
].
minor
.
yy0
.
z
)
:-
1
;
yy
lhs
minor
.
yy279
.
conns
=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
1
].
minor
.
yy0
.
z
)
:-
1
;
yy
goto
minor
.
yy279
.
stat
=
yymsp
[
0
].
minor
.
yy0
;
yy
lhs
minor
.
yy279
.
stat
=
yymsp
[
0
].
minor
.
yy0
;
}
}
yymsp
[
-
8
].
minor
.
yy279
=
yylhsminor
.
yy279
;
break
;
break
;
case
67
:
/* keep ::= KEEP tagitemlist */
case
67
:
/* keep ::= KEEP tagitemlist */
{
yy
goto
minor
.
yy56
=
yymsp
[
0
].
minor
.
yy56
;
}
{
yy
msp
[
-
1
].
minor
.
yy56
=
yymsp
[
0
].
minor
.
yy56
;
}
break
;
break
;
case
68
:
/* tables ::= TABLES INTEGER */
case
68
:
/* tables ::= TABLES INTEGER */
case
69
:
/* cache ::= CACHE INTEGER */
yytestcase
(
yyruleno
==
69
);
case
69
:
/* cache ::= CACHE INTEGER */
yytestcase
(
yyruleno
==
69
);
...
@@ -1802,65 +2144,81 @@ static void yy_reduce(
...
@@ -1802,65 +2144,81 @@ static void yy_reduce(
case
76
:
/* clog ::= CLOG INTEGER */
yytestcase
(
yyruleno
==
76
);
case
76
:
/* clog ::= CLOG INTEGER */
yytestcase
(
yyruleno
==
76
);
case
77
:
/* comp ::= COMP INTEGER */
yytestcase
(
yyruleno
==
77
);
case
77
:
/* comp ::= COMP INTEGER */
yytestcase
(
yyruleno
==
77
);
case
78
:
/* prec ::= PRECISION STRING */
yytestcase
(
yyruleno
==
78
);
case
78
:
/* prec ::= PRECISION STRING */
yytestcase
(
yyruleno
==
78
);
case
79
:
/* db_optr ::= */
yytestcase
(
yyruleno
==
79
);
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
{
yygotominor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
break
;
break
;
case
80
:
/* db_optr ::= db_optr tables */
case
80
:
/* db_optr ::= db_optr tables */
case
94
:
/* alter_db_optr ::= alter_db_optr tables */
yytestcase
(
yyruleno
==
94
);
case
94
:
/* alter_db_optr ::= alter_db_optr tables */
yytestcase
(
yyruleno
==
94
);
{
yygotominor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yygotominor
.
yy398
.
tablesPerVnode
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yylhsminor
.
yy398
.
tablesPerVnode
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy398
=
yylhsminor
.
yy398
;
break
;
break
;
case
81
:
/* db_optr ::= db_optr cache */
case
81
:
/* db_optr ::= db_optr cache */
{
yygotominor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yygotominor
.
yy398
.
cacheBlockSize
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yylhsminor
.
yy398
.
cacheBlockSize
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy398
=
yylhsminor
.
yy398
;
break
;
break
;
case
82
:
/* db_optr ::= db_optr replica */
case
82
:
/* db_optr ::= db_optr replica */
case
93
:
/* alter_db_optr ::= alter_db_optr replica */
yytestcase
(
yyruleno
==
93
);
case
93
:
/* alter_db_optr ::= alter_db_optr replica */
yytestcase
(
yyruleno
==
93
);
{
yygotominor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yygotominor
.
yy398
.
replica
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yylhsminor
.
yy398
.
replica
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy398
=
yylhsminor
.
yy398
;
break
;
break
;
case
83
:
/* db_optr ::= db_optr days */
case
83
:
/* db_optr ::= db_optr days */
{
yygotominor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yygotominor
.
yy398
.
daysPerFile
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yylhsminor
.
yy398
.
daysPerFile
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy398
=
yylhsminor
.
yy398
;
break
;
break
;
case
84
:
/* db_optr ::= db_optr rows */
case
84
:
/* db_optr ::= db_optr rows */
{
yygotominor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yygotominor
.
yy398
.
rowPerFileBlock
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yylhsminor
.
yy398
.
rowPerFileBlock
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy398
=
yylhsminor
.
yy398
;
break
;
break
;
case
85
:
/* db_optr ::= db_optr ablocks */
case
85
:
/* db_optr ::= db_optr ablocks */
{
yygotominor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yygotominor
.
yy398
.
numOfAvgCacheBlocks
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
{
yylhsminor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yylhsminor
.
yy398
.
numOfAvgCacheBlocks
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy398
=
yylhsminor
.
yy398
;
break
;
break
;
case
86
:
/* db_optr ::= db_optr tblocks */
case
86
:
/* db_optr ::= db_optr tblocks */
{
yygotominor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yygotominor
.
yy398
.
numOfBlocksPerTable
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yylhsminor
.
yy398
.
numOfBlocksPerTable
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy398
=
yylhsminor
.
yy398
;
break
;
break
;
case
87
:
/* db_optr ::= db_optr ctime */
case
87
:
/* db_optr ::= db_optr ctime */
{
yygotominor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yygotominor
.
yy398
.
commitTime
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yylhsminor
.
yy398
.
commitTime
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy398
=
yylhsminor
.
yy398
;
break
;
break
;
case
88
:
/* db_optr ::= db_optr clog */
case
88
:
/* db_optr ::= db_optr clog */
{
yygotominor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yygotominor
.
yy398
.
commitLog
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yylhsminor
.
yy398
.
commitLog
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy398
=
yylhsminor
.
yy398
;
break
;
break
;
case
89
:
/* db_optr ::= db_optr comp */
case
89
:
/* db_optr ::= db_optr comp */
{
yygotominor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yygotominor
.
yy398
.
compressionLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yylhsminor
.
yy398
.
compressionLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy398
=
yylhsminor
.
yy398
;
break
;
break
;
case
90
:
/* db_optr ::= db_optr prec */
case
90
:
/* db_optr ::= db_optr prec */
{
yygotominor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yygotominor
.
yy398
.
precision
=
yymsp
[
0
].
minor
.
yy0
;
}
{
yylhsminor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yylhsminor
.
yy398
.
precision
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
-
1
].
minor
.
yy398
=
yylhsminor
.
yy398
;
break
;
break
;
case
91
:
/* db_optr ::= db_optr keep */
case
91
:
/* db_optr ::= db_optr keep */
{
yygotominor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yygotominor
.
yy398
.
keep
=
yymsp
[
0
].
minor
.
yy56
;
}
{
yylhsminor
.
yy398
=
yymsp
[
-
1
].
minor
.
yy398
;
yylhsminor
.
yy398
.
keep
=
yymsp
[
0
].
minor
.
yy56
;
}
yymsp
[
-
1
].
minor
.
yy398
=
yylhsminor
.
yy398
;
break
;
break
;
case
92
:
/* alter_db_optr ::= */
case
92
:
/* alter_db_optr ::= */
{
memset
(
&
yy
goto
minor
.
yy398
,
0
,
sizeof
(
SCreateDBInfo
));}
{
memset
(
&
yy
msp
[
1
].
minor
.
yy398
,
0
,
sizeof
(
SCreateDBInfo
));}
break
;
break
;
case
95
:
/* typename ::= ids */
case
95
:
/* typename ::= ids */
{
tSQLSetColumnType
(
&
yygotominor
.
yy223
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
tSQLSetColumnType
(
&
yylhsminor
.
yy223
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy223
=
yylhsminor
.
yy223
;
break
;
break
;
case
96
:
/* typename ::= ids LP signed RP */
case
96
:
/* typename ::= ids LP signed RP */
{
{
yymsp
[
-
3
].
minor
.
yy0
.
type
=
-
yymsp
[
-
1
].
minor
.
yy389
;
// negative value of name length
yymsp
[
-
3
].
minor
.
yy0
.
type
=
-
yymsp
[
-
1
].
minor
.
yy389
;
// negative value of name length
tSQLSetColumnType
(
&
yy
goto
minor
.
yy223
,
&
yymsp
[
-
3
].
minor
.
yy0
);
tSQLSetColumnType
(
&
yy
lhs
minor
.
yy223
,
&
yymsp
[
-
3
].
minor
.
yy0
);
}
}
yymsp
[
-
3
].
minor
.
yy223
=
yylhsminor
.
yy223
;
break
;
break
;
case
97
:
/* signed ::= INTEGER */
case
97
:
/* signed ::= INTEGER */
case
98
:
/* signed ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
98
);
{
yylhsminor
.
yy389
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yygotominor
.
yy389
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
0
].
minor
.
yy389
=
yylhsminor
.
yy389
;
break
;
case
98
:
/* signed ::= PLUS INTEGER */
{
yymsp
[
-
1
].
minor
.
yy389
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
break
;
break
;
case
99
:
/* signed ::= MINUS INTEGER */
case
99
:
/* signed ::= MINUS INTEGER */
{
yy
goto
minor
.
yy389
=
-
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);}
{
yy
msp
[
-
1
].
minor
.
yy389
=
-
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);}
break
;
break
;
case
100
:
/* cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */
case
100
:
/* cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */
{
{
...
@@ -1870,54 +2228,61 @@ static void yy_reduce(
...
@@ -1870,54 +2228,61 @@ static void yy_reduce(
break
;
break
;
case
101
:
/* create_table_args ::= LP columnlist RP */
case
101
:
/* create_table_args ::= LP columnlist RP */
{
{
yy
goto
minor
.
yy158
=
tSetCreateSQLElems
(
yymsp
[
-
1
].
minor
.
yy471
,
NULL
,
NULL
,
NULL
,
NULL
,
TSQL_CREATE_NORMAL_METER
);
yy
msp
[
-
2
].
minor
.
yy158
=
tSetCreateSQLElems
(
yymsp
[
-
1
].
minor
.
yy471
,
NULL
,
NULL
,
NULL
,
NULL
,
TSQL_CREATE_NORMAL_METER
);
setSQLInfo
(
pInfo
,
yy
goto
minor
.
yy158
,
NULL
,
TSQL_CREATE_NORMAL_METER
);
setSQLInfo
(
pInfo
,
yy
msp
[
-
2
].
minor
.
yy158
,
NULL
,
TSQL_CREATE_NORMAL_METER
);
}
}
break
;
break
;
case
102
:
/* create_table_args ::= LP columnlist RP TAGS LP columnlist RP */
case
102
:
/* create_table_args ::= LP columnlist RP TAGS LP columnlist RP */
{
{
yy
goto
minor
.
yy158
=
tSetCreateSQLElems
(
yymsp
[
-
5
].
minor
.
yy471
,
yymsp
[
-
1
].
minor
.
yy471
,
NULL
,
NULL
,
NULL
,
TSQL_CREATE_NORMAL_METRIC
);
yy
msp
[
-
6
].
minor
.
yy158
=
tSetCreateSQLElems
(
yymsp
[
-
5
].
minor
.
yy471
,
yymsp
[
-
1
].
minor
.
yy471
,
NULL
,
NULL
,
NULL
,
TSQL_CREATE_NORMAL_METRIC
);
setSQLInfo
(
pInfo
,
yy
goto
minor
.
yy158
,
NULL
,
TSQL_CREATE_NORMAL_METRIC
);
setSQLInfo
(
pInfo
,
yy
msp
[
-
6
].
minor
.
yy158
,
NULL
,
TSQL_CREATE_NORMAL_METRIC
);
}
}
break
;
break
;
case
103
:
/* create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP */
case
103
:
/* create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP */
{
{
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
yy
goto
minor
.
yy158
=
tSetCreateSQLElems
(
NULL
,
NULL
,
&
yymsp
[
-
5
].
minor
.
yy0
,
yymsp
[
-
1
].
minor
.
yy56
,
NULL
,
TSQL_CREATE_METER_FROM_METRIC
);
yy
msp
[
-
6
].
minor
.
yy158
=
tSetCreateSQLElems
(
NULL
,
NULL
,
&
yymsp
[
-
5
].
minor
.
yy0
,
yymsp
[
-
1
].
minor
.
yy56
,
NULL
,
TSQL_CREATE_METER_FROM_METRIC
);
setSQLInfo
(
pInfo
,
yy
goto
minor
.
yy158
,
NULL
,
TSQL_CREATE_METER_FROM_METRIC
);
setSQLInfo
(
pInfo
,
yy
msp
[
-
6
].
minor
.
yy158
,
NULL
,
TSQL_CREATE_METER_FROM_METRIC
);
}
}
break
;
break
;
case
104
:
/* create_table_args ::= AS select */
case
104
:
/* create_table_args ::= AS select */
{
{
yy
goto
minor
.
yy158
=
tSetCreateSQLElems
(
NULL
,
NULL
,
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy24
,
TSQL_CREATE_STREAM
);
yy
msp
[
-
1
].
minor
.
yy158
=
tSetCreateSQLElems
(
NULL
,
NULL
,
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy24
,
TSQL_CREATE_STREAM
);
setSQLInfo
(
pInfo
,
yy
goto
minor
.
yy158
,
NULL
,
TSQL_CREATE_STREAM
);
setSQLInfo
(
pInfo
,
yy
msp
[
-
1
].
minor
.
yy158
,
NULL
,
TSQL_CREATE_STREAM
);
}
}
break
;
break
;
case
105
:
/* columnlist ::= columnlist COMMA column */
case
105
:
/* columnlist ::= columnlist COMMA column */
{
yygotominor
.
yy471
=
tFieldListAppend
(
yymsp
[
-
2
].
minor
.
yy471
,
&
yymsp
[
0
].
minor
.
yy223
);
}
{
yylhsminor
.
yy471
=
tFieldListAppend
(
yymsp
[
-
2
].
minor
.
yy471
,
&
yymsp
[
0
].
minor
.
yy223
);
}
yymsp
[
-
2
].
minor
.
yy471
=
yylhsminor
.
yy471
;
break
;
break
;
case
106
:
/* columnlist ::= column */
case
106
:
/* columnlist ::= column */
{
yygotominor
.
yy471
=
tFieldListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy223
);}
{
yylhsminor
.
yy471
=
tFieldListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy223
);}
yymsp
[
0
].
minor
.
yy471
=
yylhsminor
.
yy471
;
break
;
break
;
case
107
:
/* column ::= ids typename */
case
107
:
/* column ::= ids typename */
{
{
tSQLSetColumnInfo
(
&
yy
goto
minor
.
yy223
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy223
);
tSQLSetColumnInfo
(
&
yy
lhs
minor
.
yy223
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy223
);
}
}
yymsp
[
-
1
].
minor
.
yy223
=
yylhsminor
.
yy223
;
break
;
break
;
case
108
:
/* tagitemlist ::= tagitemlist COMMA tagitem */
case
108
:
/* tagitemlist ::= tagitemlist COMMA tagitem */
{
yygotominor
.
yy56
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy56
,
&
yymsp
[
0
].
minor
.
yy186
,
-
1
);
}
{
yylhsminor
.
yy56
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy56
,
&
yymsp
[
0
].
minor
.
yy186
,
-
1
);
}
yymsp
[
-
2
].
minor
.
yy56
=
yylhsminor
.
yy56
;
break
;
break
;
case
109
:
/* tagitemlist ::= tagitem */
case
109
:
/* tagitemlist ::= tagitem */
{
yygotominor
.
yy56
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy186
,
-
1
);
}
{
yylhsminor
.
yy56
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy186
,
-
1
);
}
yymsp
[
0
].
minor
.
yy56
=
yylhsminor
.
yy56
;
break
;
break
;
case
110
:
/* tagitem ::= INTEGER */
case
110
:
/* tagitem ::= INTEGER */
case
111
:
/* tagitem ::= FLOAT */
yytestcase
(
yyruleno
==
111
);
case
111
:
/* tagitem ::= FLOAT */
yytestcase
(
yyruleno
==
111
);
case
112
:
/* tagitem ::= STRING */
yytestcase
(
yyruleno
==
112
);
case
112
:
/* tagitem ::= STRING */
yytestcase
(
yyruleno
==
112
);
case
113
:
/* tagitem ::= BOOL */
yytestcase
(
yyruleno
==
113
);
case
113
:
/* tagitem ::= BOOL */
yytestcase
(
yyruleno
==
113
);
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yygotominor
.
yy186
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy186
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy186
=
yylhsminor
.
yy186
;
break
;
break
;
case
114
:
/* tagitem ::= NULL */
case
114
:
/* tagitem ::= NULL */
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tVariantCreate
(
&
yygotominor
.
yy186
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tVariantCreate
(
&
yylhsminor
.
yy186
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy186
=
yylhsminor
.
yy186
;
break
;
break
;
case
115
:
/* tagitem ::= MINUS INTEGER */
case
115
:
/* tagitem ::= MINUS INTEGER */
case
116
:
/* tagitem ::= MINUS FLOAT */
yytestcase
(
yyruleno
==
116
);
case
116
:
/* tagitem ::= MINUS FLOAT */
yytestcase
(
yyruleno
==
116
);
...
@@ -1927,8 +2292,9 @@ static void yy_reduce(
...
@@ -1927,8 +2292,9 @@ static void yy_reduce(
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
yymsp
[
0
].
minor
.
yy0
.
type
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
yymsp
[
0
].
minor
.
yy0
.
type
;
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yy
goto
minor
.
yy186
,
&
yymsp
[
-
1
].
minor
.
yy0
);
tVariantCreate
(
&
yy
lhs
minor
.
yy186
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
}
yymsp
[
-
1
].
minor
.
yy186
=
yylhsminor
.
yy186
;
break
;
break
;
case
119
:
/* cmd ::= select */
case
119
:
/* cmd ::= select */
{
{
...
@@ -1937,260 +2303,321 @@ static void yy_reduce(
...
@@ -1937,260 +2303,321 @@ static void yy_reduce(
break
;
break
;
case
120
:
/* select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
case
120
:
/* select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
{
{
yygotominor
.
yy24
=
tSetQuerySQLElems
(
&
yymsp
[
-
11
].
minor
.
yy0
,
yymsp
[
-
10
].
minor
.
yy498
,
yymsp
[
-
9
].
minor
.
yy56
,
yymsp
[
-
8
].
minor
.
yy90
,
yymsp
[
-
4
].
minor
.
yy56
,
yymsp
[
-
3
].
minor
.
yy56
,
&
yymsp
[
-
7
].
minor
.
yy0
,
&
yymsp
[
-
5
].
minor
.
yy0
,
yymsp
[
-
6
].
minor
.
yy56
,
&
yymsp
[
0
].
minor
.
yy294
,
&
yymsp
[
-
1
].
minor
.
yy294
);
yylhsminor
.
yy24
=
tSetQuerySQLElems
(
&
yymsp
[
-
11
].
minor
.
yy0
,
yymsp
[
-
10
].
minor
.
yy498
,
yymsp
[
-
9
].
minor
.
yy56
,
yymsp
[
-
8
].
minor
.
yy90
,
yymsp
[
-
4
].
minor
.
yy56
,
yymsp
[
-
3
].
minor
.
yy56
,
&
yymsp
[
-
7
].
minor
.
yy0
,
&
yymsp
[
-
5
].
minor
.
yy0
,
yymsp
[
-
6
].
minor
.
yy56
,
&
yymsp
[
0
].
minor
.
yy294
,
&
yymsp
[
-
1
].
minor
.
yy294
);
}
yymsp
[
-
11
].
minor
.
yy24
=
yylhsminor
.
yy24
;
break
;
case
121
:
/* select ::= SELECT selcollist */
{
yylhsminor
.
yy24
=
tSetQuerySQLElems
(
&
yymsp
[
-
1
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy498
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
}
}
yymsp
[
-
1
].
minor
.
yy24
=
yylhsminor
.
yy24
;
break
;
break
;
case
121
:
/* sclp ::= selcollist COMMA */
case
122
:
/* sclp ::= selcollist COMMA */
{
yygotominor
.
yy498
=
yymsp
[
-
1
].
minor
.
yy498
;}
{
yylhsminor
.
yy498
=
yymsp
[
-
1
].
minor
.
yy498
;}
yymsp
[
-
1
].
minor
.
yy498
=
yylhsminor
.
yy498
;
break
;
break
;
case
12
2
:
/* sclp ::= */
case
12
3
:
/* sclp ::= */
{
yy
goto
minor
.
yy498
=
0
;}
{
yy
msp
[
1
].
minor
.
yy498
=
0
;}
break
;
break
;
case
12
3
:
/* selcollist ::= sclp expr as */
case
12
4
:
/* selcollist ::= sclp expr as */
{
{
yy
goto
minor
.
yy498
=
tSQLExprListAppend
(
yymsp
[
-
2
].
minor
.
yy498
,
yymsp
[
-
1
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy0
.
n
?&
yymsp
[
0
].
minor
.
yy0
:
0
);
yy
lhs
minor
.
yy498
=
tSQLExprListAppend
(
yymsp
[
-
2
].
minor
.
yy498
,
yymsp
[
-
1
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy0
.
n
?&
yymsp
[
0
].
minor
.
yy0
:
0
);
}
}
yymsp
[
-
2
].
minor
.
yy498
=
yylhsminor
.
yy498
;
break
;
break
;
case
12
4
:
/* selcollist ::= sclp STAR */
case
12
5
:
/* selcollist ::= sclp STAR */
{
{
tSQLExpr
*
pNode
=
tSQLExprIdValueCreate
(
NULL
,
TK_ALL
);
tSQLExpr
*
pNode
=
tSQLExprIdValueCreate
(
NULL
,
TK_ALL
);
yy
goto
minor
.
yy498
=
tSQLExprListAppend
(
yymsp
[
-
1
].
minor
.
yy498
,
pNode
,
0
);
yy
lhs
minor
.
yy498
=
tSQLExprListAppend
(
yymsp
[
-
1
].
minor
.
yy498
,
pNode
,
0
);
}
}
yymsp
[
-
1
].
minor
.
yy498
=
yylhsminor
.
yy498
;
break
;
case
126
:
/* as ::= AS ids */
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
break
;
case
127
:
/* as ::= ids */
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
break
;
break
;
case
125
:
/* as ::= AS ids */
case
128
:
/* as ::= */
case
126
:
/* as ::= ids */
yytestcase
(
yyruleno
==
126
);
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
}
{
yygotominor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
break
;
break
;
case
12
7
:
/* as ::=
*/
case
12
9
:
/* from ::= FROM tablelist
*/
{
yygotominor
.
yy0
.
n
=
0
;
}
{
yymsp
[
-
1
].
minor
.
yy56
=
yymsp
[
0
].
minor
.
yy56
;
}
break
;
break
;
case
128
:
/* from ::= FROM tablelist */
case
130
:
/* tablelist ::= ids cpxName */
case
140
:
/* orderby_opt ::= ORDER BY sortlist */
yytestcase
(
yyruleno
==
140
);
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yylhsminor
.
yy56
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);}
case
148
:
/* groupby_opt ::= GROUP BY grouplist */
yytestcase
(
yyruleno
==
148
);
yymsp
[
-
1
].
minor
.
yy56
=
yylhsminor
.
yy56
;
{
yygotominor
.
yy56
=
yymsp
[
0
].
minor
.
yy56
;}
break
;
break
;
case
129
:
/* tablelist ::= ids cpxName */
case
131
:
/* tablelist ::= tablelist COMMA ids cpxName */
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yygotominor
.
yy56
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);}
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yylhsminor
.
yy56
=
tVariantListAppendToken
(
yymsp
[
-
3
].
minor
.
yy56
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
}
yymsp
[
-
3
].
minor
.
yy56
=
yylhsminor
.
yy56
;
break
;
break
;
case
130
:
/* tablelist ::= tablelist COMMA ids cpxName */
case
132
:
/* tmvar ::= VARIABLE */
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yygotominor
.
yy56
=
tVariantListAppendToken
(
yymsp
[
-
3
].
minor
.
yy56
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
}
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;}
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
break
;
break
;
case
131
:
/* tmvar ::= VARIABLE */
case
133
:
/* interval_opt ::= INTERVAL LP tmvar RP */
{
yygotominor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;}
case
138
:
/* sliding_opt ::= SLIDING LP tmvar RP */
yytestcase
(
yyruleno
==
138
);
{
yymsp
[
-
3
].
minor
.
yy0
=
yymsp
[
-
1
].
minor
.
yy0
;
}
break
;
break
;
case
13
2
:
/* interval_opt ::= INTERVAL LP tmvar RP
*/
case
13
4
:
/* interval_opt ::=
*/
case
13
7
:
/* sliding_opt ::= SLIDING LP tmvar RP */
yytestcase
(
yyruleno
==
137
);
case
13
9
:
/* sliding_opt ::= */
yytestcase
(
yyruleno
==
139
);
{
yy
gotominor
.
yy0
=
yymsp
[
-
1
].
minor
.
yy0
;
}
{
yy
msp
[
1
].
minor
.
yy0
.
n
=
0
;
yymsp
[
1
].
minor
.
yy0
.
z
=
NULL
;
yymsp
[
1
].
minor
.
yy0
.
type
=
0
;
}
break
;
break
;
case
13
4
:
/* fill_opt ::= */
case
13
5
:
/* fill_opt ::= */
{
yy
goto
minor
.
yy56
=
0
;
}
{
yy
msp
[
1
].
minor
.
yy56
=
0
;
}
break
;
break
;
case
13
5
:
/* fill_opt ::= FILL LP ID COMMA tagitemlist RP */
case
13
6
:
/* fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
{
tVariant
A
=
{
0
};
tVariant
A
=
{
0
};
toTSDBType
(
yymsp
[
-
3
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
-
3
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
A
,
&
yymsp
[
-
3
].
minor
.
yy0
);
tVariantCreate
(
&
A
,
&
yymsp
[
-
3
].
minor
.
yy0
);
tVariantListInsert
(
yymsp
[
-
1
].
minor
.
yy56
,
&
A
,
-
1
,
0
);
tVariantListInsert
(
yymsp
[
-
1
].
minor
.
yy56
,
&
A
,
-
1
,
0
);
yy
goto
minor
.
yy56
=
yymsp
[
-
1
].
minor
.
yy56
;
yy
msp
[
-
5
].
minor
.
yy56
=
yymsp
[
-
1
].
minor
.
yy56
;
}
}
break
;
break
;
case
13
6
:
/* fill_opt ::= FILL LP ID RP */
case
13
7
:
/* fill_opt ::= FILL LP ID RP */
{
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yy
goto
minor
.
yy56
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
yy
msp
[
-
3
].
minor
.
yy56
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
}
}
break
;
break
;
case
1
39
:
/* orderby_opt ::= */
case
1
40
:
/* orderby_opt ::= */
case
14
7
:
/* groupby_opt ::= */
yytestcase
(
yyruleno
==
147
);
case
14
8
:
/* groupby_opt ::= */
yytestcase
(
yyruleno
==
148
);
{
yy
goto
minor
.
yy56
=
0
;}
{
yy
msp
[
1
].
minor
.
yy56
=
0
;}
break
;
break
;
case
141
:
/* sortlist ::= sortlist COMMA item sortorder */
case
141
:
/* orderby_opt ::= ORDER BY sortlist */
case
149
:
/* groupby_opt ::= GROUP BY grouplist */
yytestcase
(
yyruleno
==
149
);
{
yymsp
[
-
2
].
minor
.
yy56
=
yymsp
[
0
].
minor
.
yy56
;}
break
;
case
142
:
/* sortlist ::= sortlist COMMA item sortorder */
{
{
yy
goto
minor
.
yy56
=
tVariantListAppend
(
yymsp
[
-
3
].
minor
.
yy56
,
&
yymsp
[
-
1
].
minor
.
yy186
,
yymsp
[
0
].
minor
.
yy332
);
yy
lhs
minor
.
yy56
=
tVariantListAppend
(
yymsp
[
-
3
].
minor
.
yy56
,
&
yymsp
[
-
1
].
minor
.
yy186
,
yymsp
[
0
].
minor
.
yy332
);
}
}
yymsp
[
-
3
].
minor
.
yy56
=
yylhsminor
.
yy56
;
break
;
break
;
case
14
2
:
/* sortlist ::= item sortorder */
case
14
3
:
/* sortlist ::= item sortorder */
{
{
yy
goto
minor
.
yy56
=
tVariantListAppend
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy186
,
yymsp
[
0
].
minor
.
yy332
);
yy
lhs
minor
.
yy56
=
tVariantListAppend
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy186
,
yymsp
[
0
].
minor
.
yy332
);
}
}
yymsp
[
-
1
].
minor
.
yy56
=
yylhsminor
.
yy56
;
break
;
break
;
case
14
3
:
/* item ::= ids cpxName */
case
14
4
:
/* item ::= ids cpxName */
{
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
tVariantCreate
(
&
yy
goto
minor
.
yy186
,
&
yymsp
[
-
1
].
minor
.
yy0
);
tVariantCreate
(
&
yy
lhs
minor
.
yy186
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
}
yymsp
[
-
1
].
minor
.
yy186
=
yylhsminor
.
yy186
;
break
;
break
;
case
14
4
:
/* sortorder ::= ASC */
case
14
5
:
/* sortorder ::= ASC */
{
yy
goto
minor
.
yy332
=
TSQL_SO_ASC
;
}
{
yy
msp
[
0
].
minor
.
yy332
=
TSQL_SO_ASC
;
}
break
;
break
;
case
14
5
:
/* sortorder ::= DESC */
case
14
6
:
/* sortorder ::= DESC */
{
yy
goto
minor
.
yy332
=
TSQL_SO_DESC
;}
{
yy
msp
[
0
].
minor
.
yy332
=
TSQL_SO_DESC
;}
break
;
break
;
case
14
6
:
/* sortorder ::= */
case
14
7
:
/* sortorder ::= */
{
yy
goto
minor
.
yy332
=
TSQL_SO_ASC
;}
{
yy
msp
[
1
].
minor
.
yy332
=
TSQL_SO_ASC
;}
break
;
break
;
case
1
49
:
/* grouplist ::= grouplist COMMA item */
case
1
50
:
/* grouplist ::= grouplist COMMA item */
{
{
yy
goto
minor
.
yy56
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy56
,
&
yymsp
[
0
].
minor
.
yy186
,
-
1
);
yy
lhs
minor
.
yy56
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy56
,
&
yymsp
[
0
].
minor
.
yy186
,
-
1
);
}
}
yymsp
[
-
2
].
minor
.
yy56
=
yylhsminor
.
yy56
;
break
;
break
;
case
15
0
:
/* grouplist ::= item */
case
15
1
:
/* grouplist ::= item */
{
{
yy
goto
minor
.
yy56
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy186
,
-
1
);
yy
lhs
minor
.
yy56
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy186
,
-
1
);
}
}
yymsp
[
0
].
minor
.
yy56
=
yylhsminor
.
yy56
;
break
;
break
;
case
15
1
:
/* having_opt ::= */
case
15
2
:
/* having_opt ::= */
case
16
1
:
/* where_opt ::= */
yytestcase
(
yyruleno
==
161
);
case
16
2
:
/* where_opt ::= */
yytestcase
(
yyruleno
==
162
);
case
19
7
:
/* expritem ::= */
yytestcase
(
yyruleno
==
197
);
case
19
8
:
/* expritem ::= */
yytestcase
(
yyruleno
==
198
);
{
yy
goto
minor
.
yy90
=
0
;}
{
yy
msp
[
1
].
minor
.
yy90
=
0
;}
break
;
break
;
case
152
:
/* having_opt ::= HAVING expr */
case
153
:
/* having_opt ::= HAVING expr */
case
162
:
/* where_opt ::= WHERE expr */
yytestcase
(
yyruleno
==
162
);
case
163
:
/* where_opt ::= WHERE expr */
yytestcase
(
yyruleno
==
163
);
case
196
:
/* expritem ::= expr */
yytestcase
(
yyruleno
==
196
);
{
yymsp
[
-
1
].
minor
.
yy90
=
yymsp
[
0
].
minor
.
yy90
;}
{
yygotominor
.
yy90
=
yymsp
[
0
].
minor
.
yy90
;}
break
;
break
;
case
15
3
:
/* limit_opt ::= */
case
15
4
:
/* limit_opt ::= */
case
15
7
:
/* slimit_opt ::= */
yytestcase
(
yyruleno
==
157
);
case
15
8
:
/* slimit_opt ::= */
yytestcase
(
yyruleno
==
158
);
{
yy
gotominor
.
yy294
.
limit
=
-
1
;
yygoto
minor
.
yy294
.
offset
=
0
;}
{
yy
msp
[
1
].
minor
.
yy294
.
limit
=
-
1
;
yymsp
[
1
].
minor
.
yy294
.
offset
=
0
;}
break
;
break
;
case
15
4
:
/* limit_opt ::= LIMIT signed */
case
15
5
:
/* limit_opt ::= LIMIT signed */
case
15
8
:
/* slimit_opt ::= SLIMIT signed */
yytestcase
(
yyruleno
==
158
);
case
15
9
:
/* slimit_opt ::= SLIMIT signed */
yytestcase
(
yyruleno
==
159
);
{
yy
gotominor
.
yy294
.
limit
=
yymsp
[
0
].
minor
.
yy389
;
yygoto
minor
.
yy294
.
offset
=
0
;}
{
yy
msp
[
-
1
].
minor
.
yy294
.
limit
=
yymsp
[
0
].
minor
.
yy389
;
yymsp
[
-
1
].
minor
.
yy294
.
offset
=
0
;}
break
;
break
;
case
15
5
:
/* limit_opt ::= LIMIT signed OFFSET signed */
case
15
6
:
/* limit_opt ::= LIMIT signed OFFSET signed */
case
1
59
:
/* slimit_opt ::= SLIMIT signed SOFFSET signed */
yytestcase
(
yyruleno
==
159
);
case
1
60
:
/* slimit_opt ::= SLIMIT signed SOFFSET signed */
yytestcase
(
yyruleno
==
160
);
{
yy
gotominor
.
yy294
.
limit
=
yymsp
[
-
2
].
minor
.
yy389
;
yygoto
minor
.
yy294
.
offset
=
yymsp
[
0
].
minor
.
yy389
;}
{
yy
msp
[
-
3
].
minor
.
yy294
.
limit
=
yymsp
[
-
2
].
minor
.
yy389
;
yymsp
[
-
3
].
minor
.
yy294
.
offset
=
yymsp
[
0
].
minor
.
yy389
;}
break
;
break
;
case
15
6
:
/* limit_opt ::= LIMIT signed COMMA signed */
case
15
7
:
/* limit_opt ::= LIMIT signed COMMA signed */
case
16
0
:
/* slimit_opt ::= SLIMIT signed COMMA signed */
yytestcase
(
yyruleno
==
160
);
case
16
1
:
/* slimit_opt ::= SLIMIT signed COMMA signed */
yytestcase
(
yyruleno
==
161
);
{
yy
gotominor
.
yy294
.
limit
=
yymsp
[
0
].
minor
.
yy389
;
yygoto
minor
.
yy294
.
offset
=
yymsp
[
-
2
].
minor
.
yy389
;}
{
yy
msp
[
-
3
].
minor
.
yy294
.
limit
=
yymsp
[
0
].
minor
.
yy389
;
yymsp
[
-
3
].
minor
.
yy294
.
offset
=
yymsp
[
-
2
].
minor
.
yy389
;}
break
;
break
;
case
16
3
:
/* expr ::= LP expr RP */
case
16
4
:
/* expr ::= LP expr RP */
{
yy
goto
minor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
}
{
yy
msp
[
-
2
].
minor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
}
break
;
break
;
case
164
:
/* expr ::= ID */
case
165
:
/* expr ::= ID */
{
yygotominor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_ID
);}
{
yylhsminor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
0
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
165
:
/* expr ::= ID DOT ID */
case
166
:
/* expr ::= ID DOT ID */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yygotominor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);}
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
-
2
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
166
:
/* expr ::= ID DOT STAR */
case
167
:
/* expr ::= ID DOT STAR */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yygotominor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ALL
);}
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ALL
);}
yymsp
[
-
2
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
167
:
/* expr ::= INTEGER */
case
168
:
/* expr ::= INTEGER */
{
yygotominor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
{
yylhsminor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
0
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
168
:
/* expr ::= MINUS INTEGER */
case
169
:
/* expr ::= MINUS INTEGER */
case
169
:
/* expr ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
169
);
case
170
:
/* expr ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
170
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yygotominor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
170
:
/* expr ::= FLOAT */
case
171
:
/* expr ::= FLOAT */
{
yygotominor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_FLOAT
);}
{
yylhsminor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
0
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
171
:
/* expr ::= MINUS FLOAT */
case
172
:
/* expr ::= MINUS FLOAT */
case
172
:
/* expr ::= PLUS FLOAT */
yytestcase
(
yyruleno
==
172
);
case
173
:
/* expr ::= PLUS FLOAT */
yytestcase
(
yyruleno
==
173
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_FLOAT
;
yygotominor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_FLOAT
);}
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_FLOAT
;
yylhsminor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
173
:
/* expr ::= STRING */
case
174
:
/* expr ::= STRING */
{
yygotominor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
{
yylhsminor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
yymsp
[
0
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
174
:
/* expr ::= NOW */
case
175
:
/* expr ::= NOW */
{
yygotominor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
{
yylhsminor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
yymsp
[
0
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
175
:
/* expr ::= VARIABLE */
case
176
:
/* expr ::= VARIABLE */
{
yygotominor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_VARIABLE
);}
{
yylhsminor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_VARIABLE
);}
yymsp
[
0
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
176
:
/* expr ::= BOOL */
case
177
:
/* expr ::= BOOL */
{
yygotominor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_BOOL
);}
{
yylhsminor
.
yy90
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_BOOL
);}
yymsp
[
0
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
17
7
:
/* expr ::= ID LP exprlist RP */
case
17
8
:
/* expr ::= ID LP exprlist RP */
{
{
yy
goto
minor
.
yy90
=
tSQLExprCreateFunction
(
yymsp
[
-
1
].
minor
.
yy498
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
yy
lhs
minor
.
yy90
=
tSQLExprCreateFunction
(
yymsp
[
-
1
].
minor
.
yy498
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
}
yymsp
[
-
3
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
17
8
:
/* expr ::= ID LP STAR RP */
case
17
9
:
/* expr ::= ID LP STAR RP */
{
{
yy
goto
minor
.
yy90
=
tSQLExprCreateFunction
(
NULL
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
yy
lhs
minor
.
yy90
=
tSQLExprCreateFunction
(
NULL
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
}
yymsp
[
-
3
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
case
180
:
/* expr ::= expr AND expr */
{
yylhsminor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_AND
);}
yymsp
[
-
2
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
179
:
/* expr ::= expr AND expr */
case
181
:
/* expr ::= expr OR expr */
{
yygotominor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_AND
);}
{
yylhsminor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_OR
);
}
yymsp
[
-
2
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
180
:
/* expr ::= expr OR expr */
case
182
:
/* expr ::= expr LT expr */
{
yygotominor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_OR
);
}
{
yylhsminor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_LT
);}
yymsp
[
-
2
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
181
:
/* expr ::= expr LT expr */
case
183
:
/* expr ::= expr GT expr */
{
yygotominor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_LT
);}
{
yylhsminor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_GT
);}
yymsp
[
-
2
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
182
:
/* expr ::= expr GT expr */
case
184
:
/* expr ::= expr LE expr */
{
yygotominor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_GT
);}
{
yylhsminor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_LE
);}
yymsp
[
-
2
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
183
:
/* expr ::= expr LE expr */
case
185
:
/* expr ::= expr GE expr */
{
yygotominor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_LE
);}
{
yylhsminor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_GE
);}
yymsp
[
-
2
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
184
:
/* expr ::= expr GE expr */
case
186
:
/* expr ::= expr NE expr */
{
yygotominor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_GE
);}
{
yylhsminor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_NE
);}
yymsp
[
-
2
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
185
:
/* expr ::= expr NE expr */
case
187
:
/* expr ::= expr EQ expr */
{
yygotominor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_NE
);}
{
yylhsminor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_EQ
);}
yymsp
[
-
2
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
186
:
/* expr ::= expr EQ expr */
case
188
:
/* expr ::= expr PLUS expr */
{
yygotominor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_EQ
);}
{
yylhsminor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_PLUS
);
}
yymsp
[
-
2
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
187
:
/* expr ::= expr PLUS expr */
case
189
:
/* expr ::= expr MINUS expr */
{
yygotominor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_PLUS
);
}
{
yylhsminor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_MINUS
);
}
yymsp
[
-
2
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
188
:
/* expr ::= expr MINUS expr */
case
190
:
/* expr ::= expr STAR expr */
{
yygotominor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_MINUS
);
}
{
yylhsminor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_STAR
);
}
yymsp
[
-
2
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
189
:
/* expr ::= expr STAR expr */
case
191
:
/* expr ::= expr SLASH expr */
{
yygotominor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_STAR
);
}
{
yylhsminor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_DIVIDE
);}
yymsp
[
-
2
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
190
:
/* expr ::= expr SLASH expr */
case
192
:
/* expr ::= expr REM expr */
{
yygotominor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_DIVIDE
);}
{
yylhsminor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_REM
);
}
yymsp
[
-
2
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
191
:
/* expr ::= expr REM expr */
case
193
:
/* expr ::= expr LIKE expr */
{
yygotominor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_REM
);
}
{
yylhsminor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_LIKE
);
}
yymsp
[
-
2
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
192
:
/* expr ::= expr LIKE expr */
case
194
:
/* expr ::= expr IN LP exprlist RP */
{
yygotominor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy90
,
yymsp
[
0
].
minor
.
yy90
,
TK_LIKE
);
}
{
yylhsminor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
4
].
minor
.
yy90
,
(
tSQLExpr
*
)
yymsp
[
-
1
].
minor
.
yy498
,
TK_IN
);
}
yymsp
[
-
4
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
193
:
/* expr ::= expr IN LP exprlist RP */
case
195
:
/* exprlist ::= exprlist COMMA expritem */
{
yygotominor
.
yy90
=
tSQLExprCreate
(
yymsp
[
-
4
].
minor
.
yy90
,
(
tSQLExpr
*
)
yymsp
[
-
1
].
minor
.
yy498
,
TK_IN
);
}
case
202
:
/* itemlist ::= itemlist COMMA expr */
yytestcase
(
yyruleno
==
202
);
{
yylhsminor
.
yy498
=
tSQLExprListAppend
(
yymsp
[
-
2
].
minor
.
yy498
,
yymsp
[
0
].
minor
.
yy90
,
0
);}
yymsp
[
-
2
].
minor
.
yy498
=
yylhsminor
.
yy498
;
break
;
break
;
case
194
:
/* exprlist ::= exprlist COMMA expritem */
case
196
:
/* exprlist ::= expritem */
case
201
:
/* itemlist ::= itemlist COMMA expr */
yytestcase
(
yyruleno
==
201
);
case
203
:
/* itemlist ::= expr */
yytestcase
(
yyruleno
==
203
);
{
yygotominor
.
yy498
=
tSQLExprListAppend
(
yymsp
[
-
2
].
minor
.
yy498
,
yymsp
[
0
].
minor
.
yy90
,
0
);}
{
yylhsminor
.
yy498
=
tSQLExprListAppend
(
0
,
yymsp
[
0
].
minor
.
yy90
,
0
);}
yymsp
[
0
].
minor
.
yy498
=
yylhsminor
.
yy498
;
break
;
break
;
case
19
5
:
/* exprlist ::= expritem
*/
case
19
7
:
/* expritem ::= expr
*/
case
202
:
/* itemlist ::= expr */
yytestcase
(
yyruleno
==
202
);
{
yylhsminor
.
yy90
=
yymsp
[
0
].
minor
.
yy90
;}
{
yygotominor
.
yy498
=
tSQLExprListAppend
(
0
,
yymsp
[
0
].
minor
.
yy90
,
0
);}
yymsp
[
0
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
19
8
:
/* cmd ::= INSERT INTO cpxName insert_value_list */
case
19
9
:
/* cmd ::= INSERT INTO cpxName insert_value_list */
{
{
tSetInsertSQLElems
(
pInfo
,
&
yymsp
[
-
1
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy74
);
tSetInsertSQLElems
(
pInfo
,
&
yymsp
[
-
1
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy74
);
}
}
break
;
break
;
case
199
:
/* insert_value_list ::= VALUES LP itemlist RP */
case
200
:
/* insert_value_list ::= VALUES LP itemlist RP */
{
yy
goto
minor
.
yy74
=
tSQLListListAppend
(
NULL
,
yymsp
[
-
1
].
minor
.
yy498
);}
{
yy
msp
[
-
3
].
minor
.
yy74
=
tSQLListListAppend
(
NULL
,
yymsp
[
-
1
].
minor
.
yy498
);}
break
;
break
;
case
200
:
/* insert_value_list ::= insert_value_list VALUES LP itemlist RP */
case
201
:
/* insert_value_list ::= insert_value_list VALUES LP itemlist RP */
{
yygotominor
.
yy74
=
tSQLListListAppend
(
yymsp
[
-
4
].
minor
.
yy74
,
yymsp
[
-
1
].
minor
.
yy498
);}
{
yylhsminor
.
yy74
=
tSQLListListAppend
(
yymsp
[
-
4
].
minor
.
yy74
,
yymsp
[
-
1
].
minor
.
yy498
);}
yymsp
[
-
4
].
minor
.
yy74
=
yylhsminor
.
yy74
;
break
;
break
;
case
20
3
:
/* cmd ::= RESET QUERY CACHE */
case
20
4
:
/* cmd ::= RESET QUERY CACHE */
{
setDCLSQLElems
(
pInfo
,
RESET_QUERY_CACHE
,
0
);}
{
setDCLSQLElems
(
pInfo
,
RESET_QUERY_CACHE
,
0
);}
break
;
break
;
case
20
4
:
/* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
case
20
5
:
/* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableSQL
*
pAlterTable
=
tAlterTableSQLElems
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy471
,
NULL
,
ALTER_TABLE_ADD_COLUMN
);
SAlterTableSQL
*
pAlterTable
=
tAlterTableSQLElems
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy471
,
NULL
,
ALTER_TABLE_ADD_COLUMN
);
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
ALTER_TABLE_ADD_COLUMN
);
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
ALTER_TABLE_ADD_COLUMN
);
}
}
break
;
break
;
case
20
5
:
/* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
case
20
6
:
/* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
...
@@ -2201,14 +2628,14 @@ static void yy_reduce(
...
@@ -2201,14 +2628,14 @@ static void yy_reduce(
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
ALTER_TABLE_DROP_COLUMN
);
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
ALTER_TABLE_DROP_COLUMN
);
}
}
break
;
break
;
case
20
6
:
/* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
case
20
7
:
/* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableSQL
*
pAlterTable
=
tAlterTableSQLElems
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy471
,
NULL
,
ALTER_TABLE_TAGS_ADD
);
SAlterTableSQL
*
pAlterTable
=
tAlterTableSQLElems
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy471
,
NULL
,
ALTER_TABLE_TAGS_ADD
);
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
ALTER_TABLE_TAGS_ADD
);
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
ALTER_TABLE_TAGS_ADD
);
}
}
break
;
break
;
case
20
7
:
/* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
case
20
8
:
/* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
...
@@ -2219,7 +2646,7 @@ static void yy_reduce(
...
@@ -2219,7 +2646,7 @@ static void yy_reduce(
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
ALTER_TABLE_TAGS_DROP
);
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
ALTER_TABLE_TAGS_DROP
);
}
}
break
;
break
;
case
20
8
:
/* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
case
20
9
:
/* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{
{
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
...
@@ -2233,7 +2660,7 @@ static void yy_reduce(
...
@@ -2233,7 +2660,7 @@ static void yy_reduce(
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
ALTER_TABLE_TAGS_CHG
);
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
ALTER_TABLE_TAGS_CHG
);
}
}
break
;
break
;
case
2
09
:
/* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
case
2
10
:
/* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{
{
yymsp
[
-
6
].
minor
.
yy0
.
n
+=
yymsp
[
-
5
].
minor
.
yy0
.
n
;
yymsp
[
-
6
].
minor
.
yy0
.
n
+=
yymsp
[
-
5
].
minor
.
yy0
.
n
;
...
@@ -2245,44 +2672,36 @@ static void yy_reduce(
...
@@ -2245,44 +2672,36 @@ static void yy_reduce(
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
ALTER_TABLE_TAGS_SET
);
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
ALTER_TABLE_TAGS_SET
);
}
}
break
;
break
;
case
21
0
:
/* cmd ::= KILL CONNECTION IP
COLON INTEGER */
case
21
1
:
/* cmd ::= KILL CONNECTION IPTOKEN
COLON INTEGER */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
+
yymsp
[
0
].
minor
.
yy0
.
n
);
setDCLSQLElems
(
pInfo
,
KILL_CONNECTION
,
1
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
+
yymsp
[
0
].
minor
.
yy0
.
n
);
setDCLSQLElems
(
pInfo
,
KILL_CONNECTION
,
1
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
break
;
break
;
case
21
1
:
/* cmd ::= KILL STREAM IP
COLON INTEGER COLON INTEGER */
case
21
2
:
/* cmd ::= KILL STREAM IPTOKEN
COLON INTEGER COLON INTEGER */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
+
yymsp
[
-
2
].
minor
.
yy0
.
n
+
yymsp
[
-
1
].
minor
.
yy0
.
n
+
yymsp
[
0
].
minor
.
yy0
.
n
);
setDCLSQLElems
(
pInfo
,
KILL_STREAM
,
1
,
&
yymsp
[
-
4
].
minor
.
yy0
);}
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
+
yymsp
[
-
2
].
minor
.
yy0
.
n
+
yymsp
[
-
1
].
minor
.
yy0
.
n
+
yymsp
[
0
].
minor
.
yy0
.
n
);
setDCLSQLElems
(
pInfo
,
KILL_STREAM
,
1
,
&
yymsp
[
-
4
].
minor
.
yy0
);}
break
;
break
;
case
21
2
:
/* cmd ::= KILL QUERY IP
COLON INTEGER COLON INTEGER */
case
21
3
:
/* cmd ::= KILL QUERY IPTOKEN
COLON INTEGER COLON INTEGER */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
+
yymsp
[
-
2
].
minor
.
yy0
.
n
+
yymsp
[
-
1
].
minor
.
yy0
.
n
+
yymsp
[
0
].
minor
.
yy0
.
n
);
setDCLSQLElems
(
pInfo
,
KILL_QUERY
,
1
,
&
yymsp
[
-
4
].
minor
.
yy0
);}
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
+
yymsp
[
-
2
].
minor
.
yy0
.
n
+
yymsp
[
-
1
].
minor
.
yy0
.
n
+
yymsp
[
0
].
minor
.
yy0
.
n
);
setDCLSQLElems
(
pInfo
,
KILL_QUERY
,
1
,
&
yymsp
[
-
4
].
minor
.
yy0
);}
break
;
break
;
default:
default:
break
;
break
;
/********** End reduce actions ************************************************/
/********** End reduce actions ************************************************/
};
};
assert
(
yyruleno
>=
0
&&
yyruleno
<
sizeof
(
yyRuleInfo
)
/
sizeof
(
yyRuleInfo
[
0
])
);
assert
(
yyruleno
<
sizeof
(
yyRuleInfo
)
/
sizeof
(
yyRuleInfo
[
0
])
);
yygoto
=
yyRuleInfo
[
yyruleno
].
lhs
;
yygoto
=
yyRuleInfo
[
yyruleno
].
lhs
;
yysize
=
yyRuleInfo
[
yyruleno
].
nrhs
;
yysize
=
yyRuleInfo
[
yyruleno
].
nrhs
;
yypParser
->
yyidx
-=
yysize
;
yyact
=
yy_find_reduce_action
(
yymsp
[
yysize
].
stateno
,(
YYCODETYPE
)
yygoto
);
yyact
=
yy_find_reduce_action
(
yymsp
[
-
yysize
].
stateno
,(
YYCODETYPE
)
yygoto
);
if
(
yyact
<=
YY_MAX_SHIFTREDUCE
){
/* There are no SHIFTREDUCE actions on nonterminals because the table
if
(
yyact
>
YY_MAX_SHIFT
)
yyact
+=
YY_MIN_REDUCE
-
YY_MIN_SHIFTREDUCE
;
** generator has simplified them to pure REDUCE actions. */
/* If the reduce action popped at least
assert
(
!
(
yyact
>
YY_MAX_SHIFT
&&
yyact
<=
YY_MAX_SHIFTREDUCE
)
);
** one element off the stack, then we can push the new element back
** onto the stack here, and skip the stack overflow test in yy_shift().
/* It is not possible for a REDUCE to be followed by an error */
** That gives a significant speed improvement. */
assert
(
yyact
!=
YY_ERROR_ACTION
);
if
(
yysize
){
yypParser
->
yyidx
++
;
yymsp
+=
yysize
+
1
;
yymsp
-=
yysize
-
1
;
yypParser
->
yytos
=
yymsp
;
yymsp
->
stateno
=
(
YYACTIONTYPE
)
yyact
;
yymsp
->
stateno
=
(
YYACTIONTYPE
)
yyact
;
yymsp
->
major
=
(
YYCODETYPE
)
yygoto
;
yymsp
->
major
=
(
YYCODETYPE
)
yygoto
;
yymsp
->
minor
=
yygotominor
;
yyTraceShift
(
yypParser
,
yyact
,
"... then shift"
);
yyTraceShift
(
yypParser
,
yyact
);
}
else
{
yy_shift
(
yypParser
,
yyact
,
yygoto
,
&
yygotominor
);
}
}
else
{
assert
(
yyact
==
YY_ACCEPT_ACTION
);
yy_accept
(
yypParser
);
}
}
}
/*
/*
...
@@ -2298,7 +2717,7 @@ static void yy_parse_failed(
...
@@ -2298,7 +2717,7 @@ static void yy_parse_failed(
fprintf
(
yyTraceFILE
,
"%sFail!
\n
"
,
yyTracePrompt
);
fprintf
(
yyTraceFILE
,
"%sFail!
\n
"
,
yyTracePrompt
);
}
}
#endif
#endif
while
(
yypParser
->
yy
idx
>=
0
)
yy_pop_parser_stack
(
yypParser
);
while
(
yypParser
->
yy
tos
>
yypParser
->
yystack
)
yy_pop_parser_stack
(
yypParser
);
/* Here code is inserted which will be executed whenever the
/* Here code is inserted which will be executed whenever the
** parser fails */
** parser fails */
/************ Begin %parse_failure code ***************************************/
/************ Begin %parse_failure code ***************************************/
...
@@ -2313,10 +2732,10 @@ static void yy_parse_failed(
...
@@ -2313,10 +2732,10 @@ static void yy_parse_failed(
static
void
yy_syntax_error
(
static
void
yy_syntax_error
(
yyParser
*
yypParser
,
/* The parser */
yyParser
*
yypParser
,
/* The parser */
int
yymajor
,
/* The major type of the error token */
int
yymajor
,
/* The major type of the error token */
YYMINORTYPE
yyminor
/* The minor type of the error token */
ParseTOKENTYPE
yyminor
/* The minor type of the error token */
){
){
ParseARG_FETCH
;
ParseARG_FETCH
;
#define TOKEN
(yyminor.yy0)
#define TOKEN
yyminor
/************ Begin %syntax_error code ****************************************/
/************ Begin %syntax_error code ****************************************/
pInfo
->
validSql
=
false
;
pInfo
->
validSql
=
false
;
...
@@ -2356,7 +2775,10 @@ static void yy_accept(
...
@@ -2356,7 +2775,10 @@ static void yy_accept(
fprintf
(
yyTraceFILE
,
"%sAccept!
\n
"
,
yyTracePrompt
);
fprintf
(
yyTraceFILE
,
"%sAccept!
\n
"
,
yyTracePrompt
);
}
}
#endif
#endif
while
(
yypParser
->
yyidx
>=
0
)
yy_pop_parser_stack
(
yypParser
);
#ifndef YYNOERRORRECOVERY
yypParser
->
yyerrcnt
=
-
1
;
#endif
assert
(
yypParser
->
yytos
==
yypParser
->
yystack
);
/* Here code is inserted which will be executed whenever the
/* Here code is inserted which will be executed whenever the
** parser accepts */
** parser accepts */
/*********** Begin %parse_accept code *****************************************/
/*********** Begin %parse_accept code *****************************************/
...
@@ -2391,7 +2813,7 @@ void Parse(
...
@@ -2391,7 +2813,7 @@ void Parse(
ParseARG_PDECL
/* Optional %extra_argument parameter */
ParseARG_PDECL
/* Optional %extra_argument parameter */
){
){
YYMINORTYPE
yyminorunion
;
YYMINORTYPE
yyminorunion
;
int
yyact
;
/* The parser action. */
unsigned
int
yyact
;
/* The parser action. */
#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
int
yyendofinput
;
/* True if we are at the end of input */
int
yyendofinput
;
/* True if we are at the end of input */
#endif
#endif
...
@@ -2400,29 +2822,8 @@ void Parse(
...
@@ -2400,29 +2822,8 @@ void Parse(
#endif
#endif
yyParser
*
yypParser
;
/* The parser */
yyParser
*
yypParser
;
/* The parser */
/* (re)initialize the parser, if necessary */
yypParser
=
(
yyParser
*
)
yyp
;
yypParser
=
(
yyParser
*
)
yyp
;
if
(
yypParser
->
yyidx
<
0
){
assert
(
yypParser
->
yytos
!=
0
);
#if YYSTACKDEPTH<=0
if
(
yypParser
->
yystksz
<=
0
){
/*memset(&yyminorunion, 0, sizeof(yyminorunion));*/
yyminorunion
=
yyzerominor
;
yyStackOverflow
(
yypParser
,
&
yyminorunion
);
return
;
}
#endif
yypParser
->
yyidx
=
0
;
yypParser
->
yyerrcnt
=
-
1
;
yypParser
->
yystack
[
0
].
stateno
=
0
;
yypParser
->
yystack
[
0
].
major
=
0
;
#ifndef NDEBUG
if
(
yyTraceFILE
){
fprintf
(
yyTraceFILE
,
"%sInitialize. Empty stack. State 0
\n
"
,
yyTracePrompt
);
}
#endif
}
yyminorunion
.
yy0
=
yyminor
;
#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
yyendofinput
=
(
yymajor
==
0
);
yyendofinput
=
(
yymajor
==
0
);
#endif
#endif
...
@@ -2430,21 +2831,34 @@ void Parse(
...
@@ -2430,21 +2831,34 @@ void Parse(
#ifndef NDEBUG
#ifndef NDEBUG
if
(
yyTraceFILE
){
if
(
yyTraceFILE
){
fprintf
(
yyTraceFILE
,
"%sInput '%s'
\n
"
,
yyTracePrompt
,
yyTokenName
[
yymajor
]);
int
stateno
=
yypParser
->
yytos
->
stateno
;
if
(
stateno
<
YY_MIN_REDUCE
){
fprintf
(
yyTraceFILE
,
"%sInput '%s' in state %d
\n
"
,
yyTracePrompt
,
yyTokenName
[
yymajor
],
stateno
);
}
else
{
fprintf
(
yyTraceFILE
,
"%sInput '%s' with pending reduce %d
\n
"
,
yyTracePrompt
,
yyTokenName
[
yymajor
],
stateno
-
YY_MIN_REDUCE
);
}
}
}
#endif
#endif
do
{
do
{
yyact
=
yy_find_shift_action
(
yypParser
,(
YYCODETYPE
)
yymajor
);
yyact
=
yy_find_shift_action
(
yypParser
,(
YYCODETYPE
)
yymajor
);
if
(
yyact
<=
YY_MAX_SHIFTREDUCE
){
if
(
yyact
>=
YY_MIN_REDUCE
){
if
(
yyact
>
YY_MAX_SHIFT
)
yyact
+=
YY_MIN_REDUCE
-
YY_MIN_SHIFTREDUCE
;
yy_reduce
(
yypParser
,
yyact
-
YY_MIN_REDUCE
,
yymajor
,
yyminor
);
yy_shift
(
yypParser
,
yyact
,
yymajor
,
&
yyminorunion
);
}
else
if
(
yyact
<=
YY_MAX_SHIFTREDUCE
){
yy_shift
(
yypParser
,
yyact
,
yymajor
,
yyminor
);
#ifndef YYNOERRORRECOVERY
yypParser
->
yyerrcnt
--
;
yypParser
->
yyerrcnt
--
;
#endif
yymajor
=
YYNOCODE
;
yymajor
=
YYNOCODE
;
}
else
if
(
yyact
<=
YY_MAX_REDUCE
){
}
else
if
(
yyact
==
YY_ACCEPT_ACTION
){
yy_reduce
(
yypParser
,
yyact
-
YY_MIN_REDUCE
);
yypParser
->
yytos
--
;
yy_accept
(
yypParser
);
return
;
}
else
{
}
else
{
assert
(
yyact
==
YY_ERROR_ACTION
);
assert
(
yyact
==
YY_ERROR_ACTION
);
yyminorunion
.
yy0
=
yyminor
;
#ifdef YYERRORSYMBOL
#ifdef YYERRORSYMBOL
int
yymx
;
int
yymx
;
#endif
#endif
...
@@ -2474,9 +2888,9 @@ void Parse(
...
@@ -2474,9 +2888,9 @@ void Parse(
**
**
*/
*/
if
(
yypParser
->
yyerrcnt
<
0
){
if
(
yypParser
->
yyerrcnt
<
0
){
yy_syntax_error
(
yypParser
,
yymajor
,
yyminor
union
);
yy_syntax_error
(
yypParser
,
yymajor
,
yyminor
);
}
}
yymx
=
yypParser
->
yy
stack
[
yypParser
->
yyidx
].
major
;
yymx
=
yypParser
->
yy
tos
->
major
;
if
(
yymx
==
YYERRORSYMBOL
||
yyerrorhit
){
if
(
yymx
==
YYERRORSYMBOL
||
yyerrorhit
){
#ifndef NDEBUG
#ifndef NDEBUG
if
(
yyTraceFILE
){
if
(
yyTraceFILE
){
...
@@ -2484,26 +2898,26 @@ void Parse(
...
@@ -2484,26 +2898,26 @@ void Parse(
yyTracePrompt
,
yyTokenName
[
yymajor
]);
yyTracePrompt
,
yyTokenName
[
yymajor
]);
}
}
#endif
#endif
yy_destructor
(
yypParser
,
(
YYCODETYPE
)
yymajor
,
&
yyminorunion
);
yy_destructor
(
yypParser
,
(
YYCODETYPE
)
yymajor
,
&
yyminorunion
);
yymajor
=
YYNOCODE
;
yymajor
=
YYNOCODE
;
}
else
{
}
else
{
while
(
while
(
yypParser
->
yytos
>=
yypParser
->
yystack
yypParser
->
yyidx
>=
0
&&
&&
yymx
!=
YYERRORSYMBOL
yymx
!=
YYERRORSYMBOL
&&
&&
(
yyact
=
yy_find_reduce_action
(
(
yyact
=
yy_find_reduce_action
(
yypParser
->
yytos
->
stateno
,
yypParser
->
yystack
[
yypParser
->
yyidx
].
stateno
,
YYERRORSYMBOL
))
>=
YY_MIN_REDUCE
YYERRORSYMBOL
))
>=
YY_MIN_REDUCE
){
){
yy_pop_parser_stack
(
yypParser
);
yy_pop_parser_stack
(
yypParser
);
}
}
if
(
yypParser
->
yy
idx
<
0
||
yymajor
==
0
){
if
(
yypParser
->
yy
tos
<
yypParser
->
yystack
||
yymajor
==
0
){
yy_destructor
(
yypParser
,(
YYCODETYPE
)
yymajor
,
&
yyminorunion
);
yy_destructor
(
yypParser
,(
YYCODETYPE
)
yymajor
,
&
yyminorunion
);
yy_parse_failed
(
yypParser
);
yy_parse_failed
(
yypParser
);
#ifndef YYNOERRORRECOVERY
yypParser
->
yyerrcnt
=
-
1
;
#endif
yymajor
=
YYNOCODE
;
yymajor
=
YYNOCODE
;
}
else
if
(
yymx
!=
YYERRORSYMBOL
){
}
else
if
(
yymx
!=
YYERRORSYMBOL
){
YYMINORTYPE
u2
;
yy_shift
(
yypParser
,
yyact
,
YYERRORSYMBOL
,
yyminor
);
u2
.
YYERRSYMDT
=
0
;
yy_shift
(
yypParser
,
yyact
,
YYERRORSYMBOL
,
&
u2
);
}
}
}
}
yypParser
->
yyerrcnt
=
3
;
yypParser
->
yyerrcnt
=
3
;
...
@@ -2516,7 +2930,7 @@ void Parse(
...
@@ -2516,7 +2930,7 @@ void Parse(
** Applications can set this macro (for example inside %include) if
** Applications can set this macro (for example inside %include) if
** they intend to abandon the parse upon the first syntax error seen.
** they intend to abandon the parse upon the first syntax error seen.
*/
*/
yy_syntax_error
(
yypParser
,
yymajor
,
yyminorunion
);
yy_syntax_error
(
yypParser
,
yymajor
,
yyminor
);
yy_destructor
(
yypParser
,(
YYCODETYPE
)
yymajor
,
&
yyminorunion
);
yy_destructor
(
yypParser
,(
YYCODETYPE
)
yymajor
,
&
yyminorunion
);
yymajor
=
YYNOCODE
;
yymajor
=
YYNOCODE
;
...
@@ -2531,24 +2945,29 @@ void Parse(
...
@@ -2531,24 +2945,29 @@ void Parse(
** three input tokens have been successfully shifted.
** three input tokens have been successfully shifted.
*/
*/
if
(
yypParser
->
yyerrcnt
<=
0
){
if
(
yypParser
->
yyerrcnt
<=
0
){
yy_syntax_error
(
yypParser
,
yymajor
,
yyminorunion
);
yy_syntax_error
(
yypParser
,
yymajor
,
yyminor
);
}
}
yypParser
->
yyerrcnt
=
3
;
yypParser
->
yyerrcnt
=
3
;
yy_destructor
(
yypParser
,(
YYCODETYPE
)
yymajor
,
&
yyminorunion
);
yy_destructor
(
yypParser
,(
YYCODETYPE
)
yymajor
,
&
yyminorunion
);
if
(
yyendofinput
){
if
(
yyendofinput
){
yy_parse_failed
(
yypParser
);
yy_parse_failed
(
yypParser
);
#ifndef YYNOERRORRECOVERY
yypParser
->
yyerrcnt
=
-
1
;
#endif
}
}
yymajor
=
YYNOCODE
;
yymajor
=
YYNOCODE
;
#endif
#endif
}
}
}
while
(
yymajor
!=
YYNOCODE
&&
yypParser
->
yy
idx
>=
0
);
}
while
(
yymajor
!=
YYNOCODE
&&
yypParser
->
yy
tos
>
yypParser
->
yystack
);
#ifndef NDEBUG
#ifndef NDEBUG
if
(
yyTraceFILE
){
if
(
yyTraceFILE
){
int
i
;
yyStackEntry
*
i
;
char
cDiv
=
'['
;
fprintf
(
yyTraceFILE
,
"%sReturn. Stack="
,
yyTracePrompt
);
fprintf
(
yyTraceFILE
,
"%sReturn. Stack="
,
yyTracePrompt
);
for
(
i
=
1
;
i
<=
yypParser
->
yyidx
;
i
++
)
for
(
i
=&
yypParser
->
yystack
[
1
];
i
<=
yypParser
->
yytos
;
i
++
){
fprintf
(
yyTraceFILE
,
"%c%s"
,
i
==
1
?
'['
:
' '
,
fprintf
(
yyTraceFILE
,
"%c%s"
,
cDiv
,
yyTokenName
[
i
->
major
]);
yyTokenName
[
yypParser
->
yystack
[
i
].
major
]);
cDiv
=
' '
;
}
fprintf
(
yyTraceFILE
,
"]
\n
"
);
fprintf
(
yyTraceFILE
,
"]
\n
"
);
}
}
#endif
#endif
...
...
src/util/src/ttokenizer.c
浏览文件 @
11dd3efd
...
@@ -96,7 +96,6 @@ static SKeyword keywordTable[] = {
...
@@ -96,7 +96,6 @@ static SKeyword keywordTable[] = {
{
"TABLE"
,
TK_TABLE
},
{
"TABLE"
,
TK_TABLE
},
{
"DATABASE"
,
TK_DATABASE
},
{
"DATABASE"
,
TK_DATABASE
},
{
"DNODE"
,
TK_DNODE
},
{
"DNODE"
,
TK_DNODE
},
{
"IP"
,
TK_IP
},
{
"USER"
,
TK_USER
},
{
"USER"
,
TK_USER
},
{
"ACCOUNT"
,
TK_ACCOUNT
},
{
"ACCOUNT"
,
TK_ACCOUNT
},
{
"USE"
,
TK_USE
},
{
"USE"
,
TK_USE
},
...
@@ -523,7 +522,7 @@ uint32_t tSQLGetToken(char* z, uint32_t* tokenType) {
...
@@ -523,7 +522,7 @@ uint32_t tSQLGetToken(char* z, uint32_t* tokenType) {
}
}
if
(
seg
==
4
)
{
// ip address
if
(
seg
==
4
)
{
// ip address
*
tokenType
=
TK_IP
;
*
tokenType
=
TK_IP
TOKEN
;
return
i
;
return
i
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录