Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
ebc1fd6c
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看板
提交
ebc1fd6c
编写于
9月 23, 2021
作者:
W
wpan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
support escape string as table name
上级
694132ed
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
691 addition
and
559 deletion
+691
-559
src/client/inc/tscUtil.h
src/client/inc/tscUtil.h
+2
-2
src/client/src/tscParseInsert.c
src/client/src/tscParseInsert.c
+37
-16
src/client/src/tscParseLineProtocol.c
src/client/src/tscParseLineProtocol.c
+4
-2
src/client/src/tscPrepare.c
src/client/src/tscPrepare.c
+18
-8
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+63
-36
src/client/src/tscServer.c
src/client/src/tscServer.c
+3
-3
src/client/src/tscUtil.c
src/client/src/tscUtil.c
+36
-17
src/common/inc/tname.h
src/common/inc/tname.h
+2
-0
src/common/src/tname.c
src/common/src/tname.c
+43
-5
src/inc/taosdef.h
src/inc/taosdef.h
+1
-0
src/inc/ttokendef.h
src/inc/ttokendef.h
+1
-0
src/mnode/src/mnodeTable.c
src/mnode/src/mnodeTable.c
+1
-1
src/query/inc/sql.y
src/query/inc/sql.y
+2
-0
src/query/src/sql.c
src/query/src/sql.c
+476
-468
src/query/tests/unitTest.cpp
src/query/tests/unitTest.cpp
+1
-1
tests/script/fullGeneralSuite.sim
tests/script/fullGeneralSuite.sim
+1
-0
未找到文件。
src/client/inc/tscUtil.h
浏览文件 @
ebc1fd6c
...
...
@@ -169,7 +169,7 @@ bool tscQueryBlockInfo(SQueryInfo* pQueryInfo);
SExprInfo
*
tscAddFuncInSelectClause
(
SQueryInfo
*
pQueryInfo
,
int32_t
outputColIndex
,
int16_t
functionId
,
SColumnIndex
*
pIndex
,
SSchema
*
pColSchema
,
int16_t
colType
,
int16_t
colId
);
int32_t
tscSetTableFullName
(
SName
*
pName
,
SStrToken
*
pzTableName
,
SSqlObj
*
pSql
);
int32_t
tscSetTableFullName
(
SName
*
pName
,
SStrToken
*
pzTableName
,
SSqlObj
*
pSql
,
bool
dbIncluded
);
void
tscClearInterpInfo
(
SQueryInfo
*
pQueryInfo
);
bool
tscIsInsertData
(
char
*
sqlstr
);
...
...
@@ -240,7 +240,7 @@ void tscColumnListCopyAll(SArray* dst, const SArray* src);
void
convertQueryResult
(
SSqlRes
*
pRes
,
SQueryInfo
*
pQueryInfo
,
uint64_t
objId
,
bool
convertNchar
);
void
tscDequoteAndTrimToken
(
SStrToken
*
pToken
);
int32_t
tscValidateName
(
SStrToken
*
pToken
,
bool
escapeEnabled
);
int32_t
tscValidateName
(
SStrToken
*
pToken
,
bool
escapeEnabled
,
bool
*
dbIncluded
);
void
tscIncStreamExecutionCount
(
void
*
pStream
);
...
...
src/client/src/tscParseInsert.c
浏览文件 @
ebc1fd6c
...
...
@@ -898,6 +898,18 @@ static int32_t doParseInsertStatement(SInsertStatementParam *pInsertParam, char
return
TSDB_CODE_SUCCESS
;
}
int
validateTableName
(
char
*
tblName
,
int
len
,
SStrToken
*
psTblToken
,
bool
*
dbIncluded
)
{
tstrncpy
(
psTblToken
->
z
,
tblName
,
TSDB_TABLE_FNAME_LEN
);
psTblToken
->
n
=
len
;
psTblToken
->
type
=
TK_ID
;
tGetToken
(
psTblToken
->
z
,
&
psTblToken
->
type
);
return
tscValidateName
(
psTblToken
,
true
,
dbIncluded
);
}
static
int32_t
tscCheckIfCreateTable
(
char
**
sqlstr
,
SSqlObj
*
pSql
,
char
**
boundColumn
)
{
int32_t
index
=
0
;
SStrToken
sToken
=
{
0
};
...
...
@@ -960,13 +972,27 @@ static int32_t tscCheckIfCreateTable(char **sqlstr, SSqlObj *pSql, char** boundC
sToken
=
tStrGetToken
(
sql
,
&
index
,
false
);
sql
+=
index
;
if
(
sToken
.
type
==
TK_ILLEGAL
)
{
return
tscSQLSyntaxErrMsg
(
pCmd
->
payload
,
NULL
,
sql
);
}
//the source super table is moved to the secondary position of the pTableMetaInfo list
if
(
pQueryInfo
->
numOfTables
<
2
)
{
tscAddEmptyMetaInfo
(
pQueryInfo
);
}
bool
dbIncluded1
=
false
;
char
buf
[
TSDB_TABLE_FNAME_LEN
];
SStrToken
sTblToken
;
sTblToken
.
z
=
buf
;
code
=
validateTableName
(
sToken
.
z
,
sToken
.
n
,
&
sTblToken
,
&
dbIncluded1
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
STableMetaInfo
*
pSTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
STABLE_INDEX
);
code
=
tscSetTableFullName
(
&
pSTableMetaInfo
->
name
,
&
sT
oken
,
pSql
);
code
=
tscSetTableFullName
(
&
pSTableMetaInfo
->
name
,
&
sT
blToken
,
pSql
,
dbIncluded1
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
...
...
@@ -980,7 +1006,7 @@ static int32_t tscCheckIfCreateTable(char **sqlstr, SSqlObj *pSql, char** boundC
}
if
(
!
UTIL_TABLE_IS_SUPER_TABLE
(
pSTableMetaInfo
))
{
return
tscInvalidOperationMsg
(
pInsertParam
->
msg
,
"create table only from super table is allowed"
,
sToken
.
z
);
return
tscInvalidOperationMsg
(
pInsertParam
->
msg
,
"create table only from super table is allowed"
,
sT
blT
oken
.
z
);
}
SSchema
*
pTagSchema
=
tscGetTableTagSchema
(
pSTableMetaInfo
->
pTableMeta
);
...
...
@@ -1136,12 +1162,16 @@ static int32_t tscCheckIfCreateTable(char **sqlstr, SSqlObj *pSql, char** boundC
}
sql
=
sToken
.
z
;
bool
dbIncluded2
=
false
;
if
(
tscValidateName
(
&
tableToken
,
true
)
!=
TSDB_CODE_SUCCESS
)
{
sTblToken
.
z
=
buf
;
code
=
validateTableName
(
tableToken
.
z
,
tableToken
.
n
,
&
sTblToken
,
&
dbIncluded2
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
tscInvalidOperationMsg
(
pInsertParam
->
msg
,
"invalid table name"
,
*
sqlstr
);
}
int32_t
ret
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
&
tableToken
,
pSql
);
int32_t
ret
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
&
sTblToken
,
pSql
,
dbIncluded2
);
if
(
ret
!=
TSDB_CODE_SUCCESS
)
{
return
ret
;
}
...
...
@@ -1171,16 +1201,6 @@ static int32_t tscCheckIfCreateTable(char **sqlstr, SSqlObj *pSql, char** boundC
return
code
;
}
int
validateTableName
(
char
*
tblName
,
int
len
,
SStrToken
*
psTblToken
)
{
tstrncpy
(
psTblToken
->
z
,
tblName
,
TSDB_TABLE_FNAME_LEN
);
psTblToken
->
n
=
len
;
psTblToken
->
type
=
TK_ID
;
tGetToken
(
psTblToken
->
z
,
&
psTblToken
->
type
);
return
tscValidateName
(
psTblToken
,
true
);
}
static
int32_t
validateDataSource
(
SInsertStatementParam
*
pInsertParam
,
int32_t
type
,
const
char
*
sql
)
{
uint32_t
*
insertType
=
&
pInsertParam
->
insertType
;
if
(
*
insertType
==
TSDB_QUERY_TYPE_STMT_INSERT
&&
type
==
TSDB_QUERY_TYPE_INSERT
)
{
...
...
@@ -1401,13 +1421,14 @@ int tsParseInsertSql(SSqlObj *pSql) {
char
buf
[
TSDB_TABLE_FNAME_LEN
];
SStrToken
sTblToken
;
sTblToken
.
z
=
buf
;
bool
dbIncluded
=
false
;
// Check if the table name available or not
if
(
validateTableName
(
sToken
.
z
,
sToken
.
n
,
&
sTblToken
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
validateTableName
(
sToken
.
z
,
sToken
.
n
,
&
sTblToken
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
code
=
tscInvalidOperationMsg
(
pInsertParam
->
msg
,
"table name invalid"
,
sToken
.
z
);
goto
_clean
;
}
if
((
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
&
sTblToken
,
pSql
))
!=
TSDB_CODE_SUCCESS
)
{
if
((
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
&
sTblToken
,
pSql
,
dbIncluded
))
!=
TSDB_CODE_SUCCESS
)
{
goto
_clean
;
}
...
...
src/client/src/tscParseLineProtocol.c
浏览文件 @
ebc1fd6c
...
...
@@ -558,8 +558,10 @@ static int32_t retrieveTableMeta(TAOS* taos, char* tableName, STableMeta** pTabl
registerSqlObj
(
pSql
);
SStrToken
tableToken
=
{.
z
=
tableNameLowerCase
,
.
n
=
(
uint32_t
)
strlen
(
tableNameLowerCase
),
.
type
=
TK_ID
};
tGetToken
(
tableNameLowerCase
,
&
tableToken
.
type
);
bool
dbIncluded
=
false
;
// Check if the table name available or not
if
(
tscValidateName
(
&
tableToken
,
true
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
tscValidateName
(
&
tableToken
,
true
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
code
=
TSDB_CODE_TSC_INVALID_TABLE_ID_LENGTH
;
sprintf
(
pSql
->
cmd
.
payload
,
"table name is invalid"
);
tscFreeRegisteredSqlObj
(
pSql
);
...
...
@@ -567,7 +569,7 @@ static int32_t retrieveTableMeta(TAOS* taos, char* tableName, STableMeta** pTabl
}
SName
sname
=
{
0
};
if
((
code
=
tscSetTableFullName
(
&
sname
,
&
tableToken
,
pSql
))
!=
TSDB_CODE_SUCCESS
)
{
if
((
code
=
tscSetTableFullName
(
&
sname
,
&
tableToken
,
pSql
,
dbIncluded
))
!=
TSDB_CODE_SUCCESS
)
{
tscFreeRegisteredSqlObj
(
pSql
);
return
code
;
}
...
...
src/client/src/tscPrepare.c
浏览文件 @
ebc1fd6c
...
...
@@ -1585,9 +1585,10 @@ int taos_stmt_set_tbname_tags(TAOS_STMT* stmt, const char* name, TAOS_BIND* tags
SSqlObj
*
pSql
=
pStmt
->
pSql
;
SSqlCmd
*
pCmd
=
&
pSql
->
cmd
;
uint32_t
nameLen
=
(
uint32_t
)
strlen
(
name
);
if
(
name
==
NULL
)
{
tscError
(
"0x%"
PRIx64
" name is NULL"
,
pSql
->
self
);
if
(
name
==
NULL
||
nameLen
<=
0
)
{
tscError
(
"0x%"
PRIx64
"
tb
name is NULL"
,
pSql
->
self
);
STMT_RET
(
invalidOperationMsg
(
tscGetErrorMsgPayload
(
&
pStmt
->
pSql
->
cmd
),
"name is NULL"
));
}
...
...
@@ -1603,6 +1604,19 @@ int taos_stmt_set_tbname_tags(TAOS_STMT* stmt, const char* name, TAOS_BIND* tags
pStmt
->
last
=
STMT_SETTBNAME
;
SStrToken
tname
=
{
0
};
tname
.
type
=
TK_STRING
;
tname
.
z
=
(
char
*
)
name
;
tname
.
n
=
(
uint32_t
)
strlen
(
name
);
bool
dbIncluded
=
false
;
// Check if the table name available or not
if
(
tscValidateName
(
&
tname
,
true
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
tscError
(
"0x%"
PRIx64
" tbname[%s] is invalid"
,
pSql
->
self
,
name
);
STMT_RET
(
invalidOperationMsg
(
tscGetErrorMsgPayload
(
&
pStmt
->
pSql
->
cmd
),
"name is invalid"
));
}
uint64_t
*
uid
=
(
uint64_t
*
)
taosHashGet
(
pStmt
->
mtb
.
pTableHash
,
name
,
strlen
(
name
));
if
(
uid
!=
NULL
)
{
pStmt
->
mtb
.
currentUid
=
*
uid
;
...
...
@@ -1632,13 +1646,9 @@ int taos_stmt_set_tbname_tags(TAOS_STMT* stmt, const char* name, TAOS_BIND* tags
STableMeta
*
pTableMeta
=
pTableMetaInfo
->
pTableMeta
;
char
sTableName
[
TSDB_TABLE_FNAME_LEN
]
=
{
0
};
tstrncpy
(
sTableName
,
pTableMeta
->
sTableName
,
sizeof
(
sTableName
));
SStrToken
tname
=
{
0
};
tname
.
type
=
TK_STRING
;
tname
.
z
=
(
char
*
)
name
;
tname
.
n
=
(
uint32_t
)
strlen
(
name
);
SName
fullname
=
{
0
};
tscSetTableFullName
(
&
fullname
,
&
tname
,
pSql
);
tscSetTableFullName
(
&
fullname
,
&
tname
,
pSql
,
dbIncluded
);
memcpy
(
&
pTableMetaInfo
->
name
,
&
fullname
,
sizeof
(
fullname
));
...
...
src/client/src/tscSQLParser.c
浏览文件 @
ebc1fd6c
...
...
@@ -142,6 +142,8 @@ static int32_t checkQueryRangeForFill(SSqlCmd* pCmd, SQueryInfo* pQueryInfo);
static
int32_t
loadAllTableMeta
(
SSqlObj
*
pSql
,
struct
SSqlInfo
*
pInfo
);
static
tSqlExpr
*
extractExprForSTable
(
SSqlCmd
*
pCmd
,
tSqlExpr
**
pExpr
,
SQueryInfo
*
pQueryInfo
,
int32_t
tableIndex
);
int
validateTableName
(
char
*
tblName
,
int
len
,
SStrToken
*
psTblToken
,
bool
*
dbIncluded
);
static
bool
isTimeWindowQuery
(
SQueryInfo
*
pQueryInfo
)
{
return
pQueryInfo
->
interval
.
interval
>
0
||
pQueryInfo
->
sessionWindow
.
gap
>
0
;
}
...
...
@@ -568,7 +570,9 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
SStrToken
*
pzName
=
taosArrayGet
(
pInfo
->
pMiscInfo
->
a
,
0
);
bool
escapeEnabled
=
(
pInfo
->
type
==
TSDB_SQL_DROP_TABLE
)
?
true
:
false
;
if
((
pInfo
->
type
!=
TSDB_SQL_DROP_DNODE
)
&&
(
tscValidateName
(
pzName
,
escapeEnabled
)
!=
TSDB_CODE_SUCCESS
))
{
bool
dbIncluded
=
false
;
if
((
pInfo
->
type
!=
TSDB_SQL_DROP_DNODE
)
&&
(
tscValidateName
(
pzName
,
escapeEnabled
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
))
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg2
);
}
...
...
@@ -582,7 +586,7 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
}
else
if
(
pInfo
->
type
==
TSDB_SQL_DROP_TABLE
)
{
assert
(
taosArrayGetSize
(
pInfo
->
pMiscInfo
->
a
)
==
1
);
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
pzName
,
pSql
);
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
pzName
,
pSql
,
dbIncluded
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
...
...
@@ -606,7 +610,7 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
const
char
*
msg
=
"invalid db name"
;
SStrToken
*
pToken
=
taosArrayGet
(
pInfo
->
pMiscInfo
->
a
,
0
);
if
(
tscValidateName
(
pToken
,
false
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
tscValidateName
(
pToken
,
false
,
NULL
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg
);
}
...
...
@@ -653,7 +657,7 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
char
buf
[
TSDB_DB_NAME_LEN
]
=
{
0
};
SStrToken
token
=
taosTokenDup
(
&
pCreateDB
->
dbname
,
buf
,
tListLen
(
buf
));
if
(
tscValidateName
(
&
token
,
false
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
tscValidateName
(
&
token
,
false
,
NULL
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
}
...
...
@@ -700,7 +704,7 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg3
);
}
if
(
tscValidateName
(
pName
,
false
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
tscValidateName
(
pName
,
false
,
NULL
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg2
);
}
...
...
@@ -722,11 +726,13 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
const
char
*
msg1
=
"invalid table name"
;
SStrToken
*
pToken
=
taosArrayGet
(
pInfo
->
pMiscInfo
->
a
,
0
);
if
(
tscValidateName
(
pToken
,
true
)
!=
TSDB_CODE_SUCCESS
)
{
bool
dbIncluded
=
false
;
if
(
tscValidateName
(
pToken
,
true
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
}
// additional msg has been attached already
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
pToken
,
pSql
);
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
pToken
,
pSql
,
dbIncluded
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
...
...
@@ -738,11 +744,13 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
const
char
*
msg1
=
"invalid table name"
;
SStrToken
*
pToken
=
taosArrayGet
(
pInfo
->
pMiscInfo
->
a
,
0
);
if
(
tscValidateName
(
pToken
,
true
)
!=
TSDB_CODE_SUCCESS
)
{
bool
dbIncluded
=
false
;
if
(
tscValidateName
(
pToken
,
true
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
}
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
pToken
,
pSql
);
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
pToken
,
pSql
,
dbIncluded
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
...
...
@@ -753,7 +761,8 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
const
char
*
msg1
=
"invalid database name"
;
SStrToken
*
pToken
=
taosArrayGet
(
pInfo
->
pMiscInfo
->
a
,
0
);
if
(
tscValidateName
(
pToken
,
false
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
tscValidateName
(
pToken
,
false
,
NULL
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
}
...
...
@@ -817,7 +826,7 @@ int32_t tscValidateSqlInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg3
);
}
if
(
tscValidateName
(
pName
,
false
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
tscValidateName
(
pName
,
false
,
NULL
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg2
);
}
...
...
@@ -1337,7 +1346,7 @@ int32_t parseSlidingClause(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, SStrToken* pSl
return
TSDB_CODE_SUCCESS
;
}
int32_t
tscSetTableFullName
(
SName
*
pName
,
SStrToken
*
pTableName
,
SSqlObj
*
pSql
)
{
int32_t
tscSetTableFullName
(
SName
*
pName
,
SStrToken
*
pTableName
,
SSqlObj
*
pSql
,
bool
dbIncluded
)
{
const
char
*
msg1
=
"name too long"
;
const
char
*
msg2
=
"acctId too long"
;
const
char
*
msg3
=
"no acctId"
;
...
...
@@ -1346,7 +1355,12 @@ int32_t tscSetTableFullName(SName* pName, SStrToken* pTableName, SSqlObj* pSql)
SSqlCmd
*
pCmd
=
&
pSql
->
cmd
;
int32_t
code
=
TSDB_CODE_SUCCESS
;
int32_t
idx
=
getDelimiterIndex
(
pTableName
);
int32_t
idx
=
-
1
;
if
(
dbIncluded
)
{
idx
=
getDelimiterIndex
(
pTableName
);
}
if
(
idx
!=
-
1
)
{
// db has been specified in sql string so we ignore current db path
char
*
acctId
=
getAccountId
(
pSql
);
if
(
acctId
==
NULL
||
strlen
(
acctId
)
<=
0
)
{
...
...
@@ -3206,8 +3220,7 @@ int32_t setShowInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
if
(
pDbPrefixToken
->
n
<=
0
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg5
);
}
if
(
tscValidateName
(
pDbPrefixToken
,
false
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
tscValidateName
(
pDbPrefixToken
,
false
,
NULL
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
}
...
...
@@ -5866,12 +5879,13 @@ int32_t setAlterTableInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfo
(
pCmd
);
STableMetaInfo
*
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
DEFAULT_TABLE_INDEX
);
bool
dbIncluded
=
false
;
if
(
tscValidateName
(
&
(
pAlterSQL
->
name
,
true
)
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
tscValidateName
(
&
(
pAlterSQL
->
name
),
true
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
}
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
&
(
pAlterSQL
->
name
),
pSql
);
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
&
(
pAlterSQL
->
name
),
pSql
,
dbIncluded
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
...
...
@@ -7421,12 +7435,13 @@ int32_t doCheckForCreateTable(SSqlObj* pSql, int32_t subClauseIndex, SSqlInfo* p
// if sql specifies db, use it, otherwise use default db
SStrToken
*
pzTableName
=
&
(
pCreateTable
->
name
);
if
(
tscValidateName
(
pzTableName
,
true
)
!=
TSDB_CODE_SUCCESS
)
{
bool
dbIncluded
=
false
;
if
(
tscValidateName
(
pzTableName
,
true
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
}
int32_t
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
pzTableName
,
pSql
);
int32_t
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
pzTableName
,
pSql
,
dbIncluded
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
...
...
@@ -7486,11 +7501,13 @@ int32_t doCheckForCreateFromStable(SSqlObj* pSql, SSqlInfo* pInfo) {
SCreatedTableInfo
*
pCreateTableInfo
=
taosArrayGet
(
pCreateTable
->
childTableInfo
,
j
);
SStrToken
*
pToken
=
&
pCreateTableInfo
->
stableName
;
if
(
tscValidateName
(
pToken
,
true
)
!=
TSDB_CODE_SUCCESS
)
{
bool
dbIncluded
=
false
;
if
(
tscValidateName
(
pToken
,
true
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
}
int32_t
code
=
tscSetTableFullName
(
&
pStableMetaInfo
->
name
,
pToken
,
pSql
);
int32_t
code
=
tscSetTableFullName
(
&
pStableMetaInfo
->
name
,
pToken
,
pSql
,
dbIncluded
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
...
...
@@ -7659,14 +7676,15 @@ int32_t doCheckForCreateFromStable(SSqlObj* pSql, SSqlInfo* pInfo) {
kvRowCpy
(
pTag
->
data
,
row
);
free
(
row
);
bool
dbIncluded2
=
false
;
// table name
if
(
tscValidateName
(
&
(
pCreateTableInfo
->
name
,
true
)
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
tscValidateName
(
&
(
pCreateTableInfo
->
name
),
true
,
&
dbIncluded2
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
}
STableMetaInfo
*
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
TABLE_INDEX
);
ret
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
&
pCreateTableInfo
->
name
,
pSql
);
ret
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
&
pCreateTableInfo
->
name
,
pSql
,
dbIncluded2
);
if
(
ret
!=
TSDB_CODE_SUCCESS
)
{
return
ret
;
}
...
...
@@ -7703,8 +7721,9 @@ int32_t doCheckForStream(SSqlObj* pSql, SSqlInfo* pInfo) {
// if sql specifies db, use it, otherwise use default db
SStrToken
*
pName
=
&
(
pCreateTable
->
name
);
SSqlNode
*
pSqlNode
=
pCreateTable
->
pSelect
;
bool
dbIncluded1
=
false
;
if
(
tscValidateName
(
pName
,
true
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
tscValidateName
(
pName
,
true
,
&
dbIncluded1
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
}
...
...
@@ -7719,11 +7738,13 @@ int32_t doCheckForStream(SSqlObj* pSql, SSqlInfo* pInfo) {
SRelElementPair
*
p1
=
taosArrayGet
(
pFromInfo
->
list
,
0
);
SStrToken
srcToken
=
{.
z
=
p1
->
tableName
.
z
,
.
n
=
p1
->
tableName
.
n
,
.
type
=
TK_STRING
};
if
(
tscValidateName
(
&
srcToken
,
true
)
!=
TSDB_CODE_SUCCESS
)
{
bool
dbIncluded2
=
false
;
if
(
tscValidateName
(
&
srcToken
,
true
,
&
dbIncluded2
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
}
int32_t
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
&
srcToken
,
pSql
);
int32_t
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
&
srcToken
,
pSql
,
dbIncluded2
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
...
...
@@ -7765,7 +7786,7 @@ int32_t doCheckForStream(SSqlObj* pSql, SSqlInfo* pInfo) {
}
// set the created table[stream] name
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
pName
,
pSql
);
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
pName
,
pSql
,
dbIncluded1
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
...
...
@@ -8156,14 +8177,18 @@ static int32_t getTableNameFromSqlNode(SSqlNode* pSqlNode, SArray* tableNameList
if
(
t
->
type
==
TK_INTEGER
||
t
->
type
==
TK_FLOAT
)
{
return
invalidOperationMsg
(
msgBuf
,
msg1
);
}
tscDequoteAndTrimToken
(
t
);
if
(
tscValidateName
(
t
,
true
)
!=
TSDB_CODE_SUCCESS
)
{
bool
dbIncluded
=
false
;
char
buf
[
TSDB_TABLE_FNAME_LEN
];
SStrToken
sTblToken
;
sTblToken
.
z
=
buf
;
if
(
validateTableName
(
t
->
z
,
t
->
n
,
&
sTblToken
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
msgBuf
,
msg1
);
}
SName
name
=
{
0
};
int32_t
code
=
tscSetTableFullName
(
&
name
,
t
,
pSql
);
int32_t
code
=
tscSetTableFullName
(
&
name
,
&
sTblToken
,
pSql
,
dbIncluded
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
...
...
@@ -8418,12 +8443,14 @@ static int32_t doLoadAllTableMeta(SSqlObj* pSql, SQueryInfo* pQueryInfo, SSqlNod
}
tscDequoteAndTrimToken
(
oriName
);
if
(
tscValidateName
(
oriName
,
true
)
!=
TSDB_CODE_SUCCESS
)
{
bool
dbIncluded
=
false
;
if
(
tscValidateName
(
oriName
,
true
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
}
STableMetaInfo
*
pTableMetaInfo
=
tscGetMetaInfo
(
pQueryInfo
,
i
);
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
oriName
,
pSql
);
code
=
tscSetTableFullName
(
&
pTableMetaInfo
->
name
,
oriName
,
pSql
,
dbIncluded
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
...
...
@@ -8435,7 +8462,7 @@ static int32_t doLoadAllTableMeta(SSqlObj* pSql, SQueryInfo* pQueryInfo, SSqlNod
}
tscDequoteAndTrimToken
(
aliasName
);
if
(
tscValidateName
(
aliasName
,
false
)
!=
TSDB_CODE_SUCCESS
||
aliasName
->
n
>=
TSDB_TABLE_NAME_LEN
)
{
if
(
tscValidateName
(
aliasName
,
false
,
NULL
)
!=
TSDB_CODE_SUCCESS
||
aliasName
->
n
>=
TSDB_TABLE_NAME_LEN
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg3
);
}
...
...
src/client/src/tscServer.c
浏览文件 @
ebc1fd6c
...
...
@@ -2869,7 +2869,7 @@ int32_t getMultiTableMetaFromMnode(SSqlObj *pSql, SArray* pNameList, SArray* pVg
for
(
int32_t
i
=
0
;
i
<
numOfTable
;
++
i
)
{
char
*
name
=
taosArrayGetP
(
pNameList
,
i
);
if
(
i
<
numOfTable
-
1
||
numOfVgroupList
>
0
||
numOfUdf
>
0
)
{
len
=
sprintf
(
start
,
"%s
,
"
,
name
);
len
=
sprintf
(
start
,
"%s
·
"
,
name
);
}
else
{
len
=
sprintf
(
start
,
"%s"
,
name
);
}
...
...
@@ -2880,7 +2880,7 @@ int32_t getMultiTableMetaFromMnode(SSqlObj *pSql, SArray* pNameList, SArray* pVg
for
(
int32_t
i
=
0
;
i
<
numOfVgroupList
;
++
i
)
{
char
*
name
=
taosArrayGetP
(
pVgroupNameList
,
i
);
if
(
i
<
numOfVgroupList
-
1
||
numOfUdf
>
0
)
{
len
=
sprintf
(
start
,
"%s
,
"
,
name
);
len
=
sprintf
(
start
,
"%s
·
"
,
name
);
}
else
{
len
=
sprintf
(
start
,
"%s"
,
name
);
}
...
...
@@ -2891,7 +2891,7 @@ int32_t getMultiTableMetaFromMnode(SSqlObj *pSql, SArray* pNameList, SArray* pVg
for
(
int32_t
i
=
0
;
i
<
numOfUdf
;
++
i
)
{
SUdfInfo
*
u
=
taosArrayGet
(
pUdfList
,
i
);
if
(
i
<
numOfUdf
-
1
)
{
len
=
sprintf
(
start
,
"%s
,
"
,
u
->
name
);
len
=
sprintf
(
start
,
"%s
·
"
,
u
->
name
);
}
else
{
len
=
sprintf
(
start
,
"%s"
,
u
->
name
);
}
...
...
src/client/src/tscUtil.c
浏览文件 @
ebc1fd6c
...
...
@@ -2730,13 +2730,13 @@ void tscColumnListDestroy(SArray* pColumnList) {
* 'first_part.second_part'
*
*/
static
int32_t
validateQuoteToken
(
SStrToken
*
pToken
)
{
static
int32_t
validateQuoteToken
(
SStrToken
*
pToken
,
bool
escapeEnabled
,
bool
*
dbIncluded
)
{
tscDequoteAndTrimToken
(
pToken
);
int32_t
k
=
tGetToken
(
pToken
->
z
,
&
pToken
->
type
);
if
(
pToken
->
type
==
TK_STRING
)
{
return
tscValidateName
(
pToken
);
return
tscValidateName
(
pToken
,
escapeEnabled
,
dbIncluded
);
}
if
(
k
!=
pToken
->
n
||
pToken
->
type
!=
TK_ID
)
{
...
...
@@ -2833,15 +2833,24 @@ void tscRmEscapeAndTrimToken(SStrToken* pToken) {
int32_t
tscValidateName
(
SStrToken
*
pToken
,
bool
escapeEnabled
)
{
int32_t
tscValidateName
(
SStrToken
*
pToken
,
bool
escapeEnabled
,
bool
*
dbIncluded
)
{
if
(
pToken
==
NULL
||
pToken
->
z
==
NULL
||
(
escapeEnabled
&&
pToken
->
type
!=
TK_STRING
&&
pToken
->
type
!=
TK_ID
&&
pToken
->
type
!=
TK_ESCAPE
)
||
((
!
escapeEnabled
)
&&
pToken
->
type
!=
TK_STRING
&&
pToken
->
type
!=
TK_ID
))
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
char
*
sep
=
strnchr
(
pToken
->
z
,
TS_PATH_DELIMITER
[
0
],
pToken
->
n
,
true
);
char
*
sep
=
NULL
;
if
(
escapeEnabled
)
{
sep
=
tableNameGetPosition
(
pToken
,
TS_PATH_DELIMITER
[
0
]);
}
else
{
sep
=
strnchr
(
pToken
->
z
,
TS_PATH_DELIMITER
[
0
],
pToken
->
n
,
true
);
}
if
(
sep
==
NULL
)
{
// single part
if
(
dbIncluded
)
*
dbIncluded
=
false
;
if
(
pToken
->
type
==
TK_STRING
)
{
tscDequoteAndTrimToken
(
pToken
);
...
...
@@ -2852,14 +2861,14 @@ int32_t tscValidateName(SStrToken* pToken, bool escapeEnabled) {
// single token, validate it
if
(
len
==
pToken
->
n
)
{
return
validateQuoteToken
(
pToken
);
return
validateQuoteToken
(
pToken
,
escapeEnabled
,
NULL
);
}
else
{
sep
=
strnchr
(
pToken
->
z
,
TS_PATH_DELIMITER
[
0
],
pToken
->
n
,
true
);
if
(
sep
==
NULL
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
return
tscValidateName
(
pToken
);
return
tscValidateName
(
pToken
,
escapeEnabled
,
NULL
);
}
}
else
if
(
escapeEnabled
&&
pToken
->
type
==
TK_ESCAPE
)
{
tscRmEscapeAndTrimToken
(
pToken
);
...
...
@@ -2872,6 +2881,9 @@ int32_t tscValidateName(SStrToken* pToken, bool escapeEnabled) {
}
else
{
// two part
int32_t
oldLen
=
pToken
->
n
;
char
*
pStr
=
pToken
->
z
;
bool
firstPartQuote
=
false
;
if
(
dbIncluded
)
*
dbIncluded
=
true
;
if
(
pToken
->
type
==
TK_SPACE
)
{
pToken
->
n
=
(
uint32_t
)
strtrim
(
pToken
->
z
);
...
...
@@ -2886,8 +2898,13 @@ int32_t tscValidateName(SStrToken* pToken, bool escapeEnabled) {
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
if
(
pToken
->
type
==
TK_STRING
&&
validateQuoteToken
(
pToken
)
!=
TSDB_CODE_SUCCESS
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
if
(
pToken
->
type
==
TK_STRING
)
{
if
(
validateQuoteToken
(
pToken
,
escapeEnabled
,
NULL
)
!=
TSDB_CODE_SUCCESS
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
else
{
tscStrToLower
(
pToken
->
z
,
pToken
->
n
);
firstPartQuote
=
true
;
}
}
int32_t
firstPartLen
=
pToken
->
n
;
...
...
@@ -2900,18 +2917,20 @@ int32_t tscValidateName(SStrToken* pToken, bool escapeEnabled) {
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
if
(
pToken
->
type
==
TK_STRING
&&
validateQuoteToken
(
pToken
)
!=
TSDB_CODE_SUCCESS
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
if
(
pToken
->
type
==
TK_STRING
)
{
if
(
validateQuoteToken
(
pToken
,
escapeEnabled
,
NULL
)
!=
TSDB_CODE_SUCCESS
)
{
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
else
{
tscStrToLower
(
pToken
->
z
,
pToken
->
n
);
}
}
if
(
escapeEnabled
&&
pToken
->
type
==
TK_ESCAPE
)
{
tscRmEscapeAndTrimToken
(
pToken
);
}
xxxxxxxtolower
// re-build the whole name string
if
(
pStr
[
firstPartLen
]
==
TS_PATH_DELIMITER
[
0
]
)
{
if
(
!
firstPartQuote
)
{
// first part do not have quote do nothing
}
else
{
pStr
[
firstPartLen
]
=
TS_PATH_DELIMITER
[
0
];
...
...
@@ -2921,8 +2940,6 @@ int32_t tscValidateName(SStrToken* pToken, bool escapeEnabled) {
}
pToken
->
n
+=
(
firstPartLen
+
sizeof
(
TS_PATH_DELIMITER
[
0
]));
pToken
->
z
=
pStr
;
tscStrToLower
(
pToken
->
z
,
pToken
->
n
);
}
return
TSDB_CODE_SUCCESS
;
...
...
@@ -5036,14 +5053,16 @@ static int32_t doAddTableName(char* nextStr, char** str, SArray* pNameArray, SSq
SStrToken
sToken
=
{.
n
=
len
,
.
type
=
TK_ID
,
.
z
=
tablename
};
tGetToken
(
tablename
,
&
sToken
.
type
);
bool
dbIncluded
=
false
;
// Check if the table name available or not
if
(
tscValidateName
(
&
sToken
,
true
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
tscValidateName
(
&
sToken
,
true
,
&
dbIncluded
)
!=
TSDB_CODE_SUCCESS
)
{
sprintf
(
pCmd
->
payload
,
"table name is invalid"
);
return
TSDB_CODE_TSC_INVALID_TABLE_ID_LENGTH
;
}
SName
name
=
{
0
};
if
((
code
=
tscSetTableFullName
(
&
name
,
&
sToken
,
pSql
))
!=
TSDB_CODE_SUCCESS
)
{
if
((
code
=
tscSetTableFullName
(
&
name
,
&
sToken
,
pSql
,
dbIncluded
))
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
...
...
src/common/inc/tname.h
浏览文件 @
ebc1fd6c
...
...
@@ -92,6 +92,8 @@ size_t tableIdPrefix(const char* name, char* prefix, int32_t len);
void
extractTableNameFromToken
(
SStrToken
*
pToken
,
SStrToken
*
pTable
);
char
*
tableNameGetPosition
(
SStrToken
*
pToken
,
char
target
);
SSchema
tGetUserSpecifiedColumnSchema
(
tVariant
*
pVal
,
SStrToken
*
exprStr
,
const
char
*
name
);
bool
tscValidateTableNameLength
(
size_t
len
);
...
...
src/common/src/tname.c
浏览文件 @
ebc1fd6c
...
...
@@ -151,6 +151,39 @@ int64_t taosGetIntervalStartTimestamp(int64_t startTime, int64_t slidingTime, in
#endif
char
*
tableNameGetPosition
(
SStrToken
*
pToken
,
char
target
)
{
bool
inEscape
=
false
;
bool
inQuota
=
false
;
char
quotaStr
=
0
;
for
(
uint32_t
i
=
0
;
i
<
pToken
->
n
;
++
i
)
{
if
(
*
(
pToken
->
z
+
i
)
==
target
&&
(
!
inEscape
)
&&
(
!
inQuota
))
{
return
pToken
->
z
+
i
;
}
if
(
*
(
pToken
->
z
+
i
)
==
TS_ESCAPE_CHAR
)
{
if
(
!
inQuota
)
{
inEscape
=
!
inEscape
;
}
}
if
(
*
(
pToken
->
z
+
i
)
==
'\''
||
*
(
pToken
->
z
+
i
)
==
'"'
)
{
if
(
!
inEscape
)
{
if
(
!
inQuota
)
{
quotaStr
=
*
(
pToken
->
z
+
i
);
inQuota
=
!
inQuota
;
}
else
if
(
quotaStr
==
*
(
pToken
->
z
+
i
))
{
inQuota
=
!
inQuota
;
}
}
}
}
return
NULL
;
}
/*
* tablePrefix.columnName
* extract table name and save it in pTable, with only column name in pToken
...
...
@@ -162,12 +195,17 @@ void extractTableNameFromToken(SStrToken* pToken, SStrToken* pTable) {
return
;
}
char
*
r
=
strnchr
(
pToken
->
z
,
sep
,
pToken
->
n
,
false
);
if
(
r
!=
NULL
)
{
// record the table name token
pTable
->
n
=
(
uint32_t
)(
r
-
pToken
->
z
);
pTable
->
z
=
pToken
->
z
;
char
*
r
=
tableNameGetPosition
(
pToken
,
sep
);
if
(
r
!=
NULL
)
{
// record the table name token
if
(
pToken
->
z
[
0
]
==
TS_ESCAPE_CHAR
&&
*
(
r
-
1
)
==
TS_ESCAPE_CHAR
)
{
pTable
->
n
=
(
uint32_t
)(
r
-
pToken
->
z
-
2
);
pTable
->
z
=
pToken
->
z
+
1
;
}
else
{
pTable
->
n
=
(
uint32_t
)(
r
-
pToken
->
z
);
pTable
->
z
=
pToken
->
z
;
}
r
+=
1
;
pToken
->
n
-=
(
uint32_t
)(
r
-
pToken
->
z
);
pToken
->
z
=
r
;
...
...
src/inc/taosdef.h
浏览文件 @
ebc1fd6c
...
...
@@ -98,6 +98,7 @@ extern const int32_t TYPE_BYTES[15];
#define TSDB_ERR -1
#define TS_PATH_DELIMITER "."
#define TS_ESCAPE_CHAR '`'
#define TSDB_TIME_PRECISION_MILLI 0
#define TSDB_TIME_PRECISION_MICRO 1
...
...
src/inc/ttokendef.h
浏览文件 @
ebc1fd6c
...
...
@@ -216,6 +216,7 @@
#define TK_SPACE 300
#define TK_COMMENT 301
#define TK_ILLEGAL 302
...
...
src/mnode/src/mnodeTable.c
浏览文件 @
ebc1fd6c
...
...
@@ -2973,7 +2973,7 @@ static int32_t mnodeProcessMultiTableMetaMsg(SMnodeMsg *pMsg) {
int32_t
num
=
0
;
int32_t
code
=
TSDB_CODE_SUCCESS
;
char
*
str
=
strndup
(
pInfo
->
tableNames
,
contLen
);
char
**
nameList
=
strsplit
(
str
,
"
,
"
,
&
num
);
char
**
nameList
=
strsplit
(
str
,
"
·
"
,
&
num
);
SArray
*
pList
=
taosArrayInit
(
4
,
POINTER_BYTES
);
SMultiTableMeta
*
pMultiMeta
=
NULL
;
...
...
src/query/inc/sql.y
浏览文件 @
ebc1fd6c
...
...
@@ -694,6 +694,8 @@ expr(A) ::= LP(X) expr(Y) RP(Z). {A = Y; A->exprToken.z = X.z; A->exprToke
expr(A) ::= ID(X). { A = tSqlExprCreateIdValue(&X, TK_ID);}
expr(A) ::= ID(X) DOT ID(Y). { X.n += (1+Y.n); A = tSqlExprCreateIdValue(&X, TK_ID);}
expr(A) ::= ID(X) DOT STAR(Y). { X.n += (1+Y.n); A = tSqlExprCreateIdValue(&X, TK_ALL);}
expr(A) ::= ESCAPE(X) DOT ID(Y). { X.n += (1+Y.n); A = tSqlExprCreateIdValue(&X, TK_ID);}
expr(A) ::= ESCAPE(X) DOT STAR(Y). { X.n += (1+Y.n); A = tSqlExprCreateIdValue(&X, TK_ALL);}
expr(A) ::= INTEGER(X). { A = tSqlExprCreateIdValue(&X, TK_INTEGER);}
expr(A) ::= MINUS(X) INTEGER(Y). { X.n += Y.n; X.type = TK_INTEGER; A = tSqlExprCreateIdValue(&X, TK_INTEGER);}
...
...
src/query/src/sql.c
浏览文件 @
ebc1fd6c
...
...
@@ -138,18 +138,18 @@ typedef union {
#define ParseCTX_FETCH
#define ParseCTX_STORE
#define YYFALLBACK 1
#define YYNSTATE 35
6
#define YYNRULE
298
#define YYNRULE_WITH_ACTION
298
#define YYNSTATE 35
8
#define YYNRULE
300
#define YYNRULE_WITH_ACTION
300
#define YYNTOKEN 198
#define YY_MAX_SHIFT 35
5
#define YY_MIN_SHIFTREDUCE 5
68
#define YY_MAX_SHIFTREDUCE 8
65
#define YY_ERROR_ACTION 8
66
#define YY_ACCEPT_ACTION 8
67
#define YY_NO_ACTION 8
68
#define YY_MIN_REDUCE 8
69
#define YY_MAX_REDUCE 11
66
#define YY_MAX_SHIFT 35
7
#define YY_MIN_SHIFTREDUCE 5
72
#define YY_MAX_SHIFTREDUCE 8
71
#define YY_ERROR_ACTION 8
72
#define YY_ACCEPT_ACTION 8
73
#define YY_NO_ACTION 8
74
#define YY_MIN_REDUCE 8
75
#define YY_MAX_REDUCE 11
74
/************* End control #defines *******************************************/
#define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))
...
...
@@ -216,88 +216,88 @@ typedef union {
** yy_default[] Default action for each state.
**
*********** Begin parsing tables **********************************************/
#define YY_ACTTAB_COUNT (
795
)
#define YY_ACTTAB_COUNT (
800
)
static
const
YYACTIONTYPE
yy_action
[]
=
{
/* 0 */
36
,
62
0
,
239
,
620
,
353
,
162
,
238
,
266
,
929
,
621
,
/* 10 */
8
08
,
621
,
811
,
75
,
76
,
353
,
79
,
80
,
104
,
929
,
/* 20 */
24
2
,
69
,
68
,
67
,
620
,
78
,
311
,
83
,
81
,
84
,
/* 30 */
82
,
24
3
,
621
,
660
,
353
,
74
,
73
,
217
,
929
,
72
,
/* 40 */
71
,
70
,
75
,
76
,
35
3
,
79
,
80
,
237
,
929
,
242
,
/* 50 */
69
,
68
,
67
,
195
,
78
,
31
1
,
83
,
81
,
84
,
82
,
/* 60 */
162
,
162
,
198
,
9
27
,
74
,
73
,
198
,
896
,
72
,
71
,
/* 70 */
70
,
75
,
76
,
11
43
,
79
,
80
,
196
,
1143
,
242
,
69
,
/* 80 */
68
,
67
,
10
89
,
78
,
311
,
83
,
81
,
84
,
82
,
97
,
/* 90 */
6
27
,
198
,
353
,
74
,
73
,
292
,
929
,
72
,
71
,
70
,
/* 100 */
62
0
,
1051
,
1143
,
75
,
77
,
228
,
79
,
80
,
621
,
1029
,
/* 110 */
24
2
,
69
,
68
,
67
,
802
,
78
,
311
,
83
,
81
,
84
,
/* 120 */
82
,
72
,
71
,
70
,
35
3
,
74
,
73
,
214
,
929
,
72
,
/* 130 */
71
,
70
,
8
15
,
191
,
190
,
189
,
285
,
1090
,
107
,
283
,
/* 140 */
188
,
151
,
150
,
149
,
148
,
12
,
5
69
,
570
,
571
,
572
,
/* 150 */
57
3
,
574
,
575
,
576
,
577
,
578
,
579
,
580
,
581
,
582
,
/* 160 */
156
,
76
,
223
,
79
,
80
,
35
4
,
222
,
242
,
69
,
68
,
/* 170 */
67
,
10
48
,
78
,
311
,
83
,
81
,
84
,
82
,
1012
,
1013
,
/* 180 */
51
,
10
16
,
74
,
73
,
54
,
341
,
72
,
71
,
70
,
79
,
/* 190 */
80
,
162
,
103
,
24
2
,
69
,
68
,
67
,
245
,
78
,
311
,
/* 200 */
83
,
81
,
84
,
82
,
35
2
,
351
,
154
,
353
,
74
,
73
,
/* 210 */
215
,
9
29
,
72
,
71
,
70
,
60
,
307
,
348
,
347
,
306
,
/* 220 */
30
5
,
304
,
346
,
303
,
302
,
301
,
345
,
300
,
344
,
343
,
/* 230 */
61
,
224
,
7
08
,
202
,
37
,
1026
,
991
,
979
,
980
,
981
,
/* 240 */
98
2
,
983
,
984
,
985
,
986
,
987
,
988
,
989
,
990
,
992
,
/* 250 */
99
3
,
201
,
353
,
241
,
817
,
909
,
929
,
806
,
209
,
809
,
/* 260 */
309
,
812
,
331
,
330
,
147
,
18
,
17
,
208
,
109
,
241
,
/* 270 */
8
17
,
316
,
103
,
806
,
246
,
809
,
244
,
812
,
319
,
318
,
/* 280 */
203
,
83
,
81
,
84
,
82
,
198
,
1042
,
220
,
221
,
74
,
/* 290 */
73
,
31
2
,
918
,
72
,
71
,
70
,
1142
,
240
,
60
,
185
,
/* 300 */
3
48
,
347
,
225
,
220
,
221
,
346
,
6
,
57
,
177
,
345
,
/* 310 */
61
,
34
4
,
343
,
176
,
118
,
123
,
114
,
122
,
353
,
7
,
/* 320 */
73
2
,
908
,
929
,
729
,
1042
,
730
,
353
,
731
,
250
,
99
,
/* 330 */
9
29
,
1023
,
263
,
296
,
96
,
620
,
85
,
16
,
15
,
138
,
/* 340 */
226
,
216
,
204
,
621
,
137
,
54
,
143
,
146
,
136
,
867
,
/* 350 */
355
,
1100
,
85
,
247
,
248
,
140
,
999
,
353
,
997
,
998
,
/* 360 */
900
,
929
,
353
,
1000
,
54
,
899
,
929
,
1001
,
171
,
1002
,
/* 370 */
100
3
,
353
,
818
,
813
,
891
,
929
,
54
,
74
,
73
,
814
,
/* 380 */
235
,
72
,
71
,
70
,
54
,
54
,
273
,
353
,
818
,
813
,
/* 390 */
890
,
929
,
232
,
1015
,
54
,
814
,
1026
,
271
,
270
,
54
,
/* 400 */
54
,
1042
,
54
,
748
,
256
,
252
,
313
,
249
,
54
,
326
,
/* 410 */
325
,
233
,
1137
,
260
,
259
,
1026
,
234
,
264
,
45
,
27
,
/* 420 */
10
29
,
251
,
627
,
320
,
111
,
236
,
14
,
1026
,
807
,
1029
,
/* 430 */
810
,
321
,
322
,
927
,
173
,
1026
,
1026
,
894
,
733
,
734
,
/* 440 */
54
,
323
,
22
,
21
,
155
,
1026
,
327
,
328
,
927
,
329
,
/* 450 */
1026
,
1026
,
930
,
1026
,
13
,
333
,
767
,
768
,
110
,
1026
,
/* 460 */
251
,
135
,
1017
,
251
,
932
,
10
,
784
,
349
,
960
,
745
,
/* 470 */
919
,
185
,
98
,
174
,
341
,
265
,
1027
,
185
,
804
,
309
,
/* 480 */
1
,
175
,
3
,
186
,
100
,
101
,
764
,
774
,
775
,
75
2
,
/* 490 */
55
,
1025
,
89
,
718
,
288
,
5
,
92
,
720
,
50
,
1014
,
/* 500 */
290
,
157
,
86
,
39
,
719
,
840
,
819
,
1136
,
55
,
55
,
/* 510 */
619
,
821
,
86
,
95
,
1135
,
112
,
805
,
145
,
144
,
86
,
/* 520 */
38
,
38
,
267
,
267
,
783
,
38
,
218
,
29
,
128
,
28
,
/* 530 */
127
,
31
,
291
,
30
,
90
,
737
,
93
,
738
,
735
,
219
,
/* 540 */
736
,
199
,
33
,
133
,
32
,
132
,
707
,
200
,
205
,
197
,
/* 550 */
816
,
206
,
35
,
207
,
34
,
211
,
212
,
213
,
210
,
194
,
/* 560 */
1
028
,
1162
,
1154
,
1099
,
230
,
1096
,
1095
,
231
,
332
,
64
,
/* 570 */
261
,
1050
,
1061
,
1058
,
1059
,
1063
,
161
,
1043
,
1082
,
268
,
/* 580 */
10
81
,
108
,
279
,
1024
,
889
,
172
,
1022
,
937
,
763
,
293
,
/* 590 */
2
72
,
297
,
227
,
274
,
282
,
280
,
163
,
294
,
295
,
94
,
/* 600 */
91
,
1040
,
286
,
276
,
164
,
298
,
299
,
62
,
66
,
165
,
/* 610 */
192
,
58
,
284
,
310
,
166
,
167
,
931
,
317
,
1161
,
168
,
/* 620 */
278
,
169
,
125
,
170
,
1160
,
275
,
1157
,
324
,
1153
,
65
,
/* 630 */
130
,
1152
,
1149
,
957
,
59
,
56
,
63
,
342
,
193
,
915
,
/* 640 */
139
,
913
,
141
,
142
,
911
,
910
,
253
,
907
,
906
,
905
,
/* 650 */
904
,
903
,
902
,
901
,
898
,
892
,
885
,
134
,
334
,
277
,
/* 660 */
1083
,
335
,
336
,
337
,
338
,
339
,
340
,
350
,
865
,
254
,
/* 670 */
25
5
,
864
,
257
,
258
,
863
,
267
,
846
,
845
,
23
,
936
,
/* 680 */
9
35
,
119
,
120
,
262
,
740
,
102
,
287
,
46
,
152
,
26
9
,
/* 690 */
153
,
180
,
958
,
19
,
20
,
178
,
184
,
179
,
181
,
18
2
,
/* 700 */
4
,
183
,
2
,
765
,
11
,
158
,
160
,
776
,
995
,
959
,
/* 710 */
159
,
229
,
770
,
105
,
47
,
772
,
106
,
281
,
49
,
24
,
/* 720 */
1005
,
25
,
26
,
48
,
40
,
41
,
113
,
289
,
115
,
13
,
/* 730 */
116
,
638
,
52
,
53
,
117
,
671
,
673
,
670
,
669
,
66
7
,
/* 740 */
6
66
,
665
,
662
,
624
,
308
,
8
,
9
,
121
,
822
,
820
,
/* 750 */
314
,
315
,
124
,
55
,
87
,
126
,
88
,
710
,
709
,
706
,
/* 760 */
654
,
129
,
131
,
652
,
644
,
650
,
646
,
648
,
642
,
640
,
/* 770 */
6
76
,
675
,
674
,
672
,
668
,
664
,
663
,
187
,
622
,
44
,
/* 780 */
586
,
869
,
868
,
868
,
868
,
868
,
868
,
868
,
868
,
868
,
/* 790 */
8
68
,
868
,
868
,
42
,
43
,
/* 0 */
36
,
62
4
,
239
,
624
,
355
,
162
,
238
,
267
,
935
,
625
,
/* 10 */
8
14
,
625
,
817
,
75
,
76
,
355
,
79
,
80
,
104
,
935
,
/* 20 */
24
3
,
69
,
68
,
67
,
624
,
78
,
312
,
83
,
81
,
84
,
/* 30 */
82
,
24
4
,
625
,
664
,
355
,
74
,
73
,
217
,
935
,
72
,
/* 40 */
71
,
70
,
75
,
76
,
35
5
,
79
,
80
,
237
,
935
,
243
,
/* 50 */
69
,
68
,
67
,
195
,
78
,
31
2
,
83
,
81
,
84
,
82
,
/* 60 */
162
,
162
,
198
,
9
33
,
74
,
73
,
198
,
902
,
72
,
71
,
/* 70 */
70
,
75
,
76
,
11
51
,
79
,
80
,
196
,
1151
,
243
,
69
,
/* 80 */
68
,
67
,
10
95
,
78
,
312
,
83
,
81
,
84
,
82
,
97
,
/* 90 */
6
31
,
198
,
355
,
74
,
73
,
293
,
935
,
72
,
71
,
70
,
/* 100 */
62
4
,
1057
,
1151
,
75
,
77
,
228
,
79
,
80
,
625
,
1035
,
/* 110 */
24
3
,
69
,
68
,
67
,
806
,
78
,
312
,
83
,
81
,
84
,
/* 120 */
82
,
72
,
71
,
70
,
35
5
,
74
,
73
,
214
,
935
,
72
,
/* 130 */
71
,
70
,
8
21
,
191
,
190
,
189
,
286
,
1096
,
107
,
284
,
/* 140 */
188
,
151
,
150
,
149
,
148
,
12
,
5
73
,
574
,
575
,
576
,
/* 150 */
57
7
,
578
,
579
,
580
,
581
,
582
,
583
,
584
,
585
,
586
,
/* 160 */
156
,
76
,
223
,
79
,
80
,
35
6
,
222
,
243
,
69
,
68
,
/* 170 */
67
,
10
54
,
78
,
312
,
83
,
81
,
84
,
82
,
1018
,
1019
,
/* 180 */
51
,
10
22
,
74
,
73
,
54
,
343
,
72
,
71
,
70
,
79
,
/* 190 */
80
,
162
,
103
,
24
3
,
69
,
68
,
67
,
246
,
78
,
312
,
/* 200 */
83
,
81
,
84
,
82
,
35
4
,
353
,
154
,
355
,
74
,
73
,
/* 210 */
215
,
9
35
,
72
,
71
,
70
,
60
,
308
,
350
,
349
,
307
,
/* 220 */
30
6
,
305
,
348
,
304
,
303
,
302
,
347
,
301
,
346
,
345
,
/* 230 */
61
,
224
,
7
12
,
1021
,
37
,
1032
,
997
,
985
,
986
,
987
,
/* 240 */
98
8
,
989
,
990
,
991
,
992
,
993
,
994
,
995
,
996
,
998
,
/* 250 */
99
9
,
201
,
355
,
242
,
823
,
915
,
935
,
812
,
209
,
815
,
/* 260 */
1034
,
818
,
333
,
332
,
147
,
18
,
17
,
208
,
109
,
242
,
/* 270 */
8
23
,
318
,
103
,
812
,
247
,
815
,
245
,
818
,
321
,
320
,
/* 280 */
54
,
83
,
81
,
84
,
82
,
198
,
1048
,
220
,
221
,
74
,
/* 290 */
73
,
31
3
,
310
,
72
,
71
,
70
,
1150
,
100
,
60
,
251
,
/* 300 */
3
50
,
349
,
225
,
220
,
221
,
348
,
6
,
57
,
177
,
347
,
/* 310 */
61
,
34
6
,
345
,
176
,
118
,
123
,
114
,
122
,
355
,
310
,
/* 320 */
73
6
,
914
,
935
,
733
,
234
,
734
,
355
,
735
,
1035
,
99
,
/* 330 */
9
35
,
1031
,
264
,
297
,
96
,
268
,
85
,
16
,
15
,
138
,
/* 340 */
314
,
216
,
873
,
357
,
137
,
171
,
143
,
146
,
136
,
813
,
/* 350 */
624
,
816
,
85
,
248
,
249
,
140
,
314
,
1005
,
625
,
1003
,
/* 360 */
1004
,
74
,
73
,
274
,
1006
,
72
,
71
,
70
,
1007
,
54
,
/* 370 */
100
8
,
1009
,
824
,
819
,
54
,
54
,
253
,
54
,
250
,
820
,
/* 380 */
328
,
327
,
355
,
54
,
54
,
906
,
935
,
355
,
824
,
819
,
/* 390 */
905
,
935
,
771
,
772
,
1048
,
820
,
355
,
272
,
271
,
897
,
/* 400 */
935
,
355
,
54
,
54
,
896
,
935
,
27
,
752
,
54
,
54
,
/* 410 */
265
,
111
,
22
,
21
,
155
,
236
,
232
,
1029
,
110
,
1035
,
/* 420 */
10
32
,
233
,
322
,
933
,
323
,
1032
,
1032
,
900
,
1032
,
14
,
/* 430 */
324
,
325
,
98
,
45
,
1032
,
1032
,
257
,
631
,
737
,
738
,
/* 440 */
933
,
13
,
351
,
966
,
936
,
261
,
260
,
10
,
1048
,
329
,
/* 450 */
330
,
924
,
788
,
1032
,
1032
,
331
,
335
,
252
,
185
,
1032
,
/* 460 */
1032
,
135
,
252
,
252
,
226
,
1023
,
235
,
1
,
175
,
749
,
/* 470 */
173
,
822
,
266
,
938
,
343
,
174
,
1033
,
925
,
3
,
186
,
/* 480 */
185
,
1020
,
101
,
768
,
185
,
778
,
779
,
55
,
89
,
9
2
,
/* 490 */
722
,
289
,
724
,
756
,
291
,
5
,
723
,
50
,
157
,
846
,
/* 500 */
86
,
39
,
825
,
810
,
808
,
55
,
55
,
86
,
315
,
112
,
/* 510 */
787
,
86
,
241
,
623
,
38
,
95
,
741
,
38
,
742
,
29
,
/* 520 */
268
,
28
,
202
,
128
,
31
,
127
,
30
,
203
,
38
,
93
,
/* 530 */
90
,
292
,
145
,
144
,
7
,
739
,
204
,
740
,
33
,
1145
,
/* 540 */
32
,
811
,
809
,
133
,
35
,
132
,
34
,
1144
,
711
,
1143
,
/* 550 */
218
,
219
,
199
,
200
,
205
,
197
,
206
,
207
,
211
,
212
,
/* 560 */
1
170
,
213
,
210
,
194
,
1162
,
1106
,
1105
,
230
,
64
,
1102
,
/* 570 */
1101
,
231
,
334
,
262
,
1088
,
1087
,
273
,
1056
,
1067
,
1064
,
/* 580 */
10
65
,
1049
,
269
,
1069
,
161
,
280
,
895
,
172
,
1030
,
767
,
/* 590 */
2
27
,
1028
,
943
,
294
,
295
,
108
,
94
,
91
,
287
,
296
,
/* 600 */
1046
,
163
,
299
,
300
,
62
,
164
,
66
,
275
,
192
,
277
,
/* 610 */
58
,
285
,
311
,
827
,
165
,
937
,
319
,
166
,
1169
,
125
,
/* 620 */
1168
,
1165
,
326
,
1161
,
130
,
1160
,
1157
,
963
,
283
,
59
,
/* 630 */
56
,
281
,
63
,
193
,
921
,
139
,
919
,
141
,
142
,
917
,
/* 640 */
916
,
254
,
913
,
912
,
911
,
910
,
909
,
908
,
907
,
904
,
/* 650 */
279
,
898
,
276
,
891
,
298
,
65
,
278
,
1089
,
344
,
134
,
/* 660 */
337
,
336
,
338
,
339
,
341
,
340
,
342
,
352
,
871
,
255
,
/* 670 */
25
6
,
870
,
258
,
259
,
869
,
268
,
852
,
851
,
23
,
942
,
/* 680 */
9
41
,
119
,
120
,
263
,
744
,
102
,
152
,
288
,
153
,
1
9
,
/* 690 */
20
,
179
,
964
,
180
,
183
,
178
,
182
,
181
,
184
,
2
,
/* 700 */
4
,
46
,
270
,
11
,
965
,
769
,
158
,
159
,
1001
,
780
,
/* 710 */
774
,
160
,
105
,
229
,
776
,
106
,
49
,
169
,
167
,
168
,
/* 720 */
170
,
1011
,
282
,
24
,
25
,
26
,
47
,
48
,
40
,
41
,
/* 730 */
290
,
113
,
13
,
52
,
116
,
115
,
642
,
53
,
117
,
67
7
,
/* 740 */
6
75
,
674
,
673
,
671
,
670
,
669
,
666
,
628
,
309
,
826
,
/* 750 */
121
,
8
,
240
,
828
,
316
,
9
,
317
,
55
,
87
,
124
,
/* 760 */
126
,
88
,
714
,
713
,
129
,
131
,
710
,
658
,
656
,
648
,
/* 770 */
6
54
,
650
,
652
,
646
,
644
,
680
,
679
,
678
,
676
,
672
,
/* 780 */
668
,
667
,
187
,
626
,
44
,
590
,
875
,
874
,
874
,
874
,
/* 790 */
8
74
,
874
,
874
,
874
,
874
,
874
,
874
,
874
,
42
,
43
,
};
static
const
YYCODETYPE
yy_lookahead
[]
=
{
/* 0 */
269
,
1
,
209
,
1
,
200
,
200
,
209
,
203
,
204
,
9
,
...
...
@@ -323,63 +323,63 @@ static const YYCODETYPE yy_lookahead[] = {
/* 200 */
27
,
28
,
29
,
30
,
67
,
68
,
69
,
200
,
35
,
36
,
/* 210 */
203
,
204
,
39
,
40
,
41
,
101
,
102
,
103
,
104
,
105
,
/* 220 */
106
,
107
,
108
,
109
,
110
,
111
,
112
,
113
,
114
,
115
,
/* 230 */
122
,
247
,
5
,
269
,
46
,
251
,
226
,
227
,
228
,
229
,
/* 230 */
122
,
247
,
5
,
0
,
46
,
251
,
226
,
227
,
228
,
229
,
/* 240 */
230
,
231
,
232
,
233
,
234
,
235
,
236
,
237
,
238
,
239
,
/* 250 */
240
,
63
,
200
,
1
,
2
,
203
,
204
,
5
,
70
,
7
,
/* 260 */
86
,
9
,
35
,
36
,
76
,
77
,
78
,
79
,
277
,
1
,
/* 260 */
252
,
9
,
35
,
36
,
76
,
77
,
78
,
79
,
277
,
1
,
/* 270 */
2
,
83
,
84
,
5
,
147
,
7
,
149
,
9
,
151
,
152
,
/* 280 */
2
69
,
27
,
28
,
29
,
30
,
269
,
250
,
35
,
36
,
35
,
/* 290 */
36
,
39
,
208
,
39
,
40
,
41
,
280
,
62
,
101
,
215
,
/* 280 */
2
00
,
27
,
28
,
29
,
30
,
269
,
250
,
35
,
36
,
35
,
/* 290 */
36
,
39
,
86
,
39
,
40
,
41
,
280
,
85
,
101
,
70
,
/* 300 */
103
,
104
,
266
,
35
,
36
,
108
,
64
,
65
,
66
,
112
,
/* 310 */
122
,
114
,
115
,
71
,
72
,
73
,
74
,
75
,
200
,
8
4
,
/* 320 */
2
,
203
,
204
,
5
,
2
50
,
7
,
200
,
9
,
70
,
203
,
/* 330 */
204
,
2
00
,
144
,
91
,
146
,
1
,
84
,
64
,
65
,
66
,
/* 340 */
266
,
153
,
269
,
9
,
71
,
200
,
73
,
74
,
75
,
198
,
/* 350 */
199
,
242
,
84
,
35
,
36
,
82
,
226
,
200
,
228
,
229
,
/* 360 */
2
03
,
204
,
200
,
233
,
200
,
203
,
204
,
237
,
256
,
239
,
/* 370 */
2
40
,
200
,
120
,
121
,
203
,
204
,
200
,
35
,
36
,
127
,
/* 380 */
249
,
39
,
40
,
41
,
200
,
200
,
27
4
,
200
,
120
,
121
,
/* 390 */
203
,
204
,
247
,
0
,
200
,
127
,
251
,
271
,
272
,
200
,
/* 400 */
20
0
,
250
,
200
,
39
,
145
,
147
,
15
,
149
,
200
,
151
,
/* 410 */
152
,
247
,
269
,
154
,
155
,
251
,
248
,
266
,
84
,
84
,
/* 420 */
25
2
,
200
,
88
,
247
,
89
,
248
,
210
,
251
,
5
,
252
,
/* 430 */
7
,
247
,
247
,
200
,
213
,
251
,
251
,
204
,
120
,
121
,
/* 440 */
200
,
247
,
64
,
65
,
66
,
251
,
247
,
247
,
20
0
,
247
,
/* 450 */
2
51
,
251
,
204
,
251
,
119
,
247
,
128
,
129
,
253
,
251
,
/* 460 */
2
00
,
80
,
246
,
200
,
208
,
210
,
78
,
224
,
225
,
100
,
/* 470 */
2
08
,
215
,
267
,
213
,
93
,
85
,
213
,
215
,
1
,
86
,
/* 480 */
21
1
,
212
,
206
,
207
,
85
,
85
,
85
,
85
,
85
,
125
,
/* 490 */
100
,
251
,
100
,
85
,
85
,
126
,
100
,
85
,
84
,
244
,
/* 500 */
85
,
100
,
100
,
100
,
85
,
85
,
85
,
269
,
100
,
100
,
/* 510 */
85
,
120
,
100
,
84
,
269
,
100
,
39
,
80
,
81
,
100
,
/* 520 */
1
00
,
100
,
123
,
123
,
136
,
100
,
269
,
148
,
148
,
15
0
,
/* 530 */
1
50
,
148
,
118
,
150
,
142
,
5
,
140
,
7
,
5
,
269
,
/* 540 */
7
,
269
,
148
,
148
,
150
,
150
,
117
,
269
,
269
,
269
,
/* 550 */
127
,
269
,
148
,
269
,
150
,
269
,
269
,
269
,
269
,
269
,
/* 560 */
252
,
2
52
,
252
,
242
,
242
,
242
,
242
,
242
,
242
,
268
,
/* 570 */
2
00
,
200
,
200
,
200
,
200
,
200
,
200
,
250
,
278
,
25
0
,
/* 580 */
2
78
,
62
,
200
,
250
,
200
,
254
,
200
,
200
,
127
,
200
,
/* 590 */
273
,
92
,
273
,
273
,
132
,
131
,
264
,
200
,
200
,
139
,
/* 600 */
141
,
265
,
134
,
273
,
263
,
200
,
200
,
200
,
138
,
262
,
/* 610 */
200
,
200
,
137
,
200
,
261
,
260
,
200
,
200
,
200
,
259
,
/* 620 */
130
,
258
,
200
,
257
,
200
,
133
,
200
,
200
,
200
,
143
,
/* 630 */
200
,
200
,
200
,
200
,
200
,
200
,
200
,
116
,
200
,
200
,
/* 310 */
122
,
114
,
115
,
71
,
72
,
73
,
74
,
75
,
200
,
8
6
,
/* 320 */
2
,
203
,
204
,
5
,
2
48
,
7
,
200
,
9
,
252
,
203
,
/* 330 */
204
,
2
51
,
144
,
91
,
146
,
123
,
84
,
64
,
65
,
66
,
/* 340 */
88
,
153
,
198
,
199
,
71
,
256
,
73
,
74
,
75
,
5
,
/* 350 */
1
,
7
,
84
,
35
,
36
,
82
,
88
,
226
,
9
,
228
,
/* 360 */
2
29
,
35
,
36
,
274
,
233
,
39
,
40
,
41
,
237
,
200
,
/* 370 */
2
39
,
240
,
120
,
121
,
200
,
200
,
147
,
200
,
149
,
127
,
/* 380 */
151
,
152
,
200
,
200
,
200
,
203
,
20
4
,
200
,
120
,
121
,
/* 390 */
203
,
204
,
128
,
129
,
250
,
127
,
200
,
271
,
272
,
203
,
/* 400 */
20
4
,
200
,
200
,
200
,
203
,
204
,
84
,
39
,
200
,
200
,
/* 410 */
266
,
89
,
64
,
65
,
66
,
248
,
247
,
200
,
253
,
252
,
/* 420 */
25
1
,
247
,
247
,
200
,
247
,
251
,
251
,
204
,
251
,
210
,
/* 430 */
247
,
247
,
267
,
84
,
251
,
251
,
145
,
88
,
120
,
121
,
/* 440 */
200
,
119
,
224
,
225
,
204
,
154
,
155
,
210
,
25
0
,
247
,
/* 450 */
2
47
,
208
,
78
,
251
,
251
,
247
,
247
,
200
,
215
,
251
,
/* 460 */
2
51
,
80
,
200
,
200
,
266
,
246
,
249
,
211
,
212
,
100
,
/* 470 */
2
13
,
127
,
85
,
208
,
93
,
213
,
213
,
208
,
206
,
207
,
/* 480 */
21
5
,
244
,
85
,
85
,
215
,
85
,
85
,
100
,
100
,
100
,
/* 490 */
85
,
85
,
85
,
125
,
85
,
126
,
85
,
84
,
100
,
85
,
/* 500 */
100
,
100
,
85
,
1
,
1
,
100
,
100
,
100
,
15
,
100
,
/* 510 */
136
,
100
,
62
,
85
,
100
,
84
,
5
,
100
,
7
,
148
,
/* 520 */
1
23
,
150
,
269
,
148
,
148
,
150
,
150
,
269
,
100
,
14
0
,
/* 530 */
1
42
,
118
,
80
,
81
,
84
,
5
,
269
,
7
,
148
,
269
,
/* 540 */
150
,
39
,
39
,
148
,
148
,
150
,
150
,
269
,
117
,
269
,
/* 550 */
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
269
,
/* 560 */
252
,
2
69
,
269
,
269
,
252
,
242
,
242
,
242
,
268
,
242
,
/* 570 */
2
42
,
242
,
242
,
200
,
278
,
278
,
273
,
200
,
200
,
20
0
,
/* 580 */
2
00
,
250
,
250
,
200
,
200
,
200
,
200
,
254
,
250
,
127
,
/* 590 */
273
,
200
,
200
,
200
,
200
,
62
,
139
,
141
,
134
,
200
,
/* 600 */
265
,
264
,
200
,
200
,
200
,
263
,
138
,
273
,
200
,
273
,
/* 610 */
200
,
137
,
200
,
120
,
262
,
200
,
200
,
261
,
200
,
200
,
/* 620 */
200
,
200
,
200
,
200
,
200
,
200
,
200
,
200
,
132
,
200
,
/* 630 */
200
,
131
,
200
,
200
,
200
,
200
,
200
,
200
,
200
,
200
,
/* 640 */
200
,
200
,
200
,
200
,
200
,
200
,
200
,
200
,
200
,
200
,
/* 650 */
200
,
200
,
200
,
200
,
200
,
200
,
200
,
99
,
98
,
202
,
/* 660 */
202
,
53
,
95
,
97
,
57
,
96
,
94
,
86
,
5
,
156
,
/* 650 */
130
,
200
,
133
,
200
,
92
,
143
,
202
,
202
,
116
,
99
,
/* 660 */
53
,
98
,
95
,
97
,
96
,
57
,
94
,
86
,
5
,
156
,
/* 670 */
5
,
5
,
156
,
5
,
5
,
123
,
103
,
102
,
84
,
214
,
/* 680 */
214
,
210
,
210
,
145
,
85
,
124
,
118
,
84
,
205
,
100
,
/* 690 */
205
,
2
17
,
223
,
205
,
205
,
222
,
216
,
221
,
220
,
218
,
/* 700 */
206
,
219
,
211
,
85
,
100
,
84
,
100
,
85
,
241
,
22
5
,
/* 710 */
8
4
,
1
,
85
,
84
,
100
,
85
,
84
,
84
,
255
,
135
,
/* 720 */
2
41
,
135
,
84
,
100
,
84
,
84
,
80
,
118
,
89
,
119
,
/* 730 */
72
,
5
,
90
,
90
,
89
,
5
,
9
,
5
,
5
,
5
,
/* 740 */
5
,
5
,
5
,
87
,
15
,
84
,
84
,
80
,
120
,
85
,
/* 750 */
26
,
61
,
150
,
100
,
16
,
150
,
16
,
5
,
5
,
85
,
/* 760 */
5
,
150
,
150
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
/* 770 */
5
,
5
,
5
,
5
,
5
,
5
,
5
,
100
,
87
,
62
,
/* 780 */
62
,
0
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
/* 790 */
281
,
281
,
281
,
21
,
21
,
281
,
281
,
281
,
281
,
28
1
,
/* 680 */
214
,
210
,
210
,
145
,
85
,
124
,
205
,
118
,
205
,
205
,
/* 690 */
205
,
2
21
,
223
,
217
,
219
,
222
,
218
,
220
,
216
,
211
,
/* 700 */
206
,
84
,
100
,
100
,
225
,
85
,
84
,
84
,
241
,
8
5
,
/* 710 */
8
5
,
100
,
84
,
1
,
85
,
84
,
255
,
258
,
260
,
259
,
/* 720 */
2
57
,
241
,
84
,
135
,
135
,
84
,
100
,
100
,
84
,
84
,
/* 730 */
118
,
80
,
119
,
90
,
72
,
89
,
5
,
90
,
89
,
9
,
/* 740 */
5
,
5
,
5
,
5
,
5
,
5
,
5
,
87
,
15
,
85
,
/* 750 */
80
,
84
,
62
,
120
,
26
,
84
,
61
,
100
,
16
,
150
,
/* 760 */
150
,
16
,
5
,
5
,
150
,
150
,
8
5
,
5
,
5
,
5
,
/* 770 */
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
5
,
/* 780 */
5
,
5
,
100
,
87
,
62
,
62
,
0
,
281
,
281
,
281
,
/* 790 */
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
21
,
2
1
,
/* 800 */
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
/* 810 */
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
/* 820 */
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
...
...
@@ -399,111 +399,111 @@ static const YYCODETYPE yy_lookahead[] = {
/* 960 */
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
/* 970 */
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
/* 980 */
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
/* 990 */
281
,
281
,
281
,
/* 990 */
281
,
281
,
281
,
281
,
281
,
281
,
281
,
281
,
};
#define YY_SHIFT_COUNT (35
5
)
#define YY_SHIFT_COUNT (35
7
)
#define YY_SHIFT_MIN (0)
#define YY_SHIFT_MAX (78
1
)
#define YY_SHIFT_MAX (78
6
)
static
const
unsigned
short
int
yy_shift_ofst
[]
=
{
/* 0 */
188
,
114
,
114
,
197
,
197
,
3
34
,
174
,
252
,
268
,
268
,
/* 0 */
188
,
114
,
114
,
197
,
197
,
3
49
,
206
,
252
,
268
,
268
,
/* 10 */
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
/* 20 */
2
,
2
,
2
,
23
,
23
,
23
,
23
,
23
,
23
,
23
,
/* 30 */
23
,
23
,
23
,
23
,
23
,
23
,
0
,
99
,
268
,
318
,
/* 40 */
318
,
318
,
2
,
2
,
2
,
108
,
108
,
23
,
23
,
328
,
/* 50 */
23
,
393
,
23
,
23
,
23
,
23
,
381
,
174
,
92
,
92
,
/* 60 */
28
,
795
,
795
,
795
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 40 */
318
,
318
,
2
,
2
,
2
,
108
,
108
,
23
,
23
,
264
,
/* 50 */
23
,
233
,
23
,
23
,
23
,
23
,
381
,
206
,
92
,
92
,
/* 60 */
28
,
800
,
800
,
800
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 70 */
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
268
,
/* 80 */
268
,
268
,
268
,
268
,
268
,
268
,
318
,
318
,
318
,
227
,
/* 90 */
227
,
227
,
227
,
227
,
227
,
227
,
23
,
23
,
36
4
,
23
,
/* 100 */
23
,
23
,
108
,
108
,
23
,
23
,
23
,
3
88
,
23
,
388
,
/* 90 */
227
,
227
,
227
,
227
,
227
,
227
,
23
,
23
,
36
8
,
23
,
/* 100 */
23
,
23
,
108
,
108
,
23
,
23
,
23
,
3
74
,
23
,
374
,
/* 110 */
369
,
108
,
23
,
23
,
23
,
23
,
23
,
23
,
23
,
23
,
/* 120 */
23
,
23
,
23
,
23
,
23
,
23
,
23
,
23
,
23
,
23
,
/* 130 */
23
,
23
,
23
,
23
,
23
,
23
,
23
,
23
,
23
,
23
,
/* 140 */
23
,
23
,
23
,
23
,
23
,
23
,
23
,
23
,
23
,
23
,
/* 150 */
23
,
23
,
23
,
23
,
23
,
23
,
23
,
46
1
,
461
,
461
,
/* 160 */
46
1
,
519
,
519
,
460
,
459
,
468
,
470
,
475
,
462
,
464
,
/* 170 */
490
,
492
,
486
,
499
,
499
,
521
,
174
,
174
,
558
,
560
,
/* 180 */
60
8
,
567
,
566
,
607
,
569
,
572
,
521
,
28
,
581
,
581
,
/* 190 */
581
,
581
,
795
,
795
,
29
,
58
,
58
,
90
,
58
,
147
,
/* 150 */
23
,
23
,
23
,
23
,
23
,
23
,
23
,
46
2
,
462
,
462
,
/* 160 */
46
2
,
533
,
533
,
457
,
456
,
464
,
468
,
474
,
496
,
500
,
/* 170 */
520
,
519
,
512
,
562
,
562
,
542
,
206
,
206
,
560
,
563
,
/* 180 */
60
7
,
567
,
566
,
608
,
568
,
572
,
542
,
28
,
581
,
581
,
/* 190 */
581
,
581
,
800
,
800
,
29
,
58
,
58
,
90
,
58
,
147
,
/* 200 */
173
,
242
,
254
,
254
,
254
,
254
,
254
,
254
,
273
,
69
,
/* 210 */
3
42
,
342
,
342
,
342
,
127
,
258
,
259
,
335
,
82
,
82
,
/* 220 */
5
,
423
,
137
,
378
,
390
,
399
,
400
,
401
,
402
,
403
,
/* 230 */
3
92
,
396
,
408
,
409
,
412
,
415
,
419
,
414
,
420
,
421
,
/* 240 */
477
,
235
,
391
,
425
,
379
,
380
,
383
,
530
,
533
,
394
,
/* 250 */
39
5
,
429
,
404
,
437
,
663
,
513
,
665
,
666
,
516
,
668
,
/* 260 */
66
9
,
573
,
575
,
538
,
552
,
568
,
594
,
561
,
599
,
603
,
/* 270 */
589
,
604
,
618
,
621
,
622
,
626
,
627
,
606
,
629
,
630
,
/* 280 */
6
32
,
710
,
633
,
614
,
584
,
623
,
586
,
638
,
568
,
640
,
/* 290 */
6
09
,
641
,
610
,
646
,
642
,
639
,
658
,
726
,
643
,
645
,
/* 300 */
727
,
730
,
732
,
733
,
734
,
735
,
736
,
737
,
656
,
729
,
/* 310 */
667
,
661
,
664
,
628
,
662
,
724
,
690
,
738
,
602
,
605
,
/* 320 */
6
53
,
653
,
653
,
653
,
740
,
611
,
612
,
653
,
653
,
653
,
/* 330 */
752
,
753
,
674
,
653
,
755
,
758
,
759
,
760
,
761
,
762
,
/* 340 */
76
3
,
764
,
765
,
766
,
767
,
768
,
769
,
770
,
771
,
677
,
/* 350 */
691
,
772
,
773
,
717
,
718
,
781
,
/* 210 */
3
26
,
326
,
326
,
326
,
127
,
229
,
291
,
322
,
82
,
82
,
/* 220 */
5
,
344
,
137
,
348
,
387
,
212
,
397
,
398
,
400
,
401
,
/* 230 */
3
88
,
389
,
405
,
406
,
407
,
409
,
411
,
413
,
414
,
417
,
/* 240 */
502
,
503
,
450
,
493
,
428
,
371
,
375
,
376
,
511
,
530
,
/* 250 */
39
0
,
395
,
431
,
396
,
452
,
663
,
513
,
665
,
666
,
516
,
/* 260 */
66
8
,
669
,
573
,
575
,
538
,
552
,
569
,
594
,
561
,
599
,
/* 270 */
617
,
602
,
603
,
620
,
622
,
624
,
623
,
625
,
611
,
628
,
/* 280 */
6
29
,
631
,
712
,
638
,
626
,
588
,
627
,
589
,
641
,
569
,
/* 290 */
6
44
,
612
,
645
,
613
,
651
,
643
,
646
,
662
,
731
,
647
,
/* 300 */
649
,
730
,
735
,
736
,
737
,
738
,
739
,
740
,
741
,
660
,
/* 310 */
733
,
670
,
667
,
664
,
690
,
633
,
671
,
728
,
695
,
742
,
/* 320 */
6
09
,
610
,
657
,
657
,
657
,
657
,
745
,
614
,
615
,
657
,
/* 330 */
657
,
657
,
757
,
758
,
681
,
657
,
762
,
763
,
764
,
765
,
/* 340 */
76
6
,
767
,
768
,
769
,
770
,
771
,
772
,
773
,
774
,
775
,
/* 350 */
776
,
682
,
696
,
777
,
778
,
722
,
723
,
786
,
};
#define YY_REDUCE_COUNT (193)
#define YY_REDUCE_MIN (-269)
#define YY_REDUCE_MAX (494)
static
const
short
yy_reduce_ofst
[]
=
{
/* 0 */
1
51
,
10
,
10
,
130
,
130
,
126
,
-
65
,
-
207
,
-
203
,
-
178
,
/* 10 */
-
196
,
-
185
,
-
166
,
-
156
,
-
108
,
-
76
,
7
,
52
,
118
,
1
57
,
/* 20 */
1
62
,
171
,
187
,
-
16
,
-
140
,
-
139
,
145
,
164
,
176
,
184
,
/* 30 */
18
5
,
194
,
199
,
200
,
202
,
208
,
-
99
,
-
35
,
16
,
-
143
,
/* 40 */
168
,
177
,
-
137
,
233
,
248
,
36
,
74
,
-
195
,
-
9
,
112
,
/* 50 */
131
,
216
,
221
,
260
,
263
,
240
,
84
,
255
,
256
,
262
,
/* 60 */
2
43
,
205
,
269
,
276
,
-
269
,
-
216
,
-
193
,
-
36
,
11
,
73
,
/* 70 */
143
,
238
,
245
,
257
,
270
,
272
,
278
,
279
,
280
,
282
,
/* 80 */
28
4
,
286
,
287
,
288
,
289
,
290
,
308
,
309
,
310
,
109
,
/* 90 */
32
1
,
322
,
323
,
324
,
325
,
326
,
370
,
371
,
301
,
372
,
/* 100 */
37
3
,
374
,
327
,
329
,
375
,
376
,
382
,
300
,
384
,
302
,
/* 110 */
33
1
,
333
,
386
,
387
,
389
,
397
,
398
,
405
,
406
,
407
,
/* 120 */
4
10
,
411
,
413
,
416
,
417
,
418
,
422
,
424
,
426
,
427
,
/* 130 */
42
8
,
430
,
431
,
432
,
433
,
434
,
435
,
436
,
438
,
439
,
/* 140 */
4
40
,
441
,
442
,
443
,
444
,
445
,
446
,
447
,
448
,
449
,
/* 150 */
4
50
,
451
,
452
,
453
,
454
,
455
,
456
,
317
,
319
,
320
,
/* 160 */
33
0
,
457
,
458
,
336
,
332
,
341
,
347
,
353
,
355
,
3
60
,
/* 170 */
363
,
366
,
463
,
465
,
466
,
467
,
471
,
472
,
469
,
473
,
/* 180 */
47
6
,
474
,
478
,
481
,
482
,
480
,
479
,
484
,
483
,
485
,
/* 190 */
48
8
,
489
,
491
,
494
,
/* 0 */
1
44
,
10
,
10
,
131
,
131
,
126
,
-
65
,
-
207
,
-
203
,
-
178
,
/* 10 */
-
196
,
-
185
,
-
166
,
-
156
,
-
108
,
-
76
,
7
,
52
,
118
,
1
82
,
/* 20 */
1
87
,
196
,
201
,
-
16
,
-
140
,
-
139
,
169
,
174
,
175
,
177
,
/* 30 */
18
3
,
184
,
202
,
203
,
208
,
209
,
-
99
,
-
35
,
16
,
-
143
,
/* 40 */
76
,
167
,
-
137
,
223
,
240
,
36
,
198
,
-
195
,
-
9
,
89
,
/* 50 */
217
,
219
,
257
,
262
,
263
,
80
,
243
,
237
,
265
,
269
,
/* 60 */
2
18
,
165
,
256
,
272
,
-
269
,
-
216
,
-
193
,
253
,
258
,
267
,
/* 70 */
270
,
278
,
280
,
281
,
282
,
283
,
284
,
285
,
286
,
287
,
/* 80 */
28
8
,
289
,
290
,
292
,
293
,
294
,
8
,
308
,
312
,
323
,
/* 90 */
32
4
,
325
,
327
,
328
,
329
,
330
,
373
,
377
,
300
,
378
,
/* 100 */
37
9
,
380
,
331
,
332
,
383
,
384
,
385
,
296
,
386
,
297
,
/* 110 */
33
3
,
338
,
391
,
392
,
393
,
394
,
399
,
402
,
403
,
404
,
/* 120 */
4
08
,
410
,
412
,
415
,
416
,
418
,
419
,
420
,
421
,
422
,
/* 130 */
42
3
,
424
,
425
,
426
,
427
,
429
,
430
,
432
,
433
,
434
,
/* 140 */
4
35
,
436
,
437
,
438
,
439
,
440
,
441
,
442
,
443
,
444
,
/* 150 */
4
45
,
446
,
447
,
448
,
449
,
451
,
453
,
303
,
317
,
334
,
/* 160 */
33
6
,
454
,
455
,
335
,
337
,
342
,
352
,
356
,
458
,
4
60
,
/* 170 */
459
,
463
,
461
,
465
,
466
,
467
,
471
,
472
,
469
,
473
,
/* 180 */
47
0
,
476
,
477
,
478
,
475
,
482
,
480
,
479
,
481
,
483
,
/* 190 */
48
4
,
485
,
488
,
494
,
};
static
const
YYACTIONTYPE
yy_default
[]
=
{
/* 0 */
8
66
,
994
,
933
,
1004
,
916
,
866
,
926
,
1145
,
1145
,
1145
,
/* 10 */
8
66
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
/* 20 */
8
66
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
/* 30 */
8
66
,
866
,
866
,
866
,
866
,
866
,
1052
,
886
,
1145
,
866
,
/* 40 */
8
66
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
1067
,
/* 50 */
8
66
,
926
,
866
,
866
,
866
,
866
,
940
,
926
,
940
,
940
,
/* 60 */
8
66
,
1047
,
978
,
996
,
866
,
866
,
866
,
866
,
866
,
866
,
/* 70 */
8
66
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
/* 80 */
8
66
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
/* 90 */
8
66
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
1054
,
1060
,
/* 100 */
10
57
,
866
,
866
,
866
,
1062
,
866
,
866
,
1086
,
866
,
1086
,
/* 110 */
10
45
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
/* 120 */
8
66
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
/* 130 */
8
66
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
914
,
/* 140 */
8
66
,
912
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
/* 150 */
8
66
,
866
,
866
,
866
,
897
,
866
,
884
,
866
,
866
,
866
,
/* 160 */
8
66
,
888
,
888
,
1093
,
1097
,
1079
,
1091
,
1087
,
1074
,
1072
,
/* 170 */
107
0
,
1078
,
1101
,
938
,
938
,
934
,
926
,
926
,
956
,
954
,
/* 180 */
95
2
,
944
,
950
,
946
,
948
,
942
,
917
,
866
,
924
,
924
,
/* 190 */
9
24
,
924
,
978
,
996
,
866
,
1102
,
1092
,
866
,
1144
,
1132
,
/* 200 */
113
1
,
866
,
1140
,
1139
,
1138
,
1130
,
1129
,
1128
,
866
,
866
,
/* 210 */
11
24
,
1127
,
1126
,
1125
,
866
,
866
,
866
,
866
,
1134
,
1133
,
/* 220 */
8
66
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
/* 230 */
1
098
,
1094
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
/* 240 */
8
66
,
1104
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
/* 250 */
8
66
,
1006
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
/* 260 */
8
66
,
866
,
866
,
866
,
1044
,
866
,
866
,
866
,
866
,
866
,
/* 270 */
1056
,
1055
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
/* 280 */
8
66
,
866
,
866
,
1088
,
866
,
1080
,
866
,
866
,
1018
,
866
,
/* 290 */
8
66
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
/* 300 */
8
66
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
/* 310 */
8
66
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
/* 320 */
1163
,
1158
,
1159
,
1156
,
866
,
866
,
866
,
1155
,
1150
,
1151
,
/* 330 */
866
,
866
,
866
,
1148
,
866
,
866
,
866
,
866
,
866
,
866
,
/* 340 */
8
66
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
866
,
96
2
,
/* 350 */
8
66
,
895
,
893
,
927
,
866
,
866
,
/* 0 */
8
72
,
1000
,
939
,
1010
,
922
,
872
,
932
,
1153
,
1153
,
1153
,
/* 10 */
8
72
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
/* 20 */
8
72
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
/* 30 */
8
72
,
872
,
872
,
872
,
872
,
872
,
1058
,
892
,
1153
,
872
,
/* 40 */
8
72
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
1073
,
/* 50 */
8
72
,
932
,
872
,
872
,
872
,
872
,
946
,
932
,
946
,
946
,
/* 60 */
8
72
,
1053
,
984
,
1002
,
872
,
872
,
872
,
872
,
872
,
872
,
/* 70 */
8
72
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
/* 80 */
8
72
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
/* 90 */
8
72
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
1060
,
1066
,
/* 100 */
10
63
,
872
,
872
,
872
,
1068
,
872
,
872
,
1092
,
872
,
1092
,
/* 110 */
10
51
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
/* 120 */
8
72
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
/* 130 */
8
72
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
920
,
/* 140 */
8
72
,
918
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
/* 150 */
8
72
,
872
,
872
,
872
,
903
,
872
,
890
,
872
,
872
,
872
,
/* 160 */
8
72
,
894
,
894
,
1099
,
1103
,
1085
,
1097
,
1093
,
1080
,
1078
,
/* 170 */
107
6
,
1084
,
1107
,
944
,
944
,
940
,
932
,
932
,
962
,
960
,
/* 180 */
95
8
,
950
,
956
,
952
,
954
,
948
,
923
,
872
,
930
,
930
,
/* 190 */
9
30
,
930
,
984
,
1002
,
872
,
1108
,
1098
,
872
,
1152
,
1140
,
/* 200 */
113
9
,
872
,
1148
,
1147
,
1146
,
1138
,
1137
,
1136
,
872
,
872
,
/* 210 */
11
32
,
1135
,
1134
,
1133
,
872
,
872
,
872
,
872
,
1142
,
1141
,
/* 220 */
8
72
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
/* 230 */
1
104
,
1100
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
/* 240 */
8
72
,
872
,
1110
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
/* 250 */
8
72
,
872
,
1012
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
/* 260 */
8
72
,
872
,
872
,
872
,
872
,
1050
,
872
,
872
,
872
,
872
,
/* 270 */
872
,
1062
,
1061
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
/* 280 */
8
72
,
872
,
872
,
872
,
1094
,
872
,
1086
,
872
,
872
,
1024
,
/* 290 */
8
72
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
/* 300 */
8
72
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
/* 310 */
8
72
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
/* 320 */
872
,
872
,
1171
,
1166
,
1167
,
1164
,
872
,
872
,
872
,
1163
,
/* 330 */
1158
,
1159
,
872
,
872
,
872
,
1156
,
872
,
872
,
872
,
872
,
/* 340 */
8
72
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
872
,
87
2
,
/* 350 */
8
72
,
968
,
872
,
901
,
899
,
933
,
872
,
872
,
};
/********** End of lemon-generated parsing tables *****************************/
...
...
@@ -1334,66 +1334,68 @@ static const char *const yyRuleName[] = {
/* 235 */
"expr ::= ID"
,
/* 236 */
"expr ::= ID DOT ID"
,
/* 237 */
"expr ::= ID DOT STAR"
,
/* 238 */
"expr ::= INTEGER"
,
/* 239 */
"expr ::= MINUS INTEGER"
,
/* 240 */
"expr ::= PLUS INTEGER"
,
/* 241 */
"expr ::= FLOAT"
,
/* 242 */
"expr ::= MINUS FLOAT"
,
/* 243 */
"expr ::= PLUS FLOAT"
,
/* 244 */
"expr ::= STRING"
,
/* 245 */
"expr ::= NOW"
,
/* 246 */
"expr ::= VARIABLE"
,
/* 247 */
"expr ::= PLUS VARIABLE"
,
/* 248 */
"expr ::= MINUS VARIABLE"
,
/* 249 */
"expr ::= BOOL"
,
/* 250 */
"expr ::= NULL"
,
/* 251 */
"expr ::= ID LP exprlist RP"
,
/* 252 */
"expr ::= ID LP STAR RP"
,
/* 253 */
"expr ::= expr IS NULL"
,
/* 254 */
"expr ::= expr IS NOT NULL"
,
/* 255 */
"expr ::= expr LT expr"
,
/* 256 */
"expr ::= expr GT expr"
,
/* 257 */
"expr ::= expr LE expr"
,
/* 258 */
"expr ::= expr GE expr"
,
/* 259 */
"expr ::= expr NE expr"
,
/* 260 */
"expr ::= expr EQ expr"
,
/* 261 */
"expr ::= expr BETWEEN expr AND expr"
,
/* 262 */
"expr ::= expr AND expr"
,
/* 263 */
"expr ::= expr OR expr"
,
/* 264 */
"expr ::= expr PLUS expr"
,
/* 265 */
"expr ::= expr MINUS expr"
,
/* 266 */
"expr ::= expr STAR expr"
,
/* 267 */
"expr ::= expr SLASH expr"
,
/* 268 */
"expr ::= expr REM expr"
,
/* 269 */
"expr ::= expr LIKE expr"
,
/* 270 */
"expr ::= expr MATCH expr"
,
/* 271 */
"expr ::= expr NMATCH expr"
,
/* 272 */
"expr ::= expr IN LP exprlist RP"
,
/* 273 */
"exprlist ::= exprlist COMMA expritem"
,
/* 274 */
"exprlist ::= expritem"
,
/* 275 */
"expritem ::= expr"
,
/* 276 */
"expritem ::="
,
/* 277 */
"cmd ::= RESET QUERY CACHE"
,
/* 278 */
"cmd ::= SYNCDB ids REPLICA"
,
/* 279 */
"cmd ::= ALTER TABLE ftblname ADD COLUMN columnlist"
,
/* 280 */
"cmd ::= ALTER TABLE ftblname DROP COLUMN ids"
,
/* 281 */
"cmd ::= ALTER TABLE ftblname MODIFY COLUMN columnlist"
,
/* 282 */
"cmd ::= ALTER TABLE ftblname ADD TAG columnlist"
,
/* 283 */
"cmd ::= ALTER TABLE ftblname DROP TAG ids"
,
/* 284 */
"cmd ::= ALTER TABLE ftblname CHANGE TAG ids ids"
,
/* 285 */
"cmd ::= ALTER TABLE ftblname SET TAG ids EQ tagitem"
,
/* 286 */
"cmd ::= ALTER TABLE ftblname MODIFY TAG columnlist"
,
/* 287 */
"cmd ::= ALTER STABLE ftblname ADD COLUMN columnlist"
,
/* 288 */
"cmd ::= ALTER STABLE ftblname DROP COLUMN ids"
,
/* 289 */
"cmd ::= ALTER STABLE ftblname MODIFY COLUMN columnlist"
,
/* 290 */
"cmd ::= ALTER STABLE ftblname ADD TAG columnlist"
,
/* 291 */
"cmd ::= ALTER STABLE ftblname DROP TAG ids"
,
/* 292 */
"cmd ::= ALTER STABLE ftblname CHANGE TAG ids ids"
,
/* 293 */
"cmd ::= ALTER STABLE ftblname SET TAG ids EQ tagitem"
,
/* 294 */
"cmd ::= ALTER STABLE ftblname MODIFY TAG columnlist"
,
/* 295 */
"cmd ::= KILL CONNECTION INTEGER"
,
/* 296 */
"cmd ::= KILL STREAM INTEGER COLON INTEGER"
,
/* 297 */
"cmd ::= KILL QUERY INTEGER COLON INTEGER"
,
/* 238 */
"expr ::= ESCAPE DOT ID"
,
/* 239 */
"expr ::= ESCAPE DOT STAR"
,
/* 240 */
"expr ::= INTEGER"
,
/* 241 */
"expr ::= MINUS INTEGER"
,
/* 242 */
"expr ::= PLUS INTEGER"
,
/* 243 */
"expr ::= FLOAT"
,
/* 244 */
"expr ::= MINUS FLOAT"
,
/* 245 */
"expr ::= PLUS FLOAT"
,
/* 246 */
"expr ::= STRING"
,
/* 247 */
"expr ::= NOW"
,
/* 248 */
"expr ::= VARIABLE"
,
/* 249 */
"expr ::= PLUS VARIABLE"
,
/* 250 */
"expr ::= MINUS VARIABLE"
,
/* 251 */
"expr ::= BOOL"
,
/* 252 */
"expr ::= NULL"
,
/* 253 */
"expr ::= ID LP exprlist RP"
,
/* 254 */
"expr ::= ID LP STAR RP"
,
/* 255 */
"expr ::= expr IS NULL"
,
/* 256 */
"expr ::= expr IS NOT NULL"
,
/* 257 */
"expr ::= expr LT expr"
,
/* 258 */
"expr ::= expr GT expr"
,
/* 259 */
"expr ::= expr LE expr"
,
/* 260 */
"expr ::= expr GE expr"
,
/* 261 */
"expr ::= expr NE expr"
,
/* 262 */
"expr ::= expr EQ expr"
,
/* 263 */
"expr ::= expr BETWEEN expr AND expr"
,
/* 264 */
"expr ::= expr AND expr"
,
/* 265 */
"expr ::= expr OR expr"
,
/* 266 */
"expr ::= expr PLUS expr"
,
/* 267 */
"expr ::= expr MINUS expr"
,
/* 268 */
"expr ::= expr STAR expr"
,
/* 269 */
"expr ::= expr SLASH expr"
,
/* 270 */
"expr ::= expr REM expr"
,
/* 271 */
"expr ::= expr LIKE expr"
,
/* 272 */
"expr ::= expr MATCH expr"
,
/* 273 */
"expr ::= expr NMATCH expr"
,
/* 274 */
"expr ::= expr IN LP exprlist RP"
,
/* 275 */
"exprlist ::= exprlist COMMA expritem"
,
/* 276 */
"exprlist ::= expritem"
,
/* 277 */
"expritem ::= expr"
,
/* 278 */
"expritem ::="
,
/* 279 */
"cmd ::= RESET QUERY CACHE"
,
/* 280 */
"cmd ::= SYNCDB ids REPLICA"
,
/* 281 */
"cmd ::= ALTER TABLE ftblname ADD COLUMN columnlist"
,
/* 282 */
"cmd ::= ALTER TABLE ftblname DROP COLUMN ids"
,
/* 283 */
"cmd ::= ALTER TABLE ftblname MODIFY COLUMN columnlist"
,
/* 284 */
"cmd ::= ALTER TABLE ftblname ADD TAG columnlist"
,
/* 285 */
"cmd ::= ALTER TABLE ftblname DROP TAG ids"
,
/* 286 */
"cmd ::= ALTER TABLE ftblname CHANGE TAG ids ids"
,
/* 287 */
"cmd ::= ALTER TABLE ftblname SET TAG ids EQ tagitem"
,
/* 288 */
"cmd ::= ALTER TABLE ftblname MODIFY TAG columnlist"
,
/* 289 */
"cmd ::= ALTER STABLE ftblname ADD COLUMN columnlist"
,
/* 290 */
"cmd ::= ALTER STABLE ftblname DROP COLUMN ids"
,
/* 291 */
"cmd ::= ALTER STABLE ftblname MODIFY COLUMN columnlist"
,
/* 292 */
"cmd ::= ALTER STABLE ftblname ADD TAG columnlist"
,
/* 293 */
"cmd ::= ALTER STABLE ftblname DROP TAG ids"
,
/* 294 */
"cmd ::= ALTER STABLE ftblname CHANGE TAG ids ids"
,
/* 295 */
"cmd ::= ALTER STABLE ftblname SET TAG ids EQ tagitem"
,
/* 296 */
"cmd ::= ALTER STABLE ftblname MODIFY TAG columnlist"
,
/* 297 */
"cmd ::= KILL CONNECTION INTEGER"
,
/* 298 */
"cmd ::= KILL STREAM INTEGER COLON INTEGER"
,
/* 299 */
"cmd ::= KILL QUERY INTEGER COLON INTEGER"
,
};
#endif
/* NDEBUG */
...
...
@@ -2099,66 +2101,68 @@ static const YYCODETYPE yyRuleInfoLhs[] = {
269
,
/* (235) expr ::= ID */
269
,
/* (236) expr ::= ID DOT ID */
269
,
/* (237) expr ::= ID DOT STAR */
269
,
/* (238) expr ::= INTEGER */
269
,
/* (239) expr ::= MINUS INTEGER */
269
,
/* (240) expr ::= PLUS INTEGER */
269
,
/* (241) expr ::= FLOAT */
269
,
/* (242) expr ::= MINUS FLOAT */
269
,
/* (243) expr ::= PLUS FLOAT */
269
,
/* (244) expr ::= STRING */
269
,
/* (245) expr ::= NOW */
269
,
/* (246) expr ::= VARIABLE */
269
,
/* (247) expr ::= PLUS VARIABLE */
269
,
/* (248) expr ::= MINUS VARIABLE */
269
,
/* (249) expr ::= BOOL */
269
,
/* (250) expr ::= NULL */
269
,
/* (251) expr ::= ID LP exprlist RP */
269
,
/* (252) expr ::= ID LP STAR RP */
269
,
/* (253) expr ::= expr IS NULL */
269
,
/* (254) expr ::= expr IS NOT NULL */
269
,
/* (255) expr ::= expr LT expr */
269
,
/* (256) expr ::= expr GT expr */
269
,
/* (257) expr ::= expr LE expr */
269
,
/* (258) expr ::= expr GE expr */
269
,
/* (259) expr ::= expr NE expr */
269
,
/* (260) expr ::= expr EQ expr */
269
,
/* (261) expr ::= expr BETWEEN expr AND expr */
269
,
/* (262) expr ::= expr AND expr */
269
,
/* (263) expr ::= expr OR expr */
269
,
/* (264) expr ::= expr PLUS expr */
269
,
/* (265) expr ::= expr MINUS expr */
269
,
/* (266) expr ::= expr STAR expr */
269
,
/* (267) expr ::= expr SLASH expr */
269
,
/* (268) expr ::= expr REM expr */
269
,
/* (269) expr ::= expr LIKE expr */
269
,
/* (270) expr ::= expr MATCH expr */
269
,
/* (271) expr ::= expr NMATCH expr */
269
,
/* (272) expr ::= expr IN LP exprlist RP */
209
,
/* (273) exprlist ::= exprlist COMMA expritem */
209
,
/* (274) exprlist ::= expritem */
280
,
/* (275) expritem ::= expr */
280
,
/* (276) expritem ::= */
199
,
/* (277) cmd ::= RESET QUERY CACHE */
199
,
/* (278) cmd ::= SYNCDB ids REPLICA */
199
,
/* (279) cmd ::= ALTER TABLE ftblname ADD COLUMN columnlist */
199
,
/* (280) cmd ::= ALTER TABLE ftblname DROP COLUMN ids */
199
,
/* (281) cmd ::= ALTER TABLE ftblname MODIFY COLUMN columnlist */
199
,
/* (282) cmd ::= ALTER TABLE ftblname ADD TAG columnlist */
199
,
/* (283) cmd ::= ALTER TABLE ftblname DROP TAG ids */
199
,
/* (284) cmd ::= ALTER TABLE ftblname CHANGE TAG ids ids */
199
,
/* (285) cmd ::= ALTER TABLE ftblname SET TAG ids EQ tagitem */
199
,
/* (286) cmd ::= ALTER TABLE ftblname MODIFY TAG columnlist */
199
,
/* (287) cmd ::= ALTER STABLE ftblname ADD COLUMN columnlist */
199
,
/* (288) cmd ::= ALTER STABLE ftblname DROP COLUMN ids */
199
,
/* (289) cmd ::= ALTER STABLE ftblname MODIFY COLUMN columnlist */
199
,
/* (290) cmd ::= ALTER STABLE ftblname ADD TAG columnlist */
199
,
/* (291) cmd ::= ALTER STABLE ftblname DROP TAG ids */
199
,
/* (292) cmd ::= ALTER STABLE ftblname CHANGE TAG ids ids */
199
,
/* (293) cmd ::= ALTER STABLE ftblname SET TAG ids EQ tagitem */
199
,
/* (294) cmd ::= ALTER STABLE ftblname MODIFY TAG columnlist */
199
,
/* (295) cmd ::= KILL CONNECTION INTEGER */
199
,
/* (296) cmd ::= KILL STREAM INTEGER COLON INTEGER */
199
,
/* (297) cmd ::= KILL QUERY INTEGER COLON INTEGER */
269
,
/* (238) expr ::= ESCAPE DOT ID */
269
,
/* (239) expr ::= ESCAPE DOT STAR */
269
,
/* (240) expr ::= INTEGER */
269
,
/* (241) expr ::= MINUS INTEGER */
269
,
/* (242) expr ::= PLUS INTEGER */
269
,
/* (243) expr ::= FLOAT */
269
,
/* (244) expr ::= MINUS FLOAT */
269
,
/* (245) expr ::= PLUS FLOAT */
269
,
/* (246) expr ::= STRING */
269
,
/* (247) expr ::= NOW */
269
,
/* (248) expr ::= VARIABLE */
269
,
/* (249) expr ::= PLUS VARIABLE */
269
,
/* (250) expr ::= MINUS VARIABLE */
269
,
/* (251) expr ::= BOOL */
269
,
/* (252) expr ::= NULL */
269
,
/* (253) expr ::= ID LP exprlist RP */
269
,
/* (254) expr ::= ID LP STAR RP */
269
,
/* (255) expr ::= expr IS NULL */
269
,
/* (256) expr ::= expr IS NOT NULL */
269
,
/* (257) expr ::= expr LT expr */
269
,
/* (258) expr ::= expr GT expr */
269
,
/* (259) expr ::= expr LE expr */
269
,
/* (260) expr ::= expr GE expr */
269
,
/* (261) expr ::= expr NE expr */
269
,
/* (262) expr ::= expr EQ expr */
269
,
/* (263) expr ::= expr BETWEEN expr AND expr */
269
,
/* (264) expr ::= expr AND expr */
269
,
/* (265) expr ::= expr OR expr */
269
,
/* (266) expr ::= expr PLUS expr */
269
,
/* (267) expr ::= expr MINUS expr */
269
,
/* (268) expr ::= expr STAR expr */
269
,
/* (269) expr ::= expr SLASH expr */
269
,
/* (270) expr ::= expr REM expr */
269
,
/* (271) expr ::= expr LIKE expr */
269
,
/* (272) expr ::= expr MATCH expr */
269
,
/* (273) expr ::= expr NMATCH expr */
269
,
/* (274) expr ::= expr IN LP exprlist RP */
209
,
/* (275) exprlist ::= exprlist COMMA expritem */
209
,
/* (276) exprlist ::= expritem */
280
,
/* (277) expritem ::= expr */
280
,
/* (278) expritem ::= */
199
,
/* (279) cmd ::= RESET QUERY CACHE */
199
,
/* (280) cmd ::= SYNCDB ids REPLICA */
199
,
/* (281) cmd ::= ALTER TABLE ftblname ADD COLUMN columnlist */
199
,
/* (282) cmd ::= ALTER TABLE ftblname DROP COLUMN ids */
199
,
/* (283) cmd ::= ALTER TABLE ftblname MODIFY COLUMN columnlist */
199
,
/* (284) cmd ::= ALTER TABLE ftblname ADD TAG columnlist */
199
,
/* (285) cmd ::= ALTER TABLE ftblname DROP TAG ids */
199
,
/* (286) cmd ::= ALTER TABLE ftblname CHANGE TAG ids ids */
199
,
/* (287) cmd ::= ALTER TABLE ftblname SET TAG ids EQ tagitem */
199
,
/* (288) cmd ::= ALTER TABLE ftblname MODIFY TAG columnlist */
199
,
/* (289) cmd ::= ALTER STABLE ftblname ADD COLUMN columnlist */
199
,
/* (290) cmd ::= ALTER STABLE ftblname DROP COLUMN ids */
199
,
/* (291) cmd ::= ALTER STABLE ftblname MODIFY COLUMN columnlist */
199
,
/* (292) cmd ::= ALTER STABLE ftblname ADD TAG columnlist */
199
,
/* (293) cmd ::= ALTER STABLE ftblname DROP TAG ids */
199
,
/* (294) cmd ::= ALTER STABLE ftblname CHANGE TAG ids ids */
199
,
/* (295) cmd ::= ALTER STABLE ftblname SET TAG ids EQ tagitem */
199
,
/* (296) cmd ::= ALTER STABLE ftblname MODIFY TAG columnlist */
199
,
/* (297) cmd ::= KILL CONNECTION INTEGER */
199
,
/* (298) cmd ::= KILL STREAM INTEGER COLON INTEGER */
199
,
/* (299) cmd ::= KILL QUERY INTEGER COLON INTEGER */
};
/* For rule J, yyRuleInfoNRhs[J] contains the negative of the number
...
...
@@ -2402,66 +2406,68 @@ static const signed char yyRuleInfoNRhs[] = {
-
1
,
/* (235) expr ::= ID */
-
3
,
/* (236) expr ::= ID DOT ID */
-
3
,
/* (237) expr ::= ID DOT STAR */
-
1
,
/* (238) expr ::= INTEGER */
-
2
,
/* (239) expr ::= MINUS INTEGER */
-
2
,
/* (240) expr ::= PLUS INTEGER */
-
1
,
/* (241) expr ::= FLOAT */
-
2
,
/* (242) expr ::= MINUS FLOAT */
-
2
,
/* (243) expr ::= PLUS FLOAT */
-
1
,
/* (244) expr ::= STRING */
-
1
,
/* (245) expr ::= NOW */
-
1
,
/* (246) expr ::= VARIABLE */
-
2
,
/* (247) expr ::= PLUS VARIABLE */
-
2
,
/* (248) expr ::= MINUS VARIABLE */
-
1
,
/* (249) expr ::= BOOL */
-
1
,
/* (250) expr ::= NULL */
-
4
,
/* (251) expr ::= ID LP exprlist RP */
-
4
,
/* (252) expr ::= ID LP STAR RP */
-
3
,
/* (253) expr ::= expr IS NULL */
-
4
,
/* (254) expr ::= expr IS NOT NULL */
-
3
,
/* (255) expr ::= expr LT expr */
-
3
,
/* (256) expr ::= expr GT expr */
-
3
,
/* (257) expr ::= expr LE expr */
-
3
,
/* (258) expr ::= expr GE expr */
-
3
,
/* (259) expr ::= expr NE expr */
-
3
,
/* (260) expr ::= expr EQ expr */
-
5
,
/* (261) expr ::= expr BETWEEN expr AND expr */
-
3
,
/* (262) expr ::= expr AND expr */
-
3
,
/* (263) expr ::= expr OR expr */
-
3
,
/* (264) expr ::= expr PLUS expr */
-
3
,
/* (265) expr ::= expr MINUS expr */
-
3
,
/* (266) expr ::= expr STAR expr */
-
3
,
/* (267) expr ::= expr SLASH expr */
-
3
,
/* (268) expr ::= expr REM expr */
-
3
,
/* (269) expr ::= expr LIKE expr */
-
3
,
/* (270) expr ::= expr MATCH expr */
-
3
,
/* (271) expr ::= expr NMATCH expr */
-
5
,
/* (272) expr ::= expr IN LP exprlist RP */
-
3
,
/* (273) exprlist ::= exprlist COMMA expritem */
-
1
,
/* (274) exprlist ::= expritem */
-
1
,
/* (275) expritem ::= expr */
0
,
/* (276) expritem ::= */
-
3
,
/* (277) cmd ::= RESET QUERY CACHE */
-
3
,
/* (278) cmd ::= SYNCDB ids REPLICA */
-
6
,
/* (279) cmd ::= ALTER TABLE ftblname ADD COLUMN columnlist */
-
6
,
/* (280) cmd ::= ALTER TABLE ftblname DROP COLUMN ids */
-
6
,
/* (281) cmd ::= ALTER TABLE ftblname MODIFY COLUMN columnlist */
-
6
,
/* (282) cmd ::= ALTER TABLE ftblname ADD TAG columnlist */
-
6
,
/* (283) cmd ::= ALTER TABLE ftblname DROP TAG ids */
-
7
,
/* (284) cmd ::= ALTER TABLE ftblname CHANGE TAG ids ids */
-
8
,
/* (285) cmd ::= ALTER TABLE ftblname SET TAG ids EQ tagitem */
-
6
,
/* (286) cmd ::= ALTER TABLE ftblname MODIFY TAG columnlist */
-
6
,
/* (287) cmd ::= ALTER STABLE ftblname ADD COLUMN columnlist */
-
6
,
/* (288) cmd ::= ALTER STABLE ftblname DROP COLUMN ids */
-
6
,
/* (289) cmd ::= ALTER STABLE ftblname MODIFY COLUMN columnlist */
-
6
,
/* (290) cmd ::= ALTER STABLE ftblname ADD TAG columnlist */
-
6
,
/* (291) cmd ::= ALTER STABLE ftblname DROP TAG ids */
-
7
,
/* (292) cmd ::= ALTER STABLE ftblname CHANGE TAG ids ids */
-
8
,
/* (293) cmd ::= ALTER STABLE ftblname SET TAG ids EQ tagitem */
-
6
,
/* (294) cmd ::= ALTER STABLE ftblname MODIFY TAG columnlist */
-
3
,
/* (295) cmd ::= KILL CONNECTION INTEGER */
-
5
,
/* (296) cmd ::= KILL STREAM INTEGER COLON INTEGER */
-
5
,
/* (297) cmd ::= KILL QUERY INTEGER COLON INTEGER */
-
3
,
/* (238) expr ::= ESCAPE DOT ID */
-
3
,
/* (239) expr ::= ESCAPE DOT STAR */
-
1
,
/* (240) expr ::= INTEGER */
-
2
,
/* (241) expr ::= MINUS INTEGER */
-
2
,
/* (242) expr ::= PLUS INTEGER */
-
1
,
/* (243) expr ::= FLOAT */
-
2
,
/* (244) expr ::= MINUS FLOAT */
-
2
,
/* (245) expr ::= PLUS FLOAT */
-
1
,
/* (246) expr ::= STRING */
-
1
,
/* (247) expr ::= NOW */
-
1
,
/* (248) expr ::= VARIABLE */
-
2
,
/* (249) expr ::= PLUS VARIABLE */
-
2
,
/* (250) expr ::= MINUS VARIABLE */
-
1
,
/* (251) expr ::= BOOL */
-
1
,
/* (252) expr ::= NULL */
-
4
,
/* (253) expr ::= ID LP exprlist RP */
-
4
,
/* (254) expr ::= ID LP STAR RP */
-
3
,
/* (255) expr ::= expr IS NULL */
-
4
,
/* (256) expr ::= expr IS NOT NULL */
-
3
,
/* (257) expr ::= expr LT expr */
-
3
,
/* (258) expr ::= expr GT expr */
-
3
,
/* (259) expr ::= expr LE expr */
-
3
,
/* (260) expr ::= expr GE expr */
-
3
,
/* (261) expr ::= expr NE expr */
-
3
,
/* (262) expr ::= expr EQ expr */
-
5
,
/* (263) expr ::= expr BETWEEN expr AND expr */
-
3
,
/* (264) expr ::= expr AND expr */
-
3
,
/* (265) expr ::= expr OR expr */
-
3
,
/* (266) expr ::= expr PLUS expr */
-
3
,
/* (267) expr ::= expr MINUS expr */
-
3
,
/* (268) expr ::= expr STAR expr */
-
3
,
/* (269) expr ::= expr SLASH expr */
-
3
,
/* (270) expr ::= expr REM expr */
-
3
,
/* (271) expr ::= expr LIKE expr */
-
3
,
/* (272) expr ::= expr MATCH expr */
-
3
,
/* (273) expr ::= expr NMATCH expr */
-
5
,
/* (274) expr ::= expr IN LP exprlist RP */
-
3
,
/* (275) exprlist ::= exprlist COMMA expritem */
-
1
,
/* (276) exprlist ::= expritem */
-
1
,
/* (277) expritem ::= expr */
0
,
/* (278) expritem ::= */
-
3
,
/* (279) cmd ::= RESET QUERY CACHE */
-
3
,
/* (280) cmd ::= SYNCDB ids REPLICA */
-
6
,
/* (281) cmd ::= ALTER TABLE ftblname ADD COLUMN columnlist */
-
6
,
/* (282) cmd ::= ALTER TABLE ftblname DROP COLUMN ids */
-
6
,
/* (283) cmd ::= ALTER TABLE ftblname MODIFY COLUMN columnlist */
-
6
,
/* (284) cmd ::= ALTER TABLE ftblname ADD TAG columnlist */
-
6
,
/* (285) cmd ::= ALTER TABLE ftblname DROP TAG ids */
-
7
,
/* (286) cmd ::= ALTER TABLE ftblname CHANGE TAG ids ids */
-
8
,
/* (287) cmd ::= ALTER TABLE ftblname SET TAG ids EQ tagitem */
-
6
,
/* (288) cmd ::= ALTER TABLE ftblname MODIFY TAG columnlist */
-
6
,
/* (289) cmd ::= ALTER STABLE ftblname ADD COLUMN columnlist */
-
6
,
/* (290) cmd ::= ALTER STABLE ftblname DROP COLUMN ids */
-
6
,
/* (291) cmd ::= ALTER STABLE ftblname MODIFY COLUMN columnlist */
-
6
,
/* (292) cmd ::= ALTER STABLE ftblname ADD TAG columnlist */
-
6
,
/* (293) cmd ::= ALTER STABLE ftblname DROP TAG ids */
-
7
,
/* (294) cmd ::= ALTER STABLE ftblname CHANGE TAG ids ids */
-
8
,
/* (295) cmd ::= ALTER STABLE ftblname SET TAG ids EQ tagitem */
-
6
,
/* (296) cmd ::= ALTER STABLE ftblname MODIFY TAG columnlist */
-
3
,
/* (297) cmd ::= KILL CONNECTION INTEGER */
-
5
,
/* (298) cmd ::= KILL STREAM INTEGER COLON INTEGER */
-
5
,
/* (299) cmd ::= KILL QUERY INTEGER COLON INTEGER */
};
static
void
yy_accept
(
yyParser
*
);
/* Forward Declaration */
...
...
@@ -3291,7 +3297,7 @@ static YYACTIONTYPE yy_reduce(
break
;
case
222
:
/* having_opt ::= */
case
232
:
/* where_opt ::= */
yytestcase
(
yyruleno
==
232
);
case
27
6
:
/* expritem ::= */
yytestcase
(
yyruleno
==
276
);
case
27
8
:
/* expritem ::= */
yytestcase
(
yyruleno
==
278
);
{
yymsp
[
1
].
minor
.
yy44
=
0
;}
break
;
case
223
:
/* having_opt ::= HAVING expr */
...
...
@@ -3327,169 +3333,171 @@ static YYACTIONTYPE yy_reduce(
yymsp
[
0
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
236
:
/* expr ::= ID DOT ID */
case
238
:
/* expr ::= ESCAPE DOT ID */
yytestcase
(
yyruleno
==
238
);
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy44
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
237
:
/* expr ::= ID DOT STAR */
case
239
:
/* expr ::= ESCAPE DOT STAR */
yytestcase
(
yyruleno
==
239
);
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy44
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ALL
);}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
2
38
:
/* expr ::= INTEGER */
case
2
40
:
/* expr ::= INTEGER */
{
yylhsminor
.
yy44
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
0
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
2
39
:
/* expr ::= MINUS INTEGER */
case
24
0
:
/* expr ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
240
);
case
2
41
:
/* expr ::= MINUS INTEGER */
case
24
2
:
/* expr ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
242
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy44
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
yymsp
[
-
1
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
24
1
:
/* expr ::= FLOAT */
case
24
3
:
/* expr ::= FLOAT */
{
yylhsminor
.
yy44
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
0
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
24
2
:
/* expr ::= MINUS FLOAT */
case
24
3
:
/* expr ::= PLUS FLOAT */
yytestcase
(
yyruleno
==
243
);
case
24
4
:
/* expr ::= MINUS FLOAT */
case
24
5
:
/* expr ::= PLUS FLOAT */
yytestcase
(
yyruleno
==
245
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_FLOAT
;
yylhsminor
.
yy44
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_FLOAT
);}
yymsp
[
-
1
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
24
4
:
/* expr ::= STRING */
case
24
6
:
/* expr ::= STRING */
{
yylhsminor
.
yy44
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
yymsp
[
0
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
24
5
:
/* expr ::= NOW */
case
24
7
:
/* expr ::= NOW */
{
yylhsminor
.
yy44
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
yymsp
[
0
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
24
6
:
/* expr ::= VARIABLE */
case
24
8
:
/* expr ::= VARIABLE */
{
yylhsminor
.
yy44
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_VARIABLE
);}
yymsp
[
0
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
24
7
:
/* expr ::= PLUS VARIABLE */
case
2
48
:
/* expr ::= MINUS VARIABLE */
yytestcase
(
yyruleno
==
248
);
case
24
9
:
/* expr ::= PLUS VARIABLE */
case
2
50
:
/* expr ::= MINUS VARIABLE */
yytestcase
(
yyruleno
==
250
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_VARIABLE
;
yylhsminor
.
yy44
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_VARIABLE
);}
yymsp
[
-
1
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
2
49
:
/* expr ::= BOOL */
case
2
51
:
/* expr ::= BOOL */
{
yylhsminor
.
yy44
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_BOOL
);}
yymsp
[
0
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
25
0
:
/* expr ::= NULL */
case
25
2
:
/* expr ::= NULL */
{
yylhsminor
.
yy44
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_NULL
);}
yymsp
[
0
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
25
1
:
/* expr ::= ID LP exprlist RP */
case
25
3
:
/* expr ::= ID LP exprlist RP */
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yylhsminor
.
yy44
=
tSqlExprCreateFunction
(
yymsp
[
-
1
].
minor
.
yy247
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
yymsp
[
-
3
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
25
2
:
/* expr ::= ID LP STAR RP */
case
25
4
:
/* expr ::= ID LP STAR RP */
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yylhsminor
.
yy44
=
tSqlExprCreateFunction
(
NULL
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
yymsp
[
-
3
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
25
3
:
/* expr ::= expr IS NULL */
case
25
5
:
/* expr ::= expr IS NULL */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy44
,
NULL
,
TK_ISNULL
);}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
25
4
:
/* expr ::= expr IS NOT NULL */
case
25
6
:
/* expr ::= expr IS NOT NULL */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
3
].
minor
.
yy44
,
NULL
,
TK_NOTNULL
);}
yymsp
[
-
3
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
25
5
:
/* expr ::= expr LT expr */
case
25
7
:
/* expr ::= expr LT expr */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy44
,
yymsp
[
0
].
minor
.
yy44
,
TK_LT
);}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
25
6
:
/* expr ::= expr GT expr */
case
25
8
:
/* expr ::= expr GT expr */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy44
,
yymsp
[
0
].
minor
.
yy44
,
TK_GT
);}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
25
7
:
/* expr ::= expr LE expr */
case
25
9
:
/* expr ::= expr LE expr */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy44
,
yymsp
[
0
].
minor
.
yy44
,
TK_LE
);}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
2
58
:
/* expr ::= expr GE expr */
case
2
60
:
/* expr ::= expr GE expr */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy44
,
yymsp
[
0
].
minor
.
yy44
,
TK_GE
);}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
2
59
:
/* expr ::= expr NE expr */
case
2
61
:
/* expr ::= expr NE expr */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy44
,
yymsp
[
0
].
minor
.
yy44
,
TK_NE
);}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
26
0
:
/* expr ::= expr EQ expr */
case
26
2
:
/* expr ::= expr EQ expr */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy44
,
yymsp
[
0
].
minor
.
yy44
,
TK_EQ
);}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
26
1
:
/* expr ::= expr BETWEEN expr AND expr */
case
26
3
:
/* expr ::= expr BETWEEN expr AND expr */
{
tSqlExpr
*
X2
=
tSqlExprClone
(
yymsp
[
-
4
].
minor
.
yy44
);
yylhsminor
.
yy44
=
tSqlExprCreate
(
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy44
,
yymsp
[
-
2
].
minor
.
yy44
,
TK_GE
),
tSqlExprCreate
(
X2
,
yymsp
[
0
].
minor
.
yy44
,
TK_LE
),
TK_AND
);}
yymsp
[
-
4
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
26
2
:
/* expr ::= expr AND expr */
case
26
4
:
/* expr ::= expr AND expr */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy44
,
yymsp
[
0
].
minor
.
yy44
,
TK_AND
);}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
26
3
:
/* expr ::= expr OR expr */
case
26
5
:
/* expr ::= expr OR expr */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy44
,
yymsp
[
0
].
minor
.
yy44
,
TK_OR
);
}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
26
4
:
/* expr ::= expr PLUS expr */
case
26
6
:
/* expr ::= expr PLUS expr */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy44
,
yymsp
[
0
].
minor
.
yy44
,
TK_PLUS
);
}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
26
5
:
/* expr ::= expr MINUS expr */
case
26
7
:
/* expr ::= expr MINUS expr */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy44
,
yymsp
[
0
].
minor
.
yy44
,
TK_MINUS
);
}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
26
6
:
/* expr ::= expr STAR expr */
case
26
8
:
/* expr ::= expr STAR expr */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy44
,
yymsp
[
0
].
minor
.
yy44
,
TK_STAR
);
}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
26
7
:
/* expr ::= expr SLASH expr */
case
26
9
:
/* expr ::= expr SLASH expr */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy44
,
yymsp
[
0
].
minor
.
yy44
,
TK_DIVIDE
);}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
2
68
:
/* expr ::= expr REM expr */
case
2
70
:
/* expr ::= expr REM expr */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy44
,
yymsp
[
0
].
minor
.
yy44
,
TK_REM
);
}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
2
69
:
/* expr ::= expr LIKE expr */
case
2
71
:
/* expr ::= expr LIKE expr */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy44
,
yymsp
[
0
].
minor
.
yy44
,
TK_LIKE
);
}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
27
0
:
/* expr ::= expr MATCH expr */
case
27
2
:
/* expr ::= expr MATCH expr */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy44
,
yymsp
[
0
].
minor
.
yy44
,
TK_MATCH
);
}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
27
1
:
/* expr ::= expr NMATCH expr */
case
27
3
:
/* expr ::= expr NMATCH expr */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy44
,
yymsp
[
0
].
minor
.
yy44
,
TK_NMATCH
);
}
yymsp
[
-
2
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
27
2
:
/* expr ::= expr IN LP exprlist RP */
case
27
4
:
/* expr ::= expr IN LP exprlist RP */
{
yylhsminor
.
yy44
=
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy44
,
(
tSqlExpr
*
)
yymsp
[
-
1
].
minor
.
yy247
,
TK_IN
);
}
yymsp
[
-
4
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
27
3
:
/* exprlist ::= exprlist COMMA expritem */
case
27
5
:
/* exprlist ::= exprlist COMMA expritem */
{
yylhsminor
.
yy247
=
tSqlExprListAppend
(
yymsp
[
-
2
].
minor
.
yy247
,
yymsp
[
0
].
minor
.
yy44
,
0
,
0
);}
yymsp
[
-
2
].
minor
.
yy247
=
yylhsminor
.
yy247
;
break
;
case
27
4
:
/* exprlist ::= expritem */
case
27
6
:
/* exprlist ::= expritem */
{
yylhsminor
.
yy247
=
tSqlExprListAppend
(
0
,
yymsp
[
0
].
minor
.
yy44
,
0
,
0
);}
yymsp
[
0
].
minor
.
yy247
=
yylhsminor
.
yy247
;
break
;
case
27
5
:
/* expritem ::= expr */
case
27
7
:
/* expritem ::= expr */
{
yylhsminor
.
yy44
=
yymsp
[
0
].
minor
.
yy44
;}
yymsp
[
0
].
minor
.
yy44
=
yylhsminor
.
yy44
;
break
;
case
27
7
:
/* cmd ::= RESET QUERY CACHE */
case
27
9
:
/* cmd ::= RESET QUERY CACHE */
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_RESET_CACHE
,
0
);}
break
;
case
2
78
:
/* cmd ::= SYNCDB ids REPLICA */
case
2
80
:
/* cmd ::= SYNCDB ids REPLICA */
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_SYNC_DB_REPLICA
,
1
,
&
yymsp
[
-
1
].
minor
.
yy0
);}
break
;
case
2
79
:
/* cmd ::= ALTER TABLE ftblname ADD COLUMN columnlist */
case
2
81
:
/* cmd ::= ALTER TABLE ftblname ADD COLUMN columnlist */
{
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
3
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy247
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
28
0
:
/* cmd ::= ALTER TABLE ftblname DROP COLUMN ids */
case
28
2
:
/* cmd ::= ALTER TABLE ftblname DROP COLUMN ids */
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
SArray
*
K
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
0
].
minor
.
yy0
,
-
1
);
...
...
@@ -3498,19 +3506,19 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
28
1
:
/* cmd ::= ALTER TABLE ftblname MODIFY COLUMN columnlist */
case
28
3
:
/* cmd ::= ALTER TABLE ftblname MODIFY COLUMN columnlist */
{
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
3
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy247
,
NULL
,
TSDB_ALTER_TABLE_CHANGE_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
28
2
:
/* cmd ::= ALTER TABLE ftblname ADD TAG columnlist */
case
28
4
:
/* cmd ::= ALTER TABLE ftblname ADD TAG columnlist */
{
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
3
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy247
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
28
3
:
/* cmd ::= ALTER TABLE ftblname DROP TAG ids */
case
28
5
:
/* cmd ::= ALTER TABLE ftblname DROP TAG ids */
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
SArray
*
A
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
0
].
minor
.
yy0
,
-
1
);
...
...
@@ -3519,7 +3527,7 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
28
4
:
/* cmd ::= ALTER TABLE ftblname CHANGE TAG ids ids */
case
28
6
:
/* cmd ::= ALTER TABLE ftblname CHANGE TAG ids ids */
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
...
...
@@ -3532,7 +3540,7 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
28
5
:
/* cmd ::= ALTER TABLE ftblname SET TAG ids EQ tagitem */
case
28
7
:
/* cmd ::= ALTER TABLE ftblname SET TAG ids EQ tagitem */
{
toTSDBType
(
yymsp
[
-
2
].
minor
.
yy0
.
type
);
...
...
@@ -3543,19 +3551,19 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
28
6
:
/* cmd ::= ALTER TABLE ftblname MODIFY TAG columnlist */
case
28
8
:
/* cmd ::= ALTER TABLE ftblname MODIFY TAG columnlist */
{
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
3
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy247
,
NULL
,
TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
28
7
:
/* cmd ::= ALTER STABLE ftblname ADD COLUMN columnlist */
case
28
9
:
/* cmd ::= ALTER STABLE ftblname ADD COLUMN columnlist */
{
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
3
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy247
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
2
88
:
/* cmd ::= ALTER STABLE ftblname DROP COLUMN ids */
case
2
90
:
/* cmd ::= ALTER STABLE ftblname DROP COLUMN ids */
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
...
...
@@ -3565,19 +3573,19 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
2
89
:
/* cmd ::= ALTER STABLE ftblname MODIFY COLUMN columnlist */
case
2
91
:
/* cmd ::= ALTER STABLE ftblname MODIFY COLUMN columnlist */
{
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
3
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy247
,
NULL
,
TSDB_ALTER_TABLE_CHANGE_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
29
0
:
/* cmd ::= ALTER STABLE ftblname ADD TAG columnlist */
case
29
2
:
/* cmd ::= ALTER STABLE ftblname ADD TAG columnlist */
{
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
3
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy247
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
29
1
:
/* cmd ::= ALTER STABLE ftblname DROP TAG ids */
case
29
3
:
/* cmd ::= ALTER STABLE ftblname DROP TAG ids */
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
...
...
@@ -3587,7 +3595,7 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
29
2
:
/* cmd ::= ALTER STABLE ftblname CHANGE TAG ids ids */
case
29
4
:
/* cmd ::= ALTER STABLE ftblname CHANGE TAG ids ids */
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
...
...
@@ -3600,7 +3608,7 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
29
3
:
/* cmd ::= ALTER STABLE ftblname SET TAG ids EQ tagitem */
case
29
5
:
/* cmd ::= ALTER STABLE ftblname SET TAG ids EQ tagitem */
{
toTSDBType
(
yymsp
[
-
2
].
minor
.
yy0
.
type
);
...
...
@@ -3611,19 +3619,19 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
29
4
:
/* cmd ::= ALTER STABLE ftblname MODIFY TAG columnlist */
case
29
6
:
/* cmd ::= ALTER STABLE ftblname MODIFY TAG columnlist */
{
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
3
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy247
,
NULL
,
TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
break
;
case
29
5
:
/* cmd ::= KILL CONNECTION INTEGER */
case
29
7
:
/* cmd ::= KILL CONNECTION INTEGER */
{
setKillSql
(
pInfo
,
TSDB_SQL_KILL_CONNECTION
,
&
yymsp
[
0
].
minor
.
yy0
);}
break
;
case
29
6
:
/* cmd ::= KILL STREAM INTEGER COLON INTEGER */
case
29
8
:
/* cmd ::= KILL STREAM INTEGER COLON INTEGER */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
+
yymsp
[
0
].
minor
.
yy0
.
n
);
setKillSql
(
pInfo
,
TSDB_SQL_KILL_STREAM
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
break
;
case
29
7
:
/* cmd ::= KILL QUERY INTEGER COLON INTEGER */
case
29
9
:
/* cmd ::= KILL QUERY INTEGER COLON INTEGER */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
+
yymsp
[
0
].
minor
.
yy0
.
n
);
setKillSql
(
pInfo
,
TSDB_SQL_KILL_QUERY
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
break
;
default:
...
...
src/query/tests/unitTest.cpp
浏览文件 @
ebc1fd6c
...
...
@@ -23,7 +23,7 @@ int32_t testValidateName(char* name) {
token
.
type
=
0
;
tGetToken
(
name
,
&
token
.
type
);
return
tscValidateName
(
&
token
,
false
);
return
tscValidateName
(
&
token
,
false
,
NULL
);
}
}
...
...
tests/script/fullGeneralSuite.sim
浏览文件 @
ebc1fd6c
...
...
@@ -223,3 +223,4 @@ run general/db/show_create_db.sim
run general/db/show_create_table.sim
run general/parser/like.sim
run general/parser/regex.sim
run general/parser/tbname_escape.sim
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录