Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
e6058244
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
e6058244
编写于
3月 02, 2022
作者:
S
shenglian-zhou
提交者:
GitHub
3月 02, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #10352 from taosdata/feature/TD-11220
[TD-11220]<feature>(query): time related functions
上级
52e2009c
e376d43e
变更
15
显示空白变更内容
内联
并排
Showing
15 changed file
with
2762 addition
and
1435 deletion
+2762
-1435
src/client/src/tscParseInsert.c
src/client/src/tscParseInsert.c
+5
-1
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+21
-11
src/common/inc/texpr.h
src/common/inc/texpr.h
+33
-24
src/common/src/tarithoperator.c
src/common/src/tarithoperator.c
+119
-48
src/common/src/texpr.c
src/common/src/texpr.c
+833
-6
src/common/src/tvariant.c
src/common/src/tvariant.c
+4
-2
src/inc/taosdef.h
src/inc/taosdef.h
+19
-12
src/inc/ttokendef.h
src/inc/ttokendef.h
+56
-55
src/inc/ttype.h
src/inc/ttype.h
+5
-1
src/os/inc/osTime.h
src/os/inc/osTime.h
+9
-0
src/os/src/detail/osTime.c
src/os/src/detail/osTime.c
+35
-13
src/query/inc/sql.y
src/query/inc/sql.y
+2
-1
src/query/src/qSqlParser.c
src/query/src/qSqlParser.c
+29
-5
src/query/src/sql.c
src/query/src/sql.c
+1584
-1256
src/util/src/ttokenizer.c
src/util/src/ttokenizer.c
+8
-0
未找到文件。
src/client/src/tscParseInsert.c
浏览文件 @
e6058244
...
@@ -70,6 +70,10 @@ int tsParseTime(SStrToken *pToken, int64_t *time, char **next, char *error, int1
...
@@ -70,6 +70,10 @@ int tsParseTime(SStrToken *pToken, int64_t *time, char **next, char *error, int1
if
(
pToken
->
type
==
TK_NOW
)
{
if
(
pToken
->
type
==
TK_NOW
)
{
useconds
=
taosGetTimestamp
(
timePrec
);
useconds
=
taosGetTimestamp
(
timePrec
);
}
else
if
(
pToken
->
type
==
TK_TODAY
)
{
int64_t
factor
=
(
timePrec
==
TSDB_TIME_PRECISION_MILLI
)
?
1000
:
(
timePrec
==
TSDB_TIME_PRECISION_MICRO
)
?
1000000
:
1000000000
;
useconds
=
taosGetTimestampToday
()
*
factor
;
}
else
if
(
strncmp
(
pToken
->
z
,
"0"
,
1
)
==
0
&&
pToken
->
n
==
1
)
{
}
else
if
(
strncmp
(
pToken
->
z
,
"0"
,
1
)
==
0
&&
pToken
->
n
==
1
)
{
// do nothing
// do nothing
}
else
if
(
pToken
->
type
==
TK_INTEGER
)
{
}
else
if
(
pToken
->
type
==
TK_INTEGER
)
{
...
@@ -473,7 +477,7 @@ int tsParseOneRow(char **str, STableDataBlocks *pDataBlocks, int16_t timePrec, i
...
@@ -473,7 +477,7 @@ int tsParseOneRow(char **str, STableDataBlocks *pDataBlocks, int16_t timePrec, i
}
}
int16_t
type
=
sToken
.
type
;
int16_t
type
=
sToken
.
type
;
if
((
type
!=
TK_NOW
&&
type
!=
TK_INTEGER
&&
type
!=
TK_STRING
&&
type
!=
TK_FLOAT
&&
type
!=
TK_BOOL
&&
if
((
type
!=
TK_NOW
&&
type
!=
TK_
TODAY
&&
type
!=
TK_
INTEGER
&&
type
!=
TK_STRING
&&
type
!=
TK_FLOAT
&&
type
!=
TK_BOOL
&&
type
!=
TK_NULL
&&
type
!=
TK_HEX
&&
type
!=
TK_OCT
&&
type
!=
TK_BIN
)
||
type
!=
TK_NULL
&&
type
!=
TK_HEX
&&
type
!=
TK_OCT
&&
type
!=
TK_BIN
)
||
(
sToken
.
n
==
0
)
||
(
type
==
TK_RP
))
{
(
sToken
.
n
==
0
)
||
(
type
==
TK_RP
))
{
return
tscSQLSyntaxErrMsg
(
pInsertParam
->
msg
,
"invalid data or symbol"
,
sToken
.
z
);
return
tscSQLSyntaxErrMsg
(
pInsertParam
->
msg
,
"invalid data or symbol"
,
sToken
.
z
);
...
...
src/client/src/tscSQLParser.c
浏览文件 @
e6058244
...
@@ -5075,8 +5075,8 @@ static int32_t validateSQLExprItem(SSqlCmd* pCmd, tSqlExpr* pExpr,
...
@@ -5075,8 +5075,8 @@ static int32_t validateSQLExprItem(SSqlCmd* pCmd, tSqlExpr* pExpr,
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg3
);
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg3
);
}
}
//no
w allowing now +/- value
in select expr
//no
t allowing now/today keyword arithmetic operation
in select expr
if
(
pExpr
->
tokenId
==
TK_TIMESTAMP
)
{
if
(
pExpr
->
exprToken
.
type
==
TK_NOW
||
pExpr
->
exprToken
.
type
==
TK_TODAY
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg3
);
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg3
);
}
}
...
@@ -5455,6 +5455,7 @@ static int32_t handleExprInQueryCond(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, tSql
...
@@ -5455,6 +5455,7 @@ static int32_t handleExprInQueryCond(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, tSql
}
else
{
}
else
{
colName
=
&
(
pLeft
->
columnName
);
colName
=
&
(
pLeft
->
columnName
);
}
}
int32_t
ret
=
TSDB_CODE_SUCCESS
;
int32_t
ret
=
TSDB_CODE_SUCCESS
;
SColumnIndex
index
=
COLUMN_INDEX_INITIALIZER
;
SColumnIndex
index
=
COLUMN_INDEX_INITIALIZER
;
...
@@ -10436,6 +10437,10 @@ int32_t exprTreeFromSqlExpr(SSqlCmd* pCmd, tExprNode **pExpr, const tSqlExpr* pS
...
@@ -10436,6 +10437,10 @@ int32_t exprTreeFromSqlExpr(SSqlCmd* pCmd, tExprNode **pExpr, const tSqlExpr* pS
(
*
pExpr
)
->
pVal
=
calloc
(
1
,
sizeof
(
tVariant
));
(
*
pExpr
)
->
pVal
=
calloc
(
1
,
sizeof
(
tVariant
));
tVariantAssign
((
*
pExpr
)
->
pVal
,
&
pSqlExpr
->
value
);
tVariantAssign
((
*
pExpr
)
->
pVal
,
&
pSqlExpr
->
value
);
STableMetaInfo
*
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
pQueryInfo
->
curTableIdx
);
STableComInfo
tinfo
=
tscGetTableInfo
(
pTableMetaInfo
->
pTableMeta
);
(
*
pExpr
)
->
precision
=
tinfo
.
precision
;
STableMeta
*
pTableMeta
=
tscGetMetaInfo
(
pQueryInfo
,
pQueryInfo
->
curTableIdx
)
->
pTableMeta
;
STableMeta
*
pTableMeta
=
tscGetMetaInfo
(
pQueryInfo
,
pQueryInfo
->
curTableIdx
)
->
pTableMeta
;
if
(
pCols
!=
NULL
)
{
if
(
pCols
!=
NULL
)
{
size_t
colSize
=
taosArrayGetSize
(
pCols
);
size_t
colSize
=
taosArrayGetSize
(
pCols
);
...
@@ -10598,6 +10603,11 @@ int32_t exprTreeFromSqlExpr(SSqlCmd* pCmd, tExprNode **pExpr, const tSqlExpr* pS
...
@@ -10598,6 +10603,11 @@ int32_t exprTreeFromSqlExpr(SSqlCmd* pCmd, tExprNode **pExpr, const tSqlExpr* pS
*
pExpr
=
calloc
(
1
,
sizeof
(
tExprNode
));
*
pExpr
=
calloc
(
1
,
sizeof
(
tExprNode
));
(
*
pExpr
)
->
nodeType
=
TSQL_NODE_FUNC
;
(
*
pExpr
)
->
nodeType
=
TSQL_NODE_FUNC
;
(
*
pExpr
)
->
_func
.
functionId
=
pSqlExpr
->
functionId
;
(
*
pExpr
)
->
_func
.
functionId
=
pSqlExpr
->
functionId
;
STableMetaInfo
*
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
pQueryInfo
->
curTableIdx
);
STableComInfo
tinfo
=
tscGetTableInfo
(
pTableMetaInfo
->
pTableMeta
);
(
*
pExpr
)
->
precision
=
tinfo
.
precision
;
SArray
*
paramList
=
pSqlExpr
->
Expr
.
paramList
;
SArray
*
paramList
=
pSqlExpr
->
Expr
.
paramList
;
size_t
paramSize
=
paramList
?
taosArrayGetSize
(
paramList
)
:
0
;
size_t
paramSize
=
paramList
?
taosArrayGetSize
(
paramList
)
:
0
;
if
(
paramSize
>
0
)
{
if
(
paramSize
>
0
)
{
...
...
src/common/inc/texpr.h
浏览文件 @
e6058244
...
@@ -70,7 +70,15 @@ struct SSchema;
...
@@ -70,7 +70,15 @@ struct SSchema;
#define TSDB_FUNC_SCALAR_LTRIM (TSDB_FUNC_FLAG_SCALAR | 0x0014)
#define TSDB_FUNC_SCALAR_LTRIM (TSDB_FUNC_FLAG_SCALAR | 0x0014)
#define TSDB_FUNC_SCALAR_RTRIM (TSDB_FUNC_FLAG_SCALAR | 0x0015)
#define TSDB_FUNC_SCALAR_RTRIM (TSDB_FUNC_FLAG_SCALAR | 0x0015)
#define TSDB_FUNC_SCALAR_SUBSTR (TSDB_FUNC_FLAG_SCALAR | 0x0016)
#define TSDB_FUNC_SCALAR_SUBSTR (TSDB_FUNC_FLAG_SCALAR | 0x0016)
#define TSDB_FUNC_SCALAR_NUM_FUNCTIONS 23
#define TSDB_FUNC_SCALAR_NOW (TSDB_FUNC_FLAG_SCALAR | 0x0017)
#define TSDB_FUNC_SCALAR_TODAY (TSDB_FUNC_FLAG_SCALAR | 0x0018)
#define TSDB_FUNC_SCALAR_TIMEZONE (TSDB_FUNC_FLAG_SCALAR | 0x0019)
#define TSDB_FUNC_SCALAR_TO_ISO8601 (TSDB_FUNC_FLAG_SCALAR | 0x001A)
#define TSDB_FUNC_SCALAR_TO_UNIXTIMESTAMP (TSDB_FUNC_FLAG_SCALAR | 0x001B)
#define TSDB_FUNC_SCALAR_TIMETRUNCATE (TSDB_FUNC_FLAG_SCALAR | 0x001C)
#define TSDB_FUNC_SCALAR_TIMEDIFF (TSDB_FUNC_FLAG_SCALAR | 0x001D)
#define TSDB_FUNC_SCALAR_NUM_FUNCTIONS 30
#define TSDB_FUNC_SCALAR_NAME_MAX_LEN 16
#define TSDB_FUNC_SCALAR_NAME_MAX_LEN 16
...
@@ -143,6 +151,7 @@ typedef struct tExprNode {
...
@@ -143,6 +151,7 @@ typedef struct tExprNode {
};
};
int16_t
resultType
;
int16_t
resultType
;
int16_t
resultBytes
;
int16_t
resultBytes
;
int32_t
precision
;
}
tExprNode
;
}
tExprNode
;
typedef
struct
SExprTraverseSupp
{
typedef
struct
SExprTraverseSupp
{
...
...
src/common/src/tarithoperator.c
浏览文件 @
e6058244
...
@@ -92,6 +92,9 @@ double getVectorDoubleValue_FLOAT(void *src, int32_t index) {
...
@@ -92,6 +92,9 @@ double getVectorDoubleValue_FLOAT(void *src, int32_t index) {
double
getVectorDoubleValue_DOUBLE
(
void
*
src
,
int32_t
index
)
{
double
getVectorDoubleValue_DOUBLE
(
void
*
src
,
int32_t
index
)
{
return
(
double
)
*
((
double
*
)
src
+
index
);
return
(
double
)
*
((
double
*
)
src
+
index
);
}
}
int64_t
getVectorTimestampValue
(
void
*
src
,
int32_t
index
)
{
return
(
int64_t
)
*
((
int64_t
*
)
src
+
index
);
}
_arithmetic_getVectorDoubleValue_fn_t
getVectorDoubleValueFn
(
int32_t
srcType
)
{
_arithmetic_getVectorDoubleValue_fn_t
getVectorDoubleValueFn
(
int32_t
srcType
)
{
_arithmetic_getVectorDoubleValue_fn_t
p
=
NULL
;
_arithmetic_getVectorDoubleValue_fn_t
p
=
NULL
;
if
(
srcType
==
TSDB_DATA_TYPE_TINYINT
)
{
if
(
srcType
==
TSDB_DATA_TYPE_TINYINT
)
{
...
@@ -176,6 +179,8 @@ _arithmetic_getVectorValueAddr_fn_t getVectorValueAddrFn(int32_t srcType) {
...
@@ -176,6 +179,8 @@ _arithmetic_getVectorValueAddr_fn_t getVectorValueAddrFn(int32_t srcType) {
p
=
getVectorValueAddr_FLOAT
;
p
=
getVectorValueAddr_FLOAT
;
}
else
if
(
srcType
==
TSDB_DATA_TYPE_DOUBLE
)
{
}
else
if
(
srcType
==
TSDB_DATA_TYPE_DOUBLE
)
{
p
=
getVectorValueAddr_DOUBLE
;
p
=
getVectorValueAddr_DOUBLE
;
}
else
if
(
srcType
==
TSDB_DATA_TYPE_TIMESTAMP
)
{
p
=
getVectorValueAddr_BIGINT
;
}
else
{
}
else
{
assert
(
0
);
assert
(
0
);
}
}
...
@@ -185,7 +190,9 @@ _arithmetic_getVectorValueAddr_fn_t getVectorValueAddrFn(int32_t srcType) {
...
@@ -185,7 +190,9 @@ _arithmetic_getVectorValueAddr_fn_t getVectorValueAddrFn(int32_t srcType) {
void
vectorAdd
(
void
*
left
,
int32_t
len1
,
int32_t
_left_type
,
void
*
right
,
int32_t
len2
,
int32_t
_right_type
,
void
*
out
,
int32_t
_ord
)
{
void
vectorAdd
(
void
*
left
,
int32_t
len1
,
int32_t
_left_type
,
void
*
right
,
int32_t
len2
,
int32_t
_right_type
,
void
*
out
,
int32_t
_ord
)
{
int32_t
i
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
0
:
MAX
(
len1
,
len2
)
-
1
;
int32_t
i
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
0
:
MAX
(
len1
,
len2
)
-
1
;
int32_t
step
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
1
:
-
1
;
int32_t
step
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
1
:
-
1
;
double
*
output
=
(
double
*
)
out
;
if
(
!
IS_TIMESTAMP_TYPE
(
_left_type
)
&&
!
IS_TIMESTAMP_TYPE
(
_right_type
))
{
double
*
output
=
(
double
*
)
out
;
_arithmetic_getVectorValueAddr_fn_t
getVectorValueAddrFnLeft
=
getVectorValueAddrFn
(
_left_type
);
_arithmetic_getVectorValueAddr_fn_t
getVectorValueAddrFnLeft
=
getVectorValueAddrFn
(
_left_type
);
_arithmetic_getVectorValueAddr_fn_t
getVectorValueAddrFnRight
=
getVectorValueAddrFn
(
_right_type
);
_arithmetic_getVectorValueAddr_fn_t
getVectorValueAddrFnRight
=
getVectorValueAddrFn
(
_right_type
);
_arithmetic_getVectorDoubleValue_fn_t
getVectorDoubleValueFnLeft
=
getVectorDoubleValueFn
(
_left_type
);
_arithmetic_getVectorDoubleValue_fn_t
getVectorDoubleValueFnLeft
=
getVectorDoubleValueFn
(
_left_type
);
...
@@ -216,11 +223,44 @@ void vectorAdd(void *left, int32_t len1, int32_t _left_type, void *right, int32_
...
@@ -216,11 +223,44 @@ void vectorAdd(void *left, int32_t len1, int32_t _left_type, void *right, int32_
SET_DOUBLE_VAL
(
output
,
getVectorDoubleValueFnLeft
(
left
,
i
)
+
getVectorDoubleValueFnRight
(
right
,
0
));
SET_DOUBLE_VAL
(
output
,
getVectorDoubleValueFnLeft
(
left
,
i
)
+
getVectorDoubleValueFnRight
(
right
,
0
));
}
}
}
}
}
else
{
int64_t
*
output
=
(
int64_t
*
)
out
;
_arithmetic_getVectorValueAddr_fn_t
getVectorValueAddrFnLeft
=
getVectorValueAddrFn
(
_left_type
);
_arithmetic_getVectorValueAddr_fn_t
getVectorValueAddrFnRight
=
getVectorValueAddrFn
(
_right_type
);
if
((
len1
)
==
(
len2
))
{
for
(;
i
<
(
len2
)
&&
i
>=
0
;
i
+=
step
,
output
+=
1
)
{
if
(
isNull
(
getVectorValueAddrFnLeft
(
left
,
i
),
_left_type
)
||
isNull
(
getVectorValueAddrFnRight
(
right
,
i
),
_right_type
))
{
SET_TIMESTAMP_NULL
(
output
);
continue
;
}
SET_TIMESTAMP_VAL
(
output
,
getVectorTimestampValue
(
left
,
i
)
+
getVectorTimestampValue
(
right
,
i
));
}
}
else
if
((
len1
)
==
1
)
{
for
(;
i
>=
0
&&
i
<
(
len2
);
i
+=
step
,
output
+=
1
)
{
if
(
isNull
(
getVectorValueAddrFnLeft
(
left
,
0
),
_left_type
)
||
isNull
(
getVectorValueAddrFnRight
(
right
,
i
),
_right_type
))
{
SET_TIMESTAMP_NULL
(
output
);
continue
;
}
SET_TIMESTAMP_VAL
(
output
,
getVectorTimestampValue
(
left
,
0
)
+
getVectorTimestampValue
(
right
,
i
));
}
}
else
if
((
len2
)
==
1
)
{
for
(;
i
>=
0
&&
i
<
(
len1
);
i
+=
step
,
output
+=
1
)
{
if
(
isNull
(
getVectorValueAddrFnLeft
(
left
,
i
),
_left_type
)
||
isNull
(
getVectorValueAddrFnRight
(
right
,
0
),
_right_type
))
{
SET_TIMESTAMP_NULL
(
output
);
continue
;
}
SET_TIMESTAMP_VAL
(
output
,
getVectorTimestampValue
(
left
,
i
)
+
getVectorTimestampValue
(
right
,
0
));
}
}
}
}
}
void
vectorSub
(
void
*
left
,
int32_t
len1
,
int32_t
_left_type
,
void
*
right
,
int32_t
len2
,
int32_t
_right_type
,
void
*
out
,
int32_t
_ord
)
{
void
vectorSub
(
void
*
left
,
int32_t
len1
,
int32_t
_left_type
,
void
*
right
,
int32_t
len2
,
int32_t
_right_type
,
void
*
out
,
int32_t
_ord
)
{
int32_t
i
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
0
:
MAX
(
len1
,
len2
)
-
1
;
int32_t
i
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
0
:
MAX
(
len1
,
len2
)
-
1
;
int32_t
step
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
1
:
-
1
;
int32_t
step
=
((
_ord
)
==
TSDB_ORDER_ASC
)
?
1
:
-
1
;
if
(
!
IS_TIMESTAMP_TYPE
(
_left_type
)
&&
!
IS_TIMESTAMP_TYPE
(
_right_type
))
{
double
*
output
=
(
double
*
)
out
;
double
*
output
=
(
double
*
)
out
;
_arithmetic_getVectorValueAddr_fn_t
getVectorValueAddrFnLeft
=
getVectorValueAddrFn
(
_left_type
);
_arithmetic_getVectorValueAddr_fn_t
getVectorValueAddrFnLeft
=
getVectorValueAddrFn
(
_left_type
);
_arithmetic_getVectorValueAddr_fn_t
getVectorValueAddrFnRight
=
getVectorValueAddrFn
(
_right_type
);
_arithmetic_getVectorValueAddr_fn_t
getVectorValueAddrFnRight
=
getVectorValueAddrFn
(
_right_type
);
...
@@ -252,6 +292,37 @@ void vectorSub(void *left, int32_t len1, int32_t _left_type, void *right, int32_
...
@@ -252,6 +292,37 @@ void vectorSub(void *left, int32_t len1, int32_t _left_type, void *right, int32_
SET_DOUBLE_VAL
(
output
,
getVectorDoubleValueFnLeft
(
left
,
i
)
-
getVectorDoubleValueFnRight
(
right
,
0
));
SET_DOUBLE_VAL
(
output
,
getVectorDoubleValueFnLeft
(
left
,
i
)
-
getVectorDoubleValueFnRight
(
right
,
0
));
}
}
}
}
}
else
{
int64_t
*
output
=
(
int64_t
*
)
out
;
_arithmetic_getVectorValueAddr_fn_t
getVectorValueAddrFnLeft
=
getVectorValueAddrFn
(
_left_type
);
_arithmetic_getVectorValueAddr_fn_t
getVectorValueAddrFnRight
=
getVectorValueAddrFn
(
_right_type
);
if
((
len1
)
==
(
len2
))
{
for
(;
i
<
(
len2
)
&&
i
>=
0
;
i
+=
step
,
output
+=
1
)
{
if
(
isNull
(
getVectorValueAddrFnLeft
(
left
,
i
),
_left_type
)
||
isNull
(
getVectorValueAddrFnRight
(
right
,
i
),
_right_type
))
{
SET_TIMESTAMP_NULL
(
output
);
continue
;
}
SET_TIMESTAMP_VAL
(
output
,
getVectorTimestampValue
(
left
,
i
)
-
getVectorTimestampValue
(
right
,
i
));
}
}
else
if
((
len1
)
==
1
)
{
for
(;
i
>=
0
&&
i
<
(
len2
);
i
+=
step
,
output
+=
1
)
{
if
(
isNull
(
getVectorValueAddrFnLeft
(
left
,
0
),
_left_type
)
||
isNull
(
getVectorValueAddrFnRight
(
right
,
i
),
_right_type
))
{
SET_TIMESTAMP_NULL
(
output
);
continue
;
}
SET_TIMESTAMP_VAL
(
output
,
getVectorTimestampValue
(
left
,
0
)
-
getVectorTimestampValue
(
right
,
i
));
}
}
else
if
((
len2
)
==
1
)
{
for
(;
i
>=
0
&&
i
<
(
len1
);
i
+=
step
,
output
+=
1
)
{
if
(
isNull
(
getVectorValueAddrFnLeft
(
left
,
i
),
_left_type
)
||
isNull
(
getVectorValueAddrFnRight
(
right
,
0
),
_right_type
))
{
SET_TIMESTAMP_NULL
(
output
);
continue
;
}
SET_TIMESTAMP_VAL
(
output
,
getVectorTimestampValue
(
left
,
i
)
-
getVectorTimestampValue
(
right
,
0
));
}
}
}
}
}
void
vectorMultiply
(
void
*
left
,
int32_t
len1
,
int32_t
_left_type
,
void
*
right
,
int32_t
len2
,
int32_t
_right_type
,
void
*
out
,
int32_t
_ord
)
{
void
vectorMultiply
(
void
*
left
,
int32_t
len1
,
int32_t
_left_type
,
void
*
right
,
int32_t
len2
,
int32_t
_right_type
,
void
*
out
,
int32_t
_ord
)
{
...
...
src/common/src/texpr.c
浏览文件 @
e6058244
...
@@ -23,6 +23,7 @@
...
@@ -23,6 +23,7 @@
#include "tarray.h"
#include "tarray.h"
#include "tbuffer.h"
#include "tbuffer.h"
#include "tcompare.h"
#include "tcompare.h"
#include "tglobal.h"
#include "tsdb.h"
#include "tsdb.h"
#include "tskiplist.h"
#include "tskiplist.h"
#include "texpr.h"
#include "texpr.h"
...
@@ -36,6 +37,7 @@ static int32_t exprValidateStringLengthNode(tExprNode *pExpr);
...
@@ -36,6 +37,7 @@ static int32_t exprValidateStringLengthNode(tExprNode *pExpr);
static
int32_t
exprValidateStringLowerUpperTrimNode
(
char
*
msgBuf
,
tExprNode
*
pExpr
);
static
int32_t
exprValidateStringLowerUpperTrimNode
(
char
*
msgBuf
,
tExprNode
*
pExpr
);
static
int32_t
exprValidateStringSubstrNode
(
char
*
msgBuf
,
tExprNode
*
pExpr
);
static
int32_t
exprValidateStringSubstrNode
(
char
*
msgBuf
,
tExprNode
*
pExpr
);
static
int32_t
exprValidateCastNode
(
char
*
msgbuf
,
tExprNode
*
pExpr
);
static
int32_t
exprValidateCastNode
(
char
*
msgbuf
,
tExprNode
*
pExpr
);
static
int32_t
exprValidateTimeNode
(
char
*
msgbuf
,
tExprNode
*
pExpr
);
static
int32_t
exprInvalidOperationMsg
(
char
*
msgbuf
,
const
char
*
msg
)
{
static
int32_t
exprInvalidOperationMsg
(
char
*
msgbuf
,
const
char
*
msg
)
{
const
char
*
msgFormat
=
"invalid operation: %s"
;
const
char
*
msgFormat
=
"invalid operation: %s"
;
...
@@ -49,7 +51,7 @@ static int32_t exprInvalidOperationMsg(char *msgbuf, const char *msg) {
...
@@ -49,7 +51,7 @@ static int32_t exprInvalidOperationMsg(char *msgbuf, const char *msg) {
int32_t
exprTreeValidateFunctionNode
(
char
*
msgbuf
,
tExprNode
*
pExpr
)
{
int32_t
exprTreeValidateFunctionNode
(
char
*
msgbuf
,
tExprNode
*
pExpr
)
{
int32_t
code
=
TSDB_CODE_SUCCESS
;
int32_t
code
=
TSDB_CODE_SUCCESS
;
//TODO: check child
s
for every function
//TODO: check child
ren
for every function
switch
(
pExpr
->
_func
.
functionId
)
{
switch
(
pExpr
->
_func
.
functionId
)
{
case
TSDB_FUNC_SCALAR_POW
:
case
TSDB_FUNC_SCALAR_POW
:
case
TSDB_FUNC_SCALAR_LOG
:
case
TSDB_FUNC_SCALAR_LOG
:
...
@@ -88,6 +90,15 @@ int32_t exprTreeValidateFunctionNode(char* msgbuf, tExprNode *pExpr) {
...
@@ -88,6 +90,15 @@ int32_t exprTreeValidateFunctionNode(char* msgbuf, tExprNode *pExpr) {
case
TSDB_FUNC_SCALAR_SUBSTR
:
{
case
TSDB_FUNC_SCALAR_SUBSTR
:
{
return
exprValidateStringSubstrNode
(
msgbuf
,
pExpr
);
return
exprValidateStringSubstrNode
(
msgbuf
,
pExpr
);
}
}
case
TSDB_FUNC_SCALAR_NOW
:
case
TSDB_FUNC_SCALAR_TODAY
:
case
TSDB_FUNC_SCALAR_TIMEZONE
:
case
TSDB_FUNC_SCALAR_TO_ISO8601
:
case
TSDB_FUNC_SCALAR_TO_UNIXTIMESTAMP
:
case
TSDB_FUNC_SCALAR_TIMETRUNCATE
:
case
TSDB_FUNC_SCALAR_TIMEDIFF
:
{
return
exprValidateTimeNode
(
msgbuf
,
pExpr
);
}
default:
default:
break
;
break
;
...
@@ -101,11 +112,26 @@ int32_t exprTreeValidateExprNode(tExprNode *pExpr) {
...
@@ -101,11 +112,26 @@ int32_t exprTreeValidateExprNode(tExprNode *pExpr) {
pExpr
->
_node
.
optr
==
TSDB_BINARY_OP_REMAINDER
)
{
pExpr
->
_node
.
optr
==
TSDB_BINARY_OP_REMAINDER
)
{
int16_t
leftType
=
pExpr
->
_node
.
pLeft
->
resultType
;
int16_t
leftType
=
pExpr
->
_node
.
pLeft
->
resultType
;
int16_t
rightType
=
pExpr
->
_node
.
pRight
->
resultType
;
int16_t
rightType
=
pExpr
->
_node
.
pRight
->
resultType
;
if
(
!
IS_NUMERIC_TYPE
(
leftType
)
||
!
IS_NUMERIC_TYPE
(
rightType
))
{
if
((
!
IS_NUMERIC_TYPE
(
leftType
)
&&
!
IS_TIMESTAMP_TYPE
(
leftType
))
||
(
!
IS_NUMERIC_TYPE
(
rightType
)
&&
!
IS_TIMESTAMP_TYPE
(
rightType
)))
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
if
(
IS_TIMESTAMP_TYPE
(
leftType
)
||
IS_TIMESTAMP_TYPE
(
rightType
))
{
if
(
pExpr
->
_node
.
pLeft
->
nodeType
==
TSQL_NODE_COL
&&
pExpr
->
_node
.
pRight
->
nodeType
==
TSQL_NODE_COL
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
}
//timestamp cannot be used in arithmetic
//operation with other data types
if
(
!
IS_TIMESTAMP_TYPE
(
leftType
)
||
!
IS_TIMESTAMP_TYPE
(
rightType
)
||
(
pExpr
->
_node
.
optr
!=
TSDB_BINARY_OP_ADD
&&
pExpr
->
_node
.
optr
!=
TSDB_BINARY_OP_SUBTRACT
))
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
pExpr
->
resultType
=
TSDB_DATA_TYPE_TIMESTAMP
;
pExpr
->
resultBytes
=
tDataTypes
[
TSDB_DATA_TYPE_TIMESTAMP
].
bytes
;
}
else
{
pExpr
->
resultType
=
TSDB_DATA_TYPE_DOUBLE
;
pExpr
->
resultType
=
TSDB_DATA_TYPE_DOUBLE
;
pExpr
->
resultBytes
=
tDataTypes
[
TSDB_DATA_TYPE_DOUBLE
].
bytes
;
pExpr
->
resultBytes
=
tDataTypes
[
TSDB_DATA_TYPE_DOUBLE
].
bytes
;
}
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
else
{
}
else
{
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
...
@@ -119,6 +145,11 @@ int32_t exprTreeValidateTree(char* msgbuf, tExprNode *pExpr) {
...
@@ -119,6 +145,11 @@ int32_t exprTreeValidateTree(char* msgbuf, tExprNode *pExpr) {
}
}
if
(
pExpr
->
nodeType
==
TSQL_NODE_VALUE
)
{
if
(
pExpr
->
nodeType
==
TSQL_NODE_VALUE
)
{
pExpr
->
resultType
=
pExpr
->
pVal
->
nType
;
pExpr
->
resultType
=
pExpr
->
pVal
->
nType
;
if
(
pExpr
->
pVal
->
nType
==
TSDB_DATA_TYPE_TIMESTAMP
)
{
//convert timestamp value according to db precision
pExpr
->
pVal
->
i64
=
convertTimePrecision
(
pExpr
->
pVal
->
i64
,
TSDB_TIME_PRECISION_NANO
,
pExpr
->
precision
);
}
if
(
!
IS_VAR_DATA_TYPE
(
pExpr
->
pVal
->
nType
))
{
if
(
!
IS_VAR_DATA_TYPE
(
pExpr
->
pVal
->
nType
))
{
pExpr
->
resultBytes
=
tDataTypes
[
pExpr
->
pVal
->
nType
].
bytes
;
pExpr
->
resultBytes
=
tDataTypes
[
pExpr
->
pVal
->
nType
].
bytes
;
}
else
{
}
else
{
...
@@ -501,7 +532,11 @@ void exprTreeExprNodeTraverse(tExprNode *pExpr, int32_t numOfRows, tExprOperandI
...
@@ -501,7 +532,11 @@ void exprTreeExprNodeTraverse(tExprNode *pExpr, int32_t numOfRows, tExprOperandI
OperatorFn
(
leftIn
,
leftNum
,
leftType
,
rightIn
,
rightNum
,
rightType
,
output
->
data
,
fnOrder
);
OperatorFn
(
leftIn
,
leftNum
,
leftType
,
rightIn
,
rightNum
,
rightType
,
output
->
data
,
fnOrder
);
output
->
numOfRows
=
MAX
(
leftNum
,
rightNum
);
output
->
numOfRows
=
MAX
(
leftNum
,
rightNum
);
if
(
leftType
==
TSDB_DATA_TYPE_TIMESTAMP
||
rightType
==
TSDB_DATA_TYPE_TIMESTAMP
)
{
output
->
type
=
TSDB_DATA_TYPE_BIGINT
;
}
else
{
output
->
type
=
TSDB_DATA_TYPE_DOUBLE
;
output
->
type
=
TSDB_DATA_TYPE_DOUBLE
;
}
output
->
bytes
=
tDataTypes
[
output
->
type
].
bytes
;
output
->
bytes
=
tDataTypes
[
output
->
type
].
bytes
;
tfree
(
ltmp
);
tfree
(
ltmp
);
...
@@ -1220,6 +1255,348 @@ int32_t exprValidateMathNode(tExprNode *pExpr) {
...
@@ -1220,6 +1255,348 @@ int32_t exprValidateMathNode(tExprNode *pExpr) {
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
}
int32_t
exprValidateTimeNode
(
char
*
msgbuf
,
tExprNode
*
pExpr
)
{
const
char
*
msg1
=
"invalid timestamp digits"
;
const
char
*
msg2
=
"param must be positive integer"
;
switch
(
pExpr
->
_func
.
functionId
)
{
case
TSDB_FUNC_SCALAR_NOW
:
case
TSDB_FUNC_SCALAR_TODAY
:
{
if
(
pExpr
->
_func
.
numChildren
!=
0
||
pExpr
->
_func
.
pChildren
!=
NULL
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
pExpr
->
_func
.
numChildren
=
1
;
pExpr
->
_func
.
pChildren
=
(
tExprNode
**
)
tcalloc
(
1
,
sizeof
(
tExprNode
*
));
if
(
!
pExpr
->
_func
.
pChildren
)
{
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
pExpr
->
_func
.
pChildren
[
0
]
=
(
tExprNode
*
)
tcalloc
(
1
,
sizeof
(
tExprNode
));
tExprNode
*
child
=
pExpr
->
_func
.
pChildren
[
0
];
if
(
!
child
)
{
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
child
->
nodeType
=
TSQL_NODE_VALUE
;
child
->
resultType
=
TSDB_DATA_TYPE_TIMESTAMP
;
child
->
resultBytes
=
(
int16_t
)
tDataTypes
[
child
->
resultType
].
bytes
;
child
->
pVal
=
(
tVariant
*
)
tcalloc
(
1
,
sizeof
(
tVariant
));
if
(
!
child
->
pVal
)
{
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
child
->
pVal
->
nType
=
TSDB_DATA_TYPE_TIMESTAMP
;
int64_t
timeVal
;
if
(
pExpr
->
_func
.
functionId
==
TSDB_FUNC_SCALAR_NOW
)
{
switch
(
pExpr
->
precision
)
{
case
TSDB_TIME_PRECISION_MILLI
:
{
timeVal
=
taosGetTimestampMs
();
break
;
}
case
TSDB_TIME_PRECISION_MICRO
:
{
timeVal
=
taosGetTimestampUs
();
break
;
}
case
TSDB_TIME_PRECISION_NANO
:
{
timeVal
=
taosGetTimestampNs
();
break
;
}
default:
{
assert
(
false
);
break
;
}
}
child
->
pVal
->
i64
=
timeVal
;
}
else
{
timeVal
=
taosGetTimestampToday
()
*
1000
;
child
->
pVal
->
i64
=
convertTimePrecision
(
timeVal
,
TSDB_TIME_PRECISION_MILLI
,
pExpr
->
precision
);
}
pExpr
->
resultType
=
TSDB_DATA_TYPE_TIMESTAMP
;
pExpr
->
resultBytes
=
(
int16_t
)
tDataTypes
[
pExpr
->
resultType
].
bytes
;
break
;
}
case
TSDB_FUNC_SCALAR_TIMEZONE
:
{
if
(
pExpr
->
_func
.
numChildren
!=
0
||
pExpr
->
_func
.
pChildren
!=
NULL
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
pExpr
->
_func
.
numChildren
=
1
;
pExpr
->
_func
.
pChildren
=
(
tExprNode
**
)
tcalloc
(
1
,
sizeof
(
tExprNode
*
));
if
(
!
pExpr
->
_func
.
pChildren
)
{
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
pExpr
->
_func
.
pChildren
[
0
]
=
(
tExprNode
*
)
tcalloc
(
1
,
sizeof
(
tExprNode
));
tExprNode
*
child
=
pExpr
->
_func
.
pChildren
[
0
];
if
(
!
child
)
{
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
child
->
nodeType
=
TSQL_NODE_VALUE
;
child
->
resultType
=
TSDB_DATA_TYPE_BINARY
;
child
->
resultBytes
=
TSDB_TIMEZONE_LEN
;
child
->
pVal
=
(
tVariant
*
)
tcalloc
(
1
,
sizeof
(
tVariant
));
if
(
!
child
->
pVal
)
{
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
child
->
pVal
->
nType
=
TSDB_DATA_TYPE_BINARY
;
child
->
pVal
->
nLen
=
TSDB_TIMEZONE_LEN
;
child
->
pVal
->
pz
=
tcalloc
(
TSDB_TIMEZONE_LEN
,
sizeof
(
char
));
if
(
!
child
->
pVal
->
pz
)
{
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
memcpy
(
child
->
pVal
->
pz
,
tsTimezone
,
TSDB_TIMEZONE_LEN
);
pExpr
->
resultType
=
TSDB_DATA_TYPE_BINARY
;
pExpr
->
resultBytes
=
TSDB_TIMEZONE_LEN
;
break
;
}
case
TSDB_FUNC_SCALAR_TO_ISO8601
:
{
if
(
pExpr
->
_func
.
numChildren
!=
1
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
tExprNode
*
child
=
pExpr
->
_func
.
pChildren
[
0
];
if
(
child
->
resultType
!=
TSDB_DATA_TYPE_BIGINT
&&
child
->
resultType
!=
TSDB_DATA_TYPE_TIMESTAMP
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
if
(
child
->
nodeType
==
TSQL_NODE_VALUE
)
{
if
(
child
->
pVal
->
i64
<
0
)
{
return
exprInvalidOperationMsg
(
msgbuf
,
msg2
);
}
char
fraction
[
32
]
=
{
0
};
NUM_TO_STRING
(
child
->
resultType
,
&
child
->
pVal
->
i64
,
sizeof
(
fraction
),
fraction
);
int32_t
tsDigits
=
strlen
(
fraction
);
if
(
tsDigits
>
TSDB_TIME_PRECISION_SEC_DIGITS
&&
tsDigits
!=
TSDB_TIME_PRECISION_MILLI_DIGITS
&&
tsDigits
!=
TSDB_TIME_PRECISION_MICRO_DIGITS
&&
tsDigits
!=
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
return
exprInvalidOperationMsg
(
msgbuf
,
msg1
);
}
}
else
if
(
child
->
nodeType
==
TSQL_NODE_COL
)
{
if
(
child
->
pSchema
->
type
!=
TSDB_DATA_TYPE_TIMESTAMP
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
}
pExpr
->
resultType
=
TSDB_DATA_TYPE_BINARY
;
pExpr
->
resultBytes
=
64
;
//2013-04-12T15:52:01.123000000+0800
break
;
}
case
TSDB_FUNC_SCALAR_TO_UNIXTIMESTAMP
:
{
if
(
pExpr
->
_func
.
numChildren
!=
1
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
tExprNode
*
child0
=
pExpr
->
_func
.
pChildren
[
0
];
if
(
child0
->
resultType
!=
TSDB_DATA_TYPE_BINARY
&&
child0
->
resultType
!=
TSDB_DATA_TYPE_NCHAR
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
pExpr
->
_func
.
numChildren
=
2
;
tExprNode
**
pChildren
=
(
tExprNode
**
)
trealloc
(
pExpr
->
_func
.
pChildren
,
pExpr
->
_func
.
numChildren
*
sizeof
(
tExprNode
*
));
if
(
!
pChildren
)
{
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
pExpr
->
_func
.
pChildren
=
pChildren
;
pExpr
->
_func
.
pChildren
[
0
]
=
child0
;
pExpr
->
_func
.
pChildren
[
1
]
=
(
tExprNode
*
)
tcalloc
(
1
,
sizeof
(
tExprNode
));
tExprNode
*
child1
=
pExpr
->
_func
.
pChildren
[
1
];
if
(
!
child1
)
{
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
child1
->
nodeType
=
TSQL_NODE_VALUE
;
child1
->
resultType
=
TSDB_DATA_TYPE_BIGINT
;
child1
->
resultBytes
=
tDataTypes
[
TSDB_DATA_TYPE_BIGINT
].
bytes
;
child1
->
pVal
=
(
tVariant
*
)
tcalloc
(
1
,
sizeof
(
tVariant
));
if
(
!
child1
->
pVal
)
{
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
child1
->
pVal
->
nType
=
TSDB_DATA_TYPE_BIGINT
;
child1
->
pVal
->
nLen
=
tDataTypes
[
TSDB_DATA_TYPE_BIGINT
].
bytes
;
child1
->
pVal
->
i64
=
(
int64_t
)
pExpr
->
precision
;
pExpr
->
resultType
=
TSDB_DATA_TYPE_BIGINT
;
pExpr
->
resultBytes
=
(
int16_t
)
tDataTypes
[
TSDB_DATA_TYPE_BIGINT
].
bytes
;
break
;
}
case
TSDB_FUNC_SCALAR_TIMETRUNCATE
:
{
if
(
pExpr
->
_func
.
numChildren
!=
2
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
tExprNode
*
child0
=
pExpr
->
_func
.
pChildren
[
0
];
tExprNode
*
child1
=
pExpr
->
_func
.
pChildren
[
1
];
if
(
child0
->
resultType
!=
TSDB_DATA_TYPE_BIGINT
&&
child0
->
resultType
!=
TSDB_DATA_TYPE_TIMESTAMP
&&
child0
->
resultType
!=
TSDB_DATA_TYPE_BINARY
&&
child0
->
resultType
!=
TSDB_DATA_TYPE_NCHAR
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
if
(
child0
->
nodeType
==
TSQL_NODE_VALUE
)
{
/* datetime format or epoch */
if
(
child0
->
pVal
->
nType
!=
TSDB_DATA_TYPE_BIGINT
&&
child0
->
pVal
->
nType
!=
TSDB_DATA_TYPE_BINARY
&&
child0
->
pVal
->
nType
!=
TSDB_DATA_TYPE_NCHAR
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
if
(
child0
->
pVal
->
nType
==
TSDB_DATA_TYPE_BIGINT
)
{
char
fraction
[
32
]
=
{
0
};
NUM_TO_STRING
(
child0
->
resultType
,
&
child0
->
pVal
->
i64
,
sizeof
(
fraction
),
fraction
);
int32_t
tsDigits
=
strlen
(
fraction
);
if
(
tsDigits
>
TSDB_TIME_PRECISION_SEC_DIGITS
&&
tsDigits
!=
TSDB_TIME_PRECISION_MILLI_DIGITS
&&
tsDigits
!=
TSDB_TIME_PRECISION_MICRO_DIGITS
&&
tsDigits
!=
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
return
exprInvalidOperationMsg
(
msgbuf
,
msg1
);
}
}
}
else
if
(
child0
->
nodeType
==
TSQL_NODE_COL
)
{
/* ts column */
if
(
child0
->
pSchema
->
type
!=
TSDB_DATA_TYPE_TIMESTAMP
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
}
else
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
//time unit
if
(
child1
->
nodeType
!=
TSQL_NODE_VALUE
||
child1
->
resultType
!=
TSDB_DATA_TYPE_TIMESTAMP
||
child1
->
pVal
->
nType
!=
TSDB_DATA_TYPE_TIMESTAMP
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
//db precision
pExpr
->
_func
.
numChildren
=
3
;
tExprNode
**
pChildren
=
(
tExprNode
**
)
trealloc
(
pExpr
->
_func
.
pChildren
,
pExpr
->
_func
.
numChildren
*
sizeof
(
tExprNode
*
));
if
(
!
pChildren
)
{
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
pExpr
->
_func
.
pChildren
=
pChildren
;
pExpr
->
_func
.
pChildren
[
0
]
=
child0
;
pExpr
->
_func
.
pChildren
[
1
]
=
child1
;
pExpr
->
_func
.
pChildren
[
2
]
=
(
tExprNode
*
)
tcalloc
(
1
,
sizeof
(
tExprNode
));
tExprNode
*
child2
=
pExpr
->
_func
.
pChildren
[
2
];
if
(
!
child2
)
{
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
child2
->
nodeType
=
TSQL_NODE_VALUE
;
child2
->
resultType
=
TSDB_DATA_TYPE_BIGINT
;
child2
->
resultBytes
=
tDataTypes
[
TSDB_DATA_TYPE_BIGINT
].
bytes
;
child2
->
pVal
=
(
tVariant
*
)
tcalloc
(
1
,
sizeof
(
tVariant
));
if
(
!
child2
->
pVal
)
{
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
child2
->
pVal
->
nType
=
TSDB_DATA_TYPE_BIGINT
;
child2
->
pVal
->
nLen
=
tDataTypes
[
TSDB_DATA_TYPE_BIGINT
].
bytes
;
child2
->
pVal
->
i64
=
(
int64_t
)
pExpr
->
precision
;
pExpr
->
resultType
=
TSDB_DATA_TYPE_TIMESTAMP
;
pExpr
->
resultBytes
=
(
int16_t
)
tDataTypes
[
TSDB_DATA_TYPE_TIMESTAMP
].
bytes
;
break
;
}
case
TSDB_FUNC_SCALAR_TIMEDIFF
:
{
if
(
pExpr
->
_func
.
numChildren
!=
2
&&
pExpr
->
_func
.
numChildren
!=
3
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
tExprNode
**
child
=
(
tExprNode
**
)
tcalloc
(
pExpr
->
_func
.
numChildren
,
sizeof
(
tExprNode
*
));
for
(
int32_t
i
=
0
;
i
<
pExpr
->
_func
.
numChildren
;
++
i
)
{
child
[
i
]
=
pExpr
->
_func
.
pChildren
[
i
];
}
//operands
for
(
int32_t
i
=
0
;
i
<
2
;
++
i
)
{
if
(
child
[
i
]
->
resultType
!=
TSDB_DATA_TYPE_BIGINT
&&
child
[
i
]
->
resultType
!=
TSDB_DATA_TYPE_TIMESTAMP
&&
child
[
i
]
->
resultType
!=
TSDB_DATA_TYPE_BINARY
&&
child
[
i
]
->
resultType
!=
TSDB_DATA_TYPE_NCHAR
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
if
(
child
[
i
]
->
nodeType
==
TSQL_NODE_VALUE
)
{
/* datetime format or epoch */
if
(
child
[
i
]
->
pVal
->
nType
!=
TSDB_DATA_TYPE_BIGINT
&&
child
[
i
]
->
pVal
->
nType
!=
TSDB_DATA_TYPE_BINARY
&&
child
[
i
]
->
pVal
->
nType
!=
TSDB_DATA_TYPE_NCHAR
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
if
(
child
[
i
]
->
pVal
->
nType
==
TSDB_DATA_TYPE_BIGINT
)
{
char
fraction
[
32
]
=
{
0
};
NUM_TO_STRING
(
child
[
i
]
->
resultType
,
&
child
[
i
]
->
pVal
->
i64
,
sizeof
(
fraction
),
fraction
);
int32_t
tsDigits
=
strlen
(
fraction
);
if
(
tsDigits
>
TSDB_TIME_PRECISION_SEC_DIGITS
&&
tsDigits
!=
TSDB_TIME_PRECISION_MILLI_DIGITS
&&
tsDigits
!=
TSDB_TIME_PRECISION_MICRO_DIGITS
&&
tsDigits
!=
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
return
exprInvalidOperationMsg
(
msgbuf
,
msg1
);
}
}
}
else
if
(
child
[
i
]
->
nodeType
==
TSQL_NODE_COL
)
{
/* ts column */
if
(
child
[
i
]
->
pSchema
->
type
!=
TSDB_DATA_TYPE_TIMESTAMP
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
}
else
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
}
//time unit
if
(
pExpr
->
_func
.
numChildren
==
3
)
{
if
(
child
[
2
]
->
nodeType
!=
TSQL_NODE_VALUE
||
child
[
2
]
->
pVal
->
nType
!=
TSDB_DATA_TYPE_TIMESTAMP
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
}
//db precision
pExpr
->
_func
.
numChildren
++
;
tExprNode
**
pChildren
=
(
tExprNode
**
)
trealloc
(
pExpr
->
_func
.
pChildren
,
pExpr
->
_func
.
numChildren
*
sizeof
(
tExprNode
*
));
if
(
!
pChildren
)
{
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
pExpr
->
_func
.
pChildren
=
pChildren
;
for
(
int32_t
i
=
0
;
i
<
pExpr
->
_func
.
numChildren
-
1
;
++
i
)
{
pExpr
->
_func
.
pChildren
[
i
]
=
child
[
i
];
}
tExprNode
*
childPrec
;
if
(
pExpr
->
_func
.
numChildren
==
3
)
{
pExpr
->
_func
.
pChildren
[
2
]
=
(
tExprNode
*
)
tcalloc
(
1
,
sizeof
(
tExprNode
));
childPrec
=
pExpr
->
_func
.
pChildren
[
2
];
}
else
{
pExpr
->
_func
.
pChildren
[
3
]
=
(
tExprNode
*
)
tcalloc
(
1
,
sizeof
(
tExprNode
));
childPrec
=
pExpr
->
_func
.
pChildren
[
3
];
}
if
(
!
childPrec
)
{
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
childPrec
->
nodeType
=
TSQL_NODE_VALUE
;
childPrec
->
resultType
=
TSDB_DATA_TYPE_BIGINT
;
childPrec
->
resultBytes
=
tDataTypes
[
TSDB_DATA_TYPE_BIGINT
].
bytes
;
childPrec
->
pVal
=
(
tVariant
*
)
tcalloc
(
1
,
sizeof
(
tVariant
));
if
(
!
childPrec
->
pVal
)
{
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
childPrec
->
pVal
->
nType
=
TSDB_DATA_TYPE_BIGINT
;
childPrec
->
pVal
->
nLen
=
tDataTypes
[
TSDB_DATA_TYPE_BIGINT
].
bytes
;
childPrec
->
pVal
->
i64
=
(
int64_t
)
pExpr
->
precision
;
free
(
child
);
pExpr
->
resultType
=
TSDB_DATA_TYPE_BIGINT
;
pExpr
->
resultBytes
=
(
int16_t
)
tDataTypes
[
TSDB_DATA_TYPE_BIGINT
].
bytes
;
break
;
}
default:
{
assert
(
false
);
break
;
}
}
return
TSDB_CODE_SUCCESS
;
}
void
vectorConcat
(
int16_t
functionId
,
tExprOperandInfo
*
pInputs
,
int32_t
numInputs
,
tExprOperandInfo
*
pOutput
,
int32_t
order
)
{
void
vectorConcat
(
int16_t
functionId
,
tExprOperandInfo
*
pInputs
,
int32_t
numInputs
,
tExprOperandInfo
*
pOutput
,
int32_t
order
)
{
assert
(
functionId
==
TSDB_FUNC_SCALAR_CONCAT
&&
numInputs
>=
2
&&
order
==
TSDB_ORDER_ASC
);
assert
(
functionId
==
TSDB_FUNC_SCALAR_CONCAT
&&
numInputs
>=
2
&&
order
==
TSDB_ORDER_ASC
);
for
(
int
i
=
0
;
i
<
numInputs
;
++
i
)
{
for
(
int
i
=
0
;
i
<
numInputs
;
++
i
)
{
...
@@ -1851,6 +2228,421 @@ void vectorMathFunc(int16_t functionId, tExprOperandInfo *pInputs, int32_t numIn
...
@@ -1851,6 +2228,421 @@ void vectorMathFunc(int16_t functionId, tExprOperandInfo *pInputs, int32_t numIn
free
(
inputData
);
free
(
inputData
);
}
}
void
vectorTimeFunc
(
int16_t
functionId
,
tExprOperandInfo
*
pInputs
,
int32_t
numInputs
,
tExprOperandInfo
*
pOutput
,
int32_t
order
)
{
for
(
int
i
=
0
;
i
<
numInputs
;
++
i
)
{
assert
(
pInputs
[
i
].
numOfRows
==
1
||
pInputs
[
i
].
numOfRows
==
pOutput
->
numOfRows
);
}
char
*
outputData
=
NULL
;
char
**
inputData
=
calloc
(
numInputs
,
sizeof
(
char
*
));
for
(
int
i
=
0
;
i
<
pOutput
->
numOfRows
;
++
i
)
{
for
(
int
j
=
0
;
j
<
numInputs
;
++
j
)
{
if
(
pInputs
[
j
].
numOfRows
==
1
)
{
inputData
[
j
]
=
pInputs
[
j
].
data
;
}
else
{
inputData
[
j
]
=
pInputs
[
j
].
data
+
i
*
pInputs
[
j
].
bytes
;
}
}
outputData
=
pOutput
->
data
+
i
*
pOutput
->
bytes
;
bool
hasNullInputs
=
false
;
for
(
int
j
=
0
;
j
<
numInputs
;
++
j
)
{
if
(
isNull
(
inputData
[
j
],
pInputs
[
j
].
type
))
{
hasNullInputs
=
true
;
setNull
(
outputData
,
pOutput
->
type
,
pOutput
->
bytes
);
}
}
if
(
!
hasNullInputs
)
{
switch
(
functionId
)
{
case
TSDB_FUNC_SCALAR_NOW
:
case
TSDB_FUNC_SCALAR_TODAY
:
{
assert
(
numInputs
==
1
);
int64_t
result
;
GET_TYPED_DATA
(
result
,
int64_t
,
pInputs
[
0
].
type
,
inputData
[
0
]);
SET_TYPED_DATA
(
outputData
,
pOutput
->
type
,
result
);
break
;
}
case
TSDB_FUNC_SCALAR_TIMEZONE
:
{
assert
(
numInputs
==
1
);
memcpy
(((
char
*
)
varDataVal
(
outputData
)),
varDataVal
(
inputData
[
0
]),
varDataLen
(
inputData
[
0
]));
varDataSetLen
(
outputData
,
varDataLen
(
inputData
[
0
]));
break
;
}
case
TSDB_FUNC_SCALAR_TO_ISO8601
:
{
assert
(
numInputs
==
1
);
assert
(
pInputs
[
0
].
type
==
TSDB_DATA_TYPE_BIGINT
||
pInputs
[
0
].
type
==
TSDB_DATA_TYPE_TIMESTAMP
);
char
fraction
[
20
]
=
{
0
};
bool
hasFraction
=
false
;
NUM_TO_STRING
(
pInputs
[
0
].
type
,
inputData
[
0
],
sizeof
(
fraction
),
fraction
);
int32_t
tsDigits
=
strlen
(
fraction
);
char
buf
[
64
]
=
{
0
};
int64_t
timeVal
;
GET_TYPED_DATA
(
timeVal
,
int64_t
,
pInputs
[
0
].
type
,
inputData
[
0
]);
if
(
tsDigits
>
TSDB_TIME_PRECISION_SEC_DIGITS
)
{
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
=
timeVal
/
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
=
timeVal
/
(
1000
*
1000
);
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
(
1000
*
1000
*
1000
);
}
else
{
assert
(
0
);
}
hasFraction
=
true
;
memmove
(
fraction
,
fraction
+
TSDB_TIME_PRECISION_SEC_DIGITS
,
TSDB_TIME_PRECISION_SEC_DIGITS
);
}
struct
tm
*
tmInfo
=
localtime
((
const
time_t
*
)
&
timeVal
);
strftime
(
buf
,
sizeof
(
buf
),
"%Y-%m-%dT%H:%M:%S%z"
,
tmInfo
);
int32_t
len
=
(
int32_t
)
strlen
(
buf
);
if
(
hasFraction
)
{
int32_t
fracLen
=
strlen
(
fraction
)
+
1
;
char
*
tzInfo
=
strchr
(
buf
,
'+'
);
if
(
tzInfo
)
{
memmove
(
tzInfo
+
fracLen
,
tzInfo
,
strlen
(
tzInfo
));
}
else
{
tzInfo
=
strchr
(
buf
,
'-'
);
memmove
(
tzInfo
+
fracLen
,
tzInfo
,
strlen
(
tzInfo
));
}
char
tmp
[
32
];
sprintf
(
tmp
,
".%s"
,
fraction
);
memcpy
(
tzInfo
,
tmp
,
fracLen
);
len
+=
fracLen
;
}
memcpy
(((
char
*
)
varDataVal
(
outputData
)),
buf
,
len
);
varDataSetLen
(
outputData
,
len
);
break
;
}
case
TSDB_FUNC_SCALAR_TO_UNIXTIMESTAMP
:
{
assert
(
numInputs
==
2
);
assert
(
pInputs
[
0
].
type
==
TSDB_DATA_TYPE_BINARY
||
pInputs
[
0
].
type
==
TSDB_DATA_TYPE_NCHAR
);
assert
(
pInputs
[
1
].
type
==
TSDB_DATA_TYPE_BIGINT
);
int64_t
timeVal
=
0
;
int64_t
timePrec
;
GET_TYPED_DATA
(
timePrec
,
int64_t
,
pInputs
[
1
].
type
,
inputData
[
1
]);
if
(
pInputs
[
0
].
type
==
TSDB_DATA_TYPE_BINARY
)
{
taosParseTime
((
char
*
)
varDataVal
(
inputData
[
0
]),
&
timeVal
,
pInputs
[
0
].
bytes
,
timePrec
,
0
);
}
else
{
int32_t
charLen
=
varDataLen
(
inputData
[
0
]);
char
*
newColData
=
calloc
(
1
,
charLen
/
TSDB_NCHAR_SIZE
+
1
);
int
len
=
taosUcs4ToMbs
(
varDataVal
(
inputData
[
0
]),
charLen
,
newColData
);
if
(
len
<
0
){
uError
(
"vectorTimeFunc taosUcs4ToMbs error"
);
tfree
(
newColData
);
return
;
}
newColData
[
len
]
=
0
;
taosParseTime
(
newColData
,
&
timeVal
,
len
+
1
,
timePrec
,
0
);
tfree
(
newColData
);
}
SET_TYPED_DATA
(
outputData
,
pOutput
->
type
,
timeVal
);
break
;
}
case
TSDB_FUNC_SCALAR_TIMETRUNCATE
:
{
assert
(
numInputs
==
3
);
assert
(
pInputs
[
0
].
type
==
TSDB_DATA_TYPE_BIGINT
||
pInputs
[
0
].
type
==
TSDB_DATA_TYPE_TIMESTAMP
||
pInputs
[
0
].
type
==
TSDB_DATA_TYPE_BINARY
||
pInputs
[
0
].
type
==
TSDB_DATA_TYPE_NCHAR
);
assert
(
pInputs
[
1
].
type
==
TSDB_DATA_TYPE_TIMESTAMP
);
assert
(
pInputs
[
2
].
type
==
TSDB_DATA_TYPE_BIGINT
);
int64_t
timeUnit
,
timePrec
,
timeVal
=
0
;
GET_TYPED_DATA
(
timeUnit
,
int64_t
,
pInputs
[
1
].
type
,
inputData
[
1
]);
GET_TYPED_DATA
(
timePrec
,
int64_t
,
pInputs
[
2
].
type
,
inputData
[
2
]);
int64_t
factor
=
(
timePrec
==
TSDB_TIME_PRECISION_MILLI
)
?
1000
:
(
timePrec
==
TSDB_TIME_PRECISION_MICRO
?
1000000
:
1000000000
);
if
(
pInputs
[
0
].
type
==
TSDB_DATA_TYPE_BINARY
||
pInputs
[
0
].
type
==
TSDB_DATA_TYPE_NCHAR
)
{
/* datetime format strings */
taosParseTime
((
char
*
)
varDataVal
(
inputData
[
0
]),
&
timeVal
,
pInputs
[
0
].
bytes
,
TSDB_TIME_PRECISION_NANO
,
0
);
//If converted value is less than 10digits in second, use value in second instead
int64_t
timeValSec
=
timeVal
/
1000000000
;
if
(
timeValSec
<
1000000000
)
{
timeVal
=
timeValSec
;
}
}
else
if
(
pInputs
[
0
].
type
==
TSDB_DATA_TYPE_BIGINT
)
{
/* unix timestamp */
GET_TYPED_DATA
(
timeVal
,
int64_t
,
pInputs
[
0
].
type
,
inputData
[
0
]);
}
else
if
(
pInputs
[
0
].
type
==
TSDB_DATA_TYPE_TIMESTAMP
)
{
/* timestamp column*/
GET_TYPED_DATA
(
timeVal
,
int64_t
,
pInputs
[
0
].
type
,
inputData
[
0
]);
int64_t
timeValSec
=
timeVal
/
factor
;
if
(
timeValSec
<
1000000000
)
{
timeVal
=
timeValSec
;
}
}
else
{
assert
(
0
);
}
char
buf
[
20
]
=
{
0
};
NUM_TO_STRING
(
TSDB_DATA_TYPE_BIGINT
,
&
timeVal
,
sizeof
(
buf
),
buf
);
int32_t
tsDigits
=
strlen
(
buf
);
timeUnit
=
timeUnit
*
1000
/
factor
;
switch
(
timeUnit
)
{
case
0
:
{
/* 1u */
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000
*
1000
;
//} else if (tsDigits == TSDB_TIME_PRECISION_MICRO_DIGITS) {
// //timeVal = timeVal / 1000;
}
else
if
(
tsDigits
<=
TSDB_TIME_PRECISION_SEC_DIGITS
)
{
timeVal
=
timeVal
*
factor
;
}
else
{
timeVal
=
timeVal
*
1
;
}
break
;
}
case
1
:
{
/* 1a */
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
=
timeVal
*
1
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
=
timeVal
/
1000
*
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000000
*
1000000
;
}
else
if
(
tsDigits
<=
TSDB_TIME_PRECISION_SEC_DIGITS
){
timeVal
=
timeVal
*
factor
;
}
else
{
assert
(
0
);
}
break
;
}
case
1000
:
{
/* 1s */
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
=
timeVal
/
1000
*
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
=
timeVal
/
1000000
*
1000000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000000000
*
1000000000
;
}
else
if
(
tsDigits
<=
TSDB_TIME_PRECISION_SEC_DIGITS
)
{
timeVal
=
timeVal
*
factor
;
}
else
{
assert
(
0
);
}
break
;
}
case
60000
:
{
/* 1m */
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
=
timeVal
/
1000
/
60
*
60
*
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
=
timeVal
/
1000000
/
60
*
60
*
1000000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000000000
/
60
*
60
*
1000000000
;
}
else
if
(
tsDigits
<=
TSDB_TIME_PRECISION_SEC_DIGITS
)
{
timeVal
=
timeVal
*
factor
/
factor
/
60
*
60
*
factor
;
}
else
{
assert
(
0
);
}
break
;
}
case
3600000
:
{
/* 1h */
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
=
timeVal
/
1000
/
3600
*
3600
*
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
=
timeVal
/
1000000
/
3600
*
3600
*
1000000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000000000
/
3600
*
3600
*
1000000000
;
}
else
if
(
tsDigits
<=
TSDB_TIME_PRECISION_SEC_DIGITS
)
{
timeVal
=
timeVal
*
factor
/
factor
/
3600
*
3600
*
factor
;
}
else
{
assert
(
0
);
}
break
;
}
case
86400000
:
{
/* 1d */
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
=
timeVal
/
1000
/
86400
*
86400
*
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
=
timeVal
/
1000000
/
86400
*
86400
*
1000000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000000000
/
86400
*
86400
*
1000000000
;
}
else
if
(
tsDigits
<=
TSDB_TIME_PRECISION_SEC_DIGITS
)
{
timeVal
=
timeVal
*
factor
/
factor
/
86400
*
86400
*
factor
;
}
else
{
assert
(
0
);
}
break
;
}
case
604800000
:
{
/* 1w */
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
=
timeVal
/
1000
/
604800
*
604800
*
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
=
timeVal
/
1000000
/
604800
*
604800
*
1000000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000000000
/
604800
*
604800
*
1000000000
;
}
else
if
(
tsDigits
<=
TSDB_TIME_PRECISION_SEC_DIGITS
)
{
timeVal
=
timeVal
*
factor
/
factor
/
604800
*
604800
*
factor
;
}
else
{
assert
(
0
);
}
break
;
}
default:
{
timeVal
=
timeVal
*
1
;
break
;
}
}
//truncate the timestamp to db precision
switch
(
timePrec
)
{
case
TSDB_TIME_PRECISION_MILLI
:
{
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
=
timeVal
/
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000000
;
}
break
;
}
case
TSDB_TIME_PRECISION_MICRO
:
{
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
=
timeVal
/
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
=
timeVal
*
1000
;
}
break
;
}
case
TSDB_TIME_PRECISION_NANO
:
{
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
=
timeVal
*
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
=
timeVal
*
1000000
;
}
break
;
}
}
SET_TYPED_DATA
(
outputData
,
pOutput
->
type
,
timeVal
);
break
;
}
case
TSDB_FUNC_SCALAR_TIMEDIFF
:
{
assert
(
numInputs
==
3
||
numInputs
==
4
);
int64_t
timePrec
,
timeUnit
=
-
1
;
int64_t
timeVal
[
2
]
=
{
0
};
if
(
numInputs
==
3
)
{
assert
(
pInputs
[
2
].
type
==
TSDB_DATA_TYPE_BIGINT
);
GET_TYPED_DATA
(
timePrec
,
int64_t
,
pInputs
[
2
].
type
,
inputData
[
2
]);
}
else
{
assert
(
pInputs
[
2
].
type
==
TSDB_DATA_TYPE_TIMESTAMP
);
assert
(
pInputs
[
3
].
type
==
TSDB_DATA_TYPE_BIGINT
);
GET_TYPED_DATA
(
timeUnit
,
int64_t
,
pInputs
[
2
].
type
,
inputData
[
2
]);
GET_TYPED_DATA
(
timePrec
,
int64_t
,
pInputs
[
3
].
type
,
inputData
[
3
]);
}
for
(
int32_t
j
=
0
;
j
<
2
;
++
j
)
{
assert
(
pInputs
[
j
].
type
==
TSDB_DATA_TYPE_BIGINT
||
pInputs
[
j
].
type
==
TSDB_DATA_TYPE_TIMESTAMP
||
pInputs
[
j
].
type
==
TSDB_DATA_TYPE_BINARY
||
pInputs
[
j
].
type
==
TSDB_DATA_TYPE_NCHAR
);
if
(
pInputs
[
j
].
type
==
TSDB_DATA_TYPE_BINARY
||
/* datetime format strings */
pInputs
[
j
].
type
==
TSDB_DATA_TYPE_NCHAR
)
{
taosParseTime
((
char
*
)
varDataVal
(
inputData
[
j
]),
&
timeVal
[
j
],
pInputs
[
j
].
bytes
,
TSDB_TIME_PRECISION_NANO
,
0
);
}
else
if
(
pInputs
[
j
].
type
==
TSDB_DATA_TYPE_BIGINT
||
pInputs
[
j
].
type
==
TSDB_DATA_TYPE_TIMESTAMP
)
{
/* unix timestamp or ts column*/
GET_TYPED_DATA
(
timeVal
[
j
],
int64_t
,
pInputs
[
j
].
type
,
inputData
[
j
]);
if
(
pInputs
[
j
].
type
==
TSDB_DATA_TYPE_TIMESTAMP
)
{
int64_t
factor
=
(
timePrec
==
TSDB_TIME_PRECISION_MILLI
)
?
1000
:
(
timePrec
==
TSDB_TIME_PRECISION_MICRO
?
1000000
:
1000000000
);
int64_t
timeValSec
=
timeVal
[
j
]
/
factor
;
if
(
timeValSec
<
1000000000
)
{
timeVal
[
j
]
=
timeValSec
;
}
}
char
buf
[
20
]
=
{
0
};
NUM_TO_STRING
(
TSDB_DATA_TYPE_BIGINT
,
&
timeVal
[
j
],
sizeof
(
buf
),
buf
);
int32_t
tsDigits
=
strlen
(
buf
);
if
(
tsDigits
<=
TSDB_TIME_PRECISION_SEC_DIGITS
)
{
timeVal
[
j
]
=
timeVal
[
j
]
*
1000000000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MILLI_DIGITS
)
{
timeVal
[
j
]
=
timeVal
[
j
]
*
1000000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_MICRO_DIGITS
)
{
timeVal
[
j
]
=
timeVal
[
j
]
*
1000
;
}
else
if
(
tsDigits
==
TSDB_TIME_PRECISION_NANO_DIGITS
)
{
timeVal
[
j
]
=
timeVal
[
j
];
}
}
}
int64_t
result
=
(
timeVal
[
0
]
>=
timeVal
[
1
])
?
(
timeVal
[
0
]
-
timeVal
[
1
])
:
(
timeVal
[
1
]
-
timeVal
[
0
]);
if
(
timeUnit
<
0
)
{
// if no time unit given use db precision
switch
(
timePrec
)
{
case
TSDB_TIME_PRECISION_MILLI
:
{
result
=
result
/
1000000
;
break
;
}
case
TSDB_TIME_PRECISION_MICRO
:
{
result
=
result
/
1000
;
break
;
}
case
TSDB_TIME_PRECISION_NANO
:
{
result
=
result
/
1
;
break
;
}
}
}
else
{
int64_t
factor
=
(
timePrec
==
TSDB_TIME_PRECISION_MILLI
)
?
1000
:
(
timePrec
==
TSDB_TIME_PRECISION_MICRO
?
1000000
:
1000000000
);
timeUnit
=
timeUnit
*
1000
/
factor
;
switch
(
timeUnit
)
{
case
0
:
{
/* 1u */
result
=
result
/
1000
;
break
;
}
case
1
:
{
/* 1a */
result
=
result
/
1000000
;
break
;
}
case
1000
:
{
/* 1s */
result
=
result
/
1000000000
;
break
;
}
case
60000
:
{
/* 1m */
result
=
result
/
1000000000
/
60
;
break
;
}
case
3600000
:
{
/* 1h */
result
=
result
/
1000000000
/
3600
;
break
;
}
case
86400000
:
{
/* 1d */
result
=
result
/
1000000000
/
86400
;
break
;
}
case
604800000
:
{
/* 1w */
result
=
result
/
1000000000
/
604800
;
break
;
}
default:
{
break
;
}
}
}
SET_TYPED_DATA
(
outputData
,
pOutput
->
type
,
result
);
break
;
}
default:
{
assert
(
false
);
break
;
}
}
// end switch function(id)
}
// end can produce value, all child has value
}
// end for each row
free
(
inputData
);
}
_expr_scalar_function_t
getExprScalarFunction
(
uint16_t
funcId
)
{
_expr_scalar_function_t
getExprScalarFunction
(
uint16_t
funcId
)
{
assert
(
TSDB_FUNC_IS_SCALAR
(
funcId
));
assert
(
TSDB_FUNC_IS_SCALAR
(
funcId
));
int16_t
scalaIdx
=
TSDB_FUNC_SCALAR_INDEX
(
funcId
);
int16_t
scalaIdx
=
TSDB_FUNC_SCALAR_INDEX
(
funcId
);
...
@@ -1974,5 +2766,40 @@ tScalarFunctionInfo aScalarFunctions[] = {
...
@@ -1974,5 +2766,40 @@ tScalarFunctionInfo aScalarFunctions[] = {
"substr"
,
"substr"
,
vectorSubstrFunc
vectorSubstrFunc
},
},
{
TSDB_FUNC_SCALAR_NOW
,
"now"
,
vectorTimeFunc
},
{
TSDB_FUNC_SCALAR_TODAY
,
"today"
,
vectorTimeFunc
},
{
TSDB_FUNC_SCALAR_TIMEZONE
,
"timezone"
,
vectorTimeFunc
},
{
TSDB_FUNC_SCALAR_TO_ISO8601
,
"to_iso8601"
,
vectorTimeFunc
},
{
TSDB_FUNC_SCALAR_TO_UNIXTIMESTAMP
,
"to_unixtimestamp"
,
vectorTimeFunc
},
{
TSDB_FUNC_SCALAR_TIMETRUNCATE
,
"timetruncate"
,
vectorTimeFunc
},
{
TSDB_FUNC_SCALAR_TIMEDIFF
,
"timediff"
,
vectorTimeFunc
},
};
};
src/common/src/tvariant.c
浏览文件 @
e6058244
...
@@ -93,6 +93,8 @@ void tVariantCreateExt(tVariant *pVar, SStrToken *token, int32_t optrType, bool
...
@@ -93,6 +93,8 @@ void tVariantCreateExt(tVariant *pVar, SStrToken *token, int32_t optrType, bool
case
TSDB_DATA_TYPE_TIMESTAMP
:
{
case
TSDB_DATA_TYPE_TIMESTAMP
:
{
if
(
optrType
==
TK_NOW
)
{
if
(
optrType
==
TK_NOW
)
{
pVar
->
i64
=
taosGetTimestamp
(
TSDB_TIME_PRECISION_NANO
);
pVar
->
i64
=
taosGetTimestamp
(
TSDB_TIME_PRECISION_NANO
);
}
else
if
(
optrType
==
TK_TODAY
)
{
pVar
->
i64
=
taosGetTimestampToday
()
*
1000000000
;
}
else
if
(
optrType
==
TK_PLUS
||
optrType
==
TK_MINUS
)
{
}
else
if
(
optrType
==
TK_PLUS
||
optrType
==
TK_MINUS
)
{
char
unit
=
0
;
char
unit
=
0
;
ret
=
parseAbsoluteDuration
(
token
->
z
,
token
->
n
,
&
pVar
->
i64
,
&
unit
,
TSDB_TIME_PRECISION_NANO
);
ret
=
parseAbsoluteDuration
(
token
->
z
,
token
->
n
,
&
pVar
->
i64
,
&
unit
,
TSDB_TIME_PRECISION_NANO
);
...
@@ -282,7 +284,7 @@ void tVariantAssign(tVariant *pDst, const tVariant *pSrc) {
...
@@ -282,7 +284,7 @@ void tVariantAssign(tVariant *pDst, const tVariant *pSrc) {
}
}
if
(
IS_NUMERIC_TYPE
(
pSrc
->
nType
)
||
(
pSrc
->
nType
==
TSDB_DATA_TYPE_BOOL
))
{
if
(
IS_NUMERIC_TYPE
(
pSrc
->
nType
)
||
IS_TIMESTAMP_TYPE
(
pSrc
->
nType
)
||
(
pSrc
->
nType
==
TSDB_DATA_TYPE_BOOL
))
{
pDst
->
i64
=
pSrc
->
i64
;
pDst
->
i64
=
pSrc
->
i64
;
}
else
if
(
pSrc
->
nType
==
TSDB_DATA_TYPE_POINTER_ARRAY
)
{
// this is only for string array
}
else
if
(
pSrc
->
nType
==
TSDB_DATA_TYPE_POINTER_ARRAY
)
{
// this is only for string array
size_t
num
=
taosArrayGetSize
(
pSrc
->
arr
);
size_t
num
=
taosArrayGetSize
(
pSrc
->
arr
);
...
@@ -540,7 +542,7 @@ static FORCE_INLINE int32_t convertToInteger(tVariant *pVariant, int64_t *result
...
@@ -540,7 +542,7 @@ static FORCE_INLINE int32_t convertToInteger(tVariant *pVariant, int64_t *result
}
}
errno
=
0
;
errno
=
0
;
if
(
IS_SIGNED_NUMERIC_TYPE
(
pVariant
->
nType
)
||
(
pVariant
->
nType
==
TSDB_DATA_TYPE_BOOL
))
{
if
(
IS_SIGNED_NUMERIC_TYPE
(
pVariant
->
nType
)
||
IS_TIMESTAMP_TYPE
(
pVariant
->
nType
)
||
(
pVariant
->
nType
==
TSDB_DATA_TYPE_BOOL
))
{
*
result
=
pVariant
->
i64
;
*
result
=
pVariant
->
i64
;
}
else
if
(
IS_UNSIGNED_NUMERIC_TYPE
(
pVariant
->
nType
))
{
}
else
if
(
IS_UNSIGNED_NUMERIC_TYPE
(
pVariant
->
nType
))
{
*
result
=
pVariant
->
u64
;
*
result
=
pVariant
->
u64
;
...
...
src/inc/taosdef.h
浏览文件 @
e6058244
...
@@ -106,6 +106,11 @@ extern const int32_t TYPE_BYTES[16];
...
@@ -106,6 +106,11 @@ extern const int32_t TYPE_BYTES[16];
#define TSDB_TIME_PRECISION_MICRO_STR "us"
#define TSDB_TIME_PRECISION_MICRO_STR "us"
#define TSDB_TIME_PRECISION_NANO_STR "ns"
#define TSDB_TIME_PRECISION_NANO_STR "ns"
#define TSDB_TIME_PRECISION_SEC_DIGITS 10
#define TSDB_TIME_PRECISION_MILLI_DIGITS 13
#define TSDB_TIME_PRECISION_MICRO_DIGITS 16
#define TSDB_TIME_PRECISION_NANO_DIGITS 19
#define TSDB_TICK_PER_SECOND(precision) ((int64_t)((precision)==TSDB_TIME_PRECISION_MILLI ? 1e3L : ((precision)==TSDB_TIME_PRECISION_MICRO ? 1e6L : 1e9L)))
#define TSDB_TICK_PER_SECOND(precision) ((int64_t)((precision)==TSDB_TIME_PRECISION_MILLI ? 1e3L : ((precision)==TSDB_TIME_PRECISION_MICRO ? 1e6L : 1e9L)))
#define T_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
#define T_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
...
@@ -137,6 +142,7 @@ do { \
...
@@ -137,6 +142,7 @@ do { \
#define GET_DOUBLE_VAL(x) taos_align_get_double(x)
#define GET_DOUBLE_VAL(x) taos_align_get_double(x)
#define SET_FLOAT_VAL(x, y) { float z = (float)(y); (*(int32_t*) x = *(int32_t*)(&z)); }
#define SET_FLOAT_VAL(x, y) { float z = (float)(y); (*(int32_t*) x = *(int32_t*)(&z)); }
#define SET_DOUBLE_VAL(x, y) { double z = (double)(y); (*(int64_t*) x = *(int64_t*)(&z)); }
#define SET_DOUBLE_VAL(x, y) { double z = (double)(y); (*(int64_t*) x = *(int64_t*)(&z)); }
#define SET_TIMESTAMP_VAL(x, y) { int64_t z = (int64_t)(y); (*(int64_t*) x = *(int64_t*)(&z)); }
#define SET_FLOAT_PTR(x, y) { (*(int32_t*) x = *(int32_t*)y); }
#define SET_FLOAT_PTR(x, y) { (*(int32_t*) x = *(int32_t*)y); }
#define SET_DOUBLE_PTR(x, y) { (*(int64_t*) x = *(int64_t*)y); }
#define SET_DOUBLE_PTR(x, y) { (*(int64_t*) x = *(int64_t*)y); }
#else
#else
...
@@ -144,6 +150,7 @@ do { \
...
@@ -144,6 +150,7 @@ do { \
#define GET_DOUBLE_VAL(x) (*(double *)(x))
#define GET_DOUBLE_VAL(x) (*(double *)(x))
#define SET_FLOAT_VAL(x, y) { (*(float *)(x)) = (float)(y); }
#define SET_FLOAT_VAL(x, y) { (*(float *)(x)) = (float)(y); }
#define SET_DOUBLE_VAL(x, y) { (*(double *)(x)) = (double)(y); }
#define SET_DOUBLE_VAL(x, y) { (*(double *)(x)) = (double)(y); }
#define SET_TIMESTAMP_VAL(x, y) { (*(int64_t *)(x)) = (int64_t)(y); }
#define SET_FLOAT_PTR(x, y) { (*(float *)(x)) = (*(float *)(y)); }
#define SET_FLOAT_PTR(x, y) { (*(float *)(x)) = (*(float *)(y)); }
#define SET_DOUBLE_PTR(x, y) { (*(double *)(x)) = (*(double *)(y)); }
#define SET_DOUBLE_PTR(x, y) { (*(double *)(x)) = (*(double *)(y)); }
#endif
#endif
...
...
src/inc/ttokendef.h
浏览文件 @
e6058244
...
@@ -163,61 +163,62 @@
...
@@ -163,61 +163,62 @@
#define TK_SLIMIT 145
#define TK_SLIMIT 145
#define TK_SOFFSET 146
#define TK_SOFFSET 146
#define TK_WHERE 147
#define TK_WHERE 147
#define TK_RESET 148
#define TK_TODAY 148
#define TK_QUERY 149
#define TK_RESET 149
#define TK_SYNCDB 150
#define TK_QUERY 150
#define TK_ADD 151
#define TK_SYNCDB 151
#define TK_COLUMN 152
#define TK_ADD 152
#define TK_MODIFY 153
#define TK_COLUMN 153
#define TK_TAG 154
#define TK_MODIFY 154
#define TK_CHANGE 155
#define TK_TAG 155
#define TK_SET 156
#define TK_CHANGE 156
#define TK_KILL 157
#define TK_SET 157
#define TK_CONNECTION 158
#define TK_KILL 158
#define TK_STREAM 159
#define TK_CONNECTION 159
#define TK_COLON 160
#define TK_STREAM 160
#define TK_ABORT 161
#define TK_COLON 161
#define TK_AFTER 162
#define TK_ABORT 162
#define TK_ATTACH 163
#define TK_AFTER 163
#define TK_BEFORE 164
#define TK_ATTACH 164
#define TK_BEGIN 165
#define TK_BEFORE 165
#define TK_CASCADE 166
#define TK_BEGIN 166
#define TK_CLUSTER 167
#define TK_CASCADE 167
#define TK_CONFLICT 168
#define TK_CLUSTER 168
#define TK_COPY 169
#define TK_CONFLICT 169
#define TK_DEFERRED 170
#define TK_COPY 170
#define TK_DELIMITERS 171
#define TK_DEFERRED 171
#define TK_DETACH 172
#define TK_DELIMITERS 172
#define TK_EACH 173
#define TK_DETACH 173
#define TK_END 174
#define TK_EACH 174
#define TK_EXPLAIN 175
#define TK_END 175
#define TK_FAIL 176
#define TK_EXPLAIN 176
#define TK_FOR 177
#define TK_FAIL 177
#define TK_IGNORE 178
#define TK_FOR 178
#define TK_IMMEDIATE 179
#define TK_IGNORE 179
#define TK_INITIALLY 180
#define TK_IMMEDIATE 180
#define TK_INSTEAD 181
#define TK_INITIALLY 181
#define TK_KEY 182
#define TK_INSTEAD 182
#define TK_OF 183
#define TK_KEY 183
#define TK_RAISE 184
#define TK_OF 184
#define TK_REPLACE 185
#define TK_RAISE 185
#define TK_RESTRICT 186
#define TK_REPLACE 186
#define TK_ROW 187
#define TK_RESTRICT 187
#define TK_STATEMENT 188
#define TK_ROW 188
#define TK_TRIGGER 189
#define TK_STATEMENT 189
#define TK_VIEW 190
#define TK_TRIGGER 190
#define TK_IPTOKEN 191
#define TK_VIEW 191
#define TK_SEMI 192
#define TK_IPTOKEN 192
#define TK_NONE 193
#define TK_SEMI 193
#define TK_PREV 194
#define TK_NONE 194
#define TK_LINEAR 195
#define TK_PREV 195
#define TK_IMPORT 196
#define TK_LINEAR 196
#define TK_TBNAME 197
#define TK_IMPORT 197
#define TK_JOIN 198
#define TK_TBNAME 198
#define TK_INSERT 199
#define TK_JOIN 199
#define TK_INTO 200
#define TK_INSERT 200
#define TK_VALUES 201
#define TK_INTO 201
#define TK_FILE 202
#define TK_VALUES 202
#define TK_FILE 203
#define TK_SPACE 300
#define TK_SPACE 300
...
...
src/inc/ttype.h
浏览文件 @
e6058244
...
@@ -107,7 +107,7 @@ typedef struct {
...
@@ -107,7 +107,7 @@ typedef struct {
case TSDB_DATA_TYPE_USMALLINT: \
case TSDB_DATA_TYPE_USMALLINT: \
(_v) = (_finalType)GET_UINT16_VAL(_data); \
(_v) = (_finalType)GET_UINT16_VAL(_data); \
break; \
break; \
case TSDB_DATA_TYPE_TIMESTAMP:\
case TSDB_DATA_TYPE_TIMESTAMP:
\
case TSDB_DATA_TYPE_BIGINT: \
case TSDB_DATA_TYPE_BIGINT: \
(_v) = (_finalType)(GET_INT64_VAL(_data)); \
(_v) = (_finalType)(GET_INT64_VAL(_data)); \
break; \
break; \
...
@@ -145,6 +145,7 @@ typedef struct {
...
@@ -145,6 +145,7 @@ typedef struct {
case TSDB_DATA_TYPE_USMALLINT: \
case TSDB_DATA_TYPE_USMALLINT: \
*(uint16_t *)(_v) = (uint16_t)(_data); \
*(uint16_t *)(_v) = (uint16_t)(_data); \
break; \
break; \
case TSDB_DATA_TYPE_TIMESTAMP: \
case TSDB_DATA_TYPE_BIGINT: \
case TSDB_DATA_TYPE_BIGINT: \
*(int64_t *)(_v) = (int64_t)(_data); \
*(int64_t *)(_v) = (int64_t)(_data); \
break; \
break; \
...
@@ -181,6 +182,7 @@ typedef struct {
...
@@ -181,6 +182,7 @@ typedef struct {
case TSDB_DATA_TYPE_USMALLINT: \
case TSDB_DATA_TYPE_USMALLINT: \
snprintf(_output, (int32_t)(_outputBytes), "%d", *(uint16_t *)(_input)); \
snprintf(_output, (int32_t)(_outputBytes), "%d", *(uint16_t *)(_input)); \
break; \
break; \
case TSDB_DATA_TYPE_TIMESTAMP: \
case TSDB_DATA_TYPE_BIGINT: \
case TSDB_DATA_TYPE_BIGINT: \
snprintf(_output, (int32_t)(_outputBytes), "%" PRId64, *(int64_t *)(_input)); \
snprintf(_output, (int32_t)(_outputBytes), "%" PRId64, *(int64_t *)(_input)); \
break; \
break; \
...
@@ -205,6 +207,7 @@ typedef struct {
...
@@ -205,6 +207,7 @@ typedef struct {
#define IS_SIGNED_NUMERIC_TYPE(_t) ((_t) >= TSDB_DATA_TYPE_TINYINT && (_t) <= TSDB_DATA_TYPE_BIGINT)
#define IS_SIGNED_NUMERIC_TYPE(_t) ((_t) >= TSDB_DATA_TYPE_TINYINT && (_t) <= TSDB_DATA_TYPE_BIGINT)
#define IS_UNSIGNED_NUMERIC_TYPE(_t) ((_t) >= TSDB_DATA_TYPE_UTINYINT && (_t) <= TSDB_DATA_TYPE_UBIGINT)
#define IS_UNSIGNED_NUMERIC_TYPE(_t) ((_t) >= TSDB_DATA_TYPE_UTINYINT && (_t) <= TSDB_DATA_TYPE_UBIGINT)
#define IS_FLOAT_TYPE(_t) ((_t) == TSDB_DATA_TYPE_FLOAT || (_t) == TSDB_DATA_TYPE_DOUBLE)
#define IS_FLOAT_TYPE(_t) ((_t) == TSDB_DATA_TYPE_FLOAT || (_t) == TSDB_DATA_TYPE_DOUBLE)
#define IS_TIMESTAMP_TYPE(_t) ((_t) == TSDB_DATA_TYPE_TIMESTAMP)
#define IS_NUMERIC_TYPE(_t) ((IS_SIGNED_NUMERIC_TYPE(_t)) || (IS_UNSIGNED_NUMERIC_TYPE(_t)) || (IS_FLOAT_TYPE(_t)))
#define IS_NUMERIC_TYPE(_t) ((IS_SIGNED_NUMERIC_TYPE(_t)) || (IS_UNSIGNED_NUMERIC_TYPE(_t)) || (IS_FLOAT_TYPE(_t)))
...
@@ -289,6 +292,7 @@ void* getDataMax(int32_t type);
...
@@ -289,6 +292,7 @@ void* getDataMax(int32_t type);
int32_t
tStrToInteger
(
const
char
*
z
,
int16_t
type
,
int32_t
n
,
int64_t
*
value
,
bool
issigned
);
int32_t
tStrToInteger
(
const
char
*
z
,
int16_t
type
,
int32_t
n
,
int64_t
*
value
,
bool
issigned
);
#define SET_DOUBLE_NULL(v) (*(uint64_t *)(v) = TSDB_DATA_DOUBLE_NULL)
#define SET_DOUBLE_NULL(v) (*(uint64_t *)(v) = TSDB_DATA_DOUBLE_NULL)
#define SET_TIMESTAMP_NULL(v) (*(uint64_t *)(v) = TSDB_DATA_TIMESTAMP_NULL)
#ifdef __cplusplus
#ifdef __cplusplus
}
}
...
...
src/os/inc/osTime.h
浏览文件 @
e6058244
...
@@ -77,6 +77,15 @@ static FORCE_INLINE int64_t taosGetTimestamp(int32_t precision) {
...
@@ -77,6 +77,15 @@ static FORCE_INLINE int64_t taosGetTimestamp(int32_t precision) {
}
}
}
}
//@return timestamp of today at 00:00:00 in seconds
static
FORCE_INLINE
int64_t
taosGetTimestampToday
()
{
time_t
t
=
time
(
NULL
);
struct
tm
*
tm
=
localtime
(
&
t
);
tm
->
tm_hour
=
0
;
tm
->
tm_min
=
0
;
tm
->
tm_sec
=
0
;
return
(
int64_t
)
mktime
(
tm
);
}
typedef
struct
SInterval
{
typedef
struct
SInterval
{
int32_t
tz
;
// query client timezone
int32_t
tz
;
// query client timezone
...
...
src/os/src/detail/osTime.c
浏览文件 @
e6058244
...
@@ -83,12 +83,12 @@ void deltaToUtcInitOnce() {
...
@@ -83,12 +83,12 @@ void deltaToUtcInitOnce() {
static
int64_t
parseFraction
(
char
*
str
,
char
**
end
,
int32_t
timePrec
);
static
int64_t
parseFraction
(
char
*
str
,
char
**
end
,
int32_t
timePrec
);
static
int32_t
parseTimeWithTz
(
char
*
timestr
,
int64_t
*
time
,
int32_t
timePrec
,
char
delim
);
static
int32_t
parseTimeWithTz
(
char
*
timestr
,
int64_t
*
time
,
int32_t
timePrec
,
char
delim
);
static
int32_t
parseLocaltime
(
char
*
timestr
,
int64_t
*
time
,
int32_t
timePrec
);
static
int32_t
parseLocaltime
(
char
*
timestr
,
int64_t
*
time
,
int32_t
timePrec
,
char
delim
);
static
int32_t
parseLocaltimeWithDst
(
char
*
timestr
,
int64_t
*
time
,
int32_t
timePrec
);
static
int32_t
parseLocaltimeWithDst
(
char
*
timestr
,
int64_t
*
time
,
int32_t
timePrec
,
char
delim
);
static
char
*
forwardToTimeStringEnd
(
char
*
str
);
static
char
*
forwardToTimeStringEnd
(
char
*
str
);
static
bool
checkTzPresent
(
char
*
str
,
int32_t
len
);
static
bool
checkTzPresent
(
char
*
str
,
int32_t
len
);
static
int32_t
(
*
parseLocaltimeFp
[])
(
char
*
timestr
,
int64_t
*
time
,
int32_t
timePrec
)
=
{
static
int32_t
(
*
parseLocaltimeFp
[])
(
char
*
timestr
,
int64_t
*
time
,
int32_t
timePrec
,
char
delim
)
=
{
parseLocaltime
,
parseLocaltime
,
parseLocaltimeWithDst
parseLocaltimeWithDst
};
};
...
@@ -98,11 +98,17 @@ int32_t taosGetTimestampSec() { return (int32_t)time(NULL); }
...
@@ -98,11 +98,17 @@ int32_t taosGetTimestampSec() { return (int32_t)time(NULL); }
int32_t
taosParseTime
(
char
*
timestr
,
int64_t
*
time
,
int32_t
len
,
int32_t
timePrec
,
int8_t
day_light
)
{
int32_t
taosParseTime
(
char
*
timestr
,
int64_t
*
time
,
int32_t
len
,
int32_t
timePrec
,
int8_t
day_light
)
{
/* parse datatime string in with tz */
/* parse datatime string in with tz */
if
(
strnchr
(
timestr
,
'T'
,
len
,
false
)
!=
NULL
)
{
if
(
strnchr
(
timestr
,
'T'
,
len
,
false
)
!=
NULL
)
{
if
(
checkTzPresent
(
timestr
,
len
))
{
return
parseTimeWithTz
(
timestr
,
time
,
timePrec
,
'T'
);
return
parseTimeWithTz
(
timestr
,
time
,
timePrec
,
'T'
);
}
else
if
(
checkTzPresent
(
timestr
,
len
))
{
}
else
{
return
(
*
parseLocaltimeFp
[
day_light
])(
timestr
,
time
,
timePrec
,
'T'
);
}
}
else
{
if
(
checkTzPresent
(
timestr
,
len
))
{
return
parseTimeWithTz
(
timestr
,
time
,
timePrec
,
0
);
return
parseTimeWithTz
(
timestr
,
time
,
timePrec
,
0
);
}
else
{
}
else
{
return
(
*
parseLocaltimeFp
[
day_light
])(
timestr
,
time
,
timePrec
);
return
(
*
parseLocaltimeFp
[
day_light
])(
timestr
,
time
,
timePrec
,
0
);
}
}
}
}
}
...
@@ -316,11 +322,19 @@ int32_t parseTimeWithTz(char* timestr, int64_t* time, int32_t timePrec, char del
...
@@ -316,11 +322,19 @@ int32_t parseTimeWithTz(char* timestr, int64_t* time, int32_t timePrec, char del
return
0
;
return
0
;
}
}
int32_t
parseLocaltime
(
char
*
timestr
,
int64_t
*
time
,
int32_t
timePrec
)
{
int32_t
parseLocaltime
(
char
*
timestr
,
int64_t
*
time
,
int32_t
timePrec
,
char
delim
)
{
*
time
=
0
;
*
time
=
0
;
struct
tm
tm
=
{
0
};
struct
tm
tm
=
{
0
};
char
*
str
=
strptime
(
timestr
,
"%Y-%m-%d %H:%M:%S"
,
&
tm
);
char
*
str
;
if
(
delim
==
'T'
)
{
str
=
strptime
(
timestr
,
"%Y-%m-%dT%H:%M:%S"
,
&
tm
);
}
else
if
(
delim
==
0
)
{
str
=
strptime
(
timestr
,
"%Y-%m-%d %H:%M:%S"
,
&
tm
);
}
else
{
str
=
NULL
;
}
if
(
str
==
NULL
)
{
if
(
str
==
NULL
)
{
return
-
1
;
return
-
1
;
}
}
...
@@ -349,12 +363,20 @@ int32_t parseLocaltime(char* timestr, int64_t* time, int32_t timePrec) {
...
@@ -349,12 +363,20 @@ int32_t parseLocaltime(char* timestr, int64_t* time, int32_t timePrec) {
return
0
;
return
0
;
}
}
int32_t
parseLocaltimeWithDst
(
char
*
timestr
,
int64_t
*
time
,
int32_t
timePrec
)
{
int32_t
parseLocaltimeWithDst
(
char
*
timestr
,
int64_t
*
time
,
int32_t
timePrec
,
char
delim
)
{
*
time
=
0
;
*
time
=
0
;
struct
tm
tm
=
{
0
};
struct
tm
tm
=
{
0
};
tm
.
tm_isdst
=
-
1
;
tm
.
tm_isdst
=
-
1
;
char
*
str
=
strptime
(
timestr
,
"%Y-%m-%d %H:%M:%S"
,
&
tm
);
char
*
str
;
if
(
delim
==
'T'
)
{
str
=
strptime
(
timestr
,
"%Y-%m-%dT%H:%M:%S"
,
&
tm
);
}
else
if
(
delim
==
0
)
{
str
=
strptime
(
timestr
,
"%Y-%m-%d %H:%M:%S"
,
&
tm
);
}
else
{
str
=
NULL
;
}
if
(
str
==
NULL
)
{
if
(
str
==
NULL
)
{
return
-
1
;
return
-
1
;
}
}
...
...
src/query/inc/sql.y
浏览文件 @
e6058244
...
@@ -762,6 +762,7 @@ expr(A) ::= MINUS(X) FLOAT(Y). { X.n += Y.n; X.type = TK_FLOAT; A = tSqlExprCr
...
@@ -762,6 +762,7 @@ expr(A) ::= MINUS(X) FLOAT(Y). { X.n += Y.n; X.type = TK_FLOAT; A = tSqlExprCr
expr(A) ::= PLUS(X) FLOAT(Y). { X.n += Y.n; X.type = TK_FLOAT; A = tSqlExprCreateIdValue(pInfo, &X, TK_FLOAT);}
expr(A) ::= PLUS(X) FLOAT(Y). { X.n += Y.n; X.type = TK_FLOAT; A = tSqlExprCreateIdValue(pInfo, &X, TK_FLOAT);}
expr(A) ::= STRING(X). { A = tSqlExprCreateIdValue(pInfo, &X, TK_STRING);}
expr(A) ::= STRING(X). { A = tSqlExprCreateIdValue(pInfo, &X, TK_STRING);}
expr(A) ::= NOW(X). { A = tSqlExprCreateIdValue(pInfo, &X, TK_NOW); }
expr(A) ::= NOW(X). { A = tSqlExprCreateIdValue(pInfo, &X, TK_NOW); }
expr(A) ::= TODAY(X). { A = tSqlExprCreateIdValue(pInfo, &X, TK_TODAY); }
expr(A) ::= VARIABLE(X). { A = tSqlExprCreateIdValue(pInfo, &X, TK_VARIABLE);}
expr(A) ::= VARIABLE(X). { A = tSqlExprCreateIdValue(pInfo, &X, TK_VARIABLE);}
expr(A) ::= PLUS(X) VARIABLE(Y). { X.n += Y.n; X.type = TK_VARIABLE; A = tSqlExprCreateIdValue(pInfo, &X, TK_VARIABLE);}
expr(A) ::= PLUS(X) VARIABLE(Y). { X.n += Y.n; X.type = TK_VARIABLE; A = tSqlExprCreateIdValue(pInfo, &X, TK_VARIABLE);}
expr(A) ::= MINUS(X) VARIABLE(Y). { X.n += Y.n; X.type = TK_VARIABLE; A = tSqlExprCreateIdValue(pInfo, &X, TK_VARIABLE);}
expr(A) ::= MINUS(X) VARIABLE(Y). { X.n += Y.n; X.type = TK_VARIABLE; A = tSqlExprCreateIdValue(pInfo, &X, TK_VARIABLE);}
...
@@ -986,4 +987,4 @@ cmd ::= KILL QUERY INTEGER(X) COLON(Z) INTEGER(Y). {X.n += (Z.n + Y.n); s
...
@@ -986,4 +987,4 @@ cmd ::= KILL QUERY INTEGER(X) COLON(Z) INTEGER(Y). {X.n += (Z.n + Y.n); s
%fallback ID ABORT AFTER ASC ATTACH BEFORE BEGIN CASCADE CLUSTER CONFLICT COPY DATABASE DEFERRED
%fallback ID ABORT AFTER ASC ATTACH BEFORE BEGIN CASCADE CLUSTER CONFLICT COPY DATABASE DEFERRED
DELIMITERS DESC DETACH EACH END EXPLAIN FAIL FOR GLOB IGNORE IMMEDIATE INITIALLY INSTEAD
DELIMITERS DESC DETACH EACH END EXPLAIN FAIL FOR GLOB IGNORE IMMEDIATE INITIALLY INSTEAD
LIKE MATCH NMATCH KEY OF OFFSET RAISE REPLACE RESTRICT ROW STATEMENT TRIGGER VIEW ALL
LIKE MATCH NMATCH KEY OF OFFSET RAISE REPLACE RESTRICT ROW STATEMENT TRIGGER VIEW ALL
NOW IPTOKEN SEMI NONE PREV LINEAR IMPORT TBNAME JOIN STABLE NULL INSERT INTO VALUES FILE.
NOW
TODAY
IPTOKEN SEMI NONE PREV LINEAR IMPORT TBNAME JOIN STABLE NULL INSERT INTO VALUES FILE.
src/query/src/qSqlParser.c
浏览文件 @
e6058244
...
@@ -33,6 +33,7 @@ SSqlInfo qSqlParse(const char *pStr) {
...
@@ -33,6 +33,7 @@ SSqlInfo qSqlParse(const char *pStr) {
sqlInfo
.
funcs
=
taosArrayInit
(
4
,
sizeof
(
SStrToken
));
sqlInfo
.
funcs
=
taosArrayInit
(
4
,
sizeof
(
SStrToken
));
int32_t
i
=
0
;
int32_t
i
=
0
;
bool
inWhere
=
false
;
while
(
1
)
{
while
(
1
)
{
SStrToken
t0
=
{
0
};
SStrToken
t0
=
{
0
};
...
@@ -68,6 +69,25 @@ SSqlInfo qSqlParse(const char *pStr) {
...
@@ -68,6 +69,25 @@ SSqlInfo qSqlParse(const char *pStr) {
sqlInfo
.
valid
=
false
;
sqlInfo
.
valid
=
false
;
goto
abort_parse
;
goto
abort_parse
;
}
}
case
TK_WHERE
:{
inWhere
=
true
;
Parse
(
pParser
,
t0
.
type
,
t0
,
&
sqlInfo
);
if
(
sqlInfo
.
valid
==
false
)
{
goto
abort_parse
;
}
break
;
}
case
TK_NOW
:
case
TK_TODAY
:
{
//for now(),today() function used in select/where clause
if
(
pStr
[
i
]
==
'('
&&
pStr
[
i
+
1
]
==
')'
)
{
if
(
!
inWhere
)
{
t0
.
type
=
TK_ID
;
}
else
{
i
+=
2
;
}
}
}
default:
default:
Parse
(
pParser
,
t0
.
type
,
t0
,
&
sqlInfo
);
Parse
(
pParser
,
t0
.
type
,
t0
,
&
sqlInfo
);
if
(
sqlInfo
.
valid
==
false
)
{
if
(
sqlInfo
.
valid
==
false
)
{
...
@@ -155,9 +175,13 @@ tSqlExpr *tSqlExprCreateIdValue(SSqlInfo* pInfo, SStrToken *pToken, int32_t optr
...
@@ -155,9 +175,13 @@ tSqlExpr *tSqlExprCreateIdValue(SSqlInfo* pInfo, SStrToken *pToken, int32_t optr
}
}
pSqlExpr
->
tokenId
=
optrType
;
pSqlExpr
->
tokenId
=
optrType
;
pSqlExpr
->
type
=
SQL_NODE_VALUE
;
pSqlExpr
->
type
=
SQL_NODE_VALUE
;
}
else
if
(
optrType
==
TK_NOW
)
{
}
else
if
(
optrType
==
TK_NOW
||
optrType
==
TK_TODAY
)
{
// use nanosecond by default TODO set value after getting database precision
// use nanosecond by default TODO set value after getting database precision
if
(
optrType
==
TK_NOW
)
{
pSqlExpr
->
value
.
i64
=
taosGetTimestamp
(
TSDB_TIME_PRECISION_NANO
);
pSqlExpr
->
value
.
i64
=
taosGetTimestamp
(
TSDB_TIME_PRECISION_NANO
);
}
else
{
pSqlExpr
->
value
.
i64
=
taosGetTimestampToday
()
*
1000000000
;
}
pSqlExpr
->
value
.
nType
=
TSDB_DATA_TYPE_BIGINT
;
pSqlExpr
->
value
.
nType
=
TSDB_DATA_TYPE_BIGINT
;
pSqlExpr
->
tokenId
=
TK_TIMESTAMP
;
// TK_TIMESTAMP used to denote the time value is in microsecond
pSqlExpr
->
tokenId
=
TK_TIMESTAMP
;
// TK_TIMESTAMP used to denote the time value is in microsecond
pSqlExpr
->
type
=
SQL_NODE_VALUE
;
pSqlExpr
->
type
=
SQL_NODE_VALUE
;
...
@@ -176,7 +200,7 @@ tSqlExpr *tSqlExprCreateIdValue(SSqlInfo* pInfo, SStrToken *pToken, int32_t optr
...
@@ -176,7 +200,7 @@ tSqlExpr *tSqlExprCreateIdValue(SSqlInfo* pInfo, SStrToken *pToken, int32_t optr
pSqlExpr
->
flags
|=
1
<<
EXPR_FLAG_NS_TIMESTAMP
;
pSqlExpr
->
flags
|=
1
<<
EXPR_FLAG_NS_TIMESTAMP
;
pSqlExpr
->
flags
|=
1
<<
EXPR_FLAG_TIMESTAMP_VAR
;
pSqlExpr
->
flags
|=
1
<<
EXPR_FLAG_TIMESTAMP_VAR
;
pSqlExpr
->
value
.
nType
=
TSDB_DATA_TYPE_
BIGINT
;
pSqlExpr
->
value
.
nType
=
TSDB_DATA_TYPE_
TIMESTAMP
;
pSqlExpr
->
tokenId
=
TK_TIMESTAMP
;
pSqlExpr
->
tokenId
=
TK_TIMESTAMP
;
pSqlExpr
->
type
=
SQL_NODE_VALUE
;
pSqlExpr
->
type
=
SQL_NODE_VALUE
;
}
else
if
(
optrType
==
TK_AS
)
{
}
else
if
(
optrType
==
TK_AS
)
{
...
...
src/query/src/sql.c
浏览文件 @
e6058244
...
@@ -100,30 +100,30 @@
...
@@ -100,30 +100,30 @@
#endif
#endif
/************* Begin control #defines *****************************************/
/************* Begin control #defines *****************************************/
#define YYCODETYPE unsigned short int
#define YYCODETYPE unsigned short int
#define YYNOCODE 2
89
#define YYNOCODE 2
90
#define YYACTIONTYPE unsigned short int
#define YYACTIONTYPE unsigned short int
#define ParseTOKENTYPE SStrToken
#define ParseTOKENTYPE SStrToken
typedef
union
{
typedef
union
{
int
yyinit
;
int
yyinit
;
ParseTOKENTYPE
yy0
;
ParseTOKENTYPE
yy0
;
SR
angeVal
yy22
;
SR
elationInfo
*
yy84
;
S
CreatedTableInfo
yy34
;
S
Array
*
yy161
;
tVariant
yy54
;
SSessionWindowVal
yy219
;
int64_t
yy55
;
TAOS_FIELD
yy223
;
S
IntervalVal
yy102
;
S
CreateAcctInfo
yy231
;
SS
essionWindowVal
yy115
;
SS
qlNode
*
yy276
;
S
SqlNode
*
yy16
0
;
S
IntervalVal
yy30
0
;
SCreate
AcctInfo
yy205
;
SCreate
DbInfo
yy302
;
S
Array
*
yy209
;
S
CreatedTableInfo
yy356
;
SWindowStateVal
yy290
;
int64_t
yy369
;
int
yy332
;
SLimitVal
yy394
;
TAOS_FIELD
yy369
;
SRangeVal
yy420
;
int
32_t
yy380
;
int
yy452
;
SCreateTableSql
*
yy4
04
;
SCreateTableSql
*
yy4
62
;
SRelationInfo
*
yy53
0
;
int32_t
yy52
0
;
SLimitVal
yy534
;
tVariant
yy526
;
SCreateDbInfo
yy560
;
tSqlExpr
*
yy546
;
tSqlExpr
*
yy574
;
SWindowStateVal
yy548
;
}
YYMINORTYPE
;
}
YYMINORTYPE
;
#ifndef YYSTACKDEPTH
#ifndef YYSTACKDEPTH
#define YYSTACKDEPTH 100
#define YYSTACKDEPTH 100
...
@@ -140,16 +140,17 @@ typedef union {
...
@@ -140,16 +140,17 @@ typedef union {
#define ParseCTX_STORE
#define ParseCTX_STORE
#define YYFALLBACK 1
#define YYFALLBACK 1
#define YYNSTATE 398
#define YYNSTATE 398
#define YYNRULE 319
#define YYNRULE 320
#define YYNTOKEN 203
#define YYNRULE_WITH_ACTION 320
#define YYNTOKEN 204
#define YY_MAX_SHIFT 397
#define YY_MAX_SHIFT 397
#define YY_MIN_SHIFTREDUCE 62
4
#define YY_MIN_SHIFTREDUCE 62
5
#define YY_MAX_SHIFTREDUCE 94
2
#define YY_MAX_SHIFTREDUCE 94
4
#define YY_ERROR_ACTION 94
3
#define YY_ERROR_ACTION 94
5
#define YY_ACCEPT_ACTION 94
4
#define YY_ACCEPT_ACTION 94
6
#define YY_NO_ACTION 94
5
#define YY_NO_ACTION 94
7
#define YY_MIN_REDUCE 94
6
#define YY_MIN_REDUCE 94
8
#define YY_MAX_REDUCE 126
4
#define YY_MAX_REDUCE 126
7
/************* End control #defines *******************************************/
/************* End control #defines *******************************************/
#define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))
#define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))
...
@@ -216,318 +217,318 @@ typedef union {
...
@@ -216,318 +217,318 @@ typedef union {
** yy_default[] Default action for each state.
** yy_default[] Default action for each state.
**
**
*********** Begin parsing tables **********************************************/
*********** Begin parsing tables **********************************************/
#define YY_ACTTAB_COUNT (86
4
)
#define YY_ACTTAB_COUNT (86
5
)
static
const
YYACTIONTYPE
yy_action
[]
=
{
static
const
YYACTIONTYPE
yy_action
[]
=
{
/* 0 */
105
,
67
5
,
1095
,
1129
,
944
,
397
,
262
,
759
,
675
,
676
,
/* 0 */
105
,
67
6
,
1097
,
1131
,
946
,
397
,
262
,
760
,
676
,
677
,
/* 10 */
118
1
,
711
,
1182
,
314
,
37
,
38
,
676
,
41
,
42
,
396
,
/* 10 */
118
3
,
712
,
1184
,
314
,
37
,
38
,
677
,
41
,
42
,
396
,
/* 20 */
243
,
265
,
31
,
30
,
29
,
108
7
,
163
,
40
,
347
,
45
,
/* 20 */
243
,
265
,
31
,
30
,
29
,
108
9
,
163
,
40
,
347
,
45
,
/* 30 */
43
,
46
,
44
,
108
4
,
1085
,
55
,
1088
,
36
,
35
,
372
,
/* 30 */
43
,
46
,
44
,
108
6
,
1087
,
55
,
1090
,
36
,
35
,
372
,
/* 40 */
371
,
34
,
33
,
32
,
37
,
38
,
252
,
41
,
42
,
258
,
/* 40 */
371
,
34
,
33
,
32
,
37
,
38
,
252
,
41
,
42
,
258
,
/* 50 */
85
,
265
,
31
,
30
,
29
,
24
,
112
0
,
40
,
347
,
45
,
/* 50 */
85
,
265
,
31
,
30
,
29
,
24
,
112
2
,
40
,
347
,
45
,
/* 60 */
43
,
46
,
44
,
318
,
100
,
12
38
,
99
,
36
,
35
,
218
,
/* 60 */
43
,
46
,
44
,
318
,
100
,
12
41
,
99
,
36
,
35
,
218
,
/* 70 */
214
,
34
,
33
,
32
,
288
,
112
6
,
131
,
125
,
136
,
1238
,
/* 70 */
214
,
34
,
33
,
32
,
288
,
112
8
,
131
,
125
,
136
,
1241
,
/* 80 */
12
38
,
1240
,
1241
,
135
,
1086
,
141
,
144
,
134
,
37
,
38
,
/* 80 */
12
41
,
1243
,
1244
,
135
,
1088
,
141
,
144
,
134
,
37
,
38
,
/* 90 */
88
,
41
,
42
,
51
,
138
,
265
,
31
,
30
,
29
,
295
,
/* 90 */
88
,
41
,
42
,
51
,
138
,
265
,
31
,
30
,
29
,
295
,
/* 100 */
294
,
40
,
347
,
45
,
43
,
46
,
44
,
343
,
34
,
33
,
/* 100 */
294
,
40
,
347
,
45
,
43
,
46
,
44
,
343
,
34
,
33
,
/* 110 */
32
,
36
,
35
,
343
,
216
,
34
,
33
,
32
,
37
,
38
,
/* 110 */
32
,
36
,
35
,
343
,
216
,
34
,
33
,
32
,
37
,
38
,
/* 120 */
58
,
41
,
42
,
59
,
12
38
,
265
,
31
,
30
,
29
,
275
,
/* 120 */
58
,
41
,
42
,
59
,
12
41
,
265
,
31
,
30
,
29
,
275
,
/* 130 */
67
5
,
40
,
347
,
45
,
43
,
46
,
44
,
879
,
676
,
882
,
/* 130 */
67
6
,
40
,
347
,
45
,
43
,
46
,
44
,
880
,
677
,
883
,
/* 140 */
185
,
36
,
35
,
67
5
,
217
,
34
,
33
,
32
,
13
,
37
,
/* 140 */
185
,
36
,
35
,
67
6
,
217
,
34
,
33
,
32
,
13
,
37
,
/* 150 */
39
,
67
6
,
41
,
42
,
1238
,
382
,
265
,
31
,
30
,
29
,
/* 150 */
39
,
67
7
,
41
,
42
,
1241
,
382
,
265
,
31
,
30
,
29
,
/* 160 */
280
,
873
,
40
,
347
,
45
,
43
,
46
,
44
,
245
,
284
,
/* 160 */
1106
,
874
,
40
,
347
,
45
,
43
,
46
,
44
,
245
,
395
,
/* 170 */
283
,
1104
,
36
,
35
,
59
,
1102
,
34
,
33
,
32
,
209
,
/* 170 */
393
,
653
,
36
,
35
,
59
,
1104
,
34
,
33
,
32
,
209
,
/* 180 */
207
,
205
,
107
,
86
,
390
,
103
2
,
204
,
151
,
150
,
149
,
/* 180 */
207
,
205
,
107
,
86
,
390
,
103
4
,
204
,
151
,
150
,
149
,
/* 190 */
148
,
62
5
,
626
,
627
,
628
,
629
,
630
,
631
,
632
,
633
,
/* 190 */
148
,
62
6
,
627
,
628
,
629
,
630
,
631
,
632
,
633
,
634
,
/* 200 */
63
4
,
635
,
636
,
637
,
638
,
160
,
250
,
244
,
38
,
1260
,
/* 200 */
63
5
,
636
,
637
,
638
,
639
,
160
,
250
,
244
,
38
,
1263
,
/* 210 */
41
,
42
,
1252
,
1105
,
265
,
31
,
30
,
29
,
289
,
255
,
/* 210 */
41
,
42
,
345
,
1107
,
265
,
31
,
30
,
29
,
280
,
255
,
/* 220 */
40
,
347
,
45
,
43
,
46
,
44
,
110
2
,
395
,
393
,
652
,
/* 220 */
40
,
347
,
45
,
43
,
46
,
44
,
110
4
,
284
,
283
,
317
,
/* 230 */
36
,
35
,
60
,
25
7
,
34
,
33
,
32
,
223
,
41
,
42
,
/* 230 */
36
,
35
,
1
,
18
7
,
34
,
33
,
32
,
223
,
41
,
42
,
/* 240 */
1105
,
178
,
265
,
31
,
30
,
29
,
59
,
1238
,
40
,
347
,
/* 240 */
268
,
178
,
265
,
31
,
30
,
29
,
1255
,
1241
,
40
,
347
,
/* 250 */
45
,
43
,
46
,
44
,
159
,
157
,
156
,
886
,
36
,
35
,
/* 250 */
45
,
43
,
46
,
44
,
879
,
296
,
882
,
888
,
36
,
35
,
/* 260 */
304
,
94
,
34
,
33
,
32
,
67
,
341
,
389
,
388
,
340
,
/* 260 */
304
,
94
,
34
,
33
,
32
,
67
,
341
,
389
,
388
,
340
,
/* 270 */
339
,
338
,
387
,
337
,
336
,
335
,
386
,
334
,
385
,
384
,
/* 270 */
339
,
338
,
387
,
337
,
336
,
335
,
386
,
334
,
385
,
384
,
/* 280 */
25
,
1063
,
1051
,
1052
,
1053
,
1054
,
1055
,
1056
,
1057
,
1058
,
/* 280 */
25
,
59
,
1065
,
1053
,
1054
,
1055
,
1056
,
1057
,
1058
,
1059
,
/* 290 */
10
59
,
1060
,
1061
,
1062
,
1064
,
1065
,
802
,
222
,
1101
,
237
,
/* 290 */
10
60
,
1061
,
1062
,
1063
,
1064
,
1066
,
1067
,
222
,
224
,
237
,
/* 300 */
8
88
,
68
,
296
,
877
,
230
,
880
,
878
,
883
,
881
,
108
,
/* 300 */
8
90
,
68
,
297
,
878
,
230
,
881
,
352
,
884
,
1241
,
1122
,
/* 310 */
147
,
146
,
145
,
229
,
224
,
237
,
888
,
355
,
94
,
877
,
/* 310 */
147
,
146
,
145
,
229
,
181
,
237
,
890
,
355
,
94
,
878
,
/* 320 */
2
59
,
880
,
275
,
883
,
1238
,
10
,
59
,
1105
,
261
,
45
,
/* 320 */
2
69
,
881
,
267
,
884
,
358
,
357
,
256
,
246
,
59
,
45
,
/* 330 */
43
,
46
,
44
,
186
,
225
,
241
,
242
,
36
,
35
,
349
,
/* 330 */
43
,
46
,
44
,
1104
,
225
,
241
,
242
,
36
,
35
,
349
,
/* 340 */
1230
,
34
,
33
,
32
,
1238
,
1089
,
5
,
62
,
189
,
297
,
/* 340 */
261
,
34
,
33
,
32
,
1241
,
59
,
5
,
62
,
189
,
1194
,
/* 350 */
1
238
,
241
,
242
,
188
,
114
,
119
,
110
,
118
,
68
,
787
,
/* 350 */
1
122
,
241
,
242
,
188
,
114
,
119
,
110
,
118
,
68
,
788
,
/* 360 */
1229
,
268
,
784
,
1228
,
785
,
239
,
786
,
274
,
1192
,
240
,
/* 360 */
274
,
1233
,
785
,
257
,
786
,
108
,
787
,
266
,
247
,
1232
,
/* 370 */
1
238
,
256
,
330
,
1238
,
67
,
1238
,
389
,
388
,
1102
,
1238
,
/* 370 */
1
107
,
1241
,
330
,
359
,
889
,
67
,
1193
,
389
,
388
,
1241
,
/* 380 */
287
,
387
,
84
,
1120
,
47
,
386
,
821
,
385
,
384
,
238
,
/* 380 */
1104
,
287
,
387
,
84
,
47
,
285
,
386
,
822
,
385
,
384
,
/* 390 */
824
,
266
,
218
,
346
,
270
,
271
,
1071
,
103
,
1069
,
1070
,
/* 390 */
238
,
825
,
1231
,
346
,
270
,
271
,
1073
,
1103
,
1071
,
1072
,
/* 400 */
47
,
246
,
1238
,
1072
,
1241
,
833
,
834
,
1073
,
59
,
1074
,
/* 400 */
47
,
1091
,
1241
,
1074
,
218
,
59
,
59
,
1075
,
59
,
1076
,
/* 410 */
107
5
,
59
,
89
,
853
,
59
,
345
,
59
,
59
,
300
,
301
,
/* 410 */
107
7
,
59
,
161
,
895
,
1241
,
345
,
1244
,
239
,
79
,
300
,
/* 420 */
805
,
889
,
884
,
885
,
36
,
35
,
887
,
59
,
34
,
33
,
/* 420 */
301
,
891
,
885
,
887
,
36
,
35
,
59
,
1241
,
34
,
33
,
/* 430 */
32
,
59
,
264
,
220
,
1179
,
830
,
1180
,
889
,
884
,
885
,
/* 430 */
32
,
218
,
264
,
159
,
157
,
156
,
133
,
891
,
885
,
887
,
/* 440 */
2
69
,
59
,
267
,
1238
,
358
,
357
,
276
,
221
,
273
,
165
,
/* 440 */
2
76
,
1241
,
273
,
1244
,
367
,
366
,
886
,
59
,
382
,
59
,
/* 450 */
36
7
,
366
,
1120
,
359
,
6
,
218
,
360
,
1238
,
1191
,
361
,
/* 450 */
36
0
,
361
,
806
,
362
,
6
,
240
,
368
,
1104
,
1104
,
220
,
/* 460 */
110
2
,
362
,
368
,
1102
,
352
,
1238
,
1102
,
1241
,
1102
,
1102
,
/* 460 */
110
4
,
80
,
886
,
1104
,
221
,
1241
,
226
,
219
,
275
,
1241
,
/* 470 */
247
,
275
,
369
,
852
,
226
,
219
,
370
,
227
,
228
,
1102
,
/* 470 */
854
,
369
,
227
,
228
,
1241
,
232
,
1241
,
1241
,
1104
,
186
,
/* 480 */
78
8
,
272
,
348
,
1102
,
1238
,
1238
,
374
,
1238
,
1238
,
275
,
/* 480 */
78
9
,
272
,
1241
,
1241
,
91
,
1241
,
233
,
92
,
234
,
275
,
/* 490 */
994
,
232
,
233
,
1102
,
234
,
91
,
231
,
199
,
133
,
215
,
/* 490 */
259
,
275
,
370
,
231
,
374
,
215
,
1241
,
1107
,
1241
,
1104
,
/* 500 */
1103
,
1238
,
1238
,
76
,
1238
,
248
,
1238
,
1004
,
809
,
1238
,
/* 500 */
348
,
1104
,
1105
,
1241
,
996
,
1241
,
248
,
834
,
835
,
1006
,
/* 510 */
382
,
102
,
92
,
101
,
199
,
995
,
1
,
187
,
3
,
200
,
/* 510 */
1181
,
199
,
1182
,
102
,
997
,
101
,
199
,
103
,
3
,
200
,
/* 520 */
2
99
,
298
,
199
,
840
,
841
,
345
,
769
,
79
,
263
,
32
2
,
/* 520 */
2
89
,
199
,
803
,
831
,
291
,
299
,
298
,
291
,
841
,
84
2
,
/* 530 */
771
,
324
,
770
,
54
,
351
,
291
,
917
,
71
,
48
,
890
,
/* 530 */
853
,
76
,
89
,
770
,
60
,
322
,
772
,
165
,
324
,
771
,
/* 540 */
60
,
674
,
317
,
60
,
71
,
106
,
71
,
15
,
77
,
14
,
/* 540 */
810
,
54
,
71
,
48
,
919
,
892
,
351
,
60
,
263
,
60
,
/* 550 */
9
,
83
,
291
,
9
,
285
,
9
,
350
,
124
,
17
,
123
,
/* 550 */
71
,
10
,
106
,
71
,
15
,
675
,
14
,
83
,
9
,
9
,
/* 560 */
16
,
794
,
792
,
795
,
793
,
19
,
325
,
18
,
876
,
253
,
/* 560 */
124
,
17
,
123
,
16
,
795
,
793
,
796
,
794
,
350
,
9
,
/* 570 */
80
,
893
,
364
,
363
,
130
,
21
,
129
,
20
,
143
,
142
,
/* 570 */
364
,
363
,
253
,
19
,
325
,
18
,
77
,
130
,
21
,
129
,
/* 580 */
1188
,
1187
,
254
,
758
,
181
,
373
,
26
,
161
,
162
,
1100
,
/* 580 */
20
,
143
,
142
,
1190
,
1189
,
254
,
373
,
162
,
877
,
759
,
/* 590 */
11
28
,
1139
,
1171
,
1136
,
1137
,
1141
,
1121
,
292
,
164
,
169
,
/* 590 */
11
02
,
1130
,
26
,
1173
,
1141
,
1138
,
1172
,
1139
,
1123
,
292
,
/* 600 */
11
70
,
310
,
1169
,
1168
,
180
,
1096
,
182
,
158
,
1094
,
183
,
/* 600 */
11
43
,
164
,
169
,
1098
,
310
,
1171
,
1170
,
180
,
182
,
1096
,
/* 610 */
303
,
820
,
184
,
171
,
1009
,
327
,
328
,
329
,
24
9
,
332
,
/* 610 */
183
,
184
,
1011
,
158
,
821
,
327
,
328
,
303
,
32
9
,
332
,
/* 620 */
333
,
172
,
69
,
212
,
65
,
344
,
1003
,
305
,
1118
,
356
,
/* 620 */
333
,
69
,
212
,
65
,
344
,
1005
,
249
,
170
,
356
,
1262
,
/* 630 */
170
,
307
,
1259
,
121
,
1258
,
1255
,
190
,
365
,
1251
,
127
,
/* 630 */
305
,
307
,
121
,
1261
,
1258
,
190
,
81
,
365
,
1254
,
1120
,
/* 640 */
1250
,
81
,
78
,
1247
,
319
,
191
,
1029
,
28
,
315
,
313
,
/* 640 */
127
,
1253
,
78
,
1250
,
191
,
1031
,
66
,
319
,
171
,
61
,
/* 650 */
311
,
66
,
309
,
306
,
302
,
61
,
70
,
176
,
213
,
173
,
/* 650 */
70
,
213
,
28
,
993
,
315
,
173
,
137
,
309
,
313
,
991
,
/* 660 */
991
,
137
,
989
,
139
,
140
,
987
,
986
,
277
,
202
,
203
,
/* 660 */
139
,
311
,
140
,
172
,
306
,
989
,
988
,
277
,
202
,
203
,
/* 670 */
87
,
983
,
982
,
981
,
980
,
979
,
978
,
977
,
206
,
208
,
/* 670 */
985
,
984
,
983
,
982
,
302
,
981
,
980
,
27
,
979
,
206
,
/* 680 */
969
,
210
,
966
,
27
,
211
,
962
,
331
,
383
,
290
,
1098
,
/* 680 */
208
,
971
,
210
,
968
,
211
,
964
,
87
,
331
,
290
,
1100
,
/* 690 */
132
,
90
,
95
,
375
,
308
,
376
,
377
,
378
,
379
,
380
,
/* 690 */
90
,
95
,
308
,
383
,
376
,
132
,
375
,
377
,
378
,
379
,
/* 700 */
381
,
82
,
260
,
391
,
942
,
278
,
326
,
279
,
941
,
281
,
/* 700 */
82
,
380
,
381
,
260
,
391
,
944
,
326
,
279
,
943
,
282
,
/* 710 */
282
,
235
,
940
,
923
,
922
,
286
,
115
,
1008
,
1007
,
236
,
/* 710 */
942
,
278
,
235
,
236
,
281
,
925
,
924
,
115
,
1010
,
1009
,
/* 720 */
321
,
116
,
291
,
11
,
93
,
797
,
293
,
52
,
96
,
829
,
/* 720 */
116
,
286
,
321
,
291
,
11
,
293
,
987
,
93
,
798
,
52
,
/* 730 */
74
,
985
,
827
,
984
,
823
,
193
,
1030
,
194
,
152
,
192
,
/* 730 */
96
,
830
,
986
,
193
,
1032
,
194
,
195
,
192
,
196
,
198
,
/* 740 */
1
53
,
196
,
195
,
197
,
198
,
976
,
1067
,
320
,
154
,
975
,
/* 740 */
1
97
,
152
,
828
,
153
,
978
,
977
,
320
,
1069
,
154
,
1033
,
/* 750 */
4
,
968
,
179
,
177
,
53
,
174
,
175
,
1031
,
155
,
967
,
/* 750 */
155
,
74
,
176
,
174
,
175
,
177
,
970
,
53
,
179
,
969
,
/* 760 */
2
,
826
,
822
,
75
,
168
,
831
,
1077
,
166
,
251
,
842
,
/* 760 */
1079
,
2
,
4
,
824
,
823
,
75
,
166
,
827
,
832
,
843
,
/* 770 */
167
,
63
,
836
,
97
,
22
,
838
,
98
,
312
,
350
,
316
,
/* 770 */
167
,
168
,
837
,
97
,
251
,
839
,
98
,
312
,
63
,
350
,
/* 780 */
64
,
12
,
23
,
104
,
49
,
323
,
50
,
107
,
109
,
112
,
/* 780 */
316
,
12
,
104
,
49
,
22
,
23
,
323
,
64
,
107
,
109
,
/* 790 */
689
,
724
,
56
,
722
,
111
,
721
,
720
,
718
,
717
,
57
,
/* 790 */
56
,
111
,
50
,
112
,
690
,
725
,
723
,
722
,
721
,
57
,
/* 800 */
113
,
71
6
,
713
,
679
,
117
,
342
,
7
,
914
,
912
,
915
,
/* 800 */
113
,
71
9
,
718
,
717
,
714
,
680
,
342
,
117
,
7
,
916
,
/* 810 */
892
,
891
,
913
,
8
,
353
,
894
,
354
,
60
,
72
,
120
,
/* 810 */
914
,
894
,
917
,
893
,
915
,
8
,
896
,
354
,
120
,
72
,
/* 820 */
761
,
791
,
122
,
73
,
760
,
126
,
128
,
757
,
705
,
703
,
/* 820 */
122
,
60
,
353
,
792
,
73
,
762
,
126
,
128
,
761
,
758
,
/* 830 */
695
,
701
,
697
,
699
,
790
,
693
,
691
,
727
,
726
,
725
,
/* 830 */
706
,
704
,
696
,
702
,
791
,
698
,
700
,
694
,
692
,
728
,
/* 840 */
72
3
,
719
,
715
,
714
,
201
,
677
,
946
,
642
,
651
,
649
,
/* 840 */
72
7
,
726
,
724
,
720
,
716
,
715
,
201
,
643
,
948
,
678
,
/* 850 */
945
,
392
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 850 */
652
,
392
,
650
,
947
,
947
,
947
,
947
,
947
,
947
,
947
,
/* 860 */
94
5
,
945
,
945
,
394
,
/* 860 */
94
7
,
947
,
947
,
947
,
394
,
};
};
static
const
YYCODETYPE
yy_lookahead
[]
=
{
static
const
YYCODETYPE
yy_lookahead
[]
=
{
/* 0 */
21
3
,
1
,
205
,
205
,
203
,
204
,
212
,
5
,
1
,
9
,
/* 0 */
21
4
,
1
,
206
,
206
,
204
,
205
,
213
,
5
,
1
,
9
,
/* 10 */
28
4
,
5
,
286
,
287
,
14
,
15
,
9
,
17
,
18
,
205
,
/* 10 */
28
5
,
5
,
287
,
288
,
14
,
15
,
9
,
17
,
18
,
206
,
/* 20 */
20
6
,
21
,
22
,
23
,
24
,
0
,
205
,
27
,
28
,
29
,
/* 20 */
20
7
,
21
,
22
,
23
,
24
,
0
,
206
,
27
,
28
,
29
,
/* 30 */
30
,
31
,
32
,
24
6
,
247
,
248
,
249
,
37
,
38
,
37
,
/* 30 */
30
,
31
,
32
,
24
7
,
248
,
249
,
250
,
37
,
38
,
37
,
/* 40 */
38
,
41
,
42
,
43
,
14
,
15
,
1
,
17
,
18
,
25
2
,
/* 40 */
38
,
41
,
42
,
43
,
14
,
15
,
1
,
17
,
18
,
25
3
,
/* 50 */
21
3
,
21
,
22
,
23
,
24
,
276
,
255
,
27
,
28
,
29
,
/* 50 */
21
4
,
21
,
22
,
23
,
24
,
277
,
256
,
27
,
28
,
29
,
/* 60 */
30
,
31
,
32
,
28
3
,
284
,
286
,
286
,
37
,
38
,
276
,
/* 60 */
30
,
31
,
32
,
28
4
,
285
,
287
,
287
,
37
,
38
,
277
,
/* 70 */
27
6
,
41
,
42
,
43
,
273
,
277
,
66
,
67
,
68
,
286
,
/* 70 */
27
7
,
41
,
42
,
43
,
274
,
278
,
66
,
67
,
68
,
287
,
/* 80 */
28
6
,
288
,
288
,
73
,
247
,
75
,
76
,
77
,
14
,
15
,
/* 80 */
28
7
,
289
,
289
,
73
,
248
,
75
,
76
,
77
,
14
,
15
,
/* 90 */
90
,
17
,
18
,
86
,
84
,
21
,
22
,
23
,
24
,
27
8
,
/* 90 */
90
,
17
,
18
,
86
,
84
,
21
,
22
,
23
,
24
,
27
9
,
/* 100 */
2
79
,
27
,
28
,
29
,
30
,
31
,
32
,
88
,
41
,
42
,
/* 100 */
2
80
,
27
,
28
,
29
,
30
,
31
,
32
,
88
,
41
,
42
,
/* 110 */
43
,
37
,
38
,
88
,
27
6
,
41
,
42
,
43
,
14
,
15
,
/* 110 */
43
,
37
,
38
,
88
,
27
7
,
41
,
42
,
43
,
14
,
15
,
/* 120 */
90
,
17
,
18
,
20
5
,
286
,
21
,
22
,
23
,
24
,
205
,
/* 120 */
90
,
17
,
18
,
20
6
,
287
,
21
,
22
,
23
,
24
,
206
,
/* 130 */
1
,
27
,
28
,
29
,
30
,
31
,
32
,
5
,
9
,
7
,
/* 130 */
1
,
27
,
28
,
29
,
30
,
31
,
32
,
5
,
9
,
7
,
/* 140 */
21
6
,
37
,
38
,
1
,
276
,
41
,
42
,
43
,
86
,
14
,
/* 140 */
21
7
,
37
,
38
,
1
,
277
,
41
,
42
,
43
,
86
,
14
,
/* 150 */
15
,
9
,
17
,
18
,
28
6
,
94
,
21
,
22
,
23
,
24
,
/* 150 */
15
,
9
,
17
,
18
,
28
7
,
94
,
21
,
22
,
23
,
24
,
/* 160 */
149
,
87
,
27
,
28
,
29
,
30
,
31
,
32
,
250
,
158
,
/* 160 */
259
,
87
,
27
,
28
,
29
,
30
,
31
,
32
,
251
,
69
,
/* 170 */
159
,
258
,
37
,
38
,
205
,
257
,
41
,
42
,
43
,
66
,
/* 170 */
70
,
71
,
37
,
38
,
206
,
258
,
41
,
42
,
43
,
66
,
/* 180 */
67
,
68
,
120
,
121
,
22
7
,
228
,
73
,
74
,
75
,
76
,
/* 180 */
67
,
68
,
120
,
121
,
22
8
,
229
,
73
,
74
,
75
,
76
,
/* 190 */
77
,
49
,
50
,
51
,
52
,
53
,
54
,
55
,
56
,
57
,
/* 190 */
77
,
49
,
50
,
51
,
52
,
53
,
54
,
55
,
56
,
57
,
/* 200 */
58
,
59
,
60
,
61
,
62
,
63
,
25
1
,
65
,
15
,
258
,
/* 200 */
58
,
59
,
60
,
61
,
62
,
63
,
25
2
,
65
,
15
,
259
,
/* 210 */
17
,
18
,
258
,
258
,
21
,
22
,
23
,
24
,
87
,
250
,
/* 210 */
17
,
18
,
47
,
259
,
21
,
22
,
23
,
24
,
150
,
251
,
/* 220 */
27
,
28
,
29
,
30
,
31
,
32
,
25
7
,
69
,
70
,
71
,
/* 220 */
27
,
28
,
29
,
30
,
31
,
32
,
25
8
,
159
,
160
,
64
,
/* 230 */
37
,
38
,
101
,
251
,
41
,
42
,
43
,
276
,
17
,
18
,
/* 230 */
37
,
38
,
215
,
216
,
41
,
42
,
43
,
277
,
17
,
18
,
/* 240 */
258
,
263
,
21
,
22
,
23
,
24
,
205
,
286
,
27
,
28
,
/* 240 */
72
,
264
,
21
,
22
,
23
,
24
,
259
,
287
,
27
,
28
,
/* 250 */
29
,
30
,
31
,
32
,
66
,
67
,
68
,
125
,
37
,
38
,
/* 250 */
29
,
30
,
31
,
32
,
5
,
282
,
7
,
125
,
37
,
38
,
/* 260 */
28
2
,
86
,
41
,
42
,
43
,
102
,
103
,
104
,
105
,
106
,
/* 260 */
28
3
,
86
,
41
,
42
,
43
,
102
,
103
,
104
,
105
,
106
,
/* 270 */
107
,
108
,
109
,
110
,
111
,
112
,
113
,
114
,
115
,
116
,
/* 270 */
107
,
108
,
109
,
110
,
111
,
112
,
113
,
114
,
115
,
116
,
/* 280 */
48
,
2
29
,
230
,
231
,
232
,
233
,
234
,
235
,
236
,
237
,
/* 280 */
48
,
2
06
,
230
,
231
,
232
,
233
,
234
,
235
,
236
,
237
,
/* 290 */
238
,
239
,
240
,
241
,
242
,
243
,
101
,
65
,
25
7
,
1
,
/* 290 */
238
,
239
,
240
,
241
,
242
,
243
,
244
,
65
,
27
7
,
1
,
/* 300 */
2
,
126
,
28
1
,
5
,
72
,
7
,
5
,
9
,
7
,
213
,
/* 300 */
2
,
126
,
28
2
,
5
,
72
,
7
,
16
,
9
,
287
,
256
,
/* 310 */
78
,
79
,
80
,
81
,
2
76
,
1
,
2
,
85
,
86
,
5
,
/* 310 */
78
,
79
,
80
,
81
,
2
54
,
1
,
2
,
85
,
86
,
5
,
/* 320 */
251
,
7
,
205
,
9
,
286
,
130
,
205
,
258
,
212
,
29
,
/* 320 */
152
,
7
,
154
,
9
,
156
,
157
,
251
,
274
,
206
,
29
,
/* 330 */
30
,
31
,
32
,
2
16
,
276
,
37
,
38
,
37
,
38
,
41
,
/* 330 */
30
,
31
,
32
,
2
58
,
277
,
37
,
38
,
37
,
38
,
41
,
/* 340 */
2
76
,
41
,
42
,
43
,
286
,
249
,
66
,
67
,
68
,
281
,
/* 340 */
2
13
,
41
,
42
,
43
,
287
,
206
,
66
,
67
,
68
,
246
,
/* 350 */
2
8
6
,
37
,
38
,
73
,
74
,
75
,
76
,
77
,
126
,
2
,
/* 350 */
2
5
6
,
37
,
38
,
73
,
74
,
75
,
76
,
77
,
126
,
2
,
/* 360 */
276
,
72
,
5
,
276
,
7
,
276
,
9
,
72
,
245
,
276
,
/* 360 */
72
,
277
,
5
,
252
,
7
,
214
,
9
,
213
,
274
,
277
,
/* 370 */
2
86
,
250
,
92
,
286
,
102
,
286
,
104
,
105
,
257
,
286
,
/* 370 */
2
59
,
287
,
92
,
251
,
125
,
102
,
246
,
104
,
105
,
287
,
/* 380 */
148
,
109
,
150
,
255
,
86
,
113
,
5
,
115
,
116
,
157
,
/* 380 */
258
,
149
,
109
,
151
,
86
,
206
,
113
,
5
,
115
,
116
,
/* 390 */
9
,
212
,
276
,
25
,
37
,
38
,
229
,
259
,
231
,
232
,
/* 390 */
158
,
9
,
277
,
25
,
37
,
38
,
230
,
258
,
232
,
233
,
/* 400 */
86
,
2
73
,
286
,
236
,
288
,
132
,
133
,
240
,
205
,
242
,
/* 400 */
86
,
2
50
,
287
,
237
,
277
,
206
,
206
,
241
,
206
,
243
,
/* 410 */
24
3
,
205
,
274
,
80
,
205
,
47
,
205
,
205
,
37
,
38
,
/* 410 */
24
4
,
206
,
206
,
123
,
287
,
47
,
289
,
277
,
101
,
37
,
/* 420 */
41
,
123
,
124
,
125
,
37
,
38
,
125
,
205
,
41
,
42
,
/* 420 */
38
,
123
,
124
,
125
,
37
,
38
,
206
,
287
,
41
,
42
,
/* 430 */
43
,
2
05
,
64
,
276
,
284
,
87
,
286
,
123
,
124
,
125
,
/* 430 */
43
,
2
77
,
64
,
66
,
67
,
68
,
82
,
123
,
124
,
125
,
/* 440 */
15
1
,
205
,
153
,
286
,
155
,
156
,
151
,
276
,
153
,
101
,
/* 440 */
15
2
,
287
,
154
,
289
,
156
,
157
,
148
,
206
,
94
,
206
,
/* 450 */
155
,
156
,
255
,
250
,
86
,
276
,
250
,
286
,
245
,
250
,
/* 450 */
251
,
251
,
41
,
251
,
86
,
277
,
251
,
258
,
258
,
277
,
/* 460 */
25
7
,
250
,
250
,
257
,
16
,
286
,
257
,
288
,
257
,
25
7
,
/* 460 */
25
8
,
144
,
148
,
258
,
277
,
287
,
277
,
277
,
206
,
28
7
,
/* 470 */
273
,
205
,
250
,
140
,
276
,
276
,
250
,
276
,
276
,
25
7
,
/* 470 */
80
,
251
,
277
,
277
,
287
,
277
,
287
,
287
,
258
,
21
7
,
/* 480 */
123
,
124
,
2
16
,
257
,
286
,
286
,
250
,
286
,
286
,
205
,
/* 480 */
123
,
124
,
2
87
,
287
,
87
,
287
,
277
,
87
,
277
,
206
,
/* 490 */
2
11
,
276
,
276
,
257
,
276
,
87
,
276
,
218
,
82
,
276
,
/* 490 */
2
52
,
206
,
251
,
277
,
251
,
277
,
287
,
259
,
287
,
258
,
/* 500 */
21
6
,
286
,
286
,
101
,
286
,
124
,
286
,
211
,
129
,
286
,
/* 500 */
21
7
,
258
,
217
,
287
,
212
,
287
,
124
,
132
,
133
,
212
,
/* 510 */
94
,
284
,
87
,
286
,
218
,
211
,
214
,
215
,
209
,
210
,
/* 510 */
285
,
219
,
287
,
285
,
212
,
287
,
219
,
260
,
210
,
211
,
/* 520 */
37
,
38
,
218
,
87
,
87
,
47
,
87
,
101
,
1
,
87
,
/* 520 */
87
,
219
,
101
,
87
,
127
,
37
,
38
,
127
,
87
,
87
,
/* 530 */
87
,
87
,
87
,
86
,
25
,
127
,
87
,
101
,
101
,
87
,
/* 530 */
140
,
101
,
275
,
87
,
101
,
87
,
87
,
101
,
87
,
87
,
/* 540 */
1
01
,
87
,
64
,
101
,
101
,
101
,
101
,
152
,
146
,
154
,
/* 540 */
1
29
,
86
,
101
,
101
,
87
,
87
,
25
,
101
,
1
,
101
,
/* 550 */
101
,
86
,
127
,
101
,
205
,
101
,
47
,
152
,
152
,
154
,
/* 550 */
101
,
130
,
101
,
101
,
153
,
87
,
155
,
86
,
101
,
101
,
/* 560 */
15
4
,
5
,
5
,
7
,
7
,
152
,
119
,
154
,
41
,
245
,
/* 560 */
15
3
,
153
,
155
,
155
,
5
,
5
,
7
,
7
,
47
,
101
,
/* 570 */
144
,
123
,
37
,
38
,
152
,
152
,
154
,
154
,
82
,
83
,
/* 570 */
37
,
38
,
246
,
153
,
119
,
155
,
146
,
153
,
153
,
155
,
/* 580 */
245
,
245
,
245
,
118
,
253
,
245
,
275
,
205
,
205
,
205
,
/* 580 */
155
,
82
,
83
,
246
,
246
,
246
,
246
,
206
,
41
,
118
,
/* 590 */
20
5
,
205
,
285
,
205
,
205
,
205
,
255
,
255
,
205
,
205
,
/* 590 */
20
6
,
206
,
276
,
286
,
206
,
206
,
286
,
206
,
256
,
256
,
/* 600 */
2
85
,
205
,
285
,
285
,
260
,
255
,
205
,
64
,
205
,
205
,
/* 600 */
2
06
,
206
,
206
,
256
,
206
,
286
,
286
,
261
,
206
,
206
,
/* 610 */
2
80
,
125
,
205
,
270
,
205
,
205
,
205
,
205
,
280
,
205
,
/* 610 */
2
06
,
206
,
206
,
64
,
125
,
206
,
206
,
281
,
206
,
206
,
/* 620 */
20
5
,
269
,
205
,
205
,
205
,
205
,
205
,
280
,
272
,
205
,
/* 620 */
20
6
,
206
,
206
,
206
,
206
,
206
,
281
,
272
,
206
,
206
,
/* 630 */
2
71
,
280
,
205
,
205
,
205
,
205
,
205
,
205
,
205
,
205
,
/* 630 */
2
81
,
281
,
206
,
206
,
206
,
206
,
143
,
206
,
206
,
273
,
/* 640 */
20
5
,
143
,
145
,
205
,
138
,
205
,
205
,
142
,
141
,
13
6
,
/* 640 */
20
6
,
206
,
145
,
206
,
206
,
206
,
206
,
138
,
271
,
20
6
,
/* 650 */
135
,
205
,
134
,
137
,
131
,
205
,
205
,
265
,
205
,
268
,
/* 650 */
206
,
206
,
142
,
206
,
141
,
269
,
206
,
134
,
136
,
206
,
/* 660 */
20
5
,
205
,
205
,
205
,
205
,
205
,
205
,
205
,
205
,
205
,
/* 660 */
20
6
,
135
,
206
,
270
,
137
,
206
,
206
,
206
,
206
,
206
,
/* 670 */
122
,
205
,
205
,
205
,
205
,
205
,
205
,
205
,
205
,
205
,
/* 670 */
206
,
206
,
206
,
206
,
131
,
206
,
206
,
147
,
206
,
206
,
/* 680 */
20
5
,
205
,
205
,
147
,
205
,
205
,
93
,
117
,
207
,
207
,
/* 680 */
20
6
,
206
,
206
,
206
,
206
,
206
,
122
,
93
,
208
,
208
,
/* 690 */
100
,
207
,
207
,
99
,
207
,
55
,
96
,
98
,
59
,
97
,
/* 690 */
208
,
208
,
208
,
117
,
55
,
100
,
99
,
96
,
98
,
59
,
/* 700 */
95
,
207
,
207
,
88
,
5
,
160
,
207
,
5
,
5
,
160
,
/* 700 */
208
,
97
,
95
,
208
,
88
,
5
,
208
,
5
,
5
,
5
,
/* 710 */
5
,
207
,
5
,
104
,
103
,
149
,
213
,
217
,
217
,
207
,
/* 710 */
5
,
161
,
208
,
208
,
161
,
104
,
103
,
214
,
218
,
218
,
/* 720 */
119
,
213
,
127
,
86
,
128
,
87
,
101
,
86
,
101
,
87
,
/* 720 */
214
,
150
,
119
,
127
,
86
,
101
,
208
,
128
,
87
,
86
,
/* 730 */
101
,
207
,
125
,
207
,
5
,
224
,
226
,
220
,
208
,
225
,
/* 730 */
101
,
87
,
208
,
225
,
227
,
221
,
224
,
226
,
222
,
220
,
/* 740 */
2
08
,
221
,
223
,
222
,
219
,
207
,
244
,
254
,
208
,
207
,
/* 740 */
2
23
,
209
,
125
,
209
,
208
,
208
,
255
,
245
,
209
,
229
,
/* 750 */
209
,
207
,
261
,
264
,
262
,
267
,
266
,
228
,
208
,
207
,
/* 750 */
209
,
101
,
266
,
268
,
267
,
265
,
208
,
263
,
262
,
208
,
/* 760 */
2
14
,
125
,
5
,
86
,
101
,
87
,
244
,
86
,
1
,
87
,
/* 760 */
2
45
,
215
,
210
,
5
,
5
,
86
,
86
,
125
,
87
,
87
,
/* 770 */
86
,
101
,
87
,
86
,
139
,
87
,
86
,
86
,
47
,
1
,
/* 770 */
86
,
101
,
87
,
86
,
1
,
87
,
86
,
86
,
101
,
47
,
/* 780 */
101
,
86
,
139
,
90
,
86
,
119
,
86
,
120
,
82
,
74
,
/* 780 */
1
,
86
,
90
,
86
,
139
,
139
,
119
,
101
,
120
,
82
,
/* 790 */
5
,
9
,
91
,
5
,
90
,
5
,
5
,
5
,
5
,
91
,
/* 790 */
91
,
90
,
86
,
74
,
5
,
9
,
5
,
5
,
5
,
91
,
/* 800 */
90
,
5
,
5
,
89
,
82
,
16
,
86
,
9
,
9
,
9
,
/* 800 */
90
,
5
,
5
,
5
,
5
,
89
,
16
,
82
,
86
,
9
,
/* 810 */
87
,
87
,
9
,
86
,
28
,
123
,
63
,
101
,
17
,
154
,
/* 810 */
9
,
87
,
9
,
87
,
9
,
86
,
123
,
63
,
155
,
17
,
/* 820 */
5
,
125
,
154
,
17
,
5
,
154
,
154
,
87
,
5
,
5
,
/* 820 */
155
,
101
,
28
,
125
,
17
,
5
,
155
,
155
,
5
,
87
,
/* 830 */
5
,
5
,
5
,
5
,
125
,
5
,
5
,
5
,
5
,
5
,
/* 830 */
5
,
5
,
5
,
5
,
125
,
5
,
5
,
5
,
5
,
5
,
/* 840 */
5
,
5
,
5
,
5
,
101
,
89
,
0
,
64
,
9
,
9
,
/* 840 */
5
,
5
,
5
,
5
,
5
,
5
,
101
,
64
,
0
,
8
9
,
/* 850 */
289
,
22
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 850 */
9
,
22
,
9
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 860 */
2
89
,
289
,
289
,
22
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 860 */
2
90
,
290
,
290
,
290
,
22
,
290
,
290
,
290
,
290
,
290
,
/* 870 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 870 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 880 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 880 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 890 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 890 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 900 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 900 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 910 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 910 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 920 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 920 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 930 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 930 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 940 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 940 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 950 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 950 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 960 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 960 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 970 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 970 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 980 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 980 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 990 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 990 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 1000 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 1000 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 1010 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 1010 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 1020 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 1020 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 1030 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 1030 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 1040 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 1040 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 1050 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 1050 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
/* 1060 */
2
89
,
289
,
289
,
289
,
289
,
289
,
289
,
/* 1060 */
2
90
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
290
,
};
};
#define YY_SHIFT_COUNT (397)
#define YY_SHIFT_COUNT (397)
#define YY_SHIFT_MIN (0)
#define YY_SHIFT_MIN (0)
#define YY_SHIFT_MAX (84
6
)
#define YY_SHIFT_MAX (84
8
)
static
const
unsigned
short
int
yy_shift_ofst
[]
=
{
static
const
unsigned
short
int
yy_shift_ofst
[]
=
{
/* 0 */
232
,
163
,
163
,
27
2
,
272
,
19
,
298
,
314
,
314
,
314
,
/* 0 */
232
,
163
,
163
,
27
3
,
273
,
19
,
298
,
314
,
314
,
314
,
/* 10 */
7
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 10 */
7
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 20 */
129
,
129
,
45
,
45
,
0
,
142
,
314
,
314
,
314
,
314
,
/* 20 */
129
,
129
,
45
,
45
,
0
,
142
,
314
,
314
,
314
,
314
,
/* 30 */
314
,
314
,
314
,
314
,
314
,
314
,
314
,
314
,
314
,
314
,
/* 30 */
314
,
314
,
314
,
314
,
314
,
314
,
314
,
314
,
314
,
314
,
/* 40 */
314
,
314
,
314
,
314
,
314
,
314
,
314
,
314
,
357
,
357
,
/* 40 */
314
,
314
,
314
,
314
,
314
,
314
,
314
,
314
,
357
,
357
,
/* 50 */
357
,
175
,
175
,
273
,
129
,
25
,
129
,
129
,
129
,
129
,
/* 50 */
357
,
175
,
175
,
375
,
129
,
25
,
129
,
129
,
129
,
129
,
/* 60 */
129
,
416
,
19
,
45
,
45
,
61
,
61
,
6
,
864
,
864
,
/* 60 */
129
,
354
,
19
,
45
,
45
,
61
,
61
,
6
,
865
,
865
,
/* 70 */
86
4
,
357
,
357
,
357
,
381
,
381
,
2
,
2
,
2
,
2
,
/* 70 */
86
5
,
357
,
357
,
357
,
382
,
382
,
2
,
2
,
2
,
2
,
/* 80 */
2
,
2
,
62
,
2
,
129
,
129
,
129
,
129
,
129
,
379
,
/* 80 */
2
,
2
,
62
,
2
,
129
,
129
,
129
,
129
,
129
,
411
,
/* 90 */
129
,
129
,
129
,
175
,
175
,
129
,
129
,
129
,
129
,
3
33
,
/* 90 */
129
,
129
,
129
,
175
,
175
,
129
,
129
,
129
,
129
,
3
90
,
/* 100 */
3
33
,
333
,
333
,
195
,
175
,
129
,
129
,
129
,
129
,
129
,
/* 100 */
3
90
,
390
,
390
,
421
,
175
,
129
,
129
,
129
,
129
,
129
,
/* 110 */
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 110 */
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 120 */
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 120 */
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 130 */
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 130 */
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 140 */
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 140 */
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 150 */
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 150 */
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
129
,
/* 160 */
129
,
54
3
,
543
,
543
,
543
,
486
,
486
,
486
,
486
,
543
,
/* 160 */
129
,
54
9
,
549
,
549
,
549
,
489
,
489
,
489
,
489
,
549
,
/* 170 */
49
8
,
497
,
506
,
505
,
507
,
513
,
515
,
518
,
516
,
52
3
,
/* 170 */
49
3
,
497
,
509
,
510
,
513
,
522
,
526
,
523
,
527
,
54
3
,
/* 180 */
53
6
,
548
,
543
,
543
,
543
,
593
,
593
,
570
,
19
,
19
,
/* 180 */
53
0
,
564
,
549
,
549
,
549
,
594
,
594
,
576
,
19
,
19
,
/* 190 */
54
3
,
543
,
590
,
594
,
640
,
600
,
599
,
639
,
602
,
605
,
/* 190 */
54
9
,
549
,
595
,
597
,
639
,
601
,
600
,
640
,
604
,
607
,
/* 200 */
57
0
,
6
,
543
,
543
,
615
,
615
,
543
,
615
,
543
,
615
,
/* 200 */
57
6
,
6
,
549
,
549
,
616
,
616
,
549
,
616
,
549
,
616
,
/* 210 */
54
3
,
543
,
864
,
864
,
30
,
74
,
104
,
104
,
104
,
135
,
/* 210 */
54
9
,
549
,
865
,
865
,
30
,
74
,
104
,
104
,
104
,
135
,
/* 220 */
193
,
221
,
280
,
300
,
300
,
300
,
300
,
300
,
300
,
10
,
/* 220 */
193
,
221
,
280
,
300
,
300
,
300
,
300
,
300
,
300
,
10
,
/* 230 */
113
,
387
,
387
,
387
,
387
,
289
,
295
,
368
,
11
,
67
,
/* 230 */
113
,
387
,
387
,
387
,
387
,
168
,
288
,
368
,
68
,
67
,
/* 240 */
67
,
132
,
301
,
158
,
188
,
131
,
408
,
425
,
483
,
348
,
/* 240 */
67
,
132
,
249
,
100
,
367
,
433
,
397
,
400
,
488
,
436
,
/* 250 */
4
36
,
437
,
478
,
402
,
426
,
439
,
442
,
443
,
444
,
445
,
/* 250 */
4
41
,
442
,
165
,
430
,
317
,
446
,
448
,
449
,
451
,
452
,
/* 260 */
4
47
,
449
,
452
,
509
,
527
,
448
,
454
,
395
,
405
,
406
,
/* 260 */
4
55
,
457
,
458
,
521
,
547
,
290
,
468
,
401
,
407
,
408
,
/* 270 */
55
6
,
557
,
535
,
413
,
422
,
465
,
423
,
496
,
699
,
545
,
/* 270 */
55
9
,
560
,
533
,
420
,
424
,
471
,
425
,
499
,
700
,
550
,
/* 280 */
702
,
703
,
5
49
,
705
,
707
,
609
,
611
,
566
,
595
,
601
,
/* 280 */
702
,
703
,
5
53
,
704
,
705
,
611
,
613
,
571
,
596
,
603
,
/* 290 */
63
7
,
596
,
638
,
641
,
625
,
627
,
642
,
629
,
607
,
636
,
/* 290 */
63
8
,
599
,
641
,
643
,
624
,
629
,
644
,
650
,
617
,
642
,
/* 300 */
7
29
,
757
,
677
,
678
,
681
,
682
,
684
,
685
,
663
,
687
,
/* 300 */
7
58
,
759
,
679
,
681
,
680
,
682
,
684
,
685
,
670
,
687
,
/* 310 */
688
,
690
,
7
67
,
691
,
670
,
635
,
731
,
778
,
679
,
643
,
/* 310 */
688
,
690
,
7
73
,
691
,
677
,
645
,
732
,
779
,
686
,
646
,
/* 320 */
69
3
,
695
,
601
,
698
,
666
,
700
,
667
,
706
,
701
,
704
,
/* 320 */
69
2
,
695
,
603
,
697
,
667
,
706
,
668
,
707
,
699
,
701
,
/* 330 */
71
5
,
785
,
708
,
710
,
782
,
788
,
790
,
791
,
792
,
793
,
/* 330 */
71
9
,
789
,
708
,
710
,
786
,
791
,
792
,
793
,
796
,
797
,
/* 340 */
79
6
,
797
,
714
,
789
,
722
,
798
,
799
,
720
,
723
,
724
,
/* 340 */
79
8
,
799
,
716
,
790
,
725
,
800
,
801
,
722
,
724
,
726
,
/* 350 */
80
0
,
803
,
692
,
727
,
786
,
753
,
801
,
665
,
668
,
716
,
/* 350 */
80
3
,
805
,
693
,
729
,
794
,
754
,
802
,
663
,
665
,
720
,
/* 360 */
7
16
,
716
,
716
,
696
,
709
,
806
,
671
,
672
,
716
,
716
,
/* 360 */
7
20
,
720
,
720
,
698
,
709
,
807
,
671
,
672
,
720
,
720
,
/* 370 */
7
16
,
815
,
819
,
740
,
716
,
823
,
824
,
825
,
826
,
827
,
/* 370 */
7
20
,
820
,
823
,
742
,
720
,
825
,
826
,
827
,
828
,
830
,
/* 380 */
8
28
,
830
,
831
,
832
,
833
,
834
,
835
,
836
,
837
,
838
,
/* 380 */
8
31
,
832
,
833
,
834
,
835
,
836
,
837
,
838
,
839
,
840
,
/* 390 */
74
3
,
756
,
839
,
829
,
840
,
841
,
783
,
846
,
/* 390 */
74
5
,
760
,
841
,
829
,
843
,
842
,
783
,
848
,
};
};
#define YY_REDUCE_COUNT (213)
#define YY_REDUCE_COUNT (213)
#define YY_REDUCE_MIN (-27
4
)
#define YY_REDUCE_MIN (-27
5
)
#define YY_REDUCE_MAX (552)
#define YY_REDUCE_MAX (552)
static
const
short
yy_reduce_ofst
[]
=
{
static
const
short
yy_reduce_ofst
[]
=
{
/* 0 */
-
199
,
52
,
52
,
167
,
167
,
-
213
,
-
206
,
116
,
179
,
-
207
,
/* 0 */
-
200
,
52
,
52
,
166
,
166
,
-
214
,
-
207
,
127
,
154
,
-
208
,
/* 10 */
-
1
79
,
-
82
,
-
31
,
121
,
203
,
206
,
209
,
211
,
212
,
222
,
/* 10 */
-
1
80
,
-
83
,
-
32
,
75
,
122
,
199
,
200
,
202
,
205
,
220
,
/* 20 */
2
26
,
236
,
-
274
,
-
220
,
-
202
,
-
186
,
-
221
,
-
162
,
-
132
,
-
39
,
/* 20 */
2
41
,
243
,
-
275
,
-
221
,
-
203
,
-
187
,
-
222
,
-
163
,
-
133
,
-
40
,
/* 30 */
38
,
58
,
64
,
84
,
87
,
89
,
93
,
157
,
171
,
198
,
/* 30 */
21
,
57
,
84
,
92
,
115
,
140
,
178
,
182
,
187
,
189
,
/* 40 */
19
9
,
201
,
202
,
215
,
216
,
218
,
220
,
223
,
-
45
,
-
18
,
/* 40 */
19
0
,
195
,
196
,
198
,
209
,
211
,
216
,
218
,
-
46
,
111
,
/* 50 */
69
,
128
,
197
,
-
22
,
-
203
,
96
,
-
76
,
117
,
266
,
284
,
/* 50 */
238
,
53
,
94
,
-
23
,
-
204
,
151
,
-
77
,
262
,
283
,
285
,
/* 60 */
41
,
279
,
-
163
,
150
,
227
,
296
,
304
,
-
43
,
138
,
302
,
/* 60 */
139
,
292
,
-
164
,
225
,
228
,
297
,
302
,
-
44
,
257
,
17
,
/* 70 */
30
9
,
-
87
,
-
49
,
-
46
,
21
,
68
,
123
,
213
,
324
,
335
,
/* 70 */
30
8
,
-
99
,
-
50
,
-
13
,
-
27
,
20
,
103
,
130
,
326
,
337
,
/* 80 */
33
6
,
337
,
331
,
340
,
349
,
382
,
383
,
384
,
385
,
311
,
/* 80 */
33
8
,
339
,
60
,
340
,
179
,
206
,
381
,
384
,
385
,
316
,
/* 90 */
38
6
,
388
,
389
,
341
,
342
,
390
,
393
,
394
,
396
,
307
,
/* 90 */
38
8
,
389
,
391
,
342
,
343
,
394
,
395
,
396
,
398
,
307
,
/* 100 */
31
5
,
317
,
318
,
344
,
350
,
401
,
403
,
404
,
407
,
409
,
/* 100 */
31
0
,
319
,
320
,
346
,
347
,
402
,
403
,
404
,
405
,
406
,
/* 110 */
4
10
,
411
,
412
,
414
,
415
,
417
,
418
,
419
,
420
,
421
,
/* 110 */
4
09
,
410
,
412
,
413
,
414
,
415
,
416
,
417
,
418
,
419
,
/* 120 */
42
4
,
427
,
428
,
429
,
430
,
431
,
432
,
433
,
434
,
435
,
/* 120 */
42
2
,
423
,
426
,
427
,
428
,
429
,
431
,
432
,
434
,
435
,
/* 130 */
43
8
,
440
,
441
,
446
,
450
,
451
,
453
,
455
,
456
,
457
,
/* 130 */
43
7
,
438
,
439
,
440
,
443
,
444
,
445
,
447
,
450
,
453
,
/* 140 */
45
8
,
459
,
460
,
461
,
462
,
463
,
464
,
466
,
467
,
468
,
/* 140 */
45
4
,
456
,
459
,
460
,
461
,
462
,
463
,
464
,
465
,
466
,
/* 150 */
46
9
,
470
,
471
,
472
,
473
,
474
,
475
,
476
,
477
,
479
,
/* 150 */
46
7
,
469
,
470
,
472
,
473
,
474
,
475
,
476
,
477
,
478
,
/* 160 */
4
80
,
481
,
482
,
484
,
485
,
330
,
338
,
347
,
351
,
487
,
/* 160 */
4
79
,
480
,
481
,
482
,
483
,
336
,
345
,
349
,
350
,
484
,
/* 170 */
3
56
,
359
,
343
,
352
,
391
,
488
,
490
,
392
,
489
,
492
,
/* 170 */
3
66
,
355
,
377
,
393
,
386
,
485
,
487
,
486
,
490
,
494
,
/* 180 */
49
1
,
493
,
494
,
495
,
499
,
500
,
501
,
502
,
503
,
508
,
/* 180 */
49
6
,
491
,
492
,
495
,
498
,
500
,
501
,
502
,
503
,
506
,
/* 190 */
504
,
5
12
,
510
,
514
,
511
,
517
,
519
,
520
,
521
,
525
,
/* 190 */
504
,
5
05
,
507
,
511
,
508
,
514
,
512
,
516
,
517
,
519
,
/* 200 */
5
22
,
529
,
524
,
526
,
530
,
532
,
538
,
540
,
542
,
550
,
/* 200 */
5
15
,
520
,
518
,
524
,
532
,
534
,
536
,
539
,
537
,
541
,
/* 210 */
54
4
,
552
,
546
,
541
,
/* 210 */
54
8
,
551
,
546
,
552
,
};
};
static
const
YYACTIONTYPE
yy_default
[]
=
{
static
const
YYACTIONTYPE
yy_default
[]
=
{
/* 0 */
94
3
,
1066
,
1005
,
1076
,
992
,
1002
,
1243
,
1243
,
1243
,
1243
,
/* 0 */
94
5
,
1068
,
1007
,
1078
,
994
,
1004
,
1246
,
1246
,
1246
,
1246
,
/* 10 */
94
3
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
/* 10 */
94
5
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 20 */
94
3
,
943
,
943
,
943
,
1130
,
963
,
943
,
943
,
943
,
943
,
/* 20 */
94
5
,
945
,
945
,
945
,
1132
,
965
,
945
,
945
,
945
,
945
,
/* 30 */
94
3
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
/* 30 */
94
5
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 40 */
94
3
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
/* 40 */
94
5
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 50 */
94
3
,
943
,
943
,
1154
,
943
,
1002
,
943
,
943
,
943
,
943
,
/* 50 */
94
5
,
945
,
945
,
1156
,
945
,
1004
,
945
,
945
,
945
,
945
,
/* 60 */
94
3
,
1012
,
1002
,
943
,
943
,
1012
,
1012
,
943
,
1125
,
1050
,
/* 60 */
94
5
,
1014
,
1004
,
945
,
945
,
1014
,
1014
,
945
,
1127
,
1052
,
/* 70 */
10
68
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
/* 70 */
10
70
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 80 */
94
3
,
943
,
1097
,
943
,
943
,
943
,
943
,
943
,
943
,
1132
,
/* 80 */
94
5
,
945
,
1099
,
945
,
945
,
945
,
945
,
945
,
945
,
1134
,
/* 90 */
11
38
,
1135
,
943
,
943
,
943
,
1140
,
943
,
943
,
943
,
1176
,
/* 90 */
11
40
,
1137
,
945
,
945
,
945
,
1142
,
945
,
945
,
945
,
1178
,
/* 100 */
117
6
,
1176
,
1176
,
1123
,
943
,
943
,
943
,
943
,
943
,
943
,
/* 100 */
117
8
,
1178
,
1178
,
1125
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 110 */
94
3
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
/* 110 */
94
5
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 120 */
94
3
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
/* 120 */
94
5
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 130 */
94
3
,
943
,
943
,
943
,
943
,
943
,
943
,
990
,
943
,
988
,
/* 130 */
94
5
,
945
,
945
,
945
,
945
,
945
,
945
,
992
,
945
,
990
,
/* 140 */
94
3
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
/* 140 */
94
5
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 150 */
94
3
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
/* 150 */
94
5
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 160 */
96
1
,
965
,
965
,
965
,
965
,
943
,
943
,
943
,
943
,
965
,
/* 160 */
96
3
,
967
,
967
,
967
,
967
,
945
,
945
,
945
,
945
,
967
,
/* 170 */
118
5
,
1189
,
1166
,
1183
,
1177
,
1161
,
1159
,
1157
,
1165
,
1150
,
/* 170 */
118
7
,
1191
,
1168
,
1185
,
1179
,
1163
,
1161
,
1159
,
1167
,
1152
,
/* 180 */
119
3
,
1099
,
965
,
965
,
965
,
1010
,
1010
,
1006
,
1002
,
1002
,
/* 180 */
119
5
,
1101
,
967
,
967
,
967
,
1012
,
1012
,
1008
,
1004
,
1004
,
/* 190 */
96
5
,
965
,
1028
,
1026
,
1024
,
1016
,
1022
,
1018
,
1020
,
1014
,
/* 190 */
96
7
,
967
,
1030
,
1028
,
1026
,
1018
,
1024
,
1020
,
1022
,
1016
,
/* 200 */
99
3
,
943
,
965
,
965
,
1000
,
1000
,
965
,
1000
,
965
,
1000
,
/* 200 */
99
5
,
945
,
967
,
967
,
1002
,
1002
,
967
,
1002
,
967
,
1002
,
/* 210 */
96
5
,
965
,
1050
,
1068
,
1242
,
943
,
1194
,
1184
,
1242
,
943
,
/* 210 */
96
7
,
967
,
1052
,
1070
,
1245
,
945
,
1196
,
1186
,
1245
,
945
,
/* 220 */
122
5
,
1224
,
943
,
1233
,
1232
,
1231
,
1223
,
1222
,
1221
,
943
,
/* 220 */
122
8
,
1227
,
945
,
1236
,
1235
,
1234
,
1226
,
1225
,
1224
,
945
,
/* 230 */
94
3
,
1217
,
1220
,
1219
,
1218
,
943
,
943
,
1196
,
943
,
1227
,
/* 230 */
94
5
,
1220
,
1223
,
1222
,
1221
,
945
,
945
,
1198
,
945
,
1230
,
/* 240 */
122
6
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
1147
,
943
,
/* 240 */
122
9
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
1149
,
945
,
/* 250 */
94
3
,
943
,
1172
,
1190
,
1186
,
943
,
943
,
943
,
943
,
943
,
/* 250 */
94
5
,
945
,
1174
,
1192
,
1188
,
945
,
945
,
945
,
945
,
945
,
/* 260 */
94
3
,
943
,
943
,
1197
,
943
,
943
,
943
,
943
,
943
,
943
,
/* 260 */
94
5
,
945
,
945
,
1199
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 270 */
94
3
,
943
,
1111
,
943
,
943
,
1078
,
943
,
943
,
943
,
943
,
/* 270 */
94
5
,
945
,
1113
,
945
,
945
,
1080
,
945
,
945
,
945
,
945
,
/* 280 */
94
3
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
1122
,
943
,
/* 280 */
94
5
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
1124
,
945
,
/* 290 */
94
3
,
943
,
943
,
943
,
1134
,
1133
,
943
,
943
,
943
,
943
,
/* 290 */
94
5
,
945
,
945
,
945
,
1136
,
1135
,
945
,
945
,
945
,
945
,
/* 300 */
94
3
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
/* 300 */
94
5
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 310 */
94
3
,
943
,
943
,
943
,
1178
,
943
,
1173
,
943
,
1167
,
943
,
/* 310 */
94
5
,
945
,
945
,
945
,
1180
,
945
,
1175
,
945
,
1169
,
945
,
/* 320 */
94
3
,
943
,
1090
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
/* 320 */
94
5
,
945
,
1092
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 330 */
94
3
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
/* 330 */
94
5
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 340 */
94
3
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
/* 340 */
94
5
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 350 */
94
3
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
1261
,
/* 350 */
94
5
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
1264
,
/* 360 */
125
6
,
1257
,
1254
,
943
,
943
,
943
,
943
,
943
,
1253
,
1248
,
/* 360 */
125
9
,
1260
,
1257
,
945
,
945
,
945
,
945
,
945
,
1256
,
1251
,
/* 370 */
12
49
,
943
,
943
,
943
,
1246
,
943
,
943
,
943
,
943
,
943
,
/* 370 */
12
52
,
945
,
945
,
945
,
1249
,
945
,
945
,
945
,
945
,
945
,
/* 380 */
94
3
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
943
,
/* 380 */
94
5
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
945
,
/* 390 */
103
4
,
943
,
943
,
972
,
943
,
970
,
943
,
943
,
/* 390 */
103
6
,
945
,
945
,
974
,
945
,
972
,
945
,
945
,
};
};
/********** End of lemon-generated parsing tables *****************************/
/********** End of lemon-generated parsing tables *****************************/
...
@@ -695,6 +696,7 @@ static const YYCODETYPE yyFallback[] = {
...
@@ -695,6 +696,7 @@ static const YYCODETYPE yyFallback[] = {
0
,
/* SLIMIT => nothing */
0
,
/* SLIMIT => nothing */
0
,
/* SOFFSET => nothing */
0
,
/* SOFFSET => nothing */
0
,
/* WHERE => nothing */
0
,
/* WHERE => nothing */
1
,
/* TODAY => ID */
0
,
/* RESET => nothing */
0
,
/* RESET => nothing */
0
,
/* QUERY => nothing */
0
,
/* QUERY => nothing */
0
,
/* SYNCDB => nothing */
0
,
/* SYNCDB => nothing */
...
@@ -985,147 +987,148 @@ static const char *const yyTokenName[] = {
...
@@ -985,147 +987,148 @@ static const char *const yyTokenName[] = {
/* 145 */
"SLIMIT"
,
/* 145 */
"SLIMIT"
,
/* 146 */
"SOFFSET"
,
/* 146 */
"SOFFSET"
,
/* 147 */
"WHERE"
,
/* 147 */
"WHERE"
,
/* 148 */
"RESET"
,
/* 148 */
"TODAY"
,
/* 149 */
"QUERY"
,
/* 149 */
"RESET"
,
/* 150 */
"SYNCDB"
,
/* 150 */
"QUERY"
,
/* 151 */
"ADD"
,
/* 151 */
"SYNCDB"
,
/* 152 */
"COLUMN"
,
/* 152 */
"ADD"
,
/* 153 */
"MODIFY"
,
/* 153 */
"COLUMN"
,
/* 154 */
"TAG"
,
/* 154 */
"MODIFY"
,
/* 155 */
"CHANGE"
,
/* 155 */
"TAG"
,
/* 156 */
"SET"
,
/* 156 */
"CHANGE"
,
/* 157 */
"KILL"
,
/* 157 */
"SET"
,
/* 158 */
"CONNECTION"
,
/* 158 */
"KILL"
,
/* 159 */
"STREAM"
,
/* 159 */
"CONNECTION"
,
/* 160 */
"COLON"
,
/* 160 */
"STREAM"
,
/* 161 */
"ABORT"
,
/* 161 */
"COLON"
,
/* 162 */
"AFTER"
,
/* 162 */
"ABORT"
,
/* 163 */
"ATTACH"
,
/* 163 */
"AFTER"
,
/* 164 */
"BEFORE"
,
/* 164 */
"ATTACH"
,
/* 165 */
"BEGIN"
,
/* 165 */
"BEFORE"
,
/* 166 */
"CASCADE"
,
/* 166 */
"BEGIN"
,
/* 167 */
"CLUSTER"
,
/* 167 */
"CASCADE"
,
/* 168 */
"CONFLICT"
,
/* 168 */
"CLUSTER"
,
/* 169 */
"COPY"
,
/* 169 */
"CONFLICT"
,
/* 170 */
"DEFERRED"
,
/* 170 */
"COPY"
,
/* 171 */
"DELIMITERS"
,
/* 171 */
"DEFERRED"
,
/* 172 */
"DETACH"
,
/* 172 */
"DELIMITERS"
,
/* 173 */
"EACH"
,
/* 173 */
"DETACH"
,
/* 174 */
"END"
,
/* 174 */
"EACH"
,
/* 175 */
"EXPLAIN"
,
/* 175 */
"END"
,
/* 176 */
"FAIL"
,
/* 176 */
"EXPLAIN"
,
/* 177 */
"FOR"
,
/* 177 */
"FAIL"
,
/* 178 */
"IGNORE"
,
/* 178 */
"FOR"
,
/* 179 */
"IMMEDIATE"
,
/* 179 */
"IGNORE"
,
/* 180 */
"INITIALLY"
,
/* 180 */
"IMMEDIATE"
,
/* 181 */
"INSTEAD"
,
/* 181 */
"INITIALLY"
,
/* 182 */
"KEY"
,
/* 182 */
"INSTEAD"
,
/* 183 */
"OF"
,
/* 183 */
"KEY"
,
/* 184 */
"RAISE"
,
/* 184 */
"OF"
,
/* 185 */
"REPLACE"
,
/* 185 */
"RAISE"
,
/* 186 */
"RESTRICT"
,
/* 186 */
"REPLACE"
,
/* 187 */
"ROW"
,
/* 187 */
"RESTRICT"
,
/* 188 */
"STATEMENT"
,
/* 188 */
"ROW"
,
/* 189 */
"TRIGGER"
,
/* 189 */
"STATEMENT"
,
/* 190 */
"VIEW"
,
/* 190 */
"TRIGGER"
,
/* 191 */
"IPTOKEN"
,
/* 191 */
"VIEW"
,
/* 192 */
"SEMI"
,
/* 192 */
"IPTOKEN"
,
/* 193 */
"NONE"
,
/* 193 */
"SEMI"
,
/* 194 */
"PREV"
,
/* 194 */
"NONE"
,
/* 195 */
"LINEAR"
,
/* 195 */
"PREV"
,
/* 196 */
"IMPORT"
,
/* 196 */
"LINEAR"
,
/* 197 */
"TBNAME"
,
/* 197 */
"IMPORT"
,
/* 198 */
"JOIN"
,
/* 198 */
"TBNAME"
,
/* 199 */
"INSERT"
,
/* 199 */
"JOIN"
,
/* 200 */
"INTO"
,
/* 200 */
"INSERT"
,
/* 201 */
"VALUES"
,
/* 201 */
"INTO"
,
/* 202 */
"FILE"
,
/* 202 */
"VALUES"
,
/* 203 */
"program"
,
/* 203 */
"FILE"
,
/* 204 */
"cmd"
,
/* 204 */
"program"
,
/* 205 */
"ids"
,
/* 205 */
"cmd"
,
/* 206 */
"dbPrefix"
,
/* 206 */
"ids"
,
/* 207 */
"cpxName"
,
/* 207 */
"dbPrefix"
,
/* 208 */
"ifexists"
,
/* 208 */
"cpxName"
,
/* 209 */
"alter_db_optr"
,
/* 209 */
"ifexists"
,
/* 210 */
"alter_topic_optr"
,
/* 210 */
"alter_db_optr"
,
/* 211 */
"acct_optr"
,
/* 211 */
"alter_topic_optr"
,
/* 212 */
"exprlist"
,
/* 212 */
"acct_optr"
,
/* 213 */
"ifnotexists"
,
/* 213 */
"exprlist"
,
/* 214 */
"db_optr"
,
/* 214 */
"ifnotexists"
,
/* 215 */
"topic_optr"
,
/* 215 */
"db_optr"
,
/* 216 */
"typename"
,
/* 216 */
"topic_optr"
,
/* 217 */
"bufsize"
,
/* 217 */
"typename"
,
/* 218 */
"pps"
,
/* 218 */
"bufsize"
,
/* 219 */
"tseries"
,
/* 219 */
"pps"
,
/* 220 */
"dbs"
,
/* 220 */
"tseries"
,
/* 221 */
"streams"
,
/* 221 */
"dbs"
,
/* 222 */
"storage"
,
/* 222 */
"streams"
,
/* 223 */
"qtime"
,
/* 223 */
"storage"
,
/* 224 */
"users"
,
/* 224 */
"qtime"
,
/* 225 */
"conns"
,
/* 225 */
"users"
,
/* 226 */
"state"
,
/* 226 */
"conns"
,
/* 227 */
"intitemlist"
,
/* 227 */
"state"
,
/* 228 */
"intitem"
,
/* 228 */
"intitemlist"
,
/* 229 */
"keep"
,
/* 229 */
"intitem"
,
/* 230 */
"cache"
,
/* 230 */
"keep"
,
/* 231 */
"replica"
,
/* 231 */
"cache"
,
/* 232 */
"quorum"
,
/* 232 */
"replica"
,
/* 233 */
"days"
,
/* 233 */
"quorum"
,
/* 234 */
"minrows"
,
/* 234 */
"days"
,
/* 235 */
"maxrows"
,
/* 235 */
"minrows"
,
/* 236 */
"blocks"
,
/* 236 */
"maxrows"
,
/* 237 */
"ctime"
,
/* 237 */
"blocks"
,
/* 238 */
"wal"
,
/* 238 */
"ctime"
,
/* 239 */
"fsync"
,
/* 239 */
"wal"
,
/* 240 */
"comp"
,
/* 240 */
"fsync"
,
/* 241 */
"prec"
,
/* 241 */
"comp"
,
/* 242 */
"update"
,
/* 242 */
"prec"
,
/* 243 */
"cachelast"
,
/* 243 */
"update"
,
/* 244 */
"partitions"
,
/* 244 */
"cachelast"
,
/* 245 */
"signed"
,
/* 245 */
"partitions"
,
/* 246 */
"create_table_args"
,
/* 246 */
"signed"
,
/* 247 */
"create_stable_args"
,
/* 247 */
"create_table_args"
,
/* 248 */
"create_table_list"
,
/* 248 */
"create_stable_args"
,
/* 249 */
"create_from_stable"
,
/* 249 */
"create_table_list"
,
/* 250 */
"columnlist"
,
/* 250 */
"create_from_stable"
,
/* 251 */
"tagitemlist"
,
/* 251 */
"columnlist"
,
/* 252 */
"tagNamelist"
,
/* 252 */
"tagitemlist"
,
/* 253 */
"to_opt"
,
/* 253 */
"tagNamelist"
,
/* 254 */
"split_opt"
,
/* 254 */
"to_opt"
,
/* 255 */
"select"
,
/* 255 */
"split_opt"
,
/* 256 */
"to_split"
,
/* 256 */
"select"
,
/* 257 */
"column"
,
/* 257 */
"to_split"
,
/* 258 */
"tagitem"
,
/* 258 */
"column"
,
/* 259 */
"selcollist"
,
/* 259 */
"tagitem"
,
/* 260 */
"from"
,
/* 260 */
"selcollist"
,
/* 261 */
"where_opt"
,
/* 261 */
"from"
,
/* 262 */
"range_option"
,
/* 262 */
"where_opt"
,
/* 263 */
"interval_option"
,
/* 263 */
"range_option"
,
/* 264 */
"sliding_opt"
,
/* 264 */
"interval_option"
,
/* 265 */
"session_option"
,
/* 265 */
"sliding_opt"
,
/* 266 */
"windowstate_option"
,
/* 266 */
"session_option"
,
/* 267 */
"fill_opt"
,
/* 267 */
"windowstate_option"
,
/* 268 */
"groupby_opt"
,
/* 268 */
"fill_opt"
,
/* 269 */
"having_opt"
,
/* 269 */
"groupby_opt"
,
/* 270 */
"orderby_opt"
,
/* 270 */
"having_opt"
,
/* 271 */
"slimit_opt"
,
/* 271 */
"orderby_opt"
,
/* 272 */
"limit_opt"
,
/* 272 */
"slimit_opt"
,
/* 273 */
"union"
,
/* 273 */
"limit_opt"
,
/* 274 */
"sclp"
,
/* 274 */
"union"
,
/* 275 */
"distinct"
,
/* 275 */
"sclp"
,
/* 276 */
"expr"
,
/* 276 */
"distinct"
,
/* 277 */
"as"
,
/* 277 */
"expr"
,
/* 278 */
"tablelist"
,
/* 278 */
"as"
,
/* 279 */
"sub"
,
/* 279 */
"tablelist"
,
/* 280 */
"tmvar"
,
/* 280 */
"sub"
,
/* 281 */
"timestamp"
,
/* 281 */
"tmvar"
,
/* 282 */
"intervalKey"
,
/* 282 */
"timestamp"
,
/* 283 */
"sortlist"
,
/* 283 */
"intervalKey"
,
/* 284 */
"item"
,
/* 284 */
"sortlist"
,
/* 285 */
"sortorder"
,
/* 285 */
"item"
,
/* 286 */
"arrow"
,
/* 286 */
"sortorder"
,
/* 287 */
"grouplist"
,
/* 287 */
"arrow"
,
/* 288 */
"expritem"
,
/* 288 */
"grouplist"
,
/* 289 */
"expritem"
,
};
};
#endif
/* defined(YYCOVERAGE) || !defined(NDEBUG) */
#endif
/* defined(YYCOVERAGE) || !defined(NDEBUG) */
...
@@ -1394,64 +1397,65 @@ static const char *const yyRuleName[] = {
...
@@ -1394,64 +1397,65 @@ static const char *const yyRuleName[] = {
/* 258 */
"expr ::= PLUS FLOAT"
,
/* 258 */
"expr ::= PLUS FLOAT"
,
/* 259 */
"expr ::= STRING"
,
/* 259 */
"expr ::= STRING"
,
/* 260 */
"expr ::= NOW"
,
/* 260 */
"expr ::= NOW"
,
/* 261 */
"expr ::= VARIABLE"
,
/* 261 */
"expr ::= TODAY"
,
/* 262 */
"expr ::= PLUS VARIABLE"
,
/* 262 */
"expr ::= VARIABLE"
,
/* 263 */
"expr ::= MINUS VARIABLE"
,
/* 263 */
"expr ::= PLUS VARIABLE"
,
/* 264 */
"expr ::= BOOL"
,
/* 264 */
"expr ::= MINUS VARIABLE"
,
/* 265 */
"expr ::= NULL"
,
/* 265 */
"expr ::= BOOL"
,
/* 266 */
"expr ::= ID LP exprlist RP"
,
/* 266 */
"expr ::= NULL"
,
/* 267 */
"expr ::= ID LP STAR RP"
,
/* 267 */
"expr ::= ID LP exprlist RP"
,
/* 268 */
"expr ::= ID LP expr AS typename RP"
,
/* 268 */
"expr ::= ID LP STAR RP"
,
/* 269 */
"expr ::= expr IS NULL"
,
/* 269 */
"expr ::= ID LP expr AS typename RP"
,
/* 270 */
"expr ::= expr IS NOT NULL"
,
/* 270 */
"expr ::= expr IS NULL"
,
/* 271 */
"expr ::= expr LT expr"
,
/* 271 */
"expr ::= expr IS NOT NULL"
,
/* 272 */
"expr ::= expr GT expr"
,
/* 272 */
"expr ::= expr LT expr"
,
/* 273 */
"expr ::= expr LE expr"
,
/* 273 */
"expr ::= expr GT expr"
,
/* 274 */
"expr ::= expr GE expr"
,
/* 274 */
"expr ::= expr LE expr"
,
/* 275 */
"expr ::= expr NE expr"
,
/* 275 */
"expr ::= expr GE expr"
,
/* 276 */
"expr ::= expr EQ expr"
,
/* 276 */
"expr ::= expr NE expr"
,
/* 277 */
"expr ::= expr BETWEEN expr AND expr"
,
/* 277 */
"expr ::= expr EQ expr"
,
/* 278 */
"expr ::= expr AND expr"
,
/* 278 */
"expr ::= expr BETWEEN expr AND expr"
,
/* 279 */
"expr ::= expr OR expr"
,
/* 279 */
"expr ::= expr AND expr"
,
/* 280 */
"expr ::= expr PLUS expr"
,
/* 280 */
"expr ::= expr OR expr"
,
/* 281 */
"expr ::= expr MINUS expr"
,
/* 281 */
"expr ::= expr PLUS expr"
,
/* 282 */
"expr ::= expr STAR expr"
,
/* 282 */
"expr ::= expr MINUS expr"
,
/* 283 */
"expr ::= expr SLASH expr"
,
/* 283 */
"expr ::= expr STAR expr"
,
/* 284 */
"expr ::= expr REM expr"
,
/* 284 */
"expr ::= expr SLASH expr"
,
/* 285 */
"expr ::= expr LIKE expr"
,
/* 285 */
"expr ::= expr REM expr"
,
/* 286 */
"expr ::= expr MATCH expr"
,
/* 286 */
"expr ::= expr LIKE expr"
,
/* 287 */
"expr ::= expr NMATCH expr"
,
/* 287 */
"expr ::= expr MATCH expr"
,
/* 288 */
"expr ::= ID CONTAINS STRING"
,
/* 288 */
"expr ::= expr NMATCH expr"
,
/* 289 */
"expr ::= ID DOT ID CONTAINS STRING"
,
/* 289 */
"expr ::= ID CONTAINS STRING"
,
/* 290 */
"arrow ::= ID ARROW STRING"
,
/* 290 */
"expr ::= ID DOT ID CONTAINS STRING"
,
/* 291 */
"arrow ::= ID DOT ID ARROW STRING"
,
/* 291 */
"arrow ::= ID ARROW STRING"
,
/* 292 */
"expr ::= arrow"
,
/* 292 */
"arrow ::= ID DOT ID ARROW STRING"
,
/* 293 */
"expr ::= expr IN LP exprlist RP"
,
/* 293 */
"expr ::= arrow"
,
/* 294 */
"exprlist ::= exprlist COMMA expritem"
,
/* 294 */
"expr ::= expr IN LP exprlist RP"
,
/* 295 */
"exprlist ::= expritem"
,
/* 295 */
"exprlist ::= exprlist COMMA expritem"
,
/* 296 */
"expritem ::= expr"
,
/* 296 */
"exprlist ::= expritem"
,
/* 297 */
"expritem ::="
,
/* 297 */
"expritem ::= expr"
,
/* 298 */
"cmd ::= RESET QUERY CACHE"
,
/* 298 */
"expritem ::="
,
/* 299 */
"cmd ::= SYNCDB ids REPLICA"
,
/* 299 */
"cmd ::= RESET QUERY CACHE"
,
/* 300 */
"cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist"
,
/* 300 */
"cmd ::= SYNCDB ids REPLICA"
,
/* 301 */
"cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids"
,
/* 301 */
"cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist"
,
/* 302 */
"cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist"
,
/* 302 */
"cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids"
,
/* 303 */
"cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist"
,
/* 303 */
"cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist"
,
/* 304 */
"cmd ::= ALTER TABLE ids cpxName DROP TAG ids"
,
/* 304 */
"cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist"
,
/* 305 */
"cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids"
,
/* 305 */
"cmd ::= ALTER TABLE ids cpxName DROP TAG ids"
,
/* 306 */
"cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem"
,
/* 306 */
"cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids"
,
/* 307 */
"cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist"
,
/* 307 */
"cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem"
,
/* 308 */
"cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist"
,
/* 308 */
"cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist"
,
/* 309 */
"cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids"
,
/* 309 */
"cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist"
,
/* 310 */
"cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist"
,
/* 310 */
"cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids"
,
/* 311 */
"cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist"
,
/* 311 */
"cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist"
,
/* 312 */
"cmd ::= ALTER STABLE ids cpxName DROP TAG ids"
,
/* 312 */
"cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist"
,
/* 313 */
"cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids"
,
/* 313 */
"cmd ::= ALTER STABLE ids cpxName DROP TAG ids"
,
/* 314 */
"cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem"
,
/* 314 */
"cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids"
,
/* 315 */
"cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist"
,
/* 315 */
"cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem"
,
/* 316 */
"cmd ::= KILL CONNECTION INTEGER"
,
/* 316 */
"cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist"
,
/* 317 */
"cmd ::= KILL STREAM INTEGER COLON INTEGER"
,
/* 317 */
"cmd ::= KILL CONNECTION INTEGER"
,
/* 318 */
"cmd ::= KILL QUERY INTEGER COLON INTEGER"
,
/* 318 */
"cmd ::= KILL STREAM INTEGER COLON INTEGER"
,
/* 319 */
"cmd ::= KILL QUERY INTEGER COLON INTEGER"
,
};
};
#endif
/* NDEBUG */
#endif
/* NDEBUG */
...
@@ -1577,57 +1581,57 @@ static void yy_destructor(
...
@@ -1577,57 +1581,57 @@ static void yy_destructor(
** inside the C code.
** inside the C code.
*/
*/
/********* Begin destructor definitions ***************************************/
/********* Begin destructor definitions ***************************************/
case
21
2
:
/* exprlist */
case
21
3
:
/* exprlist */
case
2
59
:
/* selcollist */
case
2
60
:
/* selcollist */
case
27
4
:
/* sclp */
case
27
5
:
/* sclp */
{
{
tSqlExprListDestroy
((
yypminor
->
yy
209
));
tSqlExprListDestroy
((
yypminor
->
yy
161
));
}
}
break
;
break
;
case
22
7
:
/* intitemlist */
case
22
8
:
/* intitemlist */
case
2
29
:
/* keep */
case
2
30
:
/* keep */
case
25
0
:
/* columnlist */
case
25
1
:
/* columnlist */
case
25
1
:
/* tagitemlist */
case
25
2
:
/* tagitemlist */
case
25
2
:
/* tagNamelist */
case
25
3
:
/* tagNamelist */
case
26
7
:
/* fill_opt */
case
26
8
:
/* fill_opt */
case
26
8
:
/* groupby_opt */
case
26
9
:
/* groupby_opt */
case
27
0
:
/* orderby_opt */
case
27
1
:
/* orderby_opt */
case
28
3
:
/* sortlist */
case
28
4
:
/* sortlist */
case
28
7
:
/* grouplist */
case
28
8
:
/* grouplist */
{
{
taosArrayDestroy
(
&
(
yypminor
->
yy
209
));
taosArrayDestroy
(
&
(
yypminor
->
yy
161
));
}
}
break
;
break
;
case
24
8
:
/* create_table_list */
case
24
9
:
/* create_table_list */
{
{
destroyCreateTableSql
((
yypminor
->
yy4
04
));
destroyCreateTableSql
((
yypminor
->
yy4
62
));
}
}
break
;
break
;
case
25
5
:
/* select */
case
25
6
:
/* select */
{
{
destroySqlNode
((
yypminor
->
yy
160
));
destroySqlNode
((
yypminor
->
yy
276
));
}
}
break
;
break
;
case
26
0
:
/* from */
case
26
1
:
/* from */
case
27
8
:
/* tablelist */
case
27
9
:
/* tablelist */
case
2
79
:
/* sub */
case
2
80
:
/* sub */
{
{
destroyRelationInfo
((
yypminor
->
yy
530
));
destroyRelationInfo
((
yypminor
->
yy
84
));
}
}
break
;
break
;
case
26
1
:
/* where_opt */
case
26
2
:
/* where_opt */
case
2
69
:
/* having_opt */
case
2
70
:
/* having_opt */
case
27
6
:
/* expr */
case
27
7
:
/* expr */
case
28
1
:
/* timestamp */
case
28
2
:
/* timestamp */
case
28
6
:
/* arrow */
case
28
7
:
/* arrow */
case
28
8
:
/* expritem */
case
28
9
:
/* expritem */
{
{
tSqlExprDestroy
((
yypminor
->
yy5
74
));
tSqlExprDestroy
((
yypminor
->
yy5
46
));
}
}
break
;
break
;
case
27
3
:
/* union */
case
27
4
:
/* union */
{
{
destroyAllSqlNode
((
yypminor
->
yy
209
));
destroyAllSqlNode
((
yypminor
->
yy
161
));
}
}
break
;
break
;
/********* End destructor definitions *****************************************/
/********* End destructor definitions *****************************************/
...
@@ -1753,15 +1757,18 @@ static YYACTIONTYPE yy_find_shift_action(
...
@@ -1753,15 +1757,18 @@ static YYACTIONTYPE yy_find_shift_action(
do
{
do
{
i
=
yy_shift_ofst
[
stateno
];
i
=
yy_shift_ofst
[
stateno
];
assert
(
i
>=
0
);
assert
(
i
>=
0
);
/* assert( i+YYNTOKEN<=(int)YY_NLOOKAHEAD ); */
assert
(
i
<=
YY_ACTTAB_COUNT
);
assert
(
i
+
YYNTOKEN
<=
(
int
)
YY_NLOOKAHEAD
);
assert
(
iLookAhead
!=
YYNOCODE
);
assert
(
iLookAhead
!=
YYNOCODE
);
assert
(
iLookAhead
<
YYNTOKEN
);
assert
(
iLookAhead
<
YYNTOKEN
);
i
+=
iLookAhead
;
i
+=
iLookAhead
;
if
(
i
>=
YY_NLOOKAHEAD
||
yy_lookahead
[
i
]
!=
iLookAhead
){
assert
(
i
<
(
int
)
YY_NLOOKAHEAD
);
if
(
yy_lookahead
[
i
]
!=
iLookAhead
){
#ifdef YYFALLBACK
#ifdef YYFALLBACK
YYCODETYPE
iFallback
;
/* Fallback token */
YYCODETYPE
iFallback
;
/* Fallback token */
if
(
iLookAhead
<
sizeof
(
yyFallback
)
/
sizeof
(
yyFallback
[
0
])
assert
(
iLookAhead
<
sizeof
(
yyFallback
)
/
sizeof
(
yyFallback
[
0
])
);
&&
(
iFallback
=
yyFallback
[
iLookAhead
])
!=
0
){
iFallback
=
yyFallback
[
iLookAhead
];
if
(
iFallback
!=
0
){
#ifndef NDEBUG
#ifndef NDEBUG
if
(
yyTraceFILE
){
if
(
yyTraceFILE
){
fprintf
(
yyTraceFILE
,
"%sFALLBACK %s => %s
\n
"
,
fprintf
(
yyTraceFILE
,
"%sFALLBACK %s => %s
\n
"
,
...
@@ -1776,16 +1783,8 @@ static YYACTIONTYPE yy_find_shift_action(
...
@@ -1776,16 +1783,8 @@ static YYACTIONTYPE yy_find_shift_action(
#ifdef YYWILDCARD
#ifdef YYWILDCARD
{
{
int
j
=
i
-
iLookAhead
+
YYWILDCARD
;
int
j
=
i
-
iLookAhead
+
YYWILDCARD
;
if
(
assert
(
j
<
(
int
)(
sizeof
(
yy_lookahead
)
/
sizeof
(
yy_lookahead
[
0
]))
);
#if YY_SHIFT_MIN+YYWILDCARD<0
if
(
yy_lookahead
[
j
]
==
YYWILDCARD
&&
iLookAhead
>
0
){
j
>=
0
&&
#endif
#if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT
j
<
YY_ACTTAB_COUNT
&&
#endif
j
<
(
int
)(
sizeof
(
yy_lookahead
)
/
sizeof
(
yy_lookahead
[
0
]))
&&
yy_lookahead
[
j
]
==
YYWILDCARD
&&
iLookAhead
>
0
){
#ifndef NDEBUG
#ifndef NDEBUG
if
(
yyTraceFILE
){
if
(
yyTraceFILE
){
fprintf
(
yyTraceFILE
,
"%sWILDCARD %s => %s
\n
"
,
fprintf
(
yyTraceFILE
,
"%sWILDCARD %s => %s
\n
"
,
...
@@ -1799,6 +1798,7 @@ static YYACTIONTYPE yy_find_shift_action(
...
@@ -1799,6 +1798,7 @@ static YYACTIONTYPE yy_find_shift_action(
#endif
/* YYWILDCARD */
#endif
/* YYWILDCARD */
return
yy_default
[
stateno
];
return
yy_default
[
stateno
];
}
else
{
}
else
{
assert
(
i
>=
0
&&
i
<
sizeof
(
yy_action
)
/
sizeof
(
yy_action
[
0
])
);
return
yy_action
[
i
];
return
yy_action
[
i
];
}
}
}
while
(
1
);
}
while
(
1
);
...
@@ -1917,332 +1917,654 @@ static void yy_shift(
...
@@ -1917,332 +1917,654 @@ static void yy_shift(
yyTraceShift
(
yypParser
,
yyNewState
,
"Shift"
);
yyTraceShift
(
yypParser
,
yyNewState
,
"Shift"
);
}
}
/* The following table contains information about every rule that
/* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side
** is used during the reduce.
** of that rule */
*/
static
const
YYCODETYPE
yyRuleInfoLhs
[]
=
{
static
const
struct
{
204
,
/* (0) program ::= cmd */
YYCODETYPE
lhs
;
/* Symbol on the left-hand side of the rule */
205
,
/* (1) cmd ::= SHOW DATABASES */
signed
char
nrhs
;
/* Negative of the number of RHS symbols in the rule */
205
,
/* (2) cmd ::= SHOW TOPICS */
}
yyRuleInfo
[]
=
{
205
,
/* (3) cmd ::= SHOW FUNCTIONS */
{
203
,
-
1
},
/* (0) program ::= cmd */
205
,
/* (4) cmd ::= SHOW MNODES */
{
204
,
-
2
},
/* (1) cmd ::= SHOW DATABASES */
205
,
/* (5) cmd ::= SHOW DNODES */
{
204
,
-
2
},
/* (2) cmd ::= SHOW TOPICS */
205
,
/* (6) cmd ::= SHOW ACCOUNTS */
{
204
,
-
2
},
/* (3) cmd ::= SHOW FUNCTIONS */
205
,
/* (7) cmd ::= SHOW USERS */
{
204
,
-
2
},
/* (4) cmd ::= SHOW MNODES */
205
,
/* (8) cmd ::= SHOW MODULES */
{
204
,
-
2
},
/* (5) cmd ::= SHOW DNODES */
205
,
/* (9) cmd ::= SHOW QUERIES */
{
204
,
-
2
},
/* (6) cmd ::= SHOW ACCOUNTS */
205
,
/* (10) cmd ::= SHOW CONNECTIONS */
{
204
,
-
2
},
/* (7) cmd ::= SHOW USERS */
205
,
/* (11) cmd ::= SHOW STREAMS */
{
204
,
-
2
},
/* (8) cmd ::= SHOW MODULES */
205
,
/* (12) cmd ::= SHOW VARIABLES */
{
204
,
-
2
},
/* (9) cmd ::= SHOW QUERIES */
205
,
/* (13) cmd ::= SHOW SCORES */
{
204
,
-
2
},
/* (10) cmd ::= SHOW CONNECTIONS */
205
,
/* (14) cmd ::= SHOW GRANTS */
{
204
,
-
2
},
/* (11) cmd ::= SHOW STREAMS */
205
,
/* (15) cmd ::= SHOW VNODES */
{
204
,
-
2
},
/* (12) cmd ::= SHOW VARIABLES */
205
,
/* (16) cmd ::= SHOW VNODES ids */
{
204
,
-
2
},
/* (13) cmd ::= SHOW SCORES */
207
,
/* (17) dbPrefix ::= */
{
204
,
-
2
},
/* (14) cmd ::= SHOW GRANTS */
207
,
/* (18) dbPrefix ::= ids DOT */
{
204
,
-
2
},
/* (15) cmd ::= SHOW VNODES */
208
,
/* (19) cpxName ::= */
{
204
,
-
3
},
/* (16) cmd ::= SHOW VNODES ids */
208
,
/* (20) cpxName ::= DOT ids */
{
206
,
0
},
/* (17) dbPrefix ::= */
205
,
/* (21) cmd ::= SHOW CREATE TABLE ids cpxName */
{
206
,
-
2
},
/* (18) dbPrefix ::= ids DOT */
205
,
/* (22) cmd ::= SHOW CREATE STABLE ids cpxName */
{
207
,
0
},
/* (19) cpxName ::= */
205
,
/* (23) cmd ::= SHOW CREATE DATABASE ids */
{
207
,
-
2
},
/* (20) cpxName ::= DOT ids */
205
,
/* (24) cmd ::= SHOW dbPrefix TABLES */
{
204
,
-
5
},
/* (21) cmd ::= SHOW CREATE TABLE ids cpxName */
205
,
/* (25) cmd ::= SHOW dbPrefix TABLES LIKE STRING */
{
204
,
-
5
},
/* (22) cmd ::= SHOW CREATE STABLE ids cpxName */
205
,
/* (26) cmd ::= SHOW dbPrefix STABLES */
{
204
,
-
4
},
/* (23) cmd ::= SHOW CREATE DATABASE ids */
205
,
/* (27) cmd ::= SHOW dbPrefix STABLES LIKE STRING */
{
204
,
-
3
},
/* (24) cmd ::= SHOW dbPrefix TABLES */
205
,
/* (28) cmd ::= SHOW dbPrefix VGROUPS */
{
204
,
-
5
},
/* (25) cmd ::= SHOW dbPrefix TABLES LIKE STRING */
205
,
/* (29) cmd ::= DROP TABLE ifexists ids cpxName */
{
204
,
-
3
},
/* (26) cmd ::= SHOW dbPrefix STABLES */
205
,
/* (30) cmd ::= DROP STABLE ifexists ids cpxName */
{
204
,
-
5
},
/* (27) cmd ::= SHOW dbPrefix STABLES LIKE STRING */
205
,
/* (31) cmd ::= DROP DATABASE ifexists ids */
{
204
,
-
3
},
/* (28) cmd ::= SHOW dbPrefix VGROUPS */
205
,
/* (32) cmd ::= DROP TOPIC ifexists ids */
{
204
,
-
5
},
/* (29) cmd ::= DROP TABLE ifexists ids cpxName */
205
,
/* (33) cmd ::= DROP FUNCTION ids */
{
204
,
-
5
},
/* (30) cmd ::= DROP STABLE ifexists ids cpxName */
205
,
/* (34) cmd ::= DROP DNODE ids */
{
204
,
-
4
},
/* (31) cmd ::= DROP DATABASE ifexists ids */
205
,
/* (35) cmd ::= DROP USER ids */
{
204
,
-
4
},
/* (32) cmd ::= DROP TOPIC ifexists ids */
205
,
/* (36) cmd ::= DROP ACCOUNT ids */
{
204
,
-
3
},
/* (33) cmd ::= DROP FUNCTION ids */
205
,
/* (37) cmd ::= USE ids */
{
204
,
-
3
},
/* (34) cmd ::= DROP DNODE ids */
205
,
/* (38) cmd ::= DESCRIBE ids cpxName */
{
204
,
-
3
},
/* (35) cmd ::= DROP USER ids */
205
,
/* (39) cmd ::= DESC ids cpxName */
{
204
,
-
3
},
/* (36) cmd ::= DROP ACCOUNT ids */
205
,
/* (40) cmd ::= ALTER USER ids PASS ids */
{
204
,
-
2
},
/* (37) cmd ::= USE ids */
205
,
/* (41) cmd ::= ALTER USER ids PRIVILEGE ids */
{
204
,
-
3
},
/* (38) cmd ::= DESCRIBE ids cpxName */
205
,
/* (42) cmd ::= ALTER DNODE ids ids */
{
204
,
-
3
},
/* (39) cmd ::= DESC ids cpxName */
205
,
/* (43) cmd ::= ALTER DNODE ids ids ids */
{
204
,
-
5
},
/* (40) cmd ::= ALTER USER ids PASS ids */
205
,
/* (44) cmd ::= ALTER LOCAL ids */
{
204
,
-
5
},
/* (41) cmd ::= ALTER USER ids PRIVILEGE ids */
205
,
/* (45) cmd ::= ALTER LOCAL ids ids */
{
204
,
-
4
},
/* (42) cmd ::= ALTER DNODE ids ids */
205
,
/* (46) cmd ::= ALTER DATABASE ids alter_db_optr */
{
204
,
-
5
},
/* (43) cmd ::= ALTER DNODE ids ids ids */
205
,
/* (47) cmd ::= ALTER TOPIC ids alter_topic_optr */
{
204
,
-
3
},
/* (44) cmd ::= ALTER LOCAL ids */
205
,
/* (48) cmd ::= ALTER ACCOUNT ids acct_optr */
{
204
,
-
4
},
/* (45) cmd ::= ALTER LOCAL ids ids */
205
,
/* (49) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{
204
,
-
4
},
/* (46) cmd ::= ALTER DATABASE ids alter_db_optr */
205
,
/* (50) cmd ::= COMPACT VNODES IN LP exprlist RP */
{
204
,
-
4
},
/* (47) cmd ::= ALTER TOPIC ids alter_topic_optr */
206
,
/* (51) ids ::= ID */
{
204
,
-
4
},
/* (48) cmd ::= ALTER ACCOUNT ids acct_optr */
206
,
/* (52) ids ::= STRING */
{
204
,
-
6
},
/* (49) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
209
,
/* (53) ifexists ::= IF EXISTS */
{
204
,
-
6
},
/* (50) cmd ::= COMPACT VNODES IN LP exprlist RP */
209
,
/* (54) ifexists ::= */
{
205
,
-
1
},
/* (51) ids ::= ID */
214
,
/* (55) ifnotexists ::= IF NOT EXISTS */
{
205
,
-
1
},
/* (52) ids ::= STRING */
214
,
/* (56) ifnotexists ::= */
{
208
,
-
2
},
/* (53) ifexists ::= IF EXISTS */
205
,
/* (57) cmd ::= CREATE DNODE ids */
{
208
,
0
},
/* (54) ifexists ::= */
205
,
/* (58) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{
213
,
-
3
},
/* (55) ifnotexists ::= IF NOT EXISTS */
205
,
/* (59) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
{
213
,
0
},
/* (56) ifnotexists ::= */
205
,
/* (60) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
{
204
,
-
3
},
/* (57) cmd ::= CREATE DNODE ids */
205
,
/* (61) cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
{
204
,
-
6
},
/* (58) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
205
,
/* (62) cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
{
204
,
-
5
},
/* (59) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
205
,
/* (63) cmd ::= CREATE USER ids PASS ids */
{
204
,
-
5
},
/* (60) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
218
,
/* (64) bufsize ::= */
{
204
,
-
8
},
/* (61) cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
218
,
/* (65) bufsize ::= BUFSIZE INTEGER */
{
204
,
-
9
},
/* (62) cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
219
,
/* (66) pps ::= */
{
204
,
-
5
},
/* (63) cmd ::= CREATE USER ids PASS ids */
219
,
/* (67) pps ::= PPS INTEGER */
{
217
,
0
},
/* (64) bufsize ::= */
220
,
/* (68) tseries ::= */
{
217
,
-
2
},
/* (65) bufsize ::= BUFSIZE INTEGER */
220
,
/* (69) tseries ::= TSERIES INTEGER */
{
218
,
0
},
/* (66) pps ::= */
221
,
/* (70) dbs ::= */
{
218
,
-
2
},
/* (67) pps ::= PPS INTEGER */
221
,
/* (71) dbs ::= DBS INTEGER */
{
219
,
0
},
/* (68) tseries ::= */
222
,
/* (72) streams ::= */
{
219
,
-
2
},
/* (69) tseries ::= TSERIES INTEGER */
222
,
/* (73) streams ::= STREAMS INTEGER */
{
220
,
0
},
/* (70) dbs ::= */
223
,
/* (74) storage ::= */
{
220
,
-
2
},
/* (71) dbs ::= DBS INTEGER */
223
,
/* (75) storage ::= STORAGE INTEGER */
{
221
,
0
},
/* (72) streams ::= */
224
,
/* (76) qtime ::= */
{
221
,
-
2
},
/* (73) streams ::= STREAMS INTEGER */
224
,
/* (77) qtime ::= QTIME INTEGER */
{
222
,
0
},
/* (74) storage ::= */
225
,
/* (78) users ::= */
{
222
,
-
2
},
/* (75) storage ::= STORAGE INTEGER */
225
,
/* (79) users ::= USERS INTEGER */
{
223
,
0
},
/* (76) qtime ::= */
226
,
/* (80) conns ::= */
{
223
,
-
2
},
/* (77) qtime ::= QTIME INTEGER */
226
,
/* (81) conns ::= CONNS INTEGER */
{
224
,
0
},
/* (78) users ::= */
227
,
/* (82) state ::= */
{
224
,
-
2
},
/* (79) users ::= USERS INTEGER */
227
,
/* (83) state ::= STATE ids */
{
225
,
0
},
/* (80) conns ::= */
212
,
/* (84) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{
225
,
-
2
},
/* (81) conns ::= CONNS INTEGER */
228
,
/* (85) intitemlist ::= intitemlist COMMA intitem */
{
226
,
0
},
/* (82) state ::= */
228
,
/* (86) intitemlist ::= intitem */
{
226
,
-
2
},
/* (83) state ::= STATE ids */
229
,
/* (87) intitem ::= INTEGER */
{
211
,
-
9
},
/* (84) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
230
,
/* (88) keep ::= KEEP intitemlist */
{
227
,
-
3
},
/* (85) intitemlist ::= intitemlist COMMA intitem */
231
,
/* (89) cache ::= CACHE INTEGER */
{
227
,
-
1
},
/* (86) intitemlist ::= intitem */
232
,
/* (90) replica ::= REPLICA INTEGER */
{
228
,
-
1
},
/* (87) intitem ::= INTEGER */
233
,
/* (91) quorum ::= QUORUM INTEGER */
{
229
,
-
2
},
/* (88) keep ::= KEEP intitemlist */
234
,
/* (92) days ::= DAYS INTEGER */
{
230
,
-
2
},
/* (89) cache ::= CACHE INTEGER */
235
,
/* (93) minrows ::= MINROWS INTEGER */
{
231
,
-
2
},
/* (90) replica ::= REPLICA INTEGER */
236
,
/* (94) maxrows ::= MAXROWS INTEGER */
{
232
,
-
2
},
/* (91) quorum ::= QUORUM INTEGER */
237
,
/* (95) blocks ::= BLOCKS INTEGER */
{
233
,
-
2
},
/* (92) days ::= DAYS INTEGER */
238
,
/* (96) ctime ::= CTIME INTEGER */
{
234
,
-
2
},
/* (93) minrows ::= MINROWS INTEGER */
239
,
/* (97) wal ::= WAL INTEGER */
{
235
,
-
2
},
/* (94) maxrows ::= MAXROWS INTEGER */
240
,
/* (98) fsync ::= FSYNC INTEGER */
{
236
,
-
2
},
/* (95) blocks ::= BLOCKS INTEGER */
241
,
/* (99) comp ::= COMP INTEGER */
{
237
,
-
2
},
/* (96) ctime ::= CTIME INTEGER */
242
,
/* (100) prec ::= PRECISION STRING */
{
238
,
-
2
},
/* (97) wal ::= WAL INTEGER */
243
,
/* (101) update ::= UPDATE INTEGER */
{
239
,
-
2
},
/* (98) fsync ::= FSYNC INTEGER */
244
,
/* (102) cachelast ::= CACHELAST INTEGER */
{
240
,
-
2
},
/* (99) comp ::= COMP INTEGER */
245
,
/* (103) partitions ::= PARTITIONS INTEGER */
{
241
,
-
2
},
/* (100) prec ::= PRECISION STRING */
215
,
/* (104) db_optr ::= */
{
242
,
-
2
},
/* (101) update ::= UPDATE INTEGER */
215
,
/* (105) db_optr ::= db_optr cache */
{
243
,
-
2
},
/* (102) cachelast ::= CACHELAST INTEGER */
215
,
/* (106) db_optr ::= db_optr replica */
{
244
,
-
2
},
/* (103) partitions ::= PARTITIONS INTEGER */
215
,
/* (107) db_optr ::= db_optr quorum */
{
214
,
0
},
/* (104) db_optr ::= */
215
,
/* (108) db_optr ::= db_optr days */
{
214
,
-
2
},
/* (105) db_optr ::= db_optr cache */
215
,
/* (109) db_optr ::= db_optr minrows */
{
214
,
-
2
},
/* (106) db_optr ::= db_optr replica */
215
,
/* (110) db_optr ::= db_optr maxrows */
{
214
,
-
2
},
/* (107) db_optr ::= db_optr quorum */
215
,
/* (111) db_optr ::= db_optr blocks */
{
214
,
-
2
},
/* (108) db_optr ::= db_optr days */
215
,
/* (112) db_optr ::= db_optr ctime */
{
214
,
-
2
},
/* (109) db_optr ::= db_optr minrows */
215
,
/* (113) db_optr ::= db_optr wal */
{
214
,
-
2
},
/* (110) db_optr ::= db_optr maxrows */
215
,
/* (114) db_optr ::= db_optr fsync */
{
214
,
-
2
},
/* (111) db_optr ::= db_optr blocks */
215
,
/* (115) db_optr ::= db_optr comp */
{
214
,
-
2
},
/* (112) db_optr ::= db_optr ctime */
215
,
/* (116) db_optr ::= db_optr prec */
{
214
,
-
2
},
/* (113) db_optr ::= db_optr wal */
215
,
/* (117) db_optr ::= db_optr keep */
{
214
,
-
2
},
/* (114) db_optr ::= db_optr fsync */
215
,
/* (118) db_optr ::= db_optr update */
{
214
,
-
2
},
/* (115) db_optr ::= db_optr comp */
215
,
/* (119) db_optr ::= db_optr cachelast */
{
214
,
-
2
},
/* (116) db_optr ::= db_optr prec */
216
,
/* (120) topic_optr ::= db_optr */
{
214
,
-
2
},
/* (117) db_optr ::= db_optr keep */
216
,
/* (121) topic_optr ::= topic_optr partitions */
{
214
,
-
2
},
/* (118) db_optr ::= db_optr update */
210
,
/* (122) alter_db_optr ::= */
{
214
,
-
2
},
/* (119) db_optr ::= db_optr cachelast */
210
,
/* (123) alter_db_optr ::= alter_db_optr replica */
{
215
,
-
1
},
/* (120) topic_optr ::= db_optr */
210
,
/* (124) alter_db_optr ::= alter_db_optr quorum */
{
215
,
-
2
},
/* (121) topic_optr ::= topic_optr partitions */
210
,
/* (125) alter_db_optr ::= alter_db_optr keep */
{
209
,
0
},
/* (122) alter_db_optr ::= */
210
,
/* (126) alter_db_optr ::= alter_db_optr blocks */
{
209
,
-
2
},
/* (123) alter_db_optr ::= alter_db_optr replica */
210
,
/* (127) alter_db_optr ::= alter_db_optr comp */
{
209
,
-
2
},
/* (124) alter_db_optr ::= alter_db_optr quorum */
210
,
/* (128) alter_db_optr ::= alter_db_optr update */
{
209
,
-
2
},
/* (125) alter_db_optr ::= alter_db_optr keep */
210
,
/* (129) alter_db_optr ::= alter_db_optr cachelast */
{
209
,
-
2
},
/* (126) alter_db_optr ::= alter_db_optr blocks */
211
,
/* (130) alter_topic_optr ::= alter_db_optr */
{
209
,
-
2
},
/* (127) alter_db_optr ::= alter_db_optr comp */
211
,
/* (131) alter_topic_optr ::= alter_topic_optr partitions */
{
209
,
-
2
},
/* (128) alter_db_optr ::= alter_db_optr update */
217
,
/* (132) typename ::= ids */
{
209
,
-
2
},
/* (129) alter_db_optr ::= alter_db_optr cachelast */
217
,
/* (133) typename ::= ids LP signed RP */
{
210
,
-
1
},
/* (130) alter_topic_optr ::= alter_db_optr */
217
,
/* (134) typename ::= ids UNSIGNED */
{
210
,
-
2
},
/* (131) alter_topic_optr ::= alter_topic_optr partitions */
246
,
/* (135) signed ::= INTEGER */
{
216
,
-
1
},
/* (132) typename ::= ids */
246
,
/* (136) signed ::= PLUS INTEGER */
{
216
,
-
4
},
/* (133) typename ::= ids LP signed RP */
246
,
/* (137) signed ::= MINUS INTEGER */
{
216
,
-
2
},
/* (134) typename ::= ids UNSIGNED */
205
,
/* (138) cmd ::= CREATE TABLE create_table_args */
{
245
,
-
1
},
/* (135) signed ::= INTEGER */
205
,
/* (139) cmd ::= CREATE TABLE create_stable_args */
{
245
,
-
2
},
/* (136) signed ::= PLUS INTEGER */
205
,
/* (140) cmd ::= CREATE STABLE create_stable_args */
{
245
,
-
2
},
/* (137) signed ::= MINUS INTEGER */
205
,
/* (141) cmd ::= CREATE TABLE create_table_list */
{
204
,
-
3
},
/* (138) cmd ::= CREATE TABLE create_table_args */
249
,
/* (142) create_table_list ::= create_from_stable */
{
204
,
-
3
},
/* (139) cmd ::= CREATE TABLE create_stable_args */
249
,
/* (143) create_table_list ::= create_table_list create_from_stable */
{
204
,
-
3
},
/* (140) cmd ::= CREATE STABLE create_stable_args */
247
,
/* (144) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
{
204
,
-
3
},
/* (141) cmd ::= CREATE TABLE create_table_list */
248
,
/* (145) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
{
248
,
-
1
},
/* (142) create_table_list ::= create_from_stable */
250
,
/* (146) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
{
248
,
-
2
},
/* (143) create_table_list ::= create_table_list create_from_stable */
250
,
/* (147) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
{
246
,
-
6
},
/* (144) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
253
,
/* (148) tagNamelist ::= tagNamelist COMMA ids */
{
247
,
-
10
},
/* (145) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
253
,
/* (149) tagNamelist ::= ids */
{
249
,
-
10
},
/* (146) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
247
,
/* (150) create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select */
{
249
,
-
13
},
/* (147) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
254
,
/* (151) to_opt ::= */
{
252
,
-
3
},
/* (148) tagNamelist ::= tagNamelist COMMA ids */
254
,
/* (152) to_opt ::= TO ids cpxName */
{
252
,
-
1
},
/* (149) tagNamelist ::= ids */
255
,
/* (153) split_opt ::= */
{
246
,
-
7
},
/* (150) create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select */
255
,
/* (154) split_opt ::= SPLIT ids */
{
253
,
0
},
/* (151) to_opt ::= */
251
,
/* (155) columnlist ::= columnlist COMMA column */
{
253
,
-
3
},
/* (152) to_opt ::= TO ids cpxName */
251
,
/* (156) columnlist ::= column */
{
254
,
0
},
/* (153) split_opt ::= */
258
,
/* (157) column ::= ids typename */
{
254
,
-
2
},
/* (154) split_opt ::= SPLIT ids */
252
,
/* (158) tagitemlist ::= tagitemlist COMMA tagitem */
{
250
,
-
3
},
/* (155) columnlist ::= columnlist COMMA column */
252
,
/* (159) tagitemlist ::= tagitem */
{
250
,
-
1
},
/* (156) columnlist ::= column */
259
,
/* (160) tagitem ::= INTEGER */
{
257
,
-
2
},
/* (157) column ::= ids typename */
259
,
/* (161) tagitem ::= FLOAT */
{
251
,
-
3
},
/* (158) tagitemlist ::= tagitemlist COMMA tagitem */
259
,
/* (162) tagitem ::= STRING */
{
251
,
-
1
},
/* (159) tagitemlist ::= tagitem */
259
,
/* (163) tagitem ::= BOOL */
{
258
,
-
1
},
/* (160) tagitem ::= INTEGER */
259
,
/* (164) tagitem ::= NULL */
{
258
,
-
1
},
/* (161) tagitem ::= FLOAT */
259
,
/* (165) tagitem ::= NOW */
{
258
,
-
1
},
/* (162) tagitem ::= STRING */
259
,
/* (166) tagitem ::= NOW PLUS VARIABLE */
{
258
,
-
1
},
/* (163) tagitem ::= BOOL */
259
,
/* (167) tagitem ::= NOW MINUS VARIABLE */
{
258
,
-
1
},
/* (164) tagitem ::= NULL */
259
,
/* (168) tagitem ::= MINUS INTEGER */
{
258
,
-
1
},
/* (165) tagitem ::= NOW */
259
,
/* (169) tagitem ::= MINUS FLOAT */
{
258
,
-
3
},
/* (166) tagitem ::= NOW PLUS VARIABLE */
259
,
/* (170) tagitem ::= PLUS INTEGER */
{
258
,
-
3
},
/* (167) tagitem ::= NOW MINUS VARIABLE */
259
,
/* (171) tagitem ::= PLUS FLOAT */
{
258
,
-
2
},
/* (168) tagitem ::= MINUS INTEGER */
256
,
/* (172) select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
{
258
,
-
2
},
/* (169) tagitem ::= MINUS FLOAT */
256
,
/* (173) select ::= LP select RP */
{
258
,
-
2
},
/* (170) tagitem ::= PLUS INTEGER */
274
,
/* (174) union ::= select */
{
258
,
-
2
},
/* (171) tagitem ::= PLUS FLOAT */
274
,
/* (175) union ::= union UNION ALL select */
{
255
,
-
15
},
/* (172) select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
205
,
/* (176) cmd ::= union */
{
255
,
-
3
},
/* (173) select ::= LP select RP */
256
,
/* (177) select ::= SELECT selcollist */
{
273
,
-
1
},
/* (174) union ::= select */
275
,
/* (178) sclp ::= selcollist COMMA */
{
273
,
-
4
},
/* (175) union ::= union UNION ALL select */
275
,
/* (179) sclp ::= */
{
204
,
-
1
},
/* (176) cmd ::= union */
260
,
/* (180) selcollist ::= sclp distinct expr as */
{
255
,
-
2
},
/* (177) select ::= SELECT selcollist */
260
,
/* (181) selcollist ::= sclp STAR */
{
274
,
-
2
},
/* (178) sclp ::= selcollist COMMA */
278
,
/* (182) as ::= AS ids */
{
274
,
0
},
/* (179) sclp ::= */
278
,
/* (183) as ::= ids */
{
259
,
-
4
},
/* (180) selcollist ::= sclp distinct expr as */
278
,
/* (184) as ::= */
{
259
,
-
2
},
/* (181) selcollist ::= sclp STAR */
276
,
/* (185) distinct ::= DISTINCT */
{
277
,
-
2
},
/* (182) as ::= AS ids */
276
,
/* (186) distinct ::= */
{
277
,
-
1
},
/* (183) as ::= ids */
261
,
/* (187) from ::= FROM tablelist */
{
277
,
0
},
/* (184) as ::= */
261
,
/* (188) from ::= FROM sub */
{
275
,
-
1
},
/* (185) distinct ::= DISTINCT */
280
,
/* (189) sub ::= LP union RP */
{
275
,
0
},
/* (186) distinct ::= */
280
,
/* (190) sub ::= LP union RP ids */
{
260
,
-
2
},
/* (187) from ::= FROM tablelist */
280
,
/* (191) sub ::= sub COMMA LP union RP ids */
{
260
,
-
2
},
/* (188) from ::= FROM sub */
279
,
/* (192) tablelist ::= ids cpxName */
{
279
,
-
3
},
/* (189) sub ::= LP union RP */
279
,
/* (193) tablelist ::= ids cpxName ids */
{
279
,
-
4
},
/* (190) sub ::= LP union RP ids */
279
,
/* (194) tablelist ::= tablelist COMMA ids cpxName */
{
279
,
-
6
},
/* (191) sub ::= sub COMMA LP union RP ids */
279
,
/* (195) tablelist ::= tablelist COMMA ids cpxName ids */
{
278
,
-
2
},
/* (192) tablelist ::= ids cpxName */
281
,
/* (196) tmvar ::= VARIABLE */
{
278
,
-
3
},
/* (193) tablelist ::= ids cpxName ids */
282
,
/* (197) timestamp ::= INTEGER */
{
278
,
-
4
},
/* (194) tablelist ::= tablelist COMMA ids cpxName */
282
,
/* (198) timestamp ::= MINUS INTEGER */
{
278
,
-
5
},
/* (195) tablelist ::= tablelist COMMA ids cpxName ids */
282
,
/* (199) timestamp ::= PLUS INTEGER */
{
280
,
-
1
},
/* (196) tmvar ::= VARIABLE */
282
,
/* (200) timestamp ::= STRING */
{
281
,
-
1
},
/* (197) timestamp ::= INTEGER */
282
,
/* (201) timestamp ::= NOW */
{
281
,
-
2
},
/* (198) timestamp ::= MINUS INTEGER */
282
,
/* (202) timestamp ::= NOW PLUS VARIABLE */
{
281
,
-
2
},
/* (199) timestamp ::= PLUS INTEGER */
282
,
/* (203) timestamp ::= NOW MINUS VARIABLE */
{
281
,
-
1
},
/* (200) timestamp ::= STRING */
263
,
/* (204) range_option ::= */
{
281
,
-
1
},
/* (201) timestamp ::= NOW */
263
,
/* (205) range_option ::= RANGE LP timestamp COMMA timestamp RP */
{
281
,
-
3
},
/* (202) timestamp ::= NOW PLUS VARIABLE */
264
,
/* (206) interval_option ::= intervalKey LP tmvar RP */
{
281
,
-
3
},
/* (203) timestamp ::= NOW MINUS VARIABLE */
264
,
/* (207) interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
{
262
,
0
},
/* (204) range_option ::= */
264
,
/* (208) interval_option ::= */
{
262
,
-
6
},
/* (205) range_option ::= RANGE LP timestamp COMMA timestamp RP */
283
,
/* (209) intervalKey ::= INTERVAL */
{
263
,
-
4
},
/* (206) interval_option ::= intervalKey LP tmvar RP */
283
,
/* (210) intervalKey ::= EVERY */
{
263
,
-
6
},
/* (207) interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
266
,
/* (211) session_option ::= */
{
263
,
0
},
/* (208) interval_option ::= */
266
,
/* (212) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
{
282
,
-
1
},
/* (209) intervalKey ::= INTERVAL */
267
,
/* (213) windowstate_option ::= */
{
282
,
-
1
},
/* (210) intervalKey ::= EVERY */
267
,
/* (214) windowstate_option ::= STATE_WINDOW LP ids RP */
{
265
,
0
},
/* (211) session_option ::= */
268
,
/* (215) fill_opt ::= */
{
265
,
-
7
},
/* (212) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
268
,
/* (216) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
266
,
0
},
/* (213) windowstate_option ::= */
268
,
/* (217) fill_opt ::= FILL LP ID RP */
{
266
,
-
4
},
/* (214) windowstate_option ::= STATE_WINDOW LP ids RP */
265
,
/* (218) sliding_opt ::= SLIDING LP tmvar RP */
{
267
,
0
},
/* (215) fill_opt ::= */
265
,
/* (219) sliding_opt ::= */
{
267
,
-
6
},
/* (216) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
271
,
/* (220) orderby_opt ::= */
{
267
,
-
4
},
/* (217) fill_opt ::= FILL LP ID RP */
271
,
/* (221) orderby_opt ::= ORDER BY sortlist */
{
264
,
-
4
},
/* (218) sliding_opt ::= SLIDING LP tmvar RP */
284
,
/* (222) sortlist ::= sortlist COMMA item sortorder */
{
264
,
0
},
/* (219) sliding_opt ::= */
284
,
/* (223) sortlist ::= sortlist COMMA arrow sortorder */
{
270
,
0
},
/* (220) orderby_opt ::= */
284
,
/* (224) sortlist ::= item sortorder */
{
270
,
-
3
},
/* (221) orderby_opt ::= ORDER BY sortlist */
284
,
/* (225) sortlist ::= arrow sortorder */
{
283
,
-
4
},
/* (222) sortlist ::= sortlist COMMA item sortorder */
285
,
/* (226) item ::= ID */
{
283
,
-
4
},
/* (223) sortlist ::= sortlist COMMA arrow sortorder */
285
,
/* (227) item ::= ID DOT ID */
{
283
,
-
2
},
/* (224) sortlist ::= item sortorder */
286
,
/* (228) sortorder ::= ASC */
{
283
,
-
2
},
/* (225) sortlist ::= arrow sortorder */
286
,
/* (229) sortorder ::= DESC */
{
284
,
-
1
},
/* (226) item ::= ID */
286
,
/* (230) sortorder ::= */
{
284
,
-
3
},
/* (227) item ::= ID DOT ID */
269
,
/* (231) groupby_opt ::= */
{
285
,
-
1
},
/* (228) sortorder ::= ASC */
269
,
/* (232) groupby_opt ::= GROUP BY grouplist */
{
285
,
-
1
},
/* (229) sortorder ::= DESC */
288
,
/* (233) grouplist ::= grouplist COMMA item */
{
285
,
0
},
/* (230) sortorder ::= */
288
,
/* (234) grouplist ::= grouplist COMMA arrow */
{
268
,
0
},
/* (231) groupby_opt ::= */
288
,
/* (235) grouplist ::= item */
{
268
,
-
3
},
/* (232) groupby_opt ::= GROUP BY grouplist */
288
,
/* (236) grouplist ::= arrow */
{
287
,
-
3
},
/* (233) grouplist ::= grouplist COMMA item */
270
,
/* (237) having_opt ::= */
{
287
,
-
3
},
/* (234) grouplist ::= grouplist COMMA arrow */
270
,
/* (238) having_opt ::= HAVING expr */
{
287
,
-
1
},
/* (235) grouplist ::= item */
273
,
/* (239) limit_opt ::= */
{
287
,
-
1
},
/* (236) grouplist ::= arrow */
273
,
/* (240) limit_opt ::= LIMIT signed */
{
269
,
0
},
/* (237) having_opt ::= */
273
,
/* (241) limit_opt ::= LIMIT signed OFFSET signed */
{
269
,
-
2
},
/* (238) having_opt ::= HAVING expr */
273
,
/* (242) limit_opt ::= LIMIT signed COMMA signed */
{
272
,
0
},
/* (239) limit_opt ::= */
272
,
/* (243) slimit_opt ::= */
{
272
,
-
2
},
/* (240) limit_opt ::= LIMIT signed */
272
,
/* (244) slimit_opt ::= SLIMIT signed */
{
272
,
-
4
},
/* (241) limit_opt ::= LIMIT signed OFFSET signed */
272
,
/* (245) slimit_opt ::= SLIMIT signed SOFFSET signed */
{
272
,
-
4
},
/* (242) limit_opt ::= LIMIT signed COMMA signed */
272
,
/* (246) slimit_opt ::= SLIMIT signed COMMA signed */
{
271
,
0
},
/* (243) slimit_opt ::= */
262
,
/* (247) where_opt ::= */
{
271
,
-
2
},
/* (244) slimit_opt ::= SLIMIT signed */
262
,
/* (248) where_opt ::= WHERE expr */
{
271
,
-
4
},
/* (245) slimit_opt ::= SLIMIT signed SOFFSET signed */
277
,
/* (249) expr ::= LP expr RP */
{
271
,
-
4
},
/* (246) slimit_opt ::= SLIMIT signed COMMA signed */
277
,
/* (250) expr ::= ID */
{
261
,
0
},
/* (247) where_opt ::= */
277
,
/* (251) expr ::= ID DOT ID */
{
261
,
-
2
},
/* (248) where_opt ::= WHERE expr */
277
,
/* (252) expr ::= ID DOT STAR */
{
276
,
-
3
},
/* (249) expr ::= LP expr RP */
277
,
/* (253) expr ::= INTEGER */
{
276
,
-
1
},
/* (250) expr ::= ID */
277
,
/* (254) expr ::= MINUS INTEGER */
{
276
,
-
3
},
/* (251) expr ::= ID DOT ID */
277
,
/* (255) expr ::= PLUS INTEGER */
{
276
,
-
3
},
/* (252) expr ::= ID DOT STAR */
277
,
/* (256) expr ::= FLOAT */
{
276
,
-
1
},
/* (253) expr ::= INTEGER */
277
,
/* (257) expr ::= MINUS FLOAT */
{
276
,
-
2
},
/* (254) expr ::= MINUS INTEGER */
277
,
/* (258) expr ::= PLUS FLOAT */
{
276
,
-
2
},
/* (255) expr ::= PLUS INTEGER */
277
,
/* (259) expr ::= STRING */
{
276
,
-
1
},
/* (256) expr ::= FLOAT */
277
,
/* (260) expr ::= NOW */
{
276
,
-
2
},
/* (257) expr ::= MINUS FLOAT */
277
,
/* (261) expr ::= TODAY */
{
276
,
-
2
},
/* (258) expr ::= PLUS FLOAT */
277
,
/* (262) expr ::= VARIABLE */
{
276
,
-
1
},
/* (259) expr ::= STRING */
277
,
/* (263) expr ::= PLUS VARIABLE */
{
276
,
-
1
},
/* (260) expr ::= NOW */
277
,
/* (264) expr ::= MINUS VARIABLE */
{
276
,
-
1
},
/* (261) expr ::= VARIABLE */
277
,
/* (265) expr ::= BOOL */
{
276
,
-
2
},
/* (262) expr ::= PLUS VARIABLE */
277
,
/* (266) expr ::= NULL */
{
276
,
-
2
},
/* (263) expr ::= MINUS VARIABLE */
277
,
/* (267) expr ::= ID LP exprlist RP */
{
276
,
-
1
},
/* (264) expr ::= BOOL */
277
,
/* (268) expr ::= ID LP STAR RP */
{
276
,
-
1
},
/* (265) expr ::= NULL */
277
,
/* (269) expr ::= ID LP expr AS typename RP */
{
276
,
-
4
},
/* (266) expr ::= ID LP exprlist RP */
277
,
/* (270) expr ::= expr IS NULL */
{
276
,
-
4
},
/* (267) expr ::= ID LP STAR RP */
277
,
/* (271) expr ::= expr IS NOT NULL */
{
276
,
-
6
},
/* (268) expr ::= ID LP expr AS typename RP */
277
,
/* (272) expr ::= expr LT expr */
{
276
,
-
3
},
/* (269) expr ::= expr IS NULL */
277
,
/* (273) expr ::= expr GT expr */
{
276
,
-
4
},
/* (270) expr ::= expr IS NOT NULL */
277
,
/* (274) expr ::= expr LE expr */
{
276
,
-
3
},
/* (271) expr ::= expr LT expr */
277
,
/* (275) expr ::= expr GE expr */
{
276
,
-
3
},
/* (272) expr ::= expr GT expr */
277
,
/* (276) expr ::= expr NE expr */
{
276
,
-
3
},
/* (273) expr ::= expr LE expr */
277
,
/* (277) expr ::= expr EQ expr */
{
276
,
-
3
},
/* (274) expr ::= expr GE expr */
277
,
/* (278) expr ::= expr BETWEEN expr AND expr */
{
276
,
-
3
},
/* (275) expr ::= expr NE expr */
277
,
/* (279) expr ::= expr AND expr */
{
276
,
-
3
},
/* (276) expr ::= expr EQ expr */
277
,
/* (280) expr ::= expr OR expr */
{
276
,
-
5
},
/* (277) expr ::= expr BETWEEN expr AND expr */
277
,
/* (281) expr ::= expr PLUS expr */
{
276
,
-
3
},
/* (278) expr ::= expr AND expr */
277
,
/* (282) expr ::= expr MINUS expr */
{
276
,
-
3
},
/* (279) expr ::= expr OR expr */
277
,
/* (283) expr ::= expr STAR expr */
{
276
,
-
3
},
/* (280) expr ::= expr PLUS expr */
277
,
/* (284) expr ::= expr SLASH expr */
{
276
,
-
3
},
/* (281) expr ::= expr MINUS expr */
277
,
/* (285) expr ::= expr REM expr */
{
276
,
-
3
},
/* (282) expr ::= expr STAR expr */
277
,
/* (286) expr ::= expr LIKE expr */
{
276
,
-
3
},
/* (283) expr ::= expr SLASH expr */
277
,
/* (287) expr ::= expr MATCH expr */
{
276
,
-
3
},
/* (284) expr ::= expr REM expr */
277
,
/* (288) expr ::= expr NMATCH expr */
{
276
,
-
3
},
/* (285) expr ::= expr LIKE expr */
277
,
/* (289) expr ::= ID CONTAINS STRING */
{
276
,
-
3
},
/* (286) expr ::= expr MATCH expr */
277
,
/* (290) expr ::= ID DOT ID CONTAINS STRING */
{
276
,
-
3
},
/* (287) expr ::= expr NMATCH expr */
287
,
/* (291) arrow ::= ID ARROW STRING */
{
276
,
-
3
},
/* (288) expr ::= ID CONTAINS STRING */
287
,
/* (292) arrow ::= ID DOT ID ARROW STRING */
{
276
,
-
5
},
/* (289) expr ::= ID DOT ID CONTAINS STRING */
277
,
/* (293) expr ::= arrow */
{
286
,
-
3
},
/* (290) arrow ::= ID ARROW STRING */
277
,
/* (294) expr ::= expr IN LP exprlist RP */
{
286
,
-
5
},
/* (291) arrow ::= ID DOT ID ARROW STRING */
213
,
/* (295) exprlist ::= exprlist COMMA expritem */
{
276
,
-
1
},
/* (292) expr ::= arrow */
213
,
/* (296) exprlist ::= expritem */
{
276
,
-
5
},
/* (293) expr ::= expr IN LP exprlist RP */
289
,
/* (297) expritem ::= expr */
{
212
,
-
3
},
/* (294) exprlist ::= exprlist COMMA expritem */
289
,
/* (298) expritem ::= */
{
212
,
-
1
},
/* (295) exprlist ::= expritem */
205
,
/* (299) cmd ::= RESET QUERY CACHE */
{
288
,
-
1
},
/* (296) expritem ::= expr */
205
,
/* (300) cmd ::= SYNCDB ids REPLICA */
{
288
,
0
},
/* (297) expritem ::= */
205
,
/* (301) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{
204
,
-
3
},
/* (298) cmd ::= RESET QUERY CACHE */
205
,
/* (302) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{
204
,
-
3
},
/* (299) cmd ::= SYNCDB ids REPLICA */
205
,
/* (303) cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
{
204
,
-
7
},
/* (300) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
205
,
/* (304) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
204
,
-
7
},
/* (301) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
205
,
/* (305) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{
204
,
-
7
},
/* (302) cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
205
,
/* (306) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{
204
,
-
7
},
/* (303) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
205
,
/* (307) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{
204
,
-
7
},
/* (304) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
205
,
/* (308) cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
{
204
,
-
8
},
/* (305) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
205
,
/* (309) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
{
204
,
-
9
},
/* (306) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
205
,
/* (310) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
{
204
,
-
7
},
/* (307) cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
205
,
/* (311) cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
{
204
,
-
7
},
/* (308) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
205
,
/* (312) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
{
204
,
-
7
},
/* (309) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
205
,
/* (313) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
{
204
,
-
7
},
/* (310) cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
205
,
/* (314) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
{
204
,
-
7
},
/* (311) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
205
,
/* (315) cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */
{
204
,
-
7
},
/* (312) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
205
,
/* (316) cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
{
204
,
-
8
},
/* (313) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
205
,
/* (317) cmd ::= KILL CONNECTION INTEGER */
{
204
,
-
9
},
/* (314) cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */
205
,
/* (318) cmd ::= KILL STREAM INTEGER COLON INTEGER */
{
204
,
-
7
},
/* (315) cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
205
,
/* (319) cmd ::= KILL QUERY INTEGER COLON INTEGER */
{
204
,
-
3
},
/* (316) cmd ::= KILL CONNECTION INTEGER */
};
{
204
,
-
5
},
/* (317) cmd ::= KILL STREAM INTEGER COLON INTEGER */
{
204
,
-
5
},
/* (318) cmd ::= KILL QUERY INTEGER COLON INTEGER */
/* For rule J, yyRuleInfoNRhs[J] contains the negative of the number
** of symbols on the right-hand side of that rule. */
static
const
signed
char
yyRuleInfoNRhs
[]
=
{
-
1
,
/* (0) program ::= cmd */
-
2
,
/* (1) cmd ::= SHOW DATABASES */
-
2
,
/* (2) cmd ::= SHOW TOPICS */
-
2
,
/* (3) cmd ::= SHOW FUNCTIONS */
-
2
,
/* (4) cmd ::= SHOW MNODES */
-
2
,
/* (5) cmd ::= SHOW DNODES */
-
2
,
/* (6) cmd ::= SHOW ACCOUNTS */
-
2
,
/* (7) cmd ::= SHOW USERS */
-
2
,
/* (8) cmd ::= SHOW MODULES */
-
2
,
/* (9) cmd ::= SHOW QUERIES */
-
2
,
/* (10) cmd ::= SHOW CONNECTIONS */
-
2
,
/* (11) cmd ::= SHOW STREAMS */
-
2
,
/* (12) cmd ::= SHOW VARIABLES */
-
2
,
/* (13) cmd ::= SHOW SCORES */
-
2
,
/* (14) cmd ::= SHOW GRANTS */
-
2
,
/* (15) cmd ::= SHOW VNODES */
-
3
,
/* (16) cmd ::= SHOW VNODES ids */
0
,
/* (17) dbPrefix ::= */
-
2
,
/* (18) dbPrefix ::= ids DOT */
0
,
/* (19) cpxName ::= */
-
2
,
/* (20) cpxName ::= DOT ids */
-
5
,
/* (21) cmd ::= SHOW CREATE TABLE ids cpxName */
-
5
,
/* (22) cmd ::= SHOW CREATE STABLE ids cpxName */
-
4
,
/* (23) cmd ::= SHOW CREATE DATABASE ids */
-
3
,
/* (24) cmd ::= SHOW dbPrefix TABLES */
-
5
,
/* (25) cmd ::= SHOW dbPrefix TABLES LIKE STRING */
-
3
,
/* (26) cmd ::= SHOW dbPrefix STABLES */
-
5
,
/* (27) cmd ::= SHOW dbPrefix STABLES LIKE STRING */
-
3
,
/* (28) cmd ::= SHOW dbPrefix VGROUPS */
-
5
,
/* (29) cmd ::= DROP TABLE ifexists ids cpxName */
-
5
,
/* (30) cmd ::= DROP STABLE ifexists ids cpxName */
-
4
,
/* (31) cmd ::= DROP DATABASE ifexists ids */
-
4
,
/* (32) cmd ::= DROP TOPIC ifexists ids */
-
3
,
/* (33) cmd ::= DROP FUNCTION ids */
-
3
,
/* (34) cmd ::= DROP DNODE ids */
-
3
,
/* (35) cmd ::= DROP USER ids */
-
3
,
/* (36) cmd ::= DROP ACCOUNT ids */
-
2
,
/* (37) cmd ::= USE ids */
-
3
,
/* (38) cmd ::= DESCRIBE ids cpxName */
-
3
,
/* (39) cmd ::= DESC ids cpxName */
-
5
,
/* (40) cmd ::= ALTER USER ids PASS ids */
-
5
,
/* (41) cmd ::= ALTER USER ids PRIVILEGE ids */
-
4
,
/* (42) cmd ::= ALTER DNODE ids ids */
-
5
,
/* (43) cmd ::= ALTER DNODE ids ids ids */
-
3
,
/* (44) cmd ::= ALTER LOCAL ids */
-
4
,
/* (45) cmd ::= ALTER LOCAL ids ids */
-
4
,
/* (46) cmd ::= ALTER DATABASE ids alter_db_optr */
-
4
,
/* (47) cmd ::= ALTER TOPIC ids alter_topic_optr */
-
4
,
/* (48) cmd ::= ALTER ACCOUNT ids acct_optr */
-
6
,
/* (49) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
-
6
,
/* (50) cmd ::= COMPACT VNODES IN LP exprlist RP */
-
1
,
/* (51) ids ::= ID */
-
1
,
/* (52) ids ::= STRING */
-
2
,
/* (53) ifexists ::= IF EXISTS */
0
,
/* (54) ifexists ::= */
-
3
,
/* (55) ifnotexists ::= IF NOT EXISTS */
0
,
/* (56) ifnotexists ::= */
-
3
,
/* (57) cmd ::= CREATE DNODE ids */
-
6
,
/* (58) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
-
5
,
/* (59) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
-
5
,
/* (60) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
-
8
,
/* (61) cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
-
9
,
/* (62) cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
-
5
,
/* (63) cmd ::= CREATE USER ids PASS ids */
0
,
/* (64) bufsize ::= */
-
2
,
/* (65) bufsize ::= BUFSIZE INTEGER */
0
,
/* (66) pps ::= */
-
2
,
/* (67) pps ::= PPS INTEGER */
0
,
/* (68) tseries ::= */
-
2
,
/* (69) tseries ::= TSERIES INTEGER */
0
,
/* (70) dbs ::= */
-
2
,
/* (71) dbs ::= DBS INTEGER */
0
,
/* (72) streams ::= */
-
2
,
/* (73) streams ::= STREAMS INTEGER */
0
,
/* (74) storage ::= */
-
2
,
/* (75) storage ::= STORAGE INTEGER */
0
,
/* (76) qtime ::= */
-
2
,
/* (77) qtime ::= QTIME INTEGER */
0
,
/* (78) users ::= */
-
2
,
/* (79) users ::= USERS INTEGER */
0
,
/* (80) conns ::= */
-
2
,
/* (81) conns ::= CONNS INTEGER */
0
,
/* (82) state ::= */
-
2
,
/* (83) state ::= STATE ids */
-
9
,
/* (84) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
-
3
,
/* (85) intitemlist ::= intitemlist COMMA intitem */
-
1
,
/* (86) intitemlist ::= intitem */
-
1
,
/* (87) intitem ::= INTEGER */
-
2
,
/* (88) keep ::= KEEP intitemlist */
-
2
,
/* (89) cache ::= CACHE INTEGER */
-
2
,
/* (90) replica ::= REPLICA INTEGER */
-
2
,
/* (91) quorum ::= QUORUM INTEGER */
-
2
,
/* (92) days ::= DAYS INTEGER */
-
2
,
/* (93) minrows ::= MINROWS INTEGER */
-
2
,
/* (94) maxrows ::= MAXROWS INTEGER */
-
2
,
/* (95) blocks ::= BLOCKS INTEGER */
-
2
,
/* (96) ctime ::= CTIME INTEGER */
-
2
,
/* (97) wal ::= WAL INTEGER */
-
2
,
/* (98) fsync ::= FSYNC INTEGER */
-
2
,
/* (99) comp ::= COMP INTEGER */
-
2
,
/* (100) prec ::= PRECISION STRING */
-
2
,
/* (101) update ::= UPDATE INTEGER */
-
2
,
/* (102) cachelast ::= CACHELAST INTEGER */
-
2
,
/* (103) partitions ::= PARTITIONS INTEGER */
0
,
/* (104) db_optr ::= */
-
2
,
/* (105) db_optr ::= db_optr cache */
-
2
,
/* (106) db_optr ::= db_optr replica */
-
2
,
/* (107) db_optr ::= db_optr quorum */
-
2
,
/* (108) db_optr ::= db_optr days */
-
2
,
/* (109) db_optr ::= db_optr minrows */
-
2
,
/* (110) db_optr ::= db_optr maxrows */
-
2
,
/* (111) db_optr ::= db_optr blocks */
-
2
,
/* (112) db_optr ::= db_optr ctime */
-
2
,
/* (113) db_optr ::= db_optr wal */
-
2
,
/* (114) db_optr ::= db_optr fsync */
-
2
,
/* (115) db_optr ::= db_optr comp */
-
2
,
/* (116) db_optr ::= db_optr prec */
-
2
,
/* (117) db_optr ::= db_optr keep */
-
2
,
/* (118) db_optr ::= db_optr update */
-
2
,
/* (119) db_optr ::= db_optr cachelast */
-
1
,
/* (120) topic_optr ::= db_optr */
-
2
,
/* (121) topic_optr ::= topic_optr partitions */
0
,
/* (122) alter_db_optr ::= */
-
2
,
/* (123) alter_db_optr ::= alter_db_optr replica */
-
2
,
/* (124) alter_db_optr ::= alter_db_optr quorum */
-
2
,
/* (125) alter_db_optr ::= alter_db_optr keep */
-
2
,
/* (126) alter_db_optr ::= alter_db_optr blocks */
-
2
,
/* (127) alter_db_optr ::= alter_db_optr comp */
-
2
,
/* (128) alter_db_optr ::= alter_db_optr update */
-
2
,
/* (129) alter_db_optr ::= alter_db_optr cachelast */
-
1
,
/* (130) alter_topic_optr ::= alter_db_optr */
-
2
,
/* (131) alter_topic_optr ::= alter_topic_optr partitions */
-
1
,
/* (132) typename ::= ids */
-
4
,
/* (133) typename ::= ids LP signed RP */
-
2
,
/* (134) typename ::= ids UNSIGNED */
-
1
,
/* (135) signed ::= INTEGER */
-
2
,
/* (136) signed ::= PLUS INTEGER */
-
2
,
/* (137) signed ::= MINUS INTEGER */
-
3
,
/* (138) cmd ::= CREATE TABLE create_table_args */
-
3
,
/* (139) cmd ::= CREATE TABLE create_stable_args */
-
3
,
/* (140) cmd ::= CREATE STABLE create_stable_args */
-
3
,
/* (141) cmd ::= CREATE TABLE create_table_list */
-
1
,
/* (142) create_table_list ::= create_from_stable */
-
2
,
/* (143) create_table_list ::= create_table_list create_from_stable */
-
6
,
/* (144) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
-
10
,
/* (145) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
-
10
,
/* (146) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
-
13
,
/* (147) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
-
3
,
/* (148) tagNamelist ::= tagNamelist COMMA ids */
-
1
,
/* (149) tagNamelist ::= ids */
-
7
,
/* (150) create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select */
0
,
/* (151) to_opt ::= */
-
3
,
/* (152) to_opt ::= TO ids cpxName */
0
,
/* (153) split_opt ::= */
-
2
,
/* (154) split_opt ::= SPLIT ids */
-
3
,
/* (155) columnlist ::= columnlist COMMA column */
-
1
,
/* (156) columnlist ::= column */
-
2
,
/* (157) column ::= ids typename */
-
3
,
/* (158) tagitemlist ::= tagitemlist COMMA tagitem */
-
1
,
/* (159) tagitemlist ::= tagitem */
-
1
,
/* (160) tagitem ::= INTEGER */
-
1
,
/* (161) tagitem ::= FLOAT */
-
1
,
/* (162) tagitem ::= STRING */
-
1
,
/* (163) tagitem ::= BOOL */
-
1
,
/* (164) tagitem ::= NULL */
-
1
,
/* (165) tagitem ::= NOW */
-
3
,
/* (166) tagitem ::= NOW PLUS VARIABLE */
-
3
,
/* (167) tagitem ::= NOW MINUS VARIABLE */
-
2
,
/* (168) tagitem ::= MINUS INTEGER */
-
2
,
/* (169) tagitem ::= MINUS FLOAT */
-
2
,
/* (170) tagitem ::= PLUS INTEGER */
-
2
,
/* (171) tagitem ::= PLUS FLOAT */
-
15
,
/* (172) select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
-
3
,
/* (173) select ::= LP select RP */
-
1
,
/* (174) union ::= select */
-
4
,
/* (175) union ::= union UNION ALL select */
-
1
,
/* (176) cmd ::= union */
-
2
,
/* (177) select ::= SELECT selcollist */
-
2
,
/* (178) sclp ::= selcollist COMMA */
0
,
/* (179) sclp ::= */
-
4
,
/* (180) selcollist ::= sclp distinct expr as */
-
2
,
/* (181) selcollist ::= sclp STAR */
-
2
,
/* (182) as ::= AS ids */
-
1
,
/* (183) as ::= ids */
0
,
/* (184) as ::= */
-
1
,
/* (185) distinct ::= DISTINCT */
0
,
/* (186) distinct ::= */
-
2
,
/* (187) from ::= FROM tablelist */
-
2
,
/* (188) from ::= FROM sub */
-
3
,
/* (189) sub ::= LP union RP */
-
4
,
/* (190) sub ::= LP union RP ids */
-
6
,
/* (191) sub ::= sub COMMA LP union RP ids */
-
2
,
/* (192) tablelist ::= ids cpxName */
-
3
,
/* (193) tablelist ::= ids cpxName ids */
-
4
,
/* (194) tablelist ::= tablelist COMMA ids cpxName */
-
5
,
/* (195) tablelist ::= tablelist COMMA ids cpxName ids */
-
1
,
/* (196) tmvar ::= VARIABLE */
-
1
,
/* (197) timestamp ::= INTEGER */
-
2
,
/* (198) timestamp ::= MINUS INTEGER */
-
2
,
/* (199) timestamp ::= PLUS INTEGER */
-
1
,
/* (200) timestamp ::= STRING */
-
1
,
/* (201) timestamp ::= NOW */
-
3
,
/* (202) timestamp ::= NOW PLUS VARIABLE */
-
3
,
/* (203) timestamp ::= NOW MINUS VARIABLE */
0
,
/* (204) range_option ::= */
-
6
,
/* (205) range_option ::= RANGE LP timestamp COMMA timestamp RP */
-
4
,
/* (206) interval_option ::= intervalKey LP tmvar RP */
-
6
,
/* (207) interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
0
,
/* (208) interval_option ::= */
-
1
,
/* (209) intervalKey ::= INTERVAL */
-
1
,
/* (210) intervalKey ::= EVERY */
0
,
/* (211) session_option ::= */
-
7
,
/* (212) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
0
,
/* (213) windowstate_option ::= */
-
4
,
/* (214) windowstate_option ::= STATE_WINDOW LP ids RP */
0
,
/* (215) fill_opt ::= */
-
6
,
/* (216) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
-
4
,
/* (217) fill_opt ::= FILL LP ID RP */
-
4
,
/* (218) sliding_opt ::= SLIDING LP tmvar RP */
0
,
/* (219) sliding_opt ::= */
0
,
/* (220) orderby_opt ::= */
-
3
,
/* (221) orderby_opt ::= ORDER BY sortlist */
-
4
,
/* (222) sortlist ::= sortlist COMMA item sortorder */
-
4
,
/* (223) sortlist ::= sortlist COMMA arrow sortorder */
-
2
,
/* (224) sortlist ::= item sortorder */
-
2
,
/* (225) sortlist ::= arrow sortorder */
-
1
,
/* (226) item ::= ID */
-
3
,
/* (227) item ::= ID DOT ID */
-
1
,
/* (228) sortorder ::= ASC */
-
1
,
/* (229) sortorder ::= DESC */
0
,
/* (230) sortorder ::= */
0
,
/* (231) groupby_opt ::= */
-
3
,
/* (232) groupby_opt ::= GROUP BY grouplist */
-
3
,
/* (233) grouplist ::= grouplist COMMA item */
-
3
,
/* (234) grouplist ::= grouplist COMMA arrow */
-
1
,
/* (235) grouplist ::= item */
-
1
,
/* (236) grouplist ::= arrow */
0
,
/* (237) having_opt ::= */
-
2
,
/* (238) having_opt ::= HAVING expr */
0
,
/* (239) limit_opt ::= */
-
2
,
/* (240) limit_opt ::= LIMIT signed */
-
4
,
/* (241) limit_opt ::= LIMIT signed OFFSET signed */
-
4
,
/* (242) limit_opt ::= LIMIT signed COMMA signed */
0
,
/* (243) slimit_opt ::= */
-
2
,
/* (244) slimit_opt ::= SLIMIT signed */
-
4
,
/* (245) slimit_opt ::= SLIMIT signed SOFFSET signed */
-
4
,
/* (246) slimit_opt ::= SLIMIT signed COMMA signed */
0
,
/* (247) where_opt ::= */
-
2
,
/* (248) where_opt ::= WHERE expr */
-
3
,
/* (249) expr ::= LP expr RP */
-
1
,
/* (250) expr ::= ID */
-
3
,
/* (251) expr ::= ID DOT ID */
-
3
,
/* (252) expr ::= ID DOT STAR */
-
1
,
/* (253) expr ::= INTEGER */
-
2
,
/* (254) expr ::= MINUS INTEGER */
-
2
,
/* (255) expr ::= PLUS INTEGER */
-
1
,
/* (256) expr ::= FLOAT */
-
2
,
/* (257) expr ::= MINUS FLOAT */
-
2
,
/* (258) expr ::= PLUS FLOAT */
-
1
,
/* (259) expr ::= STRING */
-
1
,
/* (260) expr ::= NOW */
-
1
,
/* (261) expr ::= TODAY */
-
1
,
/* (262) expr ::= VARIABLE */
-
2
,
/* (263) expr ::= PLUS VARIABLE */
-
2
,
/* (264) expr ::= MINUS VARIABLE */
-
1
,
/* (265) expr ::= BOOL */
-
1
,
/* (266) expr ::= NULL */
-
4
,
/* (267) expr ::= ID LP exprlist RP */
-
4
,
/* (268) expr ::= ID LP STAR RP */
-
6
,
/* (269) expr ::= ID LP expr AS typename RP */
-
3
,
/* (270) expr ::= expr IS NULL */
-
4
,
/* (271) expr ::= expr IS NOT NULL */
-
3
,
/* (272) expr ::= expr LT expr */
-
3
,
/* (273) expr ::= expr GT expr */
-
3
,
/* (274) expr ::= expr LE expr */
-
3
,
/* (275) expr ::= expr GE expr */
-
3
,
/* (276) expr ::= expr NE expr */
-
3
,
/* (277) expr ::= expr EQ expr */
-
5
,
/* (278) expr ::= expr BETWEEN expr AND expr */
-
3
,
/* (279) expr ::= expr AND expr */
-
3
,
/* (280) expr ::= expr OR expr */
-
3
,
/* (281) expr ::= expr PLUS expr */
-
3
,
/* (282) expr ::= expr MINUS expr */
-
3
,
/* (283) expr ::= expr STAR expr */
-
3
,
/* (284) expr ::= expr SLASH expr */
-
3
,
/* (285) expr ::= expr REM expr */
-
3
,
/* (286) expr ::= expr LIKE expr */
-
3
,
/* (287) expr ::= expr MATCH expr */
-
3
,
/* (288) expr ::= expr NMATCH expr */
-
3
,
/* (289) expr ::= ID CONTAINS STRING */
-
5
,
/* (290) expr ::= ID DOT ID CONTAINS STRING */
-
3
,
/* (291) arrow ::= ID ARROW STRING */
-
5
,
/* (292) arrow ::= ID DOT ID ARROW STRING */
-
1
,
/* (293) expr ::= arrow */
-
5
,
/* (294) expr ::= expr IN LP exprlist RP */
-
3
,
/* (295) exprlist ::= exprlist COMMA expritem */
-
1
,
/* (296) exprlist ::= expritem */
-
1
,
/* (297) expritem ::= expr */
0
,
/* (298) expritem ::= */
-
3
,
/* (299) cmd ::= RESET QUERY CACHE */
-
3
,
/* (300) cmd ::= SYNCDB ids REPLICA */
-
7
,
/* (301) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
-
7
,
/* (302) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
-
7
,
/* (303) cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
-
7
,
/* (304) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
-
7
,
/* (305) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
-
8
,
/* (306) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
-
9
,
/* (307) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
-
7
,
/* (308) cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
-
7
,
/* (309) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
-
7
,
/* (310) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
-
7
,
/* (311) cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
-
7
,
/* (312) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
-
7
,
/* (313) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
-
8
,
/* (314) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
-
9
,
/* (315) cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */
-
7
,
/* (316) cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
-
3
,
/* (317) cmd ::= KILL CONNECTION INTEGER */
-
5
,
/* (318) cmd ::= KILL STREAM INTEGER COLON INTEGER */
-
5
,
/* (319) cmd ::= KILL QUERY INTEGER COLON INTEGER */
};
};
static
void
yy_accept
(
yyParser
*
);
/* Forward Declaration */
static
void
yy_accept
(
yyParser
*
);
/* Forward Declaration */
...
@@ -2274,14 +2596,17 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2274,14 +2596,17 @@ static YYACTIONTYPE yy_reduce(
yymsp
=
yypParser
->
yytos
;
yymsp
=
yypParser
->
yytos
;
#ifndef NDEBUG
#ifndef NDEBUG
if
(
yyTraceFILE
&&
yyruleno
<
(
int
)(
sizeof
(
yyRuleName
)
/
sizeof
(
yyRuleName
[
0
]))
){
if
(
yyTraceFILE
&&
yyruleno
<
(
int
)(
sizeof
(
yyRuleName
)
/
sizeof
(
yyRuleName
[
0
]))
){
yysize
=
yyRuleInfo
[
yyruleno
].
nrhs
;
yysize
=
yyRuleInfo
NRhs
[
yyruleno
]
;
if
(
yysize
){
if
(
yysize
){
fprintf
(
yyTraceFILE
,
"%sReduce %d [%s]
, go
to state %d.
\n
"
,
fprintf
(
yyTraceFILE
,
"%sReduce %d [%s]
%s, pop back
to state %d.
\n
"
,
yyTracePrompt
,
yyTracePrompt
,
yyruleno
,
yyRuleName
[
yyruleno
],
yymsp
[
yysize
].
stateno
);
yyruleno
,
yyRuleName
[
yyruleno
],
yyruleno
<
YYNRULE_WITH_ACTION
?
""
:
" without external action"
,
yymsp
[
yysize
].
stateno
);
}
else
{
}
else
{
fprintf
(
yyTraceFILE
,
"%sReduce %d [%s].
\n
"
,
fprintf
(
yyTraceFILE
,
"%sReduce %d [%s]%s.
\n
"
,
yyTracePrompt
,
yyruleno
,
yyRuleName
[
yyruleno
]);
yyTracePrompt
,
yyruleno
,
yyRuleName
[
yyruleno
],
yyruleno
<
YYNRULE_WITH_ACTION
?
""
:
" without external action"
);
}
}
}
}
#endif
/* NDEBUG */
#endif
/* NDEBUG */
...
@@ -2289,7 +2614,7 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2289,7 +2614,7 @@ static YYACTIONTYPE yy_reduce(
/* Check that the stack is large enough to grow by a single entry
/* Check that the stack is large enough to grow by a single entry
** if the RHS of the rule is empty. This ensures that there is room
** if the RHS of the rule is empty. This ensures that there is room
** enough on the stack to push the LHS value */
** enough on the stack to push the LHS value */
if
(
yyRuleInfo
[
yyruleno
].
nrhs
==
0
){
if
(
yyRuleInfo
NRhs
[
yyruleno
]
==
0
){
#ifdef YYTRACKMAXSTACKDEPTH
#ifdef YYTRACKMAXSTACKDEPTH
if
(
(
int
)(
yypParser
->
yytos
-
yypParser
->
yystack
)
>
yypParser
->
yyhwm
){
if
(
(
int
)(
yypParser
->
yytos
-
yypParser
->
yystack
)
>
yypParser
->
yyhwm
){
yypParser
->
yyhwm
++
;
yypParser
->
yyhwm
++
;
...
@@ -2502,16 +2827,16 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2502,16 +2827,16 @@ static YYACTIONTYPE yy_reduce(
break
;
break
;
case
46
:
/* cmd ::= ALTER DATABASE ids alter_db_optr */
case
46
:
/* cmd ::= ALTER DATABASE ids alter_db_optr */
case
47
:
/* cmd ::= ALTER TOPIC ids alter_topic_optr */
yytestcase
(
yyruleno
==
47
);
case
47
:
/* cmd ::= ALTER TOPIC ids alter_topic_optr */
yytestcase
(
yyruleno
==
47
);
{
SStrToken
t
=
{
0
};
setCreateDbInfo
(
pInfo
,
TSDB_SQL_ALTER_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
560
,
&
t
);}
{
SStrToken
t
=
{
0
};
setCreateDbInfo
(
pInfo
,
TSDB_SQL_ALTER_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
302
,
&
t
);}
break
;
break
;
case
48
:
/* cmd ::= ALTER ACCOUNT ids acct_optr */
case
48
:
/* cmd ::= ALTER ACCOUNT ids acct_optr */
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
,
&
yymsp
[
0
].
minor
.
yy2
05
);}
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
,
&
yymsp
[
0
].
minor
.
yy2
31
);}
break
;
break
;
case
49
:
/* cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
case
49
:
/* cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy2
05
);}
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy2
31
);}
break
;
break
;
case
50
:
/* cmd ::= COMPACT VNODES IN LP exprlist RP */
case
50
:
/* cmd ::= COMPACT VNODES IN LP exprlist RP */
{
setCompactVnodeSql
(
pInfo
,
TSDB_SQL_COMPACT_VNODE
,
yymsp
[
-
1
].
minor
.
yy
209
);}
{
setCompactVnodeSql
(
pInfo
,
TSDB_SQL_COMPACT_VNODE
,
yymsp
[
-
1
].
minor
.
yy
161
);}
break
;
break
;
case
51
:
/* ids ::= ID */
case
51
:
/* ids ::= ID */
case
52
:
/* ids ::= STRING */
yytestcase
(
yyruleno
==
52
);
case
52
:
/* ids ::= STRING */
yytestcase
(
yyruleno
==
52
);
...
@@ -2533,17 +2858,17 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2533,17 +2858,17 @@ static YYACTIONTYPE yy_reduce(
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_CREATE_DNODE
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_CREATE_DNODE
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);}
break
;
break
;
case
58
:
/* cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
case
58
:
/* cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_CREATE_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy2
05
);}
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_CREATE_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy2
31
);}
break
;
break
;
case
59
:
/* cmd ::= CREATE DATABASE ifnotexists ids db_optr */
case
59
:
/* cmd ::= CREATE DATABASE ifnotexists ids db_optr */
case
60
:
/* cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
yytestcase
(
yyruleno
==
60
);
case
60
:
/* cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
yytestcase
(
yyruleno
==
60
);
{
setCreateDbInfo
(
pInfo
,
TSDB_SQL_CREATE_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
560
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
{
setCreateDbInfo
(
pInfo
,
TSDB_SQL_CREATE_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
302
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
break
;
break
;
case
61
:
/* cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
case
61
:
/* cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
{
setCreateFuncInfo
(
pInfo
,
TSDB_SQL_CREATE_FUNCTION
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy
369
,
&
yymsp
[
0
].
minor
.
yy0
,
1
);}
{
setCreateFuncInfo
(
pInfo
,
TSDB_SQL_CREATE_FUNCTION
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy
223
,
&
yymsp
[
0
].
minor
.
yy0
,
1
);}
break
;
break
;
case
62
:
/* cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
case
62
:
/* cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
{
setCreateFuncInfo
(
pInfo
,
TSDB_SQL_CREATE_FUNCTION
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy
369
,
&
yymsp
[
0
].
minor
.
yy0
,
2
);}
{
setCreateFuncInfo
(
pInfo
,
TSDB_SQL_CREATE_FUNCTION
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy
223
,
&
yymsp
[
0
].
minor
.
yy0
,
2
);}
break
;
break
;
case
63
:
/* cmd ::= CREATE USER ids PASS ids */
case
63
:
/* cmd ::= CREATE USER ids PASS ids */
{
setCreateUserSql
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
setCreateUserSql
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);}
...
@@ -2574,38 +2899,38 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2574,38 +2899,38 @@ static YYACTIONTYPE yy_reduce(
break
;
break
;
case
84
:
/* acct_optr ::= pps tseries storage streams qtime dbs users conns state */
case
84
:
/* acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{
{
yylhsminor
.
yy2
05
.
maxUsers
=
(
yymsp
[
-
2
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
2
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy2
31
.
maxUsers
=
(
yymsp
[
-
2
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
2
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy2
05
.
maxDbs
=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
3
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy2
31
.
maxDbs
=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
3
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy2
05
.
maxTimeSeries
=
(
yymsp
[
-
7
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
7
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy2
31
.
maxTimeSeries
=
(
yymsp
[
-
7
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
7
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy2
05
.
maxStreams
=
(
yymsp
[
-
5
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
5
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy2
31
.
maxStreams
=
(
yymsp
[
-
5
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
5
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy2
05
.
maxPointsPerSecond
=
(
yymsp
[
-
8
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
8
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy2
31
.
maxPointsPerSecond
=
(
yymsp
[
-
8
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
8
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy2
05
.
maxStorage
=
(
yymsp
[
-
6
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
6
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy2
31
.
maxStorage
=
(
yymsp
[
-
6
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
6
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy2
05
.
maxQueryTime
=
(
yymsp
[
-
4
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
4
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy2
31
.
maxQueryTime
=
(
yymsp
[
-
4
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
4
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy2
05
.
maxConnections
=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
1
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy2
31
.
maxConnections
=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
1
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy2
05
.
stat
=
yymsp
[
0
].
minor
.
yy0
;
yylhsminor
.
yy2
31
.
stat
=
yymsp
[
0
].
minor
.
yy0
;
}
}
yymsp
[
-
8
].
minor
.
yy2
05
=
yylhsminor
.
yy205
;
yymsp
[
-
8
].
minor
.
yy2
31
=
yylhsminor
.
yy231
;
break
;
break
;
case
85
:
/* intitemlist ::= intitemlist COMMA intitem */
case
85
:
/* intitemlist ::= intitemlist COMMA intitem */
case
158
:
/* tagitemlist ::= tagitemlist COMMA tagitem */
yytestcase
(
yyruleno
==
158
);
case
158
:
/* tagitemlist ::= tagitemlist COMMA tagitem */
yytestcase
(
yyruleno
==
158
);
{
yylhsminor
.
yy
209
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy209
,
&
yymsp
[
0
].
minor
.
yy54
,
-
1
);
}
{
yylhsminor
.
yy
161
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy161
,
&
yymsp
[
0
].
minor
.
yy526
,
-
1
);
}
yymsp
[
-
2
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
-
2
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
86
:
/* intitemlist ::= intitem */
case
86
:
/* intitemlist ::= intitem */
case
159
:
/* tagitemlist ::= tagitem */
yytestcase
(
yyruleno
==
159
);
case
159
:
/* tagitemlist ::= tagitem */
yytestcase
(
yyruleno
==
159
);
{
yylhsminor
.
yy
209
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy54
,
-
1
);
}
{
yylhsminor
.
yy
161
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy526
,
-
1
);
}
yymsp
[
0
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
0
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
87
:
/* intitem ::= INTEGER */
case
87
:
/* intitem ::= INTEGER */
case
160
:
/* tagitem ::= INTEGER */
yytestcase
(
yyruleno
==
160
);
case
160
:
/* tagitem ::= INTEGER */
yytestcase
(
yyruleno
==
160
);
case
161
:
/* tagitem ::= FLOAT */
yytestcase
(
yyruleno
==
161
);
case
161
:
/* tagitem ::= FLOAT */
yytestcase
(
yyruleno
==
161
);
case
162
:
/* tagitem ::= STRING */
yytestcase
(
yyruleno
==
162
);
case
162
:
/* tagitem ::= STRING */
yytestcase
(
yyruleno
==
162
);
case
163
:
/* tagitem ::= BOOL */
yytestcase
(
yyruleno
==
163
);
case
163
:
/* tagitem ::= BOOL */
yytestcase
(
yyruleno
==
163
);
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy5
4
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy5
26
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy5
4
=
yylhsminor
.
yy54
;
yymsp
[
0
].
minor
.
yy5
26
=
yylhsminor
.
yy526
;
break
;
break
;
case
88
:
/* keep ::= KEEP intitemlist */
case
88
:
/* keep ::= KEEP intitemlist */
{
yymsp
[
-
1
].
minor
.
yy
209
=
yymsp
[
0
].
minor
.
yy209
;
}
{
yymsp
[
-
1
].
minor
.
yy
161
=
yymsp
[
0
].
minor
.
yy161
;
}
break
;
break
;
case
89
:
/* cache ::= CACHE INTEGER */
case
89
:
/* cache ::= CACHE INTEGER */
case
90
:
/* replica ::= REPLICA INTEGER */
yytestcase
(
yyruleno
==
90
);
case
90
:
/* replica ::= REPLICA INTEGER */
yytestcase
(
yyruleno
==
90
);
...
@@ -2625,200 +2950,200 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2625,200 +2950,200 @@ static YYACTIONTYPE yy_reduce(
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
break
;
break
;
case
104
:
/* db_optr ::= */
case
104
:
/* db_optr ::= */
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy
560
);
yymsp
[
1
].
minor
.
yy560
.
dbType
=
TSDB_DB_TYPE_DEFAULT
;}
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy
302
);
yymsp
[
1
].
minor
.
yy302
.
dbType
=
TSDB_DB_TYPE_DEFAULT
;}
break
;
break
;
case
105
:
/* db_optr ::= db_optr cache */
case
105
:
/* db_optr ::= db_optr cache */
{
yylhsminor
.
yy
560
=
yymsp
[
-
1
].
minor
.
yy560
;
yylhsminor
.
yy560
.
cacheBlockSize
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
cacheBlockSize
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
560
=
yylhsminor
.
yy560
;
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
break
;
break
;
case
106
:
/* db_optr ::= db_optr replica */
case
106
:
/* db_optr ::= db_optr replica */
case
123
:
/* alter_db_optr ::= alter_db_optr replica */
yytestcase
(
yyruleno
==
123
);
case
123
:
/* alter_db_optr ::= alter_db_optr replica */
yytestcase
(
yyruleno
==
123
);
{
yylhsminor
.
yy
560
=
yymsp
[
-
1
].
minor
.
yy560
;
yylhsminor
.
yy560
.
replica
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
replica
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
560
=
yylhsminor
.
yy560
;
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
break
;
break
;
case
107
:
/* db_optr ::= db_optr quorum */
case
107
:
/* db_optr ::= db_optr quorum */
case
124
:
/* alter_db_optr ::= alter_db_optr quorum */
yytestcase
(
yyruleno
==
124
);
case
124
:
/* alter_db_optr ::= alter_db_optr quorum */
yytestcase
(
yyruleno
==
124
);
{
yylhsminor
.
yy
560
=
yymsp
[
-
1
].
minor
.
yy560
;
yylhsminor
.
yy560
.
quorum
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
quorum
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
560
=
yylhsminor
.
yy560
;
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
break
;
break
;
case
108
:
/* db_optr ::= db_optr days */
case
108
:
/* db_optr ::= db_optr days */
{
yylhsminor
.
yy
560
=
yymsp
[
-
1
].
minor
.
yy560
;
yylhsminor
.
yy560
.
daysPerFile
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
daysPerFile
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
560
=
yylhsminor
.
yy560
;
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
break
;
break
;
case
109
:
/* db_optr ::= db_optr minrows */
case
109
:
/* db_optr ::= db_optr minrows */
{
yylhsminor
.
yy
560
=
yymsp
[
-
1
].
minor
.
yy560
;
yylhsminor
.
yy560
.
minRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
minRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
560
=
yylhsminor
.
yy560
;
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
break
;
break
;
case
110
:
/* db_optr ::= db_optr maxrows */
case
110
:
/* db_optr ::= db_optr maxrows */
{
yylhsminor
.
yy
560
=
yymsp
[
-
1
].
minor
.
yy560
;
yylhsminor
.
yy560
.
maxRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
maxRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
560
=
yylhsminor
.
yy560
;
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
break
;
break
;
case
111
:
/* db_optr ::= db_optr blocks */
case
111
:
/* db_optr ::= db_optr blocks */
case
126
:
/* alter_db_optr ::= alter_db_optr blocks */
yytestcase
(
yyruleno
==
126
);
case
126
:
/* alter_db_optr ::= alter_db_optr blocks */
yytestcase
(
yyruleno
==
126
);
{
yylhsminor
.
yy
560
=
yymsp
[
-
1
].
minor
.
yy560
;
yylhsminor
.
yy560
.
numOfBlocks
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
numOfBlocks
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
560
=
yylhsminor
.
yy560
;
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
break
;
break
;
case
112
:
/* db_optr ::= db_optr ctime */
case
112
:
/* db_optr ::= db_optr ctime */
{
yylhsminor
.
yy
560
=
yymsp
[
-
1
].
minor
.
yy560
;
yylhsminor
.
yy560
.
commitTime
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
commitTime
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
560
=
yylhsminor
.
yy560
;
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
break
;
break
;
case
113
:
/* db_optr ::= db_optr wal */
case
113
:
/* db_optr ::= db_optr wal */
{
yylhsminor
.
yy
560
=
yymsp
[
-
1
].
minor
.
yy560
;
yylhsminor
.
yy560
.
walLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
walLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
560
=
yylhsminor
.
yy560
;
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
break
;
break
;
case
114
:
/* db_optr ::= db_optr fsync */
case
114
:
/* db_optr ::= db_optr fsync */
{
yylhsminor
.
yy
560
=
yymsp
[
-
1
].
minor
.
yy560
;
yylhsminor
.
yy560
.
fsyncPeriod
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
fsyncPeriod
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
560
=
yylhsminor
.
yy560
;
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
break
;
break
;
case
115
:
/* db_optr ::= db_optr comp */
case
115
:
/* db_optr ::= db_optr comp */
case
127
:
/* alter_db_optr ::= alter_db_optr comp */
yytestcase
(
yyruleno
==
127
);
case
127
:
/* alter_db_optr ::= alter_db_optr comp */
yytestcase
(
yyruleno
==
127
);
{
yylhsminor
.
yy
560
=
yymsp
[
-
1
].
minor
.
yy560
;
yylhsminor
.
yy560
.
compressionLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
compressionLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
560
=
yylhsminor
.
yy560
;
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
break
;
break
;
case
116
:
/* db_optr ::= db_optr prec */
case
116
:
/* db_optr ::= db_optr prec */
{
yylhsminor
.
yy
560
=
yymsp
[
-
1
].
minor
.
yy560
;
yylhsminor
.
yy560
.
precision
=
yymsp
[
0
].
minor
.
yy0
;
}
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
precision
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
-
1
].
minor
.
yy
560
=
yylhsminor
.
yy560
;
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
break
;
break
;
case
117
:
/* db_optr ::= db_optr keep */
case
117
:
/* db_optr ::= db_optr keep */
case
125
:
/* alter_db_optr ::= alter_db_optr keep */
yytestcase
(
yyruleno
==
125
);
case
125
:
/* alter_db_optr ::= alter_db_optr keep */
yytestcase
(
yyruleno
==
125
);
{
yylhsminor
.
yy
560
=
yymsp
[
-
1
].
minor
.
yy560
;
yylhsminor
.
yy560
.
keep
=
yymsp
[
0
].
minor
.
yy209
;
}
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
keep
=
yymsp
[
0
].
minor
.
yy161
;
}
yymsp
[
-
1
].
minor
.
yy
560
=
yylhsminor
.
yy560
;
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
break
;
break
;
case
118
:
/* db_optr ::= db_optr update */
case
118
:
/* db_optr ::= db_optr update */
case
128
:
/* alter_db_optr ::= alter_db_optr update */
yytestcase
(
yyruleno
==
128
);
case
128
:
/* alter_db_optr ::= alter_db_optr update */
yytestcase
(
yyruleno
==
128
);
{
yylhsminor
.
yy
560
=
yymsp
[
-
1
].
minor
.
yy560
;
yylhsminor
.
yy560
.
update
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
update
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
560
=
yylhsminor
.
yy560
;
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
break
;
break
;
case
119
:
/* db_optr ::= db_optr cachelast */
case
119
:
/* db_optr ::= db_optr cachelast */
case
129
:
/* alter_db_optr ::= alter_db_optr cachelast */
yytestcase
(
yyruleno
==
129
);
case
129
:
/* alter_db_optr ::= alter_db_optr cachelast */
yytestcase
(
yyruleno
==
129
);
{
yylhsminor
.
yy
560
=
yymsp
[
-
1
].
minor
.
yy560
;
yylhsminor
.
yy560
.
cachelast
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
cachelast
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
560
=
yylhsminor
.
yy560
;
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
break
;
break
;
case
120
:
/* topic_optr ::= db_optr */
case
120
:
/* topic_optr ::= db_optr */
case
130
:
/* alter_topic_optr ::= alter_db_optr */
yytestcase
(
yyruleno
==
130
);
case
130
:
/* alter_topic_optr ::= alter_db_optr */
yytestcase
(
yyruleno
==
130
);
{
yylhsminor
.
yy
560
=
yymsp
[
0
].
minor
.
yy560
;
yylhsminor
.
yy560
.
dbType
=
TSDB_DB_TYPE_TOPIC
;
}
{
yylhsminor
.
yy
302
=
yymsp
[
0
].
minor
.
yy302
;
yylhsminor
.
yy302
.
dbType
=
TSDB_DB_TYPE_TOPIC
;
}
yymsp
[
0
].
minor
.
yy
560
=
yylhsminor
.
yy560
;
yymsp
[
0
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
break
;
break
;
case
121
:
/* topic_optr ::= topic_optr partitions */
case
121
:
/* topic_optr ::= topic_optr partitions */
case
131
:
/* alter_topic_optr ::= alter_topic_optr partitions */
yytestcase
(
yyruleno
==
131
);
case
131
:
/* alter_topic_optr ::= alter_topic_optr partitions */
yytestcase
(
yyruleno
==
131
);
{
yylhsminor
.
yy
560
=
yymsp
[
-
1
].
minor
.
yy560
;
yylhsminor
.
yy560
.
partitions
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy
302
=
yymsp
[
-
1
].
minor
.
yy302
;
yylhsminor
.
yy302
.
partitions
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy
560
=
yylhsminor
.
yy560
;
yymsp
[
-
1
].
minor
.
yy
302
=
yylhsminor
.
yy302
;
break
;
break
;
case
122
:
/* alter_db_optr ::= */
case
122
:
/* alter_db_optr ::= */
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy
560
);
yymsp
[
1
].
minor
.
yy560
.
dbType
=
TSDB_DB_TYPE_DEFAULT
;}
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy
302
);
yymsp
[
1
].
minor
.
yy302
.
dbType
=
TSDB_DB_TYPE_DEFAULT
;}
break
;
break
;
case
132
:
/* typename ::= ids */
case
132
:
/* typename ::= ids */
{
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tSetColumnType
(
&
yylhsminor
.
yy
369
,
&
yymsp
[
0
].
minor
.
yy0
);
tSetColumnType
(
&
yylhsminor
.
yy
223
,
&
yymsp
[
0
].
minor
.
yy0
);
}
}
yymsp
[
0
].
minor
.
yy
369
=
yylhsminor
.
yy369
;
yymsp
[
0
].
minor
.
yy
223
=
yylhsminor
.
yy223
;
break
;
break
;
case
133
:
/* typename ::= ids LP signed RP */
case
133
:
/* typename ::= ids LP signed RP */
{
{
if
(
yymsp
[
-
1
].
minor
.
yy
55
<=
0
)
{
if
(
yymsp
[
-
1
].
minor
.
yy
369
<=
0
)
{
yymsp
[
-
3
].
minor
.
yy0
.
type
=
0
;
yymsp
[
-
3
].
minor
.
yy0
.
type
=
0
;
tSetColumnType
(
&
yylhsminor
.
yy
369
,
&
yymsp
[
-
3
].
minor
.
yy0
);
tSetColumnType
(
&
yylhsminor
.
yy
223
,
&
yymsp
[
-
3
].
minor
.
yy0
);
}
else
{
}
else
{
yymsp
[
-
3
].
minor
.
yy0
.
type
=
-
yymsp
[
-
1
].
minor
.
yy
55
;
// negative value of name length
yymsp
[
-
3
].
minor
.
yy0
.
type
=
-
yymsp
[
-
1
].
minor
.
yy
369
;
// negative value of name length
tSetColumnType
(
&
yylhsminor
.
yy
369
,
&
yymsp
[
-
3
].
minor
.
yy0
);
tSetColumnType
(
&
yylhsminor
.
yy
223
,
&
yymsp
[
-
3
].
minor
.
yy0
);
}
}
}
}
yymsp
[
-
3
].
minor
.
yy
369
=
yylhsminor
.
yy369
;
yymsp
[
-
3
].
minor
.
yy
223
=
yylhsminor
.
yy223
;
break
;
break
;
case
134
:
/* typename ::= ids UNSIGNED */
case
134
:
/* typename ::= ids UNSIGNED */
{
{
yymsp
[
-
1
].
minor
.
yy0
.
type
=
0
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
0
;
yymsp
[
-
1
].
minor
.
yy0
.
n
=
((
yymsp
[
0
].
minor
.
yy0
.
z
+
yymsp
[
0
].
minor
.
yy0
.
n
)
-
yymsp
[
-
1
].
minor
.
yy0
.
z
);
yymsp
[
-
1
].
minor
.
yy0
.
n
=
((
yymsp
[
0
].
minor
.
yy0
.
z
+
yymsp
[
0
].
minor
.
yy0
.
n
)
-
yymsp
[
-
1
].
minor
.
yy0
.
z
);
tSetColumnType
(
&
yylhsminor
.
yy
369
,
&
yymsp
[
-
1
].
minor
.
yy0
);
tSetColumnType
(
&
yylhsminor
.
yy
223
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
}
yymsp
[
-
1
].
minor
.
yy
369
=
yylhsminor
.
yy369
;
yymsp
[
-
1
].
minor
.
yy
223
=
yylhsminor
.
yy223
;
break
;
break
;
case
135
:
/* signed ::= INTEGER */
case
135
:
/* signed ::= INTEGER */
{
yylhsminor
.
yy
55
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy
369
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
0
].
minor
.
yy
55
=
yylhsminor
.
yy55
;
yymsp
[
0
].
minor
.
yy
369
=
yylhsminor
.
yy369
;
break
;
break
;
case
136
:
/* signed ::= PLUS INTEGER */
case
136
:
/* signed ::= PLUS INTEGER */
{
yymsp
[
-
1
].
minor
.
yy
55
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yymsp
[
-
1
].
minor
.
yy
369
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
break
;
break
;
case
137
:
/* signed ::= MINUS INTEGER */
case
137
:
/* signed ::= MINUS INTEGER */
{
yymsp
[
-
1
].
minor
.
yy
55
=
-
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);}
{
yymsp
[
-
1
].
minor
.
yy
369
=
-
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);}
break
;
break
;
case
141
:
/* cmd ::= CREATE TABLE create_table_list */
case
141
:
/* cmd ::= CREATE TABLE create_table_list */
{
pInfo
->
type
=
TSDB_SQL_CREATE_TABLE
;
pInfo
->
pCreateTableInfo
=
yymsp
[
0
].
minor
.
yy4
04
;}
{
pInfo
->
type
=
TSDB_SQL_CREATE_TABLE
;
pInfo
->
pCreateTableInfo
=
yymsp
[
0
].
minor
.
yy4
62
;}
break
;
break
;
case
142
:
/* create_table_list ::= create_from_stable */
case
142
:
/* create_table_list ::= create_from_stable */
{
{
SCreateTableSql
*
pCreateTable
=
calloc
(
1
,
sizeof
(
SCreateTableSql
));
SCreateTableSql
*
pCreateTable
=
calloc
(
1
,
sizeof
(
SCreateTableSql
));
pCreateTable
->
childTableInfo
=
taosArrayInit
(
4
,
sizeof
(
SCreatedTableInfo
));
pCreateTable
->
childTableInfo
=
taosArrayInit
(
4
,
sizeof
(
SCreatedTableInfo
));
taosArrayPush
(
pCreateTable
->
childTableInfo
,
&
yymsp
[
0
].
minor
.
yy3
4
);
taosArrayPush
(
pCreateTable
->
childTableInfo
,
&
yymsp
[
0
].
minor
.
yy3
56
);
pCreateTable
->
type
=
TSQL_CREATE_TABLE_FROM_STABLE
;
pCreateTable
->
type
=
TSQL_CREATE_TABLE_FROM_STABLE
;
yylhsminor
.
yy4
04
=
pCreateTable
;
yylhsminor
.
yy4
62
=
pCreateTable
;
}
}
yymsp
[
0
].
minor
.
yy4
04
=
yylhsminor
.
yy404
;
yymsp
[
0
].
minor
.
yy4
62
=
yylhsminor
.
yy462
;
break
;
break
;
case
143
:
/* create_table_list ::= create_table_list create_from_stable */
case
143
:
/* create_table_list ::= create_table_list create_from_stable */
{
{
taosArrayPush
(
yymsp
[
-
1
].
minor
.
yy4
04
->
childTableInfo
,
&
yymsp
[
0
].
minor
.
yy34
);
taosArrayPush
(
yymsp
[
-
1
].
minor
.
yy4
62
->
childTableInfo
,
&
yymsp
[
0
].
minor
.
yy356
);
yylhsminor
.
yy4
04
=
yymsp
[
-
1
].
minor
.
yy404
;
yylhsminor
.
yy4
62
=
yymsp
[
-
1
].
minor
.
yy462
;
}
}
yymsp
[
-
1
].
minor
.
yy4
04
=
yylhsminor
.
yy404
;
yymsp
[
-
1
].
minor
.
yy4
62
=
yylhsminor
.
yy462
;
break
;
break
;
case
144
:
/* create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
case
144
:
/* create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
{
{
yylhsminor
.
yy4
04
=
tSetCreateTableInfo
(
yymsp
[
-
1
].
minor
.
yy209
,
NULL
,
NULL
,
TSQL_CREATE_TABLE
);
yylhsminor
.
yy4
62
=
tSetCreateTableInfo
(
yymsp
[
-
1
].
minor
.
yy161
,
NULL
,
NULL
,
TSQL_CREATE_TABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy4
04
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy4
62
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
setCreatedTableName
(
pInfo
,
&
yymsp
[
-
4
].
minor
.
yy0
,
&
yymsp
[
-
5
].
minor
.
yy0
);
setCreatedTableName
(
pInfo
,
&
yymsp
[
-
4
].
minor
.
yy0
,
&
yymsp
[
-
5
].
minor
.
yy0
);
}
}
yymsp
[
-
5
].
minor
.
yy4
04
=
yylhsminor
.
yy404
;
yymsp
[
-
5
].
minor
.
yy4
62
=
yylhsminor
.
yy462
;
break
;
break
;
case
145
:
/* create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
case
145
:
/* create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
{
{
yylhsminor
.
yy4
04
=
tSetCreateTableInfo
(
yymsp
[
-
5
].
minor
.
yy209
,
yymsp
[
-
1
].
minor
.
yy209
,
NULL
,
TSQL_CREATE_STABLE
);
yylhsminor
.
yy4
62
=
tSetCreateTableInfo
(
yymsp
[
-
5
].
minor
.
yy161
,
yymsp
[
-
1
].
minor
.
yy161
,
NULL
,
TSQL_CREATE_STABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy4
04
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy4
62
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yymsp
[
-
8
].
minor
.
yy0
.
n
+=
yymsp
[
-
7
].
minor
.
yy0
.
n
;
yymsp
[
-
8
].
minor
.
yy0
.
n
+=
yymsp
[
-
7
].
minor
.
yy0
.
n
;
setCreatedTableName
(
pInfo
,
&
yymsp
[
-
8
].
minor
.
yy0
,
&
yymsp
[
-
9
].
minor
.
yy0
);
setCreatedTableName
(
pInfo
,
&
yymsp
[
-
8
].
minor
.
yy0
,
&
yymsp
[
-
9
].
minor
.
yy0
);
}
}
yymsp
[
-
9
].
minor
.
yy4
04
=
yylhsminor
.
yy404
;
yymsp
[
-
9
].
minor
.
yy4
62
=
yylhsminor
.
yy462
;
break
;
break
;
case
146
:
/* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
case
146
:
/* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
{
{
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
yymsp
[
-
8
].
minor
.
yy0
.
n
+=
yymsp
[
-
7
].
minor
.
yy0
.
n
;
yymsp
[
-
8
].
minor
.
yy0
.
n
+=
yymsp
[
-
7
].
minor
.
yy0
.
n
;
yylhsminor
.
yy3
4
=
createNewChildTableInfo
(
&
yymsp
[
-
5
].
minor
.
yy0
,
NULL
,
yymsp
[
-
1
].
minor
.
yy209
,
&
yymsp
[
-
8
].
minor
.
yy0
,
&
yymsp
[
-
9
].
minor
.
yy0
);
yylhsminor
.
yy3
56
=
createNewChildTableInfo
(
&
yymsp
[
-
5
].
minor
.
yy0
,
NULL
,
yymsp
[
-
1
].
minor
.
yy161
,
&
yymsp
[
-
8
].
minor
.
yy0
,
&
yymsp
[
-
9
].
minor
.
yy0
);
}
}
yymsp
[
-
9
].
minor
.
yy3
4
=
yylhsminor
.
yy34
;
yymsp
[
-
9
].
minor
.
yy3
56
=
yylhsminor
.
yy356
;
break
;
break
;
case
147
:
/* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
case
147
:
/* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
{
{
yymsp
[
-
8
].
minor
.
yy0
.
n
+=
yymsp
[
-
7
].
minor
.
yy0
.
n
;
yymsp
[
-
8
].
minor
.
yy0
.
n
+=
yymsp
[
-
7
].
minor
.
yy0
.
n
;
yymsp
[
-
11
].
minor
.
yy0
.
n
+=
yymsp
[
-
10
].
minor
.
yy0
.
n
;
yymsp
[
-
11
].
minor
.
yy0
.
n
+=
yymsp
[
-
10
].
minor
.
yy0
.
n
;
yylhsminor
.
yy3
4
=
createNewChildTableInfo
(
&
yymsp
[
-
8
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy209
,
yymsp
[
-
1
].
minor
.
yy209
,
&
yymsp
[
-
11
].
minor
.
yy0
,
&
yymsp
[
-
12
].
minor
.
yy0
);
yylhsminor
.
yy3
56
=
createNewChildTableInfo
(
&
yymsp
[
-
8
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy161
,
yymsp
[
-
1
].
minor
.
yy161
,
&
yymsp
[
-
11
].
minor
.
yy0
,
&
yymsp
[
-
12
].
minor
.
yy0
);
}
}
yymsp
[
-
12
].
minor
.
yy3
4
=
yylhsminor
.
yy34
;
yymsp
[
-
12
].
minor
.
yy3
56
=
yylhsminor
.
yy356
;
break
;
break
;
case
148
:
/* tagNamelist ::= tagNamelist COMMA ids */
case
148
:
/* tagNamelist ::= tagNamelist COMMA ids */
{
taosArrayPush
(
yymsp
[
-
2
].
minor
.
yy
209
,
&
yymsp
[
0
].
minor
.
yy0
);
yylhsminor
.
yy209
=
yymsp
[
-
2
].
minor
.
yy209
;
}
{
taosArrayPush
(
yymsp
[
-
2
].
minor
.
yy
161
,
&
yymsp
[
0
].
minor
.
yy0
);
yylhsminor
.
yy161
=
yymsp
[
-
2
].
minor
.
yy161
;
}
yymsp
[
-
2
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
-
2
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
149
:
/* tagNamelist ::= ids */
case
149
:
/* tagNamelist ::= ids */
{
yylhsminor
.
yy
209
=
taosArrayInit
(
4
,
sizeof
(
SStrToken
));
taosArrayPush
(
yylhsminor
.
yy209
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
yylhsminor
.
yy
161
=
taosArrayInit
(
4
,
sizeof
(
SStrToken
));
taosArrayPush
(
yylhsminor
.
yy161
,
&
yymsp
[
0
].
minor
.
yy0
);}
yymsp
[
0
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
0
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
150
:
/* create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select */
case
150
:
/* create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select */
{
{
yylhsminor
.
yy4
04
=
tSetCreateTableInfo
(
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy160
,
TSQL_CREATE_STREAM
);
yylhsminor
.
yy4
62
=
tSetCreateTableInfo
(
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy276
,
TSQL_CREATE_STREAM
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy4
04
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy4
62
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
setCreatedStreamOpt
(
pInfo
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
2
].
minor
.
yy0
);
setCreatedStreamOpt
(
pInfo
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
2
].
minor
.
yy0
);
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
setCreatedTableName
(
pInfo
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
-
6
].
minor
.
yy0
);
setCreatedTableName
(
pInfo
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
-
6
].
minor
.
yy0
);
}
}
yymsp
[
-
6
].
minor
.
yy4
04
=
yylhsminor
.
yy404
;
yymsp
[
-
6
].
minor
.
yy4
62
=
yylhsminor
.
yy462
;
break
;
break
;
case
151
:
/* to_opt ::= */
case
151
:
/* to_opt ::= */
case
153
:
/* split_opt ::= */
yytestcase
(
yyruleno
==
153
);
case
153
:
/* split_opt ::= */
yytestcase
(
yyruleno
==
153
);
...
@@ -2834,37 +3159,37 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2834,37 +3159,37 @@ static YYACTIONTYPE yy_reduce(
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;}
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;}
break
;
break
;
case
155
:
/* columnlist ::= columnlist COMMA column */
case
155
:
/* columnlist ::= columnlist COMMA column */
{
taosArrayPush
(
yymsp
[
-
2
].
minor
.
yy
209
,
&
yymsp
[
0
].
minor
.
yy369
);
yylhsminor
.
yy209
=
yymsp
[
-
2
].
minor
.
yy209
;
}
{
taosArrayPush
(
yymsp
[
-
2
].
minor
.
yy
161
,
&
yymsp
[
0
].
minor
.
yy223
);
yylhsminor
.
yy161
=
yymsp
[
-
2
].
minor
.
yy161
;
}
yymsp
[
-
2
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
-
2
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
156
:
/* columnlist ::= column */
case
156
:
/* columnlist ::= column */
{
yylhsminor
.
yy
209
=
taosArrayInit
(
4
,
sizeof
(
TAOS_FIELD
));
taosArrayPush
(
yylhsminor
.
yy209
,
&
yymsp
[
0
].
minor
.
yy369
);}
{
yylhsminor
.
yy
161
=
taosArrayInit
(
4
,
sizeof
(
TAOS_FIELD
));
taosArrayPush
(
yylhsminor
.
yy161
,
&
yymsp
[
0
].
minor
.
yy223
);}
yymsp
[
0
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
0
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
157
:
/* column ::= ids typename */
case
157
:
/* column ::= ids typename */
{
{
tSetColumnInfo
(
&
yylhsminor
.
yy
369
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy369
);
tSetColumnInfo
(
&
yylhsminor
.
yy
223
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy223
);
}
}
yymsp
[
-
1
].
minor
.
yy
369
=
yylhsminor
.
yy369
;
yymsp
[
-
1
].
minor
.
yy
223
=
yylhsminor
.
yy223
;
break
;
break
;
case
164
:
/* tagitem ::= NULL */
case
164
:
/* tagitem ::= NULL */
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tVariantCreate
(
&
yylhsminor
.
yy5
4
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tVariantCreate
(
&
yylhsminor
.
yy5
26
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy5
4
=
yylhsminor
.
yy54
;
yymsp
[
0
].
minor
.
yy5
26
=
yylhsminor
.
yy526
;
break
;
break
;
case
165
:
/* tagitem ::= NOW */
case
165
:
/* tagitem ::= NOW */
{
yymsp
[
0
].
minor
.
yy0
.
type
=
TSDB_DATA_TYPE_TIMESTAMP
;
tVariantCreateExt
(
&
yylhsminor
.
yy5
4
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
,
true
);}
{
yymsp
[
0
].
minor
.
yy0
.
type
=
TSDB_DATA_TYPE_TIMESTAMP
;
tVariantCreateExt
(
&
yylhsminor
.
yy5
26
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
,
true
);}
yymsp
[
0
].
minor
.
yy5
4
=
yylhsminor
.
yy54
;
yymsp
[
0
].
minor
.
yy5
26
=
yylhsminor
.
yy526
;
break
;
break
;
case
166
:
/* tagitem ::= NOW PLUS VARIABLE */
case
166
:
/* tagitem ::= NOW PLUS VARIABLE */
{
{
yymsp
[
0
].
minor
.
yy0
.
type
=
TSDB_DATA_TYPE_TIMESTAMP
;
yymsp
[
0
].
minor
.
yy0
.
type
=
TSDB_DATA_TYPE_TIMESTAMP
;
tVariantCreateExt
(
&
yymsp
[
-
2
].
minor
.
yy5
4
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_PLUS
,
true
);
tVariantCreateExt
(
&
yymsp
[
-
2
].
minor
.
yy5
26
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_PLUS
,
true
);
}
}
break
;
break
;
case
167
:
/* tagitem ::= NOW MINUS VARIABLE */
case
167
:
/* tagitem ::= NOW MINUS VARIABLE */
{
{
yymsp
[
0
].
minor
.
yy0
.
type
=
TSDB_DATA_TYPE_TIMESTAMP
;
yymsp
[
0
].
minor
.
yy0
.
type
=
TSDB_DATA_TYPE_TIMESTAMP
;
tVariantCreateExt
(
&
yymsp
[
-
2
].
minor
.
yy5
4
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_MINUS
,
true
);
tVariantCreateExt
(
&
yymsp
[
-
2
].
minor
.
yy5
26
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_MINUS
,
true
);
}
}
break
;
break
;
case
168
:
/* tagitem ::= MINUS INTEGER */
case
168
:
/* tagitem ::= MINUS INTEGER */
...
@@ -2875,56 +3200,56 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2875,56 +3200,56 @@ static YYACTIONTYPE yy_reduce(
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
yymsp
[
0
].
minor
.
yy0
.
type
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
yymsp
[
0
].
minor
.
yy0
.
type
;
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy5
4
,
&
yymsp
[
-
1
].
minor
.
yy0
);
tVariantCreate
(
&
yylhsminor
.
yy5
26
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
}
yymsp
[
-
1
].
minor
.
yy5
4
=
yylhsminor
.
yy54
;
yymsp
[
-
1
].
minor
.
yy5
26
=
yylhsminor
.
yy526
;
break
;
break
;
case
172
:
/* select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
case
172
:
/* select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
{
{
yylhsminor
.
yy
160
=
tSetQuerySqlNode
(
&
yymsp
[
-
14
].
minor
.
yy0
,
yymsp
[
-
13
].
minor
.
yy209
,
yymsp
[
-
12
].
minor
.
yy530
,
yymsp
[
-
11
].
minor
.
yy574
,
yymsp
[
-
4
].
minor
.
yy209
,
yymsp
[
-
2
].
minor
.
yy209
,
&
yymsp
[
-
9
].
minor
.
yy102
,
&
yymsp
[
-
7
].
minor
.
yy115
,
&
yymsp
[
-
6
].
minor
.
yy290
,
&
yymsp
[
-
8
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy209
,
&
yymsp
[
0
].
minor
.
yy534
,
&
yymsp
[
-
1
].
minor
.
yy534
,
yymsp
[
-
3
].
minor
.
yy574
,
&
yymsp
[
-
10
].
minor
.
yy22
);
yylhsminor
.
yy
276
=
tSetQuerySqlNode
(
&
yymsp
[
-
14
].
minor
.
yy0
,
yymsp
[
-
13
].
minor
.
yy161
,
yymsp
[
-
12
].
minor
.
yy84
,
yymsp
[
-
11
].
minor
.
yy546
,
yymsp
[
-
4
].
minor
.
yy161
,
yymsp
[
-
2
].
minor
.
yy161
,
&
yymsp
[
-
9
].
minor
.
yy300
,
&
yymsp
[
-
7
].
minor
.
yy219
,
&
yymsp
[
-
6
].
minor
.
yy548
,
&
yymsp
[
-
8
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy161
,
&
yymsp
[
0
].
minor
.
yy394
,
&
yymsp
[
-
1
].
minor
.
yy394
,
yymsp
[
-
3
].
minor
.
yy546
,
&
yymsp
[
-
10
].
minor
.
yy420
);
}
}
yymsp
[
-
14
].
minor
.
yy
160
=
yylhsminor
.
yy160
;
yymsp
[
-
14
].
minor
.
yy
276
=
yylhsminor
.
yy276
;
break
;
break
;
case
173
:
/* select ::= LP select RP */
case
173
:
/* select ::= LP select RP */
{
yymsp
[
-
2
].
minor
.
yy
160
=
yymsp
[
-
1
].
minor
.
yy160
;}
{
yymsp
[
-
2
].
minor
.
yy
276
=
yymsp
[
-
1
].
minor
.
yy276
;}
break
;
break
;
case
174
:
/* union ::= select */
case
174
:
/* union ::= select */
{
yylhsminor
.
yy
209
=
setSubclause
(
NULL
,
yymsp
[
0
].
minor
.
yy160
);
}
{
yylhsminor
.
yy
161
=
setSubclause
(
NULL
,
yymsp
[
0
].
minor
.
yy276
);
}
yymsp
[
0
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
0
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
175
:
/* union ::= union UNION ALL select */
case
175
:
/* union ::= union UNION ALL select */
{
yylhsminor
.
yy
209
=
appendSelectClause
(
yymsp
[
-
3
].
minor
.
yy209
,
yymsp
[
0
].
minor
.
yy160
);
}
{
yylhsminor
.
yy
161
=
appendSelectClause
(
yymsp
[
-
3
].
minor
.
yy161
,
yymsp
[
0
].
minor
.
yy276
);
}
yymsp
[
-
3
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
-
3
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
176
:
/* cmd ::= union */
case
176
:
/* cmd ::= union */
{
setSqlInfo
(
pInfo
,
yymsp
[
0
].
minor
.
yy
209
,
NULL
,
TSDB_SQL_SELECT
);
}
{
setSqlInfo
(
pInfo
,
yymsp
[
0
].
minor
.
yy
161
,
NULL
,
TSDB_SQL_SELECT
);
}
break
;
break
;
case
177
:
/* select ::= SELECT selcollist */
case
177
:
/* select ::= SELECT selcollist */
{
{
yylhsminor
.
yy
160
=
tSetQuerySqlNode
(
&
yymsp
[
-
1
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy209
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
yylhsminor
.
yy
276
=
tSetQuerySqlNode
(
&
yymsp
[
-
1
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy161
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
}
}
yymsp
[
-
1
].
minor
.
yy
160
=
yylhsminor
.
yy160
;
yymsp
[
-
1
].
minor
.
yy
276
=
yylhsminor
.
yy276
;
break
;
break
;
case
178
:
/* sclp ::= selcollist COMMA */
case
178
:
/* sclp ::= selcollist COMMA */
{
yylhsminor
.
yy
209
=
yymsp
[
-
1
].
minor
.
yy209
;}
{
yylhsminor
.
yy
161
=
yymsp
[
-
1
].
minor
.
yy161
;}
yymsp
[
-
1
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
-
1
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
179
:
/* sclp ::= */
case
179
:
/* sclp ::= */
case
220
:
/* orderby_opt ::= */
yytestcase
(
yyruleno
==
220
);
case
220
:
/* orderby_opt ::= */
yytestcase
(
yyruleno
==
220
);
{
yymsp
[
1
].
minor
.
yy
209
=
0
;}
{
yymsp
[
1
].
minor
.
yy
161
=
0
;}
break
;
break
;
case
180
:
/* selcollist ::= sclp distinct expr as */
case
180
:
/* selcollist ::= sclp distinct expr as */
{
{
yylhsminor
.
yy
209
=
tSqlExprListAppend
(
yymsp
[
-
3
].
minor
.
yy209
,
yymsp
[
-
1
].
minor
.
yy574
,
yymsp
[
-
2
].
minor
.
yy0
.
n
?
&
yymsp
[
-
2
].
minor
.
yy0
:
0
,
yymsp
[
0
].
minor
.
yy0
.
n
?&
yymsp
[
0
].
minor
.
yy0
:
0
);
yylhsminor
.
yy
161
=
tSqlExprListAppend
(
yymsp
[
-
3
].
minor
.
yy161
,
yymsp
[
-
1
].
minor
.
yy546
,
yymsp
[
-
2
].
minor
.
yy0
.
n
?
&
yymsp
[
-
2
].
minor
.
yy0
:
0
,
yymsp
[
0
].
minor
.
yy0
.
n
?&
yymsp
[
0
].
minor
.
yy0
:
0
);
}
}
yymsp
[
-
3
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
-
3
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
181
:
/* selcollist ::= sclp STAR */
case
181
:
/* selcollist ::= sclp STAR */
{
{
tSqlExpr
*
pNode
=
tSqlExprCreateIdValue
(
pInfo
,
NULL
,
TK_ALL
);
tSqlExpr
*
pNode
=
tSqlExprCreateIdValue
(
pInfo
,
NULL
,
TK_ALL
);
yylhsminor
.
yy
209
=
tSqlExprListAppend
(
yymsp
[
-
1
].
minor
.
yy209
,
pNode
,
0
,
0
);
yylhsminor
.
yy
161
=
tSqlExprListAppend
(
yymsp
[
-
1
].
minor
.
yy161
,
pNode
,
0
,
0
);
}
}
yymsp
[
-
1
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
-
1
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
182
:
/* as ::= AS ids */
case
182
:
/* as ::= AS ids */
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
...
@@ -2942,114 +3267,114 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2942,114 +3267,114 @@ static YYACTIONTYPE yy_reduce(
break
;
break
;
case
187
:
/* from ::= FROM tablelist */
case
187
:
/* from ::= FROM tablelist */
case
188
:
/* from ::= FROM sub */
yytestcase
(
yyruleno
==
188
);
case
188
:
/* from ::= FROM sub */
yytestcase
(
yyruleno
==
188
);
{
yymsp
[
-
1
].
minor
.
yy
530
=
yymsp
[
0
].
minor
.
yy530
;}
{
yymsp
[
-
1
].
minor
.
yy
84
=
yymsp
[
0
].
minor
.
yy84
;}
break
;
break
;
case
189
:
/* sub ::= LP union RP */
case
189
:
/* sub ::= LP union RP */
{
yymsp
[
-
2
].
minor
.
yy
530
=
addSubqueryElem
(
NULL
,
yymsp
[
-
1
].
minor
.
yy209
,
NULL
);}
{
yymsp
[
-
2
].
minor
.
yy
84
=
addSubqueryElem
(
NULL
,
yymsp
[
-
1
].
minor
.
yy161
,
NULL
);}
break
;
break
;
case
190
:
/* sub ::= LP union RP ids */
case
190
:
/* sub ::= LP union RP ids */
{
yymsp
[
-
3
].
minor
.
yy
530
=
addSubqueryElem
(
NULL
,
yymsp
[
-
2
].
minor
.
yy209
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
yymsp
[
-
3
].
minor
.
yy
84
=
addSubqueryElem
(
NULL
,
yymsp
[
-
2
].
minor
.
yy161
,
&
yymsp
[
0
].
minor
.
yy0
);}
break
;
break
;
case
191
:
/* sub ::= sub COMMA LP union RP ids */
case
191
:
/* sub ::= sub COMMA LP union RP ids */
{
yylhsminor
.
yy
530
=
addSubqueryElem
(
yymsp
[
-
5
].
minor
.
yy530
,
yymsp
[
-
2
].
minor
.
yy209
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
yylhsminor
.
yy
84
=
addSubqueryElem
(
yymsp
[
-
5
].
minor
.
yy84
,
yymsp
[
-
2
].
minor
.
yy161
,
&
yymsp
[
0
].
minor
.
yy0
);}
yymsp
[
-
5
].
minor
.
yy
530
=
yylhsminor
.
yy530
;
yymsp
[
-
5
].
minor
.
yy
84
=
yylhsminor
.
yy84
;
break
;
break
;
case
192
:
/* tablelist ::= ids cpxName */
case
192
:
/* tablelist ::= ids cpxName */
{
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yylhsminor
.
yy
530
=
setTableNameList
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
);
yylhsminor
.
yy
84
=
setTableNameList
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
);
}
}
yymsp
[
-
1
].
minor
.
yy
530
=
yylhsminor
.
yy530
;
yymsp
[
-
1
].
minor
.
yy
84
=
yylhsminor
.
yy84
;
break
;
break
;
case
193
:
/* tablelist ::= ids cpxName ids */
case
193
:
/* tablelist ::= ids cpxName ids */
{
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
yymsp
[
-
1
].
minor
.
yy0
.
n
;
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
yymsp
[
-
1
].
minor
.
yy0
.
n
;
yylhsminor
.
yy
530
=
setTableNameList
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
yylhsminor
.
yy
84
=
setTableNameList
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
}
yymsp
[
-
2
].
minor
.
yy
530
=
yylhsminor
.
yy530
;
yymsp
[
-
2
].
minor
.
yy
84
=
yylhsminor
.
yy84
;
break
;
break
;
case
194
:
/* tablelist ::= tablelist COMMA ids cpxName */
case
194
:
/* tablelist ::= tablelist COMMA ids cpxName */
{
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yylhsminor
.
yy
530
=
setTableNameList
(
yymsp
[
-
3
].
minor
.
yy530
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
);
yylhsminor
.
yy
84
=
setTableNameList
(
yymsp
[
-
3
].
minor
.
yy84
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
);
}
}
yymsp
[
-
3
].
minor
.
yy
530
=
yylhsminor
.
yy530
;
yymsp
[
-
3
].
minor
.
yy
84
=
yylhsminor
.
yy84
;
break
;
break
;
case
195
:
/* tablelist ::= tablelist COMMA ids cpxName ids */
case
195
:
/* tablelist ::= tablelist COMMA ids cpxName ids */
{
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
yymsp
[
-
1
].
minor
.
yy0
.
n
;
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
yymsp
[
-
1
].
minor
.
yy0
.
n
;
yylhsminor
.
yy
530
=
setTableNameList
(
yymsp
[
-
4
].
minor
.
yy530
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
yylhsminor
.
yy
84
=
setTableNameList
(
yymsp
[
-
4
].
minor
.
yy84
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
}
yymsp
[
-
4
].
minor
.
yy
530
=
yylhsminor
.
yy530
;
yymsp
[
-
4
].
minor
.
yy
84
=
yylhsminor
.
yy84
;
break
;
break
;
case
196
:
/* tmvar ::= VARIABLE */
case
196
:
/* tmvar ::= VARIABLE */
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;}
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;}
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
break
;
break
;
case
197
:
/* timestamp ::= INTEGER */
case
197
:
/* timestamp ::= INTEGER */
{
yylhsminor
.
yy5
74
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
0
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
0
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
198
:
/* timestamp ::= MINUS INTEGER */
case
198
:
/* timestamp ::= MINUS INTEGER */
case
199
:
/* timestamp ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
199
);
case
199
:
/* timestamp ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
199
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy5
74
=
tSqlExprCreateTimestamp
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy5
46
=
tSqlExprCreateTimestamp
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
-
1
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
1
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
200
:
/* timestamp ::= STRING */
case
200
:
/* timestamp ::= STRING */
{
yylhsminor
.
yy5
74
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
yymsp
[
0
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
0
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
201
:
/* timestamp ::= NOW */
case
201
:
/* timestamp ::= NOW */
{
yylhsminor
.
yy5
74
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
{
yylhsminor
.
yy5
46
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
yymsp
[
0
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
0
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
202
:
/* timestamp ::= NOW PLUS VARIABLE */
case
202
:
/* timestamp ::= NOW PLUS VARIABLE */
{
yymsp
[
-
2
].
minor
.
yy5
74
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_PLUS
);
}
{
yymsp
[
-
2
].
minor
.
yy5
46
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_PLUS
);
}
break
;
break
;
case
203
:
/* timestamp ::= NOW MINUS VARIABLE */
case
203
:
/* timestamp ::= NOW MINUS VARIABLE */
{
yymsp
[
-
2
].
minor
.
yy5
74
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_MINUS
);
}
{
yymsp
[
-
2
].
minor
.
yy5
46
=
tSqlExprCreateTimestamp
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_MINUS
);
}
break
;
break
;
case
204
:
/* range_option ::= */
case
204
:
/* range_option ::= */
{
yymsp
[
1
].
minor
.
yy
22
.
start
=
0
;
yymsp
[
1
].
minor
.
yy22
.
end
=
0
;}
{
yymsp
[
1
].
minor
.
yy
420
.
start
=
0
;
yymsp
[
1
].
minor
.
yy420
.
end
=
0
;}
break
;
break
;
case
205
:
/* range_option ::= RANGE LP timestamp COMMA timestamp RP */
case
205
:
/* range_option ::= RANGE LP timestamp COMMA timestamp RP */
{
yymsp
[
-
5
].
minor
.
yy
22
.
start
=
yymsp
[
-
3
].
minor
.
yy574
;
yymsp
[
-
5
].
minor
.
yy22
.
end
=
yymsp
[
-
1
].
minor
.
yy574
;}
{
yymsp
[
-
5
].
minor
.
yy
420
.
start
=
yymsp
[
-
3
].
minor
.
yy546
;
yymsp
[
-
5
].
minor
.
yy420
.
end
=
yymsp
[
-
1
].
minor
.
yy546
;}
break
;
break
;
case
206
:
/* interval_option ::= intervalKey LP tmvar RP */
case
206
:
/* interval_option ::= intervalKey LP tmvar RP */
{
yylhsminor
.
yy
102
.
interval
=
yymsp
[
-
1
].
minor
.
yy0
;
yylhsminor
.
yy102
.
offset
.
n
=
0
;
yylhsminor
.
yy102
.
token
=
yymsp
[
-
3
].
minor
.
yy38
0
;}
{
yylhsminor
.
yy
300
.
interval
=
yymsp
[
-
1
].
minor
.
yy0
;
yylhsminor
.
yy300
.
offset
.
n
=
0
;
yylhsminor
.
yy300
.
token
=
yymsp
[
-
3
].
minor
.
yy52
0
;}
yymsp
[
-
3
].
minor
.
yy
102
=
yylhsminor
.
yy102
;
yymsp
[
-
3
].
minor
.
yy
300
=
yylhsminor
.
yy300
;
break
;
break
;
case
207
:
/* interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
case
207
:
/* interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
{
yylhsminor
.
yy
102
.
interval
=
yymsp
[
-
3
].
minor
.
yy0
;
yylhsminor
.
yy102
.
offset
=
yymsp
[
-
1
].
minor
.
yy0
;
yylhsminor
.
yy102
.
token
=
yymsp
[
-
5
].
minor
.
yy38
0
;}
{
yylhsminor
.
yy
300
.
interval
=
yymsp
[
-
3
].
minor
.
yy0
;
yylhsminor
.
yy300
.
offset
=
yymsp
[
-
1
].
minor
.
yy0
;
yylhsminor
.
yy300
.
token
=
yymsp
[
-
5
].
minor
.
yy52
0
;}
yymsp
[
-
5
].
minor
.
yy
102
=
yylhsminor
.
yy102
;
yymsp
[
-
5
].
minor
.
yy
300
=
yylhsminor
.
yy300
;
break
;
break
;
case
208
:
/* interval_option ::= */
case
208
:
/* interval_option ::= */
{
memset
(
&
yymsp
[
1
].
minor
.
yy
102
,
0
,
sizeof
(
yymsp
[
1
].
minor
.
yy102
));}
{
memset
(
&
yymsp
[
1
].
minor
.
yy
300
,
0
,
sizeof
(
yymsp
[
1
].
minor
.
yy300
));}
break
;
break
;
case
209
:
/* intervalKey ::= INTERVAL */
case
209
:
/* intervalKey ::= INTERVAL */
{
yymsp
[
0
].
minor
.
yy
38
0
=
TK_INTERVAL
;}
{
yymsp
[
0
].
minor
.
yy
52
0
=
TK_INTERVAL
;}
break
;
break
;
case
210
:
/* intervalKey ::= EVERY */
case
210
:
/* intervalKey ::= EVERY */
{
yymsp
[
0
].
minor
.
yy
38
0
=
TK_EVERY
;
}
{
yymsp
[
0
].
minor
.
yy
52
0
=
TK_EVERY
;
}
break
;
break
;
case
211
:
/* session_option ::= */
case
211
:
/* session_option ::= */
{
yymsp
[
1
].
minor
.
yy
115
.
col
.
n
=
0
;
yymsp
[
1
].
minor
.
yy115
.
gap
.
n
=
0
;}
{
yymsp
[
1
].
minor
.
yy
219
.
col
.
n
=
0
;
yymsp
[
1
].
minor
.
yy219
.
gap
.
n
=
0
;}
break
;
break
;
case
212
:
/* session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
case
212
:
/* session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
6
].
minor
.
yy
115
.
col
=
yymsp
[
-
4
].
minor
.
yy0
;
yymsp
[
-
6
].
minor
.
yy
219
.
col
=
yymsp
[
-
4
].
minor
.
yy0
;
yymsp
[
-
6
].
minor
.
yy
115
.
gap
=
yymsp
[
-
1
].
minor
.
yy0
;
yymsp
[
-
6
].
minor
.
yy
219
.
gap
=
yymsp
[
-
1
].
minor
.
yy0
;
}
}
break
;
break
;
case
213
:
/* windowstate_option ::= */
case
213
:
/* windowstate_option ::= */
{
yymsp
[
1
].
minor
.
yy
290
.
col
.
n
=
0
;
yymsp
[
1
].
minor
.
yy290
.
col
.
z
=
NULL
;}
{
yymsp
[
1
].
minor
.
yy
548
.
col
.
n
=
0
;
yymsp
[
1
].
minor
.
yy548
.
col
.
z
=
NULL
;}
break
;
break
;
case
214
:
/* windowstate_option ::= STATE_WINDOW LP ids RP */
case
214
:
/* windowstate_option ::= STATE_WINDOW LP ids RP */
{
yymsp
[
-
3
].
minor
.
yy
290
.
col
=
yymsp
[
-
1
].
minor
.
yy0
;
}
{
yymsp
[
-
3
].
minor
.
yy
548
.
col
=
yymsp
[
-
1
].
minor
.
yy0
;
}
break
;
break
;
case
215
:
/* fill_opt ::= */
case
215
:
/* fill_opt ::= */
{
yymsp
[
1
].
minor
.
yy
209
=
0
;
}
{
yymsp
[
1
].
minor
.
yy
161
=
0
;
}
break
;
break
;
case
216
:
/* fill_opt ::= FILL LP ID COMMA tagitemlist RP */
case
216
:
/* fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
{
...
@@ -3057,14 +3382,14 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3057,14 +3382,14 @@ static YYACTIONTYPE yy_reduce(
toTSDBType
(
yymsp
[
-
3
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
-
3
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
A
,
&
yymsp
[
-
3
].
minor
.
yy0
);
tVariantCreate
(
&
A
,
&
yymsp
[
-
3
].
minor
.
yy0
);
tVariantListInsert
(
yymsp
[
-
1
].
minor
.
yy
209
,
&
A
,
-
1
,
0
);
tVariantListInsert
(
yymsp
[
-
1
].
minor
.
yy
161
,
&
A
,
-
1
,
0
);
yymsp
[
-
5
].
minor
.
yy
209
=
yymsp
[
-
1
].
minor
.
yy209
;
yymsp
[
-
5
].
minor
.
yy
161
=
yymsp
[
-
1
].
minor
.
yy161
;
}
}
break
;
break
;
case
217
:
/* fill_opt ::= FILL LP ID RP */
case
217
:
/* fill_opt ::= FILL LP ID RP */
{
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
3
].
minor
.
yy
209
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
,
true
);
yymsp
[
-
3
].
minor
.
yy
161
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
,
true
);
}
}
break
;
break
;
case
218
:
/* sliding_opt ::= SLIDING LP tmvar RP */
case
218
:
/* sliding_opt ::= SLIDING LP tmvar RP */
...
@@ -3074,309 +3399,313 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3074,309 +3399,313 @@ static YYACTIONTYPE yy_reduce(
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
yymsp
[
1
].
minor
.
yy0
.
z
=
NULL
;
yymsp
[
1
].
minor
.
yy0
.
type
=
0
;
}
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
yymsp
[
1
].
minor
.
yy0
.
z
=
NULL
;
yymsp
[
1
].
minor
.
yy0
.
type
=
0
;
}
break
;
break
;
case
221
:
/* orderby_opt ::= ORDER BY sortlist */
case
221
:
/* orderby_opt ::= ORDER BY sortlist */
{
yymsp
[
-
2
].
minor
.
yy
209
=
yymsp
[
0
].
minor
.
yy209
;}
{
yymsp
[
-
2
].
minor
.
yy
161
=
yymsp
[
0
].
minor
.
yy161
;}
break
;
break
;
case
222
:
/* sortlist ::= sortlist COMMA item sortorder */
case
222
:
/* sortlist ::= sortlist COMMA item sortorder */
{
{
yylhsminor
.
yy
209
=
commonItemAppend
(
yymsp
[
-
3
].
minor
.
yy209
,
&
yymsp
[
-
1
].
minor
.
yy54
,
NULL
,
false
,
yymsp
[
0
].
minor
.
yy33
2
);
yylhsminor
.
yy
161
=
commonItemAppend
(
yymsp
[
-
3
].
minor
.
yy161
,
&
yymsp
[
-
1
].
minor
.
yy526
,
NULL
,
false
,
yymsp
[
0
].
minor
.
yy45
2
);
}
}
yymsp
[
-
3
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
-
3
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
223
:
/* sortlist ::= sortlist COMMA arrow sortorder */
case
223
:
/* sortlist ::= sortlist COMMA arrow sortorder */
{
{
yylhsminor
.
yy
209
=
commonItemAppend
(
yymsp
[
-
3
].
minor
.
yy209
,
NULL
,
yymsp
[
-
1
].
minor
.
yy574
,
true
,
yymsp
[
0
].
minor
.
yy33
2
);
yylhsminor
.
yy
161
=
commonItemAppend
(
yymsp
[
-
3
].
minor
.
yy161
,
NULL
,
yymsp
[
-
1
].
minor
.
yy546
,
true
,
yymsp
[
0
].
minor
.
yy45
2
);
}
}
yymsp
[
-
3
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
-
3
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
224
:
/* sortlist ::= item sortorder */
case
224
:
/* sortlist ::= item sortorder */
{
{
yylhsminor
.
yy
209
=
commonItemAppend
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy54
,
NULL
,
false
,
yymsp
[
0
].
minor
.
yy33
2
);
yylhsminor
.
yy
161
=
commonItemAppend
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy526
,
NULL
,
false
,
yymsp
[
0
].
minor
.
yy45
2
);
}
}
yymsp
[
-
1
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
-
1
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
225
:
/* sortlist ::= arrow sortorder */
case
225
:
/* sortlist ::= arrow sortorder */
{
{
yylhsminor
.
yy
209
=
commonItemAppend
(
NULL
,
NULL
,
yymsp
[
-
1
].
minor
.
yy574
,
true
,
yymsp
[
0
].
minor
.
yy33
2
);
yylhsminor
.
yy
161
=
commonItemAppend
(
NULL
,
NULL
,
yymsp
[
-
1
].
minor
.
yy546
,
true
,
yymsp
[
0
].
minor
.
yy45
2
);
}
}
yymsp
[
-
1
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
-
1
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
226
:
/* item ::= ID */
case
226
:
/* item ::= ID */
{
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy5
4
,
&
yymsp
[
0
].
minor
.
yy0
);
tVariantCreate
(
&
yylhsminor
.
yy5
26
,
&
yymsp
[
0
].
minor
.
yy0
);
}
}
yymsp
[
0
].
minor
.
yy5
4
=
yylhsminor
.
yy54
;
yymsp
[
0
].
minor
.
yy5
26
=
yylhsminor
.
yy526
;
break
;
break
;
case
227
:
/* item ::= ID DOT ID */
case
227
:
/* item ::= ID DOT ID */
{
{
toTSDBType
(
yymsp
[
-
2
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
-
2
].
minor
.
yy0
.
type
);
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
tVariantCreate
(
&
yylhsminor
.
yy5
4
,
&
yymsp
[
-
2
].
minor
.
yy0
);
tVariantCreate
(
&
yylhsminor
.
yy5
26
,
&
yymsp
[
-
2
].
minor
.
yy0
);
}
}
yymsp
[
-
2
].
minor
.
yy5
4
=
yylhsminor
.
yy54
;
yymsp
[
-
2
].
minor
.
yy5
26
=
yylhsminor
.
yy526
;
break
;
break
;
case
228
:
/* sortorder ::= ASC */
case
228
:
/* sortorder ::= ASC */
{
yymsp
[
0
].
minor
.
yy
33
2
=
TSDB_ORDER_ASC
;
}
{
yymsp
[
0
].
minor
.
yy
45
2
=
TSDB_ORDER_ASC
;
}
break
;
break
;
case
229
:
/* sortorder ::= DESC */
case
229
:
/* sortorder ::= DESC */
{
yymsp
[
0
].
minor
.
yy
33
2
=
TSDB_ORDER_DESC
;}
{
yymsp
[
0
].
minor
.
yy
45
2
=
TSDB_ORDER_DESC
;}
break
;
break
;
case
230
:
/* sortorder ::= */
case
230
:
/* sortorder ::= */
{
yymsp
[
1
].
minor
.
yy
33
2
=
TSDB_ORDER_ASC
;
}
{
yymsp
[
1
].
minor
.
yy
45
2
=
TSDB_ORDER_ASC
;
}
break
;
break
;
case
231
:
/* groupby_opt ::= */
case
231
:
/* groupby_opt ::= */
{
yymsp
[
1
].
minor
.
yy
209
=
0
;}
{
yymsp
[
1
].
minor
.
yy
161
=
0
;}
break
;
break
;
case
232
:
/* groupby_opt ::= GROUP BY grouplist */
case
232
:
/* groupby_opt ::= GROUP BY grouplist */
{
yymsp
[
-
2
].
minor
.
yy
209
=
yymsp
[
0
].
minor
.
yy209
;}
{
yymsp
[
-
2
].
minor
.
yy
161
=
yymsp
[
0
].
minor
.
yy161
;}
break
;
break
;
case
233
:
/* grouplist ::= grouplist COMMA item */
case
233
:
/* grouplist ::= grouplist COMMA item */
{
{
yylhsminor
.
yy
209
=
commonItemAppend
(
yymsp
[
-
2
].
minor
.
yy209
,
&
yymsp
[
0
].
minor
.
yy54
,
NULL
,
false
,
-
1
);
yylhsminor
.
yy
161
=
commonItemAppend
(
yymsp
[
-
2
].
minor
.
yy161
,
&
yymsp
[
0
].
minor
.
yy526
,
NULL
,
false
,
-
1
);
}
}
yymsp
[
-
2
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
-
2
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
234
:
/* grouplist ::= grouplist COMMA arrow */
case
234
:
/* grouplist ::= grouplist COMMA arrow */
{
{
yylhsminor
.
yy
209
=
commonItemAppend
(
yymsp
[
-
2
].
minor
.
yy209
,
NULL
,
yymsp
[
0
].
minor
.
yy574
,
true
,
-
1
);
yylhsminor
.
yy
161
=
commonItemAppend
(
yymsp
[
-
2
].
minor
.
yy161
,
NULL
,
yymsp
[
0
].
minor
.
yy546
,
true
,
-
1
);
}
}
yymsp
[
-
2
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
-
2
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
235
:
/* grouplist ::= item */
case
235
:
/* grouplist ::= item */
{
{
yylhsminor
.
yy
209
=
commonItemAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy54
,
NULL
,
false
,
-
1
);
yylhsminor
.
yy
161
=
commonItemAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy526
,
NULL
,
false
,
-
1
);
}
}
yymsp
[
0
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
0
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
236
:
/* grouplist ::= arrow */
case
236
:
/* grouplist ::= arrow */
{
{
yylhsminor
.
yy
209
=
commonItemAppend
(
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy574
,
true
,
-
1
);
yylhsminor
.
yy
161
=
commonItemAppend
(
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy546
,
true
,
-
1
);
}
}
yymsp
[
0
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
0
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
237
:
/* having_opt ::= */
case
237
:
/* having_opt ::= */
case
247
:
/* where_opt ::= */
yytestcase
(
yyruleno
==
247
);
case
247
:
/* where_opt ::= */
yytestcase
(
yyruleno
==
247
);
case
29
7
:
/* expritem ::= */
yytestcase
(
yyruleno
==
297
);
case
29
8
:
/* expritem ::= */
yytestcase
(
yyruleno
==
298
);
{
yymsp
[
1
].
minor
.
yy5
74
=
0
;}
{
yymsp
[
1
].
minor
.
yy5
46
=
0
;}
break
;
break
;
case
238
:
/* having_opt ::= HAVING expr */
case
238
:
/* having_opt ::= HAVING expr */
case
248
:
/* where_opt ::= WHERE expr */
yytestcase
(
yyruleno
==
248
);
case
248
:
/* where_opt ::= WHERE expr */
yytestcase
(
yyruleno
==
248
);
{
yymsp
[
-
1
].
minor
.
yy5
74
=
yymsp
[
0
].
minor
.
yy574
;}
{
yymsp
[
-
1
].
minor
.
yy5
46
=
yymsp
[
0
].
minor
.
yy546
;}
break
;
break
;
case
239
:
/* limit_opt ::= */
case
239
:
/* limit_opt ::= */
case
243
:
/* slimit_opt ::= */
yytestcase
(
yyruleno
==
243
);
case
243
:
/* slimit_opt ::= */
yytestcase
(
yyruleno
==
243
);
{
yymsp
[
1
].
minor
.
yy
534
.
limit
=
-
1
;
yymsp
[
1
].
minor
.
yy53
4
.
offset
=
0
;}
{
yymsp
[
1
].
minor
.
yy
394
.
limit
=
-
1
;
yymsp
[
1
].
minor
.
yy39
4
.
offset
=
0
;}
break
;
break
;
case
240
:
/* limit_opt ::= LIMIT signed */
case
240
:
/* limit_opt ::= LIMIT signed */
case
244
:
/* slimit_opt ::= SLIMIT signed */
yytestcase
(
yyruleno
==
244
);
case
244
:
/* slimit_opt ::= SLIMIT signed */
yytestcase
(
yyruleno
==
244
);
{
yymsp
[
-
1
].
minor
.
yy
534
.
limit
=
yymsp
[
0
].
minor
.
yy55
;
yymsp
[
-
1
].
minor
.
yy53
4
.
offset
=
0
;}
{
yymsp
[
-
1
].
minor
.
yy
394
.
limit
=
yymsp
[
0
].
minor
.
yy369
;
yymsp
[
-
1
].
minor
.
yy39
4
.
offset
=
0
;}
break
;
break
;
case
241
:
/* limit_opt ::= LIMIT signed OFFSET signed */
case
241
:
/* limit_opt ::= LIMIT signed OFFSET signed */
{
yymsp
[
-
3
].
minor
.
yy
534
.
limit
=
yymsp
[
-
2
].
minor
.
yy55
;
yymsp
[
-
3
].
minor
.
yy534
.
offset
=
yymsp
[
0
].
minor
.
yy55
;}
{
yymsp
[
-
3
].
minor
.
yy
394
.
limit
=
yymsp
[
-
2
].
minor
.
yy369
;
yymsp
[
-
3
].
minor
.
yy394
.
offset
=
yymsp
[
0
].
minor
.
yy369
;}
break
;
break
;
case
242
:
/* limit_opt ::= LIMIT signed COMMA signed */
case
242
:
/* limit_opt ::= LIMIT signed COMMA signed */
{
yymsp
[
-
3
].
minor
.
yy
534
.
limit
=
yymsp
[
0
].
minor
.
yy55
;
yymsp
[
-
3
].
minor
.
yy534
.
offset
=
yymsp
[
-
2
].
minor
.
yy55
;}
{
yymsp
[
-
3
].
minor
.
yy
394
.
limit
=
yymsp
[
0
].
minor
.
yy369
;
yymsp
[
-
3
].
minor
.
yy394
.
offset
=
yymsp
[
-
2
].
minor
.
yy369
;}
break
;
break
;
case
245
:
/* slimit_opt ::= SLIMIT signed SOFFSET signed */
case
245
:
/* slimit_opt ::= SLIMIT signed SOFFSET signed */
{
yymsp
[
-
3
].
minor
.
yy
534
.
limit
=
yymsp
[
-
2
].
minor
.
yy55
;
yymsp
[
-
3
].
minor
.
yy534
.
offset
=
yymsp
[
0
].
minor
.
yy55
;}
{
yymsp
[
-
3
].
minor
.
yy
394
.
limit
=
yymsp
[
-
2
].
minor
.
yy369
;
yymsp
[
-
3
].
minor
.
yy394
.
offset
=
yymsp
[
0
].
minor
.
yy369
;}
break
;
break
;
case
246
:
/* slimit_opt ::= SLIMIT signed COMMA signed */
case
246
:
/* slimit_opt ::= SLIMIT signed COMMA signed */
{
yymsp
[
-
3
].
minor
.
yy
534
.
limit
=
yymsp
[
0
].
minor
.
yy55
;
yymsp
[
-
3
].
minor
.
yy534
.
offset
=
yymsp
[
-
2
].
minor
.
yy55
;}
{
yymsp
[
-
3
].
minor
.
yy
394
.
limit
=
yymsp
[
0
].
minor
.
yy369
;
yymsp
[
-
3
].
minor
.
yy394
.
offset
=
yymsp
[
-
2
].
minor
.
yy369
;}
break
;
break
;
case
249
:
/* expr ::= LP expr RP */
case
249
:
/* expr ::= LP expr RP */
{
yylhsminor
.
yy5
74
=
yymsp
[
-
1
].
minor
.
yy574
;
yylhsminor
.
yy574
->
exprToken
.
z
=
yymsp
[
-
2
].
minor
.
yy0
.
z
;
yylhsminor
.
yy574
->
exprToken
.
n
=
(
yymsp
[
0
].
minor
.
yy0
.
z
-
yymsp
[
-
2
].
minor
.
yy0
.
z
+
1
);}
{
yylhsminor
.
yy5
46
=
yymsp
[
-
1
].
minor
.
yy546
;
yylhsminor
.
yy546
->
exprToken
.
z
=
yymsp
[
-
2
].
minor
.
yy0
.
z
;
yylhsminor
.
yy546
->
exprToken
.
n
=
(
yymsp
[
0
].
minor
.
yy0
.
z
-
yymsp
[
-
2
].
minor
.
yy0
.
z
+
1
);}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
250
:
/* expr ::= ID */
case
250
:
/* expr ::= ID */
{
yylhsminor
.
yy5
74
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_ID
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
0
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
0
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
251
:
/* expr ::= ID DOT ID */
case
251
:
/* expr ::= ID DOT ID */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy5
74
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);}
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy5
46
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
252
:
/* expr ::= ID DOT STAR */
case
252
:
/* expr ::= ID DOT STAR */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy5
74
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ALL
);}
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy5
46
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ALL
);}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
253
:
/* expr ::= INTEGER */
case
253
:
/* expr ::= INTEGER */
{
yylhsminor
.
yy5
74
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
0
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
0
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
254
:
/* expr ::= MINUS INTEGER */
case
254
:
/* expr ::= MINUS INTEGER */
case
255
:
/* expr ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
255
);
case
255
:
/* expr ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
255
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy5
74
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy5
46
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
-
1
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
1
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
256
:
/* expr ::= FLOAT */
case
256
:
/* expr ::= FLOAT */
{
yylhsminor
.
yy5
74
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_FLOAT
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
0
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
0
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
257
:
/* expr ::= MINUS FLOAT */
case
257
:
/* expr ::= MINUS FLOAT */
case
258
:
/* expr ::= PLUS FLOAT */
yytestcase
(
yyruleno
==
258
);
case
258
:
/* expr ::= PLUS FLOAT */
yytestcase
(
yyruleno
==
258
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_FLOAT
;
yylhsminor
.
yy5
74
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_FLOAT
);}
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_FLOAT
;
yylhsminor
.
yy5
46
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
-
1
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
1
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
259
:
/* expr ::= STRING */
case
259
:
/* expr ::= STRING */
{
yylhsminor
.
yy5
74
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
yymsp
[
0
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
0
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
260
:
/* expr ::= NOW */
case
260
:
/* expr ::= NOW */
{
yylhsminor
.
yy574
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
{
yylhsminor
.
yy546
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
yymsp
[
0
].
minor
.
yy574
=
yylhsminor
.
yy574
;
yymsp
[
0
].
minor
.
yy546
=
yylhsminor
.
yy546
;
break
;
case
261
:
/* expr ::= TODAY */
{
yylhsminor
.
yy546
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_TODAY
);
}
yymsp
[
0
].
minor
.
yy546
=
yylhsminor
.
yy546
;
break
;
break
;
case
26
1
:
/* expr ::= VARIABLE */
case
26
2
:
/* expr ::= VARIABLE */
{
yylhsminor
.
yy5
74
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_VARIABLE
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_VARIABLE
);}
yymsp
[
0
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
0
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
26
2
:
/* expr ::= PLUS VARIABLE */
case
26
3
:
/* expr ::= PLUS VARIABLE */
case
26
3
:
/* expr ::= MINUS VARIABLE */
yytestcase
(
yyruleno
==
263
);
case
26
4
:
/* expr ::= MINUS VARIABLE */
yytestcase
(
yyruleno
==
264
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_VARIABLE
;
yylhsminor
.
yy5
74
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_VARIABLE
);}
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_VARIABLE
;
yylhsminor
.
yy5
46
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_VARIABLE
);}
yymsp
[
-
1
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
1
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
26
4
:
/* expr ::= BOOL */
case
26
5
:
/* expr ::= BOOL */
{
yylhsminor
.
yy5
74
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_BOOL
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_BOOL
);}
yymsp
[
0
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
0
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
26
5
:
/* expr ::= NULL */
case
26
6
:
/* expr ::= NULL */
{
yylhsminor
.
yy5
74
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_NULL
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_NULL
);}
yymsp
[
0
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
0
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
26
6
:
/* expr ::= ID LP exprlist RP */
case
26
7
:
/* expr ::= ID LP exprlist RP */
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yylhsminor
.
yy5
74
=
tSqlExprCreateFunction
(
yymsp
[
-
1
].
minor
.
yy209
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yylhsminor
.
yy5
46
=
tSqlExprCreateFunction
(
yymsp
[
-
1
].
minor
.
yy161
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
yymsp
[
-
3
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
3
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
26
7
:
/* expr ::= ID LP STAR RP */
case
26
8
:
/* expr ::= ID LP STAR RP */
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yylhsminor
.
yy5
74
=
tSqlExprCreateFunction
(
NULL
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yylhsminor
.
yy5
46
=
tSqlExprCreateFunction
(
NULL
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
yymsp
[
-
3
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
3
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
26
8
:
/* expr ::= ID LP expr AS typename RP */
case
26
9
:
/* expr ::= ID LP expr AS typename RP */
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
5
].
minor
.
yy0
);
yylhsminor
.
yy5
74
=
tSqlExprCreateFuncWithParams
(
pInfo
,
yymsp
[
-
3
].
minor
.
yy574
,
&
yymsp
[
-
1
].
minor
.
yy369
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy0
.
type
);
}
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
5
].
minor
.
yy0
);
yylhsminor
.
yy5
46
=
tSqlExprCreateFuncWithParams
(
pInfo
,
yymsp
[
-
3
].
minor
.
yy546
,
&
yymsp
[
-
1
].
minor
.
yy223
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy0
.
type
);
}
yymsp
[
-
5
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
5
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
2
69
:
/* expr ::= expr IS NULL */
case
2
70
:
/* expr ::= expr IS NULL */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy574
,
NULL
,
TK_ISNULL
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
NULL
,
TK_ISNULL
);}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
27
0
:
/* expr ::= expr IS NOT NULL */
case
27
1
:
/* expr ::= expr IS NOT NULL */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
3
].
minor
.
yy574
,
NULL
,
TK_NOTNULL
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
3
].
minor
.
yy546
,
NULL
,
TK_NOTNULL
);}
yymsp
[
-
3
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
3
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
27
1
:
/* expr ::= expr LT expr */
case
27
2
:
/* expr ::= expr LT expr */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy574
,
yymsp
[
0
].
minor
.
yy574
,
TK_LT
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_LT
);}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
27
2
:
/* expr ::= expr GT expr */
case
27
3
:
/* expr ::= expr GT expr */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy574
,
yymsp
[
0
].
minor
.
yy574
,
TK_GT
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_GT
);}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
27
3
:
/* expr ::= expr LE expr */
case
27
4
:
/* expr ::= expr LE expr */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy574
,
yymsp
[
0
].
minor
.
yy574
,
TK_LE
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_LE
);}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
27
4
:
/* expr ::= expr GE expr */
case
27
5
:
/* expr ::= expr GE expr */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy574
,
yymsp
[
0
].
minor
.
yy574
,
TK_GE
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_GE
);}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
27
5
:
/* expr ::= expr NE expr */
case
27
6
:
/* expr ::= expr NE expr */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy574
,
yymsp
[
0
].
minor
.
yy574
,
TK_NE
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_NE
);}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
27
6
:
/* expr ::= expr EQ expr */
case
27
7
:
/* expr ::= expr EQ expr */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy574
,
yymsp
[
0
].
minor
.
yy574
,
TK_EQ
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_EQ
);}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
27
7
:
/* expr ::= expr BETWEEN expr AND expr */
case
27
8
:
/* expr ::= expr BETWEEN expr AND expr */
{
tSqlExpr
*
X2
=
tSqlExprClone
(
yymsp
[
-
4
].
minor
.
yy5
74
);
yylhsminor
.
yy574
=
tSqlExprCreate
(
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy574
,
yymsp
[
-
2
].
minor
.
yy574
,
TK_GE
),
tSqlExprCreate
(
X2
,
yymsp
[
0
].
minor
.
yy574
,
TK_LE
),
TK_AND
);}
{
tSqlExpr
*
X2
=
tSqlExprClone
(
yymsp
[
-
4
].
minor
.
yy5
46
);
yylhsminor
.
yy546
=
tSqlExprCreate
(
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy546
,
yymsp
[
-
2
].
minor
.
yy546
,
TK_GE
),
tSqlExprCreate
(
X2
,
yymsp
[
0
].
minor
.
yy546
,
TK_LE
),
TK_AND
);}
yymsp
[
-
4
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
4
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
27
8
:
/* expr ::= expr AND expr */
case
27
9
:
/* expr ::= expr AND expr */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy574
,
yymsp
[
0
].
minor
.
yy574
,
TK_AND
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_AND
);}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
2
79
:
/* expr ::= expr OR expr */
case
2
80
:
/* expr ::= expr OR expr */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy574
,
yymsp
[
0
].
minor
.
yy574
,
TK_OR
);
}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_OR
);
}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
28
0
:
/* expr ::= expr PLUS expr */
case
28
1
:
/* expr ::= expr PLUS expr */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy574
,
yymsp
[
0
].
minor
.
yy574
,
TK_PLUS
);
}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_PLUS
);
}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
28
1
:
/* expr ::= expr MINUS expr */
case
28
2
:
/* expr ::= expr MINUS expr */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy574
,
yymsp
[
0
].
minor
.
yy574
,
TK_MINUS
);
}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_MINUS
);
}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
28
2
:
/* expr ::= expr STAR expr */
case
28
3
:
/* expr ::= expr STAR expr */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy574
,
yymsp
[
0
].
minor
.
yy574
,
TK_STAR
);
}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_STAR
);
}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
28
3
:
/* expr ::= expr SLASH expr */
case
28
4
:
/* expr ::= expr SLASH expr */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy574
,
yymsp
[
0
].
minor
.
yy574
,
TK_DIVIDE
);}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_DIVIDE
);}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
28
4
:
/* expr ::= expr REM expr */
case
28
5
:
/* expr ::= expr REM expr */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy574
,
yymsp
[
0
].
minor
.
yy574
,
TK_REM
);
}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_REM
);
}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
28
5
:
/* expr ::= expr LIKE expr */
case
28
6
:
/* expr ::= expr LIKE expr */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy574
,
yymsp
[
0
].
minor
.
yy574
,
TK_LIKE
);
}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_LIKE
);
}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
28
6
:
/* expr ::= expr MATCH expr */
case
28
7
:
/* expr ::= expr MATCH expr */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy574
,
yymsp
[
0
].
minor
.
yy574
,
TK_MATCH
);
}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_MATCH
);
}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
28
7
:
/* expr ::= expr NMATCH expr */
case
28
8
:
/* expr ::= expr NMATCH expr */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy574
,
yymsp
[
0
].
minor
.
yy574
,
TK_NMATCH
);
}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy546
,
yymsp
[
0
].
minor
.
yy546
,
TK_NMATCH
);
}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
28
8
:
/* expr ::= ID CONTAINS STRING */
case
28
9
:
/* expr ::= ID CONTAINS STRING */
{
tSqlExpr
*
S
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);
tSqlExpr
*
M
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
S
,
M
,
TK_CONTAINS
);
}
{
tSqlExpr
*
S
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);
tSqlExpr
*
M
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
S
,
M
,
TK_CONTAINS
);
}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
2
89
:
/* expr ::= ID DOT ID CONTAINS STRING */
case
2
90
:
/* expr ::= ID DOT ID CONTAINS STRING */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
-
2
].
minor
.
yy0
.
n
);
tSqlExpr
*
S
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
4
].
minor
.
yy0
,
TK_ID
);
tSqlExpr
*
M
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
S
,
M
,
TK_CONTAINS
);
}
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
-
2
].
minor
.
yy0
.
n
);
tSqlExpr
*
S
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
4
].
minor
.
yy0
,
TK_ID
);
tSqlExpr
*
M
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
S
,
M
,
TK_CONTAINS
);
}
yymsp
[
-
4
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
4
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
29
0
:
/* arrow ::= ID ARROW STRING */
case
29
1
:
/* arrow ::= ID ARROW STRING */
{
tSqlExpr
*
S
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);
tSqlExpr
*
M
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
S
,
M
,
TK_ARROW
);
}
{
tSqlExpr
*
S
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);
tSqlExpr
*
M
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
S
,
M
,
TK_ARROW
);
}
yymsp
[
-
2
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
2
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
29
1
:
/* arrow ::= ID DOT ID ARROW STRING */
case
29
2
:
/* arrow ::= ID DOT ID ARROW STRING */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
-
2
].
minor
.
yy0
.
n
);
tSqlExpr
*
S
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
4
].
minor
.
yy0
,
TK_ID
);
tSqlExpr
*
M
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
S
,
M
,
TK_ARROW
);
}
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
-
2
].
minor
.
yy0
.
n
);
tSqlExpr
*
S
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
4
].
minor
.
yy0
,
TK_ID
);
tSqlExpr
*
M
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
S
,
M
,
TK_ARROW
);
}
yymsp
[
-
4
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
4
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
29
2
:
/* expr ::= arrow */
case
29
3
:
/* expr ::= arrow */
case
29
6
:
/* expritem ::= expr */
yytestcase
(
yyruleno
==
296
);
case
29
7
:
/* expritem ::= expr */
yytestcase
(
yyruleno
==
297
);
{
yylhsminor
.
yy5
74
=
yymsp
[
0
].
minor
.
yy574
;}
{
yylhsminor
.
yy5
46
=
yymsp
[
0
].
minor
.
yy546
;}
yymsp
[
0
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
0
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
29
3
:
/* expr ::= expr IN LP exprlist RP */
case
29
4
:
/* expr ::= expr IN LP exprlist RP */
{
yylhsminor
.
yy5
74
=
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy574
,
(
tSqlExpr
*
)
yymsp
[
-
1
].
minor
.
yy209
,
TK_IN
);
}
{
yylhsminor
.
yy5
46
=
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy546
,
(
tSqlExpr
*
)
yymsp
[
-
1
].
minor
.
yy161
,
TK_IN
);
}
yymsp
[
-
4
].
minor
.
yy5
74
=
yylhsminor
.
yy574
;
yymsp
[
-
4
].
minor
.
yy5
46
=
yylhsminor
.
yy546
;
break
;
break
;
case
29
4
:
/* exprlist ::= exprlist COMMA expritem */
case
29
5
:
/* exprlist ::= exprlist COMMA expritem */
{
yylhsminor
.
yy
209
=
tSqlExprListAppend
(
yymsp
[
-
2
].
minor
.
yy209
,
yymsp
[
0
].
minor
.
yy574
,
0
,
0
);}
{
yylhsminor
.
yy
161
=
tSqlExprListAppend
(
yymsp
[
-
2
].
minor
.
yy161
,
yymsp
[
0
].
minor
.
yy546
,
0
,
0
);}
yymsp
[
-
2
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
-
2
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
29
5
:
/* exprlist ::= expritem */
case
29
6
:
/* exprlist ::= expritem */
{
yylhsminor
.
yy
209
=
tSqlExprListAppend
(
0
,
yymsp
[
0
].
minor
.
yy574
,
0
,
0
);}
{
yylhsminor
.
yy
161
=
tSqlExprListAppend
(
0
,
yymsp
[
0
].
minor
.
yy546
,
0
,
0
);}
yymsp
[
0
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
yymsp
[
0
].
minor
.
yy
161
=
yylhsminor
.
yy161
;
break
;
break
;
case
29
8
:
/* cmd ::= RESET QUERY CACHE */
case
29
9
:
/* cmd ::= RESET QUERY CACHE */
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_RESET_CACHE
,
0
);}
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_RESET_CACHE
,
0
);}
break
;
break
;
case
299
:
/* cmd ::= SYNCDB ids REPLICA */
case
300
:
/* cmd ::= SYNCDB ids REPLICA */
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_SYNC_DB_REPLICA
,
1
,
&
yymsp
[
-
1
].
minor
.
yy0
);}
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_SYNC_DB_REPLICA
,
1
,
&
yymsp
[
-
1
].
minor
.
yy0
);}
break
;
break
;
case
30
0
:
/* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
case
30
1
:
/* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
209
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
161
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
break
;
break
;
case
30
1
:
/* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
case
30
2
:
/* 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
;
...
@@ -3387,21 +3716,21 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3387,21 +3716,21 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
break
;
break
;
case
30
2
:
/* cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
case
30
3
:
/* cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
209
,
NULL
,
TSDB_ALTER_TABLE_CHANGE_COLUMN
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
161
,
NULL
,
TSDB_ALTER_TABLE_CHANGE_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
break
;
break
;
case
30
3
:
/* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
case
30
4
:
/* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
209
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
161
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
break
;
break
;
case
30
4
:
/* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
case
30
5
:
/* 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
;
...
@@ -3412,7 +3741,7 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3412,7 +3741,7 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
break
;
break
;
case
30
5
:
/* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
case
30
6
:
/* 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
;
...
@@ -3426,33 +3755,33 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3426,33 +3755,33 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
break
;
break
;
case
30
6
:
/* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
case
30
7
:
/* 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
;
toTSDBType
(
yymsp
[
-
2
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
-
2
].
minor
.
yy0
.
type
);
SArray
*
A
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
-
1
,
false
);
SArray
*
A
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
-
1
,
false
);
A
=
tVariantListAppend
(
A
,
&
yymsp
[
0
].
minor
.
yy5
4
,
-
1
);
A
=
tVariantListAppend
(
A
,
&
yymsp
[
0
].
minor
.
yy5
26
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
6
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_UPDATE_TAG_VAL
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
6
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_UPDATE_TAG_VAL
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
break
;
break
;
case
30
7
:
/* cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
case
30
8
:
/* cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
209
,
NULL
,
TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
161
,
NULL
,
TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
break
;
break
;
case
30
8
:
/* cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
case
30
9
:
/* cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
209
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
161
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
break
;
break
;
case
3
09
:
/* cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
case
3
10
:
/* cmd ::= ALTER STABLE 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
;
...
@@ -3463,21 +3792,21 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3463,21 +3792,21 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
break
;
break
;
case
31
0
:
/* cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
case
31
1
:
/* cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
209
,
NULL
,
TSDB_ALTER_TABLE_CHANGE_COLUMN
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
161
,
NULL
,
TSDB_ALTER_TABLE_CHANGE_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
break
;
break
;
case
31
1
:
/* cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
case
31
2
:
/* cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
209
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
161
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
break
;
break
;
case
31
2
:
/* cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
case
31
3
:
/* cmd ::= ALTER STABLE 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
;
...
@@ -3488,7 +3817,7 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3488,7 +3817,7 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
break
;
break
;
case
31
3
:
/* cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
case
31
4
:
/* cmd ::= ALTER STABLE 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
;
...
@@ -3502,41 +3831,41 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3502,41 +3831,41 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
break
;
break
;
case
31
4
:
/* cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */
case
31
5
:
/* cmd ::= ALTER STABLE 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
;
toTSDBType
(
yymsp
[
-
2
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
-
2
].
minor
.
yy0
.
type
);
SArray
*
A
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
-
1
,
false
);
SArray
*
A
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
-
1
,
false
);
A
=
tVariantListAppend
(
A
,
&
yymsp
[
0
].
minor
.
yy5
4
,
-
1
);
A
=
tVariantListAppend
(
A
,
&
yymsp
[
0
].
minor
.
yy5
26
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
6
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_UPDATE_TAG_VAL
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
6
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_UPDATE_TAG_VAL
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
break
;
break
;
case
31
5
:
/* cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
case
31
6
:
/* cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
209
,
NULL
,
TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
161
,
NULL
,
TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
break
;
break
;
case
31
6
:
/* cmd ::= KILL CONNECTION INTEGER */
case
31
7
:
/* cmd ::= KILL CONNECTION INTEGER */
{
setKillSql
(
pInfo
,
TSDB_SQL_KILL_CONNECTION
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
setKillSql
(
pInfo
,
TSDB_SQL_KILL_CONNECTION
,
&
yymsp
[
0
].
minor
.
yy0
);}
break
;
break
;
case
31
7
:
/* cmd ::= KILL STREAM INTEGER COLON INTEGER */
case
31
8
:
/* cmd ::= KILL STREAM INTEGER COLON INTEGER */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
+
yymsp
[
0
].
minor
.
yy0
.
n
);
setKillSql
(
pInfo
,
TSDB_SQL_KILL_STREAM
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
+
yymsp
[
0
].
minor
.
yy0
.
n
);
setKillSql
(
pInfo
,
TSDB_SQL_KILL_STREAM
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
break
;
break
;
case
31
8
:
/* cmd ::= KILL QUERY INTEGER COLON INTEGER */
case
31
9
:
/* cmd ::= KILL QUERY INTEGER COLON INTEGER */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
+
yymsp
[
0
].
minor
.
yy0
.
n
);
setKillSql
(
pInfo
,
TSDB_SQL_KILL_QUERY
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
+
yymsp
[
0
].
minor
.
yy0
.
n
);
setKillSql
(
pInfo
,
TSDB_SQL_KILL_QUERY
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
break
;
break
;
default:
default:
break
;
break
;
/********** End reduce actions ************************************************/
/********** End reduce actions ************************************************/
};
};
assert
(
yyruleno
<
sizeof
(
yyRuleInfo
)
/
sizeof
(
yyRuleInfo
[
0
])
);
assert
(
yyruleno
<
sizeof
(
yyRuleInfo
Lhs
)
/
sizeof
(
yyRuleInfoLhs
[
0
])
);
yygoto
=
yyRuleInfo
[
yyruleno
].
lhs
;
yygoto
=
yyRuleInfo
Lhs
[
yyruleno
]
;
yysize
=
yyRuleInfo
[
yyruleno
].
nrhs
;
yysize
=
yyRuleInfo
NRhs
[
yyruleno
]
;
yyact
=
yy_find_reduce_action
(
yymsp
[
yysize
].
stateno
,(
YYCODETYPE
)
yygoto
);
yyact
=
yy_find_reduce_action
(
yymsp
[
yysize
].
stateno
,(
YYCODETYPE
)
yygoto
);
/* There are no SHIFTREDUCE actions on nonterminals because the table
/* There are no SHIFTREDUCE actions on nonterminals because the table
...
@@ -3838,11 +4167,10 @@ void Parse(
...
@@ -3838,11 +4167,10 @@ void Parse(
*/
*/
int
ParseFallback
(
int
iToken
){
int
ParseFallback
(
int
iToken
){
#ifdef YYFALLBACK
#ifdef YYFALLBACK
if
(
iToken
<
(
int
)(
sizeof
(
yyFallback
)
/
sizeof
(
yyFallback
[
0
]))
){
assert
(
iToken
<
(
int
)(
sizeof
(
yyFallback
)
/
sizeof
(
yyFallback
[
0
]))
);
return
yyFallback
[
iToken
];
return
yyFallback
[
iToken
];
}
#else
#else
(
void
)
iToken
;
(
void
)
iToken
;
#endif
return
0
;
return
0
;
#endif
}
}
src/util/src/ttokenizer.c
浏览文件 @
e6058244
...
@@ -159,6 +159,7 @@ static SKeyword keywordTable[] = {
...
@@ -159,6 +159,7 @@ static SKeyword keywordTable[] = {
{
"SOFFSET"
,
TK_SOFFSET
},
{
"SOFFSET"
,
TK_SOFFSET
},
{
"WHERE"
,
TK_WHERE
},
{
"WHERE"
,
TK_WHERE
},
{
"NOW"
,
TK_NOW
},
{
"NOW"
,
TK_NOW
},
{
"TODAY"
,
TK_TODAY
},
{
"INSERT"
,
TK_INSERT
},
{
"INSERT"
,
TK_INSERT
},
{
"INTO"
,
TK_INTO
},
{
"INTO"
,
TK_INTO
},
{
"VALUES"
,
TK_VALUES
},
{
"VALUES"
,
TK_VALUES
},
...
@@ -591,6 +592,7 @@ uint32_t tGetToken(char* z, uint32_t* tokenId) {
...
@@ -591,6 +592,7 @@ uint32_t tGetToken(char* z, uint32_t* tokenId) {
for
(
i
=
1
;
((
z
[
i
]
&
0x80
)
==
0
)
&&
isIdChar
[(
uint8_t
)
z
[
i
]];
i
++
)
{
for
(
i
=
1
;
((
z
[
i
]
&
0x80
)
==
0
)
&&
isIdChar
[(
uint8_t
)
z
[
i
]];
i
++
)
{
}
}
*
tokenId
=
tKeywordCode
(
z
,
i
);
*
tokenId
=
tKeywordCode
(
z
,
i
);
return
i
;
return
i
;
}
}
}
}
...
@@ -667,6 +669,12 @@ SStrToken tStrGetToken(char* str, int32_t* i, bool isPrevOptr) {
...
@@ -667,6 +669,12 @@ SStrToken tStrGetToken(char* str, int32_t* i, bool isPrevOptr) {
#endif
#endif
}
}
//for now(),today() function used in insert clause
if
((
t0
.
type
==
TK_NOW
||
t0
.
type
==
TK_TODAY
)
&&
str
[
*
i
+
t0
.
n
]
==
'('
&&
str
[
*
i
+
t0
.
n
+
1
]
==
')'
)
{
t0
.
n
+=
2
;
}
if
(
t0
.
type
==
TK_SEMI
)
{
if
(
t0
.
type
==
TK_SEMI
)
{
t0
.
n
=
0
;
t0
.
n
=
0
;
return
t0
;
return
t0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录