Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
be73f15a
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看板
未验证
提交
be73f15a
编写于
3月 04, 2022
作者:
X
xiao-yu-wang
提交者:
GitHub
3月 04, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #10559 from taosdata/feature/3.0_query_integrate_wxy
TD-13706 integration create table stmt and insert stmt
上级
2beeacf1
92cd252b
变更
22
显示空白变更内容
内联
并排
Showing
22 changed file
with
1436 addition
and
1308 deletion
+1436
-1308
include/common/ttokendef.h
include/common/ttokendef.h
+49
-48
include/libs/nodes/nodes.h
include/libs/nodes/nodes.h
+3
-1
include/libs/nodes/plannodes.h
include/libs/nodes/plannodes.h
+1
-1
include/libs/nodes/querynodes.h
include/libs/nodes/querynodes.h
+1
-0
include/libs/parser/parser.h
include/libs/parser/parser.h
+3
-1
include/libs/planner/planner.h
include/libs/planner/planner.h
+1
-1
source/client/src/clientImpl.c
source/client/src/clientImpl.c
+12
-4
source/libs/nodes/src/nodesCloneFuncs.c
source/libs/nodes/src/nodesCloneFuncs.c
+0
-1
source/libs/nodes/src/nodesCodeFuncs.c
source/libs/nodes/src/nodesCodeFuncs.c
+5
-2
source/libs/nodes/src/nodesUtilFuncs.c
source/libs/nodes/src/nodesUtilFuncs.c
+13
-1
source/libs/parser/inc/new_sql.y
source/libs/parser/inc/new_sql.y
+4
-3
source/libs/parser/src/astCreateFuncs.c
source/libs/parser/src/astCreateFuncs.c
+4
-4
source/libs/parser/src/astParse.c
source/libs/parser/src/astParse.c
+1
-0
source/libs/parser/src/astTranslate.c
source/libs/parser/src/astTranslate.c
+72
-14
source/libs/parser/src/insertParser.c
source/libs/parser/src/insertParser.c
+9
-5
source/libs/parser/src/new_sql.c
source/libs/parser/src/new_sql.c
+1199
-1194
source/libs/parser/src/ttokenizer.c
source/libs/parser/src/ttokenizer.c
+1
-1
source/libs/planner/inc/plannerInt.h
source/libs/planner/inc/plannerInt.h
+1
-1
source/libs/planner/src/logicPlan.c
source/libs/planner/src/logicPlan.c
+1
-0
source/libs/planner/src/physicalPlan.c
source/libs/planner/src/physicalPlan.c
+53
-23
source/libs/planner/src/planner.c
source/libs/planner/src/planner.c
+2
-2
source/libs/planner/test/plannerTest.cpp
source/libs/planner/test/plannerTest.cpp
+1
-1
未找到文件。
include/common/ttokendef.h
浏览文件 @
be73f15a
...
...
@@ -85,54 +85,55 @@
#define TK_DECIMAL 67
#define TK_SHOW 68
#define TK_DATABASES 69
#define TK_NK_FLOAT 70
#define TK_NK_BOOL 71
#define TK_NK_VARIABLE 72
#define TK_BETWEEN 73
#define TK_IS 74
#define TK_NULL 75
#define TK_NK_LT 76
#define TK_NK_GT 77
#define TK_NK_LE 78
#define TK_NK_GE 79
#define TK_NK_NE 80
#define TK_NK_EQ 81
#define TK_LIKE 82
#define TK_MATCH 83
#define TK_NMATCH 84
#define TK_IN 85
#define TK_FROM 86
#define TK_AS 87
#define TK_JOIN 88
#define TK_ON 89
#define TK_INNER 90
#define TK_SELECT 91
#define TK_DISTINCT 92
#define TK_WHERE 93
#define TK_PARTITION 94
#define TK_BY 95
#define TK_SESSION 96
#define TK_STATE_WINDOW 97
#define TK_INTERVAL 98
#define TK_SLIDING 99
#define TK_FILL 100
#define TK_VALUE 101
#define TK_NONE 102
#define TK_PREV 103
#define TK_LINEAR 104
#define TK_NEXT 105
#define TK_GROUP 106
#define TK_HAVING 107
#define TK_ORDER 108
#define TK_SLIMIT 109
#define TK_SOFFSET 110
#define TK_LIMIT 111
#define TK_OFFSET 112
#define TK_ASC 113
#define TK_DESC 114
#define TK_NULLS 115
#define TK_FIRST 116
#define TK_LAST 117
#define TK_TABLES 70
#define TK_NK_FLOAT 71
#define TK_NK_BOOL 72
#define TK_NK_VARIABLE 73
#define TK_BETWEEN 74
#define TK_IS 75
#define TK_NULL 76
#define TK_NK_LT 77
#define TK_NK_GT 78
#define TK_NK_LE 79
#define TK_NK_GE 80
#define TK_NK_NE 81
#define TK_NK_EQ 82
#define TK_LIKE 83
#define TK_MATCH 84
#define TK_NMATCH 85
#define TK_IN 86
#define TK_FROM 87
#define TK_AS 88
#define TK_JOIN 89
#define TK_ON 90
#define TK_INNER 91
#define TK_SELECT 92
#define TK_DISTINCT 93
#define TK_WHERE 94
#define TK_PARTITION 95
#define TK_BY 96
#define TK_SESSION 97
#define TK_STATE_WINDOW 98
#define TK_INTERVAL 99
#define TK_SLIDING 100
#define TK_FILL 101
#define TK_VALUE 102
#define TK_NONE 103
#define TK_PREV 104
#define TK_LINEAR 105
#define TK_NEXT 106
#define TK_GROUP 107
#define TK_HAVING 108
#define TK_ORDER 109
#define TK_SLIMIT 110
#define TK_SOFFSET 111
#define TK_LIMIT 112
#define TK_OFFSET 113
#define TK_ASC 114
#define TK_DESC 115
#define TK_NULLS 116
#define TK_FIRST 117
#define TK_LAST 118
#define TK_SPACE 300
#define TK_NK_COMMENT 301
...
...
include/libs/nodes/nodes.h
浏览文件 @
be73f15a
...
...
@@ -74,7 +74,8 @@ typedef enum ENodeType {
QUERY_NODE_CREATE_DATABASE_STMT
,
QUERY_NODE_CREATE_TABLE_STMT
,
QUERY_NODE_USE_DATABASE_STMT
,
QUERY_NODE_SHOW_DATABASE_STMT
,
// temp
QUERY_NODE_SHOW_DATABASES_STMT
,
// temp
QUERY_NODE_SHOW_TABLES_STMT
,
// temp
// logic plan node
QUERY_NODE_LOGIC_PLAN_SCAN
,
...
...
@@ -128,6 +129,7 @@ void nodesDestroyNode(SNodeptr pNode);
SNodeList
*
nodesMakeList
();
int32_t
nodesListAppend
(
SNodeList
*
pList
,
SNodeptr
pNode
);
int32_t
nodesListStrictAppend
(
SNodeList
*
pList
,
SNodeptr
pNode
);
int32_t
nodesListAppendList
(
SNodeList
*
pTarget
,
SNodeList
*
pSrc
);
SListCell
*
nodesListErase
(
SNodeList
*
pList
,
SListCell
*
pCell
);
SNodeptr
nodesListGetNode
(
SNodeList
*
pList
,
int32_t
index
);
...
...
include/libs/nodes/plannodes.h
浏览文件 @
be73f15a
...
...
@@ -43,6 +43,7 @@ typedef struct SScanLogicNode {
SLogicNode
node
;
SNodeList
*
pScanCols
;
struct
STableMeta
*
pMeta
;
SVgroupsInfo
*
pVgroupList
;
EScanType
scanType
;
uint8_t
scanFlag
;
// denotes reversed scan of data or not
STimeWindow
scanRange
;
...
...
@@ -84,7 +85,6 @@ typedef struct SSubLogicPlan {
SNodeList
*
pChildren
;
SNodeList
*
pParents
;
SLogicNode
*
pNode
;
SQueryNodeAddr
execNode
;
ESubplanType
subplanType
;
int32_t
level
;
}
SSubLogicPlan
;
...
...
include/libs/nodes/querynodes.h
浏览文件 @
be73f15a
...
...
@@ -123,6 +123,7 @@ struct STableMeta;
typedef
struct
SRealTableNode
{
STableNode
table
;
// QUERY_NODE_REAL_TABLE
struct
STableMeta
*
pMeta
;
SVgroupsInfo
*
pVgroupList
;
}
SRealTableNode
;
typedef
struct
STempTableNode
{
...
...
include/libs/parser/parser.h
浏览文件 @
be73f15a
...
...
@@ -38,8 +38,9 @@ typedef struct SParseContext {
typedef
struct
SCmdMsgInfo
{
int16_t
msgType
;
SEpSet
epSet
;
char
*
pMsg
;
void
*
pMsg
;
int32_t
msgLen
;
void
*
pExtension
;
// todo remove it soon
}
SCmdMsgInfo
;
typedef
struct
SQuery
{
...
...
@@ -50,6 +51,7 @@ typedef struct SQuery {
int32_t
numOfResCols
;
SSchema
*
pResSchema
;
SCmdMsgInfo
*
pCmdMsg
;
int32_t
msgType
;
}
SQuery
;
int32_t
qParseQuerySql
(
SParseContext
*
pCxt
,
SQuery
**
pQuery
);
...
...
include/libs/planner/planner.h
浏览文件 @
be73f15a
...
...
@@ -28,7 +28,7 @@ typedef struct SPlanContext {
}
SPlanContext
;
// Create the physical plan for the query, according to the AST.
int32_t
qCreateQueryPlan
(
SPlanContext
*
pCxt
,
SQueryPlan
**
pPlan
);
int32_t
qCreateQueryPlan
(
SPlanContext
*
pCxt
,
SQueryPlan
**
pPlan
,
SArray
*
pExecNodeList
);
// Set datasource of this subplan, multiple calls may be made to a subplan.
// @subplan subplan to be schedule
...
...
source/client/src/clientImpl.c
浏览文件 @
be73f15a
...
...
@@ -176,6 +176,14 @@ int32_t execDdlQuery(SRequestObj* pRequest, SQuery* pQuery) {
STscObj
*
pTscObj
=
pRequest
->
pTscObj
;
SMsgSendInfo
*
pSendMsg
=
buildMsgInfoImpl
(
pRequest
);
if
(
pMsgInfo
->
msgType
==
TDMT_VND_SHOW_TABLES
)
{
SShowReqInfo
*
pShowReqInfo
=
&
pRequest
->
body
.
showInfo
;
if
(
pShowReqInfo
->
pArray
==
NULL
)
{
pShowReqInfo
->
currentIndex
=
0
;
// set the first vnode/ then iterate the next vnode
pShowReqInfo
->
pArray
=
pMsgInfo
->
pExtension
;
}
}
int64_t
transporterId
=
0
;
asyncSendMsgToServer
(
pTscObj
->
pAppInfo
->
pTransporter
,
&
pMsgInfo
->
epSet
,
&
transporterId
,
pSendMsg
);
...
...
@@ -183,10 +191,10 @@ int32_t execDdlQuery(SRequestObj* pRequest, SQuery* pQuery) {
return
TSDB_CODE_SUCCESS
;
}
int32_t
getPlan
(
SRequestObj
*
pRequest
,
SQuery
*
pQuery
,
SQueryPlan
**
p
Dag
,
SArray
*
pNodeList
)
{
pRequest
->
type
=
pQuery
->
sqlNode
Type
;
int32_t
getPlan
(
SRequestObj
*
pRequest
,
SQuery
*
pQuery
,
SQueryPlan
**
p
Plan
,
SArray
*
pNodeList
)
{
pRequest
->
type
=
pQuery
->
msg
Type
;
SPlanContext
cxt
=
{
.
queryId
=
pRequest
->
requestId
,
.
pAstRoot
=
pQuery
->
pRoot
};
int32_t
code
=
qCreateQueryPlan
(
&
cxt
,
p
Dag
);
int32_t
code
=
qCreateQueryPlan
(
&
cxt
,
p
Plan
,
pNodeList
);
if
(
code
!=
0
)
{
return
code
;
}
...
...
@@ -219,7 +227,7 @@ int32_t scheduleQuery(SRequestObj* pRequest, SQueryPlan* pDag, SArray* pNodeList
return
pRequest
->
code
;
}
if
(
T
SDB_SQL_INSERT
==
pRequest
->
type
||
TSDB_SQL
_CREATE_TABLE
==
pRequest
->
type
)
{
if
(
T
DMT_VND_SUBMIT
==
pRequest
->
type
||
TDMT_VND
_CREATE_TABLE
==
pRequest
->
type
)
{
pRequest
->
body
.
resInfo
.
numOfRows
=
res
.
numOfRows
;
if
(
pRequest
->
body
.
queryJob
!=
0
)
{
...
...
source/libs/nodes/src/nodesCloneFuncs.c
浏览文件 @
be73f15a
...
...
@@ -160,7 +160,6 @@ static SNode* groupingSetNodeCopy(const SGroupingSetNode* pSrc, SGroupingSetNode
static
SNode
*
logicSubplanCopy
(
const
SSubLogicPlan
*
pSrc
,
SSubLogicPlan
*
pDst
)
{
COPY_NODE_FIELD
(
pNode
);
COPY_SCALAR_FIELD
(
execNode
);
COPY_SCALAR_FIELD
(
subplanType
);
return
(
SNode
*
)
pDst
;
}
...
...
source/libs/nodes/src/nodesCodeFuncs.c
浏览文件 @
be73f15a
...
...
@@ -80,8 +80,10 @@ const char* nodesNodeName(ENodeType type) {
return
"CreateTableStmt"
;
case
QUERY_NODE_USE_DATABASE_STMT
:
return
"UseDatabaseStmt"
;
case
QUERY_NODE_SHOW_DATABASE_STMT
:
case
QUERY_NODE_SHOW_DATABASE
S
_STMT
:
return
"ShowDatabaseStmt"
;
case
QUERY_NODE_SHOW_TABLES_STMT
:
return
"ShowTablesStmt"
;
case
QUERY_NODE_LOGIC_PLAN_SCAN
:
return
"LogicScan"
;
case
QUERY_NODE_LOGIC_PLAN_JOIN
:
...
...
@@ -1322,7 +1324,8 @@ static int32_t specificNodeToJson(const void* pObj, SJson* pJson) {
case
QUERY_NODE_CREATE_DATABASE_STMT
:
case
QUERY_NODE_CREATE_TABLE_STMT
:
case
QUERY_NODE_USE_DATABASE_STMT
:
case
QUERY_NODE_SHOW_DATABASE_STMT
:
case
QUERY_NODE_SHOW_DATABASES_STMT
:
case
QUERY_NODE_SHOW_TABLES_STMT
:
break
;
case
QUERY_NODE_LOGIC_PLAN_SCAN
:
return
logicScanNodeToJson
(
pObj
,
pJson
);
...
...
source/libs/nodes/src/nodesUtilFuncs.c
浏览文件 @
be73f15a
...
...
@@ -86,7 +86,8 @@ SNodeptr nodesMakeNode(ENodeType type) {
return
makeNode
(
type
,
sizeof
(
SCreateTableStmt
));
case
QUERY_NODE_USE_DATABASE_STMT
:
return
makeNode
(
type
,
sizeof
(
SUseDatabaseStmt
));
case
QUERY_NODE_SHOW_DATABASE_STMT
:
case
QUERY_NODE_SHOW_DATABASES_STMT
:
case
QUERY_NODE_SHOW_TABLES_STMT
:
return
makeNode
(
type
,
sizeof
(
SNode
));;
case
QUERY_NODE_LOGIC_PLAN_SCAN
:
return
makeNode
(
type
,
sizeof
(
SScanLogicNode
));
...
...
@@ -202,6 +203,17 @@ int32_t nodesListAppend(SNodeList* pList, SNodeptr pNode) {
return
TSDB_CODE_SUCCESS
;
}
int32_t
nodesListStrictAppend
(
SNodeList
*
pList
,
SNodeptr
pNode
)
{
if
(
NULL
==
pNode
)
{
return
TSDB_CODE_OUT_OF_MEMORY
;
}
int32_t
code
=
nodesListAppend
(
pList
,
pNode
);
if
(
TSDB_CODE_SUCCESS
!=
code
)
{
nodesDestroyNode
(
pNode
);
}
return
code
;
}
int32_t
nodesListAppendList
(
SNodeList
*
pTarget
,
SNodeList
*
pSrc
)
{
if
(
NULL
==
pTarget
||
NULL
==
pSrc
)
{
return
TSDB_CODE_SUCCESS
;
...
...
source/libs/parser/inc/new_sql.y
浏览文件 @
be73f15a
...
...
@@ -101,8 +101,8 @@ cmd ::= CREATE TABLE exists_opt(A) full_table_name(B)
%type full_table_name { STokenPair }
%destructor full_table_name { }
full_table_name(A) ::= NK_ID(B). { STokenPair t = { .first =
B, .second = nil_token
}; A = t; }
full_table_name(A) ::= NK_ID(B) NK_DOT NK_ID(C). { STokenPair t = { .first = B, .second = C}; A = t; }
full_table_name(A) ::= NK_ID(B). { STokenPair t = { .first =
nil_token, .second = B
}; A = t; }
full_table_name(A) ::= NK_ID(B) NK_DOT NK_ID(C). { STokenPair t = { .first = B, .second = C
}; A = t; }
%type column_def_list { SNodeList* }
%destructor column_def_list { nodesDestroyList($$); }
...
...
@@ -146,7 +146,8 @@ table_options(A) ::= table_options(B) KEEP NK_INTEGER(C).
table_options(A) ::= table_options(B) TTL NK_INTEGER(C). { A = setTableOption(pCxt, B, TABLE_OPTION_TTL, &C); }
/************************************************ show ***************************************************************/
cmd ::= SHOW DATABASES. { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DATABASE_STMT); }
cmd ::= SHOW DATABASES. { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DATABASES_STMT); }
cmd ::= SHOW TABLES. { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TABLES_STMT); }
/************************************************ select *************************************************************/
cmd ::= query_expression(A). { PARSER_TRACE; pCxt->pRootNode = A; }
...
...
source/libs/parser/src/astCreateFuncs.c
浏览文件 @
be73f15a
...
...
@@ -714,18 +714,18 @@ SNode* createColumnDefNode(SAstCreateContext* pCxt, const SToken* pColName, SDat
strncpy
(
pCol
->
colName
,
pColName
->
z
,
pColName
->
n
);
pCol
->
dataType
=
dataType
;
if
(
NULL
!=
pComment
)
{
strncpy
(
pCol
->
co
lName
,
pColName
->
z
,
pColName
->
n
);
strncpy
(
pCol
->
co
mments
,
pComment
->
z
,
pComment
->
n
);
}
return
(
SNode
*
)
pCol
;
}
SDataType
createDataType
(
uint8_t
type
)
{
SDataType
dt
=
{
.
type
=
type
,
.
precision
=
0
,
.
scale
=
0
,
.
bytes
=
0
};
SDataType
dt
=
{
.
type
=
type
,
.
precision
=
0
,
.
scale
=
0
,
.
bytes
=
tDataTypes
[
type
].
bytes
};
return
dt
;
}
SDataType
createVarLenDataType
(
uint8_t
type
,
const
SToken
*
pLen
)
{
SDataType
dt
=
{
.
type
=
type
,
.
precision
=
0
,
.
scale
=
0
,
.
bytes
=
0
};
SDataType
dt
=
{
.
type
=
type
,
.
precision
=
0
,
.
scale
=
0
,
.
bytes
=
tDataTypes
[
type
].
bytes
};
return
dt
;
}
...
...
@@ -751,7 +751,7 @@ SNode* createUseDatabaseStmt(SAstCreateContext* pCxt, const SToken* pDbName) {
}
SNode
*
createShowStmt
(
SAstCreateContext
*
pCxt
,
ENodeType
type
)
{
SNode
*
pStmt
=
nodesMakeNode
(
QUERY_NODE_SHOW_DATABASE_STMT
);;
SNode
*
pStmt
=
nodesMakeNode
(
type
);;
CHECK_OUT_OF_MEM
(
pStmt
);
return
pStmt
;
}
source/libs/parser/src/astParse.c
浏览文件 @
be73f15a
...
...
@@ -39,6 +39,7 @@ static void setQuery(SAstCreateContext* pCxt, SQuery* pQuery) {
pQuery
->
haveResultSet
=
false
;
pQuery
->
directRpc
=
true
;
}
pQuery
->
msgType
=
(
QUERY_NODE_CREATE_TABLE_STMT
==
type
?
TDMT_VND_CREATE_TABLE
:
TDMT_VND_QUERY
);
}
int32_t
doParse
(
SParseContext
*
pParseCxt
,
SQuery
**
pQuery
)
{
...
...
source/libs/parser/src/astTranslate.c
浏览文件 @
be73f15a
...
...
@@ -561,6 +561,29 @@ static int32_t checkAggColCoexist(STranslateContext* pCxt, SSelectStmt* pSelect)
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
setTableVgroupList
(
STranslateContext
*
pCxt
,
SName
*
name
,
SVgroupsInfo
**
pVgList
)
{
SArray
*
vgroupList
=
NULL
;
int32_t
code
=
catalogGetTableDistVgInfo
(
pCxt
->
pParseCxt
->
pCatalog
,
pCxt
->
pParseCxt
->
pTransporter
,
&
(
pCxt
->
pParseCxt
->
mgmtEpSet
),
name
,
&
vgroupList
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
size_t
vgroupNum
=
taosArrayGetSize
(
vgroupList
);
SVgroupsInfo
*
vgList
=
calloc
(
1
,
sizeof
(
SVgroupsInfo
)
+
sizeof
(
SVgroupInfo
)
*
vgroupNum
);
vgList
->
numOfVgroups
=
vgroupNum
;
for
(
int32_t
i
=
0
;
i
<
vgroupNum
;
++
i
)
{
SVgroupInfo
*
vg
=
taosArrayGet
(
vgroupList
,
i
);
vgList
->
vgroups
[
i
]
=
*
vg
;
}
*
pVgList
=
vgList
;
taosArrayDestroy
(
vgroupList
);
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
translateTable
(
STranslateContext
*
pCxt
,
SNode
*
pTable
)
{
int32_t
code
=
TSDB_CODE_SUCCESS
;
switch
(
nodeType
(
pTable
))
{
...
...
@@ -572,6 +595,10 @@ static int32_t translateTable(STranslateContext* pCxt, SNode* pTable) {
if
(
TSDB_CODE_SUCCESS
!=
code
)
{
return
generateSyntaxErrMsg
(
pCxt
,
TSDB_CODE_PAR_TABLE_NOT_EXIST
,
pRealTable
->
table
.
tableName
);
}
code
=
setTableVgroupList
(
pCxt
,
&
name
,
&
(
pRealTable
->
pVgroupList
));
if
(
TSDB_CODE_SUCCESS
!=
code
)
{
return
code
;
}
code
=
addNamespace
(
pCxt
,
pRealTable
);
break
;
}
...
...
@@ -852,11 +879,7 @@ static int32_t translateUseDatabase(STranslateContext* pCxt, SUseDatabaseStmt* p
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
translateCreateTable
(
STranslateContext
*
pCxt
,
SCreateTableStmt
*
pStmt
)
{
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
translateShow
(
STranslateContext
*
pCxt
)
{
static
int32_t
translateShowDatabases
(
STranslateContext
*
pCxt
)
{
SShowReq
showReq
=
{
.
type
=
TSDB_MGMT_TABLE_DB
};
pCxt
->
pCmdMsg
=
malloc
(
sizeof
(
SCmdMsgInfo
));
...
...
@@ -875,6 +898,34 @@ static int32_t translateShow(STranslateContext* pCxt) {
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
translateShowTables
(
STranslateContext
*
pCxt
)
{
SName
name
=
{
0
};
SVShowTablesReq
*
pShowReq
=
calloc
(
1
,
sizeof
(
SVShowTablesReq
));
tNameSetDbName
(
&
name
,
pCxt
->
pParseCxt
->
acctId
,
pCxt
->
pParseCxt
->
db
,
strlen
(
pCxt
->
pParseCxt
->
db
));
char
dbFname
[
TSDB_DB_FNAME_LEN
]
=
{
0
};
tNameGetFullDbName
(
&
name
,
dbFname
);
SArray
*
array
=
NULL
;
int32_t
code
=
catalogGetDBVgInfo
(
pCxt
->
pParseCxt
->
pCatalog
,
pCxt
->
pParseCxt
->
pTransporter
,
&
pCxt
->
pParseCxt
->
mgmtEpSet
,
dbFname
,
false
,
&
array
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
SVgroupInfo
*
info
=
taosArrayGet
(
array
,
0
);
pShowReq
->
head
.
vgId
=
htonl
(
info
->
vgId
);
pCxt
->
pCmdMsg
=
malloc
(
sizeof
(
SCmdMsgInfo
));
if
(
NULL
==
pCxt
->
pCmdMsg
)
{
return
TSDB_CODE_OUT_OF_MEMORY
;
}
pCxt
->
pCmdMsg
->
epSet
=
info
->
epset
;
pCxt
->
pCmdMsg
->
msgType
=
TDMT_VND_SHOW_TABLES
;
pCxt
->
pCmdMsg
->
msgLen
=
sizeof
(
SVShowTablesReq
);
pCxt
->
pCmdMsg
->
pMsg
=
pShowReq
;
pCxt
->
pCmdMsg
->
pExtension
=
array
;
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
translateQuery
(
STranslateContext
*
pCxt
,
SNode
*
pNode
)
{
int32_t
code
=
TSDB_CODE_SUCCESS
;
switch
(
nodeType
(
pNode
))
{
...
...
@@ -887,10 +938,11 @@ static int32_t translateQuery(STranslateContext* pCxt, SNode* pNode) {
case
QUERY_NODE_USE_DATABASE_STMT
:
code
=
translateUseDatabase
(
pCxt
,
(
SUseDatabaseStmt
*
)
pNode
);
break
;
case
QUERY_NODE_SHOW_DATABASE_STMT
:
code
=
translateShow
(
pCxt
);
case
QUERY_NODE_CREATE_TABLE_STMT
:
code
=
translateCreateTable
(
pCxt
,
(
SCreateTableStmt
*
)
pNode
);
case
QUERY_NODE_SHOW_DATABASES_STMT
:
code
=
translateShowDatabases
(
pCxt
);
break
;
case
QUERY_NODE_SHOW_TABLES_STMT
:
code
=
translateShowTables
(
pCxt
);
break
;
default:
break
;
...
...
@@ -942,9 +994,10 @@ typedef struct SVgroupTablesBatch {
SVgroupInfo
info
;
}
SVgroupTablesBatch
;
static
void
toSchema
(
const
SColumnNode
*
pCol
,
SSchema
*
pSchema
)
{
pSchema
->
type
=
pCol
->
node
.
resType
.
type
;
pSchema
->
bytes
=
pCol
->
node
.
resType
.
bytes
;
static
void
toSchema
(
const
SColumnDefNode
*
pCol
,
int32_t
colId
,
SSchema
*
pSchema
)
{
pSchema
->
colId
=
colId
;
pSchema
->
type
=
pCol
->
dataType
.
type
;
pSchema
->
bytes
=
pCol
->
dataType
.
bytes
;
strcpy
(
pSchema
->
name
,
pCol
->
colName
);
}
...
...
@@ -960,7 +1013,8 @@ static int32_t doBuildSingleTableBatchReq(SName* pTableName, SNodeList* pColumns
SNode
*
pCol
;
int32_t
index
=
0
;
FOREACH
(
pCol
,
pColumns
)
{
toSchema
((
SColumnNode
*
)
pCol
,
req
.
ntbCfg
.
pSchema
+
index
++
);
toSchema
((
SColumnDefNode
*
)
pCol
,
index
+
1
,
req
.
ntbCfg
.
pSchema
+
index
);
++
index
;
}
pBatch
->
info
=
*
pVgroupInfo
;
...
...
@@ -1018,7 +1072,11 @@ static int32_t rewriteQuery(STranslateContext* pCxt, SQuery* pQuery) {
SCreateTableStmt
*
pStmt
=
(
SCreateTableStmt
*
)
pQuery
->
pRoot
;
SName
tableName
=
{
.
type
=
TSDB_TABLE_NAME_T
,
.
acctId
=
pCxt
->
pParseCxt
->
acctId
};
if
(
'\0'
==
pStmt
->
dbName
[
0
])
{
strcpy
(
tableName
.
dbname
,
pCxt
->
pParseCxt
->
db
);
}
else
{
strcpy
(
tableName
.
dbname
,
pStmt
->
dbName
);
}
strcpy
(
tableName
.
tname
,
pStmt
->
tableName
);
SVgroupInfo
info
=
{
0
};
catalogGetTableHashVgroup
(
pCxt
->
pParseCxt
->
pCatalog
,
pCxt
->
pParseCxt
->
pTransporter
,
&
pCxt
->
pParseCxt
->
mgmtEpSet
,
&
tableName
,
&
info
);
...
...
source/libs/parser/src/insertParser.c
浏览文件 @
be73f15a
...
...
@@ -159,12 +159,9 @@ static int32_t createSName(SName* pName, SToken* pTableName, SParseContext* pPar
}
static
int32_t
getTableMeta
(
SInsertParseContext
*
pCxt
,
SToken
*
pTname
)
{
SName
name
=
{
0
};
createSName
(
&
name
,
pTname
,
pCxt
->
pComCxt
,
&
pCxt
->
msg
);
char
tableName
[
TSDB_TABLE_FNAME_LEN
]
=
{
0
};
tNameExtractFullName
(
&
name
,
tableName
);
SParseContext
*
pBasicCtx
=
pCxt
->
pComCxt
;
SName
name
=
{
0
};
createSName
(
&
name
,
pTname
,
pBasicCtx
,
&
pCxt
->
msg
);
CHECK_CODE
(
catalogGetTableMeta
(
pBasicCtx
->
pCatalog
,
pBasicCtx
->
pTransporter
,
&
pBasicCtx
->
mgmtEpSet
,
&
name
,
&
pCxt
->
pTableMeta
));
SVgroupInfo
vg
;
CHECK_CODE
(
catalogGetTableHashVgroup
(
pBasicCtx
->
pCatalog
,
pBasicCtx
->
pTransporter
,
&
pBasicCtx
->
mgmtEpSet
,
&
name
,
&
vg
));
...
...
@@ -939,6 +936,13 @@ int32_t parseInsertSql(SParseContext* pContext, SQuery** pQuery) {
return
TSDB_CODE_TSC_OUT_OF_MEMORY
;
}
*
pQuery
=
calloc
(
1
,
sizeof
(
SQuery
));
if
(
NULL
==
*
pQuery
)
{
return
TSDB_CODE_OUT_OF_MEMORY
;
}
(
*
pQuery
)
->
directRpc
=
false
;
(
*
pQuery
)
->
haveResultSet
=
false
;
(
*
pQuery
)
->
msgType
=
TDMT_VND_SUBMIT
;
(
*
pQuery
)
->
pRoot
=
(
SNode
*
)
context
.
pOutput
;
context
.
pOutput
->
payloadType
=
PAYLOAD_TYPE_KV
;
...
...
source/libs/parser/src/new_sql.c
浏览文件 @
be73f15a
...
...
@@ -109,25 +109,25 @@
#endif
/************* Begin control #defines *****************************************/
#define YYCODETYPE unsigned char
#define YYNOCODE 1
79
#define YYNOCODE 1
80
#define YYACTIONTYPE unsigned short int
#define NewParseTOKENTYPE SToken
typedef
union
{
int
yyinit
;
NewParseTOKENTYPE
yy0
;
EO
rder
yy14
;
ENullOrder
yy17
;
SDatabaseOptions
*
yy27
;
ST
ableOptions
*
yy40
;
SNodeList
*
yy6
0
;
SToken
yy105
;
S
TokenPair
yy111
;
S
Node
*
yy172
;
E
FillMode
yy202
;
EO
peratorType
yy214
;
SDataType
yy248
;
bool
yy259
;
EJoinType
yy278
;
EO
peratorType
yy20
;
STableOptions
*
yy46
;
EFillMode
yy54
;
ST
okenPair
yy57
;
SNodeList
*
yy6
4
;
bool
yy137
;
S
DatabaseOptions
*
yy199
;
S
Token
yy209
;
E
NullOrder
yy217
;
EO
rder
yy218
;
EJoinType
yy252
;
SNode
*
yy272
;
SDataType
yy304
;
}
YYMINORTYPE
;
#ifndef YYSTACKDEPTH
#define YYSTACKDEPTH 100
...
...
@@ -142,17 +142,17 @@ typedef union {
#define NewParseCTX_PARAM
#define NewParseCTX_FETCH
#define NewParseCTX_STORE
#define YYNSTATE 21
1
#define YYNRULE 19
6
#define YYNTOKEN 11
8
#define YY_MAX_SHIFT 21
0
#define YY_MIN_SHIFTREDUCE 35
2
#define YY_MAX_SHIFTREDUCE 54
7
#define YY_ERROR_ACTION 5
48
#define YY_ACCEPT_ACTION 5
49
#define YY_NO_ACTION 55
0
#define YY_MIN_REDUCE 55
1
#define YY_MAX_REDUCE 74
6
#define YYNSTATE 21
2
#define YYNRULE 19
7
#define YYNTOKEN 11
9
#define YY_MAX_SHIFT 21
1
#define YY_MIN_SHIFTREDUCE 35
3
#define YY_MAX_SHIFTREDUCE 54
9
#define YY_ERROR_ACTION 5
50
#define YY_ACCEPT_ACTION 5
51
#define YY_NO_ACTION 55
2
#define YY_MIN_REDUCE 55
3
#define YY_MAX_REDUCE 74
9
/************* End control #defines *******************************************/
#define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))
...
...
@@ -219,256 +219,255 @@ typedef union {
** yy_default[] Default action for each state.
**
*********** Begin parsing tables **********************************************/
#define YY_ACTTAB_COUNT (8
90
)
#define YY_ACTTAB_COUNT (8
71
)
static
const
YYACTIONTYPE
yy_action
[]
=
{
/* 0 */
616
,
614
,
105
,
187
,
116
,
725
,
576
,
48
,
23
,
75
,
/* 10 */
76
,
639
,
30
,
28
,
26
,
25
,
24
,
157
,
125
,
724
,
/* 20 */
678
,
100
,
128
,
723
,
678
,
30
,
28
,
26
,
25
,
24
,
/* 30 */
551
,
617
,
614
,
639
,
100
,
68
,
624
,
614
,
675
,
157
,
/* 40 */
158
,
694
,
674
,
42
,
625
,
430
,
628
,
664
,
26
,
25
,
/* 50 */
24
,
663
,
660
,
210
,
678
,
209
,
208
,
207
,
206
,
205
,
/* 60 */
204
,
203
,
202
,
201
,
150
,
200
,
199
,
198
,
197
,
196
,
/* 70 */
195
,
194
,
673
,
22
,
109
,
151
,
448
,
449
,
450
,
451
,
/* 80 */
452
,
453
,
454
,
456
,
457
,
458
,
22
,
109
,
140
,
448
,
/* 90 */
449
,
450
,
451
,
452
,
453
,
454
,
456
,
457
,
458
,
30
,
/* 100 */
28
,
26
,
25
,
24
,
381
,
185
,
184
,
183
,
385
,
182
,
/* 110 */
387
,
388
,
181
,
390
,
178
,
117
,
396
,
175
,
398
,
399
,
/* 120 */
172
,
169
,
639
,
573
,
147
,
624
,
614
,
133
,
157
,
158
,
/* 130 */
577
,
48
,
40
,
625
,
84
,
628
,
664
,
152
,
423
,
80
,
/* 140 */
99
,
660
,
10
,
639
,
142
,
497
,
624
,
614
,
421
,
143
,
/* 150 */
158
,
424
,
725
,
41
,
625
,
189
,
628
,
664
,
82
,
20
,
/* 160 */
188
,
107
,
660
,
52
,
58
,
162
,
57
,
639
,
455
,
149
,
/* 170 */
723
,
459
,
190
,
157
,
10
,
74
,
142
,
421
,
132
,
73
,
/* 180 */
489
,
118
,
691
,
639
,
6
,
485
,
624
,
614
,
58
,
143
,
/* 190 */
158
,
640
,
59
,
41
,
625
,
78
,
628
,
664
,
139
,
9
,
/* 200 */
8
,
107
,
660
,
52
,
683
,
639
,
485
,
2
,
624
,
614
,
/* 210 */
46
,
157
,
158
,
424
,
126
,
41
,
625
,
44
,
628
,
664
,
/* 220 */
695
,
58
,
692
,
107
,
660
,
737
,
141
,
53
,
671
,
672
,
/* 230 */
511
,
676
,
639
,
43
,
698
,
624
,
614
,
705
,
157
,
158
,
/* 240 */
9
,
8
,
41
,
625
,
145
,
628
,
664
,
134
,
129
,
127
,
/* 250 */
107
,
660
,
737
,
639
,
154
,
549
,
624
,
614
,
123
,
157
,
/* 260 */
158
,
721
,
60
,
41
,
625
,
160
,
628
,
664
,
488
,
29
,
/* 270 */
27
,
107
,
660
,
737
,
29
,
27
,
490
,
410
,
11
,
546
,
/* 280 */
547
,
410
,
682
,
11
,
466
,
65
,
410
,
412
,
62
,
460
,
/* 290 */
416
,
412
,
31
,
725
,
427
,
121
,
412
,
31
,
445
,
621
,
/* 300 */
122
,
1
,
619
,
114
,
106
,
704
,
1
,
57
,
114
,
64
,
/* 310 */
402
,
723
,
159
,
167
,
85
,
5
,
159
,
47
,
155
,
685
,
/* 320 */
136
,
159
,
67
,
411
,
413
,
416
,
120
,
411
,
413
,
416
,
/* 330 */
4
,
51
,
411
,
413
,
416
,
485
,
639
,
69
,
147
,
624
,
/* 340 */
614
,
420
,
157
,
158
,
45
,
139
,
90
,
625
,
58
,
628
,
/* 350 */
423
,
29
,
27
,
147
,
679
,
29
,
27
,
46
,
19
,
32
,
/* 360 */
11
,
16
,
70
,
410
,
44
,
646
,
725
,
410
,
30
,
28
,
/* 370 */
26
,
25
,
24
,
412
,
71
,
671
,
138
,
412
,
137
,
740
,
/* 380 */
57
,
725
,
110
,
1
,
723
,
114
,
156
,
7
,
153
,
114
,
/* 390 */
639
,
419
,
722
,
624
,
614
,
57
,
157
,
158
,
159
,
723
,
/* 400 */
92
,
625
,
159
,
628
,
163
,
77
,
165
,
191
,
193
,
411
,
/* 410 */
413
,
416
,
81
,
411
,
413
,
416
,
86
,
83
,
639
,
3
,
/* 420 */
31
,
624
,
614
,
98
,
157
,
158
,
87
,
14
,
42
,
625
,
/* 430 */
61
,
628
,
664
,
135
,
58
,
508
,
144
,
660
,
29
,
27
,
/* 440 */
146
,
29
,
27
,
63
,
29
,
27
,
35
,
510
,
639
,
50
,
/* 450 */
410
,
624
,
614
,
410
,
157
,
158
,
410
,
66
,
42
,
625
,
/* 460 */
412
,
628
,
664
,
412
,
504
,
36
,
412
,
661
,
503
,
21
,
/* 470 */
7
,
130
,
114
,
1
,
619
,
114
,
7
,
37
,
114
,
30
,
/* 480 */
28
,
26
,
25
,
24
,
131
,
159
,
18
,
15
,
159
,
482
,
/* 490 */
72
,
159
,
33
,
481
,
34
,
8
,
411
,
413
,
416
,
411
,
/* 500 */
413
,
416
,
411
,
413
,
416
,
639
,
618
,
56
,
624
,
614
,
/* 510 */
446
,
157
,
158
,
428
,
537
,
49
,
625
,
12
,
628
,
38
,
/* 520 */
17
,
532
,
639
,
531
,
111
,
624
,
614
,
536
,
157
,
158
,
/* 530 */
535
,
112
,
96
,
625
,
113
,
628
,
639
,
79
,
13
,
624
,
/* 540 */
614
,
608
,
157
,
158
,
607
,
414
,
96
,
625
,
119
,
628
,
/* 550 */
161
,
572
,
164
,
403
,
148
,
738
,
639
,
166
,
376
,
624
,
/* 560 */
614
,
115
,
157
,
158
,
168
,
171
,
96
,
625
,
108
,
628
,
/* 570 */
400
,
639
,
170
,
397
,
624
,
614
,
173
,
157
,
158
,
174
,
/* 580 */
176
,
49
,
625
,
639
,
628
,
179
,
624
,
614
,
391
,
157
,
/* 590 */
158
,
177
,
395
,
91
,
625
,
389
,
628
,
639
,
180
,
394
,
/* 600 */
624
,
614
,
380
,
157
,
158
,
407
,
393
,
93
,
625
,
186
,
/* 610 */
628
,
406
,
639
,
405
,
392
,
624
,
614
,
39
,
157
,
158
,
/* 620 */
353
,
739
,
88
,
625
,
639
,
628
,
372
,
624
,
614
,
192
,
/* 630 */
157
,
158
,
550
,
371
,
94
,
625
,
639
,
628
,
370
,
624
,
/* 640 */
614
,
365
,
157
,
158
,
369
,
368
,
89
,
625
,
367
,
628
,
/* 650 */
366
,
364
,
639
,
550
,
363
,
624
,
614
,
550
,
157
,
158
,
/* 660 */
362
,
361
,
95
,
625
,
360
,
628
,
639
,
359
,
358
,
624
,
/* 670 */
614
,
357
,
157
,
158
,
356
,
550
,
636
,
625
,
550
,
628
,
/* 680 */
550
,
639
,
550
,
550
,
624
,
614
,
550
,
157
,
158
,
550
,
/* 690 */
550
,
635
,
625
,
639
,
628
,
550
,
624
,
614
,
550
,
157
,
/* 700 */
158
,
550
,
550
,
634
,
625
,
639
,
628
,
550
,
624
,
614
,
/* 710 */
550
,
157
,
158
,
550
,
550
,
103
,
625
,
639
,
628
,
550
,
/* 720 */
624
,
614
,
550
,
157
,
158
,
550
,
550
,
102
,
625
,
550
,
/* 730 */
628
,
639
,
550
,
550
,
624
,
614
,
550
,
157
,
158
,
550
,
/* 740 */
550
,
104
,
625
,
639
,
628
,
139
,
624
,
614
,
550
,
157
,
/* 750 */
158
,
139
,
550
,
101
,
625
,
639
,
628
,
46
,
624
,
614
,
/* 760 */
550
,
157
,
158
,
46
,
44
,
97
,
625
,
514
,
628
,
550
,
/* 770 */
44
,
550
,
550
,
550
,
54
,
671
,
672
,
550
,
676
,
550
,
/* 780 */
55
,
671
,
672
,
550
,
676
,
550
,
550
,
30
,
28
,
26
,
/* 790 */
25
,
24
,
550
,
124
,
512
,
513
,
515
,
516
,
550
,
550
,
/* 800 */
30
,
28
,
26
,
25
,
24
,
550
,
550
,
550
,
550
,
550
,
/* 810 */
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
/* 820 */
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
/* 830 */
550
,
550
,
550
,
430
,
550
,
550
,
550
,
550
,
550
,
550
,
/* 840 */
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
/* 850 */
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
/* 860 */
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
/* 870 */
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
/* 880 */
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
543
,
544
,
/* 0 */
619
,
617
,
105
,
188
,
117
,
728
,
578
,
48
,
23
,
75
,
/* 10 */
76
,
642
,
30
,
28
,
26
,
25
,
24
,
158
,
126
,
727
,
/* 20 */
681
,
100
,
129
,
726
,
681
,
30
,
28
,
26
,
25
,
24
,
/* 30 */
553
,
620
,
617
,
642
,
100
,
68
,
627
,
617
,
678
,
158
,
/* 40 */
159
,
499
,
677
,
42
,
628
,
432
,
631
,
667
,
26
,
25
,
/* 50 */
24
,
666
,
663
,
211
,
681
,
210
,
209
,
208
,
207
,
206
,
/* 60 */
205
,
204
,
203
,
202
,
697
,
201
,
200
,
199
,
198
,
197
,
/* 70 */
196
,
195
,
676
,
423
,
22
,
109
,
141
,
450
,
451
,
452
,
/* 80 */
453
,
454
,
455
,
456
,
458
,
459
,
460
,
22
,
109
,
134
,
/* 90 */
450
,
451
,
452
,
453
,
454
,
455
,
456
,
458
,
459
,
460
,
/* 100 */
10
,
10
,
143
,
143
,
382
,
186
,
185
,
184
,
386
,
183
,
/* 110 */
388
,
389
,
182
,
391
,
179
,
118
,
397
,
176
,
399
,
400
,
/* 120 */
173
,
170
,
642
,
575
,
148
,
627
,
617
,
84
,
158
,
159
,
/* 130 */
9
,
8
,
40
,
628
,
58
,
631
,
667
,
6
,
487
,
80
,
/* 140 */
99
,
663
,
423
,
642
,
579
,
48
,
627
,
617
,
58
,
144
,
/* 150 */
159
,
82
,
728
,
41
,
628
,
190
,
631
,
667
,
642
,
20
,
/* 160 */
189
,
107
,
663
,
52
,
158
,
115
,
57
,
643
,
457
,
133
,
/* 170 */
726
,
461
,
191
,
642
,
468
,
74
,
627
,
617
,
151
,
144
,
/* 180 */
159
,
119
,
694
,
41
,
628
,
491
,
631
,
667
,
426
,
58
,
/* 190 */
551
,
107
,
663
,
52
,
78
,
642
,
425
,
426
,
627
,
617
,
/* 200 */
161
,
158
,
159
,
155
,
513
,
41
,
628
,
43
,
631
,
667
,
/* 210 */
9
,
8
,
695
,
107
,
663
,
740
,
642
,
2
,
65
,
627
,
/* 220 */
617
,
62
,
158
,
159
,
701
,
152
,
41
,
628
,
728
,
631
,
/* 230 */
667
,
135
,
130
,
128
,
107
,
663
,
740
,
642
,
73
,
59
,
/* 240 */
627
,
617
,
57
,
158
,
159
,
724
,
726
,
41
,
628
,
698
,
/* 250 */
631
,
667
,
146
,
29
,
27
,
107
,
663
,
740
,
29
,
27
,
/* 260 */
492
,
686
,
11
,
487
,
127
,
412
,
685
,
11
,
156
,
462
,
/* 270 */
412
,
708
,
31
,
429
,
490
,
414
,
31
,
548
,
549
,
624
,
/* 280 */
414
,
60
,
622
,
403
,
150
,
1
,
168
,
114
,
153
,
124
,
/* 290 */
1
,
642
,
114
,
148
,
627
,
617
,
122
,
158
,
159
,
418
,
/* 300 */
160
,
90
,
628
,
85
,
631
,
160
,
47
,
447
,
29
,
27
,
/* 310 */
123
,
707
,
413
,
415
,
418
,
29
,
27
,
413
,
415
,
418
,
/* 320 */
412
,
728
,
163
,
162
,
11
,
64
,
106
,
412
,
5
,
137
,
/* 330 */
414
,
688
,
67
,
58
,
121
,
57
,
4
,
414
,
69
,
726
,
/* 340 */
7
,
51
,
114
,
422
,
45
,
487
,
425
,
1
,
682
,
114
,
/* 350 */
642
,
32
,
70
,
627
,
617
,
160
,
158
,
159
,
16
,
649
,
/* 360 */
49
,
628
,
160
,
631
,
110
,
743
,
725
,
413
,
415
,
418
,
/* 370 */
154
,
157
,
140
,
77
,
413
,
415
,
418
,
421
,
164
,
642
,
/* 380 */
148
,
166
,
627
,
617
,
46
,
158
,
159
,
194
,
58
,
42
,
/* 390 */
628
,
44
,
631
,
667
,
192
,
29
,
27
,
145
,
663
,
149
,
/* 400 */
741
,
71
,
674
,
139
,
81
,
138
,
86
,
412
,
728
,
83
,
/* 410 */
87
,
29
,
27
,
147
,
412
,
98
,
3
,
414
,
31
,
14
,
/* 420 */
61
,
510
,
57
,
412
,
414
,
63
,
726
,
1
,
642
,
114
,
/* 430 */
35
,
627
,
617
,
414
,
158
,
159
,
512
,
50
,
96
,
628
,
/* 440 */
113
,
631
,
160
,
7
,
66
,
114
,
506
,
505
,
36
,
160
,
/* 450 */
131
,
37
,
15
,
132
,
413
,
415
,
418
,
622
,
160
,
18
,
/* 460 */
484
,
413
,
415
,
418
,
483
,
34
,
33
,
72
,
29
,
27
,
/* 470 */
413
,
415
,
418
,
8
,
621
,
642
,
56
,
534
,
627
,
617
,
/* 480 */
412
,
158
,
159
,
430
,
448
,
42
,
628
,
539
,
631
,
667
,
/* 490 */
414
,
17
,
12
,
38
,
664
,
30
,
28
,
26
,
25
,
24
,
/* 500 */
7
,
533
,
114
,
111
,
538
,
537
,
112
,
642
,
79
,
13
,
/* 510 */
627
,
617
,
416
,
158
,
159
,
160
,
611
,
96
,
628
,
120
,
/* 520 */
631
,
610
,
609
,
574
,
167
,
396
,
116
,
413
,
415
,
418
,
/* 530 */
642
,
377
,
171
,
627
,
617
,
165
,
158
,
159
,
404
,
169
,
/* 540 */
92
,
628
,
401
,
631
,
398
,
642
,
381
,
172
,
627
,
617
,
/* 550 */
175
,
158
,
159
,
178
,
174
,
96
,
628
,
108
,
631
,
642
,
/* 560 */
177
,
180
,
627
,
617
,
392
,
158
,
159
,
408
,
181
,
49
,
/* 570 */
628
,
642
,
631
,
136
,
627
,
617
,
390
,
158
,
159
,
395
,
/* 580 */
407
,
91
,
628
,
187
,
631
,
406
,
642
,
394
,
393
,
627
,
/* 590 */
617
,
39
,
158
,
159
,
354
,
193
,
93
,
628
,
366
,
631
,
/* 600 */
642
,
373
,
372
,
627
,
617
,
371
,
158
,
159
,
370
,
742
,
/* 610 */
88
,
628
,
369
,
631
,
642
,
552
,
368
,
627
,
617
,
367
,
/* 620 */
158
,
159
,
365
,
364
,
94
,
628
,
363
,
631
,
642
,
552
,
/* 630 */
362
,
627
,
617
,
361
,
158
,
159
,
360
,
359
,
89
,
628
,
/* 640 */
552
,
631
,
642
,
552
,
358
,
627
,
617
,
357
,
158
,
159
,
/* 650 */
552
,
552
,
95
,
628
,
552
,
631
,
642
,
552
,
552
,
627
,
/* 660 */
617
,
552
,
158
,
159
,
552
,
552
,
639
,
628
,
642
,
631
,
/* 670 */
552
,
627
,
617
,
552
,
158
,
159
,
552
,
552
,
638
,
628
,
/* 680 */
642
,
631
,
552
,
627
,
617
,
552
,
158
,
159
,
552
,
552
,
/* 690 */
637
,
628
,
552
,
631
,
642
,
552
,
552
,
627
,
617
,
552
,
/* 700 */
158
,
159
,
552
,
552
,
103
,
628
,
642
,
631
,
552
,
627
,
/* 710 */
617
,
552
,
158
,
159
,
552
,
552
,
102
,
628
,
642
,
631
,
/* 720 */
552
,
627
,
617
,
552
,
158
,
159
,
552
,
552
,
104
,
628
,
/* 730 */
552
,
631
,
642
,
552
,
552
,
627
,
617
,
552
,
158
,
159
,
/* 740 */
552
,
552
,
101
,
628
,
552
,
631
,
642
,
552
,
516
,
627
,
/* 750 */
617
,
19
,
158
,
159
,
140
,
552
,
97
,
628
,
552
,
631
,
/* 760 */
140
,
30
,
28
,
26
,
25
,
24
,
46
,
30
,
28
,
26
,
/* 770 */
25
,
24
,
46
,
44
,
125
,
514
,
515
,
517
,
518
,
44
,
/* 780 */
552
,
552
,
142
,
53
,
674
,
675
,
552
,
679
,
140
,
54
,
/* 790 */
674
,
675
,
21
,
679
,
552
,
30
,
28
,
26
,
25
,
24
,
/* 800 */
46
,
552
,
30
,
28
,
26
,
25
,
24
,
44
,
552
,
552
,
/* 810 */
552
,
552
,
552
,
552
,
552
,
552
,
552
,
55
,
674
,
675
,
/* 820 */
552
,
679
,
552
,
552
,
552
,
552
,
552
,
552
,
432
,
552
,
/* 830 */
552
,
552
,
552
,
552
,
552
,
552
,
552
,
552
,
552
,
552
,
/* 840 */
552
,
552
,
552
,
552
,
552
,
552
,
552
,
552
,
552
,
552
,
/* 850 */
552
,
552
,
552
,
552
,
552
,
552
,
552
,
552
,
552
,
552
,
/* 860 */
552
,
552
,
552
,
552
,
552
,
552
,
552
,
552
,
552
,
545
,
/* 870 */
546
,
};
static
const
YYCODETYPE
yy_lookahead
[]
=
{
/* 0 */
1
29
,
130
,
131
,
127
,
123
,
156
,
125
,
126
,
141
,
142
,
/* 10 */
17
7
,
126
,
12
,
13
,
14
,
15
,
16
,
132
,
168
,
170
,
/* 20 */
13
4
,
21
,
137
,
174
,
134
,
12
,
13
,
14
,
15
,
16
,
/* 30 */
0
,
1
29
,
130
,
126
,
21
,
161
,
129
,
130
,
152
,
132
,
/* 40 */
13
3
,
135
,
152
,
136
,
137
,
45
,
139
,
140
,
14
,
15
,
/* 50 */
16
,
14
4
,
145
,
23
,
134
,
25
,
26
,
27
,
28
,
29
,
/* 60 */
30
,
31
,
32
,
33
,
3
,
35
,
36
,
37
,
38
,
39
,
/* 70 */
40
,
41
,
15
2
,
73
,
74
,
48
,
76
,
77
,
78
,
79
,
/* 80 */
80
,
81
,
82
,
83
,
84
,
85
,
73
,
74
,
154
,
7
6
,
/* 90 */
77
,
78
,
79
,
80
,
81
,
82
,
83
,
84
,
85
,
12
,
/* 100 */
13
,
14
,
15
,
1
6
,
50
,
51
,
52
,
53
,
54
,
55
,
/* 0 */
1
30
,
131
,
132
,
128
,
124
,
157
,
126
,
127
,
142
,
143
,
/* 10 */
17
8
,
127
,
12
,
13
,
14
,
15
,
16
,
133
,
169
,
171
,
/* 20 */
13
5
,
21
,
138
,
175
,
135
,
12
,
13
,
14
,
15
,
16
,
/* 30 */
0
,
1
30
,
131
,
127
,
21
,
162
,
130
,
131
,
153
,
133
,
/* 40 */
13
4
,
14
,
153
,
137
,
138
,
45
,
140
,
141
,
14
,
15
,
/* 50 */
16
,
14
5
,
146
,
23
,
135
,
25
,
26
,
27
,
28
,
29
,
/* 60 */
30
,
31
,
32
,
33
,
136
,
35
,
36
,
37
,
38
,
39
,
/* 70 */
40
,
41
,
15
3
,
46
,
74
,
75
,
155
,
77
,
78
,
79
,
/* 80 */
80
,
81
,
82
,
83
,
84
,
85
,
86
,
74
,
75
,
4
6
,
/* 90 */
77
,
78
,
79
,
80
,
81
,
82
,
83
,
84
,
85
,
86
,
/* 100 */
44
,
44
,
46
,
4
6
,
50
,
51
,
52
,
53
,
54
,
55
,
/* 110 */
56
,
57
,
58
,
59
,
60
,
18
,
62
,
63
,
64
,
65
,
/* 120 */
66
,
67
,
12
6
,
0
,
128
,
129
,
130
,
46
,
132
,
133
,
/* 130 */
125
,
126
,
136
,
137
,
19
,
139
,
140
,
110
,
46
,
42
,
/* 140 */
14
4
,
145
,
44
,
126
,
46
,
14
,
129
,
130
,
46
,
132
,
/* 150 */
13
3
,
46
,
156
,
136
,
137
,
32
,
139
,
140
,
43
,
73
,
/* 160 */
37
,
14
4
,
145
,
146
,
91
,
68
,
170
,
126
,
82
,
10
8
,
/* 170 */
17
4
,
85
,
49
,
132
,
44
,
158
,
46
,
46
,
137
,
87
,
/* 180 */
4
,
164
,
165
,
126
,
89
,
90
,
129
,
130
,
91
,
13
2
,
/* 190 */
1
33
,
126
,
87
,
136
,
137
,
171
,
139
,
140
,
120
,
1
,
/* 200 */
2
,
144
,
145
,
146
,
88
,
126
,
90
,
157
,
129
,
130
,
/* 210 */
132
,
132
,
133
,
46
,
100
,
136
,
137
,
139
,
139
,
14
0
,
/* 220 */
13
5
,
91
,
165
,
144
,
145
,
146
,
148
,
149
,
150
,
151
,
/* 230 */
45
,
153
,
126
,
48
,
155
,
129
,
130
,
167
,
132
,
133
,
/* 240 */
1
,
2
,
136
,
137
,
21
,
139
,
140
,
96
,
97
,
98
,
/* 250 */
14
4
,
145
,
146
,
126
,
48
,
118
,
129
,
130
,
99
,
132
,
/* 260 */
133
,
155
,
166
,
136
,
137
,
128
,
139
,
140
,
92
,
12
,
/* 270 */
13
,
144
,
145
,
146
,
12
,
13
,
14
,
24
,
21
,
116
,
/* 280 */
117
,
24
,
155
,
21
,
45
,
45
,
24
,
34
,
48
,
45
,
/* 290 */
72
,
34
,
48
,
156
,
45
,
130
,
34
,
48
,
75
,
44
,
/* 300 */
130
,
44
,
47
,
46
,
130
,
167
,
44
,
170
,
46
,
166
,
/* 310 */
45
,
174
,
59
,
48
,
45
,
107
,
59
,
48
,
112
,
16
3
,
/* 320 */
106
,
59
,
162
,
70
,
71
,
72
,
94
,
70
,
71
,
72
,
/* 330 */
93
,
160
,
70
,
71
,
72
,
90
,
126
,
159
,
128
,
129
,
/* 340 */
130
,
46
,
132
,
133
,
132
,
120
,
136
,
137
,
91
,
139
,
/* 350 */
46
,
12
,
13
,
128
,
134
,
12
,
13
,
132
,
2
,
86
,
/* 360 */
21
,
44
,
147
,
24
,
139
,
143
,
156
,
24
,
12
,
1
3
,
/* 370 */
14
,
15
,
16
,
34
,
149
,
150
,
151
,
34
,
153
,
178
,
/* 380 */
1
70
,
156
,
115
,
44
,
174
,
46
,
111
,
44
,
109
,
46
,
/* 390 */
1
26
,
46
,
173
,
129
,
130
,
170
,
132
,
133
,
59
,
174
,
/* 400 */
1
36
,
137
,
59
,
139
,
120
,
172
,
46
,
122
,
20
,
7
0
,
/* 410 */
71
,
72
,
119
,
70
,
71
,
72
,
120
,
119
,
126
,
48
,
/* 420 */
4
8
,
129
,
130
,
124
,
132
,
133
,
121
,
95
,
136
,
137
,
/* 430 */
4
5
,
139
,
140
,
169
,
91
,
45
,
144
,
145
,
12
,
13
,
/* 440 */
14
,
12
,
13
,
44
,
12
,
13
,
48
,
45
,
126
,
44
,
/* 450 */
24
,
129
,
130
,
24
,
132
,
133
,
24
,
44
,
136
,
137
,
/* 460 */
34
,
139
,
140
,
34
,
45
,
44
,
34
,
145
,
45
,
2
,
/* 470 */
44
,
24
,
46
,
44
,
47
,
46
,
44
,
44
,
46
,
12
,
/* 480 */
13
,
14
,
15
,
16
,
48
,
59
,
48
,
95
,
59
,
45
,
/* 490 */
47
,
59
,
88
,
45
,
48
,
2
,
70
,
71
,
72
,
70
,
/* 500 */
71
,
72
,
70
,
71
,
72
,
126
,
47
,
47
,
129
,
130
,
/* 510 */
75
,
132
,
133
,
45
,
45
,
136
,
137
,
95
,
139
,
4
,
/* 520 */
48
,
24
,
126
,
24
,
24
,
129
,
130
,
24
,
132
,
13
3
,
/* 530 */
24
,
24
,
136
,
137
,
138
,
139
,
126
,
47
,
44
,
129
,
/* 540 */
13
0
,
0
,
132
,
133
,
0
,
34
,
136
,
137
,
138
,
139
,
/* 550 */
69
,
0
,
47
,
45
,
175
,
176
,
126
,
24
,
46
,
129
,
/* 560 */
130
,
24
,
132
,
133
,
44
,
44
,
136
,
137
,
138
,
139
,
/* 570 */
45
,
126
,
24
,
45
,
129
,
130
,
24
,
132
,
133
,
44
,
/* 580 */
24
,
13
6
,
137
,
126
,
139
,
24
,
129
,
130
,
45
,
132
,
/* 590 */
13
3
,
44
,
61
,
136
,
137
,
45
,
139
,
126
,
44
,
61
,
/* 600 */
12
9
,
130
,
34
,
132
,
133
,
24
,
61
,
136
,
137
,
49
,
/* 610 */
13
9
,
24
,
126
,
24
,
61
,
129
,
130
,
44
,
132
,
133
,
/* 620 */
22
,
176
,
136
,
137
,
126
,
139
,
24
,
129
,
130
,
21
,
/* 630 */
132
,
133
,
179
,
24
,
136
,
137
,
126
,
139
,
24
,
129
,
/* 640 */
1
30
,
34
,
132
,
133
,
24
,
24
,
136
,
137
,
24
,
139
,
/* 650 */
24
,
24
,
126
,
179
,
24
,
129
,
130
,
179
,
132
,
133
,
/* 660 */
24
,
24
,
136
,
137
,
24
,
139
,
126
,
24
,
24
,
129
,
/* 670 */
1
30
,
24
,
132
,
133
,
24
,
179
,
136
,
137
,
179
,
139
,
/* 680 */
1
79
,
126
,
179
,
179
,
129
,
130
,
179
,
132
,
133
,
179
,
/* 690 */
1
79
,
136
,
137
,
126
,
139
,
179
,
129
,
130
,
179
,
132
,
/* 700 */
133
,
1
79
,
179
,
136
,
137
,
126
,
139
,
179
,
129
,
130
,
/* 710 */
1
79
,
132
,
133
,
179
,
179
,
136
,
137
,
126
,
139
,
179
,
/* 720 */
1
29
,
130
,
179
,
132
,
133
,
179
,
179
,
136
,
137
,
179
,
/* 730 */
1
39
,
126
,
179
,
179
,
129
,
130
,
179
,
132
,
133
,
179
,
/* 740 */
1
79
,
136
,
137
,
126
,
139
,
120
,
129
,
130
,
179
,
132
,
/* 750 */
13
3
,
120
,
179
,
136
,
137
,
126
,
139
,
132
,
129
,
13
0
,
/* 760 */
1
79
,
132
,
133
,
132
,
139
,
136
,
137
,
75
,
139
,
179
,
/* 770 */
139
,
179
,
179
,
179
,
149
,
150
,
151
,
179
,
153
,
179
,
/* 780 */
1
49
,
150
,
151
,
179
,
153
,
179
,
179
,
12
,
13
,
14
,
/* 790 */
15
,
16
,
179
,
101
,
102
,
103
,
104
,
105
,
179
,
179
,
/* 800 */
12
,
13
,
14
,
15
,
16
,
179
,
179
,
179
,
179
,
179
,
/* 810 */
1
79
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
/* 820 */
1
79
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
/* 830 */
1
79
,
179
,
179
,
45
,
179
,
179
,
179
,
179
,
179
,
179
,
/* 840 */
1
79
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
/* 850 */
1
79
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
/* 860 */
1
79
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
/* 870 */
1
79
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
/* 880 */
1
79
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
113
,
114
,
/* 890 */
1
79
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
/* 900 */
1
79
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
/* 910 */
1
79
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
179
,
/* 120 */
66
,
67
,
12
7
,
0
,
129
,
130
,
131
,
19
,
133
,
134
,
/* 130 */
1
,
2
,
137
,
138
,
92
,
140
,
141
,
90
,
91
,
42
,
/* 140 */
14
5
,
146
,
46
,
127
,
126
,
127
,
130
,
131
,
92
,
133
,
/* 150 */
13
4
,
43
,
157
,
137
,
138
,
32
,
140
,
141
,
127
,
74
,
/* 160 */
37
,
14
5
,
146
,
147
,
133
,
68
,
171
,
127
,
83
,
13
8
,
/* 170 */
17
5
,
86
,
49
,
127
,
45
,
159
,
130
,
131
,
3
,
133
,
/* 180 */
134
,
165
,
166
,
137
,
138
,
4
,
140
,
141
,
46
,
9
2
,
/* 190 */
1
19
,
145
,
146
,
147
,
172
,
127
,
46
,
46
,
130
,
13
1
,
/* 200 */
129
,
133
,
134
,
48
,
45
,
137
,
138
,
48
,
140
,
141
,
/* 210 */
1
,
2
,
166
,
145
,
146
,
147
,
127
,
158
,
45
,
13
0
,
/* 220 */
13
1
,
48
,
133
,
134
,
156
,
48
,
137
,
138
,
157
,
140
,
/* 230 */
141
,
97
,
98
,
99
,
145
,
146
,
147
,
127
,
88
,
88
,
/* 240 */
130
,
131
,
171
,
133
,
134
,
156
,
175
,
137
,
138
,
136
,
/* 250 */
14
0
,
141
,
21
,
12
,
13
,
145
,
146
,
147
,
12
,
13
,
/* 260 */
14
,
89
,
21
,
91
,
101
,
24
,
156
,
21
,
113
,
45
,
/* 270 */
24
,
168
,
48
,
45
,
93
,
34
,
48
,
117
,
118
,
44
,
/* 280 */
34
,
167
,
47
,
45
,
109
,
44
,
48
,
46
,
111
,
100
,
/* 290 */
44
,
127
,
46
,
129
,
130
,
131
,
131
,
133
,
134
,
73
,
/* 300 */
59
,
137
,
138
,
45
,
140
,
59
,
48
,
76
,
12
,
13
,
/* 310 */
131
,
168
,
71
,
72
,
73
,
12
,
13
,
71
,
72
,
7
3
,
/* 320 */
24
,
157
,
69
,
70
,
21
,
167
,
131
,
24
,
108
,
107
,
/* 330 */
34
,
164
,
163
,
92
,
95
,
171
,
94
,
34
,
160
,
175
,
/* 340 */
44
,
161
,
46
,
46
,
133
,
91
,
46
,
44
,
135
,
46
,
/* 350 */
127
,
87
,
148
,
130
,
131
,
59
,
133
,
134
,
44
,
144
,
/* 360 */
137
,
138
,
59
,
140
,
116
,
179
,
174
,
71
,
72
,
7
3
,
/* 370 */
110
,
112
,
121
,
173
,
71
,
72
,
73
,
46
,
121
,
127
,
/* 380 */
1
29
,
46
,
130
,
131
,
133
,
133
,
134
,
20
,
92
,
137
,
/* 390 */
1
38
,
140
,
140
,
141
,
123
,
12
,
13
,
145
,
146
,
176
,
/* 400 */
1
77
,
150
,
151
,
152
,
120
,
154
,
121
,
24
,
157
,
12
0
,
/* 410 */
122
,
12
,
13
,
14
,
24
,
125
,
48
,
34
,
48
,
96
,
/* 420 */
4
5
,
45
,
171
,
24
,
34
,
44
,
175
,
44
,
127
,
46
,
/* 430 */
4
8
,
130
,
131
,
34
,
133
,
134
,
45
,
44
,
137
,
138
,
/* 440 */
139
,
140
,
59
,
44
,
44
,
46
,
45
,
45
,
44
,
59
,
/* 450 */
24
,
44
,
96
,
48
,
71
,
72
,
73
,
47
,
59
,
48
,
/* 460 */
45
,
71
,
72
,
73
,
45
,
48
,
89
,
47
,
12
,
13
,
/* 470 */
71
,
72
,
73
,
2
,
47
,
127
,
47
,
24
,
130
,
131
,
/* 480 */
24
,
133
,
134
,
45
,
76
,
137
,
138
,
45
,
140
,
141
,
/* 490 */
34
,
48
,
96
,
4
,
146
,
12
,
13
,
14
,
15
,
16
,
/* 500 */
44
,
24
,
46
,
24
,
24
,
24
,
24
,
127
,
47
,
44
,
/* 510 */
130
,
131
,
34
,
133
,
134
,
59
,
0
,
137
,
138
,
139
,
/* 520 */
140
,
0
,
0
,
0
,
24
,
61
,
24
,
71
,
72
,
7
3
,
/* 530 */
127
,
46
,
24
,
130
,
131
,
47
,
133
,
134
,
45
,
44
,
/* 540 */
13
7
,
138
,
45
,
140
,
45
,
127
,
34
,
44
,
130
,
131
,
/* 550 */
44
,
133
,
134
,
44
,
24
,
137
,
138
,
139
,
140
,
127
,
/* 560 */
24
,
24
,
130
,
131
,
45
,
133
,
134
,
24
,
44
,
137
,
/* 570 */
138
,
127
,
140
,
170
,
130
,
131
,
45
,
133
,
134
,
61
,
/* 580 */
24
,
13
7
,
138
,
49
,
140
,
24
,
127
,
61
,
61
,
130
,
/* 590 */
13
1
,
44
,
133
,
134
,
22
,
21
,
137
,
138
,
34
,
140
,
/* 600 */
12
7
,
24
,
24
,
130
,
131
,
24
,
133
,
134
,
24
,
177
,
/* 610 */
13
7
,
138
,
24
,
140
,
127
,
180
,
24
,
130
,
131
,
24
,
/* 620 */
133
,
134
,
24
,
24
,
137
,
138
,
24
,
140
,
127
,
180
,
/* 630 */
24
,
130
,
131
,
24
,
133
,
134
,
24
,
24
,
137
,
138
,
/* 640 */
1
80
,
140
,
127
,
180
,
24
,
130
,
131
,
24
,
133
,
134
,
/* 650 */
180
,
180
,
137
,
138
,
180
,
140
,
127
,
180
,
180
,
130
,
/* 660 */
131
,
180
,
133
,
134
,
180
,
180
,
137
,
138
,
127
,
140
,
/* 670 */
1
80
,
130
,
131
,
180
,
133
,
134
,
180
,
180
,
137
,
138
,
/* 680 */
1
27
,
140
,
180
,
130
,
131
,
180
,
133
,
134
,
180
,
180
,
/* 690 */
1
37
,
138
,
180
,
140
,
127
,
180
,
180
,
130
,
131
,
180
,
/* 700 */
133
,
1
34
,
180
,
180
,
137
,
138
,
127
,
140
,
180
,
130
,
/* 710 */
1
31
,
180
,
133
,
134
,
180
,
180
,
137
,
138
,
127
,
140
,
/* 720 */
1
80
,
130
,
131
,
180
,
133
,
134
,
180
,
180
,
137
,
138
,
/* 730 */
1
80
,
140
,
127
,
180
,
180
,
130
,
131
,
180
,
133
,
134
,
/* 740 */
1
80
,
180
,
137
,
138
,
180
,
140
,
127
,
180
,
76
,
130
,
/* 750 */
13
1
,
2
,
133
,
134
,
121
,
180
,
137
,
138
,
180
,
14
0
,
/* 760 */
1
21
,
12
,
13
,
14
,
15
,
16
,
133
,
12
,
13
,
14
,
/* 770 */
15
,
16
,
133
,
140
,
102
,
103
,
104
,
105
,
106
,
140
,
/* 780 */
1
80
,
180
,
149
,
150
,
151
,
152
,
180
,
154
,
121
,
150
,
/* 790 */
151
,
152
,
2
,
154
,
180
,
12
,
13
,
14
,
15
,
16
,
/* 800 */
133
,
180
,
12
,
13
,
14
,
15
,
16
,
140
,
180
,
180
,
/* 810 */
1
80
,
180
,
180
,
180
,
180
,
180
,
180
,
150
,
151
,
152
,
/* 820 */
1
80
,
154
,
180
,
180
,
180
,
180
,
180
,
180
,
45
,
180
,
/* 830 */
1
80
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
/* 840 */
1
80
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
/* 850 */
1
80
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
/* 860 */
1
80
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
114
,
/* 870 */
1
15
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
/* 880 */
1
80
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
/* 890 */
1
80
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
/* 900 */
1
80
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
180
,
/* 910 */
1
80
,
180
,
180
,
180
,
180
,
};
#define YY_SHIFT_COUNT (21
0
)
#define YY_SHIFT_COUNT (21
1
)
#define YY_SHIFT_MIN (0)
#define YY_SHIFT_MAX (7
88
)
#define YY_SHIFT_MAX (7
90
)
static
const
unsigned
short
int
yy_shift_ofst
[]
=
{
/* 0 */
97
,
2
57
,
262
,
339
,
339
,
339
,
339
,
343
,
339
,
339
,
/* 10 */
130
,
429
,
432
,
426
,
432
,
432
,
432
,
432
,
432
,
432
,
/* 20 */
4
32
,
432
,
432
,
432
,
432
,
432
,
432
,
432
,
432
,
432
,
/* 30 */
4
32
,
432
,
98
,
98
,
98
,
253
,
81
,
81
,
73
,
102
,
/* 40 */
0
,
13
,
13
,
253
,
92
,
92
,
92
,
102
,
54
,
77
5
,
/* 50 */
6
92
,
151
,
105
,
116
,
95
,
116
,
131
,
61
,
176
,
167
,
/* 60 */
1
14
,
159
,
218
,
218
,
114
,
159
,
218
,
208
,
214
,
232
,
/* 70 */
2
37
,
245
,
295
,
304
,
273
,
317
,
267
,
275
,
279
,
102
,
/* 80 */
3
45
,
360
,
388
,
345
,
388
,
890
,
890
,
30
,
356
,
467
,
/* 90 */
78
8
,
87
,
87
,
87
,
87
,
87
,
87
,
87
,
123
,
23
9
,
/* 100 */
8
6
,
34
,
34
,
34
,
34
,
185
,
240
,
198
,
244
,
223
,
/* 110 */
16
3
,
27
,
206
,
249
,
255
,
265
,
269
,
115
,
371
,
372
,
/* 120 */
3
32
,
385
,
390
,
399
,
398
,
402
,
405
,
413
,
419
,
42
1
,
/* 130 */
4
23
,
447
,
436
,
427
,
433
,
438
,
392
,
444
,
448
,
443
,
/* 140 */
4
04
,
446
,
459
,
460
,
493
,
435
,
468
,
469
,
472
,
422
,
/* 150 */
515
,
497
,
499
,
500
,
503
,
506
,
507
,
490
,
494
,
511
,
/* 160 */
541
,
544
,
481
,
551
,
512
,
505
,
508
,
533
,
537
,
520
,
/* 170 */
525
,
548
,
521
,
528
,
552
,
535
,
543
,
556
,
547
,
550
,
/* 180 */
5
61
,
554
,
531
,
538
,
545
,
553
,
568
,
560
,
581
,
587
,
/* 190 */
5
89
,
573
,
598
,
608
,
602
,
609
,
614
,
620
,
621
,
624
,
/* 200 */
626
,
607
,
627
,
630
,
636
,
637
,
640
,
643
,
644
,
647
,
/* 210 */
6
50
,
/* 0 */
97
,
2
41
,
246
,
303
,
303
,
303
,
303
,
296
,
303
,
303
,
/* 10 */
56
,
383
,
456
,
399
,
456
,
456
,
456
,
456
,
456
,
456
,
/* 20 */
4
56
,
456
,
456
,
456
,
456
,
456
,
456
,
456
,
456
,
456
,
/* 30 */
4
56
,
456
,
57
,
57
,
57
,
390
,
43
,
43
,
42
,
96
,
/* 40 */
0
,
13
,
13
,
390
,
150
,
150
,
150
,
96
,
54
,
75
5
,
/* 50 */
6
72
,
134
,
151
,
172
,
47
,
172
,
27
,
175
,
181
,
142
,
/* 60 */
1
63
,
189
,
226
,
226
,
163
,
189
,
226
,
220
,
222
,
239
,
/* 70 */
2
42
,
254
,
297
,
300
,
264
,
314
,
248
,
259
,
260
,
96
,
/* 80 */
3
31
,
335
,
367
,
331
,
367
,
871
,
871
,
30
,
749
,
790
,
/* 90 */
78
3
,
483
,
483
,
483
,
483
,
483
,
483
,
483
,
123
,
12
9
,
/* 100 */
8
5
,
34
,
34
,
34
,
34
,
159
,
173
,
209
,
224
,
231
,
/* 110 */
16
0
,
177
,
155
,
228
,
235
,
253
,
238
,
258
,
108
,
368
,
/* 120 */
3
70
,
323
,
375
,
376
,
381
,
382
,
391
,
393
,
400
,
40
1
,
/* 130 */
4
04
,
402
,
426
,
405
,
410
,
407
,
411
,
356
,
415
,
419
,
/* 140 */
4
20
,
377
,
417
,
427
,
429
,
471
,
408
,
438
,
442
,
443
,
/* 150 */
396
,
489
,
453
,
477
,
479
,
480
,
481
,
482
,
461
,
465
,
/* 160 */
478
,
516
,
521
,
522
,
523
,
485
,
488
,
493
,
500
,
502
,
/* 170 */
495
,
497
,
508
,
503
,
499
,
530
,
506
,
519
,
536
,
509
,
/* 180 */
5
31
,
537
,
524
,
464
,
518
,
526
,
527
,
512
,
534
,
543
,
/* 190 */
5
56
,
561
,
547
,
572
,
574
,
577
,
578
,
581
,
584
,
588
,
/* 200 */
592
,
595
,
564
,
598
,
599
,
602
,
606
,
609
,
612
,
613
,
/* 210 */
6
20
,
623
,
};
#define YY_REDUCE_COUNT (86)
#define YY_REDUCE_MIN (-16
7
)
#define YY_REDUCE_MAX (6
31
)
#define YY_REDUCE_MIN (-16
8
)
#define YY_REDUCE_MAX (6
67
)
static
const
short
yy_reduce_ofst
[]
=
{
/* 0 */
137
,
-
4
,
17
,
57
,
79
,
106
,
127
,
210
,
-
93
,
29
2
,
/* 10 */
2
25
,
322
,
379
,
396
,
410
,
264
,
430
,
445
,
457
,
471
,
/* 20 */
4
86
,
498
,
510
,
526
,
540
,
555
,
567
,
579
,
591
,
605
,
/* 30 */
6
17
,
629
,
78
,
625
,
631
,
-
129
,
-
115
,
41
,
-
151
,
-
119
,
/* 40 */
-
13
3
,
-
133
,
-
133
,
-
98
,
-
114
,
-
110
,
-
80
,
5
,
-
124
,
-
167
,
/* 50 */
-
15
0
,
-
126
,
-
94
,
-
66
,
-
66
,
-
66
,
65
,
24
,
50
,
85
,
/* 60 */
70
,
96
,
165
,
170
,
138
,
143
,
174
,
156
,
160
,
171
,
/* 70 */
178
,
-
66
,
212
,
220
,
215
,
222
,
201
,
219
,
233
,
65
,
/* 80 */
2
84
,
285
,
293
,
296
,
298
,
299
,
305
,
/* 0 */
71
,
-
5
,
16
,
46
,
68
,
89
,
110
,
164
,
-
94
,
25
2
,
/* 10 */
2
51
,
348
,
223
,
301
,
380
,
403
,
418
,
432
,
444
,
459
,
/* 20 */
4
73
,
487
,
501
,
515
,
529
,
541
,
553
,
567
,
579
,
591
,
/* 30 */
6
05
,
619
,
633
,
639
,
667
,
-
130
,
-
116
,
31
,
-
152
,
-
120
,
/* 40 */
-
13
4
,
-
134
,
-
134
,
-
99
,
-
115
,
-
111
,
-
81
,
18
,
-
125
,
-
168
,
/* 50 */
-
15
1
,
-
127
,
-
72
,
-
79
,
-
79
,
-
79
,
40
,
22
,
59
,
113
,
/* 60 */
103
,
114
,
165
,
179
,
143
,
158
,
195
,
167
,
169
,
180
,
/* 70 */
178
,
-
79
,
211
,
213
,
204
,
215
,
186
,
192
,
200
,
40
,
/* 80 */
2
57
,
271
,
284
,
285
,
289
,
290
,
288
,
};
static
const
YYACTIONTYPE
yy_default
[]
=
{
/* 0 */
5
48
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
/* 10 */
5
48
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
/* 20 */
5
48
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
/* 30 */
5
48
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
/* 40 */
5
48
,
666
,
548
,
548
,
677
,
677
,
677
,
548
,
548
,
741
,
/* 50 */
5
48
,
701
,
693
,
669
,
683
,
670
,
548
,
726
,
686
,
548
,
/* 60 */
7
08
,
706
,
548
,
548
,
708
,
706
,
548
,
720
,
716
,
699
,
/* 70 */
697
,
683
,
548
,
548
,
548
,
548
,
744
,
732
,
728
,
548
,
/* 80 */
5
48
,
548
,
553
,
548
,
553
,
603
,
554
,
548
,
548
,
548
,
/* 90 */
5
48
,
719
,
718
,
643
,
642
,
641
,
637
,
638
,
548
,
548
,
/* 100 */
5
48
,
632
,
633
,
631
,
630
,
548
,
548
,
667
,
548
,
548
,
/* 110 */
5
48
,
729
,
733
,
548
,
620
,
548
,
548
,
548
,
690
,
700
,
/* 120 */
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
/* 130 */
5
48
,
548
,
548
,
620
,
548
,
717
,
548
,
676
,
672
,
548
,
/* 140 */
5
48
,
668
,
619
,
548
,
662
,
548
,
548
,
548
,
727
,
548
,
/* 150 */
5
48
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
/* 160 */
5
48
,
548
,
548
,
548
,
548
,
574
,
548
,
548
,
548
,
60
0
,
/* 170 */
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
/* 180 */
5
48
,
548
,
585
,
583
,
582
,
581
,
548
,
578
,
548
,
548
,
/* 190 */
5
48
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
/* 200 */
5
48
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
548
,
/* 210 */
5
48
,
/* 0 */
5
50
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
/* 10 */
5
50
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
/* 20 */
5
50
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
/* 30 */
5
50
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
/* 40 */
5
50
,
669
,
550
,
550
,
680
,
680
,
680
,
550
,
550
,
744
,
/* 50 */
5
50
,
704
,
696
,
672
,
686
,
673
,
550
,
729
,
689
,
550
,
/* 60 */
7
11
,
709
,
550
,
550
,
711
,
709
,
550
,
723
,
719
,
702
,
/* 70 */
700
,
686
,
550
,
550
,
550
,
550
,
747
,
735
,
731
,
550
,
/* 80 */
5
50
,
550
,
555
,
550
,
555
,
605
,
556
,
550
,
550
,
550
,
/* 90 */
5
50
,
722
,
721
,
646
,
645
,
644
,
640
,
641
,
550
,
550
,
/* 100 */
5
50
,
635
,
636
,
634
,
633
,
550
,
550
,
670
,
550
,
550
,
/* 110 */
5
50
,
732
,
736
,
550
,
623
,
550
,
550
,
550
,
550
,
693
,
/* 120 */
703
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
/* 130 */
5
50
,
550
,
550
,
550
,
623
,
550
,
720
,
550
,
679
,
675
,
/* 140 */
5
50
,
550
,
671
,
622
,
550
,
665
,
550
,
550
,
550
,
730
,
/* 150 */
5
50
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
/* 160 */
5
50
,
550
,
550
,
550
,
550
,
550
,
576
,
550
,
550
,
55
0
,
/* 170 */
602
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
/* 180 */
5
50
,
550
,
550
,
587
,
585
,
584
,
583
,
550
,
580
,
550
,
/* 190 */
5
50
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
/* 200 */
5
50
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
550
,
/* 210 */
5
50
,
550
,
};
/********** End of lemon-generated parsing tables *****************************/
...
...
@@ -645,115 +644,116 @@ static const char *const yyTokenName[] = {
/* 67 */
"DECIMAL"
,
/* 68 */
"SHOW"
,
/* 69 */
"DATABASES"
,
/* 70 */
"NK_FLOAT"
,
/* 71 */
"NK_BOOL"
,
/* 72 */
"NK_VARIABLE"
,
/* 73 */
"BETWEEN"
,
/* 74 */
"IS"
,
/* 75 */
"NULL"
,
/* 76 */
"NK_LT"
,
/* 77 */
"NK_GT"
,
/* 78 */
"NK_LE"
,
/* 79 */
"NK_GE"
,
/* 80 */
"NK_NE"
,
/* 81 */
"NK_EQ"
,
/* 82 */
"LIKE"
,
/* 83 */
"MATCH"
,
/* 84 */
"NMATCH"
,
/* 85 */
"IN"
,
/* 86 */
"FROM"
,
/* 87 */
"AS"
,
/* 88 */
"JOIN"
,
/* 89 */
"ON"
,
/* 90 */
"INNER"
,
/* 91 */
"SELECT"
,
/* 92 */
"DISTINCT"
,
/* 93 */
"WHERE"
,
/* 94 */
"PARTITION"
,
/* 95 */
"BY"
,
/* 96 */
"SESSION"
,
/* 97 */
"STATE_WINDOW"
,
/* 98 */
"INTERVAL"
,
/* 99 */
"SLIDING"
,
/* 100 */
"FILL"
,
/* 101 */
"VALUE"
,
/* 102 */
"NONE"
,
/* 103 */
"PREV"
,
/* 104 */
"LINEAR"
,
/* 105 */
"NEXT"
,
/* 106 */
"GROUP"
,
/* 107 */
"HAVING"
,
/* 108 */
"ORDER"
,
/* 109 */
"SLIMIT"
,
/* 110 */
"SOFFSET"
,
/* 111 */
"LIMIT"
,
/* 112 */
"OFFSET"
,
/* 113 */
"ASC"
,
/* 114 */
"DESC"
,
/* 115 */
"NULLS"
,
/* 116 */
"FIRST"
,
/* 117 */
"LAST"
,
/* 118 */
"cmd"
,
/* 119 */
"exists_opt"
,
/* 120 */
"db_name"
,
/* 121 */
"db_options"
,
/* 122 */
"full_table_name"
,
/* 123 */
"column_def_list"
,
/* 124 */
"table_options"
,
/* 125 */
"column_def"
,
/* 126 */
"column_name"
,
/* 127 */
"type_name"
,
/* 128 */
"query_expression"
,
/* 129 */
"literal"
,
/* 130 */
"duration_literal"
,
/* 131 */
"literal_list"
,
/* 132 */
"table_name"
,
/* 133 */
"function_name"
,
/* 134 */
"table_alias"
,
/* 135 */
"column_alias"
,
/* 136 */
"expression"
,
/* 137 */
"column_reference"
,
/* 138 */
"expression_list"
,
/* 139 */
"subquery"
,
/* 140 */
"predicate"
,
/* 141 */
"compare_op"
,
/* 142 */
"in_op"
,
/* 143 */
"in_predicate_value"
,
/* 144 */
"boolean_value_expression"
,
/* 145 */
"boolean_primary"
,
/* 146 */
"common_expression"
,
/* 147 */
"from_clause"
,
/* 148 */
"table_reference_list"
,
/* 149 */
"table_reference"
,
/* 150 */
"table_primary"
,
/* 151 */
"joined_table"
,
/* 152 */
"alias_opt"
,
/* 153 */
"parenthesized_joined_table"
,
/* 154 */
"join_type"
,
/* 155 */
"search_condition"
,
/* 156 */
"query_specification"
,
/* 157 */
"set_quantifier_opt"
,
/* 158 */
"select_list"
,
/* 159 */
"where_clause_opt"
,
/* 160 */
"partition_by_clause_opt"
,
/* 161 */
"twindow_clause_opt"
,
/* 162 */
"group_by_clause_opt"
,
/* 163 */
"having_clause_opt"
,
/* 164 */
"select_sublist"
,
/* 165 */
"select_item"
,
/* 166 */
"sliding_opt"
,
/* 167 */
"fill_opt"
,
/* 168 */
"fill_mode"
,
/* 169 */
"group_by_list"
,
/* 170 */
"query_expression_body"
,
/* 171 */
"order_by_clause_opt"
,
/* 172 */
"slimit_clause_opt"
,
/* 173 */
"limit_clause_opt"
,
/* 174 */
"query_primary"
,
/* 175 */
"sort_specification_list"
,
/* 176 */
"sort_specification"
,
/* 177 */
"ordering_specification_opt"
,
/* 178 */
"null_ordering_opt"
,
/* 70 */
"TABLES"
,
/* 71 */
"NK_FLOAT"
,
/* 72 */
"NK_BOOL"
,
/* 73 */
"NK_VARIABLE"
,
/* 74 */
"BETWEEN"
,
/* 75 */
"IS"
,
/* 76 */
"NULL"
,
/* 77 */
"NK_LT"
,
/* 78 */
"NK_GT"
,
/* 79 */
"NK_LE"
,
/* 80 */
"NK_GE"
,
/* 81 */
"NK_NE"
,
/* 82 */
"NK_EQ"
,
/* 83 */
"LIKE"
,
/* 84 */
"MATCH"
,
/* 85 */
"NMATCH"
,
/* 86 */
"IN"
,
/* 87 */
"FROM"
,
/* 88 */
"AS"
,
/* 89 */
"JOIN"
,
/* 90 */
"ON"
,
/* 91 */
"INNER"
,
/* 92 */
"SELECT"
,
/* 93 */
"DISTINCT"
,
/* 94 */
"WHERE"
,
/* 95 */
"PARTITION"
,
/* 96 */
"BY"
,
/* 97 */
"SESSION"
,
/* 98 */
"STATE_WINDOW"
,
/* 99 */
"INTERVAL"
,
/* 100 */
"SLIDING"
,
/* 101 */
"FILL"
,
/* 102 */
"VALUE"
,
/* 103 */
"NONE"
,
/* 104 */
"PREV"
,
/* 105 */
"LINEAR"
,
/* 106 */
"NEXT"
,
/* 107 */
"GROUP"
,
/* 108 */
"HAVING"
,
/* 109 */
"ORDER"
,
/* 110 */
"SLIMIT"
,
/* 111 */
"SOFFSET"
,
/* 112 */
"LIMIT"
,
/* 113 */
"OFFSET"
,
/* 114 */
"ASC"
,
/* 115 */
"DESC"
,
/* 116 */
"NULLS"
,
/* 117 */
"FIRST"
,
/* 118 */
"LAST"
,
/* 119 */
"cmd"
,
/* 120 */
"exists_opt"
,
/* 121 */
"db_name"
,
/* 122 */
"db_options"
,
/* 123 */
"full_table_name"
,
/* 124 */
"column_def_list"
,
/* 125 */
"table_options"
,
/* 126 */
"column_def"
,
/* 127 */
"column_name"
,
/* 128 */
"type_name"
,
/* 129 */
"query_expression"
,
/* 130 */
"literal"
,
/* 131 */
"duration_literal"
,
/* 132 */
"literal_list"
,
/* 133 */
"table_name"
,
/* 134 */
"function_name"
,
/* 135 */
"table_alias"
,
/* 136 */
"column_alias"
,
/* 137 */
"expression"
,
/* 138 */
"column_reference"
,
/* 139 */
"expression_list"
,
/* 140 */
"subquery"
,
/* 141 */
"predicate"
,
/* 142 */
"compare_op"
,
/* 143 */
"in_op"
,
/* 144 */
"in_predicate_value"
,
/* 145 */
"boolean_value_expression"
,
/* 146 */
"boolean_primary"
,
/* 147 */
"common_expression"
,
/* 148 */
"from_clause"
,
/* 149 */
"table_reference_list"
,
/* 150 */
"table_reference"
,
/* 151 */
"table_primary"
,
/* 152 */
"joined_table"
,
/* 153 */
"alias_opt"
,
/* 154 */
"parenthesized_joined_table"
,
/* 155 */
"join_type"
,
/* 156 */
"search_condition"
,
/* 157 */
"query_specification"
,
/* 158 */
"set_quantifier_opt"
,
/* 159 */
"select_list"
,
/* 160 */
"where_clause_opt"
,
/* 161 */
"partition_by_clause_opt"
,
/* 162 */
"twindow_clause_opt"
,
/* 163 */
"group_by_clause_opt"
,
/* 164 */
"having_clause_opt"
,
/* 165 */
"select_sublist"
,
/* 166 */
"select_item"
,
/* 167 */
"sliding_opt"
,
/* 168 */
"fill_opt"
,
/* 169 */
"fill_mode"
,
/* 170 */
"group_by_list"
,
/* 171 */
"query_expression_body"
,
/* 172 */
"order_by_clause_opt"
,
/* 173 */
"slimit_clause_opt"
,
/* 174 */
"limit_clause_opt"
,
/* 175 */
"query_primary"
,
/* 176 */
"sort_specification_list"
,
/* 177 */
"sort_specification"
,
/* 178 */
"ordering_specification_opt"
,
/* 179 */
"null_ordering_opt"
,
};
#endif
/* defined(YYCOVERAGE) || !defined(NDEBUG) */
...
...
@@ -818,145 +818,146 @@ static const char *const yyRuleName[] = {
/* 54 */
"table_options ::= table_options KEEP NK_INTEGER"
,
/* 55 */
"table_options ::= table_options TTL NK_INTEGER"
,
/* 56 */
"cmd ::= SHOW DATABASES"
,
/* 57 */
"cmd ::= query_expression"
,
/* 58 */
"literal ::= NK_INTEGER"
,
/* 59 */
"literal ::= NK_FLOAT"
,
/* 60 */
"literal ::= NK_STRING"
,
/* 61 */
"literal ::= NK_BOOL"
,
/* 62 */
"literal ::= TIMESTAMP NK_STRING"
,
/* 63 */
"literal ::= duration_literal"
,
/* 64 */
"duration_literal ::= NK_VARIABLE"
,
/* 65 */
"literal_list ::= literal"
,
/* 66 */
"literal_list ::= literal_list NK_COMMA literal"
,
/* 67 */
"db_name ::= NK_ID"
,
/* 68 */
"table_name ::= NK_ID"
,
/* 69 */
"column_name ::= NK_ID"
,
/* 70 */
"function_name ::= NK_ID"
,
/* 71 */
"table_alias ::= NK_ID"
,
/* 72 */
"column_alias ::= NK_ID"
,
/* 73 */
"expression ::= literal"
,
/* 74 */
"expression ::= column_reference"
,
/* 75 */
"expression ::= function_name NK_LP expression_list NK_RP"
,
/* 76 */
"expression ::= function_name NK_LP NK_STAR NK_RP"
,
/* 77 */
"expression ::= subquery"
,
/* 78 */
"expression ::= NK_LP expression NK_RP"
,
/* 79 */
"expression ::= NK_PLUS expression"
,
/* 80 */
"expression ::= NK_MINUS expression"
,
/* 81 */
"expression ::= expression NK_PLUS expression"
,
/* 82 */
"expression ::= expression NK_MINUS expression"
,
/* 83 */
"expression ::= expression NK_STAR expression"
,
/* 84 */
"expression ::= expression NK_SLASH expression"
,
/* 85 */
"expression ::= expression NK_REM expression"
,
/* 86 */
"expression_list ::= expression"
,
/* 87 */
"expression_list ::= expression_list NK_COMMA expression"
,
/* 88 */
"column_reference ::= column_name"
,
/* 89 */
"column_reference ::= table_name NK_DOT column_name"
,
/* 90 */
"predicate ::= expression compare_op expression"
,
/* 91 */
"predicate ::= expression BETWEEN expression AND expression"
,
/* 92 */
"predicate ::= expression NOT BETWEEN expression AND expression"
,
/* 93 */
"predicate ::= expression IS NULL"
,
/* 94 */
"predicate ::= expression IS NOT NULL"
,
/* 95 */
"predicate ::= expression in_op in_predicate_value"
,
/* 96 */
"compare_op ::= NK_LT"
,
/* 97 */
"compare_op ::= NK_GT"
,
/* 98 */
"compare_op ::= NK_LE"
,
/* 99 */
"compare_op ::= NK_GE"
,
/* 100 */
"compare_op ::= NK_NE"
,
/* 101 */
"compare_op ::= NK_EQ"
,
/* 102 */
"compare_op ::= LIKE"
,
/* 103 */
"compare_op ::= NOT LIKE"
,
/* 104 */
"compare_op ::= MATCH"
,
/* 105 */
"compare_op ::= NMATCH"
,
/* 106 */
"in_op ::= IN"
,
/* 107 */
"in_op ::= NOT IN"
,
/* 108 */
"in_predicate_value ::= NK_LP expression_list NK_RP"
,
/* 109 */
"boolean_value_expression ::= boolean_primary"
,
/* 110 */
"boolean_value_expression ::= NOT boolean_primary"
,
/* 111 */
"boolean_value_expression ::= boolean_value_expression OR boolean_value_expression"
,
/* 112 */
"boolean_value_expression ::= boolean_value_expression AND boolean_value_expression"
,
/* 113 */
"boolean_primary ::= predicate"
,
/* 114 */
"boolean_primary ::= NK_LP boolean_value_expression NK_RP"
,
/* 115 */
"common_expression ::= expression"
,
/* 116 */
"common_expression ::= boolean_value_expression"
,
/* 117 */
"from_clause ::= FROM table_reference_list"
,
/* 118 */
"table_reference_list ::= table_reference"
,
/* 119 */
"table_reference_list ::= table_reference_list NK_COMMA table_reference"
,
/* 120 */
"table_reference ::= table_primary"
,
/* 121 */
"table_reference ::= joined_table"
,
/* 122 */
"table_primary ::= table_name alias_opt"
,
/* 123 */
"table_primary ::= db_name NK_DOT table_name alias_opt"
,
/* 124 */
"table_primary ::= subquery alias_opt"
,
/* 125 */
"table_primary ::= parenthesized_joined_table"
,
/* 126 */
"alias_opt ::="
,
/* 127 */
"alias_opt ::= table_alias"
,
/* 128 */
"alias_opt ::= AS table_alias"
,
/* 129 */
"parenthesized_joined_table ::= NK_LP joined_table NK_RP"
,
/* 130 */
"parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP"
,
/* 131 */
"joined_table ::= table_reference join_type JOIN table_reference ON search_condition"
,
/* 132 */
"join_type ::="
,
/* 133 */
"join_type ::= INNER"
,
/* 134 */
"query_specification ::= SELECT set_quantifier_opt select_list from_clause where_clause_opt partition_by_clause_opt twindow_clause_opt group_by_clause_opt having_clause_opt"
,
/* 135 */
"set_quantifier_opt ::="
,
/* 136 */
"set_quantifier_opt ::= DISTINCT"
,
/* 137 */
"set_quantifier_opt ::= ALL"
,
/* 138 */
"select_list ::= NK_STAR"
,
/* 139 */
"select_list ::= select_sublist"
,
/* 140 */
"select_sublist ::= select_item"
,
/* 141 */
"select_sublist ::= select_sublist NK_COMMA select_item"
,
/* 142 */
"select_item ::= common_expression"
,
/* 143 */
"select_item ::= common_expression column_alias"
,
/* 144 */
"select_item ::= common_expression AS column_alias"
,
/* 145 */
"select_item ::= table_name NK_DOT NK_STAR"
,
/* 146 */
"where_clause_opt ::="
,
/* 147 */
"where_clause_opt ::= WHERE search_condition"
,
/* 148 */
"partition_by_clause_opt ::="
,
/* 149 */
"partition_by_clause_opt ::= PARTITION BY expression_list"
,
/* 150 */
"twindow_clause_opt ::="
,
/* 151 */
"twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA NK_INTEGER NK_RP"
,
/* 152 */
"twindow_clause_opt ::= STATE_WINDOW NK_LP column_reference NK_RP"
,
/* 153 */
"twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt"
,
/* 154 */
"twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt"
,
/* 155 */
"sliding_opt ::="
,
/* 156 */
"sliding_opt ::= SLIDING NK_LP duration_literal NK_RP"
,
/* 157 */
"fill_opt ::="
,
/* 158 */
"fill_opt ::= FILL NK_LP fill_mode NK_RP"
,
/* 159 */
"fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP"
,
/* 160 */
"fill_mode ::= NONE"
,
/* 161 */
"fill_mode ::= PREV"
,
/* 162 */
"fill_mode ::= NULL"
,
/* 163 */
"fill_mode ::= LINEAR"
,
/* 164 */
"fill_mode ::= NEXT"
,
/* 165 */
"group_by_clause_opt ::="
,
/* 166 */
"group_by_clause_opt ::= GROUP BY group_by_list"
,
/* 167 */
"group_by_list ::= expression"
,
/* 168 */
"group_by_list ::= group_by_list NK_COMMA expression"
,
/* 169 */
"having_clause_opt ::="
,
/* 170 */
"having_clause_opt ::= HAVING search_condition"
,
/* 171 */
"query_expression ::= query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt"
,
/* 172 */
"query_expression_body ::= query_primary"
,
/* 173 */
"query_expression_body ::= query_expression_body UNION ALL query_expression_body"
,
/* 174 */
"query_primary ::= query_specification"
,
/* 175 */
"order_by_clause_opt ::="
,
/* 176 */
"order_by_clause_opt ::= ORDER BY sort_specification_list"
,
/* 177 */
"slimit_clause_opt ::="
,
/* 178 */
"slimit_clause_opt ::= SLIMIT NK_INTEGER"
,
/* 179 */
"slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER"
,
/* 180 */
"slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER"
,
/* 181 */
"limit_clause_opt ::="
,
/* 182 */
"limit_clause_opt ::= LIMIT NK_INTEGER"
,
/* 183 */
"limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER"
,
/* 184 */
"limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER"
,
/* 185 */
"subquery ::= NK_LP query_expression NK_RP"
,
/* 186 */
"search_condition ::= common_expression"
,
/* 187 */
"sort_specification_list ::= sort_specification"
,
/* 188 */
"sort_specification_list ::= sort_specification_list NK_COMMA sort_specification"
,
/* 189 */
"sort_specification ::= expression ordering_specification_opt null_ordering_opt"
,
/* 190 */
"ordering_specification_opt ::="
,
/* 191 */
"ordering_specification_opt ::= ASC"
,
/* 192 */
"ordering_specification_opt ::= DESC"
,
/* 193 */
"null_ordering_opt ::="
,
/* 194 */
"null_ordering_opt ::= NULLS FIRST"
,
/* 195 */
"null_ordering_opt ::= NULLS LAST"
,
/* 57 */
"cmd ::= SHOW TABLES"
,
/* 58 */
"cmd ::= query_expression"
,
/* 59 */
"literal ::= NK_INTEGER"
,
/* 60 */
"literal ::= NK_FLOAT"
,
/* 61 */
"literal ::= NK_STRING"
,
/* 62 */
"literal ::= NK_BOOL"
,
/* 63 */
"literal ::= TIMESTAMP NK_STRING"
,
/* 64 */
"literal ::= duration_literal"
,
/* 65 */
"duration_literal ::= NK_VARIABLE"
,
/* 66 */
"literal_list ::= literal"
,
/* 67 */
"literal_list ::= literal_list NK_COMMA literal"
,
/* 68 */
"db_name ::= NK_ID"
,
/* 69 */
"table_name ::= NK_ID"
,
/* 70 */
"column_name ::= NK_ID"
,
/* 71 */
"function_name ::= NK_ID"
,
/* 72 */
"table_alias ::= NK_ID"
,
/* 73 */
"column_alias ::= NK_ID"
,
/* 74 */
"expression ::= literal"
,
/* 75 */
"expression ::= column_reference"
,
/* 76 */
"expression ::= function_name NK_LP expression_list NK_RP"
,
/* 77 */
"expression ::= function_name NK_LP NK_STAR NK_RP"
,
/* 78 */
"expression ::= subquery"
,
/* 79 */
"expression ::= NK_LP expression NK_RP"
,
/* 80 */
"expression ::= NK_PLUS expression"
,
/* 81 */
"expression ::= NK_MINUS expression"
,
/* 82 */
"expression ::= expression NK_PLUS expression"
,
/* 83 */
"expression ::= expression NK_MINUS expression"
,
/* 84 */
"expression ::= expression NK_STAR expression"
,
/* 85 */
"expression ::= expression NK_SLASH expression"
,
/* 86 */
"expression ::= expression NK_REM expression"
,
/* 87 */
"expression_list ::= expression"
,
/* 88 */
"expression_list ::= expression_list NK_COMMA expression"
,
/* 89 */
"column_reference ::= column_name"
,
/* 90 */
"column_reference ::= table_name NK_DOT column_name"
,
/* 91 */
"predicate ::= expression compare_op expression"
,
/* 92 */
"predicate ::= expression BETWEEN expression AND expression"
,
/* 93 */
"predicate ::= expression NOT BETWEEN expression AND expression"
,
/* 94 */
"predicate ::= expression IS NULL"
,
/* 95 */
"predicate ::= expression IS NOT NULL"
,
/* 96 */
"predicate ::= expression in_op in_predicate_value"
,
/* 97 */
"compare_op ::= NK_LT"
,
/* 98 */
"compare_op ::= NK_GT"
,
/* 99 */
"compare_op ::= NK_LE"
,
/* 100 */
"compare_op ::= NK_GE"
,
/* 101 */
"compare_op ::= NK_NE"
,
/* 102 */
"compare_op ::= NK_EQ"
,
/* 103 */
"compare_op ::= LIKE"
,
/* 104 */
"compare_op ::= NOT LIKE"
,
/* 105 */
"compare_op ::= MATCH"
,
/* 106 */
"compare_op ::= NMATCH"
,
/* 107 */
"in_op ::= IN"
,
/* 108 */
"in_op ::= NOT IN"
,
/* 109 */
"in_predicate_value ::= NK_LP expression_list NK_RP"
,
/* 110 */
"boolean_value_expression ::= boolean_primary"
,
/* 111 */
"boolean_value_expression ::= NOT boolean_primary"
,
/* 112 */
"boolean_value_expression ::= boolean_value_expression OR boolean_value_expression"
,
/* 113 */
"boolean_value_expression ::= boolean_value_expression AND boolean_value_expression"
,
/* 114 */
"boolean_primary ::= predicate"
,
/* 115 */
"boolean_primary ::= NK_LP boolean_value_expression NK_RP"
,
/* 116 */
"common_expression ::= expression"
,
/* 117 */
"common_expression ::= boolean_value_expression"
,
/* 118 */
"from_clause ::= FROM table_reference_list"
,
/* 119 */
"table_reference_list ::= table_reference"
,
/* 120 */
"table_reference_list ::= table_reference_list NK_COMMA table_reference"
,
/* 121 */
"table_reference ::= table_primary"
,
/* 122 */
"table_reference ::= joined_table"
,
/* 123 */
"table_primary ::= table_name alias_opt"
,
/* 124 */
"table_primary ::= db_name NK_DOT table_name alias_opt"
,
/* 125 */
"table_primary ::= subquery alias_opt"
,
/* 126 */
"table_primary ::= parenthesized_joined_table"
,
/* 127 */
"alias_opt ::="
,
/* 128 */
"alias_opt ::= table_alias"
,
/* 129 */
"alias_opt ::= AS table_alias"
,
/* 130 */
"parenthesized_joined_table ::= NK_LP joined_table NK_RP"
,
/* 131 */
"parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP"
,
/* 132 */
"joined_table ::= table_reference join_type JOIN table_reference ON search_condition"
,
/* 133 */
"join_type ::="
,
/* 134 */
"join_type ::= INNER"
,
/* 135 */
"query_specification ::= SELECT set_quantifier_opt select_list from_clause where_clause_opt partition_by_clause_opt twindow_clause_opt group_by_clause_opt having_clause_opt"
,
/* 136 */
"set_quantifier_opt ::="
,
/* 137 */
"set_quantifier_opt ::= DISTINCT"
,
/* 138 */
"set_quantifier_opt ::= ALL"
,
/* 139 */
"select_list ::= NK_STAR"
,
/* 140 */
"select_list ::= select_sublist"
,
/* 141 */
"select_sublist ::= select_item"
,
/* 142 */
"select_sublist ::= select_sublist NK_COMMA select_item"
,
/* 143 */
"select_item ::= common_expression"
,
/* 144 */
"select_item ::= common_expression column_alias"
,
/* 145 */
"select_item ::= common_expression AS column_alias"
,
/* 146 */
"select_item ::= table_name NK_DOT NK_STAR"
,
/* 147 */
"where_clause_opt ::="
,
/* 148 */
"where_clause_opt ::= WHERE search_condition"
,
/* 149 */
"partition_by_clause_opt ::="
,
/* 150 */
"partition_by_clause_opt ::= PARTITION BY expression_list"
,
/* 151 */
"twindow_clause_opt ::="
,
/* 152 */
"twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA NK_INTEGER NK_RP"
,
/* 153 */
"twindow_clause_opt ::= STATE_WINDOW NK_LP column_reference NK_RP"
,
/* 154 */
"twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt"
,
/* 155 */
"twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt"
,
/* 156 */
"sliding_opt ::="
,
/* 157 */
"sliding_opt ::= SLIDING NK_LP duration_literal NK_RP"
,
/* 158 */
"fill_opt ::="
,
/* 159 */
"fill_opt ::= FILL NK_LP fill_mode NK_RP"
,
/* 160 */
"fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP"
,
/* 161 */
"fill_mode ::= NONE"
,
/* 162 */
"fill_mode ::= PREV"
,
/* 163 */
"fill_mode ::= NULL"
,
/* 164 */
"fill_mode ::= LINEAR"
,
/* 165 */
"fill_mode ::= NEXT"
,
/* 166 */
"group_by_clause_opt ::="
,
/* 167 */
"group_by_clause_opt ::= GROUP BY group_by_list"
,
/* 168 */
"group_by_list ::= expression"
,
/* 169 */
"group_by_list ::= group_by_list NK_COMMA expression"
,
/* 170 */
"having_clause_opt ::="
,
/* 171 */
"having_clause_opt ::= HAVING search_condition"
,
/* 172 */
"query_expression ::= query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt"
,
/* 173 */
"query_expression_body ::= query_primary"
,
/* 174 */
"query_expression_body ::= query_expression_body UNION ALL query_expression_body"
,
/* 175 */
"query_primary ::= query_specification"
,
/* 176 */
"order_by_clause_opt ::="
,
/* 177 */
"order_by_clause_opt ::= ORDER BY sort_specification_list"
,
/* 178 */
"slimit_clause_opt ::="
,
/* 179 */
"slimit_clause_opt ::= SLIMIT NK_INTEGER"
,
/* 180 */
"slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER"
,
/* 181 */
"slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER"
,
/* 182 */
"limit_clause_opt ::="
,
/* 183 */
"limit_clause_opt ::= LIMIT NK_INTEGER"
,
/* 184 */
"limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER"
,
/* 185 */
"limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER"
,
/* 186 */
"subquery ::= NK_LP query_expression NK_RP"
,
/* 187 */
"search_condition ::= common_expression"
,
/* 188 */
"sort_specification_list ::= sort_specification"
,
/* 189 */
"sort_specification_list ::= sort_specification_list NK_COMMA sort_specification"
,
/* 190 */
"sort_specification ::= expression ordering_specification_opt null_ordering_opt"
,
/* 191 */
"ordering_specification_opt ::="
,
/* 192 */
"ordering_specification_opt ::= ASC"
,
/* 193 */
"ordering_specification_opt ::= DESC"
,
/* 194 */
"null_ordering_opt ::="
,
/* 195 */
"null_ordering_opt ::= NULLS FIRST"
,
/* 196 */
"null_ordering_opt ::= NULLS LAST"
,
};
#endif
/* NDEBUG */
...
...
@@ -1083,119 +1084,119 @@ static void yy_destructor(
*/
/********* Begin destructor definitions ***************************************/
/* Default NON-TERMINAL Destructor */
case
11
8
:
/* cmd */
case
1
19
:
/* exists_opt */
case
12
5
:
/* column_def */
case
12
8
:
/* query_expression */
case
1
29
:
/* literal */
case
13
0
:
/* duration_literal */
case
13
6
:
/* expression */
case
13
7
:
/* column_reference */
case
1
39
:
/* subquery */
case
14
0
:
/* predicate */
case
14
3
:
/* in_predicate_value */
case
14
4
:
/* boolean_value_expression */
case
14
5
:
/* boolean_primary */
case
14
6
:
/* common_expression */
case
14
7
:
/* from_clause */
case
14
8
:
/* table_reference_list */
case
1
49
:
/* table_reference */
case
15
0
:
/* table_primary */
case
15
1
:
/* joined_table */
case
15
3
:
/* parenthesized_joined_table */
case
15
5
:
/* search_condition */
case
15
6
:
/* query_specification */
case
1
59
:
/* where_clause_opt */
case
16
1
:
/* twindow_clause_opt */
case
16
3
:
/* having_clause_opt */
case
16
5
:
/* select_item */
case
16
6
:
/* sliding_opt */
case
16
7
:
/* fill_opt */
case
17
0
:
/* query_expression_body */
case
17
2
:
/* slimit_clause_opt */
case
17
3
:
/* limit_clause_opt */
case
17
4
:
/* query_primary */
case
17
6
:
/* sort_specification */
case
11
9
:
/* cmd */
case
1
20
:
/* exists_opt */
case
12
6
:
/* column_def */
case
12
9
:
/* query_expression */
case
1
30
:
/* literal */
case
13
1
:
/* duration_literal */
case
13
7
:
/* expression */
case
13
8
:
/* column_reference */
case
1
40
:
/* subquery */
case
14
1
:
/* predicate */
case
14
4
:
/* in_predicate_value */
case
14
5
:
/* boolean_value_expression */
case
14
6
:
/* boolean_primary */
case
14
7
:
/* common_expression */
case
14
8
:
/* from_clause */
case
14
9
:
/* table_reference_list */
case
1
50
:
/* table_reference */
case
15
1
:
/* table_primary */
case
15
2
:
/* joined_table */
case
15
4
:
/* parenthesized_joined_table */
case
15
6
:
/* search_condition */
case
15
7
:
/* query_specification */
case
1
60
:
/* where_clause_opt */
case
16
2
:
/* twindow_clause_opt */
case
16
4
:
/* having_clause_opt */
case
16
6
:
/* select_item */
case
16
7
:
/* sliding_opt */
case
16
8
:
/* fill_opt */
case
17
1
:
/* query_expression_body */
case
17
3
:
/* slimit_clause_opt */
case
17
4
:
/* limit_clause_opt */
case
17
5
:
/* query_primary */
case
17
7
:
/* sort_specification */
{
PARSER_DESTRUCTOR_TRACE
;
nodesDestroyNode
((
yypminor
->
yy
1
72
));
PARSER_DESTRUCTOR_TRACE
;
nodesDestroyNode
((
yypminor
->
yy
2
72
));
}
break
;
case
12
0
:
/* db_name */
case
12
6
:
/* column_name */
case
13
2
:
/* table_name */
case
13
3
:
/* function_name */
case
13
4
:
/* table_alias */
case
13
5
:
/* column_alias */
case
15
2
:
/* alias_opt */
case
12
1
:
/* db_name */
case
12
7
:
/* column_name */
case
13
3
:
/* table_name */
case
13
4
:
/* function_name */
case
13
5
:
/* table_alias */
case
13
6
:
/* column_alias */
case
15
3
:
/* alias_opt */
{
PARSER_DESTRUCTOR_TRACE
;
}
break
;
case
12
1
:
/* db_options */
case
12
2
:
/* db_options */
{
tfree
((
yypminor
->
yy
27
));
tfree
((
yypminor
->
yy
199
));
}
break
;
case
12
2
:
/* full_table_name */
case
12
3
:
/* full_table_name */
{
}
break
;
case
12
3
:
/* column_def_list */
case
12
4
:
/* column_def_list */
{
nodesDestroyList
((
yypminor
->
yy6
0
));
nodesDestroyList
((
yypminor
->
yy6
4
));
}
break
;
case
12
4
:
/* table_options */
case
12
5
:
/* table_options */
{
tfree
((
yypminor
->
yy4
0
));
tfree
((
yypminor
->
yy4
6
));
}
break
;
case
12
7
:
/* type_name */
case
12
8
:
/* type_name */
{
}
break
;
case
13
1
:
/* literal_list */
case
13
8
:
/* expression_list */
case
15
8
:
/* select_list */
case
16
0
:
/* partition_by_clause_opt */
case
16
2
:
/* group_by_clause_opt */
case
16
4
:
/* select_sublist */
case
1
69
:
/* group_by_list */
case
17
1
:
/* order_by_clause_opt */
case
17
5
:
/* sort_specification_list */
case
13
2
:
/* literal_list */
case
13
9
:
/* expression_list */
case
15
9
:
/* select_list */
case
16
1
:
/* partition_by_clause_opt */
case
16
3
:
/* group_by_clause_opt */
case
16
5
:
/* select_sublist */
case
1
70
:
/* group_by_list */
case
17
2
:
/* order_by_clause_opt */
case
17
6
:
/* sort_specification_list */
{
PARSER_DESTRUCTOR_TRACE
;
nodesDestroyList
((
yypminor
->
yy6
0
));
PARSER_DESTRUCTOR_TRACE
;
nodesDestroyList
((
yypminor
->
yy6
4
));
}
break
;
case
14
1
:
/* compare_op */
case
14
2
:
/* in_op */
case
14
2
:
/* compare_op */
case
14
3
:
/* in_op */
{
PARSER_DESTRUCTOR_TRACE
;
}
break
;
case
15
4
:
/* join_type */
case
15
5
:
/* join_type */
{
PARSER_DESTRUCTOR_TRACE
;
}
break
;
case
15
7
:
/* set_quantifier_opt */
case
15
8
:
/* set_quantifier_opt */
{
PARSER_DESTRUCTOR_TRACE
;
}
break
;
case
16
8
:
/* fill_mode */
case
16
9
:
/* fill_mode */
{
PARSER_DESTRUCTOR_TRACE
;
}
break
;
case
17
7
:
/* ordering_specification_opt */
case
17
8
:
/* ordering_specification_opt */
{
PARSER_DESTRUCTOR_TRACE
;
}
break
;
case
17
8
:
/* null_ordering_opt */
case
17
9
:
/* null_ordering_opt */
{
PARSER_DESTRUCTOR_TRACE
;
}
...
...
@@ -1494,202 +1495,203 @@ static const struct {
YYCODETYPE
lhs
;
/* Symbol on the left-hand side of the rule */
signed
char
nrhs
;
/* Negative of the number of RHS symbols in the rule */
}
yyRuleInfo
[]
=
{
{
118
,
-
5
},
/* (0) cmd ::= CREATE DATABASE exists_opt db_name db_options */
{
119
,
-
3
},
/* (1) exists_opt ::= IF NOT EXISTS */
{
119
,
0
},
/* (2) exists_opt ::= */
{
121
,
0
},
/* (3) db_options ::= */
{
121
,
-
3
},
/* (4) db_options ::= db_options BLOCKS NK_INTEGER */
{
121
,
-
3
},
/* (5) db_options ::= db_options CACHE NK_INTEGER */
{
121
,
-
3
},
/* (6) db_options ::= db_options CACHELAST NK_INTEGER */
{
121
,
-
3
},
/* (7) db_options ::= db_options COMP NK_INTEGER */
{
121
,
-
3
},
/* (8) db_options ::= db_options DAYS NK_INTEGER */
{
121
,
-
3
},
/* (9) db_options ::= db_options FSYNC NK_INTEGER */
{
121
,
-
3
},
/* (10) db_options ::= db_options MAXROWS NK_INTEGER */
{
121
,
-
3
},
/* (11) db_options ::= db_options MINROWS NK_INTEGER */
{
121
,
-
3
},
/* (12) db_options ::= db_options KEEP NK_INTEGER */
{
121
,
-
3
},
/* (13) db_options ::= db_options PRECISION NK_STRING */
{
121
,
-
3
},
/* (14) db_options ::= db_options QUORUM NK_INTEGER */
{
121
,
-
3
},
/* (15) db_options ::= db_options REPLICA NK_INTEGER */
{
121
,
-
3
},
/* (16) db_options ::= db_options TTL NK_INTEGER */
{
121
,
-
3
},
/* (17) db_options ::= db_options WAL NK_INTEGER */
{
121
,
-
3
},
/* (18) db_options ::= db_options VGROUPS NK_INTEGER */
{
121
,
-
3
},
/* (19) db_options ::= db_options SINGLESTABLE NK_INTEGER */
{
121
,
-
3
},
/* (20) db_options ::= db_options STREAMMODE NK_INTEGER */
{
118
,
-
2
},
/* (21) cmd ::= USE db_name */
{
118
,
-
8
},
/* (22) cmd ::= CREATE TABLE exists_opt full_table_name NK_LP column_def_list NK_RP table_options */
{
122
,
-
1
},
/* (23) full_table_name ::= NK_ID */
{
122
,
-
3
},
/* (24) full_table_name ::= NK_ID NK_DOT NK_ID */
{
123
,
-
1
},
/* (25) column_def_list ::= column_def */
{
123
,
-
3
},
/* (26) column_def_list ::= column_def_list NK_COMMA column_def */
{
125
,
-
2
},
/* (27) column_def ::= column_name type_name */
{
125
,
-
4
},
/* (28) column_def ::= column_name type_name COMMENT NK_STRING */
{
127
,
-
1
},
/* (29) type_name ::= BOOL */
{
127
,
-
1
},
/* (30) type_name ::= TINYINT */
{
127
,
-
1
},
/* (31) type_name ::= SMALLINT */
{
127
,
-
1
},
/* (32) type_name ::= INT */
{
127
,
-
1
},
/* (33) type_name ::= INTEGER */
{
127
,
-
1
},
/* (34) type_name ::= BIGINT */
{
127
,
-
1
},
/* (35) type_name ::= FLOAT */
{
127
,
-
1
},
/* (36) type_name ::= DOUBLE */
{
127
,
-
4
},
/* (37) type_name ::= BINARY NK_LP NK_INTEGER NK_RP */
{
127
,
-
1
},
/* (38) type_name ::= TIMESTAMP */
{
127
,
-
4
},
/* (39) type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */
{
127
,
-
2
},
/* (40) type_name ::= TINYINT UNSIGNED */
{
127
,
-
2
},
/* (41) type_name ::= SMALLINT UNSIGNED */
{
127
,
-
2
},
/* (42) type_name ::= INT UNSIGNED */
{
127
,
-
2
},
/* (43) type_name ::= BIGINT UNSIGNED */
{
127
,
-
1
},
/* (44) type_name ::= JSON */
{
127
,
-
4
},
/* (45) type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */
{
127
,
-
1
},
/* (46) type_name ::= MEDIUMBLOB */
{
127
,
-
1
},
/* (47) type_name ::= BLOB */
{
127
,
-
4
},
/* (48) type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */
{
127
,
-
1
},
/* (49) type_name ::= DECIMAL */
{
127
,
-
4
},
/* (50) type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */
{
127
,
-
6
},
/* (51) type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */
{
124
,
0
},
/* (52) table_options ::= */
{
124
,
-
3
},
/* (53) table_options ::= table_options COMMENT NK_INTEGER */
{
124
,
-
3
},
/* (54) table_options ::= table_options KEEP NK_INTEGER */
{
124
,
-
3
},
/* (55) table_options ::= table_options TTL NK_INTEGER */
{
118
,
-
2
},
/* (56) cmd ::= SHOW DATABASES */
{
118
,
-
1
},
/* (57) cmd ::= query_expression */
{
129
,
-
1
},
/* (58) literal ::= NK_INTEGER */
{
129
,
-
1
},
/* (59) literal ::= NK_FLOAT */
{
129
,
-
1
},
/* (60) literal ::= NK_STRING */
{
129
,
-
1
},
/* (61) literal ::= NK_BOOL */
{
129
,
-
2
},
/* (62) literal ::= TIMESTAMP NK_STRING */
{
129
,
-
1
},
/* (63) literal ::= duration_literal */
{
130
,
-
1
},
/* (64) duration_literal ::= NK_VARIABLE */
{
131
,
-
1
},
/* (65) literal_list ::= literal */
{
131
,
-
3
},
/* (66) literal_list ::= literal_list NK_COMMA literal */
{
120
,
-
1
},
/* (67) db_name ::= NK_ID */
{
132
,
-
1
},
/* (68) table_name ::= NK_ID */
{
126
,
-
1
},
/* (69) column_name ::= NK_ID */
{
133
,
-
1
},
/* (70) function_name ::= NK_ID */
{
134
,
-
1
},
/* (71) table_alias ::= NK_ID */
{
135
,
-
1
},
/* (72) column_alias ::= NK_ID */
{
136
,
-
1
},
/* (73) expression ::= literal */
{
136
,
-
1
},
/* (74) expression ::= column_reference */
{
136
,
-
4
},
/* (75) expression ::= function_name NK_LP expression_list NK_RP */
{
136
,
-
4
},
/* (76) expression ::= function_name NK_LP NK_STAR NK_RP */
{
136
,
-
1
},
/* (77) expression ::= subquery */
{
136
,
-
3
},
/* (78) expression ::= NK_LP expression NK_RP */
{
136
,
-
2
},
/* (79) expression ::= NK_PLUS expression */
{
136
,
-
2
},
/* (80) expression ::= NK_MINUS expression */
{
136
,
-
3
},
/* (81) expression ::= expression NK_PLUS expression */
{
136
,
-
3
},
/* (82) expression ::= expression NK_MINUS expression */
{
136
,
-
3
},
/* (83) expression ::= expression NK_STAR expression */
{
136
,
-
3
},
/* (84) expression ::= expression NK_SLASH expression */
{
136
,
-
3
},
/* (85) expression ::= expression NK_REM expression */
{
138
,
-
1
},
/* (86) expression_list ::= expression */
{
138
,
-
3
},
/* (87) expression_list ::= expression_list NK_COMMA expression */
{
137
,
-
1
},
/* (88) column_reference ::= column_name */
{
137
,
-
3
},
/* (89) column_reference ::= table_name NK_DOT column_name */
{
140
,
-
3
},
/* (90) predicate ::= expression compare_op expression */
{
140
,
-
5
},
/* (91) predicate ::= expression BETWEEN expression AND expression */
{
140
,
-
6
},
/* (92) predicate ::= expression NOT BETWEEN expression AND expression */
{
140
,
-
3
},
/* (93) predicate ::= expression IS NULL */
{
140
,
-
4
},
/* (94) predicate ::= expression IS NOT NULL */
{
140
,
-
3
},
/* (95) predicate ::= expression in_op in_predicate_value */
{
141
,
-
1
},
/* (96) compare_op ::= NK_LT */
{
141
,
-
1
},
/* (97) compare_op ::= NK_GT */
{
141
,
-
1
},
/* (98) compare_op ::= NK_LE */
{
141
,
-
1
},
/* (99) compare_op ::= NK_GE */
{
141
,
-
1
},
/* (100) compare_op ::= NK_NE */
{
141
,
-
1
},
/* (101) compare_op ::= NK_EQ */
{
141
,
-
1
},
/* (102) compare_op ::= LIKE */
{
141
,
-
2
},
/* (103) compare_op ::= NOT LIKE */
{
141
,
-
1
},
/* (104) compare_op ::= MATCH */
{
141
,
-
1
},
/* (105) compare_op ::= NMATCH */
{
142
,
-
1
},
/* (106) in_op ::= IN */
{
142
,
-
2
},
/* (107) in_op ::= NOT IN */
{
143
,
-
3
},
/* (108) in_predicate_value ::= NK_LP expression_list NK_RP */
{
144
,
-
1
},
/* (109) boolean_value_expression ::= boolean_primary */
{
144
,
-
2
},
/* (110) boolean_value_expression ::= NOT boolean_primary */
{
144
,
-
3
},
/* (111) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */
{
144
,
-
3
},
/* (112) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */
{
145
,
-
1
},
/* (113) boolean_primary ::= predicate */
{
145
,
-
3
},
/* (114) boolean_primary ::= NK_LP boolean_value_expression NK_RP */
{
146
,
-
1
},
/* (115) common_expression ::= expression */
{
146
,
-
1
},
/* (116) common_expression ::= boolean_value_expression */
{
147
,
-
2
},
/* (117) from_clause ::= FROM table_reference_list */
{
148
,
-
1
},
/* (118) table_reference_list ::= table_reference */
{
148
,
-
3
},
/* (119) table_reference_list ::= table_reference_list NK_COMMA table_reference */
{
149
,
-
1
},
/* (120) table_reference ::= table_primary */
{
149
,
-
1
},
/* (121) table_reference ::= joined_table */
{
150
,
-
2
},
/* (122) table_primary ::= table_name alias_opt */
{
150
,
-
4
},
/* (123) table_primary ::= db_name NK_DOT table_name alias_opt */
{
150
,
-
2
},
/* (124) table_primary ::= subquery alias_opt */
{
150
,
-
1
},
/* (125) table_primary ::= parenthesized_joined_table */
{
152
,
0
},
/* (126) alias_opt ::= */
{
152
,
-
1
},
/* (127) alias_opt ::= table_alias */
{
152
,
-
2
},
/* (128) alias_opt ::= AS table_alias */
{
153
,
-
3
},
/* (129) parenthesized_joined_table ::= NK_LP joined_table NK_RP */
{
153
,
-
3
},
/* (130) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */
{
151
,
-
6
},
/* (131) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */
{
154
,
0
},
/* (132) join_type ::= */
{
154
,
-
1
},
/* (133) join_type ::= INNER */
{
156
,
-
9
},
/* (134) query_specification ::= SELECT set_quantifier_opt select_list from_clause where_clause_opt partition_by_clause_opt twindow_clause_opt group_by_clause_opt having_clause_opt */
{
157
,
0
},
/* (135) set_quantifier_opt ::= */
{
157
,
-
1
},
/* (136) set_quantifier_opt ::= DISTINCT */
{
157
,
-
1
},
/* (137) set_quantifier_opt ::= ALL */
{
158
,
-
1
},
/* (138) select_list ::= NK_STAR */
{
158
,
-
1
},
/* (139) select_list ::= select_sublist */
{
164
,
-
1
},
/* (140) select_sublist ::= select_item */
{
164
,
-
3
},
/* (141) select_sublist ::= select_sublist NK_COMMA select_item */
{
165
,
-
1
},
/* (142) select_item ::= common_expression */
{
165
,
-
2
},
/* (143) select_item ::= common_expression column_alias */
{
165
,
-
3
},
/* (144) select_item ::= common_expression AS column_alias */
{
165
,
-
3
},
/* (145) select_item ::= table_name NK_DOT NK_STAR */
{
159
,
0
},
/* (146) where_clause_opt ::= */
{
159
,
-
2
},
/* (147) where_clause_opt ::= WHERE search_condition */
{
160
,
0
},
/* (148) partition_by_clause_opt ::= */
{
160
,
-
3
},
/* (149) partition_by_clause_opt ::= PARTITION BY expression_list */
{
161
,
0
},
/* (150) twindow_clause_opt ::= */
{
161
,
-
6
},
/* (151) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA NK_INTEGER NK_RP */
{
161
,
-
4
},
/* (152) twindow_clause_opt ::= STATE_WINDOW NK_LP column_reference NK_RP */
{
161
,
-
6
},
/* (153) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */
{
161
,
-
8
},
/* (154) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */
{
166
,
0
},
/* (155) sliding_opt ::= */
{
166
,
-
4
},
/* (156) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */
{
167
,
0
},
/* (157) fill_opt ::= */
{
167
,
-
4
},
/* (158) fill_opt ::= FILL NK_LP fill_mode NK_RP */
{
167
,
-
6
},
/* (159) fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */
{
168
,
-
1
},
/* (160) fill_mode ::= NONE */
{
168
,
-
1
},
/* (161) fill_mode ::= PREV */
{
168
,
-
1
},
/* (162) fill_mode ::= NULL */
{
168
,
-
1
},
/* (163) fill_mode ::= LINEAR */
{
168
,
-
1
},
/* (164) fill_mode ::= NEXT */
{
162
,
0
},
/* (165) group_by_clause_opt ::= */
{
162
,
-
3
},
/* (166) group_by_clause_opt ::= GROUP BY group_by_list */
{
169
,
-
1
},
/* (167) group_by_list ::= expression */
{
169
,
-
3
},
/* (168) group_by_list ::= group_by_list NK_COMMA expression */
{
163
,
0
},
/* (169) having_clause_opt ::= */
{
163
,
-
2
},
/* (170) having_clause_opt ::= HAVING search_condition */
{
128
,
-
4
},
/* (171) query_expression ::= query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt */
{
170
,
-
1
},
/* (172) query_expression_body ::= query_primary */
{
170
,
-
4
},
/* (173) query_expression_body ::= query_expression_body UNION ALL query_expression_body */
{
174
,
-
1
},
/* (174) query_primary ::= query_specification */
{
171
,
0
},
/* (175) order_by_clause_opt ::= */
{
171
,
-
3
},
/* (176) order_by_clause_opt ::= ORDER BY sort_specification_list */
{
172
,
0
},
/* (177) slimit_clause_opt ::= */
{
172
,
-
2
},
/* (178) slimit_clause_opt ::= SLIMIT NK_INTEGER */
{
172
,
-
4
},
/* (179) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */
{
172
,
-
4
},
/* (180) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */
{
173
,
0
},
/* (181) limit_clause_opt ::= */
{
173
,
-
2
},
/* (182) limit_clause_opt ::= LIMIT NK_INTEGER */
{
173
,
-
4
},
/* (183) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */
{
173
,
-
4
},
/* (184) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */
{
139
,
-
3
},
/* (185) subquery ::= NK_LP query_expression NK_RP */
{
155
,
-
1
},
/* (186) search_condition ::= common_expression */
{
175
,
-
1
},
/* (187) sort_specification_list ::= sort_specification */
{
175
,
-
3
},
/* (188) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */
{
176
,
-
3
},
/* (189) sort_specification ::= expression ordering_specification_opt null_ordering_opt */
{
177
,
0
},
/* (190) ordering_specification_opt ::= */
{
177
,
-
1
},
/* (191) ordering_specification_opt ::= ASC */
{
177
,
-
1
},
/* (192) ordering_specification_opt ::= DESC */
{
178
,
0
},
/* (193) null_ordering_opt ::= */
{
178
,
-
2
},
/* (194) null_ordering_opt ::= NULLS FIRST */
{
178
,
-
2
},
/* (195) null_ordering_opt ::= NULLS LAST */
{
119
,
-
5
},
/* (0) cmd ::= CREATE DATABASE exists_opt db_name db_options */
{
120
,
-
3
},
/* (1) exists_opt ::= IF NOT EXISTS */
{
120
,
0
},
/* (2) exists_opt ::= */
{
122
,
0
},
/* (3) db_options ::= */
{
122
,
-
3
},
/* (4) db_options ::= db_options BLOCKS NK_INTEGER */
{
122
,
-
3
},
/* (5) db_options ::= db_options CACHE NK_INTEGER */
{
122
,
-
3
},
/* (6) db_options ::= db_options CACHELAST NK_INTEGER */
{
122
,
-
3
},
/* (7) db_options ::= db_options COMP NK_INTEGER */
{
122
,
-
3
},
/* (8) db_options ::= db_options DAYS NK_INTEGER */
{
122
,
-
3
},
/* (9) db_options ::= db_options FSYNC NK_INTEGER */
{
122
,
-
3
},
/* (10) db_options ::= db_options MAXROWS NK_INTEGER */
{
122
,
-
3
},
/* (11) db_options ::= db_options MINROWS NK_INTEGER */
{
122
,
-
3
},
/* (12) db_options ::= db_options KEEP NK_INTEGER */
{
122
,
-
3
},
/* (13) db_options ::= db_options PRECISION NK_STRING */
{
122
,
-
3
},
/* (14) db_options ::= db_options QUORUM NK_INTEGER */
{
122
,
-
3
},
/* (15) db_options ::= db_options REPLICA NK_INTEGER */
{
122
,
-
3
},
/* (16) db_options ::= db_options TTL NK_INTEGER */
{
122
,
-
3
},
/* (17) db_options ::= db_options WAL NK_INTEGER */
{
122
,
-
3
},
/* (18) db_options ::= db_options VGROUPS NK_INTEGER */
{
122
,
-
3
},
/* (19) db_options ::= db_options SINGLESTABLE NK_INTEGER */
{
122
,
-
3
},
/* (20) db_options ::= db_options STREAMMODE NK_INTEGER */
{
119
,
-
2
},
/* (21) cmd ::= USE db_name */
{
119
,
-
8
},
/* (22) cmd ::= CREATE TABLE exists_opt full_table_name NK_LP column_def_list NK_RP table_options */
{
123
,
-
1
},
/* (23) full_table_name ::= NK_ID */
{
123
,
-
3
},
/* (24) full_table_name ::= NK_ID NK_DOT NK_ID */
{
124
,
-
1
},
/* (25) column_def_list ::= column_def */
{
124
,
-
3
},
/* (26) column_def_list ::= column_def_list NK_COMMA column_def */
{
126
,
-
2
},
/* (27) column_def ::= column_name type_name */
{
126
,
-
4
},
/* (28) column_def ::= column_name type_name COMMENT NK_STRING */
{
128
,
-
1
},
/* (29) type_name ::= BOOL */
{
128
,
-
1
},
/* (30) type_name ::= TINYINT */
{
128
,
-
1
},
/* (31) type_name ::= SMALLINT */
{
128
,
-
1
},
/* (32) type_name ::= INT */
{
128
,
-
1
},
/* (33) type_name ::= INTEGER */
{
128
,
-
1
},
/* (34) type_name ::= BIGINT */
{
128
,
-
1
},
/* (35) type_name ::= FLOAT */
{
128
,
-
1
},
/* (36) type_name ::= DOUBLE */
{
128
,
-
4
},
/* (37) type_name ::= BINARY NK_LP NK_INTEGER NK_RP */
{
128
,
-
1
},
/* (38) type_name ::= TIMESTAMP */
{
128
,
-
4
},
/* (39) type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */
{
128
,
-
2
},
/* (40) type_name ::= TINYINT UNSIGNED */
{
128
,
-
2
},
/* (41) type_name ::= SMALLINT UNSIGNED */
{
128
,
-
2
},
/* (42) type_name ::= INT UNSIGNED */
{
128
,
-
2
},
/* (43) type_name ::= BIGINT UNSIGNED */
{
128
,
-
1
},
/* (44) type_name ::= JSON */
{
128
,
-
4
},
/* (45) type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */
{
128
,
-
1
},
/* (46) type_name ::= MEDIUMBLOB */
{
128
,
-
1
},
/* (47) type_name ::= BLOB */
{
128
,
-
4
},
/* (48) type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */
{
128
,
-
1
},
/* (49) type_name ::= DECIMAL */
{
128
,
-
4
},
/* (50) type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */
{
128
,
-
6
},
/* (51) type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */
{
125
,
0
},
/* (52) table_options ::= */
{
125
,
-
3
},
/* (53) table_options ::= table_options COMMENT NK_INTEGER */
{
125
,
-
3
},
/* (54) table_options ::= table_options KEEP NK_INTEGER */
{
125
,
-
3
},
/* (55) table_options ::= table_options TTL NK_INTEGER */
{
119
,
-
2
},
/* (56) cmd ::= SHOW DATABASES */
{
119
,
-
2
},
/* (57) cmd ::= SHOW TABLES */
{
119
,
-
1
},
/* (58) cmd ::= query_expression */
{
130
,
-
1
},
/* (59) literal ::= NK_INTEGER */
{
130
,
-
1
},
/* (60) literal ::= NK_FLOAT */
{
130
,
-
1
},
/* (61) literal ::= NK_STRING */
{
130
,
-
1
},
/* (62) literal ::= NK_BOOL */
{
130
,
-
2
},
/* (63) literal ::= TIMESTAMP NK_STRING */
{
130
,
-
1
},
/* (64) literal ::= duration_literal */
{
131
,
-
1
},
/* (65) duration_literal ::= NK_VARIABLE */
{
132
,
-
1
},
/* (66) literal_list ::= literal */
{
132
,
-
3
},
/* (67) literal_list ::= literal_list NK_COMMA literal */
{
121
,
-
1
},
/* (68) db_name ::= NK_ID */
{
133
,
-
1
},
/* (69) table_name ::= NK_ID */
{
127
,
-
1
},
/* (70) column_name ::= NK_ID */
{
134
,
-
1
},
/* (71) function_name ::= NK_ID */
{
135
,
-
1
},
/* (72) table_alias ::= NK_ID */
{
136
,
-
1
},
/* (73) column_alias ::= NK_ID */
{
137
,
-
1
},
/* (74) expression ::= literal */
{
137
,
-
1
},
/* (75) expression ::= column_reference */
{
137
,
-
4
},
/* (76) expression ::= function_name NK_LP expression_list NK_RP */
{
137
,
-
4
},
/* (77) expression ::= function_name NK_LP NK_STAR NK_RP */
{
137
,
-
1
},
/* (78) expression ::= subquery */
{
137
,
-
3
},
/* (79) expression ::= NK_LP expression NK_RP */
{
137
,
-
2
},
/* (80) expression ::= NK_PLUS expression */
{
137
,
-
2
},
/* (81) expression ::= NK_MINUS expression */
{
137
,
-
3
},
/* (82) expression ::= expression NK_PLUS expression */
{
137
,
-
3
},
/* (83) expression ::= expression NK_MINUS expression */
{
137
,
-
3
},
/* (84) expression ::= expression NK_STAR expression */
{
137
,
-
3
},
/* (85) expression ::= expression NK_SLASH expression */
{
137
,
-
3
},
/* (86) expression ::= expression NK_REM expression */
{
139
,
-
1
},
/* (87) expression_list ::= expression */
{
139
,
-
3
},
/* (88) expression_list ::= expression_list NK_COMMA expression */
{
138
,
-
1
},
/* (89) column_reference ::= column_name */
{
138
,
-
3
},
/* (90) column_reference ::= table_name NK_DOT column_name */
{
141
,
-
3
},
/* (91) predicate ::= expression compare_op expression */
{
141
,
-
5
},
/* (92) predicate ::= expression BETWEEN expression AND expression */
{
141
,
-
6
},
/* (93) predicate ::= expression NOT BETWEEN expression AND expression */
{
141
,
-
3
},
/* (94) predicate ::= expression IS NULL */
{
141
,
-
4
},
/* (95) predicate ::= expression IS NOT NULL */
{
141
,
-
3
},
/* (96) predicate ::= expression in_op in_predicate_value */
{
142
,
-
1
},
/* (97) compare_op ::= NK_LT */
{
142
,
-
1
},
/* (98) compare_op ::= NK_GT */
{
142
,
-
1
},
/* (99) compare_op ::= NK_LE */
{
142
,
-
1
},
/* (100) compare_op ::= NK_GE */
{
142
,
-
1
},
/* (101) compare_op ::= NK_NE */
{
142
,
-
1
},
/* (102) compare_op ::= NK_EQ */
{
142
,
-
1
},
/* (103) compare_op ::= LIKE */
{
142
,
-
2
},
/* (104) compare_op ::= NOT LIKE */
{
142
,
-
1
},
/* (105) compare_op ::= MATCH */
{
142
,
-
1
},
/* (106) compare_op ::= NMATCH */
{
143
,
-
1
},
/* (107) in_op ::= IN */
{
143
,
-
2
},
/* (108) in_op ::= NOT IN */
{
144
,
-
3
},
/* (109) in_predicate_value ::= NK_LP expression_list NK_RP */
{
145
,
-
1
},
/* (110) boolean_value_expression ::= boolean_primary */
{
145
,
-
2
},
/* (111) boolean_value_expression ::= NOT boolean_primary */
{
145
,
-
3
},
/* (112) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */
{
145
,
-
3
},
/* (113) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */
{
146
,
-
1
},
/* (114) boolean_primary ::= predicate */
{
146
,
-
3
},
/* (115) boolean_primary ::= NK_LP boolean_value_expression NK_RP */
{
147
,
-
1
},
/* (116) common_expression ::= expression */
{
147
,
-
1
},
/* (117) common_expression ::= boolean_value_expression */
{
148
,
-
2
},
/* (118) from_clause ::= FROM table_reference_list */
{
149
,
-
1
},
/* (119) table_reference_list ::= table_reference */
{
149
,
-
3
},
/* (120) table_reference_list ::= table_reference_list NK_COMMA table_reference */
{
150
,
-
1
},
/* (121) table_reference ::= table_primary */
{
150
,
-
1
},
/* (122) table_reference ::= joined_table */
{
151
,
-
2
},
/* (123) table_primary ::= table_name alias_opt */
{
151
,
-
4
},
/* (124) table_primary ::= db_name NK_DOT table_name alias_opt */
{
151
,
-
2
},
/* (125) table_primary ::= subquery alias_opt */
{
151
,
-
1
},
/* (126) table_primary ::= parenthesized_joined_table */
{
153
,
0
},
/* (127) alias_opt ::= */
{
153
,
-
1
},
/* (128) alias_opt ::= table_alias */
{
153
,
-
2
},
/* (129) alias_opt ::= AS table_alias */
{
154
,
-
3
},
/* (130) parenthesized_joined_table ::= NK_LP joined_table NK_RP */
{
154
,
-
3
},
/* (131) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */
{
152
,
-
6
},
/* (132) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */
{
155
,
0
},
/* (133) join_type ::= */
{
155
,
-
1
},
/* (134) join_type ::= INNER */
{
157
,
-
9
},
/* (135) query_specification ::= SELECT set_quantifier_opt select_list from_clause where_clause_opt partition_by_clause_opt twindow_clause_opt group_by_clause_opt having_clause_opt */
{
158
,
0
},
/* (136) set_quantifier_opt ::= */
{
158
,
-
1
},
/* (137) set_quantifier_opt ::= DISTINCT */
{
158
,
-
1
},
/* (138) set_quantifier_opt ::= ALL */
{
159
,
-
1
},
/* (139) select_list ::= NK_STAR */
{
159
,
-
1
},
/* (140) select_list ::= select_sublist */
{
165
,
-
1
},
/* (141) select_sublist ::= select_item */
{
165
,
-
3
},
/* (142) select_sublist ::= select_sublist NK_COMMA select_item */
{
166
,
-
1
},
/* (143) select_item ::= common_expression */
{
166
,
-
2
},
/* (144) select_item ::= common_expression column_alias */
{
166
,
-
3
},
/* (145) select_item ::= common_expression AS column_alias */
{
166
,
-
3
},
/* (146) select_item ::= table_name NK_DOT NK_STAR */
{
160
,
0
},
/* (147) where_clause_opt ::= */
{
160
,
-
2
},
/* (148) where_clause_opt ::= WHERE search_condition */
{
161
,
0
},
/* (149) partition_by_clause_opt ::= */
{
161
,
-
3
},
/* (150) partition_by_clause_opt ::= PARTITION BY expression_list */
{
162
,
0
},
/* (151) twindow_clause_opt ::= */
{
162
,
-
6
},
/* (152) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA NK_INTEGER NK_RP */
{
162
,
-
4
},
/* (153) twindow_clause_opt ::= STATE_WINDOW NK_LP column_reference NK_RP */
{
162
,
-
6
},
/* (154) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */
{
162
,
-
8
},
/* (155) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */
{
167
,
0
},
/* (156) sliding_opt ::= */
{
167
,
-
4
},
/* (157) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */
{
168
,
0
},
/* (158) fill_opt ::= */
{
168
,
-
4
},
/* (159) fill_opt ::= FILL NK_LP fill_mode NK_RP */
{
168
,
-
6
},
/* (160) fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */
{
169
,
-
1
},
/* (161) fill_mode ::= NONE */
{
169
,
-
1
},
/* (162) fill_mode ::= PREV */
{
169
,
-
1
},
/* (163) fill_mode ::= NULL */
{
169
,
-
1
},
/* (164) fill_mode ::= LINEAR */
{
169
,
-
1
},
/* (165) fill_mode ::= NEXT */
{
163
,
0
},
/* (166) group_by_clause_opt ::= */
{
163
,
-
3
},
/* (167) group_by_clause_opt ::= GROUP BY group_by_list */
{
170
,
-
1
},
/* (168) group_by_list ::= expression */
{
170
,
-
3
},
/* (169) group_by_list ::= group_by_list NK_COMMA expression */
{
164
,
0
},
/* (170) having_clause_opt ::= */
{
164
,
-
2
},
/* (171) having_clause_opt ::= HAVING search_condition */
{
129
,
-
4
},
/* (172) query_expression ::= query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt */
{
171
,
-
1
},
/* (173) query_expression_body ::= query_primary */
{
171
,
-
4
},
/* (174) query_expression_body ::= query_expression_body UNION ALL query_expression_body */
{
175
,
-
1
},
/* (175) query_primary ::= query_specification */
{
172
,
0
},
/* (176) order_by_clause_opt ::= */
{
172
,
-
3
},
/* (177) order_by_clause_opt ::= ORDER BY sort_specification_list */
{
173
,
0
},
/* (178) slimit_clause_opt ::= */
{
173
,
-
2
},
/* (179) slimit_clause_opt ::= SLIMIT NK_INTEGER */
{
173
,
-
4
},
/* (180) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */
{
173
,
-
4
},
/* (181) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */
{
174
,
0
},
/* (182) limit_clause_opt ::= */
{
174
,
-
2
},
/* (183) limit_clause_opt ::= LIMIT NK_INTEGER */
{
174
,
-
4
},
/* (184) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */
{
174
,
-
4
},
/* (185) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */
{
140
,
-
3
},
/* (186) subquery ::= NK_LP query_expression NK_RP */
{
156
,
-
1
},
/* (187) search_condition ::= common_expression */
{
176
,
-
1
},
/* (188) sort_specification_list ::= sort_specification */
{
176
,
-
3
},
/* (189) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */
{
177
,
-
3
},
/* (190) sort_specification ::= expression ordering_specification_opt null_ordering_opt */
{
178
,
0
},
/* (191) ordering_specification_opt ::= */
{
178
,
-
1
},
/* (192) ordering_specification_opt ::= ASC */
{
178
,
-
1
},
/* (193) ordering_specification_opt ::= DESC */
{
179
,
0
},
/* (194) null_ordering_opt ::= */
{
179
,
-
2
},
/* (195) null_ordering_opt ::= NULLS FIRST */
{
179
,
-
2
},
/* (196) null_ordering_opt ::= NULLS LAST */
};
static
void
yy_accept
(
yyParser
*
);
/* Forward Declaration */
...
...
@@ -1777,677 +1779,680 @@ static YYACTIONTYPE yy_reduce(
/********** Begin reduce actions **********************************************/
YYMINORTYPE
yylhsminor
;
case
0
:
/* cmd ::= CREATE DATABASE exists_opt db_name db_options */
{
pCxt
->
pRootNode
=
createCreateDatabaseStmt
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
259
,
&
yymsp
[
-
1
].
minor
.
yy105
,
yymsp
[
0
].
minor
.
yy27
);}
{
pCxt
->
pRootNode
=
createCreateDatabaseStmt
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
137
,
&
yymsp
[
-
1
].
minor
.
yy209
,
yymsp
[
0
].
minor
.
yy199
);}
break
;
case
1
:
/* exists_opt ::= IF NOT EXISTS */
{
yymsp
[
-
2
].
minor
.
yy
259
=
true
;
}
{
yymsp
[
-
2
].
minor
.
yy
137
=
true
;
}
break
;
case
2
:
/* exists_opt ::= */
{
yymsp
[
1
].
minor
.
yy
259
=
false
;
}
{
yymsp
[
1
].
minor
.
yy
137
=
false
;
}
break
;
case
3
:
/* db_options ::= */
{
yymsp
[
1
].
minor
.
yy
27
=
createDefaultDatabaseOptions
(
pCxt
);
}
{
yymsp
[
1
].
minor
.
yy
199
=
createDefaultDatabaseOptions
(
pCxt
);
}
break
;
case
4
:
/* db_options ::= db_options BLOCKS NK_INTEGER */
{
yylhsminor
.
yy
27
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy27
,
DB_OPTION_BLOCKS
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
27
=
yylhsminor
.
yy27
;
{
yylhsminor
.
yy
199
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy199
,
DB_OPTION_BLOCKS
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
199
=
yylhsminor
.
yy199
;
break
;
case
5
:
/* db_options ::= db_options CACHE NK_INTEGER */
{
yylhsminor
.
yy
27
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy27
,
DB_OPTION_CACHE
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
27
=
yylhsminor
.
yy27
;
{
yylhsminor
.
yy
199
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy199
,
DB_OPTION_CACHE
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
199
=
yylhsminor
.
yy199
;
break
;
case
6
:
/* db_options ::= db_options CACHELAST NK_INTEGER */
{
yylhsminor
.
yy
27
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy27
,
DB_OPTION_CACHELAST
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
27
=
yylhsminor
.
yy27
;
{
yylhsminor
.
yy
199
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy199
,
DB_OPTION_CACHELAST
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
199
=
yylhsminor
.
yy199
;
break
;
case
7
:
/* db_options ::= db_options COMP NK_INTEGER */
{
yylhsminor
.
yy
27
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy27
,
DB_OPTION_COMP
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
27
=
yylhsminor
.
yy27
;
{
yylhsminor
.
yy
199
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy199
,
DB_OPTION_COMP
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
199
=
yylhsminor
.
yy199
;
break
;
case
8
:
/* db_options ::= db_options DAYS NK_INTEGER */
{
yylhsminor
.
yy
27
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy27
,
DB_OPTION_DAYS
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
27
=
yylhsminor
.
yy27
;
{
yylhsminor
.
yy
199
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy199
,
DB_OPTION_DAYS
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
199
=
yylhsminor
.
yy199
;
break
;
case
9
:
/* db_options ::= db_options FSYNC NK_INTEGER */
{
yylhsminor
.
yy
27
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy27
,
DB_OPTION_FSYNC
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
27
=
yylhsminor
.
yy27
;
{
yylhsminor
.
yy
199
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy199
,
DB_OPTION_FSYNC
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
199
=
yylhsminor
.
yy199
;
break
;
case
10
:
/* db_options ::= db_options MAXROWS NK_INTEGER */
{
yylhsminor
.
yy
27
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy27
,
DB_OPTION_MAXROWS
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
27
=
yylhsminor
.
yy27
;
{
yylhsminor
.
yy
199
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy199
,
DB_OPTION_MAXROWS
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
199
=
yylhsminor
.
yy199
;
break
;
case
11
:
/* db_options ::= db_options MINROWS NK_INTEGER */
{
yylhsminor
.
yy
27
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy27
,
DB_OPTION_MINROWS
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
27
=
yylhsminor
.
yy27
;
{
yylhsminor
.
yy
199
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy199
,
DB_OPTION_MINROWS
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
199
=
yylhsminor
.
yy199
;
break
;
case
12
:
/* db_options ::= db_options KEEP NK_INTEGER */
{
yylhsminor
.
yy
27
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy27
,
DB_OPTION_KEEP
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
27
=
yylhsminor
.
yy27
;
{
yylhsminor
.
yy
199
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy199
,
DB_OPTION_KEEP
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
199
=
yylhsminor
.
yy199
;
break
;
case
13
:
/* db_options ::= db_options PRECISION NK_STRING */
{
yylhsminor
.
yy
27
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy27
,
DB_OPTION_PRECISION
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
27
=
yylhsminor
.
yy27
;
{
yylhsminor
.
yy
199
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy199
,
DB_OPTION_PRECISION
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
199
=
yylhsminor
.
yy199
;
break
;
case
14
:
/* db_options ::= db_options QUORUM NK_INTEGER */
{
yylhsminor
.
yy
27
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy27
,
DB_OPTION_QUORUM
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
27
=
yylhsminor
.
yy27
;
{
yylhsminor
.
yy
199
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy199
,
DB_OPTION_QUORUM
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
199
=
yylhsminor
.
yy199
;
break
;
case
15
:
/* db_options ::= db_options REPLICA NK_INTEGER */
{
yylhsminor
.
yy
27
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy27
,
DB_OPTION_REPLICA
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
27
=
yylhsminor
.
yy27
;
{
yylhsminor
.
yy
199
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy199
,
DB_OPTION_REPLICA
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
199
=
yylhsminor
.
yy199
;
break
;
case
16
:
/* db_options ::= db_options TTL NK_INTEGER */
{
yylhsminor
.
yy
27
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy27
,
DB_OPTION_TTL
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
27
=
yylhsminor
.
yy27
;
{
yylhsminor
.
yy
199
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy199
,
DB_OPTION_TTL
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
199
=
yylhsminor
.
yy199
;
break
;
case
17
:
/* db_options ::= db_options WAL NK_INTEGER */
{
yylhsminor
.
yy
27
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy27
,
DB_OPTION_WAL
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
27
=
yylhsminor
.
yy27
;
{
yylhsminor
.
yy
199
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy199
,
DB_OPTION_WAL
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
199
=
yylhsminor
.
yy199
;
break
;
case
18
:
/* db_options ::= db_options VGROUPS NK_INTEGER */
{
yylhsminor
.
yy
27
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy27
,
DB_OPTION_VGROUPS
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
27
=
yylhsminor
.
yy27
;
{
yylhsminor
.
yy
199
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy199
,
DB_OPTION_VGROUPS
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
199
=
yylhsminor
.
yy199
;
break
;
case
19
:
/* db_options ::= db_options SINGLESTABLE NK_INTEGER */
{
yylhsminor
.
yy
27
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy27
,
DB_OPTION_SINGLESTABLE
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
27
=
yylhsminor
.
yy27
;
{
yylhsminor
.
yy
199
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy199
,
DB_OPTION_SINGLESTABLE
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
199
=
yylhsminor
.
yy199
;
break
;
case
20
:
/* db_options ::= db_options STREAMMODE NK_INTEGER */
{
yylhsminor
.
yy
27
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy27
,
DB_OPTION_STREAMMODE
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
27
=
yylhsminor
.
yy27
;
{
yylhsminor
.
yy
199
=
setDatabaseOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy199
,
DB_OPTION_STREAMMODE
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
199
=
yylhsminor
.
yy199
;
break
;
case
21
:
/* cmd ::= USE db_name */
{
pCxt
->
pRootNode
=
createUseDatabaseStmt
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy
105
);}
{
pCxt
->
pRootNode
=
createUseDatabaseStmt
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy
209
);}
break
;
case
22
:
/* cmd ::= CREATE TABLE exists_opt full_table_name NK_LP column_def_list NK_RP table_options */
{
pCxt
->
pRootNode
=
createCreateTableStmt
(
pCxt
,
yymsp
[
-
5
].
minor
.
yy
259
,
&
yymsp
[
-
4
].
minor
.
yy111
,
yymsp
[
-
2
].
minor
.
yy60
,
yymsp
[
0
].
minor
.
yy40
);}
{
pCxt
->
pRootNode
=
createCreateTableStmt
(
pCxt
,
yymsp
[
-
5
].
minor
.
yy
137
,
&
yymsp
[
-
4
].
minor
.
yy57
,
yymsp
[
-
2
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy46
);}
break
;
case
23
:
/* full_table_name ::= NK_ID */
{
STokenPair
t
=
{
.
first
=
yymsp
[
0
].
minor
.
yy0
,
.
second
=
nil_token
};
yylhsminor
.
yy111
=
t
;
}
yymsp
[
0
].
minor
.
yy
111
=
yylhsminor
.
yy111
;
{
STokenPair
t
=
{
.
first
=
nil_token
,
.
second
=
yymsp
[
0
].
minor
.
yy0
};
yylhsminor
.
yy57
=
t
;
}
yymsp
[
0
].
minor
.
yy
57
=
yylhsminor
.
yy57
;
break
;
case
24
:
/* full_table_name ::= NK_ID NK_DOT NK_ID */
{
STokenPair
t
=
{
.
first
=
yymsp
[
-
2
].
minor
.
yy0
,
.
second
=
yymsp
[
0
].
minor
.
yy0
};
yylhsminor
.
yy111
=
t
;
}
yymsp
[
-
2
].
minor
.
yy
111
=
yylhsminor
.
yy111
;
{
STokenPair
t
=
{
.
first
=
yymsp
[
-
2
].
minor
.
yy0
,
.
second
=
yymsp
[
0
].
minor
.
yy0
};
yylhsminor
.
yy57
=
t
;
}
yymsp
[
-
2
].
minor
.
yy
57
=
yylhsminor
.
yy57
;
break
;
case
25
:
/* column_def_list ::= column_def */
{
yylhsminor
.
yy6
0
=
createNodeList
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
);
}
yymsp
[
0
].
minor
.
yy6
0
=
yylhsminor
.
yy60
;
{
yylhsminor
.
yy6
4
=
createNodeList
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
);
}
yymsp
[
0
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
break
;
case
26
:
/* column_def_list ::= column_def_list NK_COMMA column_def */
{
yylhsminor
.
yy6
0
=
addNodeToList
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy60
,
yymsp
[
0
].
minor
.
yy1
72
);
}
yymsp
[
-
2
].
minor
.
yy6
0
=
yylhsminor
.
yy60
;
{
yylhsminor
.
yy6
4
=
addNodeToList
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy2
72
);
}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
break
;
case
27
:
/* column_def ::= column_name type_name */
{
yylhsminor
.
yy
172
=
createColumnDefNode
(
pCxt
,
&
yymsp
[
-
1
].
minor
.
yy105
,
yymsp
[
0
].
minor
.
yy248
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
{
yylhsminor
.
yy
272
=
createColumnDefNode
(
pCxt
,
&
yymsp
[
-
1
].
minor
.
yy209
,
yymsp
[
0
].
minor
.
yy304
,
NULL
);
}
yymsp
[
-
1
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
28
:
/* column_def ::= column_name type_name COMMENT NK_STRING */
{
yylhsminor
.
yy
172
=
createColumnDefNode
(
pCxt
,
&
yymsp
[
-
3
].
minor
.
yy105
,
yymsp
[
-
2
].
minor
.
yy248
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
3
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
{
yylhsminor
.
yy
272
=
createColumnDefNode
(
pCxt
,
&
yymsp
[
-
3
].
minor
.
yy209
,
yymsp
[
-
2
].
minor
.
yy304
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
3
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
29
:
/* type_name ::= BOOL */
{
yymsp
[
0
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_BOOL
);
}
{
yymsp
[
0
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_BOOL
);
}
break
;
case
30
:
/* type_name ::= TINYINT */
{
yymsp
[
0
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_TINYINT
);
}
{
yymsp
[
0
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_TINYINT
);
}
break
;
case
31
:
/* type_name ::= SMALLINT */
{
yymsp
[
0
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_SMALLINT
);
}
{
yymsp
[
0
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_SMALLINT
);
}
break
;
case
32
:
/* type_name ::= INT */
case
33
:
/* type_name ::= INTEGER */
yytestcase
(
yyruleno
==
33
);
{
yymsp
[
0
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_INT
);
}
{
yymsp
[
0
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_INT
);
}
break
;
case
34
:
/* type_name ::= BIGINT */
{
yymsp
[
0
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_BIGINT
);
}
{
yymsp
[
0
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_BIGINT
);
}
break
;
case
35
:
/* type_name ::= FLOAT */
{
yymsp
[
0
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_FLOAT
);
}
{
yymsp
[
0
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_FLOAT
);
}
break
;
case
36
:
/* type_name ::= DOUBLE */
{
yymsp
[
0
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_DOUBLE
);
}
{
yymsp
[
0
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_DOUBLE
);
}
break
;
case
37
:
/* type_name ::= BINARY NK_LP NK_INTEGER NK_RP */
{
yymsp
[
-
3
].
minor
.
yy
248
=
createVarLenDataType
(
TSDB_DATA_TYPE_BINARY
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
{
yymsp
[
-
3
].
minor
.
yy
304
=
createVarLenDataType
(
TSDB_DATA_TYPE_BINARY
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
break
;
case
38
:
/* type_name ::= TIMESTAMP */
{
yymsp
[
0
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_TIMESTAMP
);
}
{
yymsp
[
0
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_TIMESTAMP
);
}
break
;
case
39
:
/* type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */
{
yymsp
[
-
3
].
minor
.
yy
248
=
createVarLenDataType
(
TSDB_DATA_TYPE_NCHAR
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
{
yymsp
[
-
3
].
minor
.
yy
304
=
createVarLenDataType
(
TSDB_DATA_TYPE_NCHAR
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
break
;
case
40
:
/* type_name ::= TINYINT UNSIGNED */
{
yymsp
[
-
1
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_UTINYINT
);
}
{
yymsp
[
-
1
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_UTINYINT
);
}
break
;
case
41
:
/* type_name ::= SMALLINT UNSIGNED */
{
yymsp
[
-
1
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_USMALLINT
);
}
{
yymsp
[
-
1
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_USMALLINT
);
}
break
;
case
42
:
/* type_name ::= INT UNSIGNED */
{
yymsp
[
-
1
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_UINT
);
}
{
yymsp
[
-
1
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_UINT
);
}
break
;
case
43
:
/* type_name ::= BIGINT UNSIGNED */
{
yymsp
[
-
1
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_UBIGINT
);
}
{
yymsp
[
-
1
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_UBIGINT
);
}
break
;
case
44
:
/* type_name ::= JSON */
{
yymsp
[
0
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_JSON
);
}
{
yymsp
[
0
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_JSON
);
}
break
;
case
45
:
/* type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */
{
yymsp
[
-
3
].
minor
.
yy
248
=
createVarLenDataType
(
TSDB_DATA_TYPE_VARCHAR
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
{
yymsp
[
-
3
].
minor
.
yy
304
=
createVarLenDataType
(
TSDB_DATA_TYPE_VARCHAR
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
break
;
case
46
:
/* type_name ::= MEDIUMBLOB */
{
yymsp
[
0
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_MEDIUMBLOB
);
}
{
yymsp
[
0
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_MEDIUMBLOB
);
}
break
;
case
47
:
/* type_name ::= BLOB */
{
yymsp
[
0
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_BLOB
);
}
{
yymsp
[
0
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_BLOB
);
}
break
;
case
48
:
/* type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */
{
yymsp
[
-
3
].
minor
.
yy
248
=
createVarLenDataType
(
TSDB_DATA_TYPE_VARBINARY
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
{
yymsp
[
-
3
].
minor
.
yy
304
=
createVarLenDataType
(
TSDB_DATA_TYPE_VARBINARY
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
break
;
case
49
:
/* type_name ::= DECIMAL */
{
yymsp
[
0
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_DECIMAL
);
}
{
yymsp
[
0
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_DECIMAL
);
}
break
;
case
50
:
/* type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */
{
yymsp
[
-
3
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_DECIMAL
);
}
{
yymsp
[
-
3
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_DECIMAL
);
}
break
;
case
51
:
/* type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */
{
yymsp
[
-
5
].
minor
.
yy
248
=
createDataType
(
TSDB_DATA_TYPE_DECIMAL
);
}
{
yymsp
[
-
5
].
minor
.
yy
304
=
createDataType
(
TSDB_DATA_TYPE_DECIMAL
);
}
break
;
case
52
:
/* table_options ::= */
{
yymsp
[
1
].
minor
.
yy4
0
=
createDefaultTableOptions
(
pCxt
);}
{
yymsp
[
1
].
minor
.
yy4
6
=
createDefaultTableOptions
(
pCxt
);}
break
;
case
53
:
/* table_options ::= table_options COMMENT NK_INTEGER */
{
yylhsminor
.
yy4
0
=
setTableOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy40
,
TABLE_OPTION_COMMENT
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy4
0
=
yylhsminor
.
yy40
;
{
yylhsminor
.
yy4
6
=
setTableOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy46
,
TABLE_OPTION_COMMENT
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy4
6
=
yylhsminor
.
yy46
;
break
;
case
54
:
/* table_options ::= table_options KEEP NK_INTEGER */
{
yylhsminor
.
yy4
0
=
setTableOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy40
,
TABLE_OPTION_KEEP
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy4
0
=
yylhsminor
.
yy40
;
{
yylhsminor
.
yy4
6
=
setTableOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy46
,
TABLE_OPTION_KEEP
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy4
6
=
yylhsminor
.
yy46
;
break
;
case
55
:
/* table_options ::= table_options TTL NK_INTEGER */
{
yylhsminor
.
yy4
0
=
setTableOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy40
,
TABLE_OPTION_TTL
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy4
0
=
yylhsminor
.
yy40
;
{
yylhsminor
.
yy4
6
=
setTableOption
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy46
,
TABLE_OPTION_TTL
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy4
6
=
yylhsminor
.
yy46
;
break
;
case
56
:
/* cmd ::= SHOW DATABASES */
{
pCxt
->
pRootNode
=
createShowStmt
(
pCxt
,
QUERY_NODE_SHOW_DATABASE_STMT
);
}
break
;
case
57
:
/* cmd ::= query_expression */
{
PARSER_TRACE
;
pCxt
->
pRootNode
=
yymsp
[
0
].
minor
.
yy172
;
}
break
;
case
58
:
/* literal ::= NK_INTEGER */
{
PARSER_TRACE
;
yylhsminor
.
yy172
=
createRawExprNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
,
createValueNode
(
pCxt
,
TSDB_DATA_TYPE_BIGINT
,
&
yymsp
[
0
].
minor
.
yy0
));
}
yymsp
[
0
].
minor
.
yy172
=
yylhsminor
.
yy172
;
break
;
case
59
:
/* literal ::= NK_FLOAT */
{
PARSER_TRACE
;
yylhsminor
.
yy172
=
createRawExprNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
,
createValueNode
(
pCxt
,
TSDB_DATA_TYPE_DOUBLE
,
&
yymsp
[
0
].
minor
.
yy0
));
}
yymsp
[
0
].
minor
.
yy172
=
yylhsminor
.
yy172
;
break
;
case
60
:
/* literal ::= NK_STRING */
{
PARSER_TRACE
;
yylhsminor
.
yy172
=
createRawExprNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
,
createValueNode
(
pCxt
,
TSDB_DATA_TYPE_BINARY
,
&
yymsp
[
0
].
minor
.
yy0
));
}
yymsp
[
0
].
minor
.
yy172
=
yylhsminor
.
yy172
;
break
;
case
61
:
/* literal ::= NK_BOOL */
{
PARSER_TRACE
;
yylhsminor
.
yy172
=
createRawExprNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
,
createValueNode
(
pCxt
,
TSDB_DATA_TYPE_BOOL
,
&
yymsp
[
0
].
minor
.
yy0
));
}
yymsp
[
0
].
minor
.
yy172
=
yylhsminor
.
yy172
;
break
;
case
62
:
/* literal ::= TIMESTAMP NK_STRING */
{
PARSER_TRACE
;
yylhsminor
.
yy172
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
createValueNode
(
pCxt
,
TSDB_DATA_TYPE_TIMESTAMP
,
&
yymsp
[
0
].
minor
.
yy0
));
}
yymsp
[
-
1
].
minor
.
yy172
=
yylhsminor
.
yy172
;
break
;
case
63
:
/* literal ::= duration_literal */
case
73
:
/* expression ::= literal */
yytestcase
(
yyruleno
==
73
);
case
74
:
/* expression ::= column_reference */
yytestcase
(
yyruleno
==
74
);
case
77
:
/* expression ::= subquery */
yytestcase
(
yyruleno
==
77
);
case
109
:
/* boolean_value_expression ::= boolean_primary */
yytestcase
(
yyruleno
==
109
);
case
113
:
/* boolean_primary ::= predicate */
yytestcase
(
yyruleno
==
113
);
case
118
:
/* table_reference_list ::= table_reference */
yytestcase
(
yyruleno
==
118
);
case
120
:
/* table_reference ::= table_primary */
yytestcase
(
yyruleno
==
120
);
case
121
:
/* table_reference ::= joined_table */
yytestcase
(
yyruleno
==
121
);
case
125
:
/* table_primary ::= parenthesized_joined_table */
yytestcase
(
yyruleno
==
125
);
case
172
:
/* query_expression_body ::= query_primary */
yytestcase
(
yyruleno
==
172
);
case
174
:
/* query_primary ::= query_specification */
yytestcase
(
yyruleno
==
174
);
{
PARSER_TRACE
;
yylhsminor
.
yy172
=
yymsp
[
0
].
minor
.
yy172
;
}
yymsp
[
0
].
minor
.
yy172
=
yylhsminor
.
yy172
;
break
;
case
64
:
/* duration_literal ::= NK_VARIABLE */
{
PARSER_TRACE
;
yylhsminor
.
yy172
=
createRawExprNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
,
createDurationValueNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
));
}
yymsp
[
0
].
minor
.
yy172
=
yylhsminor
.
yy172
;
break
;
case
65
:
/* literal_list ::= literal */
case
86
:
/* expression_list ::= expression */
yytestcase
(
yyruleno
==
86
);
{
PARSER_TRACE
;
yylhsminor
.
yy60
=
createNodeList
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy172
));
}
yymsp
[
0
].
minor
.
yy60
=
yylhsminor
.
yy60
;
break
;
case
66
:
/* literal_list ::= literal_list NK_COMMA literal */
case
87
:
/* expression_list ::= expression_list NK_COMMA expression */
yytestcase
(
yyruleno
==
87
);
{
PARSER_TRACE
;
yylhsminor
.
yy60
=
addNodeToList
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy60
,
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy172
));
}
yymsp
[
-
2
].
minor
.
yy60
=
yylhsminor
.
yy60
;
break
;
case
67
:
/* db_name ::= NK_ID */
case
68
:
/* table_name ::= NK_ID */
yytestcase
(
yyruleno
==
68
);
case
69
:
/* column_name ::= NK_ID */
yytestcase
(
yyruleno
==
69
);
case
70
:
/* function_name ::= NK_ID */
yytestcase
(
yyruleno
==
70
);
case
71
:
/* table_alias ::= NK_ID */
yytestcase
(
yyruleno
==
71
);
case
72
:
/* column_alias ::= NK_ID */
yytestcase
(
yyruleno
==
72
);
{
PARSER_TRACE
;
yylhsminor
.
yy105
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
0
].
minor
.
yy105
=
yylhsminor
.
yy105
;
break
;
case
75
:
/* expression ::= function_name NK_LP expression_list NK_RP */
{
PARSER_TRACE
;
yylhsminor
.
yy172
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
3
].
minor
.
yy105
,
&
yymsp
[
0
].
minor
.
yy0
,
createFunctionNode
(
pCxt
,
&
yymsp
[
-
3
].
minor
.
yy105
,
yymsp
[
-
1
].
minor
.
yy60
));
}
yymsp
[
-
3
].
minor
.
yy172
=
yylhsminor
.
yy172
;
break
;
case
76
:
/* expression ::= function_name NK_LP NK_STAR NK_RP */
{
PARSER_TRACE
;
yylhsminor
.
yy172
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
3
].
minor
.
yy105
,
&
yymsp
[
0
].
minor
.
yy0
,
createFunctionNode
(
pCxt
,
&
yymsp
[
-
3
].
minor
.
yy105
,
createNodeList
(
pCxt
,
createColumnNode
(
pCxt
,
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
))));
}
yymsp
[
-
3
].
minor
.
yy172
=
yylhsminor
.
yy172
;
break
;
case
78
:
/* expression ::= NK_LP expression NK_RP */
case
114
:
/* boolean_primary ::= NK_LP boolean_value_expression NK_RP */
yytestcase
(
yyruleno
==
114
);
{
PARSER_TRACE
;
yylhsminor
.
yy172
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
1
].
minor
.
yy172
));
}
yymsp
[
-
2
].
minor
.
yy172
=
yylhsminor
.
yy172
;
break
;
case
79
:
/* expression ::= NK_PLUS expression */
{
pCxt
->
pRootNode
=
createShowStmt
(
pCxt
,
QUERY_NODE_SHOW_DATABASES_STMT
);
}
break
;
case
57
:
/* cmd ::= SHOW TABLES */
{
pCxt
->
pRootNode
=
createShowStmt
(
pCxt
,
QUERY_NODE_SHOW_TABLES_STMT
);
}
break
;
case
58
:
/* cmd ::= query_expression */
{
PARSER_TRACE
;
pCxt
->
pRootNode
=
yymsp
[
0
].
minor
.
yy272
;
}
break
;
case
59
:
/* literal ::= NK_INTEGER */
{
PARSER_TRACE
;
yylhsminor
.
yy272
=
createRawExprNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
,
createValueNode
(
pCxt
,
TSDB_DATA_TYPE_BIGINT
,
&
yymsp
[
0
].
minor
.
yy0
));
}
yymsp
[
0
].
minor
.
yy272
=
yylhsminor
.
yy272
;
break
;
case
60
:
/* literal ::= NK_FLOAT */
{
PARSER_TRACE
;
yylhsminor
.
yy272
=
createRawExprNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
,
createValueNode
(
pCxt
,
TSDB_DATA_TYPE_DOUBLE
,
&
yymsp
[
0
].
minor
.
yy0
));
}
yymsp
[
0
].
minor
.
yy272
=
yylhsminor
.
yy272
;
break
;
case
61
:
/* literal ::= NK_STRING */
{
PARSER_TRACE
;
yylhsminor
.
yy272
=
createRawExprNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
,
createValueNode
(
pCxt
,
TSDB_DATA_TYPE_BINARY
,
&
yymsp
[
0
].
minor
.
yy0
));
}
yymsp
[
0
].
minor
.
yy272
=
yylhsminor
.
yy272
;
break
;
case
62
:
/* literal ::= NK_BOOL */
{
PARSER_TRACE
;
yylhsminor
.
yy272
=
createRawExprNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
,
createValueNode
(
pCxt
,
TSDB_DATA_TYPE_BOOL
,
&
yymsp
[
0
].
minor
.
yy0
));
}
yymsp
[
0
].
minor
.
yy272
=
yylhsminor
.
yy272
;
break
;
case
63
:
/* literal ::= TIMESTAMP NK_STRING */
{
PARSER_TRACE
;
yylhsminor
.
yy272
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
createValueNode
(
pCxt
,
TSDB_DATA_TYPE_TIMESTAMP
,
&
yymsp
[
0
].
minor
.
yy0
));
}
yymsp
[
-
1
].
minor
.
yy272
=
yylhsminor
.
yy272
;
break
;
case
64
:
/* literal ::= duration_literal */
case
74
:
/* expression ::= literal */
yytestcase
(
yyruleno
==
74
);
case
75
:
/* expression ::= column_reference */
yytestcase
(
yyruleno
==
75
);
case
78
:
/* expression ::= subquery */
yytestcase
(
yyruleno
==
78
);
case
110
:
/* boolean_value_expression ::= boolean_primary */
yytestcase
(
yyruleno
==
110
);
case
114
:
/* boolean_primary ::= predicate */
yytestcase
(
yyruleno
==
114
);
case
119
:
/* table_reference_list ::= table_reference */
yytestcase
(
yyruleno
==
119
);
case
121
:
/* table_reference ::= table_primary */
yytestcase
(
yyruleno
==
121
);
case
122
:
/* table_reference ::= joined_table */
yytestcase
(
yyruleno
==
122
);
case
126
:
/* table_primary ::= parenthesized_joined_table */
yytestcase
(
yyruleno
==
126
);
case
173
:
/* query_expression_body ::= query_primary */
yytestcase
(
yyruleno
==
173
);
case
175
:
/* query_primary ::= query_specification */
yytestcase
(
yyruleno
==
175
);
{
PARSER_TRACE
;
yylhsminor
.
yy272
=
yymsp
[
0
].
minor
.
yy272
;
}
yymsp
[
0
].
minor
.
yy272
=
yylhsminor
.
yy272
;
break
;
case
65
:
/* duration_literal ::= NK_VARIABLE */
{
PARSER_TRACE
;
yylhsminor
.
yy272
=
createRawExprNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
,
createDurationValueNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
));
}
yymsp
[
0
].
minor
.
yy272
=
yylhsminor
.
yy272
;
break
;
case
66
:
/* literal_list ::= literal */
case
87
:
/* expression_list ::= expression */
yytestcase
(
yyruleno
==
87
);
{
PARSER_TRACE
;
yylhsminor
.
yy64
=
createNodeList
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy272
));
}
yymsp
[
0
].
minor
.
yy64
=
yylhsminor
.
yy64
;
break
;
case
67
:
/* literal_list ::= literal_list NK_COMMA literal */
case
88
:
/* expression_list ::= expression_list NK_COMMA expression */
yytestcase
(
yyruleno
==
88
);
{
PARSER_TRACE
;
yylhsminor
.
yy64
=
addNodeToList
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy64
,
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy272
));
}
yymsp
[
-
2
].
minor
.
yy64
=
yylhsminor
.
yy64
;
break
;
case
68
:
/* db_name ::= NK_ID */
case
69
:
/* table_name ::= NK_ID */
yytestcase
(
yyruleno
==
69
);
case
70
:
/* column_name ::= NK_ID */
yytestcase
(
yyruleno
==
70
);
case
71
:
/* function_name ::= NK_ID */
yytestcase
(
yyruleno
==
71
);
case
72
:
/* table_alias ::= NK_ID */
yytestcase
(
yyruleno
==
72
);
case
73
:
/* column_alias ::= NK_ID */
yytestcase
(
yyruleno
==
73
);
{
PARSER_TRACE
;
yylhsminor
.
yy209
=
yymsp
[
0
].
minor
.
yy0
;
}
yymsp
[
0
].
minor
.
yy209
=
yylhsminor
.
yy209
;
break
;
case
76
:
/* expression ::= function_name NK_LP expression_list NK_RP */
{
PARSER_TRACE
;
yylhsminor
.
yy272
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
3
].
minor
.
yy209
,
&
yymsp
[
0
].
minor
.
yy0
,
createFunctionNode
(
pCxt
,
&
yymsp
[
-
3
].
minor
.
yy209
,
yymsp
[
-
1
].
minor
.
yy64
));
}
yymsp
[
-
3
].
minor
.
yy272
=
yylhsminor
.
yy272
;
break
;
case
77
:
/* expression ::= function_name NK_LP NK_STAR NK_RP */
{
PARSER_TRACE
;
yylhsminor
.
yy272
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
3
].
minor
.
yy209
,
&
yymsp
[
0
].
minor
.
yy0
,
createFunctionNode
(
pCxt
,
&
yymsp
[
-
3
].
minor
.
yy209
,
createNodeList
(
pCxt
,
createColumnNode
(
pCxt
,
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
))));
}
yymsp
[
-
3
].
minor
.
yy272
=
yylhsminor
.
yy272
;
break
;
case
79
:
/* expression ::= NK_LP expression NK_RP */
case
115
:
/* boolean_primary ::= NK_LP boolean_value_expression NK_RP */
yytestcase
(
yyruleno
==
115
);
{
PARSER_TRACE
;
yylhsminor
.
yy272
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
1
].
minor
.
yy272
));
}
yymsp
[
-
2
].
minor
.
yy272
=
yylhsminor
.
yy272
;
break
;
case
80
:
/* expression ::= NK_PLUS expression */
{
PARSER_TRACE
;
SToken
t
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
1
72
);
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
t
,
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
));
SToken
t
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
2
72
);
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
t
,
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
));
}
yymsp
[
-
1
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
yymsp
[
-
1
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
8
0
:
/* expression ::= NK_MINUS expression */
case
8
1
:
/* expression ::= NK_MINUS expression */
{
PARSER_TRACE
;
SToken
t
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
1
72
);
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
t
,
createOperatorNode
(
pCxt
,
OP_TYPE_SUB
,
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
),
NULL
));
SToken
t
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
2
72
);
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
t
,
createOperatorNode
(
pCxt
,
OP_TYPE_SUB
,
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
),
NULL
));
}
yymsp
[
-
1
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
yymsp
[
-
1
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
8
1
:
/* expression ::= expression NK_PLUS expression */
case
8
2
:
/* expression ::= expression NK_PLUS expression */
{
PARSER_TRACE
;
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
1
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
1
72
);
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createOperatorNode
(
pCxt
,
OP_TYPE_ADD
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy172
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
)));
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
2
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
2
72
);
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createOperatorNode
(
pCxt
,
OP_TYPE_ADD
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy272
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
)));
}
yymsp
[
-
2
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
yymsp
[
-
2
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
8
2
:
/* expression ::= expression NK_MINUS expression */
case
8
3
:
/* expression ::= expression NK_MINUS expression */
{
PARSER_TRACE
;
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
1
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
1
72
);
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createOperatorNode
(
pCxt
,
OP_TYPE_SUB
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy172
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
)));
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
2
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
2
72
);
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createOperatorNode
(
pCxt
,
OP_TYPE_SUB
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy272
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
)));
}
yymsp
[
-
2
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
yymsp
[
-
2
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
8
3
:
/* expression ::= expression NK_STAR expression */
case
8
4
:
/* expression ::= expression NK_STAR expression */
{
PARSER_TRACE
;
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
1
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
1
72
);
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createOperatorNode
(
pCxt
,
OP_TYPE_MULTI
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy172
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
)));
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
2
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
2
72
);
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createOperatorNode
(
pCxt
,
OP_TYPE_MULTI
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy272
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
)));
}
yymsp
[
-
2
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
yymsp
[
-
2
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
8
4
:
/* expression ::= expression NK_SLASH expression */
case
8
5
:
/* expression ::= expression NK_SLASH expression */
{
PARSER_TRACE
;
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
1
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
1
72
);
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createOperatorNode
(
pCxt
,
OP_TYPE_DIV
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy172
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
)));
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
2
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
2
72
);
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createOperatorNode
(
pCxt
,
OP_TYPE_DIV
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy272
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
)));
}
yymsp
[
-
2
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
yymsp
[
-
2
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
8
5
:
/* expression ::= expression NK_REM expression */
case
8
6
:
/* expression ::= expression NK_REM expression */
{
PARSER_TRACE
;
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
1
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
1
72
);
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createOperatorNode
(
pCxt
,
OP_TYPE_MOD
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy172
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
)));
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
2
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
2
72
);
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createOperatorNode
(
pCxt
,
OP_TYPE_MOD
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy272
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
)));
}
yymsp
[
-
2
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
yymsp
[
-
2
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
8
8
:
/* column_reference ::= column_name */
{
PARSER_TRACE
;
yylhsminor
.
yy
172
=
createRawExprNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy105
,
createColumnNode
(
pCxt
,
NULL
,
&
yymsp
[
0
].
minor
.
yy105
));
}
yymsp
[
0
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
case
8
9
:
/* column_reference ::= column_name */
{
PARSER_TRACE
;
yylhsminor
.
yy
272
=
createRawExprNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy209
,
createColumnNode
(
pCxt
,
NULL
,
&
yymsp
[
0
].
minor
.
yy209
));
}
yymsp
[
0
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
89
:
/* column_reference ::= table_name NK_DOT column_name */
{
PARSER_TRACE
;
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
2
].
minor
.
yy105
,
&
yymsp
[
0
].
minor
.
yy105
,
createColumnNode
(
pCxt
,
&
yymsp
[
-
2
].
minor
.
yy105
,
&
yymsp
[
0
].
minor
.
yy105
));
}
yymsp
[
-
2
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
case
90
:
/* column_reference ::= table_name NK_DOT column_name */
{
PARSER_TRACE
;
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
2
].
minor
.
yy209
,
&
yymsp
[
0
].
minor
.
yy209
,
createColumnNode
(
pCxt
,
&
yymsp
[
-
2
].
minor
.
yy209
,
&
yymsp
[
0
].
minor
.
yy209
));
}
yymsp
[
-
2
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
9
0
:
/* predicate ::= expression compare_op expression */
case
9
5
:
/* predicate ::= expression in_op in_predicate_value */
yytestcase
(
yyruleno
==
95
);
case
9
1
:
/* predicate ::= expression compare_op expression */
case
9
6
:
/* predicate ::= expression in_op in_predicate_value */
yytestcase
(
yyruleno
==
96
);
{
PARSER_TRACE
;
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
1
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
1
72
);
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createOperatorNode
(
pCxt
,
yymsp
[
-
1
].
minor
.
yy214
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy172
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
)));
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
2
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
2
72
);
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createOperatorNode
(
pCxt
,
yymsp
[
-
1
].
minor
.
yy20
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy272
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
)));
}
yymsp
[
-
2
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
yymsp
[
-
2
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
9
1
:
/* predicate ::= expression BETWEEN expression AND expression */
case
9
2
:
/* predicate ::= expression BETWEEN expression AND expression */
{
PARSER_TRACE
;
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
4
].
minor
.
yy
1
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
1
72
);
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createBetweenAnd
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
4
].
minor
.
yy172
),
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy172
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
)));
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
4
].
minor
.
yy
2
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
2
72
);
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createBetweenAnd
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
4
].
minor
.
yy272
),
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy272
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
)));
}
yymsp
[
-
4
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
yymsp
[
-
4
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
9
2
:
/* predicate ::= expression NOT BETWEEN expression AND expression */
case
9
3
:
/* predicate ::= expression NOT BETWEEN expression AND expression */
{
PARSER_TRACE
;
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
5
].
minor
.
yy
1
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
1
72
);
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createNotBetweenAnd
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy172
),
releaseRawExprNode
(
pCxt
,
yymsp
[
-
5
].
minor
.
yy172
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
)));
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
5
].
minor
.
yy
2
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
2
72
);
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createNotBetweenAnd
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy272
),
releaseRawExprNode
(
pCxt
,
yymsp
[
-
5
].
minor
.
yy272
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
)));
}
yymsp
[
-
5
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
yymsp
[
-
5
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
9
3
:
/* predicate ::= expression IS NULL */
case
9
4
:
/* predicate ::= expression IS NULL */
{
PARSER_TRACE
;
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
1
72
);
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
yymsp
[
0
].
minor
.
yy0
,
createOperatorNode
(
pCxt
,
OP_TYPE_IS_NULL
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy1
72
),
NULL
));
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
2
72
);
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
yymsp
[
0
].
minor
.
yy0
,
createOperatorNode
(
pCxt
,
OP_TYPE_IS_NULL
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy2
72
),
NULL
));
}
yymsp
[
-
2
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
yymsp
[
-
2
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
9
4
:
/* predicate ::= expression IS NOT NULL */
case
9
5
:
/* predicate ::= expression IS NOT NULL */
{
PARSER_TRACE
;
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
3
].
minor
.
yy
1
72
);
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
yymsp
[
0
].
minor
.
yy0
,
createOperatorNode
(
pCxt
,
OP_TYPE_IS_NOT_NULL
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
3
].
minor
.
yy1
72
),
NULL
));
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
3
].
minor
.
yy
2
72
);
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
yymsp
[
0
].
minor
.
yy0
,
createOperatorNode
(
pCxt
,
OP_TYPE_IS_NOT_NULL
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
3
].
minor
.
yy2
72
),
NULL
));
}
yymsp
[
-
3
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
yymsp
[
-
3
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
9
6
:
/* compare_op ::= NK_LT */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
14
=
OP_TYPE_LOWER_THAN
;
}
case
9
7
:
/* compare_op ::= NK_LT */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
0
=
OP_TYPE_LOWER_THAN
;
}
break
;
case
9
7
:
/* compare_op ::= NK_GT */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
14
=
OP_TYPE_GREATER_THAN
;
}
case
9
8
:
/* compare_op ::= NK_GT */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
0
=
OP_TYPE_GREATER_THAN
;
}
break
;
case
9
8
:
/* compare_op ::= NK_LE */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
14
=
OP_TYPE_LOWER_EQUAL
;
}
case
9
9
:
/* compare_op ::= NK_LE */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
0
=
OP_TYPE_LOWER_EQUAL
;
}
break
;
case
99
:
/* compare_op ::= NK_GE */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
14
=
OP_TYPE_GREATER_EQUAL
;
}
case
100
:
/* compare_op ::= NK_GE */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
0
=
OP_TYPE_GREATER_EQUAL
;
}
break
;
case
10
0
:
/* compare_op ::= NK_NE */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
14
=
OP_TYPE_NOT_EQUAL
;
}
case
10
1
:
/* compare_op ::= NK_NE */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
0
=
OP_TYPE_NOT_EQUAL
;
}
break
;
case
10
1
:
/* compare_op ::= NK_EQ */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
14
=
OP_TYPE_EQUAL
;
}
case
10
2
:
/* compare_op ::= NK_EQ */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
0
=
OP_TYPE_EQUAL
;
}
break
;
case
10
2
:
/* compare_op ::= LIKE */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
14
=
OP_TYPE_LIKE
;
}
case
10
3
:
/* compare_op ::= LIKE */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
0
=
OP_TYPE_LIKE
;
}
break
;
case
10
3
:
/* compare_op ::= NOT LIKE */
{
PARSER_TRACE
;
yymsp
[
-
1
].
minor
.
yy2
14
=
OP_TYPE_NOT_LIKE
;
}
case
10
4
:
/* compare_op ::= NOT LIKE */
{
PARSER_TRACE
;
yymsp
[
-
1
].
minor
.
yy2
0
=
OP_TYPE_NOT_LIKE
;
}
break
;
case
10
4
:
/* compare_op ::= MATCH */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
14
=
OP_TYPE_MATCH
;
}
case
10
5
:
/* compare_op ::= MATCH */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
0
=
OP_TYPE_MATCH
;
}
break
;
case
10
5
:
/* compare_op ::= NMATCH */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
14
=
OP_TYPE_NMATCH
;
}
case
10
6
:
/* compare_op ::= NMATCH */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
0
=
OP_TYPE_NMATCH
;
}
break
;
case
10
6
:
/* in_op ::= IN */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
14
=
OP_TYPE_IN
;
}
case
10
7
:
/* in_op ::= IN */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
0
=
OP_TYPE_IN
;
}
break
;
case
10
7
:
/* in_op ::= NOT IN */
{
PARSER_TRACE
;
yymsp
[
-
1
].
minor
.
yy2
14
=
OP_TYPE_NOT_IN
;
}
case
10
8
:
/* in_op ::= NOT IN */
{
PARSER_TRACE
;
yymsp
[
-
1
].
minor
.
yy2
0
=
OP_TYPE_NOT_IN
;
}
break
;
case
10
8
:
/* in_predicate_value ::= NK_LP expression_list NK_RP */
{
PARSER_TRACE
;
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
createNodeListNode
(
pCxt
,
yymsp
[
-
1
].
minor
.
yy60
));
}
yymsp
[
-
2
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
case
10
9
:
/* in_predicate_value ::= NK_LP expression_list NK_RP */
{
PARSER_TRACE
;
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
createNodeListNode
(
pCxt
,
yymsp
[
-
1
].
minor
.
yy64
));
}
yymsp
[
-
2
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
11
0
:
/* boolean_value_expression ::= NOT boolean_primary */
case
11
1
:
/* boolean_value_expression ::= NOT boolean_primary */
{
PARSER_TRACE
;
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
1
72
);
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
e
,
createLogicConditionNode
(
pCxt
,
LOGIC_COND_TYPE_NOT
,
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
),
NULL
));
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
2
72
);
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
e
,
createLogicConditionNode
(
pCxt
,
LOGIC_COND_TYPE_NOT
,
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
),
NULL
));
}
yymsp
[
-
1
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
yymsp
[
-
1
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
11
1
:
/* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */
case
11
2
:
/* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */
{
PARSER_TRACE
;
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
1
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
1
72
);
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createLogicConditionNode
(
pCxt
,
LOGIC_COND_TYPE_OR
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy172
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
)));
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
2
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
2
72
);
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createLogicConditionNode
(
pCxt
,
LOGIC_COND_TYPE_OR
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy272
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
)));
}
yymsp
[
-
2
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
yymsp
[
-
2
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
11
2
:
/* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */
case
11
3
:
/* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */
{
PARSER_TRACE
;
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
1
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
1
72
);
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createLogicConditionNode
(
pCxt
,
LOGIC_COND_TYPE_AND
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy172
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
)));
SToken
s
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy
2
72
);
SToken
e
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
2
72
);
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
s
,
&
e
,
createLogicConditionNode
(
pCxt
,
LOGIC_COND_TYPE_AND
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy272
),
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
)));
}
yymsp
[
-
2
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
yymsp
[
-
2
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
11
5
:
/* common_expression ::= expression */
case
11
6
:
/* common_expression ::= boolean_value_expression */
yytestcase
(
yyruleno
==
116
);
{
yylhsminor
.
yy
172
=
yymsp
[
0
].
minor
.
yy1
72
;
}
yymsp
[
0
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
case
11
6
:
/* common_expression ::= expression */
case
11
7
:
/* common_expression ::= boolean_value_expression */
yytestcase
(
yyruleno
==
117
);
{
yylhsminor
.
yy
272
=
yymsp
[
0
].
minor
.
yy2
72
;
}
yymsp
[
0
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
11
7
:
/* from_clause ::= FROM table_reference_list */
case
14
7
:
/* where_clause_opt ::= WHERE search_condition */
yytestcase
(
yyruleno
==
147
);
case
17
0
:
/* having_clause_opt ::= HAVING search_condition */
yytestcase
(
yyruleno
==
170
);
{
PARSER_TRACE
;
yymsp
[
-
1
].
minor
.
yy
172
=
yymsp
[
0
].
minor
.
yy1
72
;
}
case
11
8
:
/* from_clause ::= FROM table_reference_list */
case
14
8
:
/* where_clause_opt ::= WHERE search_condition */
yytestcase
(
yyruleno
==
148
);
case
17
1
:
/* having_clause_opt ::= HAVING search_condition */
yytestcase
(
yyruleno
==
171
);
{
PARSER_TRACE
;
yymsp
[
-
1
].
minor
.
yy
272
=
yymsp
[
0
].
minor
.
yy2
72
;
}
break
;
case
1
19
:
/* table_reference_list ::= table_reference_list NK_COMMA table_reference */
{
PARSER_TRACE
;
yylhsminor
.
yy
172
=
createJoinTableNode
(
pCxt
,
JOIN_TYPE_INNER
,
yymsp
[
-
2
].
minor
.
yy172
,
yymsp
[
0
].
minor
.
yy1
72
,
NULL
);
}
yymsp
[
-
2
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
case
1
20
:
/* table_reference_list ::= table_reference_list NK_COMMA table_reference */
{
PARSER_TRACE
;
yylhsminor
.
yy
272
=
createJoinTableNode
(
pCxt
,
JOIN_TYPE_INNER
,
yymsp
[
-
2
].
minor
.
yy272
,
yymsp
[
0
].
minor
.
yy2
72
,
NULL
);
}
yymsp
[
-
2
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
12
2
:
/* table_primary ::= table_name alias_opt */
{
PARSER_TRACE
;
yylhsminor
.
yy
172
=
createRealTableNode
(
pCxt
,
NULL
,
&
yymsp
[
-
1
].
minor
.
yy105
,
&
yymsp
[
0
].
minor
.
yy105
);
}
yymsp
[
-
1
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
case
12
3
:
/* table_primary ::= table_name alias_opt */
{
PARSER_TRACE
;
yylhsminor
.
yy
272
=
createRealTableNode
(
pCxt
,
NULL
,
&
yymsp
[
-
1
].
minor
.
yy209
,
&
yymsp
[
0
].
minor
.
yy209
);
}
yymsp
[
-
1
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
12
3
:
/* table_primary ::= db_name NK_DOT table_name alias_opt */
{
PARSER_TRACE
;
yylhsminor
.
yy
172
=
createRealTableNode
(
pCxt
,
&
yymsp
[
-
3
].
minor
.
yy105
,
&
yymsp
[
-
1
].
minor
.
yy105
,
&
yymsp
[
0
].
minor
.
yy105
);
}
yymsp
[
-
3
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
case
12
4
:
/* table_primary ::= db_name NK_DOT table_name alias_opt */
{
PARSER_TRACE
;
yylhsminor
.
yy
272
=
createRealTableNode
(
pCxt
,
&
yymsp
[
-
3
].
minor
.
yy209
,
&
yymsp
[
-
1
].
minor
.
yy209
,
&
yymsp
[
0
].
minor
.
yy209
);
}
yymsp
[
-
3
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
12
4
:
/* table_primary ::= subquery alias_opt */
{
PARSER_TRACE
;
yylhsminor
.
yy
172
=
createTempTableNode
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
1
].
minor
.
yy172
),
&
yymsp
[
0
].
minor
.
yy105
);
}
yymsp
[
-
1
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
case
12
5
:
/* table_primary ::= subquery alias_opt */
{
PARSER_TRACE
;
yylhsminor
.
yy
272
=
createTempTableNode
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
1
].
minor
.
yy272
),
&
yymsp
[
0
].
minor
.
yy209
);
}
yymsp
[
-
1
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
12
6
:
/* alias_opt ::= */
{
PARSER_TRACE
;
yymsp
[
1
].
minor
.
yy
105
=
nil_token
;
}
case
12
7
:
/* alias_opt ::= */
{
PARSER_TRACE
;
yymsp
[
1
].
minor
.
yy
209
=
nil_token
;
}
break
;
case
12
7
:
/* alias_opt ::= table_alias */
{
PARSER_TRACE
;
yylhsminor
.
yy
105
=
yymsp
[
0
].
minor
.
yy105
;
}
yymsp
[
0
].
minor
.
yy
105
=
yylhsminor
.
yy105
;
case
12
8
:
/* alias_opt ::= table_alias */
{
PARSER_TRACE
;
yylhsminor
.
yy
209
=
yymsp
[
0
].
minor
.
yy209
;
}
yymsp
[
0
].
minor
.
yy
209
=
yylhsminor
.
yy209
;
break
;
case
12
8
:
/* alias_opt ::= AS table_alias */
{
PARSER_TRACE
;
yymsp
[
-
1
].
minor
.
yy
105
=
yymsp
[
0
].
minor
.
yy105
;
}
case
12
9
:
/* alias_opt ::= AS table_alias */
{
PARSER_TRACE
;
yymsp
[
-
1
].
minor
.
yy
209
=
yymsp
[
0
].
minor
.
yy209
;
}
break
;
case
1
29
:
/* parenthesized_joined_table ::= NK_LP joined_table NK_RP */
case
13
0
:
/* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */
yytestcase
(
yyruleno
==
130
);
{
PARSER_TRACE
;
yymsp
[
-
2
].
minor
.
yy
172
=
yymsp
[
-
1
].
minor
.
yy1
72
;
}
case
1
30
:
/* parenthesized_joined_table ::= NK_LP joined_table NK_RP */
case
13
1
:
/* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */
yytestcase
(
yyruleno
==
131
);
{
PARSER_TRACE
;
yymsp
[
-
2
].
minor
.
yy
272
=
yymsp
[
-
1
].
minor
.
yy2
72
;
}
break
;
case
13
1
:
/* joined_table ::= table_reference join_type JOIN table_reference ON search_condition */
{
PARSER_TRACE
;
yylhsminor
.
yy
172
=
createJoinTableNode
(
pCxt
,
yymsp
[
-
4
].
minor
.
yy278
,
yymsp
[
-
5
].
minor
.
yy172
,
yymsp
[
-
2
].
minor
.
yy172
,
yymsp
[
0
].
minor
.
yy1
72
);
}
yymsp
[
-
5
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
case
13
2
:
/* joined_table ::= table_reference join_type JOIN table_reference ON search_condition */
{
PARSER_TRACE
;
yylhsminor
.
yy
272
=
createJoinTableNode
(
pCxt
,
yymsp
[
-
4
].
minor
.
yy252
,
yymsp
[
-
5
].
minor
.
yy272
,
yymsp
[
-
2
].
minor
.
yy272
,
yymsp
[
0
].
minor
.
yy2
72
);
}
yymsp
[
-
5
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
13
2
:
/* join_type ::= */
{
PARSER_TRACE
;
yymsp
[
1
].
minor
.
yy2
78
=
JOIN_TYPE_INNER
;
}
case
13
3
:
/* join_type ::= */
{
PARSER_TRACE
;
yymsp
[
1
].
minor
.
yy2
52
=
JOIN_TYPE_INNER
;
}
break
;
case
13
3
:
/* join_type ::= INNER */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
78
=
JOIN_TYPE_INNER
;
}
case
13
4
:
/* join_type ::= INNER */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy2
52
=
JOIN_TYPE_INNER
;
}
break
;
case
13
4
:
/* query_specification ::= SELECT set_quantifier_opt select_list from_clause where_clause_opt partition_by_clause_opt twindow_clause_opt group_by_clause_opt having_clause_opt */
case
13
5
:
/* query_specification ::= SELECT set_quantifier_opt select_list from_clause where_clause_opt partition_by_clause_opt twindow_clause_opt group_by_clause_opt having_clause_opt */
{
PARSER_TRACE
;
yymsp
[
-
8
].
minor
.
yy
172
=
createSelectStmt
(
pCxt
,
yymsp
[
-
7
].
minor
.
yy259
,
yymsp
[
-
6
].
minor
.
yy60
,
yymsp
[
-
5
].
minor
.
yy1
72
);
yymsp
[
-
8
].
minor
.
yy
172
=
addWhereClause
(
pCxt
,
yymsp
[
-
8
].
minor
.
yy172
,
yymsp
[
-
4
].
minor
.
yy1
72
);
yymsp
[
-
8
].
minor
.
yy
172
=
addPartitionByClause
(
pCxt
,
yymsp
[
-
8
].
minor
.
yy172
,
yymsp
[
-
3
].
minor
.
yy60
);
yymsp
[
-
8
].
minor
.
yy
172
=
addWindowClauseClause
(
pCxt
,
yymsp
[
-
8
].
minor
.
yy172
,
yymsp
[
-
2
].
minor
.
yy1
72
);
yymsp
[
-
8
].
minor
.
yy
172
=
addGroupByClause
(
pCxt
,
yymsp
[
-
8
].
minor
.
yy172
,
yymsp
[
-
1
].
minor
.
yy60
);
yymsp
[
-
8
].
minor
.
yy
172
=
addHavingClause
(
pCxt
,
yymsp
[
-
8
].
minor
.
yy172
,
yymsp
[
0
].
minor
.
yy1
72
);
yymsp
[
-
8
].
minor
.
yy
272
=
createSelectStmt
(
pCxt
,
yymsp
[
-
7
].
minor
.
yy137
,
yymsp
[
-
6
].
minor
.
yy64
,
yymsp
[
-
5
].
minor
.
yy2
72
);
yymsp
[
-
8
].
minor
.
yy
272
=
addWhereClause
(
pCxt
,
yymsp
[
-
8
].
minor
.
yy272
,
yymsp
[
-
4
].
minor
.
yy2
72
);
yymsp
[
-
8
].
minor
.
yy
272
=
addPartitionByClause
(
pCxt
,
yymsp
[
-
8
].
minor
.
yy272
,
yymsp
[
-
3
].
minor
.
yy64
);
yymsp
[
-
8
].
minor
.
yy
272
=
addWindowClauseClause
(
pCxt
,
yymsp
[
-
8
].
minor
.
yy272
,
yymsp
[
-
2
].
minor
.
yy2
72
);
yymsp
[
-
8
].
minor
.
yy
272
=
addGroupByClause
(
pCxt
,
yymsp
[
-
8
].
minor
.
yy272
,
yymsp
[
-
1
].
minor
.
yy64
);
yymsp
[
-
8
].
minor
.
yy
272
=
addHavingClause
(
pCxt
,
yymsp
[
-
8
].
minor
.
yy272
,
yymsp
[
0
].
minor
.
yy2
72
);
}
break
;
case
13
5
:
/* set_quantifier_opt ::= */
{
PARSER_TRACE
;
yymsp
[
1
].
minor
.
yy
259
=
false
;
}
case
13
6
:
/* set_quantifier_opt ::= */
{
PARSER_TRACE
;
yymsp
[
1
].
minor
.
yy
137
=
false
;
}
break
;
case
13
6
:
/* set_quantifier_opt ::= DISTINCT */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
259
=
true
;
}
case
13
7
:
/* set_quantifier_opt ::= DISTINCT */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
137
=
true
;
}
break
;
case
13
7
:
/* set_quantifier_opt ::= ALL */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
259
=
false
;
}
case
13
8
:
/* set_quantifier_opt ::= ALL */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
137
=
false
;
}
break
;
case
13
8
:
/* select_list ::= NK_STAR */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy6
0
=
NULL
;
}
case
13
9
:
/* select_list ::= NK_STAR */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy6
4
=
NULL
;
}
break
;
case
1
39
:
/* select_list ::= select_sublist */
{
PARSER_TRACE
;
yylhsminor
.
yy6
0
=
yymsp
[
0
].
minor
.
yy60
;
}
yymsp
[
0
].
minor
.
yy6
0
=
yylhsminor
.
yy60
;
case
1
40
:
/* select_list ::= select_sublist */
{
PARSER_TRACE
;
yylhsminor
.
yy6
4
=
yymsp
[
0
].
minor
.
yy64
;
}
yymsp
[
0
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
break
;
case
14
0
:
/* select_sublist ::= select_item */
case
18
7
:
/* sort_specification_list ::= sort_specification */
yytestcase
(
yyruleno
==
187
);
{
PARSER_TRACE
;
yylhsminor
.
yy6
0
=
createNodeList
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
);
}
yymsp
[
0
].
minor
.
yy6
0
=
yylhsminor
.
yy60
;
case
14
1
:
/* select_sublist ::= select_item */
case
18
8
:
/* sort_specification_list ::= sort_specification */
yytestcase
(
yyruleno
==
188
);
{
PARSER_TRACE
;
yylhsminor
.
yy6
4
=
createNodeList
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
);
}
yymsp
[
0
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
break
;
case
14
1
:
/* select_sublist ::= select_sublist NK_COMMA select_item */
case
18
8
:
/* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */
yytestcase
(
yyruleno
==
188
);
{
PARSER_TRACE
;
yylhsminor
.
yy6
0
=
addNodeToList
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy60
,
yymsp
[
0
].
minor
.
yy1
72
);
}
yymsp
[
-
2
].
minor
.
yy6
0
=
yylhsminor
.
yy60
;
case
14
2
:
/* select_sublist ::= select_sublist NK_COMMA select_item */
case
18
9
:
/* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */
yytestcase
(
yyruleno
==
189
);
{
PARSER_TRACE
;
yylhsminor
.
yy6
4
=
addNodeToList
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy64
,
yymsp
[
0
].
minor
.
yy2
72
);
}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
break
;
case
14
2
:
/* select_item ::= common_expression */
case
14
3
:
/* select_item ::= common_expression */
{
PARSER_TRACE
;
SToken
t
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
1
72
);
yylhsminor
.
yy
172
=
setProjectionAlias
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
),
&
t
);
SToken
t
=
getTokenFromRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy
2
72
);
yylhsminor
.
yy
272
=
setProjectionAlias
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
),
&
t
);
}
yymsp
[
0
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
yymsp
[
0
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
14
3
:
/* select_item ::= common_expression column_alias */
{
PARSER_TRACE
;
yylhsminor
.
yy
172
=
setProjectionAlias
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
1
].
minor
.
yy172
),
&
yymsp
[
0
].
minor
.
yy105
);
}
yymsp
[
-
1
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
case
14
4
:
/* select_item ::= common_expression column_alias */
{
PARSER_TRACE
;
yylhsminor
.
yy
272
=
setProjectionAlias
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
1
].
minor
.
yy272
),
&
yymsp
[
0
].
minor
.
yy209
);
}
yymsp
[
-
1
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
14
4
:
/* select_item ::= common_expression AS column_alias */
{
PARSER_TRACE
;
yylhsminor
.
yy
172
=
setProjectionAlias
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy172
),
&
yymsp
[
0
].
minor
.
yy105
);
}
yymsp
[
-
2
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
case
14
5
:
/* select_item ::= common_expression AS column_alias */
{
PARSER_TRACE
;
yylhsminor
.
yy
272
=
setProjectionAlias
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy272
),
&
yymsp
[
0
].
minor
.
yy209
);
}
yymsp
[
-
2
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
14
5
:
/* select_item ::= table_name NK_DOT NK_STAR */
{
PARSER_TRACE
;
yylhsminor
.
yy
172
=
createColumnNode
(
pCxt
,
&
yymsp
[
-
2
].
minor
.
yy105
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
case
14
6
:
/* select_item ::= table_name NK_DOT NK_STAR */
{
PARSER_TRACE
;
yylhsminor
.
yy
272
=
createColumnNode
(
pCxt
,
&
yymsp
[
-
2
].
minor
.
yy209
,
&
yymsp
[
0
].
minor
.
yy0
);
}
yymsp
[
-
2
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
14
6
:
/* where_clause_opt ::= */
case
15
0
:
/* twindow_clause_opt ::= */
yytestcase
(
yyruleno
==
150
);
case
15
5
:
/* sliding_opt ::= */
yytestcase
(
yyruleno
==
155
);
case
15
7
:
/* fill_opt ::= */
yytestcase
(
yyruleno
==
157
);
case
1
69
:
/* having_clause_opt ::= */
yytestcase
(
yyruleno
==
169
);
case
17
7
:
/* slimit_clause_opt ::= */
yytestcase
(
yyruleno
==
177
);
case
18
1
:
/* limit_clause_opt ::= */
yytestcase
(
yyruleno
==
181
);
{
PARSER_TRACE
;
yymsp
[
1
].
minor
.
yy
1
72
=
NULL
;
}
case
14
7
:
/* where_clause_opt ::= */
case
15
1
:
/* twindow_clause_opt ::= */
yytestcase
(
yyruleno
==
151
);
case
15
6
:
/* sliding_opt ::= */
yytestcase
(
yyruleno
==
156
);
case
15
8
:
/* fill_opt ::= */
yytestcase
(
yyruleno
==
158
);
case
1
70
:
/* having_clause_opt ::= */
yytestcase
(
yyruleno
==
170
);
case
17
8
:
/* slimit_clause_opt ::= */
yytestcase
(
yyruleno
==
178
);
case
18
2
:
/* limit_clause_opt ::= */
yytestcase
(
yyruleno
==
182
);
{
PARSER_TRACE
;
yymsp
[
1
].
minor
.
yy
2
72
=
NULL
;
}
break
;
case
14
8
:
/* partition_by_clause_opt ::= */
case
16
5
:
/* group_by_clause_opt ::= */
yytestcase
(
yyruleno
==
165
);
case
17
5
:
/* order_by_clause_opt ::= */
yytestcase
(
yyruleno
==
175
);
{
PARSER_TRACE
;
yymsp
[
1
].
minor
.
yy6
0
=
NULL
;
}
case
14
9
:
/* partition_by_clause_opt ::= */
case
16
6
:
/* group_by_clause_opt ::= */
yytestcase
(
yyruleno
==
166
);
case
17
6
:
/* order_by_clause_opt ::= */
yytestcase
(
yyruleno
==
176
);
{
PARSER_TRACE
;
yymsp
[
1
].
minor
.
yy6
4
=
NULL
;
}
break
;
case
1
49
:
/* partition_by_clause_opt ::= PARTITION BY expression_list */
case
16
6
:
/* group_by_clause_opt ::= GROUP BY group_by_list */
yytestcase
(
yyruleno
==
166
);
case
17
6
:
/* order_by_clause_opt ::= ORDER BY sort_specification_list */
yytestcase
(
yyruleno
==
176
);
{
PARSER_TRACE
;
yymsp
[
-
2
].
minor
.
yy6
0
=
yymsp
[
0
].
minor
.
yy60
;
}
case
1
50
:
/* partition_by_clause_opt ::= PARTITION BY expression_list */
case
16
7
:
/* group_by_clause_opt ::= GROUP BY group_by_list */
yytestcase
(
yyruleno
==
167
);
case
17
7
:
/* order_by_clause_opt ::= ORDER BY sort_specification_list */
yytestcase
(
yyruleno
==
177
);
{
PARSER_TRACE
;
yymsp
[
-
2
].
minor
.
yy6
4
=
yymsp
[
0
].
minor
.
yy64
;
}
break
;
case
15
1
:
/* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA NK_INTEGER NK_RP */
{
PARSER_TRACE
;
yymsp
[
-
5
].
minor
.
yy
172
=
createSessionWindowNode
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
3
].
minor
.
yy1
72
),
&
yymsp
[
-
1
].
minor
.
yy0
);
}
case
15
2
:
/* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA NK_INTEGER NK_RP */
{
PARSER_TRACE
;
yymsp
[
-
5
].
minor
.
yy
272
=
createSessionWindowNode
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
3
].
minor
.
yy2
72
),
&
yymsp
[
-
1
].
minor
.
yy0
);
}
break
;
case
15
2
:
/* twindow_clause_opt ::= STATE_WINDOW NK_LP column_reference NK_RP */
{
PARSER_TRACE
;
yymsp
[
-
3
].
minor
.
yy
172
=
createStateWindowNode
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
1
].
minor
.
yy1
72
));
}
case
15
3
:
/* twindow_clause_opt ::= STATE_WINDOW NK_LP column_reference NK_RP */
{
PARSER_TRACE
;
yymsp
[
-
3
].
minor
.
yy
272
=
createStateWindowNode
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
1
].
minor
.
yy2
72
));
}
break
;
case
15
3
:
/* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */
{
PARSER_TRACE
;
yymsp
[
-
5
].
minor
.
yy
172
=
createIntervalWindowNode
(
pCxt
,
yymsp
[
-
3
].
minor
.
yy172
,
NULL
,
yymsp
[
-
1
].
minor
.
yy172
,
yymsp
[
0
].
minor
.
yy1
72
);
}
case
15
4
:
/* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */
{
PARSER_TRACE
;
yymsp
[
-
5
].
minor
.
yy
272
=
createIntervalWindowNode
(
pCxt
,
yymsp
[
-
3
].
minor
.
yy272
,
NULL
,
yymsp
[
-
1
].
minor
.
yy272
,
yymsp
[
0
].
minor
.
yy2
72
);
}
break
;
case
15
4
:
/* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */
{
PARSER_TRACE
;
yymsp
[
-
7
].
minor
.
yy
172
=
createIntervalWindowNode
(
pCxt
,
yymsp
[
-
5
].
minor
.
yy172
,
yymsp
[
-
3
].
minor
.
yy172
,
yymsp
[
-
1
].
minor
.
yy172
,
yymsp
[
0
].
minor
.
yy1
72
);
}
case
15
5
:
/* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */
{
PARSER_TRACE
;
yymsp
[
-
7
].
minor
.
yy
272
=
createIntervalWindowNode
(
pCxt
,
yymsp
[
-
5
].
minor
.
yy272
,
yymsp
[
-
3
].
minor
.
yy272
,
yymsp
[
-
1
].
minor
.
yy272
,
yymsp
[
0
].
minor
.
yy2
72
);
}
break
;
case
15
6
:
/* sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */
{
PARSER_TRACE
;
yymsp
[
-
3
].
minor
.
yy
172
=
yymsp
[
-
1
].
minor
.
yy1
72
;
}
case
15
7
:
/* sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */
{
PARSER_TRACE
;
yymsp
[
-
3
].
minor
.
yy
272
=
yymsp
[
-
1
].
minor
.
yy2
72
;
}
break
;
case
15
8
:
/* fill_opt ::= FILL NK_LP fill_mode NK_RP */
{
PARSER_TRACE
;
yymsp
[
-
3
].
minor
.
yy
172
=
createFillNode
(
pCxt
,
yymsp
[
-
1
].
minor
.
yy202
,
NULL
);
}
case
15
9
:
/* fill_opt ::= FILL NK_LP fill_mode NK_RP */
{
PARSER_TRACE
;
yymsp
[
-
3
].
minor
.
yy
272
=
createFillNode
(
pCxt
,
yymsp
[
-
1
].
minor
.
yy54
,
NULL
);
}
break
;
case
1
59
:
/* fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */
{
PARSER_TRACE
;
yymsp
[
-
5
].
minor
.
yy
172
=
createFillNode
(
pCxt
,
FILL_MODE_VALUE
,
createNodeListNode
(
pCxt
,
yymsp
[
-
1
].
minor
.
yy60
));
}
case
1
60
:
/* fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */
{
PARSER_TRACE
;
yymsp
[
-
5
].
minor
.
yy
272
=
createFillNode
(
pCxt
,
FILL_MODE_VALUE
,
createNodeListNode
(
pCxt
,
yymsp
[
-
1
].
minor
.
yy64
));
}
break
;
case
16
0
:
/* fill_mode ::= NONE */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
202
=
FILL_MODE_NONE
;
}
case
16
1
:
/* fill_mode ::= NONE */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
54
=
FILL_MODE_NONE
;
}
break
;
case
16
1
:
/* fill_mode ::= PREV */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
202
=
FILL_MODE_PREV
;
}
case
16
2
:
/* fill_mode ::= PREV */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
54
=
FILL_MODE_PREV
;
}
break
;
case
16
2
:
/* fill_mode ::= NULL */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
202
=
FILL_MODE_NULL
;
}
case
16
3
:
/* fill_mode ::= NULL */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
54
=
FILL_MODE_NULL
;
}
break
;
case
16
3
:
/* fill_mode ::= LINEAR */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
202
=
FILL_MODE_LINEAR
;
}
case
16
4
:
/* fill_mode ::= LINEAR */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
54
=
FILL_MODE_LINEAR
;
}
break
;
case
16
4
:
/* fill_mode ::= NEXT */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
202
=
FILL_MODE_NEXT
;
}
case
16
5
:
/* fill_mode ::= NEXT */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
54
=
FILL_MODE_NEXT
;
}
break
;
case
16
7
:
/* group_by_list ::= expression */
{
PARSER_TRACE
;
yylhsminor
.
yy6
0
=
createNodeList
(
pCxt
,
createGroupingSetNode
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
)));
}
yymsp
[
0
].
minor
.
yy6
0
=
yylhsminor
.
yy60
;
case
16
8
:
/* group_by_list ::= expression */
{
PARSER_TRACE
;
yylhsminor
.
yy6
4
=
createNodeList
(
pCxt
,
createGroupingSetNode
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
)));
}
yymsp
[
0
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
break
;
case
16
8
:
/* group_by_list ::= group_by_list NK_COMMA expression */
{
PARSER_TRACE
;
yylhsminor
.
yy6
0
=
addNodeToList
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy60
,
createGroupingSetNode
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
)));
}
yymsp
[
-
2
].
minor
.
yy6
0
=
yylhsminor
.
yy60
;
case
16
9
:
/* group_by_list ::= group_by_list NK_COMMA expression */
{
PARSER_TRACE
;
yylhsminor
.
yy6
4
=
addNodeToList
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy64
,
createGroupingSetNode
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
)));
}
yymsp
[
-
2
].
minor
.
yy6
4
=
yylhsminor
.
yy64
;
break
;
case
17
1
:
/* query_expression ::= query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt */
case
17
2
:
/* query_expression ::= query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt */
{
PARSER_TRACE
;
yylhsminor
.
yy
172
=
addOrderByClause
(
pCxt
,
yymsp
[
-
3
].
minor
.
yy172
,
yymsp
[
-
2
].
minor
.
yy60
);
yylhsminor
.
yy
172
=
addSlimitClause
(
pCxt
,
yylhsminor
.
yy172
,
yymsp
[
-
1
].
minor
.
yy1
72
);
yylhsminor
.
yy
172
=
addLimitClause
(
pCxt
,
yylhsminor
.
yy172
,
yymsp
[
0
].
minor
.
yy1
72
);
yylhsminor
.
yy
272
=
addOrderByClause
(
pCxt
,
yymsp
[
-
3
].
minor
.
yy272
,
yymsp
[
-
2
].
minor
.
yy64
);
yylhsminor
.
yy
272
=
addSlimitClause
(
pCxt
,
yylhsminor
.
yy272
,
yymsp
[
-
1
].
minor
.
yy2
72
);
yylhsminor
.
yy
272
=
addLimitClause
(
pCxt
,
yylhsminor
.
yy272
,
yymsp
[
0
].
minor
.
yy2
72
);
}
yymsp
[
-
3
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
yymsp
[
-
3
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
17
3
:
/* query_expression_body ::= query_expression_body UNION ALL query_expression_body */
{
PARSER_TRACE
;
yylhsminor
.
yy
172
=
createSetOperator
(
pCxt
,
SET_OP_TYPE_UNION_ALL
,
yymsp
[
-
3
].
minor
.
yy172
,
yymsp
[
0
].
minor
.
yy1
72
);
}
yymsp
[
-
3
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
case
17
4
:
/* query_expression_body ::= query_expression_body UNION ALL query_expression_body */
{
PARSER_TRACE
;
yylhsminor
.
yy
272
=
createSetOperator
(
pCxt
,
SET_OP_TYPE_UNION_ALL
,
yymsp
[
-
3
].
minor
.
yy272
,
yymsp
[
0
].
minor
.
yy2
72
);
}
yymsp
[
-
3
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
17
8
:
/* slimit_clause_opt ::= SLIMIT NK_INTEGER */
case
18
2
:
/* limit_clause_opt ::= LIMIT NK_INTEGER */
yytestcase
(
yyruleno
==
182
);
{
PARSER_TRACE
;
yymsp
[
-
1
].
minor
.
yy
1
72
=
createLimitNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
,
NULL
);
}
case
17
9
:
/* slimit_clause_opt ::= SLIMIT NK_INTEGER */
case
18
3
:
/* limit_clause_opt ::= LIMIT NK_INTEGER */
yytestcase
(
yyruleno
==
183
);
{
PARSER_TRACE
;
yymsp
[
-
1
].
minor
.
yy
2
72
=
createLimitNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
,
NULL
);
}
break
;
case
1
79
:
/* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */
case
18
3
:
/* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */
yytestcase
(
yyruleno
==
183
);
{
PARSER_TRACE
;
yymsp
[
-
3
].
minor
.
yy
1
72
=
createLimitNode
(
pCxt
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
case
1
80
:
/* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */
case
18
4
:
/* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */
yytestcase
(
yyruleno
==
184
);
{
PARSER_TRACE
;
yymsp
[
-
3
].
minor
.
yy
2
72
=
createLimitNode
(
pCxt
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
break
;
case
18
0
:
/* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */
case
18
4
:
/* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */
yytestcase
(
yyruleno
==
184
);
{
PARSER_TRACE
;
yymsp
[
-
3
].
minor
.
yy
1
72
=
createLimitNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
,
&
yymsp
[
-
2
].
minor
.
yy0
);
}
case
18
1
:
/* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */
case
18
5
:
/* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */
yytestcase
(
yyruleno
==
185
);
{
PARSER_TRACE
;
yymsp
[
-
3
].
minor
.
yy
2
72
=
createLimitNode
(
pCxt
,
&
yymsp
[
0
].
minor
.
yy0
,
&
yymsp
[
-
2
].
minor
.
yy0
);
}
break
;
case
18
5
:
/* subquery ::= NK_LP query_expression NK_RP */
{
PARSER_TRACE
;
yylhsminor
.
yy
172
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
1
].
minor
.
yy1
72
);
}
yymsp
[
-
2
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
case
18
6
:
/* subquery ::= NK_LP query_expression NK_RP */
{
PARSER_TRACE
;
yylhsminor
.
yy
272
=
createRawExprNodeExt
(
pCxt
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
1
].
minor
.
yy2
72
);
}
yymsp
[
-
2
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
18
6
:
/* search_condition ::= common_expression */
{
PARSER_TRACE
;
yylhsminor
.
yy
172
=
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy1
72
);
}
yymsp
[
0
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
case
18
7
:
/* search_condition ::= common_expression */
{
PARSER_TRACE
;
yylhsminor
.
yy
272
=
releaseRawExprNode
(
pCxt
,
yymsp
[
0
].
minor
.
yy2
72
);
}
yymsp
[
0
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
1
89
:
/* sort_specification ::= expression ordering_specification_opt null_ordering_opt */
{
PARSER_TRACE
;
yylhsminor
.
yy
172
=
createOrderByExprNode
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy172
),
yymsp
[
-
1
].
minor
.
yy14
,
yymsp
[
0
].
minor
.
yy
17
);
}
yymsp
[
-
2
].
minor
.
yy
172
=
yylhsminor
.
yy1
72
;
case
1
90
:
/* sort_specification ::= expression ordering_specification_opt null_ordering_opt */
{
PARSER_TRACE
;
yylhsminor
.
yy
272
=
createOrderByExprNode
(
pCxt
,
releaseRawExprNode
(
pCxt
,
yymsp
[
-
2
].
minor
.
yy272
),
yymsp
[
-
1
].
minor
.
yy218
,
yymsp
[
0
].
minor
.
yy2
17
);
}
yymsp
[
-
2
].
minor
.
yy
272
=
yylhsminor
.
yy2
72
;
break
;
case
19
0
:
/* ordering_specification_opt ::= */
{
PARSER_TRACE
;
yymsp
[
1
].
minor
.
yy
14
=
ORDER_ASC
;
}
case
19
1
:
/* ordering_specification_opt ::= */
{
PARSER_TRACE
;
yymsp
[
1
].
minor
.
yy
218
=
ORDER_ASC
;
}
break
;
case
19
1
:
/* ordering_specification_opt ::= ASC */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
14
=
ORDER_ASC
;
}
case
19
2
:
/* ordering_specification_opt ::= ASC */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
218
=
ORDER_ASC
;
}
break
;
case
19
2
:
/* ordering_specification_opt ::= DESC */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
14
=
ORDER_DESC
;
}
case
19
3
:
/* ordering_specification_opt ::= DESC */
{
PARSER_TRACE
;
yymsp
[
0
].
minor
.
yy
218
=
ORDER_DESC
;
}
break
;
case
19
3
:
/* null_ordering_opt ::= */
{
PARSER_TRACE
;
yymsp
[
1
].
minor
.
yy17
=
NULL_ORDER_DEFAULT
;
}
case
19
4
:
/* null_ordering_opt ::= */
{
PARSER_TRACE
;
yymsp
[
1
].
minor
.
yy
2
17
=
NULL_ORDER_DEFAULT
;
}
break
;
case
19
4
:
/* null_ordering_opt ::= NULLS FIRST */
{
PARSER_TRACE
;
yymsp
[
-
1
].
minor
.
yy17
=
NULL_ORDER_FIRST
;
}
case
19
5
:
/* null_ordering_opt ::= NULLS FIRST */
{
PARSER_TRACE
;
yymsp
[
-
1
].
minor
.
yy
2
17
=
NULL_ORDER_FIRST
;
}
break
;
case
19
5
:
/* null_ordering_opt ::= NULLS LAST */
{
PARSER_TRACE
;
yymsp
[
-
1
].
minor
.
yy17
=
NULL_ORDER_LAST
;
}
case
19
6
:
/* null_ordering_opt ::= NULLS LAST */
{
PARSER_TRACE
;
yymsp
[
-
1
].
minor
.
yy
2
17
=
NULL_ORDER_LAST
;
}
break
;
default:
break
;
...
...
source/libs/parser/src/ttokenizer.c
浏览文件 @
be73f15a
...
...
@@ -88,7 +88,7 @@ static SKeyword keywordTable[] = {
// {"SCORES", TK_SCORES},
// {"GRANTS", TK_GRANTS},
// {"DOT", TK_DOT},
//
{"TABLES", TK_TABLES},
{
"TABLES"
,
TK_TABLES
},
// {"STABLES", TK_STABLES},
{
"VGROUPS"
,
TK_VGROUPS
},
// {"DROP", TK_DROP},
...
...
source/libs/planner/inc/plannerInt.h
浏览文件 @
be73f15a
...
...
@@ -50,7 +50,7 @@ extern "C" {
int32_t
createLogicPlan
(
SPlanContext
*
pCxt
,
SLogicNode
**
pLogicNode
);
int32_t
optimize
(
SPlanContext
*
pCxt
,
SLogicNode
*
pLogicNode
);
int32_t
createPhysiPlan
(
SPlanContext
*
pCxt
,
SLogicNode
*
pLogicNode
,
SQueryPlan
**
pPlan
);
int32_t
createPhysiPlan
(
SPlanContext
*
pCxt
,
SLogicNode
*
pLogicNode
,
SQueryPlan
**
pPlan
,
SArray
*
pExecNodeList
);
#ifdef __cplusplus
}
...
...
source/libs/planner/src/logicPlan.c
浏览文件 @
be73f15a
...
...
@@ -128,6 +128,7 @@ static SLogicNode* createScanLogicNode(SLogicPlanContext* pCxt, SSelectStmt* pSe
pScan
->
node
.
id
=
pCxt
->
planNodeId
++
;
pScan
->
pMeta
=
pRealTable
->
pMeta
;
pScan
->
pVgroupList
=
pRealTable
->
pVgroupList
;
// set columns to scan
SNodeList
*
pCols
=
NULL
;
...
...
source/libs/planner/src/physicalPlan.c
浏览文件 @
be73f15a
...
...
@@ -27,6 +27,7 @@ typedef struct SPhysiPlanContext {
int32_t
errCode
;
int16_t
nextDataBlockId
;
SArray
*
pLocationHelper
;
SArray
*
pExecNodeList
;
}
SPhysiPlanContext
;
static
int32_t
getSlotKey
(
SNode
*
pNode
,
char
*
pKey
)
{
...
...
@@ -185,11 +186,41 @@ static int32_t setSlotOutput(SPhysiPlanContext* pCxt, SNodeList* pTargets, SData
return
TSDB_CODE_SUCCESS
;
}
static
SNodeptr
createPrimaryKeyCol
(
SPhysiPlanContext
*
pCxt
,
uint64_t
tableId
)
{
SColumnNode
*
pCol
=
nodesMakeNode
(
QUERY_NODE_COLUMN
);
CHECK_ALLOC
(
pCol
,
NULL
);
pCol
->
node
.
resType
.
type
=
TSDB_DATA_TYPE_TIMESTAMP
;
pCol
->
node
.
resType
.
bytes
=
tDataTypes
[
TSDB_DATA_TYPE_TIMESTAMP
].
bytes
;
pCol
->
tableId
=
tableId
;
pCol
->
colId
=
PRIMARYKEY_TIMESTAMP_COL_ID
;
pCol
->
colType
=
COLUMN_TYPE_COLUMN
;
return
pCol
;
}
static
int32_t
addPrimaryKeyCol
(
SPhysiPlanContext
*
pCxt
,
SScanPhysiNode
*
pScanPhysiNode
)
{
if
(
NULL
==
pScanPhysiNode
->
pScanCols
)
{
pScanPhysiNode
->
pScanCols
=
nodesMakeList
();
CHECK_ALLOC
(
pScanPhysiNode
->
pScanCols
,
TSDB_CODE_OUT_OF_MEMORY
);
CHECK_CODE_EXT
(
nodesListStrictAppend
(
pScanPhysiNode
->
pScanCols
,
createPrimaryKeyCol
(
pCxt
,
pScanPhysiNode
->
uid
)));
return
TSDB_CODE_SUCCESS
;
}
SNode
*
pNode
;
FOREACH
(
pNode
,
pScanPhysiNode
->
pScanCols
)
{
if
(
PRIMARYKEY_TIMESTAMP_COL_ID
==
((
SColumnNode
*
)
pNode
)
->
colId
)
{
return
TSDB_CODE_SUCCESS
;
}
}
CHECK_CODE_EXT
(
nodesListStrictAppend
(
pScanPhysiNode
->
pScanCols
,
createPrimaryKeyCol
(
pCxt
,
pScanPhysiNode
->
uid
)));
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
initScanPhysiNode
(
SPhysiPlanContext
*
pCxt
,
SScanLogicNode
*
pScanLogicNode
,
SScanPhysiNode
*
pScanPhysiNode
)
{
if
(
NULL
!=
pScanLogicNode
->
pScanCols
)
{
pScanPhysiNode
->
pScanCols
=
nodesCloneList
(
pScanLogicNode
->
pScanCols
);
CHECK_ALLOC
(
pScanPhysiNode
->
pScanCols
,
TSDB_CODE_OUT_OF_MEMORY
);
}
CHECK_CODE
(
addPrimaryKeyCol
(
pCxt
,
pScanPhysiNode
),
TSDB_CODE_OUT_OF_MEMORY
);
// Data block describe also needs to be set without scanning column, such as SELECT COUNT(*) FROM t
CHECK_CODE
(
addDataBlockDesc
(
pCxt
,
pScanPhysiNode
->
pScanCols
,
pScanPhysiNode
->
node
.
pOutputDataBlockDesc
),
TSDB_CODE_OUT_OF_MEMORY
);
...
...
@@ -206,6 +237,11 @@ static int32_t initScanPhysiNode(SPhysiPlanContext* pCxt, SScanLogicNode* pScanL
return
TSDB_CODE_SUCCESS
;
}
static
void
vgroupInfoToNodeAddr
(
const
SVgroupInfo
*
vg
,
SQueryNodeAddr
*
pNodeAddr
)
{
pNodeAddr
->
nodeId
=
vg
->
vgId
;
pNodeAddr
->
epset
=
vg
->
epset
;
}
static
SPhysiNode
*
createTagScanPhysiNode
(
SPhysiPlanContext
*
pCxt
,
SScanLogicNode
*
pScanLogicNode
)
{
STagScanPhysiNode
*
pTagScan
=
(
STagScanPhysiNode
*
)
makePhysiNode
(
pCxt
,
QUERY_NODE_PHYSICAL_PLAN_TAG_SCAN
);
CHECK_ALLOC
(
pTagScan
,
NULL
);
...
...
@@ -213,21 +249,23 @@ static SPhysiNode* createTagScanPhysiNode(SPhysiPlanContext* pCxt, SScanLogicNod
return
(
SPhysiNode
*
)
pTagScan
;
}
static
SPhysiNode
*
createTableScanPhysiNode
(
SPhysiPlanContext
*
pCxt
,
SScanLogicNode
*
pScanLogicNode
)
{
static
SPhysiNode
*
createTableScanPhysiNode
(
SPhysiPlanContext
*
pCxt
,
SS
ubplan
*
pSubplan
,
SS
canLogicNode
*
pScanLogicNode
)
{
STableScanPhysiNode
*
pTableScan
=
(
STableScanPhysiNode
*
)
makePhysiNode
(
pCxt
,
QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN
);
CHECK_ALLOC
(
pTableScan
,
NULL
);
CHECK_CODE
(
initScanPhysiNode
(
pCxt
,
pScanLogicNode
,
(
SScanPhysiNode
*
)
pTableScan
),
(
SPhysiNode
*
)
pTableScan
);
pTableScan
->
scanFlag
=
pScanLogicNode
->
scanFlag
;
pTableScan
->
scanRange
=
pScanLogicNode
->
scanRange
;
vgroupInfoToNodeAddr
(
pScanLogicNode
->
pVgroupList
->
vgroups
,
&
pSubplan
->
execNode
);
taosArrayPush
(
pCxt
->
pExecNodeList
,
&
pSubplan
->
execNode
);
return
(
SPhysiNode
*
)
pTableScan
;
}
static
SPhysiNode
*
createScanPhysiNode
(
SPhysiPlanContext
*
pCxt
,
SScanLogicNode
*
pScanLogicNode
)
{
static
SPhysiNode
*
createScanPhysiNode
(
SPhysiPlanContext
*
pCxt
,
SS
ubplan
*
pSubplan
,
SS
canLogicNode
*
pScanLogicNode
)
{
switch
(
pScanLogicNode
->
scanType
)
{
case
SCAN_TYPE_TAG
:
return
createTagScanPhysiNode
(
pCxt
,
pScanLogicNode
);
case
SCAN_TYPE_TABLE
:
return
createTableScanPhysiNode
(
pCxt
,
pScanLogicNode
);
return
createTableScanPhysiNode
(
pCxt
,
pS
ubplan
,
pS
canLogicNode
);
case
SCAN_TYPE_STABLE
:
case
SCAN_TYPE_STREAM
:
break
;
...
...
@@ -428,13 +466,13 @@ static SPhysiNode* createProjectPhysiNode(SPhysiPlanContext* pCxt, SNodeList* pC
return
(
SPhysiNode
*
)
pProject
;
}
static
SPhysiNode
*
createPhysiNode
(
SPhysiPlanContext
*
pCxt
,
SLogicNode
*
pLogicPlan
)
{
static
SPhysiNode
*
createPhysiNode
(
SPhysiPlanContext
*
pCxt
,
S
Subplan
*
pSubplan
,
S
LogicNode
*
pLogicPlan
)
{
SNodeList
*
pChildren
=
nodesMakeList
();
CHECK_ALLOC
(
pChildren
,
NULL
);
SNode
*
pLogicChild
;
FOREACH
(
pLogicChild
,
pLogicPlan
->
pChildren
)
{
SNode
*
pChildPhyNode
=
(
SNode
*
)
createPhysiNode
(
pCxt
,
(
SLogicNode
*
)
pLogicChild
);
SNode
*
pChildPhyNode
=
(
SNode
*
)
createPhysiNode
(
pCxt
,
pSubplan
,
(
SLogicNode
*
)
pLogicChild
);
if
(
TSDB_CODE_SUCCESS
!=
nodesListAppend
(
pChildren
,
pChildPhyNode
))
{
pCxt
->
errCode
=
TSDB_CODE_OUT_OF_MEMORY
;
nodesDestroyList
(
pChildren
);
...
...
@@ -445,7 +483,7 @@ static SPhysiNode* createPhysiNode(SPhysiPlanContext* pCxt, SLogicNode* pLogicPl
SPhysiNode
*
pPhyNode
=
NULL
;
switch
(
nodeType
(
pLogicPlan
))
{
case
QUERY_NODE_LOGIC_PLAN_SCAN
:
pPhyNode
=
createScanPhysiNode
(
pCxt
,
(
SScanLogicNode
*
)
pLogicPlan
);
pPhyNode
=
createScanPhysiNode
(
pCxt
,
pSubplan
,
(
SScanLogicNode
*
)
pLogicPlan
);
break
;
case
QUERY_NODE_LOGIC_PLAN_JOIN
:
pPhyNode
=
createJoinPhysiNode
(
pCxt
,
pChildren
,
(
SJoinLogicNode
*
)
pLogicPlan
);
...
...
@@ -493,25 +531,17 @@ static SSubplan* createPhysiSubplan(SPhysiPlanContext* pCxt, SSubLogicPlan* pLog
SVnodeModifLogicNode
*
pModif
=
(
SVnodeModifLogicNode
*
)
pLogicSubplan
->
pNode
;
pSubplan
->
pDataSink
=
createDataInserter
(
pCxt
,
pModif
->
pVgDataBlocks
);
pSubplan
->
msgType
=
pModif
->
msgType
;
pSubplan
->
execNode
.
epset
=
pModif
->
pVgDataBlocks
->
vg
.
epset
;
taosArrayPush
(
pCxt
->
pExecNodeList
,
&
pSubplan
->
execNode
);
}
else
{
pSubplan
->
pNode
=
createPhysiNode
(
pCxt
,
pLogicSubplan
->
pNode
);
pSubplan
->
pNode
=
createPhysiNode
(
pCxt
,
p
Subplan
,
p
LogicSubplan
->
pNode
);
pSubplan
->
pDataSink
=
createDataDispatcher
(
pCxt
,
pSubplan
->
pNode
);
pSubplan
->
msgType
=
TDMT_VND_QUERY
;
}
pSubplan
->
subplanType
=
pLogicSubplan
->
subplanType
;
return
pSubplan
;
}
static
int32_t
strictListAppend
(
SNodeList
*
pList
,
SNodeptr
pNode
)
{
if
(
NULL
==
pNode
)
{
return
TSDB_CODE_OUT_OF_MEMORY
;
}
int32_t
code
=
nodesListAppend
(
pList
,
pNode
);
if
(
TSDB_CODE_SUCCESS
!=
code
)
{
nodesDestroyNode
(
pNode
);
}
return
code
;
}
static
int32_t
splitLogicPlan
(
SPhysiPlanContext
*
pCxt
,
SLogicNode
*
pLogicNode
,
SSubLogicPlan
**
pSubLogicPlan
)
{
*
pSubLogicPlan
=
(
SSubLogicPlan
*
)
nodesMakeNode
(
QUERY_NODE_LOGIC_SUBPLAN
);
CHECK_ALLOC
(
*
pSubLogicPlan
,
TSDB_CODE_OUT_OF_MEMORY
);
...
...
@@ -529,7 +559,7 @@ static int32_t pushSubplan(SPhysiPlanContext* pCxt, SNodeptr pSubplan, int32_t l
if
(
level
>=
LIST_LENGTH
(
pSubplans
))
{
pGroup
=
nodesMakeNode
(
QUERY_NODE_NODE_LIST
);
CHECK_ALLOC
(
pGroup
,
TSDB_CODE_OUT_OF_MEMORY
);
CHECK_CODE
(
strictLis
tAppend
(
pSubplans
,
pGroup
),
TSDB_CODE_OUT_OF_MEMORY
);
CHECK_CODE
(
nodesListStric
tAppend
(
pSubplans
,
pGroup
),
TSDB_CODE_OUT_OF_MEMORY
);
}
else
{
pGroup
=
nodesListGetNode
(
pSubplans
,
level
);
}
...
...
@@ -537,7 +567,7 @@ static int32_t pushSubplan(SPhysiPlanContext* pCxt, SNodeptr pSubplan, int32_t l
pGroup
->
pNodeList
=
nodesMakeList
();
CHECK_ALLOC
(
pGroup
->
pNodeList
,
TSDB_CODE_OUT_OF_MEMORY
);
}
CHECK_CODE
(
strictLis
tAppend
(
pGroup
->
pNodeList
,
pSubplan
),
TSDB_CODE_OUT_OF_MEMORY
);
CHECK_CODE
(
nodesListStric
tAppend
(
pGroup
->
pNodeList
,
pSubplan
),
TSDB_CODE_OUT_OF_MEMORY
);
}
SSubLogicPlan
*
singleCloneSubLogicPlan
(
SPhysiPlanContext
*
pCxt
,
SSubLogicPlan
*
pSrc
,
int32_t
level
)
{
...
...
@@ -562,7 +592,6 @@ static int32_t doScaleOut(SPhysiPlanContext* pCxt, SSubLogicPlan* pSubplan, int3
SSubLogicPlan
*
pNewSubplan
=
singleCloneSubLogicPlan
(
pCxt
,
pSubplan
,
level
);
CHECK_ALLOC
(
pNewSubplan
,
TSDB_CODE_OUT_OF_MEMORY
);
SVgDataBlocks
*
blocks
=
(
SVgDataBlocks
*
)
taosArrayGetP
(
pNode
->
pDataBlocks
,
i
);
pNewSubplan
->
execNode
.
epset
=
blocks
->
vg
.
epset
;
((
SVnodeModifLogicNode
*
)
pNewSubplan
->
pNode
)
->
pVgDataBlocks
=
blocks
;
CHECK_CODE_EXT
(
pushSubplan
(
pCxt
,
pNewSubplan
,
level
,
pLogicPlan
->
pSubplans
));
}
...
...
@@ -639,12 +668,13 @@ static int32_t buildPhysiPlan(SPhysiPlanContext* pCxt, SQueryLogicPlan* pLogicPl
return
TSDB_CODE_SUCCESS
;
}
int32_t
createPhysiPlan
(
SPlanContext
*
pCxt
,
SLogicNode
*
pLogicNode
,
SQueryPlan
**
pPlan
)
{
int32_t
createPhysiPlan
(
SPlanContext
*
pCxt
,
SLogicNode
*
pLogicNode
,
SQueryPlan
**
pPlan
,
SArray
*
pExecNodeList
)
{
SPhysiPlanContext
cxt
=
{
.
pPlanCxt
=
pCxt
,
.
errCode
=
TSDB_CODE_SUCCESS
,
.
nextDataBlockId
=
0
,
.
pLocationHelper
=
taosArrayInit
(
32
,
POINTER_BYTES
)
.
pLocationHelper
=
taosArrayInit
(
32
,
POINTER_BYTES
),
.
pExecNodeList
=
pExecNodeList
};
if
(
NULL
==
cxt
.
pLocationHelper
)
{
return
TSDB_CODE_OUT_OF_MEMORY
;
...
...
source/libs/planner/src/planner.c
浏览文件 @
be73f15a
...
...
@@ -21,14 +21,14 @@ int32_t optimize(SPlanContext* pCxt, SLogicNode* pLogicNode) {
return
TSDB_CODE_SUCCESS
;
}
int32_t
qCreateQueryPlan
(
SPlanContext
*
pCxt
,
SQueryPlan
**
pPlan
)
{
int32_t
qCreateQueryPlan
(
SPlanContext
*
pCxt
,
SQueryPlan
**
pPlan
,
SArray
*
pExecNodeList
)
{
SLogicNode
*
pLogicNode
=
NULL
;
int32_t
code
=
createLogicPlan
(
pCxt
,
&
pLogicNode
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
optimize
(
pCxt
,
pLogicNode
);
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
createPhysiPlan
(
pCxt
,
pLogicNode
,
pPlan
);
code
=
createPhysiPlan
(
pCxt
,
pLogicNode
,
pPlan
,
pExecNodeList
);
}
return
code
;
}
...
...
source/libs/planner/test/plannerTest.cpp
浏览文件 @
be73f15a
...
...
@@ -71,7 +71,7 @@ protected:
if
(
TEST_PHYSICAL_PLAN
==
target
)
{
SQueryPlan
*
pPlan
=
nullptr
;
code
=
createPhysiPlan
(
&
cxt
,
pLogicPlan
,
&
pPlan
);
code
=
createPhysiPlan
(
&
cxt
,
pLogicPlan
,
&
pPlan
,
NULL
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
cout
<<
"sql:["
<<
cxt_
.
pSql
<<
"] physical plan code:"
<<
code
<<
", strerror:"
<<
tstrerror
(
code
)
<<
endl
;
return
false
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录