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