Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
07b38c1c
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
07b38c1c
编写于
9月 07, 2020
作者:
R
root
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/develop' into feature/mqtt
上级
5a5a27e8
47280757
变更
28
显示空白变更内容
内联
并排
Showing
28 changed file
with
1584 addition
and
1423 deletion
+1584
-1423
cmake/platform.inc
cmake/platform.inc
+4
-1
cmake/version.inc
cmake/version.inc
+1
-1
packaging/docker/dockerbuild.sh
packaging/docker/dockerbuild.sh
+0
-1
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+1
-1
src/client/src/tscServer.c
src/client/src/tscServer.c
+1
-1
src/client/src/tscUtil.c
src/client/src/tscUtil.c
+2
-0
src/inc/ttokendef.h
src/inc/ttokendef.h
+120
-121
src/os/inc/os.h
src/os/inc/os.h
+1
-1
src/os/inc/osAlpine.h
src/os/inc/osAlpine.h
+2
-2
src/os/inc/osLinux64.h
src/os/inc/osLinux64.h
+2
-0
src/os/src/detail/osSysinfo.c
src/os/src/detail/osSysinfo.c
+9
-1
src/query/inc/sql.y
src/query/inc/sql.y
+0
-3
src/query/src/qTokenizer.c
src/query/src/qTokenizer.c
+0
-1
src/query/src/sql.c
src/query/src/sql.c
+1187
-1204
src/tsdb/src/tsdbRead.c
src/tsdb/src/tsdbRead.c
+82
-40
src/util/inc/hash.h
src/util/inc/hash.h
+11
-1
src/util/inc/tcache.h
src/util/inc/tcache.h
+1
-1
src/util/src/hash.c
src/util/src/hash.c
+7
-4
src/util/src/tcache.c
src/util/src/tcache.c
+29
-25
src/util/src/tnote.c
src/util/src/tnote.c
+1
-1
tests/examples/JDBC/JDBCDemo/pom.xml
tests/examples/JDBC/JDBCDemo/pom.xml
+1
-1
tests/perftest-scripts/coverage_test.sh
tests/perftest-scripts/coverage_test.sh
+19
-4
tests/perftest-scripts/perftest-taosdemo.sh
tests/perftest-scripts/perftest-taosdemo.sh
+16
-4
tests/pytest/query/queryPerformance.py
tests/pytest/query/queryPerformance.py
+82
-0
tests/script/general/parser/auto_create_tb_drop_tb.sim
tests/script/general/parser/auto_create_tb_drop_tb.sim
+2
-1
tests/script/general/stable/disk.sim
tests/script/general/stable/disk.sim
+1
-1
tests/script/general/stable/vnode3.sim
tests/script/general/stable/vnode3.sim
+1
-1
tests/script/general/table/vgroup.sim
tests/script/general/table/vgroup.sim
+1
-1
未找到文件。
cmake/platform.inc
浏览文件 @
07b38c1c
...
...
@@ -114,6 +114,9 @@ ELSEIF (${OSTYPE} MATCHES "Ningsi80")
MESSAGE
(
STATUS
"input osType: Ningsi80"
)
ELSEIF
(
$
{
OSTYPE
}
MATCHES
"Linux"
)
MESSAGE
(
STATUS
"input osType: Linux"
)
ELSEIF
(
$
{
OSTYPE
}
MATCHES
"Alpine"
)
MESSAGE
(
STATUS
"input osType: Alpine"
)
SET
(
TD_APLHINE
TRUE
)
ELSE
()
MESSAGE
(
STATUS
"input osType unknown: "
$
{
OSTYPE
})
ENDIF
()
cmake/version.inc
浏览文件 @
07b38c1c
...
...
@@ -4,7 +4,7 @@ PROJECT(TDengine)
IF
(
DEFINED
VERNUMBER
)
SET
(
TD_VER_NUMBER
$
{
VERNUMBER
})
ELSE
()
SET
(
TD_VER_NUMBER
"2.0.
2
.0"
)
SET
(
TD_VER_NUMBER
"2.0.
3
.0"
)
ENDIF
()
IF
(
DEFINED
VERCOMPATIBLE
)
...
...
packaging/docker/dockerbuild.sh
浏览文件 @
07b38c1c
#!/bin/bash
set
-x
$1
docker build
--rm
-f
"Dockerfile"
-t
tdengine/tdengine:
$1
"."
docker login
-u
tdengine
-p
$2
#replace the docker registry username and password
docker push tdengine/tdengine:
$1
src/client/src/tscSQLParser.c
浏览文件 @
07b38c1c
...
...
@@ -5088,7 +5088,7 @@ static int32_t setTimePrecision(SSqlCmd* pCmd, SCMCreateDbMsg* pMsg, SCreateDBIn
}
static
void
setCreateDBOption
(
SCMCreateDbMsg
*
pMsg
,
SCreateDBInfo
*
pCreateDb
)
{
pMsg
->
maxTables
=
htonl
(
pCreateDb
->
maxTablesPerVnode
);
pMsg
->
maxTables
=
htonl
(
-
1
);
// max tables can not be set anymore
pMsg
->
cacheBlockSize
=
htonl
(
pCreateDb
->
cacheBlockSize
);
pMsg
->
totalBlocks
=
htonl
(
pCreateDb
->
numOfBlocks
);
pMsg
->
daysPerFile
=
htonl
(
pCreateDb
->
daysPerFile
);
...
...
src/client/src/tscServer.c
浏览文件 @
07b38c1c
...
...
@@ -406,7 +406,7 @@ int doProcessSql(SSqlObj *pSql) {
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
pRes
->
code
=
code
;
tscQueueAsyncRes
(
pSql
);
return
pRes
->
code
;
return
code
;
}
return
TSDB_CODE_SUCCESS
;
...
...
src/client/src/tscUtil.c
浏览文件 @
07b38c1c
...
...
@@ -718,6 +718,7 @@ int32_t tscMergeTableDataBlocks(SSqlObj* pSql, SArray* pTableDataBlockList) {
return
TSDB_CODE_SUCCESS
;
}
// TODO: all subqueries should be freed correctly before close this connection.
void
tscCloseTscObj
(
STscObj
*
pObj
)
{
assert
(
pObj
!=
NULL
);
...
...
@@ -727,6 +728,7 @@ void tscCloseTscObj(STscObj* pObj) {
if
(
pObj
->
pDnodeConn
!=
NULL
)
{
rpcClose
(
pObj
->
pDnodeConn
);
pObj
->
pDnodeConn
=
NULL
;
}
tscDebug
(
"%p DB connection is closed, dnodeConn:%p"
,
pObj
,
pObj
->
pDnodeConn
);
...
...
src/inc/ttokendef.h
浏览文件 @
07b38c1c
...
...
@@ -101,127 +101,126 @@
#define TK_CONNS 83
#define TK_STATE 84
#define TK_KEEP 85
#define TK_MAXTABLES 86
#define TK_CACHE 87
#define TK_REPLICA 88
#define TK_QUORUM 89
#define TK_DAYS 90
#define TK_MINROWS 91
#define TK_MAXROWS 92
#define TK_BLOCKS 93
#define TK_CTIME 94
#define TK_WAL 95
#define TK_FSYNC 96
#define TK_COMP 97
#define TK_PRECISION 98
#define TK_LP 99
#define TK_RP 100
#define TK_TAGS 101
#define TK_USING 102
#define TK_AS 103
#define TK_COMMA 104
#define TK_NULL 105
#define TK_SELECT 106
#define TK_UNION 107
#define TK_ALL 108
#define TK_FROM 109
#define TK_VARIABLE 110
#define TK_INTERVAL 111
#define TK_FILL 112
#define TK_SLIDING 113
#define TK_ORDER 114
#define TK_BY 115
#define TK_ASC 116
#define TK_DESC 117
#define TK_GROUP 118
#define TK_HAVING 119
#define TK_LIMIT 120
#define TK_OFFSET 121
#define TK_SLIMIT 122
#define TK_SOFFSET 123
#define TK_WHERE 124
#define TK_NOW 125
#define TK_RESET 126
#define TK_QUERY 127
#define TK_ADD 128
#define TK_COLUMN 129
#define TK_TAG 130
#define TK_CHANGE 131
#define TK_SET 132
#define TK_KILL 133
#define TK_CONNECTION 134
#define TK_STREAM 135
#define TK_COLON 136
#define TK_ABORT 137
#define TK_AFTER 138
#define TK_ATTACH 139
#define TK_BEFORE 140
#define TK_BEGIN 141
#define TK_CASCADE 142
#define TK_CLUSTER 143
#define TK_CONFLICT 144
#define TK_COPY 145
#define TK_DEFERRED 146
#define TK_DELIMITERS 147
#define TK_DETACH 148
#define TK_EACH 149
#define TK_END 150
#define TK_EXPLAIN 151
#define TK_FAIL 152
#define TK_FOR 153
#define TK_IGNORE 154
#define TK_IMMEDIATE 155
#define TK_INITIALLY 156
#define TK_INSTEAD 157
#define TK_MATCH 158
#define TK_KEY 159
#define TK_OF 160
#define TK_RAISE 161
#define TK_REPLACE 162
#define TK_RESTRICT 163
#define TK_ROW 164
#define TK_STATEMENT 165
#define TK_TRIGGER 166
#define TK_VIEW 167
#define TK_COUNT 168
#define TK_SUM 169
#define TK_AVG 170
#define TK_MIN 171
#define TK_MAX 172
#define TK_FIRST 173
#define TK_LAST 174
#define TK_TOP 175
#define TK_BOTTOM 176
#define TK_STDDEV 177
#define TK_PERCENTILE 178
#define TK_APERCENTILE 179
#define TK_LEASTSQUARES 180
#define TK_HISTOGRAM 181
#define TK_DIFF 182
#define TK_SPREAD 183
#define TK_TWA 184
#define TK_INTERP 185
#define TK_LAST_ROW 186
#define TK_RATE 187
#define TK_IRATE 188
#define TK_SUM_RATE 189
#define TK_SUM_IRATE 190
#define TK_AVG_RATE 191
#define TK_AVG_IRATE 192
#define TK_TBID 193
#define TK_SEMI 194
#define TK_NONE 195
#define TK_PREV 196
#define TK_LINEAR 197
#define TK_IMPORT 198
#define TK_METRIC 199
#define TK_TBNAME 200
#define TK_JOIN 201
#define TK_METRICS 202
#define TK_STABLE 203
#define TK_INSERT 204
#define TK_INTO 205
#define TK_VALUES 206
#define TK_CACHE 86
#define TK_REPLICA 87
#define TK_QUORUM 88
#define TK_DAYS 89
#define TK_MINROWS 90
#define TK_MAXROWS 91
#define TK_BLOCKS 92
#define TK_CTIME 93
#define TK_WAL 94
#define TK_FSYNC 95
#define TK_COMP 96
#define TK_PRECISION 97
#define TK_LP 98
#define TK_RP 99
#define TK_TAGS 100
#define TK_USING 101
#define TK_AS 102
#define TK_COMMA 103
#define TK_NULL 104
#define TK_SELECT 105
#define TK_UNION 106
#define TK_ALL 107
#define TK_FROM 108
#define TK_VARIABLE 109
#define TK_INTERVAL 110
#define TK_FILL 111
#define TK_SLIDING 112
#define TK_ORDER 113
#define TK_BY 114
#define TK_ASC 115
#define TK_DESC 116
#define TK_GROUP 117
#define TK_HAVING 118
#define TK_LIMIT 119
#define TK_OFFSET 120
#define TK_SLIMIT 121
#define TK_SOFFSET 122
#define TK_WHERE 123
#define TK_NOW 124
#define TK_RESET 125
#define TK_QUERY 126
#define TK_ADD 127
#define TK_COLUMN 128
#define TK_TAG 129
#define TK_CHANGE 130
#define TK_SET 131
#define TK_KILL 132
#define TK_CONNECTION 133
#define TK_STREAM 134
#define TK_COLON 135
#define TK_ABORT 136
#define TK_AFTER 137
#define TK_ATTACH 138
#define TK_BEFORE 139
#define TK_BEGIN 140
#define TK_CASCADE 141
#define TK_CLUSTER 142
#define TK_CONFLICT 143
#define TK_COPY 144
#define TK_DEFERRED 145
#define TK_DELIMITERS 146
#define TK_DETACH 147
#define TK_EACH 148
#define TK_END 149
#define TK_EXPLAIN 150
#define TK_FAIL 151
#define TK_FOR 152
#define TK_IGNORE 153
#define TK_IMMEDIATE 154
#define TK_INITIALLY 155
#define TK_INSTEAD 156
#define TK_MATCH 157
#define TK_KEY 158
#define TK_OF 159
#define TK_RAISE 160
#define TK_REPLACE 161
#define TK_RESTRICT 162
#define TK_ROW 163
#define TK_STATEMENT 164
#define TK_TRIGGER 165
#define TK_VIEW 166
#define TK_COUNT 167
#define TK_SUM 168
#define TK_AVG 169
#define TK_MIN 170
#define TK_MAX 171
#define TK_FIRST 172
#define TK_LAST 173
#define TK_TOP 174
#define TK_BOTTOM 175
#define TK_STDDEV 176
#define TK_PERCENTILE 177
#define TK_APERCENTILE 178
#define TK_LEASTSQUARES 179
#define TK_HISTOGRAM 180
#define TK_DIFF 181
#define TK_SPREAD 182
#define TK_TWA 183
#define TK_INTERP 184
#define TK_LAST_ROW 185
#define TK_RATE 186
#define TK_IRATE 187
#define TK_SUM_RATE 188
#define TK_SUM_IRATE 189
#define TK_AVG_RATE 190
#define TK_AVG_IRATE 191
#define TK_TBID 192
#define TK_SEMI 193
#define TK_NONE 194
#define TK_PREV 195
#define TK_LINEAR 196
#define TK_IMPORT 197
#define TK_METRIC 198
#define TK_TBNAME 199
#define TK_JOIN 200
#define TK_METRICS 201
#define TK_STABLE 202
#define TK_INSERT 203
#define TK_INTO 204
#define TK_VALUES 205
#define TK_SPACE 300
...
...
src/os/inc/os.h
浏览文件 @
07b38c1c
...
...
@@ -36,7 +36,7 @@ extern "C" {
#include "osLinux32.h"
#endif
#ifdef _
TD_
ALPINE
#ifdef _ALPINE
#include "osAlpine.h"
#endif
...
...
src/os/inc/osAlpine.h
浏览文件 @
07b38c1c
...
...
@@ -13,8 +13,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef TDENGINE_OS_
LINUX64
_H
#define TDENGINE_OS_
LINUX64
_H
#ifndef TDENGINE_OS_
ALPINE
_H
#define TDENGINE_OS_
ALPINE
_H
#ifdef __cplusplus
extern
"C"
{
...
...
src/os/inc/osLinux64.h
浏览文件 @
07b38c1c
...
...
@@ -75,7 +75,9 @@ extern "C" {
#include <fcntl.h>
#include <sys/utsname.h>
#include <sys/resource.h>
#ifndef _ALPINE
#include <error.h>
#endif
#include <linux/sysctl.h>
#ifdef __cplusplus
...
...
src/os/src/detail/osSysinfo.c
浏览文件 @
07b38c1c
...
...
@@ -579,7 +579,11 @@ void taosSetCoreDump() {
struct
rlimit
rlim
;
struct
rlimit
rlim_new
;
if
(
getrlimit
(
RLIMIT_CORE
,
&
rlim
)
==
0
)
{
#ifndef _ALPINE
uInfo
(
"the old unlimited para: rlim_cur=%"
PRIu64
", rlim_max=%"
PRIu64
,
rlim
.
rlim_cur
,
rlim
.
rlim_max
);
#else
uInfo
(
"the old unlimited para: rlim_cur=%llu, rlim_max=%llu"
,
rlim
.
rlim_cur
,
rlim
.
rlim_max
);
#endif
rlim_new
.
rlim_cur
=
RLIM_INFINITY
;
rlim_new
.
rlim_max
=
RLIM_INFINITY
;
if
(
setrlimit
(
RLIMIT_CORE
,
&
rlim_new
)
!=
0
)
{
...
...
@@ -591,7 +595,11 @@ void taosSetCoreDump() {
}
if
(
getrlimit
(
RLIMIT_CORE
,
&
rlim
)
==
0
)
{
#ifndef _ALPINE
uInfo
(
"the new unlimited para: rlim_cur=%"
PRIu64
", rlim_max=%"
PRIu64
,
rlim
.
rlim_cur
,
rlim
.
rlim_max
);
#else
uInfo
(
"the new unlimited para: rlim_cur=%llu, rlim_max=%llu"
,
rlim
.
rlim_cur
,
rlim
.
rlim_max
);
#endif
}
#ifndef _TD_ARM_
...
...
src/query/inc/sql.y
浏览文件 @
07b38c1c
...
...
@@ -217,7 +217,6 @@ acct_optr(Y) ::= pps(C) tseries(D) storage(P) streams(F) qtime(Q) dbs(E) users(K
%destructor keep {tVariantListDestroy($$);}
keep(Y) ::= KEEP tagitemlist(X). { Y = X; }
tables(Y) ::= MAXTABLES INTEGER(X). { Y = X; }
cache(Y) ::= CACHE INTEGER(X). { Y = X; }
replica(Y) ::= REPLICA INTEGER(X). { Y = X; }
quorum(Y) ::= QUORUM INTEGER(X). { Y = X; }
...
...
@@ -234,7 +233,6 @@ prec(Y) ::= PRECISION STRING(X). { Y = X; }
%type db_optr {SCreateDBInfo}
db_optr(Y) ::= . {setDefaultCreateDbOption(&Y);}
db_optr(Y) ::= db_optr(Z) tables(X). { Y = Z; Y.maxTablesPerVnode = strtol(X.z, NULL, 10); }
db_optr(Y) ::= db_optr(Z) cache(X). { Y = Z; Y.cacheBlockSize = strtol(X.z, NULL, 10); }
db_optr(Y) ::= db_optr(Z) replica(X). { Y = Z; Y.replica = strtol(X.z, NULL, 10); }
db_optr(Y) ::= db_optr(Z) quorum(X). { Y = Z; Y.quorum = strtol(X.z, NULL, 10); }
...
...
@@ -254,7 +252,6 @@ alter_db_optr(Y) ::= . { setDefaultCreateDbOption(&Y);}
alter_db_optr(Y) ::= alter_db_optr(Z) replica(X). { Y = Z; Y.replica = strtol(X.z, NULL, 10); }
alter_db_optr(Y) ::= alter_db_optr(Z) quorum(X). { Y = Z; Y.quorum = strtol(X.z, NULL, 10); }
alter_db_optr(Y) ::= alter_db_optr(Z) tables(X). { Y = Z; Y.maxTablesPerVnode = strtol(X.z, NULL, 10); }
alter_db_optr(Y) ::= alter_db_optr(Z) keep(X). { Y = Z; Y.keep = X; }
alter_db_optr(Y) ::= alter_db_optr(Z) blocks(X). { Y = Z; Y.numOfBlocks = strtol(X.z, NULL, 10); }
alter_db_optr(Y) ::= alter_db_optr(Z) comp(X). { Y = Z; Y.compressionLevel = strtol(X.z, NULL, 10); }
...
...
src/query/src/qTokenizer.c
浏览文件 @
07b38c1c
...
...
@@ -121,7 +121,6 @@ static SKeyword keywordTable[] = {
{
"MINROWS"
,
TK_MINROWS
},
{
"MAXROWS"
,
TK_MAXROWS
},
{
"BLOCKS"
,
TK_BLOCKS
},
{
"MAXTABLES"
,
TK_MAXTABLES
},
{
"CACHE"
,
TK_CACHE
},
{
"CTIME"
,
TK_CTIME
},
{
"WAL"
,
TK_WAL
},
...
...
src/query/src/sql.c
浏览文件 @
07b38c1c
...
...
@@ -97,26 +97,26 @@
#endif
/************* Begin control #defines *****************************************/
#define YYCODETYPE unsigned short int
#define YYNOCODE 27
4
#define YYNOCODE 27
2
#define YYACTIONTYPE unsigned short int
#define ParseTOKENTYPE SStrToken
typedef
union
{
int
yyinit
;
ParseTOKENTYPE
yy0
;
int
yy46
;
tSQLExpr
*
yy6
4
;
tVariant
yy134
;
SCreateAcctSQL
yy149
;
int64_t
yy207
;
S
LimitVal
yy216
;
TAOS_FIELD
yy
223
;
S
SubclauseInfo
*
yy231
;
SCreateDBInfo
yy268
;
tSQLExprList
*
yy290
;
SQuerySQL
*
yy414
;
SCreateTableSQL
*
yy
470
;
t
VariantList
*
yy498
;
t
FieldList
*
yy523
;
SSubclauseInfo
*
yy25
;
tSQLExpr
*
yy6
6
;
SCreateAcctSQL
yy73
;
int
yy82
;
SQuerySQL
*
yy150
;
S
CreateDBInfo
yy158
;
TAOS_FIELD
yy
181
;
S
LimitVal
yy188
;
tSQLExprList
*
yy224
;
int64_t
yy271
;
tVariant
yy312
;
SCreateTableSQL
*
yy
374
;
t
FieldList
*
yy449
;
t
VariantList
*
yy494
;
}
YYMINORTYPE
;
#ifndef YYSTACKDEPTH
#define YYSTACKDEPTH 100
...
...
@@ -126,17 +126,17 @@ typedef union {
#define ParseARG_FETCH SSqlInfo* pInfo = yypParser->pInfo
#define ParseARG_STORE yypParser->pInfo = pInfo
#define YYFALLBACK 1
#define YYNSTATE 24
5
#define YYNRULE 22
8
#define YYNTOKEN 20
7
#define YY_MAX_SHIFT 24
4
#define YY_MIN_SHIFTREDUCE 40
7
#define YY_MAX_SHIFTREDUCE 6
34
#define YY_ERROR_ACTION 6
35
#define YY_ACCEPT_ACTION 6
36
#define YY_NO_ACTION 63
7
#define YY_MIN_REDUCE 63
8
#define YY_MAX_REDUCE 8
6
5
#define YYNSTATE 24
4
#define YYNRULE 22
5
#define YYNTOKEN 20
6
#define YY_MAX_SHIFT 24
3
#define YY_MIN_SHIFTREDUCE 40
3
#define YY_MAX_SHIFTREDUCE 6
27
#define YY_ERROR_ACTION 6
28
#define YY_ACCEPT_ACTION 6
29
#define YY_NO_ACTION 63
0
#define YY_MIN_REDUCE 63
1
#define YY_MAX_REDUCE 8
5
5
/************* End control #defines *******************************************/
/* Define the yytestcase() macro to be a no-op if is not already defined
...
...
@@ -202,219 +202,217 @@ typedef union {
** yy_default[] Default action for each state.
**
*********** Begin parsing tables **********************************************/
#define YY_ACTTAB_COUNT (5
54
)
#define YY_ACTTAB_COUNT (5
49
)
static
const
YYACTIONTYPE
yy_action
[]
=
{
/* 0 */
105
,
448
,
137
,
677
,
636
,
244
,
128
,
517
,
137
,
449
,
/* 10 */
137
,
160
,
853
,
41
,
43
,
11
,
35
,
36
,
852
,
159
,
/* 20 */
853
,
29
,
136
,
448
,
199
,
39
,
37
,
40
,
38
,
157
,
/* 30 */
105
,
449
,
141
,
34
,
33
,
219
,
218
,
32
,
31
,
30
,
/* 40 */
41
,
43
,
771
,
35
,
36
,
32
,
31
,
30
,
29
,
760
,
/* 50 */
448
,
199
,
39
,
37
,
40
,
38
,
184
,
808
,
449
,
194
,
/* 60 */
34
,
33
,
21
,
21
,
32
,
31
,
30
,
408
,
409
,
410
,
/* 70 */
411
,
412
,
413
,
414
,
415
,
416
,
417
,
418
,
419
,
243
,
/* 80 */
41
,
43
,
230
,
35
,
36
,
196
,
849
,
60
,
29
,
21
,
/* 90 */
848
,
199
,
39
,
37
,
40
,
38
,
168
,
169
,
757
,
757
,
/* 100 */
34
,
33
,
170
,
56
,
32
,
31
,
30
,
782
,
847
,
16
,
/* 110 */
237
,
210
,
236
,
235
,
209
,
208
,
207
,
234
,
206
,
233
,
/* 120 */
232
,
231
,
205
,
217
,
153
,
757
,
736
,
590
,
723
,
724
,
/* 130 */
725
,
726
,
727
,
728
,
729
,
730
,
731
,
732
,
733
,
734
,
/* 140 */
735
,
43
,
8
,
35
,
36
,
63
,
115
,
21
,
29
,
155
,
/* 150 */
242
,
199
,
39
,
37
,
40
,
38
,
241
,
240
,
97
,
779
,
/* 160 */
34
,
33
,
167
,
101
,
32
,
31
,
30
,
171
,
35
,
36
,
/* 170 */
216
,
215
,
596
,
29
,
599
,
105
,
199
,
39
,
37
,
40
,
/* 180 */
38
,
222
,
760
,
757
,
238
,
34
,
33
,
177
,
12
,
32
,
/* 190 */
31
,
30
,
164
,
603
,
181
,
180
,
594
,
771
,
597
,
105
,
/* 200 */
600
,
163
,
164
,
603
,
760
,
17
,
594
,
150
,
597
,
154
,
/* 210 */
600
,
156
,
26
,
90
,
89
,
144
,
187
,
571
,
572
,
16
,
/* 220 */
237
,
149
,
236
,
235
,
161
,
162
,
221
,
234
,
198
,
233
,
/* 230 */
232
,
231
,
807
,
78
,
161
,
162
,
164
,
603
,
549
,
230
,
/* 240 */
594
,
3
,
597
,
17
,
600
,
76
,
80
,
85
,
88
,
79
,
/* 250 */
26
,
39
,
37
,
40
,
38
,
82
,
61
,
758
,
21
,
34
,
/* 260 */
33
,
546
,
62
,
32
,
31
,
30
,
18
,
142
,
161
,
162
,
/* 270 */
183
,
741
,
541
,
740
,
27
,
738
,
739
,
152
,
686
,
186
,
/* 280 */
742
,
128
,
744
,
745
,
743
,
678
,
533
,
143
,
128
,
530
,
/* 290 */
42
,
531
,
562
,
532
,
756
,
595
,
46
,
598
,
34
,
33
,
/* 300 */
42
,
602
,
32
,
31
,
30
,
118
,
119
,
70
,
66
,
69
,
/* 310 */
592
,
602
,
145
,
50
,
75
,
74
,
601
,
172
,
173
,
132
,
/* 320 */
130
,
93
,
92
,
91
,
100
,
47
,
601
,
146
,
563
,
620
,
/* 330 */
51
,
26
,
14
,
13
,
42
,
147
,
604
,
523
,
522
,
203
,
/* 340 */
13
,
46
,
22
,
22
,
48
,
602
,
593
,
10
,
9
,
537
,
/* 350 */
535
,
538
,
536
,
87
,
86
,
148
,
139
,
135
,
862
,
140
,
/* 360 */
601
,
138
,
759
,
818
,
817
,
165
,
814
,
813
,
166
,
781
,
/* 370 */
751
,
220
,
800
,
786
,
788
,
773
,
102
,
799
,
26
,
116
,
/* 380 */
114
,
117
,
688
,
185
,
204
,
133
,
24
,
213
,
685
,
534
,
/* 390 */
214
,
861
,
95
,
72
,
860
,
858
,
558
,
120
,
706
,
25
,
/* 400 */
23
,
134
,
52
,
188
,
675
,
81
,
673
,
83
,
84
,
671
,
/* 410 */
670
,
174
,
192
,
129
,
668
,
667
,
666
,
665
,
664
,
656
,
/* 420 */
49
,
131
,
662
,
660
,
658
,
770
,
57
,
58
,
801
,
44
,
/* 430 */
197
,
195
,
193
,
191
,
189
,
28
,
106
,
212
,
77
,
223
,
/* 440 */
224
,
225
,
226
,
201
,
53
,
227
,
228
,
229
,
239
,
64
,
/* 450 */
67
,
634
,
151
,
175
,
176
,
633
,
178
,
179
,
632
,
669
,
/* 460 */
186
,
625
,
94
,
96
,
123
,
127
,
2
,
122
,
707
,
755
,
/* 470 */
121
,
124
,
125
,
111
,
107
,
108
,
126
,
109
,
110
,
112
,
/* 480 */
663
,
113
,
182
,
1
,
543
,
55
,
59
,
559
,
103
,
158
,
/* 490 */
564
,
5
,
190
,
104
,
6
,
65
,
490
,
605
,
4
,
19
,
/* 500 */
20
,
15
,
200
,
7
,
202
,
486
,
484
,
483
,
482
,
479
,
/* 510 */
452
,
211
,
68
,
45
,
22
,
71
,
73
,
519
,
518
,
516
,
/* 520 */
54
,
473
,
471
,
463
,
469
,
465
,
467
,
461
,
459
,
489
,
/* 530 */
488
,
487
,
485
,
481
,
480
,
478
,
46
,
450
,
423
,
421
,
/* 540 */
638
,
637
,
637
,
637
,
637
,
637
,
637
,
637
,
637
,
637
,
/* 550 */
637
,
637
,
98
,
99
,
/* 0 */
731
,
444
,
221
,
729
,
730
,
629
,
243
,
510
,
732
,
445
,
/* 10 */
734
,
735
,
733
,
41
,
43
,
526
,
35
,
36
,
523
,
11
,
/* 20 */
524
,
29
,
525
,
444
,
199
,
39
,
37
,
40
,
38
,
155
,
/* 30 */
241
,
445
,
748
,
34
,
33
,
219
,
218
,
32
,
31
,
30
,
/* 40 */
41
,
43
,
761
,
35
,
36
,
136
,
172
,
173
,
29
,
137
,
/* 50 */
21
,
199
,
39
,
37
,
40
,
38
,
184
,
141
,
160
,
843
,
/* 60 */
34
,
33
,
839
,
772
,
32
,
31
,
30
,
404
,
405
,
406
,
/* 70 */
407
,
408
,
409
,
410
,
411
,
412
,
413
,
414
,
415
,
242
,
/* 80 */
41
,
43
,
230
,
35
,
36
,
746
,
62
,
137
,
29
,
137
,
/* 90 */
21
,
199
,
39
,
37
,
40
,
38
,
159
,
843
,
27
,
842
,
/* 100 */
34
,
33
,
56
,
838
,
32
,
31
,
30
,
105
,
43
,
8
,
/* 110 */
35
,
36
,
63
,
115
,
769
,
29
,
761
,
527
,
199
,
39
,
/* 120 */
37
,
40
,
38
,
168
,
539
,
747
,
583
,
34
,
33
,
18
,
/* 130 */
156
,
32
,
31
,
30
,
16
,
210
,
236
,
235
,
209
,
208
,
/* 140 */
207
,
234
,
206
,
233
,
232
,
231
,
205
,
727
,
105
,
715
,
/* 150 */
716
,
717
,
718
,
719
,
720
,
721
,
722
,
723
,
724
,
725
,
/* 160 */
726
,
35
,
36
,
798
,
837
,
194
,
29
,
177
,
157
,
199
,
/* 170 */
39
,
37
,
40
,
38
,
181
,
180
,
21
,
21
,
34
,
33
,
/* 180 */
444
,
12
,
32
,
31
,
30
,
164
,
596
,
750
,
445
,
587
,
/* 190 */
153
,
590
,
154
,
593
,
105
,
164
,
596
,
21
,
17
,
587
,
/* 200 */
150
,
590
,
196
,
593
,
60
,
26
,
90
,
89
,
144
,
169
,
/* 210 */
217
,
747
,
747
,
16
,
149
,
236
,
235
,
161
,
162
,
167
,
/* 220 */
234
,
198
,
233
,
232
,
231
,
142
,
670
,
161
,
162
,
128
,
/* 230 */
222
,
542
,
747
,
164
,
596
,
17
,
143
,
587
,
750
,
590
,
/* 240 */
105
,
593
,
26
,
39
,
37
,
40
,
38
,
100
,
170
,
145
,
/* 250 */
797
,
34
,
33
,
101
,
26
,
32
,
31
,
30
,
32
,
31
,
/* 260 */
30
,
78
,
183
,
564
,
565
,
161
,
162
,
230
,
589
,
152
,
/* 270 */
592
,
76
,
80
,
85
,
88
,
79
,
240
,
239
,
97
,
34
,
/* 280 */
33
,
82
,
42
,
32
,
31
,
30
,
118
,
119
,
70
,
66
,
/* 290 */
69
,
237
,
42
,
595
,
679
,
163
,
61
,
128
,
132
,
130
,
/* 300 */
93
,
92
,
91
,
595
,
671
,
187
,
585
,
128
,
594
,
588
,
/* 310 */
750
,
591
,
171
,
534
,
47
,
216
,
215
,
146
,
594
,
555
,
/* 320 */
186
,
147
,
556
,
46
,
613
,
148
,
14
,
597
,
13
,
139
,
/* 330 */
42
,
13
,
50
,
48
,
3
,
135
,
75
,
74
,
140
,
516
,
/* 340 */
515
,
595
,
586
,
46
,
22
,
138
,
203
,
10
,
9
,
51
,
/* 350 */
22
,
852
,
530
,
528
,
531
,
529
,
594
,
87
,
86
,
749
,
/* 360 */
808
,
807
,
165
,
804
,
803
,
166
,
771
,
741
,
220
,
776
,
/* 370 */
763
,
778
,
102
,
790
,
789
,
116
,
117
,
114
,
681
,
204
,
/* 380 */
133
,
24
,
213
,
678
,
214
,
851
,
72
,
850
,
848
,
26
,
/* 390 */
120
,
699
,
25
,
23
,
185
,
95
,
134
,
668
,
81
,
551
,
/* 400 */
666
,
83
,
84
,
664
,
188
,
663
,
174
,
129
,
661
,
660
,
/* 410 */
659
,
658
,
657
,
649
,
131
,
655
,
653
,
192
,
52
,
651
,
/* 420 */
760
,
57
,
49
,
58
,
791
,
44
,
197
,
195
,
193
,
191
,
/* 430 */
189
,
28
,
212
,
77
,
223
,
224
,
225
,
226
,
227
,
228
,
/* 440 */
229
,
238
,
627
,
176
,
175
,
626
,
201
,
178
,
179
,
53
,
/* 450 */
625
,
618
,
182
,
536
,
64
,
151
,
186
,
67
,
552
,
55
,
/* 460 */
103
,
158
,
662
,
59
,
200
,
94
,
96
,
123
,
700
,
121
,
/* 470 */
126
,
106
,
107
,
122
,
124
,
125
,
127
,
112
,
108
,
109
,
/* 480 */
113
,
745
,
110
,
656
,
111
,
1
,
2
,
190
,
5
,
557
,
/* 490 */
104
,
19
,
6
,
598
,
20
,
4
,
15
,
7
,
65
,
485
,
/* 500 */
202
,
481
,
479
,
478
,
477
,
474
,
448
,
211
,
68
,
45
,
/* 510 */
71
,
73
,
22
,
512
,
511
,
509
,
54
,
469
,
467
,
459
,
/* 520 */
465
,
461
,
463
,
457
,
455
,
484
,
483
,
482
,
480
,
476
,
/* 530 */
475
,
46
,
446
,
419
,
417
,
631
,
630
,
630
,
630
,
630
,
/* 540 */
630
,
630
,
630
,
630
,
630
,
630
,
630
,
98
,
99
,
};
static
const
YYCODETYPE
yy_lookahead
[]
=
{
/* 0 */
2
11
,
1
,
262
,
215
,
208
,
209
,
218
,
5
,
262
,
9
,
/* 10 */
2
62
,
271
,
272
,
13
,
14
,
262
,
16
,
17
,
272
,
271
,
/* 20 */
272
,
21
,
262
,
1
,
24
,
25
,
26
,
27
,
28
,
228
,
/* 30 */
21
1
,
9
,
262
,
33
,
34
,
33
,
34
,
37
,
38
,
39
,
/* 40 */
13
,
14
,
24
6
,
16
,
17
,
37
,
38
,
39
,
21
,
248
,
/* 50 */
1
,
24
,
25
,
26
,
27
,
28
,
260
,
268
,
9
,
270
,
/* 60 */
33
,
34
,
2
11
,
211
,
37
,
38
,
39
,
45
,
46
,
47
,
/* 0 */
2
26
,
1
,
210
,
229
,
230
,
207
,
208
,
5
,
234
,
9
,
/* 10 */
2
36
,
237
,
238
,
13
,
14
,
2
,
16
,
17
,
5
,
260
,
/* 20 */
7
,
21
,
9
,
1
,
24
,
25
,
26
,
27
,
28
,
209
,
/* 30 */
21
0
,
9
,
240
,
33
,
34
,
33
,
34
,
37
,
38
,
39
,
/* 40 */
13
,
14
,
24
4
,
16
,
17
,
260
,
33
,
34
,
21
,
260
,
/* 50 */
210
,
24
,
25
,
26
,
27
,
28
,
258
,
260
,
26
9
,
270
,
/* 60 */
33
,
34
,
2
60
,
210
,
37
,
38
,
39
,
45
,
46
,
47
,
/* 70 */
48
,
49
,
50
,
51
,
52
,
53
,
54
,
55
,
56
,
57
,
/* 80 */
13
,
14
,
78
,
16
,
17
,
266
,
262
,
268
,
21
,
211
,
/* 90 */
262
,
24
,
25
,
26
,
27
,
28
,
245
,
245
,
247
,
247
,
/* 100 */
33
,
34
,
63
,
103
,
37
,
38
,
39
,
211
,
262
,
85
,
/* 110 */
86
,
87
,
88
,
89
,
90
,
91
,
92
,
93
,
94
,
95
,
/* 120 */
96
,
97
,
98
,
245
,
262
,
247
,
227
,
100
,
229
,
230
,
/* 130 */
231
,
232
,
233
,
234
,
235
,
236
,
237
,
238
,
239
,
240
,
/* 140 */
241
,
14
,
99
,
16
,
17
,
102
,
103
,
211
,
21
,
210
,
/* 150 */
211
,
24
,
25
,
26
,
27
,
28
,
60
,
61
,
62
,
263
,
/* 160 */
33
,
34
,
228
,
211
,
37
,
38
,
39
,
128
,
16
,
17
,
/* 170 */
131
,
132
,
5
,
21
,
7
,
211
,
24
,
25
,
26
,
27
,
/* 180 */
28
,
245
,
248
,
247
,
228
,
33
,
34
,
127
,
44
,
37
,
/* 190 */
38
,
39
,
1
,
2
,
134
,
135
,
5
,
246
,
7
,
211
,
/* 200 */
9
,
59
,
1
,
2
,
248
,
99
,
5
,
63
,
7
,
262
,
/* 210 */
9
,
260
,
106
,
69
,
70
,
71
,
264
,
116
,
117
,
85
,
/* 220 */
86
,
77
,
88
,
89
,
33
,
34
,
211
,
93
,
37
,
95
,
/* 230 */
96
,
97
,
268
,
72
,
33
,
34
,
1
,
2
,
37
,
78
,
/* 240 */
5
,
99
,
7
,
99
,
9
,
64
,
65
,
66
,
67
,
68
,
/* 250 */
106
,
25
,
26
,
27
,
28
,
74
,
268
,
242
,
211
,
33
,
/* 260 */
34
,
104
,
249
,
37
,
38
,
39
,
109
,
262
,
33
,
34
,
/* 270 */
126
,
227
,
100
,
229
,
261
,
231
,
232
,
133
,
215
,
107
,
/* 280 */
236
,
218
,
238
,
239
,
240
,
215
,
2
,
262
,
218
,
5
,
/* 290 */
99
,
7
,
100
,
9
,
247
,
5
,
104
,
7
,
33
,
34
,
/* 300 */
99
,
110
,
37
,
38
,
39
,
64
,
65
,
66
,
67
,
68
,
/* 310 */
1
,
110
,
262
,
104
,
129
,
130
,
125
,
33
,
34
,
64
,
/* 320 */
65
,
66
,
67
,
68
,
99
,
104
,
125
,
262
,
100
,
100
,
/* 330 */
121
,
106
,
104
,
104
,
99
,
262
,
100
,
100
,
100
,
100
,
/* 340 */
104
,
104
,
104
,
104
,
123
,
110
,
37
,
129
,
130
,
5
,
/* 350 */
5
,
7
,
7
,
72
,
73
,
262
,
262
,
262
,
248
,
262
,
/* 360 */
125
,
262
,
248
,
243
,
243
,
243
,
243
,
243
,
243
,
211
,
/* 370 */
244
,
243
,
269
,
211
,
211
,
246
,
211
,
269
,
106
,
211
,
/* 380 */
250
,
211
,
211
,
246
,
211
,
211
,
211
,
211
,
211
,
105
,
/* 390 */
211
,
211
,
59
,
211
,
211
,
211
,
110
,
211
,
211
,
211
,
/* 400 */
211
,
211
,
120
,
265
,
211
,
211
,
211
,
211
,
211
,
211
,
/* 410 */
211
,
211
,
265
,
211
,
211
,
211
,
211
,
211
,
211
,
211
,
/* 420 */
122
,
211
,
211
,
211
,
211
,
259
,
212
,
212
,
212
,
119
,
/* 430 */
114
,
118
,
113
,
112
,
111
,
124
,
258
,
75
,
84
,
83
,
/* 440 */
49
,
80
,
82
,
212
,
212
,
53
,
81
,
79
,
75
,
216
,
/* 450 */
216
,
5
,
212
,
136
,
5
,
5
,
136
,
5
,
5
,
212
,
/* 460 */
107
,
87
,
213
,
213
,
220
,
219
,
214
,
224
,
226
,
246
,
/* 470 */
225
,
223
,
221
,
253
,
257
,
256
,
222
,
255
,
254
,
252
,
/* 480 */
212
,
251
,
127
,
217
,
100
,
108
,
104
,
100
,
99
,
1
,
/* 490 */
100
,
115
,
99
,
99
,
115
,
72
,
9
,
100
,
99
,
104
,
/* 500 */
104
,
99
,
101
,
99
,
101
,
5
,
5
,
5
,
5
,
5
,
/* 510 */
76
,
15
,
72
,
16
,
104
,
130
,
130
,
5
,
5
,
100
,
/* 520 */
99
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
/* 530 */
5
,
5
,
5
,
5
,
5
,
5
,
104
,
76
,
59
,
58
,
/* 540 */
0
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 550 */
273
,
273
,
21
,
21
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 560 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 570 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 580 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 590 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 600 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 610 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 620 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 630 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 640 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 650 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 660 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 670 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 680 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 690 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 700 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 710 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 720 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 730 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 740 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 750 */
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
273
,
/* 760 */
273
,
/* 80 */
13
,
14
,
78
,
16
,
17
,
245
,
247
,
260
,
21
,
260
,
/* 90 */
210
,
24
,
25
,
26
,
27
,
28
,
269
,
270
,
259
,
270
,
/* 100 */
33
,
34
,
102
,
260
,
37
,
38
,
39
,
210
,
14
,
98
,
/* 110 */
16
,
17
,
101
,
102
,
261
,
21
,
244
,
104
,
24
,
25
,
/* 120 */
26
,
27
,
28
,
243
,
103
,
245
,
99
,
33
,
34
,
108
,
/* 130 */
258
,
37
,
38
,
39
,
85
,
86
,
87
,
88
,
89
,
90
,
/* 140 */
91
,
92
,
93
,
94
,
95
,
96
,
97
,
226
,
210
,
228
,
/* 150 */
229
,
230
,
231
,
232
,
233
,
234
,
235
,
236
,
237
,
238
,
/* 160 */
239
,
16
,
17
,
266
,
260
,
268
,
21
,
126
,
227
,
24
,
/* 170 */
25
,
26
,
27
,
28
,
133
,
134
,
210
,
210
,
33
,
34
,
/* 180 */
1
,
44
,
37
,
38
,
39
,
1
,
2
,
246
,
9
,
5
,
/* 190 */
260
,
7
,
260
,
9
,
210
,
1
,
2
,
210
,
98
,
5
,
/* 200 */
63
,
7
,
264
,
9
,
266
,
105
,
69
,
70
,
71
,
243
,
/* 210 */
243
,
245
,
245
,
85
,
77
,
87
,
88
,
33
,
34
,
227
,
/* 220 */
92
,
37
,
94
,
95
,
96
,
260
,
214
,
33
,
34
,
217
,
/* 230 */
243
,
37
,
245
,
1
,
2
,
98
,
260
,
5
,
246
,
7
,
/* 240 */
210
,
9
,
105
,
25
,
26
,
27
,
28
,
98
,
63
,
260
,
/* 250 */
266
,
33
,
34
,
210
,
105
,
37
,
38
,
39
,
37
,
38
,
/* 260 */
39
,
72
,
125
,
115
,
116
,
33
,
34
,
78
,
5
,
132
,
/* 270 */
7
,
64
,
65
,
66
,
67
,
68
,
60
,
61
,
62
,
33
,
/* 280 */
34
,
74
,
98
,
37
,
38
,
39
,
64
,
65
,
66
,
67
,
/* 290 */
68
,
227
,
98
,
109
,
214
,
59
,
266
,
217
,
64
,
65
,
/* 300 */
66
,
67
,
68
,
109
,
214
,
262
,
1
,
217
,
124
,
5
,
/* 310 */
246
,
7
,
127
,
99
,
103
,
130
,
131
,
260
,
124
,
99
,
/* 320 */
106
,
260
,
99
,
103
,
99
,
260
,
103
,
99
,
103
,
260
,
/* 330 */
98
,
103
,
103
,
122
,
98
,
260
,
128
,
129
,
260
,
99
,
/* 340 */
99
,
109
,
37
,
103
,
103
,
260
,
99
,
128
,
129
,
120
,
/* 350 */
103
,
246
,
5
,
5
,
7
,
7
,
124
,
72
,
73
,
246
,
/* 360 */
241
,
241
,
241
,
241
,
241
,
241
,
210
,
242
,
241
,
210
,
/* 370 */
244
,
210
,
210
,
267
,
267
,
210
,
210
,
248
,
210
,
210
,
/* 380 */
210
,
210
,
210
,
210
,
210
,
210
,
210
,
210
,
210
,
105
,
/* 390 */
210
,
210
,
210
,
210
,
244
,
59
,
210
,
210
,
210
,
109
,
/* 400 */
210
,
210
,
210
,
210
,
263
,
210
,
210
,
210
,
210
,
210
,
/* 410 */
210
,
210
,
210
,
210
,
210
,
210
,
210
,
263
,
119
,
210
,
/* 420 */
257
,
211
,
121
,
211
,
211
,
118
,
113
,
117
,
112
,
111
,
/* 430 */
110
,
123
,
75
,
84
,
83
,
49
,
80
,
82
,
53
,
81
,
/* 440 */
79
,
75
,
5
,
5
,
135
,
5
,
211
,
135
,
5
,
211
,
/* 450 */
5
,
86
,
126
,
99
,
215
,
211
,
106
,
215
,
99
,
107
,
/* 460 */
98
,
1
,
211
,
103
,
100
,
212
,
212
,
219
,
225
,
224
,
/* 470 */
221
,
256
,
255
,
223
,
222
,
220
,
218
,
250
,
254
,
253
,
/* 480 */
249
,
244
,
252
,
211
,
251
,
216
,
213
,
98
,
114
,
99
,
/* 490 */
98
,
103
,
114
,
99
,
103
,
98
,
98
,
98
,
72
,
9
,
/* 500 */
100
,
5
,
5
,
5
,
5
,
5
,
76
,
15
,
72
,
16
,
/* 510 */
129
,
129
,
103
,
5
,
5
,
99
,
98
,
5
,
5
,
5
,
/* 520 */
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
/* 530 */
5
,
103
,
76
,
59
,
58
,
0
,
271
,
271
,
271
,
271
,
/* 540 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
21
,
21
,
271
,
/* 550 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 560 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 570 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 580 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 590 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 600 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 610 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 620 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 630 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 640 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 650 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 660 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 670 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 680 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 690 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 700 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 710 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 720 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 730 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 740 */
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
271
,
/* 750 */
271
,
271
,
271
,
271
,
271
,
};
#define YY_SHIFT_COUNT (24
4
)
#define YY_SHIFT_COUNT (24
3
)
#define YY_SHIFT_MIN (0)
#define YY_SHIFT_MAX (5
40
)
#define YY_SHIFT_MAX (5
35
)
static
const
unsigned
short
int
yy_shift_ofst
[]
=
{
/* 0 */
1
44
,
24
,
134
,
191
,
235
,
49
,
49
,
49
,
49
,
4
9
,
/* 10 */
49
,
0
,
22
,
235
,
284
,
284
,
284
,
106
,
49
,
4
9
,
/* 20 */
49
,
49
,
49
,
161
,
4
,
4
,
554
,
201
,
235
,
235
,
/* 30 */
23
5
,
235
,
235
,
235
,
235
,
235
,
235
,
235
,
235
,
235
,
/* 40 */
23
5
,
235
,
235
,
235
,
235
,
284
,
284
,
2
,
2
,
2
,
/* 50 */
2
,
2
,
2
,
43
,
2
,
225
,
49
,
49
,
49
,
4
9
,
/* 60 */
1
01
,
101
,
157
,
49
,
49
,
49
,
49
,
49
,
49
,
4
9
,
/* 70 */
49
,
49
,
49
,
49
,
49
,
49
,
49
,
49
,
49
,
4
9
,
/* 80 */
49
,
49
,
49
,
49
,
49
,
49
,
49
,
49
,
49
,
4
9
,
/* 90 */
49
,
49
,
49
,
49
,
49
,
49
,
49
,
49
,
49
,
4
9
,
/* 100 */
2
72
,
333
,
333
,
286
,
286
,
333
,
282
,
298
,
310
,
316
,
/* 110 */
31
3
,
319
,
321
,
323
,
311
,
272
,
333
,
333
,
362
,
362
,
/* 120 */
33
3
,
354
,
356
,
391
,
361
,
360
,
392
,
365
,
368
,
333
,
/* 130 */
3
73
,
333
,
373
,
554
,
554
,
27
,
67
,
67
,
67
,
127
,
/* 140 */
1
52
,
226
,
226
,
226
,
181
,
265
,
265
,
265
,
265
,
241
,
/* 150 */
2
55
,
39
,
60
,
8
,
8
,
96
,
172
,
192
,
228
,
229
,
/* 160 */
2
36
,
167
,
290
,
309
,
142
,
221
,
209
,
237
,
238
,
239
,
/* 170 */
185
,
218
,
344
,
345
,
281
,
446
,
317
,
449
,
450
,
320
,
/* 180 */
4
52
,
453
,
374
,
355
,
353
,
384
,
377
,
382
,
387
,
389
,
/* 190 */
4
88
,
393
,
390
,
394
,
395
,
376
,
396
,
379
,
397
,
399
,
/* 200 */
402
,
401
,
404
,
403
,
423
,
487
,
500
,
501
,
502
,
503
,
/* 210 */
50
4
,
434
,
496
,
440
,
497
,
385
,
386
,
410
,
512
,
513
,
/* 220 */
41
9
,
421
,
410
,
516
,
517
,
518
,
519
,
520
,
521
,
522
,
/* 230 */
5
23
,
524
,
525
,
526
,
527
,
528
,
529
,
530
,
432
,
461
,
/* 240 */
5
31
,
532
,
479
,
481
,
540
,
/* 0 */
1
37
,
49
,
128
,
184
,
232
,
179
,
179
,
179
,
179
,
17
9
,
/* 10 */
179
,
0
,
22
,
232
,
13
,
13
,
13
,
100
,
179
,
17
9
,
/* 20 */
179
,
179
,
179
,
189
,
4
,
4
,
549
,
194
,
232
,
232
,
/* 30 */
23
2
,
232
,
232
,
232
,
232
,
232
,
232
,
232
,
232
,
232
,
/* 40 */
23
2
,
232
,
232
,
232
,
232
,
13
,
13
,
2
,
2
,
2
,
/* 50 */
2
,
2
,
2
,
11
,
2
,
149
,
179
,
179
,
179
,
17
9
,
/* 60 */
1
48
,
148
,
21
,
179
,
179
,
179
,
179
,
179
,
179
,
17
9
,
/* 70 */
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
17
9
,
/* 80 */
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
17
9
,
/* 90 */
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
17
9
,
/* 100 */
2
84
,
336
,
336
,
290
,
290
,
336
,
299
,
301
,
307
,
313
,
/* 110 */
31
0
,
316
,
318
,
320
,
308
,
284
,
336
,
336
,
357
,
357
,
/* 120 */
33
6
,
349
,
351
,
386
,
356
,
355
,
385
,
358
,
361
,
336
,
/* 130 */
3
66
,
336
,
366
,
549
,
549
,
27
,
67
,
67
,
67
,
94
,
/* 140 */
1
45
,
218
,
218
,
218
,
207
,
246
,
246
,
246
,
246
,
222
,
/* 150 */
2
34
,
185
,
41
,
221
,
221
,
216
,
214
,
220
,
223
,
225
,
/* 160 */
2
28
,
263
,
304
,
305
,
236
,
211
,
229
,
240
,
241
,
247
,
/* 170 */
208
,
219
,
347
,
348
,
285
,
437
,
309
,
438
,
440
,
312
,
/* 180 */
4
43
,
445
,
365
,
326
,
350
,
354
,
352
,
360
,
359
,
362
,
/* 190 */
4
60
,
389
,
390
,
392
,
388
,
374
,
391
,
378
,
394
,
397
,
/* 200 */
398
,
364
,
399
,
400
,
426
,
490
,
496
,
497
,
498
,
499
,
/* 210 */
50
0
,
430
,
492
,
436
,
493
,
381
,
382
,
409
,
508
,
509
,
/* 220 */
41
6
,
418
,
409
,
512
,
513
,
514
,
515
,
516
,
517
,
518
,
/* 230 */
5
19
,
520
,
521
,
522
,
523
,
524
,
525
,
428
,
456
,
526
,
/* 240 */
5
27
,
474
,
476
,
535
,
};
#define YY_REDUCE_COUNT (134)
#define YY_REDUCE_MIN (-2
60
)
#define YY_REDUCE_MAX (2
68
)
#define YY_REDUCE_MIN (-2
41
)
#define YY_REDUCE_MAX (2
73
)
static
const
short
yy_reduce_ofst
[]
=
{
/* 0 */
-
20
4
,
-
101
,
44
,
-
260
,
-
252
,
-
211
,
-
181
,
-
149
,
-
148
,
-
122
,
/* 10 */
-
64
,
-
104
,
-
61
,
-
254
,
-
199
,
-
66
,
-
44
,
-
49
,
-
48
,
-
3
6
,
/* 20 */
-
12
,
15
,
47
,
-
212
,
63
,
70
,
13
,
-
247
,
-
240
,
-
230
,
/* 30 */
-
1
76
,
-
172
,
-
154
,
-
138
,
-
53
,
5
,
25
,
50
,
65
,
73
,
/* 40 */
93
,
94
,
95
,
97
,
99
,
110
,
114
,
120
,
121
,
122
,
/* 50 */
12
3
,
124
,
125
,
126
,
128
,
129
,
158
,
162
,
163
,
165
,
/* 60 */
10
3
,
108
,
130
,
168
,
170
,
171
,
173
,
174
,
175
,
176
,
/* 70 */
17
7
,
179
,
180
,
182
,
183
,
184
,
186
,
187
,
188
,
189
,
/* 80 */
1
90
,
193
,
194
,
195
,
196
,
197
,
198
,
199
,
200
,
202
,
/* 90 */
203
,
204
,
205
,
206
,
207
,
208
,
210
,
211
,
212
,
213
,
/* 100 */
1
37
,
214
,
215
,
138
,
147
,
216
,
166
,
178
,
217
,
219
,
/* 110 */
22
2
,
224
,
220
,
227
,
230
,
223
,
231
,
232
,
233
,
234
,
/* 120 */
24
0
,
242
,
245
,
243
,
244
,
248
,
251
,
254
,
246
,
247
,
/* 130 */
2
49
,
268
,
250
,
266
,
252
,
/* 0 */
-
20
2
,
-
79
,
-
226
,
-
211
,
-
173
,
-
103
,
-
62
,
-
120
,
-
34
,
-
33
,
/* 10 */
-
13
,
-
147
,
-
180
,
-
171
,
-
59
,
-
8
,
64
,
-
128
,
43
,
-
1
6
,
/* 20 */
30
,
-
208
,
-
160
,
12
,
80
,
90
,
-
161
,
-
241
,
-
215
,
-
203
,
/* 30 */
-
1
98
,
-
157
,
-
96
,
-
70
,
-
68
,
-
35
,
-
24
,
-
11
,
57
,
61
,
/* 40 */
65
,
69
,
75
,
78
,
85
,
105
,
113
,
119
,
120
,
121
,
/* 50 */
12
2
,
123
,
124
,
125
,
127
,
126
,
156
,
159
,
161
,
162
,
/* 60 */
10
6
,
107
,
129
,
165
,
166
,
168
,
169
,
170
,
171
,
172
,
/* 70 */
17
3
,
174
,
175
,
176
,
177
,
178
,
180
,
181
,
182
,
183
,
/* 80 */
1
86
,
187
,
188
,
190
,
191
,
192
,
193
,
195
,
196
,
197
,
/* 90 */
198
,
199
,
200
,
201
,
202
,
203
,
204
,
205
,
206
,
209
,
/* 100 */
1
50
,
210
,
212
,
141
,
154
,
213
,
163
,
215
,
217
,
224
,
/* 110 */
22
6
,
230
,
233
,
227
,
231
,
237
,
235
,
238
,
239
,
242
,
/* 120 */
24
4
,
243
,
245
,
250
,
248
,
252
,
255
,
249
,
258
,
251
,
/* 130 */
2
53
,
272
,
254
,
269
,
273
,
};
static
const
YYACTIONTYPE
yy_default
[]
=
{
/* 0 */
6
35
,
687
,
676
,
855
,
855
,
635
,
635
,
635
,
635
,
635
,
/* 10 */
6
35
,
783
,
653
,
855
,
635
,
635
,
635
,
635
,
635
,
635
,
/* 20 */
6
35
,
635
,
635
,
689
,
689
,
689
,
778
,
635
,
635
,
635
,
/* 30 */
6
35
,
635
,
635
,
635
,
635
,
635
,
635
,
635
,
635
,
635
,
/* 40 */
6
35
,
635
,
635
,
635
,
635
,
635
,
635
,
635
,
635
,
635
,
/* 50 */
6
35
,
635
,
635
,
635
,
635
,
635
,
635
,
785
,
787
,
635
,
/* 60 */
804
,
804
,
776
,
635
,
635
,
635
,
635
,
635
,
635
,
635
,
/* 70 */
6
35
,
635
,
635
,
635
,
635
,
635
,
635
,
635
,
635
,
635
,
/* 80 */
6
35
,
674
,
635
,
672
,
635
,
635
,
635
,
635
,
635
,
635
,
/* 90 */
6
35
,
635
,
635
,
635
,
635
,
635
,
635
,
661
,
635
,
635
,
/* 100 */
6
35
,
655
,
655
,
635
,
635
,
655
,
811
,
815
,
809
,
79
7
,
/* 110 */
805
,
796
,
792
,
791
,
819
,
635
,
655
,
655
,
684
,
684
,
/* 120 */
6
55
,
705
,
703
,
701
,
693
,
699
,
695
,
697
,
691
,
655
,
/* 130 */
6
82
,
655
,
682
,
722
,
737
,
635
,
820
,
854
,
810
,
83
8
,
/* 140 */
8
37
,
850
,
844
,
843
,
635
,
842
,
841
,
840
,
839
,
635
,
/* 150 */
6
35
,
635
,
635
,
846
,
845
,
635
,
635
,
635
,
635
,
635
,
/* 160 */
6
35
,
635
,
635
,
635
,
822
,
816
,
812
,
635
,
635
,
635
,
/* 170 */
6
35
,
635
,
635
,
635
,
635
,
635
,
635
,
635
,
635
,
635
,
/* 180 */
6
35
,
635
,
635
,
635
,
775
,
635
,
635
,
784
,
635
,
635
,
/* 190 */
6
35
,
635
,
635
,
635
,
806
,
635
,
798
,
635
,
635
,
635
,
/* 200 */
6
35
,
635
,
635
,
752
,
635
,
635
,
635
,
635
,
635
,
635
,
/* 210 */
6
35
,
635
,
635
,
635
,
635
,
635
,
635
,
859
,
635
,
635
,
/* 220 */
6
35
,
746
,
857
,
635
,
635
,
635
,
635
,
635
,
635
,
635
,
/* 230 */
6
35
,
635
,
635
,
635
,
635
,
635
,
635
,
635
,
708
,
635
,
/* 240 */
65
9
,
657
,
635
,
651
,
635
,
/* 0 */
6
28
,
680
,
669
,
845
,
845
,
628
,
628
,
628
,
628
,
628
,
/* 10 */
6
28
,
773
,
646
,
845
,
628
,
628
,
628
,
628
,
628
,
628
,
/* 20 */
6
28
,
628
,
628
,
682
,
682
,
682
,
768
,
628
,
628
,
628
,
/* 30 */
6
28
,
628
,
628
,
628
,
628
,
628
,
628
,
628
,
628
,
628
,
/* 40 */
6
28
,
628
,
628
,
628
,
628
,
628
,
628
,
628
,
628
,
628
,
/* 50 */
6
28
,
628
,
628
,
628
,
628
,
628
,
628
,
775
,
777
,
628
,
/* 60 */
794
,
794
,
766
,
628
,
628
,
628
,
628
,
628
,
628
,
628
,
/* 70 */
6
28
,
628
,
628
,
628
,
628
,
628
,
628
,
628
,
628
,
628
,
/* 80 */
6
28
,
667
,
628
,
665
,
628
,
628
,
628
,
628
,
628
,
628
,
/* 90 */
6
28
,
628
,
628
,
628
,
628
,
628
,
628
,
654
,
628
,
628
,
/* 100 */
6
28
,
648
,
648
,
628
,
628
,
648
,
801
,
805
,
799
,
78
7
,
/* 110 */
795
,
786
,
782
,
781
,
809
,
628
,
648
,
648
,
677
,
677
,
/* 120 */
6
48
,
698
,
696
,
694
,
686
,
692
,
688
,
690
,
684
,
648
,
/* 130 */
6
75
,
648
,
675
,
714
,
728
,
628
,
810
,
844
,
800
,
82
8
,
/* 140 */
8
27
,
840
,
834
,
833
,
628
,
832
,
831
,
830
,
829
,
628
,
/* 150 */
6
28
,
628
,
628
,
836
,
835
,
628
,
628
,
628
,
628
,
628
,
/* 160 */
6
28
,
628
,
628
,
628
,
812
,
806
,
802
,
628
,
628
,
628
,
/* 170 */
6
28
,
628
,
628
,
628
,
628
,
628
,
628
,
628
,
628
,
628
,
/* 180 */
6
28
,
628
,
628
,
628
,
765
,
628
,
628
,
774
,
628
,
628
,
/* 190 */
6
28
,
628
,
628
,
628
,
796
,
628
,
788
,
628
,
628
,
628
,
/* 200 */
6
28
,
628
,
628
,
742
,
628
,
628
,
628
,
628
,
628
,
628
,
/* 210 */
6
28
,
628
,
628
,
628
,
628
,
628
,
628
,
849
,
628
,
628
,
/* 220 */
6
28
,
736
,
847
,
628
,
628
,
628
,
628
,
628
,
628
,
628
,
/* 230 */
6
28
,
628
,
628
,
628
,
628
,
628
,
628
,
701
,
628
,
652
,
/* 240 */
65
0
,
628
,
644
,
628
,
};
/********** End of lemon-generated parsing tables *****************************/
...
...
@@ -520,7 +518,6 @@ static const YYCODETYPE yyFallback[] = {
0
,
/* CONNS => nothing */
0
,
/* STATE => nothing */
0
,
/* KEEP => nothing */
0
,
/* MAXTABLES => nothing */
0
,
/* CACHE => nothing */
0
,
/* REPLICA => nothing */
0
,
/* QUORUM => nothing */
...
...
@@ -813,193 +810,191 @@ static const char *const yyTokenName[] = {
/* 83 */
"CONNS"
,
/* 84 */
"STATE"
,
/* 85 */
"KEEP"
,
/* 86 */
"MAXTABLES"
,
/* 87 */
"CACHE"
,
/* 88 */
"REPLICA"
,
/* 89 */
"QUORUM"
,
/* 90 */
"DAYS"
,
/* 91 */
"MINROWS"
,
/* 92 */
"MAXROWS"
,
/* 93 */
"BLOCKS"
,
/* 94 */
"CTIME"
,
/* 95 */
"WAL"
,
/* 96 */
"FSYNC"
,
/* 97 */
"COMP"
,
/* 98 */
"PRECISION"
,
/* 99 */
"LP"
,
/* 100 */
"RP"
,
/* 101 */
"TAGS"
,
/* 102 */
"USING"
,
/* 103 */
"AS"
,
/* 104 */
"COMMA"
,
/* 105 */
"NULL"
,
/* 106 */
"SELECT"
,
/* 107 */
"UNION"
,
/* 108 */
"ALL"
,
/* 109 */
"FROM"
,
/* 110 */
"VARIABLE"
,
/* 111 */
"INTERVAL"
,
/* 112 */
"FILL"
,
/* 113 */
"SLIDING"
,
/* 114 */
"ORDER"
,
/* 115 */
"BY"
,
/* 116 */
"ASC"
,
/* 117 */
"DESC"
,
/* 118 */
"GROUP"
,
/* 119 */
"HAVING"
,
/* 120 */
"LIMIT"
,
/* 121 */
"OFFSET"
,
/* 122 */
"SLIMIT"
,
/* 123 */
"SOFFSET"
,
/* 124 */
"WHERE"
,
/* 125 */
"NOW"
,
/* 126 */
"RESET"
,
/* 127 */
"QUERY"
,
/* 128 */
"ADD"
,
/* 129 */
"COLUMN"
,
/* 130 */
"TAG"
,
/* 131 */
"CHANGE"
,
/* 132 */
"SET"
,
/* 133 */
"KILL"
,
/* 134 */
"CONNECTION"
,
/* 135 */
"STREAM"
,
/* 136 */
"COLON"
,
/* 137 */
"ABORT"
,
/* 138 */
"AFTER"
,
/* 139 */
"ATTACH"
,
/* 140 */
"BEFORE"
,
/* 141 */
"BEGIN"
,
/* 142 */
"CASCADE"
,
/* 143 */
"CLUSTER"
,
/* 144 */
"CONFLICT"
,
/* 145 */
"COPY"
,
/* 146 */
"DEFERRED"
,
/* 147 */
"DELIMITERS"
,
/* 148 */
"DETACH"
,
/* 149 */
"EACH"
,
/* 150 */
"END"
,
/* 151 */
"EXPLAIN"
,
/* 152 */
"FAIL"
,
/* 153 */
"FOR"
,
/* 154 */
"IGNORE"
,
/* 155 */
"IMMEDIATE"
,
/* 156 */
"INITIALLY"
,
/* 157 */
"INSTEAD"
,
/* 158 */
"MATCH"
,
/* 159 */
"KEY"
,
/* 160 */
"OF"
,
/* 161 */
"RAISE"
,
/* 162 */
"REPLACE"
,
/* 163 */
"RESTRICT"
,
/* 164 */
"ROW"
,
/* 165 */
"STATEMENT"
,
/* 166 */
"TRIGGER"
,
/* 167 */
"VIEW"
,
/* 168 */
"COUNT"
,
/* 169 */
"SUM"
,
/* 170 */
"AVG"
,
/* 171 */
"MIN"
,
/* 172 */
"MAX"
,
/* 173 */
"FIRST"
,
/* 174 */
"LAST"
,
/* 175 */
"TOP"
,
/* 176 */
"BOTTOM"
,
/* 177 */
"STDDEV"
,
/* 178 */
"PERCENTILE"
,
/* 179 */
"APERCENTILE"
,
/* 180 */
"LEASTSQUARES"
,
/* 181 */
"HISTOGRAM"
,
/* 182 */
"DIFF"
,
/* 183 */
"SPREAD"
,
/* 184 */
"TWA"
,
/* 185 */
"INTERP"
,
/* 186 */
"LAST_ROW"
,
/* 187 */
"RATE"
,
/* 188 */
"IRATE"
,
/* 189 */
"SUM_RATE"
,
/* 190 */
"SUM_IRATE"
,
/* 191 */
"AVG_RATE"
,
/* 192 */
"AVG_IRATE"
,
/* 193 */
"TBID"
,
/* 194 */
"SEMI"
,
/* 195 */
"NONE"
,
/* 196 */
"PREV"
,
/* 197 */
"LINEAR"
,
/* 198 */
"IMPORT"
,
/* 199 */
"METRIC"
,
/* 200 */
"TBNAME"
,
/* 201 */
"JOIN"
,
/* 202 */
"METRICS"
,
/* 203 */
"STABLE"
,
/* 204 */
"INSERT"
,
/* 205 */
"INTO"
,
/* 206 */
"VALUES"
,
/* 207 */
"error"
,
/* 208 */
"program"
,
/* 209 */
"cmd"
,
/* 210 */
"dbPrefix"
,
/* 211 */
"ids"
,
/* 212 */
"cpxName"
,
/* 213 */
"ifexists"
,
/* 214 */
"alter_db_optr"
,
/* 215 */
"acct_optr"
,
/* 216 */
"ifnotexists"
,
/* 217 */
"db_optr"
,
/* 218 */
"pps"
,
/* 219 */
"tseries"
,
/* 220 */
"dbs"
,
/* 221 */
"streams"
,
/* 222 */
"storage"
,
/* 223 */
"qtime"
,
/* 224 */
"users"
,
/* 225 */
"conns"
,
/* 226 */
"state"
,
/* 227 */
"keep"
,
/* 228 */
"tagitemlist"
,
/* 229 */
"tables"
,
/* 230 */
"cache"
,
/* 231 */
"replica"
,
/* 232 */
"quorum"
,
/* 233 */
"days"
,
/* 234 */
"minrows"
,
/* 235 */
"maxrows"
,
/* 236 */
"blocks"
,
/* 237 */
"ctime"
,
/* 238 */
"wal"
,
/* 239 */
"fsync"
,
/* 240 */
"comp"
,
/* 241 */
"prec"
,
/* 242 */
"typename"
,
/* 243 */
"signed"
,
/* 244 */
"create_table_args"
,
/* 245 */
"columnlist"
,
/* 246 */
"select"
,
/* 247 */
"column"
,
/* 248 */
"tagitem"
,
/* 249 */
"selcollist"
,
/* 250 */
"from"
,
/* 251 */
"where_opt"
,
/* 252 */
"interval_opt"
,
/* 253 */
"fill_opt"
,
/* 254 */
"sliding_opt"
,
/* 255 */
"groupby_opt"
,
/* 256 */
"orderby_opt"
,
/* 257 */
"having_opt"
,
/* 258 */
"slimit_opt"
,
/* 259 */
"limit_opt"
,
/* 260 */
"union"
,
/* 261 */
"sclp"
,
/* 262 */
"expr"
,
/* 263 */
"as"
,
/* 264 */
"tablelist"
,
/* 265 */
"tmvar"
,
/* 266 */
"sortlist"
,
/* 267 */
"sortitem"
,
/* 268 */
"item"
,
/* 269 */
"sortorder"
,
/* 270 */
"grouplist"
,
/* 271 */
"exprlist"
,
/* 272 */
"expritem"
,
/* 86 */
"CACHE"
,
/* 87 */
"REPLICA"
,
/* 88 */
"QUORUM"
,
/* 89 */
"DAYS"
,
/* 90 */
"MINROWS"
,
/* 91 */
"MAXROWS"
,
/* 92 */
"BLOCKS"
,
/* 93 */
"CTIME"
,
/* 94 */
"WAL"
,
/* 95 */
"FSYNC"
,
/* 96 */
"COMP"
,
/* 97 */
"PRECISION"
,
/* 98 */
"LP"
,
/* 99 */
"RP"
,
/* 100 */
"TAGS"
,
/* 101 */
"USING"
,
/* 102 */
"AS"
,
/* 103 */
"COMMA"
,
/* 104 */
"NULL"
,
/* 105 */
"SELECT"
,
/* 106 */
"UNION"
,
/* 107 */
"ALL"
,
/* 108 */
"FROM"
,
/* 109 */
"VARIABLE"
,
/* 110 */
"INTERVAL"
,
/* 111 */
"FILL"
,
/* 112 */
"SLIDING"
,
/* 113 */
"ORDER"
,
/* 114 */
"BY"
,
/* 115 */
"ASC"
,
/* 116 */
"DESC"
,
/* 117 */
"GROUP"
,
/* 118 */
"HAVING"
,
/* 119 */
"LIMIT"
,
/* 120 */
"OFFSET"
,
/* 121 */
"SLIMIT"
,
/* 122 */
"SOFFSET"
,
/* 123 */
"WHERE"
,
/* 124 */
"NOW"
,
/* 125 */
"RESET"
,
/* 126 */
"QUERY"
,
/* 127 */
"ADD"
,
/* 128 */
"COLUMN"
,
/* 129 */
"TAG"
,
/* 130 */
"CHANGE"
,
/* 131 */
"SET"
,
/* 132 */
"KILL"
,
/* 133 */
"CONNECTION"
,
/* 134 */
"STREAM"
,
/* 135 */
"COLON"
,
/* 136 */
"ABORT"
,
/* 137 */
"AFTER"
,
/* 138 */
"ATTACH"
,
/* 139 */
"BEFORE"
,
/* 140 */
"BEGIN"
,
/* 141 */
"CASCADE"
,
/* 142 */
"CLUSTER"
,
/* 143 */
"CONFLICT"
,
/* 144 */
"COPY"
,
/* 145 */
"DEFERRED"
,
/* 146 */
"DELIMITERS"
,
/* 147 */
"DETACH"
,
/* 148 */
"EACH"
,
/* 149 */
"END"
,
/* 150 */
"EXPLAIN"
,
/* 151 */
"FAIL"
,
/* 152 */
"FOR"
,
/* 153 */
"IGNORE"
,
/* 154 */
"IMMEDIATE"
,
/* 155 */
"INITIALLY"
,
/* 156 */
"INSTEAD"
,
/* 157 */
"MATCH"
,
/* 158 */
"KEY"
,
/* 159 */
"OF"
,
/* 160 */
"RAISE"
,
/* 161 */
"REPLACE"
,
/* 162 */
"RESTRICT"
,
/* 163 */
"ROW"
,
/* 164 */
"STATEMENT"
,
/* 165 */
"TRIGGER"
,
/* 166 */
"VIEW"
,
/* 167 */
"COUNT"
,
/* 168 */
"SUM"
,
/* 169 */
"AVG"
,
/* 170 */
"MIN"
,
/* 171 */
"MAX"
,
/* 172 */
"FIRST"
,
/* 173 */
"LAST"
,
/* 174 */
"TOP"
,
/* 175 */
"BOTTOM"
,
/* 176 */
"STDDEV"
,
/* 177 */
"PERCENTILE"
,
/* 178 */
"APERCENTILE"
,
/* 179 */
"LEASTSQUARES"
,
/* 180 */
"HISTOGRAM"
,
/* 181 */
"DIFF"
,
/* 182 */
"SPREAD"
,
/* 183 */
"TWA"
,
/* 184 */
"INTERP"
,
/* 185 */
"LAST_ROW"
,
/* 186 */
"RATE"
,
/* 187 */
"IRATE"
,
/* 188 */
"SUM_RATE"
,
/* 189 */
"SUM_IRATE"
,
/* 190 */
"AVG_RATE"
,
/* 191 */
"AVG_IRATE"
,
/* 192 */
"TBID"
,
/* 193 */
"SEMI"
,
/* 194 */
"NONE"
,
/* 195 */
"PREV"
,
/* 196 */
"LINEAR"
,
/* 197 */
"IMPORT"
,
/* 198 */
"METRIC"
,
/* 199 */
"TBNAME"
,
/* 200 */
"JOIN"
,
/* 201 */
"METRICS"
,
/* 202 */
"STABLE"
,
/* 203 */
"INSERT"
,
/* 204 */
"INTO"
,
/* 205 */
"VALUES"
,
/* 206 */
"error"
,
/* 207 */
"program"
,
/* 208 */
"cmd"
,
/* 209 */
"dbPrefix"
,
/* 210 */
"ids"
,
/* 211 */
"cpxName"
,
/* 212 */
"ifexists"
,
/* 213 */
"alter_db_optr"
,
/* 214 */
"acct_optr"
,
/* 215 */
"ifnotexists"
,
/* 216 */
"db_optr"
,
/* 217 */
"pps"
,
/* 218 */
"tseries"
,
/* 219 */
"dbs"
,
/* 220 */
"streams"
,
/* 221 */
"storage"
,
/* 222 */
"qtime"
,
/* 223 */
"users"
,
/* 224 */
"conns"
,
/* 225 */
"state"
,
/* 226 */
"keep"
,
/* 227 */
"tagitemlist"
,
/* 228 */
"cache"
,
/* 229 */
"replica"
,
/* 230 */
"quorum"
,
/* 231 */
"days"
,
/* 232 */
"minrows"
,
/* 233 */
"maxrows"
,
/* 234 */
"blocks"
,
/* 235 */
"ctime"
,
/* 236 */
"wal"
,
/* 237 */
"fsync"
,
/* 238 */
"comp"
,
/* 239 */
"prec"
,
/* 240 */
"typename"
,
/* 241 */
"signed"
,
/* 242 */
"create_table_args"
,
/* 243 */
"columnlist"
,
/* 244 */
"select"
,
/* 245 */
"column"
,
/* 246 */
"tagitem"
,
/* 247 */
"selcollist"
,
/* 248 */
"from"
,
/* 249 */
"where_opt"
,
/* 250 */
"interval_opt"
,
/* 251 */
"fill_opt"
,
/* 252 */
"sliding_opt"
,
/* 253 */
"groupby_opt"
,
/* 254 */
"orderby_opt"
,
/* 255 */
"having_opt"
,
/* 256 */
"slimit_opt"
,
/* 257 */
"limit_opt"
,
/* 258 */
"union"
,
/* 259 */
"sclp"
,
/* 260 */
"expr"
,
/* 261 */
"as"
,
/* 262 */
"tablelist"
,
/* 263 */
"tmvar"
,
/* 264 */
"sortlist"
,
/* 265 */
"sortitem"
,
/* 266 */
"item"
,
/* 267 */
"sortorder"
,
/* 268 */
"grouplist"
,
/* 269 */
"exprlist"
,
/* 270 */
"expritem"
,
};
#endif
/* defined(YYCOVERAGE) || !defined(NDEBUG) */
...
...
@@ -1078,163 +1073,160 @@ static const char *const yyRuleName[] = {
/* 68 */
"state ::= STATE ids"
,
/* 69 */
"acct_optr ::= pps tseries storage streams qtime dbs users conns state"
,
/* 70 */
"keep ::= KEEP tagitemlist"
,
/* 71 */
"tables ::= MAXTABLES INTEGER"
,
/* 72 */
"cache ::= CACHE INTEGER"
,
/* 73 */
"replica ::= REPLICA INTEGER"
,
/* 74 */
"quorum ::= QUORUM INTEGER"
,
/* 75 */
"days ::= DAYS INTEGER"
,
/* 76 */
"minrows ::= MINROWS INTEGER"
,
/* 77 */
"maxrows ::= MAXROWS INTEGER"
,
/* 78 */
"blocks ::= BLOCKS INTEGER"
,
/* 79 */
"ctime ::= CTIME INTEGER"
,
/* 80 */
"wal ::= WAL INTEGER"
,
/* 81 */
"fsync ::= FSYNC INTEGER"
,
/* 82 */
"comp ::= COMP INTEGER"
,
/* 83 */
"prec ::= PRECISION STRING"
,
/* 84 */
"db_optr ::="
,
/* 85 */
"db_optr ::= db_optr tables"
,
/* 86 */
"db_optr ::= db_optr cache"
,
/* 87 */
"db_optr ::= db_optr replica"
,
/* 88 */
"db_optr ::= db_optr quorum"
,
/* 89 */
"db_optr ::= db_optr days"
,
/* 90 */
"db_optr ::= db_optr minrows"
,
/* 91 */
"db_optr ::= db_optr maxrows"
,
/* 92 */
"db_optr ::= db_optr blocks"
,
/* 93 */
"db_optr ::= db_optr ctime"
,
/* 94 */
"db_optr ::= db_optr wal"
,
/* 95 */
"db_optr ::= db_optr fsync"
,
/* 96 */
"db_optr ::= db_optr comp"
,
/* 97 */
"db_optr ::= db_optr prec"
,
/* 98 */
"db_optr ::= db_optr keep"
,
/* 99 */
"alter_db_optr ::="
,
/* 100 */
"alter_db_optr ::= alter_db_optr replica"
,
/* 101 */
"alter_db_optr ::= alter_db_optr quorum"
,
/* 102 */
"alter_db_optr ::= alter_db_optr tables"
,
/* 103 */
"alter_db_optr ::= alter_db_optr keep"
,
/* 104 */
"alter_db_optr ::= alter_db_optr blocks"
,
/* 105 */
"alter_db_optr ::= alter_db_optr comp"
,
/* 106 */
"alter_db_optr ::= alter_db_optr wal"
,
/* 107 */
"alter_db_optr ::= alter_db_optr fsync"
,
/* 108 */
"typename ::= ids"
,
/* 109 */
"typename ::= ids LP signed RP"
,
/* 110 */
"signed ::= INTEGER"
,
/* 111 */
"signed ::= PLUS INTEGER"
,
/* 112 */
"signed ::= MINUS INTEGER"
,
/* 113 */
"cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args"
,
/* 114 */
"create_table_args ::= LP columnlist RP"
,
/* 115 */
"create_table_args ::= LP columnlist RP TAGS LP columnlist RP"
,
/* 116 */
"create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP"
,
/* 117 */
"create_table_args ::= AS select"
,
/* 118 */
"columnlist ::= columnlist COMMA column"
,
/* 119 */
"columnlist ::= column"
,
/* 120 */
"column ::= ids typename"
,
/* 121 */
"tagitemlist ::= tagitemlist COMMA tagitem"
,
/* 122 */
"tagitemlist ::= tagitem"
,
/* 123 */
"tagitem ::= INTEGER"
,
/* 124 */
"tagitem ::= FLOAT"
,
/* 125 */
"tagitem ::= STRING"
,
/* 126 */
"tagitem ::= BOOL"
,
/* 127 */
"tagitem ::= NULL"
,
/* 128 */
"tagitem ::= MINUS INTEGER"
,
/* 129 */
"tagitem ::= MINUS FLOAT"
,
/* 130 */
"tagitem ::= PLUS INTEGER"
,
/* 131 */
"tagitem ::= PLUS FLOAT"
,
/* 132 */
"select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt"
,
/* 133 */
"union ::= select"
,
/* 134 */
"union ::= LP union RP"
,
/* 135 */
"union ::= union UNION ALL select"
,
/* 136 */
"union ::= union UNION ALL LP select RP"
,
/* 137 */
"cmd ::= union"
,
/* 138 */
"select ::= SELECT selcollist"
,
/* 139 */
"sclp ::= selcollist COMMA"
,
/* 140 */
"sclp ::="
,
/* 141 */
"selcollist ::= sclp expr as"
,
/* 142 */
"selcollist ::= sclp STAR"
,
/* 143 */
"as ::= AS ids"
,
/* 144 */
"as ::= ids"
,
/* 145 */
"as ::="
,
/* 146 */
"from ::= FROM tablelist"
,
/* 147 */
"tablelist ::= ids cpxName"
,
/* 148 */
"tablelist ::= ids cpxName ids"
,
/* 149 */
"tablelist ::= tablelist COMMA ids cpxName"
,
/* 150 */
"tablelist ::= tablelist COMMA ids cpxName ids"
,
/* 151 */
"tmvar ::= VARIABLE"
,
/* 152 */
"interval_opt ::= INTERVAL LP tmvar RP"
,
/* 153 */
"interval_opt ::="
,
/* 154 */
"fill_opt ::="
,
/* 155 */
"fill_opt ::= FILL LP ID COMMA tagitemlist RP"
,
/* 156 */
"fill_opt ::= FILL LP ID RP"
,
/* 157 */
"sliding_opt ::= SLIDING LP tmvar RP"
,
/* 158 */
"sliding_opt ::="
,
/* 159 */
"orderby_opt ::="
,
/* 160 */
"orderby_opt ::= ORDER BY sortlist"
,
/* 161 */
"sortlist ::= sortlist COMMA item sortorder"
,
/* 162 */
"sortlist ::= item sortorder"
,
/* 163 */
"item ::= ids cpxName"
,
/* 164 */
"sortorder ::= ASC"
,
/* 165 */
"sortorder ::= DESC"
,
/* 166 */
"sortorder ::="
,
/* 167 */
"groupby_opt ::="
,
/* 168 */
"groupby_opt ::= GROUP BY grouplist"
,
/* 169 */
"grouplist ::= grouplist COMMA item"
,
/* 170 */
"grouplist ::= item"
,
/* 171 */
"having_opt ::="
,
/* 172 */
"having_opt ::= HAVING expr"
,
/* 173 */
"limit_opt ::="
,
/* 174 */
"limit_opt ::= LIMIT signed"
,
/* 175 */
"limit_opt ::= LIMIT signed OFFSET signed"
,
/* 176 */
"limit_opt ::= LIMIT signed COMMA signed"
,
/* 177 */
"slimit_opt ::="
,
/* 178 */
"slimit_opt ::= SLIMIT signed"
,
/* 179 */
"slimit_opt ::= SLIMIT signed SOFFSET signed"
,
/* 180 */
"slimit_opt ::= SLIMIT signed COMMA signed"
,
/* 181 */
"where_opt ::="
,
/* 182 */
"where_opt ::= WHERE expr"
,
/* 183 */
"expr ::= LP expr RP"
,
/* 184 */
"expr ::= ID"
,
/* 185 */
"expr ::= ID DOT ID"
,
/* 186 */
"expr ::= ID DOT STAR"
,
/* 187 */
"expr ::= INTEGER"
,
/* 188 */
"expr ::= MINUS INTEGER"
,
/* 189 */
"expr ::= PLUS INTEGER"
,
/* 190 */
"expr ::= FLOAT"
,
/* 191 */
"expr ::= MINUS FLOAT"
,
/* 192 */
"expr ::= PLUS FLOAT"
,
/* 193 */
"expr ::= STRING"
,
/* 194 */
"expr ::= NOW"
,
/* 195 */
"expr ::= VARIABLE"
,
/* 196 */
"expr ::= BOOL"
,
/* 197 */
"expr ::= ID LP exprlist RP"
,
/* 198 */
"expr ::= ID LP STAR RP"
,
/* 199 */
"expr ::= expr AND expr"
,
/* 200 */
"expr ::= expr OR expr"
,
/* 201 */
"expr ::= expr LT expr"
,
/* 202 */
"expr ::= expr GT expr"
,
/* 203 */
"expr ::= expr LE expr"
,
/* 204 */
"expr ::= expr GE expr"
,
/* 205 */
"expr ::= expr NE expr"
,
/* 206 */
"expr ::= expr EQ expr"
,
/* 207 */
"expr ::= expr PLUS expr"
,
/* 208 */
"expr ::= expr MINUS expr"
,
/* 209 */
"expr ::= expr STAR expr"
,
/* 210 */
"expr ::= expr SLASH expr"
,
/* 211 */
"expr ::= expr REM expr"
,
/* 212 */
"expr ::= expr LIKE expr"
,
/* 213 */
"expr ::= expr IN LP exprlist RP"
,
/* 214 */
"exprlist ::= exprlist COMMA expritem"
,
/* 215 */
"exprlist ::= expritem"
,
/* 216 */
"expritem ::= expr"
,
/* 217 */
"expritem ::="
,
/* 218 */
"cmd ::= RESET QUERY CACHE"
,
/* 219 */
"cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist"
,
/* 220 */
"cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids"
,
/* 221 */
"cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist"
,
/* 222 */
"cmd ::= ALTER TABLE ids cpxName DROP TAG ids"
,
/* 223 */
"cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids"
,
/* 224 */
"cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem"
,
/* 225 */
"cmd ::= KILL CONNECTION INTEGER"
,
/* 226 */
"cmd ::= KILL STREAM INTEGER COLON INTEGER"
,
/* 227 */
"cmd ::= KILL QUERY INTEGER COLON INTEGER"
,
/* 71 */
"cache ::= CACHE INTEGER"
,
/* 72 */
"replica ::= REPLICA INTEGER"
,
/* 73 */
"quorum ::= QUORUM INTEGER"
,
/* 74 */
"days ::= DAYS INTEGER"
,
/* 75 */
"minrows ::= MINROWS INTEGER"
,
/* 76 */
"maxrows ::= MAXROWS INTEGER"
,
/* 77 */
"blocks ::= BLOCKS INTEGER"
,
/* 78 */
"ctime ::= CTIME INTEGER"
,
/* 79 */
"wal ::= WAL INTEGER"
,
/* 80 */
"fsync ::= FSYNC INTEGER"
,
/* 81 */
"comp ::= COMP INTEGER"
,
/* 82 */
"prec ::= PRECISION STRING"
,
/* 83 */
"db_optr ::="
,
/* 84 */
"db_optr ::= db_optr cache"
,
/* 85 */
"db_optr ::= db_optr replica"
,
/* 86 */
"db_optr ::= db_optr quorum"
,
/* 87 */
"db_optr ::= db_optr days"
,
/* 88 */
"db_optr ::= db_optr minrows"
,
/* 89 */
"db_optr ::= db_optr maxrows"
,
/* 90 */
"db_optr ::= db_optr blocks"
,
/* 91 */
"db_optr ::= db_optr ctime"
,
/* 92 */
"db_optr ::= db_optr wal"
,
/* 93 */
"db_optr ::= db_optr fsync"
,
/* 94 */
"db_optr ::= db_optr comp"
,
/* 95 */
"db_optr ::= db_optr prec"
,
/* 96 */
"db_optr ::= db_optr keep"
,
/* 97 */
"alter_db_optr ::="
,
/* 98 */
"alter_db_optr ::= alter_db_optr replica"
,
/* 99 */
"alter_db_optr ::= alter_db_optr quorum"
,
/* 100 */
"alter_db_optr ::= alter_db_optr keep"
,
/* 101 */
"alter_db_optr ::= alter_db_optr blocks"
,
/* 102 */
"alter_db_optr ::= alter_db_optr comp"
,
/* 103 */
"alter_db_optr ::= alter_db_optr wal"
,
/* 104 */
"alter_db_optr ::= alter_db_optr fsync"
,
/* 105 */
"typename ::= ids"
,
/* 106 */
"typename ::= ids LP signed RP"
,
/* 107 */
"signed ::= INTEGER"
,
/* 108 */
"signed ::= PLUS INTEGER"
,
/* 109 */
"signed ::= MINUS INTEGER"
,
/* 110 */
"cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args"
,
/* 111 */
"create_table_args ::= LP columnlist RP"
,
/* 112 */
"create_table_args ::= LP columnlist RP TAGS LP columnlist RP"
,
/* 113 */
"create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP"
,
/* 114 */
"create_table_args ::= AS select"
,
/* 115 */
"columnlist ::= columnlist COMMA column"
,
/* 116 */
"columnlist ::= column"
,
/* 117 */
"column ::= ids typename"
,
/* 118 */
"tagitemlist ::= tagitemlist COMMA tagitem"
,
/* 119 */
"tagitemlist ::= tagitem"
,
/* 120 */
"tagitem ::= INTEGER"
,
/* 121 */
"tagitem ::= FLOAT"
,
/* 122 */
"tagitem ::= STRING"
,
/* 123 */
"tagitem ::= BOOL"
,
/* 124 */
"tagitem ::= NULL"
,
/* 125 */
"tagitem ::= MINUS INTEGER"
,
/* 126 */
"tagitem ::= MINUS FLOAT"
,
/* 127 */
"tagitem ::= PLUS INTEGER"
,
/* 128 */
"tagitem ::= PLUS FLOAT"
,
/* 129 */
"select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt"
,
/* 130 */
"union ::= select"
,
/* 131 */
"union ::= LP union RP"
,
/* 132 */
"union ::= union UNION ALL select"
,
/* 133 */
"union ::= union UNION ALL LP select RP"
,
/* 134 */
"cmd ::= union"
,
/* 135 */
"select ::= SELECT selcollist"
,
/* 136 */
"sclp ::= selcollist COMMA"
,
/* 137 */
"sclp ::="
,
/* 138 */
"selcollist ::= sclp expr as"
,
/* 139 */
"selcollist ::= sclp STAR"
,
/* 140 */
"as ::= AS ids"
,
/* 141 */
"as ::= ids"
,
/* 142 */
"as ::="
,
/* 143 */
"from ::= FROM tablelist"
,
/* 144 */
"tablelist ::= ids cpxName"
,
/* 145 */
"tablelist ::= ids cpxName ids"
,
/* 146 */
"tablelist ::= tablelist COMMA ids cpxName"
,
/* 147 */
"tablelist ::= tablelist COMMA ids cpxName ids"
,
/* 148 */
"tmvar ::= VARIABLE"
,
/* 149 */
"interval_opt ::= INTERVAL LP tmvar RP"
,
/* 150 */
"interval_opt ::="
,
/* 151 */
"fill_opt ::="
,
/* 152 */
"fill_opt ::= FILL LP ID COMMA tagitemlist RP"
,
/* 153 */
"fill_opt ::= FILL LP ID RP"
,
/* 154 */
"sliding_opt ::= SLIDING LP tmvar RP"
,
/* 155 */
"sliding_opt ::="
,
/* 156 */
"orderby_opt ::="
,
/* 157 */
"orderby_opt ::= ORDER BY sortlist"
,
/* 158 */
"sortlist ::= sortlist COMMA item sortorder"
,
/* 159 */
"sortlist ::= item sortorder"
,
/* 160 */
"item ::= ids cpxName"
,
/* 161 */
"sortorder ::= ASC"
,
/* 162 */
"sortorder ::= DESC"
,
/* 163 */
"sortorder ::="
,
/* 164 */
"groupby_opt ::="
,
/* 165 */
"groupby_opt ::= GROUP BY grouplist"
,
/* 166 */
"grouplist ::= grouplist COMMA item"
,
/* 167 */
"grouplist ::= item"
,
/* 168 */
"having_opt ::="
,
/* 169 */
"having_opt ::= HAVING expr"
,
/* 170 */
"limit_opt ::="
,
/* 171 */
"limit_opt ::= LIMIT signed"
,
/* 172 */
"limit_opt ::= LIMIT signed OFFSET signed"
,
/* 173 */
"limit_opt ::= LIMIT signed COMMA signed"
,
/* 174 */
"slimit_opt ::="
,
/* 175 */
"slimit_opt ::= SLIMIT signed"
,
/* 176 */
"slimit_opt ::= SLIMIT signed SOFFSET signed"
,
/* 177 */
"slimit_opt ::= SLIMIT signed COMMA signed"
,
/* 178 */
"where_opt ::="
,
/* 179 */
"where_opt ::= WHERE expr"
,
/* 180 */
"expr ::= LP expr RP"
,
/* 181 */
"expr ::= ID"
,
/* 182 */
"expr ::= ID DOT ID"
,
/* 183 */
"expr ::= ID DOT STAR"
,
/* 184 */
"expr ::= INTEGER"
,
/* 185 */
"expr ::= MINUS INTEGER"
,
/* 186 */
"expr ::= PLUS INTEGER"
,
/* 187 */
"expr ::= FLOAT"
,
/* 188 */
"expr ::= MINUS FLOAT"
,
/* 189 */
"expr ::= PLUS FLOAT"
,
/* 190 */
"expr ::= STRING"
,
/* 191 */
"expr ::= NOW"
,
/* 192 */
"expr ::= VARIABLE"
,
/* 193 */
"expr ::= BOOL"
,
/* 194 */
"expr ::= ID LP exprlist RP"
,
/* 195 */
"expr ::= ID LP STAR RP"
,
/* 196 */
"expr ::= expr AND expr"
,
/* 197 */
"expr ::= expr OR expr"
,
/* 198 */
"expr ::= expr LT expr"
,
/* 199 */
"expr ::= expr GT expr"
,
/* 200 */
"expr ::= expr LE expr"
,
/* 201 */
"expr ::= expr GE expr"
,
/* 202 */
"expr ::= expr NE expr"
,
/* 203 */
"expr ::= expr EQ expr"
,
/* 204 */
"expr ::= expr PLUS expr"
,
/* 205 */
"expr ::= expr MINUS expr"
,
/* 206 */
"expr ::= expr STAR expr"
,
/* 207 */
"expr ::= expr SLASH expr"
,
/* 208 */
"expr ::= expr REM expr"
,
/* 209 */
"expr ::= expr LIKE expr"
,
/* 210 */
"expr ::= expr IN LP exprlist RP"
,
/* 211 */
"exprlist ::= exprlist COMMA expritem"
,
/* 212 */
"exprlist ::= expritem"
,
/* 213 */
"expritem ::= expr"
,
/* 214 */
"expritem ::="
,
/* 215 */
"cmd ::= RESET QUERY CACHE"
,
/* 216 */
"cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist"
,
/* 217 */
"cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids"
,
/* 218 */
"cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist"
,
/* 219 */
"cmd ::= ALTER TABLE ids cpxName DROP TAG ids"
,
/* 220 */
"cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids"
,
/* 221 */
"cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem"
,
/* 222 */
"cmd ::= KILL CONNECTION INTEGER"
,
/* 223 */
"cmd ::= KILL STREAM INTEGER COLON INTEGER"
,
/* 224 */
"cmd ::= KILL QUERY INTEGER COLON INTEGER"
,
};
#endif
/* NDEBUG */
...
...
@@ -1355,50 +1347,50 @@ static void yy_destructor(
** inside the C code.
*/
/********* Begin destructor definitions ***************************************/
case
22
7
:
/* keep */
case
22
8
:
/* tagitemlist */
case
25
3
:
/* fill_opt */
case
25
5
:
/* groupby_opt */
case
25
6
:
/* orderby_opt */
case
26
6
:
/* sortlist */
case
2
70
:
/* grouplist */
case
22
6
:
/* keep */
case
22
7
:
/* tagitemlist */
case
25
1
:
/* fill_opt */
case
25
3
:
/* groupby_opt */
case
25
4
:
/* orderby_opt */
case
26
4
:
/* sortlist */
case
2
68
:
/* grouplist */
{
tVariantListDestroy
((
yypminor
->
yy49
8
));
tVariantListDestroy
((
yypminor
->
yy49
4
));
}
break
;
case
24
5
:
/* columnlist */
case
24
3
:
/* columnlist */
{
tFieldListDestroy
((
yypminor
->
yy
523
));
tFieldListDestroy
((
yypminor
->
yy
449
));
}
break
;
case
24
6
:
/* select */
case
24
4
:
/* select */
{
doDestroyQuerySql
((
yypminor
->
yy
414
));
doDestroyQuerySql
((
yypminor
->
yy
150
));
}
break
;
case
24
9
:
/* selcollist */
case
2
61
:
/* sclp */
case
2
71
:
/* exprlist */
case
24
7
:
/* selcollist */
case
2
59
:
/* sclp */
case
2
69
:
/* exprlist */
{
tSQLExprListDestroy
((
yypminor
->
yy2
90
));
tSQLExprListDestroy
((
yypminor
->
yy2
24
));
}
break
;
case
2
51
:
/* where_opt */
case
25
7
:
/* having_opt */
case
26
2
:
/* expr */
case
27
2
:
/* expritem */
case
2
49
:
/* where_opt */
case
25
5
:
/* having_opt */
case
26
0
:
/* expr */
case
27
0
:
/* expritem */
{
tSQLExprDestroy
((
yypminor
->
yy6
4
));
tSQLExprDestroy
((
yypminor
->
yy6
6
));
}
break
;
case
2
60
:
/* union */
case
2
58
:
/* union */
{
destroyAllSelectClause
((
yypminor
->
yy2
31
));
destroyAllSelectClause
((
yypminor
->
yy2
5
));
}
break
;
case
26
7
:
/* sortitem */
case
26
5
:
/* sortitem */
{
tVariantDestroy
(
&
(
yypminor
->
yy
134
));
tVariantDestroy
(
&
(
yypminor
->
yy
312
));
}
break
;
/********* End destructor definitions *****************************************/
...
...
@@ -1692,234 +1684,231 @@ static const struct {
YYCODETYPE
lhs
;
/* Symbol on the left-hand side of the rule */
signed
char
nrhs
;
/* Negative of the number of RHS symbols in the rule */
}
yyRuleInfo
[]
=
{
{
208
,
-
1
},
/* (0) program ::= cmd */
{
209
,
-
2
},
/* (1) cmd ::= SHOW DATABASES */
{
209
,
-
2
},
/* (2) cmd ::= SHOW MNODES */
{
209
,
-
2
},
/* (3) cmd ::= SHOW DNODES */
{
209
,
-
2
},
/* (4) cmd ::= SHOW ACCOUNTS */
{
209
,
-
2
},
/* (5) cmd ::= SHOW USERS */
{
209
,
-
2
},
/* (6) cmd ::= SHOW MODULES */
{
209
,
-
2
},
/* (7) cmd ::= SHOW QUERIES */
{
209
,
-
2
},
/* (8) cmd ::= SHOW CONNECTIONS */
{
209
,
-
2
},
/* (9) cmd ::= SHOW STREAMS */
{
209
,
-
2
},
/* (10) cmd ::= SHOW VARIABLES */
{
209
,
-
2
},
/* (11) cmd ::= SHOW SCORES */
{
209
,
-
2
},
/* (12) cmd ::= SHOW GRANTS */
{
209
,
-
2
},
/* (13) cmd ::= SHOW VNODES */
{
209
,
-
3
},
/* (14) cmd ::= SHOW VNODES IPTOKEN */
{
210
,
0
},
/* (15) dbPrefix ::= */
{
210
,
-
2
},
/* (16) dbPrefix ::= ids DOT */
{
212
,
0
},
/* (17) cpxName ::= */
{
212
,
-
2
},
/* (18) cpxName ::= DOT ids */
{
209
,
-
3
},
/* (19) cmd ::= SHOW dbPrefix TABLES */
{
209
,
-
5
},
/* (20) cmd ::= SHOW dbPrefix TABLES LIKE ids */
{
209
,
-
3
},
/* (21) cmd ::= SHOW dbPrefix STABLES */
{
209
,
-
5
},
/* (22) cmd ::= SHOW dbPrefix STABLES LIKE ids */
{
209
,
-
3
},
/* (23) cmd ::= SHOW dbPrefix VGROUPS */
{
209
,
-
4
},
/* (24) cmd ::= SHOW dbPrefix VGROUPS ids */
{
209
,
-
5
},
/* (25) cmd ::= DROP TABLE ifexists ids cpxName */
{
209
,
-
4
},
/* (26) cmd ::= DROP DATABASE ifexists ids */
{
209
,
-
3
},
/* (27) cmd ::= DROP DNODE ids */
{
209
,
-
3
},
/* (28) cmd ::= DROP USER ids */
{
209
,
-
3
},
/* (29) cmd ::= DROP ACCOUNT ids */
{
209
,
-
2
},
/* (30) cmd ::= USE ids */
{
209
,
-
3
},
/* (31) cmd ::= DESCRIBE ids cpxName */
{
209
,
-
5
},
/* (32) cmd ::= ALTER USER ids PASS ids */
{
209
,
-
5
},
/* (33) cmd ::= ALTER USER ids PRIVILEGE ids */
{
209
,
-
4
},
/* (34) cmd ::= ALTER DNODE ids ids */
{
209
,
-
5
},
/* (35) cmd ::= ALTER DNODE ids ids ids */
{
209
,
-
3
},
/* (36) cmd ::= ALTER LOCAL ids */
{
209
,
-
4
},
/* (37) cmd ::= ALTER LOCAL ids ids */
{
209
,
-
4
},
/* (38) cmd ::= ALTER DATABASE ids alter_db_optr */
{
209
,
-
4
},
/* (39) cmd ::= ALTER ACCOUNT ids acct_optr */
{
209
,
-
6
},
/* (40) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{
211
,
-
1
},
/* (41) ids ::= ID */
{
211
,
-
1
},
/* (42) ids ::= STRING */
{
213
,
-
2
},
/* (43) ifexists ::= IF EXISTS */
{
213
,
0
},
/* (44) ifexists ::= */
{
216
,
-
3
},
/* (45) ifnotexists ::= IF NOT EXISTS */
{
216
,
0
},
/* (46) ifnotexists ::= */
{
209
,
-
3
},
/* (47) cmd ::= CREATE DNODE ids */
{
209
,
-
6
},
/* (48) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{
209
,
-
5
},
/* (49) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
{
209
,
-
5
},
/* (50) cmd ::= CREATE USER ids PASS ids */
{
218
,
0
},
/* (51) pps ::= */
{
218
,
-
2
},
/* (52) pps ::= PPS INTEGER */
{
219
,
0
},
/* (53) tseries ::= */
{
219
,
-
2
},
/* (54) tseries ::= TSERIES INTEGER */
{
220
,
0
},
/* (55) dbs ::= */
{
220
,
-
2
},
/* (56) dbs ::= DBS INTEGER */
{
221
,
0
},
/* (57) streams ::= */
{
221
,
-
2
},
/* (58) streams ::= STREAMS INTEGER */
{
222
,
0
},
/* (59) storage ::= */
{
222
,
-
2
},
/* (60) storage ::= STORAGE INTEGER */
{
223
,
0
},
/* (61) qtime ::= */
{
223
,
-
2
},
/* (62) qtime ::= QTIME INTEGER */
{
224
,
0
},
/* (63) users ::= */
{
224
,
-
2
},
/* (64) users ::= USERS INTEGER */
{
225
,
0
},
/* (65) conns ::= */
{
225
,
-
2
},
/* (66) conns ::= CONNS INTEGER */
{
226
,
0
},
/* (67) state ::= */
{
226
,
-
2
},
/* (68) state ::= STATE ids */
{
215
,
-
9
},
/* (69) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{
227
,
-
2
},
/* (70) keep ::= KEEP tagitemlist */
{
229
,
-
2
},
/* (71) tables ::= MAXTABLES INTEGER */
{
230
,
-
2
},
/* (72) cache ::= CACHE INTEGER */
{
231
,
-
2
},
/* (73) replica ::= REPLICA INTEGER */
{
232
,
-
2
},
/* (74) quorum ::= QUORUM INTEGER */
{
233
,
-
2
},
/* (75) days ::= DAYS INTEGER */
{
234
,
-
2
},
/* (76) minrows ::= MINROWS INTEGER */
{
235
,
-
2
},
/* (77) maxrows ::= MAXROWS INTEGER */
{
236
,
-
2
},
/* (78) blocks ::= BLOCKS INTEGER */
{
237
,
-
2
},
/* (79) ctime ::= CTIME INTEGER */
{
238
,
-
2
},
/* (80) wal ::= WAL INTEGER */
{
239
,
-
2
},
/* (81) fsync ::= FSYNC INTEGER */
{
240
,
-
2
},
/* (82) comp ::= COMP INTEGER */
{
241
,
-
2
},
/* (83) prec ::= PRECISION STRING */
{
217
,
0
},
/* (84) db_optr ::= */
{
217
,
-
2
},
/* (85) db_optr ::= db_optr tables */
{
217
,
-
2
},
/* (86) db_optr ::= db_optr cache */
{
217
,
-
2
},
/* (87) db_optr ::= db_optr replica */
{
217
,
-
2
},
/* (88) db_optr ::= db_optr quorum */
{
217
,
-
2
},
/* (89) db_optr ::= db_optr days */
{
217
,
-
2
},
/* (90) db_optr ::= db_optr minrows */
{
217
,
-
2
},
/* (91) db_optr ::= db_optr maxrows */
{
217
,
-
2
},
/* (92) db_optr ::= db_optr blocks */
{
217
,
-
2
},
/* (93) db_optr ::= db_optr ctime */
{
217
,
-
2
},
/* (94) db_optr ::= db_optr wal */
{
217
,
-
2
},
/* (95) db_optr ::= db_optr fsync */
{
217
,
-
2
},
/* (96) db_optr ::= db_optr comp */
{
217
,
-
2
},
/* (97) db_optr ::= db_optr prec */
{
217
,
-
2
},
/* (98) db_optr ::= db_optr keep */
{
214
,
0
},
/* (99) alter_db_optr ::= */
{
214
,
-
2
},
/* (100) alter_db_optr ::= alter_db_optr replica */
{
214
,
-
2
},
/* (101) alter_db_optr ::= alter_db_optr quorum */
{
214
,
-
2
},
/* (102) alter_db_optr ::= alter_db_optr tables */
{
214
,
-
2
},
/* (103) alter_db_optr ::= alter_db_optr keep */
{
214
,
-
2
},
/* (104) alter_db_optr ::= alter_db_optr blocks */
{
214
,
-
2
},
/* (105) alter_db_optr ::= alter_db_optr comp */
{
214
,
-
2
},
/* (106) alter_db_optr ::= alter_db_optr wal */
{
214
,
-
2
},
/* (107) alter_db_optr ::= alter_db_optr fsync */
{
242
,
-
1
},
/* (108) typename ::= ids */
{
242
,
-
4
},
/* (109) typename ::= ids LP signed RP */
{
243
,
-
1
},
/* (110) signed ::= INTEGER */
{
243
,
-
2
},
/* (111) signed ::= PLUS INTEGER */
{
243
,
-
2
},
/* (112) signed ::= MINUS INTEGER */
{
209
,
-
6
},
/* (113) cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */
{
244
,
-
3
},
/* (114) create_table_args ::= LP columnlist RP */
{
244
,
-
7
},
/* (115) create_table_args ::= LP columnlist RP TAGS LP columnlist RP */
{
244
,
-
7
},
/* (116) create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP */
{
244
,
-
2
},
/* (117) create_table_args ::= AS select */
{
245
,
-
3
},
/* (118) columnlist ::= columnlist COMMA column */
{
245
,
-
1
},
/* (119) columnlist ::= column */
{
247
,
-
2
},
/* (120) column ::= ids typename */
{
228
,
-
3
},
/* (121) tagitemlist ::= tagitemlist COMMA tagitem */
{
228
,
-
1
},
/* (122) tagitemlist ::= tagitem */
{
248
,
-
1
},
/* (123) tagitem ::= INTEGER */
{
248
,
-
1
},
/* (124) tagitem ::= FLOAT */
{
248
,
-
1
},
/* (125) tagitem ::= STRING */
{
248
,
-
1
},
/* (126) tagitem ::= BOOL */
{
248
,
-
1
},
/* (127) tagitem ::= NULL */
{
248
,
-
2
},
/* (128) tagitem ::= MINUS INTEGER */
{
248
,
-
2
},
/* (129) tagitem ::= MINUS FLOAT */
{
248
,
-
2
},
/* (130) tagitem ::= PLUS INTEGER */
{
248
,
-
2
},
/* (131) tagitem ::= PLUS FLOAT */
{
246
,
-
12
},
/* (132) select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
{
260
,
-
1
},
/* (133) union ::= select */
{
260
,
-
3
},
/* (134) union ::= LP union RP */
{
260
,
-
4
},
/* (135) union ::= union UNION ALL select */
{
260
,
-
6
},
/* (136) union ::= union UNION ALL LP select RP */
{
209
,
-
1
},
/* (137) cmd ::= union */
{
246
,
-
2
},
/* (138) select ::= SELECT selcollist */
{
261
,
-
2
},
/* (139) sclp ::= selcollist COMMA */
{
261
,
0
},
/* (140) sclp ::= */
{
249
,
-
3
},
/* (141) selcollist ::= sclp expr as */
{
249
,
-
2
},
/* (142) selcollist ::= sclp STAR */
{
263
,
-
2
},
/* (143) as ::= AS ids */
{
263
,
-
1
},
/* (144) as ::= ids */
{
263
,
0
},
/* (145) as ::= */
{
250
,
-
2
},
/* (146) from ::= FROM tablelist */
{
264
,
-
2
},
/* (147) tablelist ::= ids cpxName */
{
264
,
-
3
},
/* (148) tablelist ::= ids cpxName ids */
{
264
,
-
4
},
/* (149) tablelist ::= tablelist COMMA ids cpxName */
{
264
,
-
5
},
/* (150) tablelist ::= tablelist COMMA ids cpxName ids */
{
265
,
-
1
},
/* (151) tmvar ::= VARIABLE */
{
252
,
-
4
},
/* (152) interval_opt ::= INTERVAL LP tmvar RP */
{
252
,
0
},
/* (153) interval_opt ::= */
{
253
,
0
},
/* (154) fill_opt ::= */
{
253
,
-
6
},
/* (155) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
253
,
-
4
},
/* (156) fill_opt ::= FILL LP ID RP */
{
254
,
-
4
},
/* (157) sliding_opt ::= SLIDING LP tmvar RP */
{
254
,
0
},
/* (158) sliding_opt ::= */
{
256
,
0
},
/* (159) orderby_opt ::= */
{
256
,
-
3
},
/* (160) orderby_opt ::= ORDER BY sortlist */
{
266
,
-
4
},
/* (161) sortlist ::= sortlist COMMA item sortorder */
{
266
,
-
2
},
/* (162) sortlist ::= item sortorder */
{
268
,
-
2
},
/* (163) item ::= ids cpxName */
{
269
,
-
1
},
/* (164) sortorder ::= ASC */
{
269
,
-
1
},
/* (165) sortorder ::= DESC */
{
269
,
0
},
/* (166) sortorder ::= */
{
255
,
0
},
/* (167) groupby_opt ::= */
{
255
,
-
3
},
/* (168) groupby_opt ::= GROUP BY grouplist */
{
270
,
-
3
},
/* (169) grouplist ::= grouplist COMMA item */
{
270
,
-
1
},
/* (170) grouplist ::= item */
{
257
,
0
},
/* (171) having_opt ::= */
{
257
,
-
2
},
/* (172) having_opt ::= HAVING expr */
{
259
,
0
},
/* (173) limit_opt ::= */
{
259
,
-
2
},
/* (174) limit_opt ::= LIMIT signed */
{
259
,
-
4
},
/* (175) limit_opt ::= LIMIT signed OFFSET signed */
{
259
,
-
4
},
/* (176) limit_opt ::= LIMIT signed COMMA signed */
{
258
,
0
},
/* (177) slimit_opt ::= */
{
258
,
-
2
},
/* (178) slimit_opt ::= SLIMIT signed */
{
258
,
-
4
},
/* (179) slimit_opt ::= SLIMIT signed SOFFSET signed */
{
258
,
-
4
},
/* (180) slimit_opt ::= SLIMIT signed COMMA signed */
{
251
,
0
},
/* (181) where_opt ::= */
{
251
,
-
2
},
/* (182) where_opt ::= WHERE expr */
{
262
,
-
3
},
/* (183) expr ::= LP expr RP */
{
262
,
-
1
},
/* (184) expr ::= ID */
{
262
,
-
3
},
/* (185) expr ::= ID DOT ID */
{
262
,
-
3
},
/* (186) expr ::= ID DOT STAR */
{
262
,
-
1
},
/* (187) expr ::= INTEGER */
{
262
,
-
2
},
/* (188) expr ::= MINUS INTEGER */
{
262
,
-
2
},
/* (189) expr ::= PLUS INTEGER */
{
262
,
-
1
},
/* (190) expr ::= FLOAT */
{
262
,
-
2
},
/* (191) expr ::= MINUS FLOAT */
{
262
,
-
2
},
/* (192) expr ::= PLUS FLOAT */
{
262
,
-
1
},
/* (193) expr ::= STRING */
{
262
,
-
1
},
/* (194) expr ::= NOW */
{
262
,
-
1
},
/* (195) expr ::= VARIABLE */
{
262
,
-
1
},
/* (196) expr ::= BOOL */
{
262
,
-
4
},
/* (197) expr ::= ID LP exprlist RP */
{
262
,
-
4
},
/* (198) expr ::= ID LP STAR RP */
{
262
,
-
3
},
/* (199) expr ::= expr AND expr */
{
262
,
-
3
},
/* (200) expr ::= expr OR expr */
{
262
,
-
3
},
/* (201) expr ::= expr LT expr */
{
262
,
-
3
},
/* (202) expr ::= expr GT expr */
{
262
,
-
3
},
/* (203) expr ::= expr LE expr */
{
262
,
-
3
},
/* (204) expr ::= expr GE expr */
{
262
,
-
3
},
/* (205) expr ::= expr NE expr */
{
262
,
-
3
},
/* (206) expr ::= expr EQ expr */
{
262
,
-
3
},
/* (207) expr ::= expr PLUS expr */
{
262
,
-
3
},
/* (208) expr ::= expr MINUS expr */
{
262
,
-
3
},
/* (209) expr ::= expr STAR expr */
{
262
,
-
3
},
/* (210) expr ::= expr SLASH expr */
{
262
,
-
3
},
/* (211) expr ::= expr REM expr */
{
262
,
-
3
},
/* (212) expr ::= expr LIKE expr */
{
262
,
-
5
},
/* (213) expr ::= expr IN LP exprlist RP */
{
271
,
-
3
},
/* (214) exprlist ::= exprlist COMMA expritem */
{
271
,
-
1
},
/* (215) exprlist ::= expritem */
{
272
,
-
1
},
/* (216) expritem ::= expr */
{
272
,
0
},
/* (217) expritem ::= */
{
209
,
-
3
},
/* (218) cmd ::= RESET QUERY CACHE */
{
209
,
-
7
},
/* (219) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{
209
,
-
7
},
/* (220) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{
209
,
-
7
},
/* (221) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
209
,
-
7
},
/* (222) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{
209
,
-
8
},
/* (223) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{
209
,
-
9
},
/* (224) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{
209
,
-
3
},
/* (225) cmd ::= KILL CONNECTION INTEGER */
{
209
,
-
5
},
/* (226) cmd ::= KILL STREAM INTEGER COLON INTEGER */
{
209
,
-
5
},
/* (227) cmd ::= KILL QUERY INTEGER COLON INTEGER */
{
207
,
-
1
},
/* (0) program ::= cmd */
{
208
,
-
2
},
/* (1) cmd ::= SHOW DATABASES */
{
208
,
-
2
},
/* (2) cmd ::= SHOW MNODES */
{
208
,
-
2
},
/* (3) cmd ::= SHOW DNODES */
{
208
,
-
2
},
/* (4) cmd ::= SHOW ACCOUNTS */
{
208
,
-
2
},
/* (5) cmd ::= SHOW USERS */
{
208
,
-
2
},
/* (6) cmd ::= SHOW MODULES */
{
208
,
-
2
},
/* (7) cmd ::= SHOW QUERIES */
{
208
,
-
2
},
/* (8) cmd ::= SHOW CONNECTIONS */
{
208
,
-
2
},
/* (9) cmd ::= SHOW STREAMS */
{
208
,
-
2
},
/* (10) cmd ::= SHOW VARIABLES */
{
208
,
-
2
},
/* (11) cmd ::= SHOW SCORES */
{
208
,
-
2
},
/* (12) cmd ::= SHOW GRANTS */
{
208
,
-
2
},
/* (13) cmd ::= SHOW VNODES */
{
208
,
-
3
},
/* (14) cmd ::= SHOW VNODES IPTOKEN */
{
209
,
0
},
/* (15) dbPrefix ::= */
{
209
,
-
2
},
/* (16) dbPrefix ::= ids DOT */
{
211
,
0
},
/* (17) cpxName ::= */
{
211
,
-
2
},
/* (18) cpxName ::= DOT ids */
{
208
,
-
3
},
/* (19) cmd ::= SHOW dbPrefix TABLES */
{
208
,
-
5
},
/* (20) cmd ::= SHOW dbPrefix TABLES LIKE ids */
{
208
,
-
3
},
/* (21) cmd ::= SHOW dbPrefix STABLES */
{
208
,
-
5
},
/* (22) cmd ::= SHOW dbPrefix STABLES LIKE ids */
{
208
,
-
3
},
/* (23) cmd ::= SHOW dbPrefix VGROUPS */
{
208
,
-
4
},
/* (24) cmd ::= SHOW dbPrefix VGROUPS ids */
{
208
,
-
5
},
/* (25) cmd ::= DROP TABLE ifexists ids cpxName */
{
208
,
-
4
},
/* (26) cmd ::= DROP DATABASE ifexists ids */
{
208
,
-
3
},
/* (27) cmd ::= DROP DNODE ids */
{
208
,
-
3
},
/* (28) cmd ::= DROP USER ids */
{
208
,
-
3
},
/* (29) cmd ::= DROP ACCOUNT ids */
{
208
,
-
2
},
/* (30) cmd ::= USE ids */
{
208
,
-
3
},
/* (31) cmd ::= DESCRIBE ids cpxName */
{
208
,
-
5
},
/* (32) cmd ::= ALTER USER ids PASS ids */
{
208
,
-
5
},
/* (33) cmd ::= ALTER USER ids PRIVILEGE ids */
{
208
,
-
4
},
/* (34) cmd ::= ALTER DNODE ids ids */
{
208
,
-
5
},
/* (35) cmd ::= ALTER DNODE ids ids ids */
{
208
,
-
3
},
/* (36) cmd ::= ALTER LOCAL ids */
{
208
,
-
4
},
/* (37) cmd ::= ALTER LOCAL ids ids */
{
208
,
-
4
},
/* (38) cmd ::= ALTER DATABASE ids alter_db_optr */
{
208
,
-
4
},
/* (39) cmd ::= ALTER ACCOUNT ids acct_optr */
{
208
,
-
6
},
/* (40) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{
210
,
-
1
},
/* (41) ids ::= ID */
{
210
,
-
1
},
/* (42) ids ::= STRING */
{
212
,
-
2
},
/* (43) ifexists ::= IF EXISTS */
{
212
,
0
},
/* (44) ifexists ::= */
{
215
,
-
3
},
/* (45) ifnotexists ::= IF NOT EXISTS */
{
215
,
0
},
/* (46) ifnotexists ::= */
{
208
,
-
3
},
/* (47) cmd ::= CREATE DNODE ids */
{
208
,
-
6
},
/* (48) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{
208
,
-
5
},
/* (49) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
{
208
,
-
5
},
/* (50) cmd ::= CREATE USER ids PASS ids */
{
217
,
0
},
/* (51) pps ::= */
{
217
,
-
2
},
/* (52) pps ::= PPS INTEGER */
{
218
,
0
},
/* (53) tseries ::= */
{
218
,
-
2
},
/* (54) tseries ::= TSERIES INTEGER */
{
219
,
0
},
/* (55) dbs ::= */
{
219
,
-
2
},
/* (56) dbs ::= DBS INTEGER */
{
220
,
0
},
/* (57) streams ::= */
{
220
,
-
2
},
/* (58) streams ::= STREAMS INTEGER */
{
221
,
0
},
/* (59) storage ::= */
{
221
,
-
2
},
/* (60) storage ::= STORAGE INTEGER */
{
222
,
0
},
/* (61) qtime ::= */
{
222
,
-
2
},
/* (62) qtime ::= QTIME INTEGER */
{
223
,
0
},
/* (63) users ::= */
{
223
,
-
2
},
/* (64) users ::= USERS INTEGER */
{
224
,
0
},
/* (65) conns ::= */
{
224
,
-
2
},
/* (66) conns ::= CONNS INTEGER */
{
225
,
0
},
/* (67) state ::= */
{
225
,
-
2
},
/* (68) state ::= STATE ids */
{
214
,
-
9
},
/* (69) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{
226
,
-
2
},
/* (70) keep ::= KEEP tagitemlist */
{
228
,
-
2
},
/* (71) cache ::= CACHE INTEGER */
{
229
,
-
2
},
/* (72) replica ::= REPLICA INTEGER */
{
230
,
-
2
},
/* (73) quorum ::= QUORUM INTEGER */
{
231
,
-
2
},
/* (74) days ::= DAYS INTEGER */
{
232
,
-
2
},
/* (75) minrows ::= MINROWS INTEGER */
{
233
,
-
2
},
/* (76) maxrows ::= MAXROWS INTEGER */
{
234
,
-
2
},
/* (77) blocks ::= BLOCKS INTEGER */
{
235
,
-
2
},
/* (78) ctime ::= CTIME INTEGER */
{
236
,
-
2
},
/* (79) wal ::= WAL INTEGER */
{
237
,
-
2
},
/* (80) fsync ::= FSYNC INTEGER */
{
238
,
-
2
},
/* (81) comp ::= COMP INTEGER */
{
239
,
-
2
},
/* (82) prec ::= PRECISION STRING */
{
216
,
0
},
/* (83) db_optr ::= */
{
216
,
-
2
},
/* (84) db_optr ::= db_optr cache */
{
216
,
-
2
},
/* (85) db_optr ::= db_optr replica */
{
216
,
-
2
},
/* (86) db_optr ::= db_optr quorum */
{
216
,
-
2
},
/* (87) db_optr ::= db_optr days */
{
216
,
-
2
},
/* (88) db_optr ::= db_optr minrows */
{
216
,
-
2
},
/* (89) db_optr ::= db_optr maxrows */
{
216
,
-
2
},
/* (90) db_optr ::= db_optr blocks */
{
216
,
-
2
},
/* (91) db_optr ::= db_optr ctime */
{
216
,
-
2
},
/* (92) db_optr ::= db_optr wal */
{
216
,
-
2
},
/* (93) db_optr ::= db_optr fsync */
{
216
,
-
2
},
/* (94) db_optr ::= db_optr comp */
{
216
,
-
2
},
/* (95) db_optr ::= db_optr prec */
{
216
,
-
2
},
/* (96) db_optr ::= db_optr keep */
{
213
,
0
},
/* (97) alter_db_optr ::= */
{
213
,
-
2
},
/* (98) alter_db_optr ::= alter_db_optr replica */
{
213
,
-
2
},
/* (99) alter_db_optr ::= alter_db_optr quorum */
{
213
,
-
2
},
/* (100) alter_db_optr ::= alter_db_optr keep */
{
213
,
-
2
},
/* (101) alter_db_optr ::= alter_db_optr blocks */
{
213
,
-
2
},
/* (102) alter_db_optr ::= alter_db_optr comp */
{
213
,
-
2
},
/* (103) alter_db_optr ::= alter_db_optr wal */
{
213
,
-
2
},
/* (104) alter_db_optr ::= alter_db_optr fsync */
{
240
,
-
1
},
/* (105) typename ::= ids */
{
240
,
-
4
},
/* (106) typename ::= ids LP signed RP */
{
241
,
-
1
},
/* (107) signed ::= INTEGER */
{
241
,
-
2
},
/* (108) signed ::= PLUS INTEGER */
{
241
,
-
2
},
/* (109) signed ::= MINUS INTEGER */
{
208
,
-
6
},
/* (110) cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */
{
242
,
-
3
},
/* (111) create_table_args ::= LP columnlist RP */
{
242
,
-
7
},
/* (112) create_table_args ::= LP columnlist RP TAGS LP columnlist RP */
{
242
,
-
7
},
/* (113) create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP */
{
242
,
-
2
},
/* (114) create_table_args ::= AS select */
{
243
,
-
3
},
/* (115) columnlist ::= columnlist COMMA column */
{
243
,
-
1
},
/* (116) columnlist ::= column */
{
245
,
-
2
},
/* (117) column ::= ids typename */
{
227
,
-
3
},
/* (118) tagitemlist ::= tagitemlist COMMA tagitem */
{
227
,
-
1
},
/* (119) tagitemlist ::= tagitem */
{
246
,
-
1
},
/* (120) tagitem ::= INTEGER */
{
246
,
-
1
},
/* (121) tagitem ::= FLOAT */
{
246
,
-
1
},
/* (122) tagitem ::= STRING */
{
246
,
-
1
},
/* (123) tagitem ::= BOOL */
{
246
,
-
1
},
/* (124) tagitem ::= NULL */
{
246
,
-
2
},
/* (125) tagitem ::= MINUS INTEGER */
{
246
,
-
2
},
/* (126) tagitem ::= MINUS FLOAT */
{
246
,
-
2
},
/* (127) tagitem ::= PLUS INTEGER */
{
246
,
-
2
},
/* (128) tagitem ::= PLUS FLOAT */
{
244
,
-
12
},
/* (129) select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
{
258
,
-
1
},
/* (130) union ::= select */
{
258
,
-
3
},
/* (131) union ::= LP union RP */
{
258
,
-
4
},
/* (132) union ::= union UNION ALL select */
{
258
,
-
6
},
/* (133) union ::= union UNION ALL LP select RP */
{
208
,
-
1
},
/* (134) cmd ::= union */
{
244
,
-
2
},
/* (135) select ::= SELECT selcollist */
{
259
,
-
2
},
/* (136) sclp ::= selcollist COMMA */
{
259
,
0
},
/* (137) sclp ::= */
{
247
,
-
3
},
/* (138) selcollist ::= sclp expr as */
{
247
,
-
2
},
/* (139) selcollist ::= sclp STAR */
{
261
,
-
2
},
/* (140) as ::= AS ids */
{
261
,
-
1
},
/* (141) as ::= ids */
{
261
,
0
},
/* (142) as ::= */
{
248
,
-
2
},
/* (143) from ::= FROM tablelist */
{
262
,
-
2
},
/* (144) tablelist ::= ids cpxName */
{
262
,
-
3
},
/* (145) tablelist ::= ids cpxName ids */
{
262
,
-
4
},
/* (146) tablelist ::= tablelist COMMA ids cpxName */
{
262
,
-
5
},
/* (147) tablelist ::= tablelist COMMA ids cpxName ids */
{
263
,
-
1
},
/* (148) tmvar ::= VARIABLE */
{
250
,
-
4
},
/* (149) interval_opt ::= INTERVAL LP tmvar RP */
{
250
,
0
},
/* (150) interval_opt ::= */
{
251
,
0
},
/* (151) fill_opt ::= */
{
251
,
-
6
},
/* (152) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
251
,
-
4
},
/* (153) fill_opt ::= FILL LP ID RP */
{
252
,
-
4
},
/* (154) sliding_opt ::= SLIDING LP tmvar RP */
{
252
,
0
},
/* (155) sliding_opt ::= */
{
254
,
0
},
/* (156) orderby_opt ::= */
{
254
,
-
3
},
/* (157) orderby_opt ::= ORDER BY sortlist */
{
264
,
-
4
},
/* (158) sortlist ::= sortlist COMMA item sortorder */
{
264
,
-
2
},
/* (159) sortlist ::= item sortorder */
{
266
,
-
2
},
/* (160) item ::= ids cpxName */
{
267
,
-
1
},
/* (161) sortorder ::= ASC */
{
267
,
-
1
},
/* (162) sortorder ::= DESC */
{
267
,
0
},
/* (163) sortorder ::= */
{
253
,
0
},
/* (164) groupby_opt ::= */
{
253
,
-
3
},
/* (165) groupby_opt ::= GROUP BY grouplist */
{
268
,
-
3
},
/* (166) grouplist ::= grouplist COMMA item */
{
268
,
-
1
},
/* (167) grouplist ::= item */
{
255
,
0
},
/* (168) having_opt ::= */
{
255
,
-
2
},
/* (169) having_opt ::= HAVING expr */
{
257
,
0
},
/* (170) limit_opt ::= */
{
257
,
-
2
},
/* (171) limit_opt ::= LIMIT signed */
{
257
,
-
4
},
/* (172) limit_opt ::= LIMIT signed OFFSET signed */
{
257
,
-
4
},
/* (173) limit_opt ::= LIMIT signed COMMA signed */
{
256
,
0
},
/* (174) slimit_opt ::= */
{
256
,
-
2
},
/* (175) slimit_opt ::= SLIMIT signed */
{
256
,
-
4
},
/* (176) slimit_opt ::= SLIMIT signed SOFFSET signed */
{
256
,
-
4
},
/* (177) slimit_opt ::= SLIMIT signed COMMA signed */
{
249
,
0
},
/* (178) where_opt ::= */
{
249
,
-
2
},
/* (179) where_opt ::= WHERE expr */
{
260
,
-
3
},
/* (180) expr ::= LP expr RP */
{
260
,
-
1
},
/* (181) expr ::= ID */
{
260
,
-
3
},
/* (182) expr ::= ID DOT ID */
{
260
,
-
3
},
/* (183) expr ::= ID DOT STAR */
{
260
,
-
1
},
/* (184) expr ::= INTEGER */
{
260
,
-
2
},
/* (185) expr ::= MINUS INTEGER */
{
260
,
-
2
},
/* (186) expr ::= PLUS INTEGER */
{
260
,
-
1
},
/* (187) expr ::= FLOAT */
{
260
,
-
2
},
/* (188) expr ::= MINUS FLOAT */
{
260
,
-
2
},
/* (189) expr ::= PLUS FLOAT */
{
260
,
-
1
},
/* (190) expr ::= STRING */
{
260
,
-
1
},
/* (191) expr ::= NOW */
{
260
,
-
1
},
/* (192) expr ::= VARIABLE */
{
260
,
-
1
},
/* (193) expr ::= BOOL */
{
260
,
-
4
},
/* (194) expr ::= ID LP exprlist RP */
{
260
,
-
4
},
/* (195) expr ::= ID LP STAR RP */
{
260
,
-
3
},
/* (196) expr ::= expr AND expr */
{
260
,
-
3
},
/* (197) expr ::= expr OR expr */
{
260
,
-
3
},
/* (198) expr ::= expr LT expr */
{
260
,
-
3
},
/* (199) expr ::= expr GT expr */
{
260
,
-
3
},
/* (200) expr ::= expr LE expr */
{
260
,
-
3
},
/* (201) expr ::= expr GE expr */
{
260
,
-
3
},
/* (202) expr ::= expr NE expr */
{
260
,
-
3
},
/* (203) expr ::= expr EQ expr */
{
260
,
-
3
},
/* (204) expr ::= expr PLUS expr */
{
260
,
-
3
},
/* (205) expr ::= expr MINUS expr */
{
260
,
-
3
},
/* (206) expr ::= expr STAR expr */
{
260
,
-
3
},
/* (207) expr ::= expr SLASH expr */
{
260
,
-
3
},
/* (208) expr ::= expr REM expr */
{
260
,
-
3
},
/* (209) expr ::= expr LIKE expr */
{
260
,
-
5
},
/* (210) expr ::= expr IN LP exprlist RP */
{
269
,
-
3
},
/* (211) exprlist ::= exprlist COMMA expritem */
{
269
,
-
1
},
/* (212) exprlist ::= expritem */
{
270
,
-
1
},
/* (213) expritem ::= expr */
{
270
,
0
},
/* (214) expritem ::= */
{
208
,
-
3
},
/* (215) cmd ::= RESET QUERY CACHE */
{
208
,
-
7
},
/* (216) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{
208
,
-
7
},
/* (217) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{
208
,
-
7
},
/* (218) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
208
,
-
7
},
/* (219) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{
208
,
-
8
},
/* (220) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{
208
,
-
9
},
/* (221) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{
208
,
-
3
},
/* (222) cmd ::= KILL CONNECTION INTEGER */
{
208
,
-
5
},
/* (223) cmd ::= KILL STREAM INTEGER COLON INTEGER */
{
208
,
-
5
},
/* (224) cmd ::= KILL QUERY INTEGER COLON INTEGER */
};
static
void
yy_accept
(
yyParser
*
);
/* Forward Declaration */
...
...
@@ -2139,13 +2128,13 @@ static void yy_reduce(
{
setDCLSQLElems
(
pInfo
,
TSDB_SQL_CFG_LOCAL
,
2
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
break
;
case
38
:
/* cmd ::= ALTER DATABASE ids alter_db_optr */
{
SStrToken
t
=
{
0
};
setCreateDBSQL
(
pInfo
,
TSDB_SQL_ALTER_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
26
8
,
&
t
);}
{
SStrToken
t
=
{
0
};
setCreateDBSQL
(
pInfo
,
TSDB_SQL_ALTER_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
15
8
,
&
t
);}
break
;
case
39
:
/* cmd ::= ALTER ACCOUNT ids acct_optr */
{
setCreateAcctSQL
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
,
&
yymsp
[
0
].
minor
.
yy
149
);}
{
setCreateAcctSQL
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
,
&
yymsp
[
0
].
minor
.
yy
73
);}
break
;
case
40
:
/* cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{
setCreateAcctSQL
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
149
);}
{
setCreateAcctSQL
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
73
);}
break
;
case
41
:
/* ids ::= ID */
case
42
:
/* ids ::= STRING */
yytestcase
(
yyruleno
==
42
);
...
...
@@ -2166,10 +2155,10 @@ static void yy_reduce(
{
setDCLSQLElems
(
pInfo
,
TSDB_SQL_CREATE_DNODE
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);}
break
;
case
48
:
/* cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{
setCreateAcctSQL
(
pInfo
,
TSDB_SQL_CREATE_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
149
);}
{
setCreateAcctSQL
(
pInfo
,
TSDB_SQL_CREATE_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
73
);}
break
;
case
49
:
/* cmd ::= CREATE DATABASE ifnotexists ids db_optr */
{
setCreateDBSQL
(
pInfo
,
TSDB_SQL_CREATE_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
26
8
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
{
setCreateDBSQL
(
pInfo
,
TSDB_SQL_CREATE_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy
15
8
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
break
;
case
50
:
/* cmd ::= CREATE USER ids PASS ids */
{
setCreateUserSQL
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);}
...
...
@@ -2198,562 +2187,556 @@ static void yy_reduce(
break
;
case
69
:
/* acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{
yylhsminor
.
yy
149
.
maxUsers
=
(
yymsp
[
-
2
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
2
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
149
.
maxDbs
=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
3
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
149
.
maxTimeSeries
=
(
yymsp
[
-
7
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
7
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
149
.
maxStreams
=
(
yymsp
[
-
5
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
5
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
149
.
maxPointsPerSecond
=
(
yymsp
[
-
8
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
8
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
149
.
maxStorage
=
(
yymsp
[
-
6
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
6
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy
149
.
maxQueryTime
=
(
yymsp
[
-
4
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
4
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy
149
.
maxConnections
=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
1
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
149
.
stat
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
-
8
].
minor
.
yy
149
=
yylhsminor
.
yy149
;
yylhsminor
.
yy
73
.
maxUsers
=
(
yymsp
[
-
2
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
2
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
73
.
maxDbs
=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
3
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
73
.
maxTimeSeries
=
(
yymsp
[
-
7
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
7
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
73
.
maxStreams
=
(
yymsp
[
-
5
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
5
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
73
.
maxPointsPerSecond
=
(
yymsp
[
-
8
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
8
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
73
.
maxStorage
=
(
yymsp
[
-
6
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
6
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy
73
.
maxQueryTime
=
(
yymsp
[
-
4
].
minor
.
yy0
.
n
>
0
)
?
strtoll
(
yymsp
[
-
4
].
minor
.
yy0
.
z
,
NULL
,
10
)
:-
1
;
yylhsminor
.
yy
73
.
maxConnections
=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
1
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy
73
.
stat
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
-
8
].
minor
.
yy
73
=
yylhsminor
.
yy73
;
break
;
case
70
:
/* keep ::= KEEP tagitemlist */
{
yymsp
[
-
1
].
minor
.
yy498
=
yymsp
[
0
].
minor
.
yy498
;
}
break
;
case
71
:
/* tables ::= MAXTABLES INTEGER */
case
72
:
/* cache ::= CACHE INTEGER */
yytestcase
(
yyruleno
==
72
);
case
73
:
/* replica ::= REPLICA INTEGER */
yytestcase
(
yyruleno
==
73
);
case
74
:
/* quorum ::= QUORUM INTEGER */
yytestcase
(
yyruleno
==
74
);
case
75
:
/* days ::= DAYS INTEGER */
yytestcase
(
yyruleno
==
75
);
case
76
:
/* minrows ::= MINROWS INTEGER */
yytestcase
(
yyruleno
==
76
);
case
77
:
/* maxrows ::= MAXROWS INTEGER */
yytestcase
(
yyruleno
==
77
);
case
78
:
/* blocks ::= BLOCKS INTEGER */
yytestcase
(
yyruleno
==
78
);
case
79
:
/* ctime ::= CTIME INTEGER */
yytestcase
(
yyruleno
==
79
);
case
80
:
/* wal ::= WAL INTEGER */
yytestcase
(
yyruleno
==
80
);
case
81
:
/* fsync ::= FSYNC INTEGER */
yytestcase
(
yyruleno
==
81
);
case
82
:
/* comp ::= COMP INTEGER */
yytestcase
(
yyruleno
==
82
);
case
83
:
/* prec ::= PRECISION STRING */
yytestcase
(
yyruleno
==
83
);
{
yymsp
[
-
1
].
minor
.
yy494
=
yymsp
[
0
].
minor
.
yy494
;
}
break
;
case
71
:
/* cache ::= CACHE INTEGER */
case
72
:
/* replica ::= REPLICA INTEGER */
yytestcase
(
yyruleno
==
72
);
case
73
:
/* quorum ::= QUORUM INTEGER */
yytestcase
(
yyruleno
==
73
);
case
74
:
/* days ::= DAYS INTEGER */
yytestcase
(
yyruleno
==
74
);
case
75
:
/* minrows ::= MINROWS INTEGER */
yytestcase
(
yyruleno
==
75
);
case
76
:
/* maxrows ::= MAXROWS INTEGER */
yytestcase
(
yyruleno
==
76
);
case
77
:
/* blocks ::= BLOCKS INTEGER */
yytestcase
(
yyruleno
==
77
);
case
78
:
/* ctime ::= CTIME INTEGER */
yytestcase
(
yyruleno
==
78
);
case
79
:
/* wal ::= WAL INTEGER */
yytestcase
(
yyruleno
==
79
);
case
80
:
/* fsync ::= FSYNC INTEGER */
yytestcase
(
yyruleno
==
80
);
case
81
:
/* comp ::= COMP INTEGER */
yytestcase
(
yyruleno
==
81
);
case
82
:
/* prec ::= PRECISION STRING */
yytestcase
(
yyruleno
==
82
);
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
break
;
case
84
:
/* db_optr ::= */
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy268
);}
break
;
case
85
:
/* db_optr ::= db_optr tables */
case
102
:
/* alter_db_optr ::= alter_db_optr tables */
yytestcase
(
yyruleno
==
102
);
{
yylhsminor
.
yy268
=
yymsp
[
-
1
].
minor
.
yy268
;
yylhsminor
.
yy268
.
maxTablesPerVnode
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy268
=
yylhsminor
.
yy268
;
break
;
case
86
:
/* db_optr ::= db_optr cache */
{
yylhsminor
.
yy268
=
yymsp
[
-
1
].
minor
.
yy268
;
yylhsminor
.
yy268
.
cacheBlockSize
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy268
=
yylhsminor
.
yy268
;
break
;
case
87
:
/* db_optr ::= db_optr replica */
case
100
:
/* alter_db_optr ::= alter_db_optr replica */
yytestcase
(
yyruleno
==
100
);
{
yylhsminor
.
yy268
=
yymsp
[
-
1
].
minor
.
yy268
;
yylhsminor
.
yy268
.
replica
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy268
=
yylhsminor
.
yy268
;
break
;
case
88
:
/* db_optr ::= db_optr quorum */
case
101
:
/* alter_db_optr ::= alter_db_optr quorum */
yytestcase
(
yyruleno
==
101
);
{
yylhsminor
.
yy268
=
yymsp
[
-
1
].
minor
.
yy268
;
yylhsminor
.
yy268
.
quorum
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy268
=
yylhsminor
.
yy268
;
break
;
case
89
:
/* db_optr ::= db_optr days */
{
yylhsminor
.
yy268
=
yymsp
[
-
1
].
minor
.
yy268
;
yylhsminor
.
yy268
.
daysPerFile
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy268
=
yylhsminor
.
yy268
;
break
;
case
90
:
/* db_optr ::= db_optr minrows */
{
yylhsminor
.
yy268
=
yymsp
[
-
1
].
minor
.
yy268
;
yylhsminor
.
yy268
.
minRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy268
=
yylhsminor
.
yy268
;
break
;
case
91
:
/* db_optr ::= db_optr maxrows */
{
yylhsminor
.
yy268
=
yymsp
[
-
1
].
minor
.
yy268
;
yylhsminor
.
yy268
.
maxRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy268
=
yylhsminor
.
yy268
;
break
;
case
92
:
/* db_optr ::= db_optr blocks */
case
104
:
/* alter_db_optr ::= alter_db_optr blocks */
yytestcase
(
yyruleno
==
104
);
{
yylhsminor
.
yy268
=
yymsp
[
-
1
].
minor
.
yy268
;
yylhsminor
.
yy268
.
numOfBlocks
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy268
=
yylhsminor
.
yy268
;
break
;
case
93
:
/* db_optr ::= db_optr ctime */
{
yylhsminor
.
yy268
=
yymsp
[
-
1
].
minor
.
yy268
;
yylhsminor
.
yy268
.
commitTime
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy268
=
yylhsminor
.
yy268
;
break
;
case
94
:
/* db_optr ::= db_optr wal */
case
106
:
/* alter_db_optr ::= alter_db_optr wal */
yytestcase
(
yyruleno
==
106
);
{
yylhsminor
.
yy268
=
yymsp
[
-
1
].
minor
.
yy268
;
yylhsminor
.
yy268
.
walLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy268
=
yylhsminor
.
yy268
;
break
;
case
95
:
/* db_optr ::= db_optr fsync */
case
107
:
/* alter_db_optr ::= alter_db_optr fsync */
yytestcase
(
yyruleno
==
107
);
{
yylhsminor
.
yy268
=
yymsp
[
-
1
].
minor
.
yy268
;
yylhsminor
.
yy268
.
fsyncPeriod
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy268
=
yylhsminor
.
yy268
;
break
;
case
96
:
/* db_optr ::= db_optr comp */
case
105
:
/* alter_db_optr ::= alter_db_optr comp */
yytestcase
(
yyruleno
==
105
);
{
yylhsminor
.
yy268
=
yymsp
[
-
1
].
minor
.
yy268
;
yylhsminor
.
yy268
.
compressionLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy268
=
yylhsminor
.
yy268
;
break
;
case
97
:
/* db_optr ::= db_optr prec */
{
yylhsminor
.
yy268
=
yymsp
[
-
1
].
minor
.
yy268
;
yylhsminor
.
yy268
.
precision
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
-
1
].
minor
.
yy268
=
yylhsminor
.
yy268
;
break
;
case
98
:
/* db_optr ::= db_optr keep */
case
103
:
/* alter_db_optr ::= alter_db_optr keep */
yytestcase
(
yyruleno
==
103
);
{
yylhsminor
.
yy268
=
yymsp
[
-
1
].
minor
.
yy268
;
yylhsminor
.
yy268
.
keep
=
yymsp
[
0
].
minor
.
yy498
;
}
yymsp
[
-
1
].
minor
.
yy268
=
yylhsminor
.
yy268
;
break
;
case
99
:
/* alter_db_optr ::= */
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy268
);}
break
;
case
108
:
/* typename ::= ids */
case
83
:
/* db_optr ::= */
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy158
);}
break
;
case
84
:
/* db_optr ::= db_optr cache */
{
yylhsminor
.
yy158
=
yymsp
[
-
1
].
minor
.
yy158
;
yylhsminor
.
yy158
.
cacheBlockSize
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy158
=
yylhsminor
.
yy158
;
break
;
case
85
:
/* db_optr ::= db_optr replica */
case
98
:
/* alter_db_optr ::= alter_db_optr replica */
yytestcase
(
yyruleno
==
98
);
{
yylhsminor
.
yy158
=
yymsp
[
-
1
].
minor
.
yy158
;
yylhsminor
.
yy158
.
replica
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy158
=
yylhsminor
.
yy158
;
break
;
case
86
:
/* db_optr ::= db_optr quorum */
case
99
:
/* alter_db_optr ::= alter_db_optr quorum */
yytestcase
(
yyruleno
==
99
);
{
yylhsminor
.
yy158
=
yymsp
[
-
1
].
minor
.
yy158
;
yylhsminor
.
yy158
.
quorum
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy158
=
yylhsminor
.
yy158
;
break
;
case
87
:
/* db_optr ::= db_optr days */
{
yylhsminor
.
yy158
=
yymsp
[
-
1
].
minor
.
yy158
;
yylhsminor
.
yy158
.
daysPerFile
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy158
=
yylhsminor
.
yy158
;
break
;
case
88
:
/* db_optr ::= db_optr minrows */
{
yylhsminor
.
yy158
=
yymsp
[
-
1
].
minor
.
yy158
;
yylhsminor
.
yy158
.
minRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy158
=
yylhsminor
.
yy158
;
break
;
case
89
:
/* db_optr ::= db_optr maxrows */
{
yylhsminor
.
yy158
=
yymsp
[
-
1
].
minor
.
yy158
;
yylhsminor
.
yy158
.
maxRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy158
=
yylhsminor
.
yy158
;
break
;
case
90
:
/* db_optr ::= db_optr blocks */
case
101
:
/* alter_db_optr ::= alter_db_optr blocks */
yytestcase
(
yyruleno
==
101
);
{
yylhsminor
.
yy158
=
yymsp
[
-
1
].
minor
.
yy158
;
yylhsminor
.
yy158
.
numOfBlocks
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy158
=
yylhsminor
.
yy158
;
break
;
case
91
:
/* db_optr ::= db_optr ctime */
{
yylhsminor
.
yy158
=
yymsp
[
-
1
].
minor
.
yy158
;
yylhsminor
.
yy158
.
commitTime
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy158
=
yylhsminor
.
yy158
;
break
;
case
92
:
/* db_optr ::= db_optr wal */
case
103
:
/* alter_db_optr ::= alter_db_optr wal */
yytestcase
(
yyruleno
==
103
);
{
yylhsminor
.
yy158
=
yymsp
[
-
1
].
minor
.
yy158
;
yylhsminor
.
yy158
.
walLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy158
=
yylhsminor
.
yy158
;
break
;
case
93
:
/* db_optr ::= db_optr fsync */
case
104
:
/* alter_db_optr ::= alter_db_optr fsync */
yytestcase
(
yyruleno
==
104
);
{
yylhsminor
.
yy158
=
yymsp
[
-
1
].
minor
.
yy158
;
yylhsminor
.
yy158
.
fsyncPeriod
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy158
=
yylhsminor
.
yy158
;
break
;
case
94
:
/* db_optr ::= db_optr comp */
case
102
:
/* alter_db_optr ::= alter_db_optr comp */
yytestcase
(
yyruleno
==
102
);
{
yylhsminor
.
yy158
=
yymsp
[
-
1
].
minor
.
yy158
;
yylhsminor
.
yy158
.
compressionLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
-
1
].
minor
.
yy158
=
yylhsminor
.
yy158
;
break
;
case
95
:
/* db_optr ::= db_optr prec */
{
yylhsminor
.
yy158
=
yymsp
[
-
1
].
minor
.
yy158
;
yylhsminor
.
yy158
.
precision
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
-
1
].
minor
.
yy158
=
yylhsminor
.
yy158
;
break
;
case
96
:
/* db_optr ::= db_optr keep */
case
100
:
/* alter_db_optr ::= alter_db_optr keep */
yytestcase
(
yyruleno
==
100
);
{
yylhsminor
.
yy158
=
yymsp
[
-
1
].
minor
.
yy158
;
yylhsminor
.
yy158
.
keep
=
yymsp
[
0
].
minor
.
yy494
;
}
yymsp
[
-
1
].
minor
.
yy158
=
yylhsminor
.
yy158
;
break
;
case
97
:
/* alter_db_optr ::= */
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy158
);}
break
;
case
105
:
/* typename ::= ids */
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tSQLSetColumnType
(
&
yylhsminor
.
yy
223
,
&
yymsp
[
0
].
minor
.
yy0
);
tSQLSetColumnType
(
&
yylhsminor
.
yy
181
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
223
=
yylhsminor
.
yy223
;
yymsp
[
0
].
minor
.
yy
181
=
yylhsminor
.
yy181
;
break
;
case
10
9
:
/* typename ::= ids LP signed RP */
case
10
6
:
/* typename ::= ids LP signed RP */
{
if
(
yymsp
[
-
1
].
minor
.
yy2
07
<=
0
)
{
if
(
yymsp
[
-
1
].
minor
.
yy2
71
<=
0
)
{
yymsp
[
-
3
].
minor
.
yy0
.
type
=
0
;
tSQLSetColumnType
(
&
yylhsminor
.
yy
223
,
&
yymsp
[
-
3
].
minor
.
yy0
);
tSQLSetColumnType
(
&
yylhsminor
.
yy
181
,
&
yymsp
[
-
3
].
minor
.
yy0
);
}
else
{
yymsp
[
-
3
].
minor
.
yy0
.
type
=
-
yymsp
[
-
1
].
minor
.
yy2
07
;
// negative value of name length
tSQLSetColumnType
(
&
yylhsminor
.
yy
223
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yymsp
[
-
3
].
minor
.
yy0
.
type
=
-
yymsp
[
-
1
].
minor
.
yy2
71
;
// negative value of name length
tSQLSetColumnType
(
&
yylhsminor
.
yy
181
,
&
yymsp
[
-
3
].
minor
.
yy0
);
}
}
yymsp
[
-
3
].
minor
.
yy
223
=
yylhsminor
.
yy223
;
yymsp
[
-
3
].
minor
.
yy
181
=
yylhsminor
.
yy181
;
break
;
case
1
10
:
/* signed ::= INTEGER */
{
yylhsminor
.
yy2
07
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
0
].
minor
.
yy2
07
=
yylhsminor
.
yy207
;
case
1
07
:
/* signed ::= INTEGER */
{
yylhsminor
.
yy2
71
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
yymsp
[
0
].
minor
.
yy2
71
=
yylhsminor
.
yy271
;
break
;
case
1
11
:
/* signed ::= PLUS INTEGER */
{
yymsp
[
-
1
].
minor
.
yy2
07
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
case
1
08
:
/* signed ::= PLUS INTEGER */
{
yymsp
[
-
1
].
minor
.
yy2
71
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
break
;
case
1
12
:
/* signed ::= MINUS INTEGER */
{
yymsp
[
-
1
].
minor
.
yy2
07
=
-
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);}
case
1
09
:
/* signed ::= MINUS INTEGER */
{
yymsp
[
-
1
].
minor
.
yy2
71
=
-
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);}
break
;
case
11
3
:
/* cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */
case
11
0
:
/* cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
yymsp
[
-
1
].
minor
.
yy0
.
n
;
setCreatedTableName
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
-
3
].
minor
.
yy0
);
}
break
;
case
11
4
:
/* create_table_args ::= LP columnlist RP */
case
11
1
:
/* create_table_args ::= LP columnlist RP */
{
yymsp
[
-
2
].
minor
.
yy
470
=
tSetCreateSQLElems
(
yymsp
[
-
1
].
minor
.
yy523
,
NULL
,
NULL
,
NULL
,
NULL
,
TSQL_CREATE_TABLE
);
setSQLInfo
(
pInfo
,
yymsp
[
-
2
].
minor
.
yy
470
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yymsp
[
-
2
].
minor
.
yy
374
=
tSetCreateSQLElems
(
yymsp
[
-
1
].
minor
.
yy449
,
NULL
,
NULL
,
NULL
,
NULL
,
TSQL_CREATE_TABLE
);
setSQLInfo
(
pInfo
,
yymsp
[
-
2
].
minor
.
yy
374
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
}
break
;
case
11
5
:
/* create_table_args ::= LP columnlist RP TAGS LP columnlist RP */
case
11
2
:
/* create_table_args ::= LP columnlist RP TAGS LP columnlist RP */
{
yymsp
[
-
6
].
minor
.
yy
470
=
tSetCreateSQLElems
(
yymsp
[
-
5
].
minor
.
yy523
,
yymsp
[
-
1
].
minor
.
yy523
,
NULL
,
NULL
,
NULL
,
TSQL_CREATE_STABLE
);
setSQLInfo
(
pInfo
,
yymsp
[
-
6
].
minor
.
yy
470
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yymsp
[
-
6
].
minor
.
yy
374
=
tSetCreateSQLElems
(
yymsp
[
-
5
].
minor
.
yy449
,
yymsp
[
-
1
].
minor
.
yy449
,
NULL
,
NULL
,
NULL
,
TSQL_CREATE_STABLE
);
setSQLInfo
(
pInfo
,
yymsp
[
-
6
].
minor
.
yy
374
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
}
break
;
case
11
6
:
/* create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP */
case
11
3
:
/* create_table_args ::= USING ids cpxName TAGS LP tagitemlist RP */
{
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
yymsp
[
-
6
].
minor
.
yy
470
=
tSetCreateSQLElems
(
NULL
,
NULL
,
&
yymsp
[
-
5
].
minor
.
yy0
,
yymsp
[
-
1
].
minor
.
yy498
,
NULL
,
TSQL_CREATE_TABLE_FROM_STABLE
);
setSQLInfo
(
pInfo
,
yymsp
[
-
6
].
minor
.
yy
470
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yymsp
[
-
6
].
minor
.
yy
374
=
tSetCreateSQLElems
(
NULL
,
NULL
,
&
yymsp
[
-
5
].
minor
.
yy0
,
yymsp
[
-
1
].
minor
.
yy494
,
NULL
,
TSQL_CREATE_TABLE_FROM_STABLE
);
setSQLInfo
(
pInfo
,
yymsp
[
-
6
].
minor
.
yy
374
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
}
break
;
case
11
7
:
/* create_table_args ::= AS select */
case
11
4
:
/* create_table_args ::= AS select */
{
yymsp
[
-
1
].
minor
.
yy
470
=
tSetCreateSQLElems
(
NULL
,
NULL
,
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy414
,
TSQL_CREATE_STREAM
);
setSQLInfo
(
pInfo
,
yymsp
[
-
1
].
minor
.
yy
470
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
yymsp
[
-
1
].
minor
.
yy
374
=
tSetCreateSQLElems
(
NULL
,
NULL
,
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy150
,
TSQL_CREATE_STREAM
);
setSQLInfo
(
pInfo
,
yymsp
[
-
1
].
minor
.
yy
374
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
}
break
;
case
11
8
:
/* columnlist ::= columnlist COMMA column */
{
yylhsminor
.
yy
523
=
tFieldListAppend
(
yymsp
[
-
2
].
minor
.
yy523
,
&
yymsp
[
0
].
minor
.
yy223
);
}
yymsp
[
-
2
].
minor
.
yy
523
=
yylhsminor
.
yy523
;
case
11
5
:
/* columnlist ::= columnlist COMMA column */
{
yylhsminor
.
yy
449
=
tFieldListAppend
(
yymsp
[
-
2
].
minor
.
yy449
,
&
yymsp
[
0
].
minor
.
yy181
);
}
yymsp
[
-
2
].
minor
.
yy
449
=
yylhsminor
.
yy449
;
break
;
case
11
9
:
/* columnlist ::= column */
{
yylhsminor
.
yy
523
=
tFieldListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy223
);}
yymsp
[
0
].
minor
.
yy
523
=
yylhsminor
.
yy523
;
case
11
6
:
/* columnlist ::= column */
{
yylhsminor
.
yy
449
=
tFieldListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy181
);}
yymsp
[
0
].
minor
.
yy
449
=
yylhsminor
.
yy449
;
break
;
case
1
20
:
/* column ::= ids typename */
case
1
17
:
/* column ::= ids typename */
{
tSQLSetColumnInfo
(
&
yylhsminor
.
yy
223
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy223
);
tSQLSetColumnInfo
(
&
yylhsminor
.
yy
181
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy181
);
}
yymsp
[
-
1
].
minor
.
yy
223
=
yylhsminor
.
yy223
;
yymsp
[
-
1
].
minor
.
yy
181
=
yylhsminor
.
yy181
;
break
;
case
1
21
:
/* tagitemlist ::= tagitemlist COMMA tagitem */
{
yylhsminor
.
yy49
8
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy498
,
&
yymsp
[
0
].
minor
.
yy134
,
-
1
);
}
yymsp
[
-
2
].
minor
.
yy49
8
=
yylhsminor
.
yy498
;
case
1
18
:
/* tagitemlist ::= tagitemlist COMMA tagitem */
{
yylhsminor
.
yy49
4
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy494
,
&
yymsp
[
0
].
minor
.
yy312
,
-
1
);
}
yymsp
[
-
2
].
minor
.
yy49
4
=
yylhsminor
.
yy494
;
break
;
case
1
22
:
/* tagitemlist ::= tagitem */
{
yylhsminor
.
yy49
8
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy134
,
-
1
);
}
yymsp
[
0
].
minor
.
yy49
8
=
yylhsminor
.
yy498
;
case
1
19
:
/* tagitemlist ::= tagitem */
{
yylhsminor
.
yy49
4
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy312
,
-
1
);
}
yymsp
[
0
].
minor
.
yy49
4
=
yylhsminor
.
yy494
;
break
;
case
12
3
:
/* tagitem ::= INTEGER */
case
12
4
:
/* tagitem ::= FLOAT */
yytestcase
(
yyruleno
==
124
);
case
12
5
:
/* tagitem ::= STRING */
yytestcase
(
yyruleno
==
125
);
case
12
6
:
/* tagitem ::= BOOL */
yytestcase
(
yyruleno
==
126
);
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy
134
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
134
=
yylhsminor
.
yy134
;
case
12
0
:
/* tagitem ::= INTEGER */
case
12
1
:
/* tagitem ::= FLOAT */
yytestcase
(
yyruleno
==
121
);
case
12
2
:
/* tagitem ::= STRING */
yytestcase
(
yyruleno
==
122
);
case
12
3
:
/* tagitem ::= BOOL */
yytestcase
(
yyruleno
==
123
);
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy
312
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
312
=
yylhsminor
.
yy312
;
break
;
case
12
7
:
/* tagitem ::= NULL */
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tVariantCreate
(
&
yylhsminor
.
yy
134
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
134
=
yylhsminor
.
yy134
;
case
12
4
:
/* tagitem ::= NULL */
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tVariantCreate
(
&
yylhsminor
.
yy
312
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
0
].
minor
.
yy
312
=
yylhsminor
.
yy312
;
break
;
case
12
8
:
/* tagitem ::= MINUS INTEGER */
case
12
9
:
/* tagitem ::= MINUS FLOAT */
yytestcase
(
yyruleno
==
129
);
case
1
30
:
/* tagitem ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
130
);
case
1
31
:
/* tagitem ::= PLUS FLOAT */
yytestcase
(
yyruleno
==
131
);
case
12
5
:
/* tagitem ::= MINUS INTEGER */
case
12
6
:
/* tagitem ::= MINUS FLOAT */
yytestcase
(
yyruleno
==
126
);
case
1
27
:
/* tagitem ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
127
);
case
1
28
:
/* tagitem ::= PLUS FLOAT */
yytestcase
(
yyruleno
==
128
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
yymsp
[
0
].
minor
.
yy0
.
type
;
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy
134
,
&
yymsp
[
-
1
].
minor
.
yy0
);
tVariantCreate
(
&
yylhsminor
.
yy
312
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
yymsp
[
-
1
].
minor
.
yy
134
=
yylhsminor
.
yy134
;
yymsp
[
-
1
].
minor
.
yy
312
=
yylhsminor
.
yy312
;
break
;
case
1
32
:
/* select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
case
1
29
:
/* select ::= SELECT selcollist from where_opt interval_opt fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
{
yylhsminor
.
yy
414
=
tSetQuerySQLElems
(
&
yymsp
[
-
11
].
minor
.
yy0
,
yymsp
[
-
10
].
minor
.
yy290
,
yymsp
[
-
9
].
minor
.
yy498
,
yymsp
[
-
8
].
minor
.
yy64
,
yymsp
[
-
4
].
minor
.
yy498
,
yymsp
[
-
3
].
minor
.
yy498
,
&
yymsp
[
-
7
].
minor
.
yy0
,
&
yymsp
[
-
5
].
minor
.
yy0
,
yymsp
[
-
6
].
minor
.
yy498
,
&
yymsp
[
0
].
minor
.
yy216
,
&
yymsp
[
-
1
].
minor
.
yy216
);
yylhsminor
.
yy
150
=
tSetQuerySQLElems
(
&
yymsp
[
-
11
].
minor
.
yy0
,
yymsp
[
-
10
].
minor
.
yy224
,
yymsp
[
-
9
].
minor
.
yy494
,
yymsp
[
-
8
].
minor
.
yy66
,
yymsp
[
-
4
].
minor
.
yy494
,
yymsp
[
-
3
].
minor
.
yy494
,
&
yymsp
[
-
7
].
minor
.
yy0
,
&
yymsp
[
-
5
].
minor
.
yy0
,
yymsp
[
-
6
].
minor
.
yy494
,
&
yymsp
[
0
].
minor
.
yy188
,
&
yymsp
[
-
1
].
minor
.
yy188
);
}
yymsp
[
-
11
].
minor
.
yy
414
=
yylhsminor
.
yy414
;
yymsp
[
-
11
].
minor
.
yy
150
=
yylhsminor
.
yy150
;
break
;
case
13
3
:
/* union ::= select */
{
yylhsminor
.
yy2
31
=
setSubclause
(
NULL
,
yymsp
[
0
].
minor
.
yy414
);
}
yymsp
[
0
].
minor
.
yy2
31
=
yylhsminor
.
yy231
;
case
13
0
:
/* union ::= select */
{
yylhsminor
.
yy2
5
=
setSubclause
(
NULL
,
yymsp
[
0
].
minor
.
yy150
);
}
yymsp
[
0
].
minor
.
yy2
5
=
yylhsminor
.
yy25
;
break
;
case
13
4
:
/* union ::= LP union RP */
{
yymsp
[
-
2
].
minor
.
yy2
31
=
yymsp
[
-
1
].
minor
.
yy231
;
}
case
13
1
:
/* union ::= LP union RP */
{
yymsp
[
-
2
].
minor
.
yy2
5
=
yymsp
[
-
1
].
minor
.
yy25
;
}
break
;
case
13
5
:
/* union ::= union UNION ALL select */
{
yylhsminor
.
yy2
31
=
appendSelectClause
(
yymsp
[
-
3
].
minor
.
yy231
,
yymsp
[
0
].
minor
.
yy414
);
}
yymsp
[
-
3
].
minor
.
yy2
31
=
yylhsminor
.
yy231
;
case
13
2
:
/* union ::= union UNION ALL select */
{
yylhsminor
.
yy2
5
=
appendSelectClause
(
yymsp
[
-
3
].
minor
.
yy25
,
yymsp
[
0
].
minor
.
yy150
);
}
yymsp
[
-
3
].
minor
.
yy2
5
=
yylhsminor
.
yy25
;
break
;
case
13
6
:
/* union ::= union UNION ALL LP select RP */
{
yylhsminor
.
yy2
31
=
appendSelectClause
(
yymsp
[
-
5
].
minor
.
yy231
,
yymsp
[
-
1
].
minor
.
yy414
);
}
yymsp
[
-
5
].
minor
.
yy2
31
=
yylhsminor
.
yy231
;
case
13
3
:
/* union ::= union UNION ALL LP select RP */
{
yylhsminor
.
yy2
5
=
appendSelectClause
(
yymsp
[
-
5
].
minor
.
yy25
,
yymsp
[
-
1
].
minor
.
yy150
);
}
yymsp
[
-
5
].
minor
.
yy2
5
=
yylhsminor
.
yy25
;
break
;
case
13
7
:
/* cmd ::= union */
{
setSQLInfo
(
pInfo
,
yymsp
[
0
].
minor
.
yy2
31
,
NULL
,
TSDB_SQL_SELECT
);
}
case
13
4
:
/* cmd ::= union */
{
setSQLInfo
(
pInfo
,
yymsp
[
0
].
minor
.
yy2
5
,
NULL
,
TSDB_SQL_SELECT
);
}
break
;
case
13
8
:
/* select ::= SELECT selcollist */
case
13
5
:
/* select ::= SELECT selcollist */
{
yylhsminor
.
yy
414
=
tSetQuerySQLElems
(
&
yymsp
[
-
1
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy290
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
yylhsminor
.
yy
150
=
tSetQuerySQLElems
(
&
yymsp
[
-
1
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy224
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
414
=
yylhsminor
.
yy414
;
yymsp
[
-
1
].
minor
.
yy
150
=
yylhsminor
.
yy150
;
break
;
case
13
9
:
/* sclp ::= selcollist COMMA */
{
yylhsminor
.
yy2
90
=
yymsp
[
-
1
].
minor
.
yy290
;}
yymsp
[
-
1
].
minor
.
yy2
90
=
yylhsminor
.
yy290
;
case
13
6
:
/* sclp ::= selcollist COMMA */
{
yylhsminor
.
yy2
24
=
yymsp
[
-
1
].
minor
.
yy224
;}
yymsp
[
-
1
].
minor
.
yy2
24
=
yylhsminor
.
yy224
;
break
;
case
1
40
:
/* sclp ::= */
{
yymsp
[
1
].
minor
.
yy2
90
=
0
;}
case
1
37
:
/* sclp ::= */
{
yymsp
[
1
].
minor
.
yy2
24
=
0
;}
break
;
case
1
41
:
/* selcollist ::= sclp expr as */
case
1
38
:
/* selcollist ::= sclp expr as */
{
yylhsminor
.
yy2
90
=
tSQLExprListAppend
(
yymsp
[
-
2
].
minor
.
yy290
,
yymsp
[
-
1
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy0
.
n
?&
yymsp
[
0
].
minor
.
yy0
:
0
);
yylhsminor
.
yy2
24
=
tSQLExprListAppend
(
yymsp
[
-
2
].
minor
.
yy224
,
yymsp
[
-
1
].
minor
.
yy66
,
yymsp
[
0
].
minor
.
yy0
.
n
?&
yymsp
[
0
].
minor
.
yy0
:
0
);
}
yymsp
[
-
2
].
minor
.
yy2
90
=
yylhsminor
.
yy290
;
yymsp
[
-
2
].
minor
.
yy2
24
=
yylhsminor
.
yy224
;
break
;
case
1
42
:
/* selcollist ::= sclp STAR */
case
1
39
:
/* selcollist ::= sclp STAR */
{
tSQLExpr
*
pNode
=
tSQLExprIdValueCreate
(
NULL
,
TK_ALL
);
yylhsminor
.
yy2
90
=
tSQLExprListAppend
(
yymsp
[
-
1
].
minor
.
yy290
,
pNode
,
0
);
yylhsminor
.
yy2
24
=
tSQLExprListAppend
(
yymsp
[
-
1
].
minor
.
yy224
,
pNode
,
0
);
}
yymsp
[
-
1
].
minor
.
yy2
90
=
yylhsminor
.
yy290
;
yymsp
[
-
1
].
minor
.
yy2
24
=
yylhsminor
.
yy224
;
break
;
case
14
3
:
/* as ::= AS ids */
case
14
0
:
/* as ::= AS ids */
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
break
;
case
14
4
:
/* as ::= ids */
case
14
1
:
/* as ::= ids */
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
break
;
case
14
5
:
/* as ::= */
case
14
2
:
/* as ::= */
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
}
break
;
case
14
6
:
/* from ::= FROM tablelist */
{
yymsp
[
-
1
].
minor
.
yy49
8
=
yymsp
[
0
].
minor
.
yy498
;}
case
14
3
:
/* from ::= FROM tablelist */
{
yymsp
[
-
1
].
minor
.
yy49
4
=
yymsp
[
0
].
minor
.
yy494
;}
break
;
case
14
7
:
/* tablelist ::= ids cpxName */
case
14
4
:
/* tablelist ::= ids cpxName */
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yylhsminor
.
yy49
8
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
yylhsminor
.
yy49
8
=
tVariantListAppendToken
(
yylhsminor
.
yy498
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
// table alias name
yylhsminor
.
yy49
4
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
yylhsminor
.
yy49
4
=
tVariantListAppendToken
(
yylhsminor
.
yy494
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
// table alias name
}
yymsp
[
-
1
].
minor
.
yy49
8
=
yylhsminor
.
yy498
;
yymsp
[
-
1
].
minor
.
yy49
4
=
yylhsminor
.
yy494
;
break
;
case
14
8
:
/* tablelist ::= ids cpxName ids */
case
14
5
:
/* tablelist ::= ids cpxName ids */
{
toTSDBType
(
yymsp
[
-
2
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
yymsp
[
-
1
].
minor
.
yy0
.
n
;
yylhsminor
.
yy49
8
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
-
1
);
yylhsminor
.
yy49
8
=
tVariantListAppendToken
(
yylhsminor
.
yy498
,
&
yymsp
[
0
].
minor
.
yy0
,
-
1
);
yylhsminor
.
yy49
4
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
-
1
);
yylhsminor
.
yy49
4
=
tVariantListAppendToken
(
yylhsminor
.
yy494
,
&
yymsp
[
0
].
minor
.
yy0
,
-
1
);
}
yymsp
[
-
2
].
minor
.
yy49
8
=
yylhsminor
.
yy498
;
yymsp
[
-
2
].
minor
.
yy49
4
=
yylhsminor
.
yy494
;
break
;
case
14
9
:
/* tablelist ::= tablelist COMMA ids cpxName */
case
14
6
:
/* tablelist ::= tablelist COMMA ids cpxName */
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yylhsminor
.
yy49
8
=
tVariantListAppendToken
(
yymsp
[
-
3
].
minor
.
yy498
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
yylhsminor
.
yy49
8
=
tVariantListAppendToken
(
yylhsminor
.
yy498
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
yylhsminor
.
yy49
4
=
tVariantListAppendToken
(
yymsp
[
-
3
].
minor
.
yy494
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
yylhsminor
.
yy49
4
=
tVariantListAppendToken
(
yylhsminor
.
yy494
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
}
yymsp
[
-
3
].
minor
.
yy49
8
=
yylhsminor
.
yy498
;
yymsp
[
-
3
].
minor
.
yy49
4
=
yylhsminor
.
yy494
;
break
;
case
1
50
:
/* tablelist ::= tablelist COMMA ids cpxName ids */
case
1
47
:
/* tablelist ::= tablelist COMMA ids cpxName ids */
{
toTSDBType
(
yymsp
[
-
2
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
yymsp
[
-
1
].
minor
.
yy0
.
n
;
yylhsminor
.
yy49
8
=
tVariantListAppendToken
(
yymsp
[
-
4
].
minor
.
yy498
,
&
yymsp
[
-
2
].
minor
.
yy0
,
-
1
);
yylhsminor
.
yy49
8
=
tVariantListAppendToken
(
yylhsminor
.
yy498
,
&
yymsp
[
0
].
minor
.
yy0
,
-
1
);
yylhsminor
.
yy49
4
=
tVariantListAppendToken
(
yymsp
[
-
4
].
minor
.
yy494
,
&
yymsp
[
-
2
].
minor
.
yy0
,
-
1
);
yylhsminor
.
yy49
4
=
tVariantListAppendToken
(
yylhsminor
.
yy494
,
&
yymsp
[
0
].
minor
.
yy0
,
-
1
);
}
yymsp
[
-
4
].
minor
.
yy49
8
=
yylhsminor
.
yy498
;
yymsp
[
-
4
].
minor
.
yy49
4
=
yylhsminor
.
yy494
;
break
;
case
1
51
:
/* tmvar ::= VARIABLE */
case
1
48
:
/* tmvar ::= VARIABLE */
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;}
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
break
;
case
1
52
:
/* interval_opt ::= INTERVAL LP tmvar RP */
case
15
7
:
/* sliding_opt ::= SLIDING LP tmvar RP */
yytestcase
(
yyruleno
==
157
);
case
1
49
:
/* interval_opt ::= INTERVAL LP tmvar RP */
case
15
4
:
/* sliding_opt ::= SLIDING LP tmvar RP */
yytestcase
(
yyruleno
==
154
);
{
yymsp
[
-
3
].
minor
.
yy0
=
yymsp
[
-
1
].
minor
.
yy0
;
}
break
;
case
15
3
:
/* interval_opt ::= */
case
15
8
:
/* sliding_opt ::= */
yytestcase
(
yyruleno
==
158
);
case
15
0
:
/* interval_opt ::= */
case
15
5
:
/* sliding_opt ::= */
yytestcase
(
yyruleno
==
155
);
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
yymsp
[
1
].
minor
.
yy0
.
z
=
NULL
;
yymsp
[
1
].
minor
.
yy0
.
type
=
0
;
}
break
;
case
15
4
:
/* fill_opt ::= */
{
yymsp
[
1
].
minor
.
yy49
8
=
0
;
}
case
15
1
:
/* fill_opt ::= */
{
yymsp
[
1
].
minor
.
yy49
4
=
0
;
}
break
;
case
15
5
:
/* fill_opt ::= FILL LP ID COMMA tagitemlist RP */
case
15
2
:
/* fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
tVariant
A
=
{
0
};
toTSDBType
(
yymsp
[
-
3
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
A
,
&
yymsp
[
-
3
].
minor
.
yy0
);
tVariantListInsert
(
yymsp
[
-
1
].
minor
.
yy49
8
,
&
A
,
-
1
,
0
);
yymsp
[
-
5
].
minor
.
yy49
8
=
yymsp
[
-
1
].
minor
.
yy498
;
tVariantListInsert
(
yymsp
[
-
1
].
minor
.
yy49
4
,
&
A
,
-
1
,
0
);
yymsp
[
-
5
].
minor
.
yy49
4
=
yymsp
[
-
1
].
minor
.
yy494
;
}
break
;
case
15
6
:
/* fill_opt ::= FILL LP ID RP */
case
15
3
:
/* fill_opt ::= FILL LP ID RP */
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
3
].
minor
.
yy49
8
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
yymsp
[
-
3
].
minor
.
yy49
4
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
}
break
;
case
15
9
:
/* orderby_opt ::= */
case
16
7
:
/* groupby_opt ::= */
yytestcase
(
yyruleno
==
167
);
{
yymsp
[
1
].
minor
.
yy49
8
=
0
;}
case
15
6
:
/* orderby_opt ::= */
case
16
4
:
/* groupby_opt ::= */
yytestcase
(
yyruleno
==
164
);
{
yymsp
[
1
].
minor
.
yy49
4
=
0
;}
break
;
case
1
60
:
/* orderby_opt ::= ORDER BY sortlist */
case
16
8
:
/* groupby_opt ::= GROUP BY grouplist */
yytestcase
(
yyruleno
==
168
);
{
yymsp
[
-
2
].
minor
.
yy49
8
=
yymsp
[
0
].
minor
.
yy498
;}
case
1
57
:
/* orderby_opt ::= ORDER BY sortlist */
case
16
5
:
/* groupby_opt ::= GROUP BY grouplist */
yytestcase
(
yyruleno
==
165
);
{
yymsp
[
-
2
].
minor
.
yy49
4
=
yymsp
[
0
].
minor
.
yy494
;}
break
;
case
1
61
:
/* sortlist ::= sortlist COMMA item sortorder */
case
1
58
:
/* sortlist ::= sortlist COMMA item sortorder */
{
yylhsminor
.
yy49
8
=
tVariantListAppend
(
yymsp
[
-
3
].
minor
.
yy498
,
&
yymsp
[
-
1
].
minor
.
yy134
,
yymsp
[
0
].
minor
.
yy46
);
yylhsminor
.
yy49
4
=
tVariantListAppend
(
yymsp
[
-
3
].
minor
.
yy494
,
&
yymsp
[
-
1
].
minor
.
yy312
,
yymsp
[
0
].
minor
.
yy82
);
}
yymsp
[
-
3
].
minor
.
yy49
8
=
yylhsminor
.
yy498
;
yymsp
[
-
3
].
minor
.
yy49
4
=
yylhsminor
.
yy494
;
break
;
case
1
62
:
/* sortlist ::= item sortorder */
case
1
59
:
/* sortlist ::= item sortorder */
{
yylhsminor
.
yy49
8
=
tVariantListAppend
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy134
,
yymsp
[
0
].
minor
.
yy46
);
yylhsminor
.
yy49
4
=
tVariantListAppend
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy312
,
yymsp
[
0
].
minor
.
yy82
);
}
yymsp
[
-
1
].
minor
.
yy49
8
=
yylhsminor
.
yy498
;
yymsp
[
-
1
].
minor
.
yy49
4
=
yylhsminor
.
yy494
;
break
;
case
16
3
:
/* item ::= ids cpxName */
case
16
0
:
/* item ::= ids cpxName */
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
tVariantCreate
(
&
yylhsminor
.
yy
134
,
&
yymsp
[
-
1
].
minor
.
yy0
);
tVariantCreate
(
&
yylhsminor
.
yy
312
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
yymsp
[
-
1
].
minor
.
yy
134
=
yylhsminor
.
yy134
;
yymsp
[
-
1
].
minor
.
yy
312
=
yylhsminor
.
yy312
;
break
;
case
16
4
:
/* sortorder ::= ASC */
{
yymsp
[
0
].
minor
.
yy
46
=
TSDB_ORDER_ASC
;
}
case
16
1
:
/* sortorder ::= ASC */
{
yymsp
[
0
].
minor
.
yy
82
=
TSDB_ORDER_ASC
;
}
break
;
case
16
5
:
/* sortorder ::= DESC */
{
yymsp
[
0
].
minor
.
yy
46
=
TSDB_ORDER_DESC
;}
case
16
2
:
/* sortorder ::= DESC */
{
yymsp
[
0
].
minor
.
yy
82
=
TSDB_ORDER_DESC
;}
break
;
case
16
6
:
/* sortorder ::= */
{
yymsp
[
1
].
minor
.
yy
46
=
TSDB_ORDER_ASC
;}
case
16
3
:
/* sortorder ::= */
{
yymsp
[
1
].
minor
.
yy
82
=
TSDB_ORDER_ASC
;}
break
;
case
16
9
:
/* grouplist ::= grouplist COMMA item */
case
16
6
:
/* grouplist ::= grouplist COMMA item */
{
yylhsminor
.
yy49
8
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy498
,
&
yymsp
[
0
].
minor
.
yy134
,
-
1
);
yylhsminor
.
yy49
4
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy494
,
&
yymsp
[
0
].
minor
.
yy312
,
-
1
);
}
yymsp
[
-
2
].
minor
.
yy49
8
=
yylhsminor
.
yy498
;
yymsp
[
-
2
].
minor
.
yy49
4
=
yylhsminor
.
yy494
;
break
;
case
1
70
:
/* grouplist ::= item */
case
1
67
:
/* grouplist ::= item */
{
yylhsminor
.
yy49
8
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy134
,
-
1
);
yylhsminor
.
yy49
4
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy312
,
-
1
);
}
yymsp
[
0
].
minor
.
yy49
8
=
yylhsminor
.
yy498
;
yymsp
[
0
].
minor
.
yy49
4
=
yylhsminor
.
yy494
;
break
;
case
1
71
:
/* having_opt ::= */
case
1
81
:
/* where_opt ::= */
yytestcase
(
yyruleno
==
181
);
case
21
7
:
/* expritem ::= */
yytestcase
(
yyruleno
==
217
);
{
yymsp
[
1
].
minor
.
yy6
4
=
0
;}
case
1
68
:
/* having_opt ::= */
case
1
78
:
/* where_opt ::= */
yytestcase
(
yyruleno
==
178
);
case
21
4
:
/* expritem ::= */
yytestcase
(
yyruleno
==
214
);
{
yymsp
[
1
].
minor
.
yy6
6
=
0
;}
break
;
case
1
72
:
/* having_opt ::= HAVING expr */
case
1
82
:
/* where_opt ::= WHERE expr */
yytestcase
(
yyruleno
==
182
);
{
yymsp
[
-
1
].
minor
.
yy6
4
=
yymsp
[
0
].
minor
.
yy64
;}
case
1
69
:
/* having_opt ::= HAVING expr */
case
1
79
:
/* where_opt ::= WHERE expr */
yytestcase
(
yyruleno
==
179
);
{
yymsp
[
-
1
].
minor
.
yy6
6
=
yymsp
[
0
].
minor
.
yy66
;}
break
;
case
17
3
:
/* limit_opt ::= */
case
17
7
:
/* slimit_opt ::= */
yytestcase
(
yyruleno
==
177
);
{
yymsp
[
1
].
minor
.
yy
216
.
limit
=
-
1
;
yymsp
[
1
].
minor
.
yy216
.
offset
=
0
;}
case
17
0
:
/* limit_opt ::= */
case
17
4
:
/* slimit_opt ::= */
yytestcase
(
yyruleno
==
174
);
{
yymsp
[
1
].
minor
.
yy
188
.
limit
=
-
1
;
yymsp
[
1
].
minor
.
yy188
.
offset
=
0
;}
break
;
case
17
4
:
/* limit_opt ::= LIMIT signed */
case
17
8
:
/* slimit_opt ::= SLIMIT signed */
yytestcase
(
yyruleno
==
178
);
{
yymsp
[
-
1
].
minor
.
yy
216
.
limit
=
yymsp
[
0
].
minor
.
yy207
;
yymsp
[
-
1
].
minor
.
yy216
.
offset
=
0
;}
case
17
1
:
/* limit_opt ::= LIMIT signed */
case
17
5
:
/* slimit_opt ::= SLIMIT signed */
yytestcase
(
yyruleno
==
175
);
{
yymsp
[
-
1
].
minor
.
yy
188
.
limit
=
yymsp
[
0
].
minor
.
yy271
;
yymsp
[
-
1
].
minor
.
yy188
.
offset
=
0
;}
break
;
case
17
5
:
/* limit_opt ::= LIMIT signed OFFSET signed */
case
17
9
:
/* slimit_opt ::= SLIMIT signed SOFFSET signed */
yytestcase
(
yyruleno
==
179
);
{
yymsp
[
-
3
].
minor
.
yy
216
.
limit
=
yymsp
[
-
2
].
minor
.
yy207
;
yymsp
[
-
3
].
minor
.
yy216
.
offset
=
yymsp
[
0
].
minor
.
yy207
;}
case
17
2
:
/* limit_opt ::= LIMIT signed OFFSET signed */
case
17
6
:
/* slimit_opt ::= SLIMIT signed SOFFSET signed */
yytestcase
(
yyruleno
==
176
);
{
yymsp
[
-
3
].
minor
.
yy
188
.
limit
=
yymsp
[
-
2
].
minor
.
yy271
;
yymsp
[
-
3
].
minor
.
yy188
.
offset
=
yymsp
[
0
].
minor
.
yy271
;}
break
;
case
17
6
:
/* limit_opt ::= LIMIT signed COMMA signed */
case
1
80
:
/* slimit_opt ::= SLIMIT signed COMMA signed */
yytestcase
(
yyruleno
==
180
);
{
yymsp
[
-
3
].
minor
.
yy
216
.
limit
=
yymsp
[
0
].
minor
.
yy207
;
yymsp
[
-
3
].
minor
.
yy216
.
offset
=
yymsp
[
-
2
].
minor
.
yy207
;}
case
17
3
:
/* limit_opt ::= LIMIT signed COMMA signed */
case
1
77
:
/* slimit_opt ::= SLIMIT signed COMMA signed */
yytestcase
(
yyruleno
==
177
);
{
yymsp
[
-
3
].
minor
.
yy
188
.
limit
=
yymsp
[
0
].
minor
.
yy271
;
yymsp
[
-
3
].
minor
.
yy188
.
offset
=
yymsp
[
-
2
].
minor
.
yy271
;}
break
;
case
18
3
:
/* expr ::= LP expr RP */
{
yymsp
[
-
2
].
minor
.
yy6
4
=
yymsp
[
-
1
].
minor
.
yy64
;
}
case
18
0
:
/* expr ::= LP expr RP */
{
yymsp
[
-
2
].
minor
.
yy6
6
=
yymsp
[
-
1
].
minor
.
yy66
;
}
break
;
case
18
4
:
/* expr ::= ID */
{
yylhsminor
.
yy6
4
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
0
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
18
1
:
/* expr ::= ID */
{
yylhsminor
.
yy6
6
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
0
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
18
5
:
/* expr ::= ID DOT ID */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy6
4
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
18
2
:
/* expr ::= ID DOT ID */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy6
6
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
-
2
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
18
6
:
/* expr ::= ID DOT STAR */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy6
4
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ALL
);}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
18
3
:
/* expr ::= ID DOT STAR */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy6
6
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ALL
);}
yymsp
[
-
2
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
18
7
:
/* expr ::= INTEGER */
{
yylhsminor
.
yy6
4
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
0
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
18
4
:
/* expr ::= INTEGER */
{
yylhsminor
.
yy6
6
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
0
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
18
8
:
/* expr ::= MINUS INTEGER */
case
18
9
:
/* expr ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
189
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy6
4
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
-
1
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
18
5
:
/* expr ::= MINUS INTEGER */
case
18
6
:
/* expr ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
186
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy6
6
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
-
1
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
1
90
:
/* expr ::= FLOAT */
{
yylhsminor
.
yy6
4
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
0
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
1
87
:
/* expr ::= FLOAT */
{
yylhsminor
.
yy6
6
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
0
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
1
91
:
/* expr ::= MINUS FLOAT */
case
1
92
:
/* expr ::= PLUS FLOAT */
yytestcase
(
yyruleno
==
192
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_FLOAT
;
yylhsminor
.
yy6
4
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
-
1
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
1
88
:
/* expr ::= MINUS FLOAT */
case
1
89
:
/* expr ::= PLUS FLOAT */
yytestcase
(
yyruleno
==
189
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_FLOAT
;
yylhsminor
.
yy6
6
=
tSQLExprIdValueCreate
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
-
1
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
19
3
:
/* expr ::= STRING */
{
yylhsminor
.
yy6
4
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
yymsp
[
0
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
19
0
:
/* expr ::= STRING */
{
yylhsminor
.
yy6
6
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
yymsp
[
0
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
19
4
:
/* expr ::= NOW */
{
yylhsminor
.
yy6
4
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
yymsp
[
0
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
19
1
:
/* expr ::= NOW */
{
yylhsminor
.
yy6
6
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
yymsp
[
0
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
19
5
:
/* expr ::= VARIABLE */
{
yylhsminor
.
yy6
4
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_VARIABLE
);}
yymsp
[
0
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
19
2
:
/* expr ::= VARIABLE */
{
yylhsminor
.
yy6
6
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_VARIABLE
);}
yymsp
[
0
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
19
6
:
/* expr ::= BOOL */
{
yylhsminor
.
yy6
4
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_BOOL
);}
yymsp
[
0
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
19
3
:
/* expr ::= BOOL */
{
yylhsminor
.
yy6
6
=
tSQLExprIdValueCreate
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_BOOL
);}
yymsp
[
0
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
19
7
:
/* expr ::= ID LP exprlist RP */
case
19
4
:
/* expr ::= ID LP exprlist RP */
{
yylhsminor
.
yy6
4
=
tSQLExprCreateFunction
(
yymsp
[
-
1
].
minor
.
yy290
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
yylhsminor
.
yy6
6
=
tSQLExprCreateFunction
(
yymsp
[
-
1
].
minor
.
yy224
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
yymsp
[
-
3
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
yymsp
[
-
3
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
19
8
:
/* expr ::= ID LP STAR RP */
case
19
5
:
/* expr ::= ID LP STAR RP */
{
yylhsminor
.
yy6
4
=
tSQLExprCreateFunction
(
NULL
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
yylhsminor
.
yy6
6
=
tSQLExprCreateFunction
(
NULL
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
yymsp
[
-
3
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
yymsp
[
-
3
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
19
9
:
/* expr ::= expr AND expr */
{
yylhsminor
.
yy6
4
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy64
,
TK_AND
);}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
19
6
:
/* expr ::= expr AND expr */
{
yylhsminor
.
yy6
6
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy66
,
yymsp
[
0
].
minor
.
yy66
,
TK_AND
);}
yymsp
[
-
2
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
200
:
/* expr ::= expr OR expr */
{
yylhsminor
.
yy6
4
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy64
,
TK_OR
);
}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
197
:
/* expr ::= expr OR expr */
{
yylhsminor
.
yy6
6
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy66
,
yymsp
[
0
].
minor
.
yy66
,
TK_OR
);
}
yymsp
[
-
2
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
201
:
/* expr ::= expr LT expr */
{
yylhsminor
.
yy6
4
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy64
,
TK_LT
);}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
198
:
/* expr ::= expr LT expr */
{
yylhsminor
.
yy6
6
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy66
,
yymsp
[
0
].
minor
.
yy66
,
TK_LT
);}
yymsp
[
-
2
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
202
:
/* expr ::= expr GT expr */
{
yylhsminor
.
yy6
4
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy64
,
TK_GT
);}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
199
:
/* expr ::= expr GT expr */
{
yylhsminor
.
yy6
6
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy66
,
yymsp
[
0
].
minor
.
yy66
,
TK_GT
);}
yymsp
[
-
2
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
20
3
:
/* expr ::= expr LE expr */
{
yylhsminor
.
yy6
4
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy64
,
TK_LE
);}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
20
0
:
/* expr ::= expr LE expr */
{
yylhsminor
.
yy6
6
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy66
,
yymsp
[
0
].
minor
.
yy66
,
TK_LE
);}
yymsp
[
-
2
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
20
4
:
/* expr ::= expr GE expr */
{
yylhsminor
.
yy6
4
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy64
,
TK_GE
);}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
20
1
:
/* expr ::= expr GE expr */
{
yylhsminor
.
yy6
6
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy66
,
yymsp
[
0
].
minor
.
yy66
,
TK_GE
);}
yymsp
[
-
2
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
20
5
:
/* expr ::= expr NE expr */
{
yylhsminor
.
yy6
4
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy64
,
TK_NE
);}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
20
2
:
/* expr ::= expr NE expr */
{
yylhsminor
.
yy6
6
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy66
,
yymsp
[
0
].
minor
.
yy66
,
TK_NE
);}
yymsp
[
-
2
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
20
6
:
/* expr ::= expr EQ expr */
{
yylhsminor
.
yy6
4
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy64
,
TK_EQ
);}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
20
3
:
/* expr ::= expr EQ expr */
{
yylhsminor
.
yy6
6
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy66
,
yymsp
[
0
].
minor
.
yy66
,
TK_EQ
);}
yymsp
[
-
2
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
20
7
:
/* expr ::= expr PLUS expr */
{
yylhsminor
.
yy6
4
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy64
,
TK_PLUS
);
}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
20
4
:
/* expr ::= expr PLUS expr */
{
yylhsminor
.
yy6
6
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy66
,
yymsp
[
0
].
minor
.
yy66
,
TK_PLUS
);
}
yymsp
[
-
2
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
20
8
:
/* expr ::= expr MINUS expr */
{
yylhsminor
.
yy6
4
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy64
,
TK_MINUS
);
}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
20
5
:
/* expr ::= expr MINUS expr */
{
yylhsminor
.
yy6
6
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy66
,
yymsp
[
0
].
minor
.
yy66
,
TK_MINUS
);
}
yymsp
[
-
2
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
20
9
:
/* expr ::= expr STAR expr */
{
yylhsminor
.
yy6
4
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy64
,
TK_STAR
);
}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
20
6
:
/* expr ::= expr STAR expr */
{
yylhsminor
.
yy6
6
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy66
,
yymsp
[
0
].
minor
.
yy66
,
TK_STAR
);
}
yymsp
[
-
2
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
2
10
:
/* expr ::= expr SLASH expr */
{
yylhsminor
.
yy6
4
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy64
,
TK_DIVIDE
);}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
2
07
:
/* expr ::= expr SLASH expr */
{
yylhsminor
.
yy6
6
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy66
,
yymsp
[
0
].
minor
.
yy66
,
TK_DIVIDE
);}
yymsp
[
-
2
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
2
11
:
/* expr ::= expr REM expr */
{
yylhsminor
.
yy6
4
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy64
,
TK_REM
);
}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
2
08
:
/* expr ::= expr REM expr */
{
yylhsminor
.
yy6
6
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy66
,
yymsp
[
0
].
minor
.
yy66
,
TK_REM
);
}
yymsp
[
-
2
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
2
12
:
/* expr ::= expr LIKE expr */
{
yylhsminor
.
yy6
4
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy64
,
TK_LIKE
);
}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
2
09
:
/* expr ::= expr LIKE expr */
{
yylhsminor
.
yy6
6
=
tSQLExprCreate
(
yymsp
[
-
2
].
minor
.
yy66
,
yymsp
[
0
].
minor
.
yy66
,
TK_LIKE
);
}
yymsp
[
-
2
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
21
3
:
/* expr ::= expr IN LP exprlist RP */
{
yylhsminor
.
yy6
4
=
tSQLExprCreate
(
yymsp
[
-
4
].
minor
.
yy64
,
(
tSQLExpr
*
)
yymsp
[
-
1
].
minor
.
yy290
,
TK_IN
);
}
yymsp
[
-
4
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
21
0
:
/* expr ::= expr IN LP exprlist RP */
{
yylhsminor
.
yy6
6
=
tSQLExprCreate
(
yymsp
[
-
4
].
minor
.
yy66
,
(
tSQLExpr
*
)
yymsp
[
-
1
].
minor
.
yy224
,
TK_IN
);
}
yymsp
[
-
4
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
21
4
:
/* exprlist ::= exprlist COMMA expritem */
{
yylhsminor
.
yy2
90
=
tSQLExprListAppend
(
yymsp
[
-
2
].
minor
.
yy290
,
yymsp
[
0
].
minor
.
yy64
,
0
);}
yymsp
[
-
2
].
minor
.
yy2
90
=
yylhsminor
.
yy290
;
case
21
1
:
/* exprlist ::= exprlist COMMA expritem */
{
yylhsminor
.
yy2
24
=
tSQLExprListAppend
(
yymsp
[
-
2
].
minor
.
yy224
,
yymsp
[
0
].
minor
.
yy66
,
0
);}
yymsp
[
-
2
].
minor
.
yy2
24
=
yylhsminor
.
yy224
;
break
;
case
21
5
:
/* exprlist ::= expritem */
{
yylhsminor
.
yy2
90
=
tSQLExprListAppend
(
0
,
yymsp
[
0
].
minor
.
yy64
,
0
);}
yymsp
[
0
].
minor
.
yy2
90
=
yylhsminor
.
yy290
;
case
21
2
:
/* exprlist ::= expritem */
{
yylhsminor
.
yy2
24
=
tSQLExprListAppend
(
0
,
yymsp
[
0
].
minor
.
yy66
,
0
);}
yymsp
[
0
].
minor
.
yy2
24
=
yylhsminor
.
yy224
;
break
;
case
21
6
:
/* expritem ::= expr */
{
yylhsminor
.
yy6
4
=
yymsp
[
0
].
minor
.
yy64
;}
yymsp
[
0
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
case
21
3
:
/* expritem ::= expr */
{
yylhsminor
.
yy6
6
=
yymsp
[
0
].
minor
.
yy66
;}
yymsp
[
0
].
minor
.
yy6
6
=
yylhsminor
.
yy66
;
break
;
case
21
8
:
/* cmd ::= RESET QUERY CACHE */
case
21
5
:
/* cmd ::= RESET QUERY CACHE */
{
setDCLSQLElems
(
pInfo
,
TSDB_SQL_RESET_CACHE
,
0
);}
break
;
case
21
9
:
/* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
case
21
6
:
/* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableSQL
*
pAlterTable
=
tAlterTableSQLElems
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
523
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
);
SAlterTableSQL
*
pAlterTable
=
tAlterTableSQLElems
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
449
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
);
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
2
20
:
/* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
case
2
17
:
/* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
...
...
@@ -2764,14 +2747,14 @@ static void yy_reduce(
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
2
21
:
/* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
case
2
18
:
/* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableSQL
*
pAlterTable
=
tAlterTableSQLElems
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
523
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
);
SAlterTableSQL
*
pAlterTable
=
tAlterTableSQLElems
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy
449
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
);
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
2
22
:
/* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
case
2
19
:
/* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
...
...
@@ -2782,7 +2765,7 @@ static void yy_reduce(
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
22
3
:
/* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
case
22
0
:
/* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
...
...
@@ -2796,25 +2779,25 @@ static void yy_reduce(
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
22
4
:
/* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
case
22
1
:
/* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{
yymsp
[
-
6
].
minor
.
yy0
.
n
+=
yymsp
[
-
5
].
minor
.
yy0
.
n
;
toTSDBType
(
yymsp
[
-
2
].
minor
.
yy0
.
type
);
tVariantList
*
A
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
-
1
);
A
=
tVariantListAppend
(
A
,
&
yymsp
[
0
].
minor
.
yy
134
,
-
1
);
A
=
tVariantListAppend
(
A
,
&
yymsp
[
0
].
minor
.
yy
312
,
-
1
);
SAlterTableSQL
*
pAlterTable
=
tAlterTableSQLElems
(
&
yymsp
[
-
6
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_UPDATE_TAG_VAL
);
setSQLInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
22
5
:
/* cmd ::= KILL CONNECTION INTEGER */
case
22
2
:
/* cmd ::= KILL CONNECTION INTEGER */
{
setKillSQL
(
pInfo
,
TSDB_SQL_KILL_CONNECTION
,
&
yymsp
[
0
].
minor
.
yy0
);}
break
;
case
22
6
:
/* cmd ::= KILL STREAM INTEGER COLON INTEGER */
case
22
3
:
/* 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
);}
break
;
case
22
7
:
/* cmd ::= KILL QUERY INTEGER COLON INTEGER */
case
22
4
:
/* cmd ::= KILL QUERY INTEGER COLON INTEGER */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
+
yymsp
[
0
].
minor
.
yy0
.
n
);
setKillSQL
(
pInfo
,
TSDB_SQL_KILL_QUERY
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
break
;
default:
...
...
src/tsdb/src/tsdbRead.c
浏览文件 @
07b38c1c
...
...
@@ -734,6 +734,11 @@ static int32_t doLoadFileDataBlock(STsdbQueryHandle* pQueryHandle, SCompBlock* p
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
doCopyRowsFromFileBlock
(
STsdbQueryHandle
*
pQueryHandle
,
int32_t
capacity
,
int32_t
numOfRows
,
int32_t
start
,
int32_t
end
);
static
void
moveDataToFront
(
STsdbQueryHandle
*
pQueryHandle
,
int32_t
numOfRows
,
int32_t
numOfCols
);
static
void
doCheckGeneratedBlockRange
(
STsdbQueryHandle
*
pQueryHandle
);
static
void
copyAllRemainRowsFromFileBlock
(
STsdbQueryHandle
*
pQueryHandle
,
STableCheckInfo
*
pCheckInfo
,
SDataBlockInfo
*
pBlockInfo
,
int32_t
endPos
);
static
int32_t
handleDataMergeIfNeeded
(
STsdbQueryHandle
*
pQueryHandle
,
SCompBlock
*
pBlock
,
STableCheckInfo
*
pCheckInfo
){
SQueryFilePos
*
cur
=
&
pQueryHandle
->
cur
;
SDataBlockInfo
binfo
=
GET_FILE_DATA_BLOCK_INFO
(
pCheckInfo
,
pBlock
);
...
...
@@ -742,11 +747,11 @@ static int32_t handleDataMergeIfNeeded(STsdbQueryHandle* pQueryHandle, SCompBloc
/*bool hasData = */
initTableMemIterator
(
pQueryHandle
,
pCheckInfo
);
SDataRow
row
=
getSDataRowInTableMem
(
pCheckInfo
,
pQueryHandle
->
order
);
assert
(
cur
->
pos
>=
0
&&
cur
->
pos
<=
binfo
.
rows
);
TSKEY
key
=
(
row
!=
NULL
)
?
dataRowKey
(
row
)
:
TSKEY_INITIAL_VAL
;
tsdbDebug
(
"%p key in mem:%"
PRId64
", %p"
,
pQueryHandle
,
key
,
pQueryHandle
->
qinfo
);
cur
->
pos
=
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
)
?
0
:
(
binfo
.
rows
-
1
);
if
((
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
)
&&
(
key
!=
TSKEY_INITIAL_VAL
&&
key
<=
binfo
.
window
.
ekey
))
||
(
!
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
)
&&
(
key
!=
TSKEY_INITIAL_VAL
&&
key
>=
binfo
.
window
.
skey
)))
{
...
...
@@ -785,14 +790,32 @@ static int32_t handleDataMergeIfNeeded(STsdbQueryHandle* pQueryHandle, SCompBloc
* Here the buffer is not enough, so only part of file block can be loaded into memory buffer
*/
assert
(
pQueryHandle
->
outputCapacity
>=
binfo
.
rows
);
if
((
cur
->
pos
==
0
&&
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
))
||
(
cur
->
pos
==
(
binfo
.
rows
-
1
)
&&
(
!
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
))))
{
pQueryHandle
->
realNumOfRows
=
binfo
.
rows
;
cur
->
rows
=
binfo
.
rows
;
cur
->
win
=
binfo
.
window
;
cur
->
mixBlock
=
false
;
cur
->
blockCompleted
=
true
;
cur
->
lastKey
=
binfo
.
window
.
ekey
+
(
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
)
?
1
:-
1
);
pCheckInfo
->
lastKey
=
cur
->
lastKey
;
if
(
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
))
{
cur
->
lastKey
=
binfo
.
window
.
ekey
+
1
;
cur
->
pos
=
binfo
.
rows
;
}
else
{
cur
->
lastKey
=
binfo
.
window
.
skey
-
1
;
cur
->
pos
=
-
1
;
}
}
else
{
// partially copy to dest buffer
int32_t
endPos
=
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
)
?
(
binfo
.
rows
-
1
)
:
0
;
copyAllRemainRowsFromFileBlock
(
pQueryHandle
,
pCheckInfo
,
&
binfo
,
endPos
);
cur
->
mixBlock
=
true
;
}
assert
(
cur
->
blockCompleted
);
tsdbDebug
(
"create data block from remain file block, brange:%"
PRId64
"-%"
PRId64
", rows:%d, lastKey:%"
PRId64
", %p"
,
cur
->
win
.
skey
,
cur
->
win
.
ekey
,
cur
->
rows
,
cur
->
lastKey
,
pQueryHandle
);
}
return
code
;
...
...
@@ -823,6 +846,7 @@ static int32_t loadFileDataBlock(STsdbQueryHandle* pQueryHandle, SCompBlock* pBl
assert
(
pCheckInfo
->
lastKey
<=
pBlock
->
keyLast
);
doMergeTwoLevelData
(
pQueryHandle
,
pCheckInfo
,
pBlock
);
}
else
{
// the whole block is loaded in to buffer
cur
->
pos
=
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
)
?
0
:
(
pBlock
->
numOfRows
-
1
);
code
=
handleDataMergeIfNeeded
(
pQueryHandle
,
pBlock
,
pCheckInfo
);
}
}
else
{
//desc order, query ended in current block
...
...
@@ -842,6 +866,7 @@ static int32_t loadFileDataBlock(STsdbQueryHandle* pQueryHandle, SCompBlock* pBl
assert
(
pCheckInfo
->
lastKey
>=
pBlock
->
keyFirst
);
doMergeTwoLevelData
(
pQueryHandle
,
pCheckInfo
,
pBlock
);
}
else
{
cur
->
pos
=
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
)
?
0
:
(
pBlock
->
numOfRows
-
1
);
code
=
handleDataMergeIfNeeded
(
pQueryHandle
,
pBlock
,
pCheckInfo
);
}
}
...
...
@@ -912,7 +937,7 @@ static int doBinarySearchKey(char* pValue, int num, TSKEY key, int order) {
return
midPos
;
}
static
int32_t
copyData
FromFileBlock
(
STsdbQueryHandle
*
pQueryHandle
,
int32_t
capacity
,
int32_t
numOfRows
,
int32_t
start
,
int32_t
end
)
{
int32_t
doCopyRows
FromFileBlock
(
STsdbQueryHandle
*
pQueryHandle
,
int32_t
capacity
,
int32_t
numOfRows
,
int32_t
start
,
int32_t
end
)
{
char
*
pData
=
NULL
;
int32_t
step
=
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
)
?
1
:
-
1
;
...
...
@@ -1137,6 +1162,47 @@ static void doCheckGeneratedBlockRange(STsdbQueryHandle* pQueryHandle) {
}
}
static
void
copyAllRemainRowsFromFileBlock
(
STsdbQueryHandle
*
pQueryHandle
,
STableCheckInfo
*
pCheckInfo
,
SDataBlockInfo
*
pBlockInfo
,
int32_t
endPos
)
{
SQueryFilePos
*
cur
=
&
pQueryHandle
->
cur
;
SDataCols
*
pCols
=
pQueryHandle
->
rhelper
.
pDataCols
[
0
];
TSKEY
*
tsArray
=
pCols
->
cols
[
0
].
pData
;
int32_t
step
=
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
)
?
1
:-
1
;
int32_t
numOfCols
=
(
int32_t
)(
QH_GET_NUM_OF_COLS
(
pQueryHandle
));
int32_t
pos
=
cur
->
pos
;
int32_t
start
=
cur
->
pos
;
int32_t
end
=
endPos
;
if
(
!
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
))
{
assert
(
start
>=
end
);
SWAP
(
start
,
end
,
int32_t
);
}
assert
(
pQueryHandle
->
outputCapacity
>=
(
end
-
start
+
1
));
int32_t
numOfRows
=
doCopyRowsFromFileBlock
(
pQueryHandle
,
pQueryHandle
->
outputCapacity
,
0
,
start
,
end
);
// the time window should always be ascending order: skey <= ekey
cur
->
win
=
(
STimeWindow
)
{.
skey
=
tsArray
[
start
],
.
ekey
=
tsArray
[
end
]};
cur
->
mixBlock
=
(
start
>
0
&&
end
<
pBlockInfo
->
rows
-
1
);
cur
->
lastKey
=
tsArray
[
endPos
]
+
step
;
cur
->
blockCompleted
=
true
;
// if the buffer is not full in case of descending order query, move the data in the front of the buffer
moveDataToFront
(
pQueryHandle
,
numOfRows
,
numOfCols
);
// The value of pos may be -1 or pBlockInfo->rows, and it is invalid in both cases.
pos
=
endPos
+
step
;
updateInfoAfterMerge
(
pQueryHandle
,
pCheckInfo
,
numOfRows
,
pos
);
doCheckGeneratedBlockRange
(
pQueryHandle
);
tsdbDebug
(
"%p uid:%"
PRIu64
",tid:%d data block created, mixblock:%d, brange:%"
PRIu64
"-%"
PRIu64
" rows:%d, %p"
,
pQueryHandle
,
pCheckInfo
->
tableId
.
uid
,
pCheckInfo
->
tableId
.
tid
,
cur
->
mixBlock
,
cur
->
win
.
skey
,
cur
->
win
.
ekey
,
cur
->
rows
,
pQueryHandle
->
qinfo
);
}
// only return the qualified data to client in terms of query time window, data rows in the same block but do not
// be included in the query time window will be discarded
static
void
doMergeTwoLevelData
(
STsdbQueryHandle
*
pQueryHandle
,
STableCheckInfo
*
pCheckInfo
,
SCompBlock
*
pBlock
)
{
...
...
@@ -1179,37 +1245,13 @@ static void doMergeTwoLevelData(STsdbQueryHandle* pQueryHandle, STableCheckInfo*
// compared with the data from in-memory buffer, to generate the correct timestamp array list
int32_t
numOfRows
=
0
;
int32_t
pos
=
cur
->
pos
;
cur
->
win
=
TSWINDOW_INITIALIZER
;
// no data in buffer, load data from file directly
if
(
pCheckInfo
->
iiter
==
NULL
&&
pCheckInfo
->
iter
==
NULL
)
{
int32_t
start
=
cur
->
pos
;
int32_t
end
=
endPos
;
if
(
!
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
))
{
SWAP
(
start
,
end
,
int32_t
);
}
numOfRows
=
copyDataFromFileBlock
(
pQueryHandle
,
pQueryHandle
->
outputCapacity
,
numOfRows
,
start
,
end
);
// the time window should always be right order: skey <= ekey
cur
->
win
=
(
STimeWindow
)
{.
skey
=
tsArray
[
start
],
.
ekey
=
tsArray
[
end
]};
cur
->
lastKey
=
tsArray
[
endPos
];
pos
+=
(
end
-
start
+
1
)
*
step
;
cur
->
blockCompleted
=
(((
pos
>=
endPos
||
cur
->
lastKey
>
pQueryHandle
->
window
.
ekey
)
&&
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
))
||
((
pos
<=
endPos
||
cur
->
lastKey
<
pQueryHandle
->
window
.
ekey
)
&&
!
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
)));
// if the buffer is not full in case of descending order query, move the data in the front of the buffer
moveDataToFront
(
pQueryHandle
,
numOfRows
,
numOfCols
);
updateInfoAfterMerge
(
pQueryHandle
,
pCheckInfo
,
numOfRows
,
pos
);
doCheckGeneratedBlockRange
(
pQueryHandle
);
tsdbDebug
(
"%p uid:%"
PRIu64
",tid:%d data block created, mixblock:%d, brange:%"
PRIu64
"-%"
PRIu64
" rows:%d, %p"
,
pQueryHandle
,
pCheckInfo
->
tableId
.
uid
,
pCheckInfo
->
tableId
.
tid
,
cur
->
mixBlock
,
cur
->
win
.
skey
,
cur
->
win
.
ekey
,
cur
->
rows
,
pQueryHandle
->
qinfo
);
copyAllRemainRowsFromFileBlock
(
pQueryHandle
,
pCheckInfo
,
&
blockInfo
,
endPos
);
return
;
}
else
if
(
pCheckInfo
->
iter
!=
NULL
||
pCheckInfo
->
iiter
!=
NULL
)
{
SSkipListNode
*
node
=
NULL
;
...
...
@@ -1261,7 +1303,7 @@ static void doMergeTwoLevelData(STsdbQueryHandle* pQueryHandle, STableCheckInfo*
int32_t
qstart
=
0
,
qend
=
0
;
getQualifiedRowsPos
(
pQueryHandle
,
pos
,
end
,
numOfRows
,
&
qstart
,
&
qend
);
numOfRows
=
copyData
FromFileBlock
(
pQueryHandle
,
pQueryHandle
->
outputCapacity
,
numOfRows
,
qstart
,
qend
);
numOfRows
=
doCopyRows
FromFileBlock
(
pQueryHandle
,
pQueryHandle
->
outputCapacity
,
numOfRows
,
qstart
,
qend
);
pos
+=
(
qend
-
qstart
+
1
)
*
step
;
cur
->
win
.
ekey
=
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
)
?
tsArray
[
qend
]
:
tsArray
[
qstart
];
...
...
@@ -1285,7 +1327,7 @@ static void doMergeTwoLevelData(STsdbQueryHandle* pQueryHandle, STableCheckInfo*
int32_t
start
=
-
1
,
end
=
-
1
;
getQualifiedRowsPos
(
pQueryHandle
,
pos
,
endPos
,
numOfRows
,
&
start
,
&
end
);
numOfRows
=
copyData
FromFileBlock
(
pQueryHandle
,
pQueryHandle
->
outputCapacity
,
numOfRows
,
start
,
end
);
numOfRows
=
doCopyRows
FromFileBlock
(
pQueryHandle
,
pQueryHandle
->
outputCapacity
,
numOfRows
,
start
,
end
);
pos
+=
(
end
-
start
+
1
)
*
step
;
cur
->
win
.
ekey
=
ASCENDING_TRAVERSE
(
pQueryHandle
->
order
)
?
tsArray
[
end
]
:
tsArray
[
start
];
...
...
@@ -1658,7 +1700,7 @@ static int32_t getDataBlocksInFiles(STsdbQueryHandle* pQueryHandle, bool* exists
return
loadFileDataBlock
(
pQueryHandle
,
pNext
->
compBlock
,
pNext
->
pTableCheckInfo
,
exists
);
}
}
else
{
tsdbDebug
(
"%p continue in current data block, index:%d,
%p"
,
pQueryHandle
,
cur
->
slot
,
pQueryHandle
->
qinfo
);
tsdbDebug
(
"%p continue in current data block, index:%d,
pos:%d, %p"
,
pQueryHandle
,
cur
->
slot
,
cur
->
pos
,
pQueryHandle
->
qinfo
);
int32_t
code
=
handleDataMergeIfNeeded
(
pQueryHandle
,
pBlockInfo
->
compBlock
,
pCheckInfo
);
*
exists
=
pQueryHandle
->
realNumOfRows
>
0
;
...
...
@@ -2156,7 +2198,7 @@ SArray* tsdbRetrieveDataBlock(TsdbQueryHandleT* pQueryHandle, SArray* pIdList) {
}
// todo refactor
int32_t
numOfRows
=
copyData
FromFileBlock
(
pHandle
,
pHandle
->
outputCapacity
,
0
,
0
,
pBlock
->
numOfRows
-
1
);
int32_t
numOfRows
=
doCopyRows
FromFileBlock
(
pHandle
,
pHandle
->
outputCapacity
,
0
,
0
,
pBlock
->
numOfRows
-
1
);
// if the buffer is not full in case of descending order query, move the data in the front of the buffer
if
(
!
ASCENDING_TRAVERSE
(
pHandle
->
order
)
&&
numOfRows
<
pHandle
->
outputCapacity
)
{
...
...
src/util/inc/hash.h
浏览文件 @
07b38c1c
...
...
@@ -110,7 +110,17 @@ int32_t taosHashPut(SHashObj *pHashObj, const void *key, size_t keyLen, void *da
*/
void
*
taosHashGet
(
SHashObj
*
pHashObj
,
const
void
*
key
,
size_t
keyLen
);
void
*
taosHashGetCB
(
SHashObj
*
pHashObj
,
const
void
*
key
,
size_t
keyLen
,
void
(
*
fp
)(
void
*
));
/**
* apply the udf before return the result
* @param pHashObj
* @param key
* @param keyLen
* @param fp
* @param d
* @param dsize
* @return
*/
void
*
taosHashGetCB
(
SHashObj
*
pHashObj
,
const
void
*
key
,
size_t
keyLen
,
void
(
*
fp
)(
void
*
),
void
*
d
,
size_t
dsize
);
/**
* remove item with the specified key
...
...
src/util/inc/tcache.h
浏览文件 @
07b38c1c
...
...
@@ -42,7 +42,7 @@ typedef struct SCacheDataNode {
uint64_t
signature
;
struct
STrashElem
*
pTNodeHeader
;
// point to trash node head
uint16_t
keySize
:
15
;
// max key size: 32kb
bool
inTrash
C
an
:
1
;
// denote if it is in trash or not
bool
inTrash
c
an
:
1
;
// denote if it is in trash or not
uint32_t
size
;
// allocated size for current SCacheDataNode
T_REF_DECLARE
()
char
*
key
;
...
...
src/util/src/hash.c
浏览文件 @
07b38c1c
...
...
@@ -255,10 +255,10 @@ int32_t taosHashPut(SHashObj *pHashObj, const void *key, size_t keyLen, void *da
}
void
*
taosHashGet
(
SHashObj
*
pHashObj
,
const
void
*
key
,
size_t
keyLen
)
{
return
taosHashGetCB
(
pHashObj
,
key
,
keyLen
,
NULL
);
return
taosHashGetCB
(
pHashObj
,
key
,
keyLen
,
NULL
,
NULL
,
0
);
}
void
*
taosHashGetCB
(
SHashObj
*
pHashObj
,
const
void
*
key
,
size_t
keyLen
,
void
(
*
fp
)(
void
*
)
)
{
void
*
taosHashGetCB
(
SHashObj
*
pHashObj
,
const
void
*
key
,
size_t
keyLen
,
void
(
*
fp
)(
void
*
),
void
*
d
,
size_t
dsize
)
{
if
(
pHashObj
->
size
<=
0
||
keyLen
==
0
||
key
==
NULL
)
{
return
NULL
;
}
...
...
@@ -273,7 +273,6 @@ void *taosHashGetCB(SHashObj *pHashObj, const void *key, size_t keyLen, void (*f
// no data, return directly
if
(
atomic_load_32
(
&
pe
->
num
)
==
0
)
{
__rd_unlock
(
&
pHashObj
->
lock
,
pHashObj
->
type
);
return
NULL
;
}
...
...
@@ -297,8 +296,12 @@ void *taosHashGetCB(SHashObj *pHashObj, const void *key, size_t keyLen, void (*f
fp
(
pNode
->
data
);
}
if
(
d
!=
NULL
)
{
memcpy
(
d
,
pNode
->
data
,
dsize
);
}
else
{
data
=
pNode
->
data
;
}
}
if
(
pHashObj
->
type
==
HASH_ENTRY_LOCK
)
{
taosRUnLockLatch
(
&
pe
->
latch
);
...
...
src/util/src/tcache.c
浏览文件 @
07b38c1c
...
...
@@ -90,7 +90,6 @@ static void taosTrashCanEmpty(SCacheObj *pCacheObj, bool force);
static
FORCE_INLINE
void
taosCacheReleaseNode
(
SCacheObj
*
pCacheObj
,
SCacheDataNode
*
pNode
)
{
if
(
pNode
->
signature
!=
(
uint64_t
)
pNode
)
{
uError
(
"key:%s, %p data is invalid, or has been released"
,
pNode
->
key
,
pNode
);
assert
(
0
);
return
;
}
...
...
@@ -110,7 +109,7 @@ static FORCE_INLINE void taosCacheReleaseNode(SCacheObj *pCacheObj, SCacheDataNo
static
FORCE_INLINE
void
doRemoveElemInTrashcan
(
SCacheObj
*
pCacheObj
,
STrashElem
*
pElem
)
{
if
(
pElem
->
pData
->
signature
!=
(
uint64_t
)
pElem
->
pData
)
{
u
Error
(
"key:sig:0x%"
PRIx64
" %p data has been released, ignore"
,
pElem
->
pData
->
signature
,
pElem
->
pData
);
u
Warn
(
"key:sig:0x%"
PRIx64
" %p data has been released, ignore"
,
pElem
->
pData
->
signature
,
pElem
->
pData
);
return
;
}
...
...
@@ -224,7 +223,7 @@ void *taosCachePut(SCacheObj *pCacheObj, const void *key, size_t keyLen, const v
taosTFree
(
p
);
}
else
{
taosAddToTrash
(
pCacheObj
,
p
);
uDebug
(
"cache:%s, key:%p, %p exist in cache, updated old:%p"
,
pCacheObj
->
name
,
key
,
pNode1
->
data
,
p
);
uDebug
(
"cache:%s, key:%p, %p exist in cache, updated old:%p"
,
pCacheObj
->
name
,
key
,
pNode1
->
data
,
p
->
data
);
}
}
...
...
@@ -265,17 +264,14 @@ void *taosCacheAcquireByKey(SCacheObj *pCacheObj, const void *key, size_t keyLen
return
NULL
;
}
SCacheDataNode
**
ptNode
=
(
SCacheDataNode
**
)
taosHashGetCB
(
pCacheObj
->
pHashTable
,
key
,
keyLen
,
incRefFn
);
if
(
ptNode
!=
NULL
)
{
assert
((
*
ptNode
)
!=
NULL
&&
(
int64_t
)
((
*
ptNode
)
->
data
)
!=
0x40
);
}
SCacheDataNode
*
ptNode
=
NULL
;
taosHashGetCB
(
pCacheObj
->
pHashTable
,
key
,
keyLen
,
incRefFn
,
&
ptNode
,
sizeof
(
void
*
));
void
*
pData
=
(
ptNode
!=
NULL
)
?
(
*
ptNode
)
->
data
:
NULL
;
assert
((
int64_t
)
pData
!=
0x40
);
void
*
pData
=
(
ptNode
!=
NULL
)
?
ptNode
->
data
:
NULL
;
if
(
pData
!=
NULL
)
{
atomic_add_fetch_32
(
&
pCacheObj
->
statistics
.
hitCount
,
1
);
uDebug
(
"cache:%s, key:%p, %p is retrieved from cache, refcnt:%d"
,
pCacheObj
->
name
,
key
,
pData
,
T_REF_VAL_GET
(
*
ptNode
));
uDebug
(
"cache:%s, key:%p, %p is retrieved from cache, refcnt:%d"
,
pCacheObj
->
name
,
key
,
pData
,
T_REF_VAL_GET
(
ptNode
));
}
else
{
atomic_add_fetch_32
(
&
pCacheObj
->
statistics
.
missCount
,
1
);
uDebug
(
"cache:%s, key:%p, not in cache, retrieved failed"
,
pCacheObj
->
name
,
key
);
...
...
@@ -292,7 +288,7 @@ void *taosCacheAcquireByData(SCacheObj *pCacheObj, void *data) {
SCacheDataNode
*
ptNode
=
(
SCacheDataNode
*
)((
char
*
)
data
-
offset
);
if
(
ptNode
->
signature
!=
(
uint64_t
)
ptNode
)
{
uError
(
"
key: %p the data from cache is invalid"
,
ptNode
);
uError
(
"
cache:%s, key: %p the data from cache is invalid"
,
pCacheObj
->
name
,
ptNode
);
return
NULL
;
}
...
...
@@ -311,7 +307,7 @@ void *taosCacheTransfer(SCacheObj *pCacheObj, void **data) {
SCacheDataNode
*
ptNode
=
(
SCacheDataNode
*
)((
char
*
)(
*
data
)
-
offset
);
if
(
ptNode
->
signature
!=
(
uint64_t
)
ptNode
)
{
uError
(
"
key: %p the data from cache is invalid"
,
ptNode
);
uError
(
"
cache:%s, key: %p the data from cache is invalid"
,
pCacheObj
->
name
,
ptNode
);
return
NULL
;
}
...
...
@@ -334,16 +330,16 @@ void taosCacheRelease(SCacheObj *pCacheObj, void **data, bool _remove) {
SCacheDataNode
*
pNode
=
(
SCacheDataNode
*
)((
char
*
)(
*
data
)
-
offset
);
if
(
pNode
->
signature
!=
(
uint64_t
)
pNode
)
{
uError
(
"
%p, release invalid cache data"
,
pNode
);
uError
(
"
cache:%s, %p, release invalid cache data"
,
pCacheObj
->
name
,
pNode
);
return
;
}
*
data
=
NULL
;
// note: extend lifespan before dec ref count
bool
inTrash
Can
=
pNode
->
inTrashC
an
;
bool
inTrash
can
=
pNode
->
inTrashc
an
;
if
(
pCacheObj
->
extendLifespan
&&
(
!
inTrash
C
an
)
&&
(
!
_remove
))
{
if
(
pCacheObj
->
extendLifespan
&&
(
!
inTrash
c
an
)
&&
(
!
_remove
))
{
atomic_store_64
(
&
pNode
->
expireTime
,
pNode
->
lifespan
+
taosGetTimestampMs
());
uDebug
(
"cache:%s data:%p extend expire time: %"
PRId64
,
pCacheObj
->
name
,
pNode
->
data
,
pNode
->
expireTime
);
}
...
...
@@ -354,7 +350,7 @@ void taosCacheRelease(SCacheObj *pCacheObj, void **data, bool _remove) {
char
*
d
=
pNode
->
data
;
int32_t
ref
=
T_REF_VAL_GET
(
pNode
);
uDebug
(
"cache:%s, key:%p, %p is released, refcnt:%d, in
trash:%d"
,
pCacheObj
->
name
,
key
,
d
,
ref
-
1
,
inTrashC
an
);
uDebug
(
"cache:%s, key:%p, %p is released, refcnt:%d, in
trashcan:%d"
,
pCacheObj
->
name
,
key
,
d
,
ref
-
1
,
inTrashc
an
);
/*
* If it is not referenced by other users, remove it immediately. Otherwise move this node to trashcan wait for all users
...
...
@@ -363,17 +359,25 @@ void taosCacheRelease(SCacheObj *pCacheObj, void **data, bool _remove) {
* NOTE: previous ref is 0, and current ref is still 0, remove it. If previous is not 0, there is another thread
* that tries to do the same thing.
*/
if
(
inTrash
C
an
)
{
ref
=
T_REF_
DEC
(
pNode
);
if
(
inTrash
c
an
)
{
ref
=
T_REF_
VAL_GET
(
pNode
);
if
(
ref
==
0
)
{
if
(
ref
==
1
)
{
// If it is the last ref, remove it from trashcan linked-list first, and then destroy it.Otherwise, it may be
// destroyed by refresh worker if decrease ref count before removing it from linked-list.
assert
(
pNode
->
pTNodeHeader
->
pData
==
pNode
);
__cache_wr_lock
(
pCacheObj
);
doRemoveElemInTrashcan
(
pCacheObj
,
pNode
->
pTNodeHeader
);
__cache_unlock
(
pCacheObj
);
ref
=
T_REF_DEC
(
pNode
);
assert
(
ref
==
0
);
doDestroyTrashcanElem
(
pCacheObj
,
pNode
->
pTNodeHeader
);
}
else
{
ref
=
T_REF_DEC
(
pNode
);
assert
(
ref
>=
0
);
}
}
else
{
// NOTE: remove it from hash in the first place, otherwise, the pNode may have been released by other thread
...
...
@@ -413,7 +417,7 @@ void taosCacheRelease(SCacheObj *pCacheObj, void **data, bool _remove) {
}
}
}
else
{
uDebug
(
"cache:%s, key:%p, %p has been removed from hash table by other
thread
already, refcnt:%d"
,
uDebug
(
"cache:%s, key:%p, %p has been removed from hash table by other
s
already, refcnt:%d"
,
pCacheObj
->
name
,
pNode
->
key
,
pNode
->
data
,
ref
);
}
}
...
...
@@ -424,7 +428,7 @@ void taosCacheRelease(SCacheObj *pCacheObj, void **data, bool _remove) {
char
*
p
=
pNode
->
data
;
int32_t
ref
=
T_REF_DEC
(
pNode
);
uDebug
(
"cache:%s, key:%p, %p released, refcnt:%d, data in tra
ncan:%d"
,
pCacheObj
->
name
,
key
,
p
,
ref
,
inTrashC
an
);
uDebug
(
"cache:%s, key:%p, %p released, refcnt:%d, data in tra
shcan:%d"
,
pCacheObj
->
name
,
key
,
p
,
ref
,
inTrashc
an
);
}
}
...
...
@@ -495,7 +499,7 @@ SCacheDataNode *taosCreateCacheNode(const char *key, size_t keyLen, const char *
}
void
taosAddToTrash
(
SCacheObj
*
pCacheObj
,
SCacheDataNode
*
pNode
)
{
if
(
pNode
->
inTrash
C
an
)
{
/* node is already in trash */
if
(
pNode
->
inTrash
c
an
)
{
/* node is already in trash */
assert
(
pNode
->
pTNodeHeader
!=
NULL
&&
pNode
->
pTNodeHeader
->
pData
==
pNode
);
return
;
}
...
...
@@ -503,7 +507,7 @@ void taosAddToTrash(SCacheObj *pCacheObj, SCacheDataNode *pNode) {
STrashElem
*
pElem
=
calloc
(
1
,
sizeof
(
STrashElem
));
pElem
->
pData
=
pNode
;
pElem
->
prev
=
NULL
;
pNode
->
inTrash
C
an
=
true
;
pNode
->
inTrash
c
an
=
true
;
pNode
->
pTNodeHeader
=
pElem
;
__cache_wr_lock
(
pCacheObj
);
...
...
@@ -525,7 +529,7 @@ void taosTrashCanEmpty(SCacheObj *pCacheObj, bool force) {
if
(
pCacheObj
->
numOfElemsInTrash
==
0
)
{
if
(
pCacheObj
->
pTrash
!=
NULL
)
{
uError
(
"
key:inconsistency data in cache, numOfElem in trash:%d"
,
pCacheObj
->
numOfElemsInTrash
);
uError
(
"
cache:%s, key:inconsistency data in cache, numOfElem in trashcan:%d"
,
pCacheObj
->
name
,
pCacheObj
->
numOfElemsInTrash
);
}
pCacheObj
->
pTrash
=
NULL
;
...
...
@@ -542,7 +546,7 @@ void taosTrashCanEmpty(SCacheObj *pCacheObj, bool force) {
}
if
(
force
||
(
T_REF_VAL_GET
(
pElem
->
pData
)
==
0
))
{
uDebug
(
"
key:%p, %p removed from trash. numOfElem in trash:%d"
,
pElem
->
pData
->
key
,
pElem
->
pData
->
data
,
uDebug
(
"
cache:%s, key:%p, %p removed from trashcan. numOfElem in trashcan:%d"
,
pCacheObj
->
name
,
pElem
->
pData
->
key
,
pElem
->
pData
->
data
,
pCacheObj
->
numOfElemsInTrash
-
1
);
STrashElem
*
p
=
pElem
;
...
...
src/util/src/tnote.c
浏览文件 @
07b38c1c
...
...
@@ -253,7 +253,7 @@ void taosNotePrint(taosNoteInfo * pNote, const char * const format, ...)
ptm
->
tm_min
,
ptm
->
tm_sec
,
(
int
)
timeSecs
.
tv_usec
,
taosGetPthreadId
());
#else
len
=
sprintf
(
buffer
,
"%02d/%02d %02d:%02d:%02d.%06d %lx "
,
ptm
->
tm_mon
+
1
,
ptm
->
tm_mday
,
ptm
->
tm_hour
,
ptm
->
tm_min
,
ptm
->
tm_sec
,
(
int
)
timeSecs
.
tv_usec
,
pthread_self
());
ptm
->
tm_sec
,
(
int
)
timeSecs
.
tv_usec
,
(
unsigned
long
int
)
pthread_self
());
#endif
va_start
(
argpointer
,
format
);
len
+=
vsnprintf
(
buffer
+
len
,
MAX_NOTE_LINE_SIZE
-
len
,
format
,
argpointer
);
...
...
tests/examples/JDBC/JDBCDemo/pom.xml
浏览文件 @
07b38c1c
...
...
@@ -63,7 +63,7 @@
<dependency>
<groupId>
com.taosdata.jdbc
</groupId>
<artifactId>
taos-jdbcdriver
</artifactId>
<version>
2.0.
2
</version>
<version>
2.0.
4
</version>
</dependency>
</dependencies>
</project>
tests/perftest-scripts/coverage_test.sh
浏览文件 @
07b38c1c
...
...
@@ -74,22 +74,37 @@ function runTest {
runGeneralCaseOneByOne jenkins/basic.txt
totalSuccess
=
`
grep
'success'
$TDENGINE_COVERAGE_REPORT
|
wc
-l
`
sed
-i
"1i
\S
IM cases test result"
$TDENGINE_COVERAGE_REPORT
totalSuccess
=
`
grep
'success'
$TDENGINE_COVERAGE_REPORT
|
wc
-l
`
if
[
"
$totalSuccess
"
-gt
"0"
]
;
then
echo
-e
"
\n
${
GREEN
}
### Total
$totalSuccess
coverage test case(s) succeed! ###
${
NC
}
"
|
tee
-a
$TDENGINE_COVERAGE_REPORT
sed
-i
-e
"2i
\
### Total
$totalSuccess
SIM test case(s) succeed! ###"
$TDENGINE_COVERAGE_REPORT
fi
totalFailed
=
`
grep
'failed\|fault'
$TDENGINE_COVERAGE_REPORT
|
wc
-l
`
if
[
"
$totalFailed
"
-ne
"0"
]
;
then
echo
-e
"
${
RED
}
### Total
$totalFailed
coverage test case(s) failed! ###
${
NC
}
\n
"
|
tee
-a
$TDENGINE_COVERAGE_REPORT
# exit $totalPyFailed
sed
-i
'3i\### Total $totalFailed SIM test case(s) failed! ###'
$TDENGINE_COVERAGE_REPORT
else
sed
-i
'3i\\n'
$TDENGINE_COVERAGE_REPORT
fi
cd
$TDENGINE_DIR
/tests
rm
-rf
../sim
./test-all.sh full python
|
tee
-a
$TDENGINE_COVERAGE_REPORT
sed
-i
"4i
\P
ython cases test result"
$TDENGINE_COVERAGE_REPORT
totalPySuccess
=
`
grep
'python case(s) succeed!'
$TDENGINE_COVERAGE_REPORT
|
awk
'{print $4}'
`
if
[
"
$totalPySuccess
"
-gt
"0"
]
;
then
sed
-i
-e
"5i
\
### Total
$totalPySuccess
Python test case(s) succeed! ###"
$TDENGINE_COVERAGE_REPORT
fi
totalPyFailed
=
`
grep
'python case(s) failed!'
$TDENGINE_COVERAGE_REPORT
|
awk
'{print $4}'
`
if
[
-z
$totalPyFailed
]
;
then
sed
-i
'6i\\n'
$TDENGINE_COVERAGE_REPORT
else
sed
-i
'6i\### Total $totalPyFailed Python test case(s) failed! ###'
$TDENGINE_COVERAGE_REPORT
fi
# Test Connector
stopTaosd
$TDENGINE_DIR
/debug/build/bin/taosd
-c
$TDENGINE_DIR
/debug/test/cfg
>
/dev/null &
...
...
tests/perftest-scripts/perftest-taosdemo.sh
浏览文件 @
07b38c1c
#!/bin/bash
WORK_DIR
=
/mnt/root
TDENGINE_DIR
=
/root/TDengine
walLevel
=
`
grep
"^walLevel"
/etc/taos/taos.cfg |
awk
'{print $2}'
`
if
[[
"
$walLevel
"
-eq
"2"
]]
;
then
...
...
@@ -75,6 +76,14 @@ function runCreateTableThenInsert {
demoRPS
=
`
grep
"records
\/
second"
taosdemo-
$walPostfix
-
$today
.log |
tail
-n1
|
awk
'{print $13}'
`
}
function
queryPerformance
{
echoInfo
"Restart Taosd"
restartTaosd
cd
$TDENGINE_DIR
/tests/pytest
python3 query/queryPerformance.py
}
function
generateTaosdemoPlot
{
echo
"
${
today
}
$walPostfix
, demoCreateTableOnly:
${
demoCreateTableOnly
}
, demoDeleteTableOnly:
${
demoDeleteTableOnly
}
, demoTableAndInsert:
${
demoTableAndInsert
}
"
|
tee
-a
taosdemo-
$today
.log
echo
"
${
today
}
,
${
demoCreateTableOnly
}
,
${
demoDeleteTableOnly
}
,
${
demoTableAndInsert
}
"
>>
taosdemo-
$walPostfix
-report
.csv
...
...
@@ -101,13 +110,16 @@ today=`date +"%Y%m%d"`
cd
$WORK_DIR
echoInfo
"Test Create Table Only "
runCreateTableOnly
echoInfo
"Test
Create Table then Insert data
"
echoInfo
"Test
Delete Table Only
"
runDeleteTableOnly
echoInfo
"Test Create Table then Insert data"
runCreateTableThenInsert
echoInfo
"Query Performance for 10 Billion Records"
queryPerformance
echoInfo
"Generate plot for taosdemo"
generateTaosdemoPlot
tar
czf
$WORK_DIR
/taos-log-taosdemo-
$today
.tar.gz
$logDir
/
*
echoInfo
"End of TaosDemo Test"
|
tee
-a
$WORK_DIR
/cron.log
tests/pytest/query/queryPerformance.py
0 → 100644
浏览文件 @
07b38c1c
###################################################################
# Copyright (c) 2016 by TAOS Technologies, Inc.
# All rights reserved.
#
# This file is proprietary and confidential to TAOS Technologies.
# No part of this file may be reproduced, stored, transmitted,
# disclosed or used in any form or by any means other than as
# expressly provided by the written permission from Jianhui Tao
#
###################################################################
# -*- coding: utf-8 -*-
import
sys
import
os
import
taos
import
time
class
taosdemoQueryPerformace
:
def
initConnection
(
self
):
self
.
host
=
"127.0.0.1"
self
.
user
=
"root"
self
.
password
=
"taosdata"
self
.
config
=
"/etc/taos"
self
.
conn
=
taos
.
connect
(
self
.
host
,
self
.
user
,
self
.
password
,
self
.
config
)
def
query
(
self
):
cursor
=
self
.
conn
.
cursor
()
cursor
.
execute
(
"use test"
)
totalTime
=
0
for
i
in
range
(
100
):
startTime
=
time
.
time
()
cursor
.
execute
(
"select count(*) from test.meters"
)
totalTime
+=
time
.
time
()
-
startTime
print
(
"query time for: select count(*) from test.meters %f seconds"
%
(
totalTime
/
100
))
totalTime
=
0
for
i
in
range
(
100
):
startTime
=
time
.
time
()
cursor
.
execute
(
"select avg(f1), max(f2), min(f3) from test.meters"
)
totalTime
+=
time
.
time
()
-
startTime
print
(
"query time for: select avg(f1), max(f2), min(f3) from test.meters %f seconds"
%
(
totalTime
/
100
))
totalTime
=
0
for
i
in
range
(
100
):
startTime
=
time
.
time
()
cursor
.
execute
(
"select count(*) from test.meters where loc='beijing'"
)
totalTime
+=
time
.
time
()
-
startTime
print
(
"query time for: select count(*) from test.meters where loc='beijing' %f seconds"
%
(
totalTime
/
100
))
totalTime
=
0
for
i
in
range
(
100
):
startTime
=
time
.
time
()
cursor
.
execute
(
"select avg(f1), max(f2), min(f3) from test.meters where areaid=10"
)
totalTime
+=
time
.
time
()
-
startTime
print
(
"query time for: select avg(f1), max(f2), min(f3) from test.meters where areaid=10 %f seconds"
%
(
totalTime
/
100
))
totalTime
=
0
for
i
in
range
(
100
):
startTime
=
time
.
time
()
cursor
.
execute
(
"select avg(f1), max(f2), min(f3) from test.t10 interval(10s)"
)
totalTime
+=
time
.
time
()
-
startTime
print
(
"query time for: select avg(f1), max(f2), min(f3) from test.t10 interval(10s) %f seconds"
%
(
totalTime
/
100
))
totalTime
=
0
for
i
in
range
(
100
):
startTime
=
time
.
time
()
cursor
.
execute
(
"select last_row(*) from meters"
)
totalTime
+=
time
.
time
()
-
startTime
print
(
"query time for: select last_row(*) from meters %f seconds"
%
(
totalTime
/
100
))
if
__name__
==
'__main__'
:
perftest
=
taosdemoQueryPerformace
()
perftest
.
initConnection
()
perftest
.
query
()
\ No newline at end of file
tests/script/general/parser/auto_create_tb_drop_tb.sim
浏览文件 @
07b38c1c
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c walLevel -v 1
system sh/cfg.sh -n dnode1 -c maxTablesPerVnode -v 1
system sh/cfg.sh -n dnode1 -c ctime -v 30
system sh/exec.sh -n dnode1 -s start
sleep 3000
...
...
@@ -21,7 +22,7 @@ $stb = $stbPrefix . $i
sql drop database $db -x step1
step1:
sql create database $db maxrows 200 cache 2
maxTables 4
sql create database $db maxrows 200 cache 2
print ====== create tables
sql use $db
...
...
tests/script/general/stable/disk.sim
浏览文件 @
07b38c1c
...
...
@@ -23,7 +23,7 @@ $i = 0
$db = $dbPrefix . $i
$mt = $mtPrefix . $i
sql create database $db
maxTables 4
sql create database $db
sql use $db
sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol int)
...
...
tests/script/general/stable/vnode3.sim
浏览文件 @
07b38c1c
...
...
@@ -22,7 +22,7 @@ $i = 0
$db = $dbPrefix . $i
$mt = $mtPrefix . $i
sql create database $db
maxTables 4
sql create database $db
sql use $db
sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol int)
...
...
tests/script/general/table/vgroup.sim
浏览文件 @
07b38c1c
...
...
@@ -15,7 +15,7 @@ $db = $dbPrefix . $i
$tb = $tbPrefix . $i
print =================== step 1
sql create database $db
maxTables 4
sql create database $db
sql use $db
sql show vgroups
if $rows != 0 then
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录