Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
313248ce
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
313248ce
编写于
8月 01, 2022
作者:
G
Ganlin Zhao
浏览文件
操作
浏览文件
下载
差异文件
Merge branch '3.0' into fix/TD-17799
上级
0dbe26f8
16bf52bf
变更
25
隐藏空白更改
内联
并排
Showing
25 changed file
with
491 addition
and
426 deletion
+491
-426
include/common/tcommon.h
include/common/tcommon.h
+1
-2
include/libs/nodes/cmdnodes.h
include/libs/nodes/cmdnodes.h
+1
-0
include/libs/wal/wal.h
include/libs/wal/wal.h
+1
-1
source/common/src/tname.c
source/common/src/tname.c
+20
-10
source/dnode/vnode/src/inc/meta.h
source/dnode/vnode/src/inc/meta.h
+4
-1
source/dnode/vnode/src/inc/vnodeInt.h
source/dnode/vnode/src/inc/vnodeInt.h
+1
-1
source/dnode/vnode/src/meta/metaOpen.c
source/dnode/vnode/src/meta/metaOpen.c
+22
-0
source/dnode/vnode/src/tq/tq.c
source/dnode/vnode/src/tq/tq.c
+2
-2
source/dnode/vnode/src/tq/tqMeta.c
source/dnode/vnode/src/tq/tqMeta.c
+1
-1
source/dnode/vnode/src/tq/tqPush.c
source/dnode/vnode/src/tq/tqPush.c
+1
-1
source/libs/parser/inc/parAst.h
source/libs/parser/inc/parAst.h
+1
-1
source/libs/parser/inc/sql.y
source/libs/parser/inc/sql.y
+3
-3
source/libs/parser/src/parAstCreater.c
source/libs/parser/src/parAstCreater.c
+5
-3
source/libs/parser/src/parAstParser.c
source/libs/parser/src/parAstParser.c
+9
-2
source/libs/parser/src/parInsert.c
source/libs/parser/src/parInsert.c
+1
-1
source/libs/parser/src/parTranslater.c
source/libs/parser/src/parTranslater.c
+26
-17
source/libs/parser/src/parUtil.c
source/libs/parser/src/parUtil.c
+1
-1
source/libs/parser/src/sql.c
source/libs/parser/src/sql.c
+327
-325
source/libs/planner/src/planSpliter.c
source/libs/planner/src/planSpliter.c
+3
-1
source/libs/planner/test/planSubqueryTest.cpp
source/libs/planner/test/planSubqueryTest.cpp
+6
-0
source/libs/transport/src/transCli.c
source/libs/transport/src/transCli.c
+6
-4
source/libs/transport/src/transSvr.c
source/libs/transport/src/transSvr.c
+6
-8
source/libs/wal/src/walWrite.c
source/libs/wal/src/walWrite.c
+17
-15
tests/script/tsim/insert/basic2.sim
tests/script/tsim/insert/basic2.sim
+2
-2
tests/system-test/1-insert/create_retentions.py
tests/system-test/1-insert/create_retentions.py
+24
-24
未找到文件。
include/common/tcommon.h
浏览文件 @
313248ce
...
...
@@ -56,7 +56,6 @@ enum {
STREAM_INPUT__DATA_SUBMIT
=
1
,
STREAM_INPUT__DATA_BLOCK
,
STREAM_INPUT__MERGED_SUBMIT
,
// STREAM_INPUT__TABLE_SCAN,
STREAM_INPUT__TQ_SCAN
,
STREAM_INPUT__DATA_RETRIEVE
,
STREAM_INPUT__GET_RES
,
...
...
@@ -154,7 +153,7 @@ typedef struct SQueryTableDataCond {
int32_t
order
;
// desc|asc order to iterate the data block
int32_t
numOfCols
;
SColumnInfo
*
colList
;
int32_t
type
;
// data block load type:
int32_t
type
;
// data block load type:
STimeWindow
twindows
;
int64_t
startVersion
;
int64_t
endVersion
;
...
...
include/libs/nodes/cmdnodes.h
浏览文件 @
313248ce
...
...
@@ -283,6 +283,7 @@ typedef struct SCreateIndexStmt {
EIndexType
indexType
;
bool
ignoreExists
;
char
indexName
[
TSDB_INDEX_NAME_LEN
];
char
dbName
[
TSDB_DB_NAME_LEN
];
char
tableName
[
TSDB_TABLE_NAME_LEN
];
SNodeList
*
pCols
;
SIndexOptions
*
pOptions
;
...
...
include/libs/wal/wal.h
浏览文件 @
313248ce
...
...
@@ -41,7 +41,7 @@ extern "C" {
#define WAL_REFRESH_MS 1000
#define WAL_PATH_LEN (TSDB_FILENAME_LEN + 12)
#define WAL_FILE_LEN (WAL_PATH_LEN + 32)
#define WAL_MAGIC 0xFAFBFCFDULL
#define WAL_MAGIC 0xFAFBFCFD
F4F3F2F1
ULL
#define WAL_SCAN_BUF_SIZE (1024 * 1024 * 3)
typedef
enum
{
...
...
source/common/src/tname.c
浏览文件 @
313248ce
...
...
@@ -162,10 +162,7 @@ int32_t tNameGetDbName(const SName* name, char* dst) {
return
0
;
}
const
char
*
tNameGetDbNameP
(
const
SName
*
name
)
{
return
&
name
->
dbname
[
0
];
}
const
char
*
tNameGetDbNameP
(
const
SName
*
name
)
{
return
&
name
->
dbname
[
0
];
}
int32_t
tNameGetFullDbName
(
const
SName
*
name
,
char
*
dst
)
{
assert
(
name
!=
NULL
&&
dst
!=
NULL
);
...
...
@@ -212,7 +209,6 @@ int32_t tNameAddTbName(SName* dst, const char* tbName, size_t nameLen) {
return
0
;
}
int32_t
tNameSetAcctId
(
SName
*
dst
,
int32_t
acctId
)
{
assert
(
dst
!=
NULL
);
dst
->
acctId
=
acctId
;
...
...
@@ -266,11 +262,21 @@ int32_t tNameFromString(SName* dst, const char* str, uint32_t type) {
char
*
start
=
(
char
*
)((
p
==
NULL
)
?
str
:
(
p
+
1
));
int32_t
len
=
0
;
p
=
strstr
(
start
,
TS_PATH_DELIMITER
);
if
(
p
==
NULL
)
{
len
=
(
int32_t
)
strlen
(
start
);
if
(
TS_ESCAPE_CHAR
==
*
start
)
{
++
start
;
char
*
end
=
start
;
while
(
'`'
!=
*
end
)
{
++
end
;
}
len
=
end
-
start
;
p
=
++
end
;
}
else
{
len
=
(
int32_t
)(
p
-
start
);
p
=
strstr
(
start
,
TS_PATH_DELIMITER
);
if
(
p
==
NULL
)
{
len
=
(
int32_t
)
strlen
(
start
);
}
else
{
len
=
(
int32_t
)(
p
-
start
);
}
}
// too long account id or too long db name
...
...
@@ -288,6 +294,10 @@ int32_t tNameFromString(SName* dst, const char* str, uint32_t type) {
// too long account id or too long db name
int32_t
len
=
(
int32_t
)
strlen
(
start
);
if
(
TS_ESCAPE_CHAR
==
*
start
)
{
len
-=
2
;
++
start
;
}
if
((
len
>=
tListLen
(
dst
->
tname
))
||
(
len
<=
0
))
{
return
-
1
;
}
...
...
@@ -340,7 +350,7 @@ void buildChildTableName(RandTableName* rName) {
char
temp
[
8
]
=
{
0
};
rName
->
childTableName
[
0
]
=
't'
;
rName
->
childTableName
[
1
]
=
'_'
;
for
(
int
i
=
0
;
i
<
16
;
i
++
)
{
for
(
int
i
=
0
;
i
<
16
;
i
++
)
{
sprintf
(
temp
,
"%02x"
,
context
.
digest
[
i
]);
strcat
(
rName
->
childTableName
,
temp
);
}
...
...
source/dnode/vnode/src/inc/meta.h
浏览文件 @
313248ce
...
...
@@ -78,7 +78,10 @@ struct SMeta {
TTB
*
pTagIdx
;
TTB
*
pTtlIdx
;
TTB
*
pSmaIdx
;
TTB
*
pSmaIdx
;
TTB
*
pTaskIdx
;
SMetaIdx
*
pIdx
;
};
...
...
source/dnode/vnode/src/inc/vnodeInt.h
浏览文件 @
313248ce
...
...
@@ -153,7 +153,7 @@ int32_t tqProcessOffsetCommitReq(STQ* pTq, char* msg, int32_t msgLen);
int32_t
tqProcessPollReq
(
STQ
*
pTq
,
SRpcMsg
*
pMsg
);
int32_t
tqProcessTaskDeployReq
(
STQ
*
pTq
,
char
*
msg
,
int32_t
msgLen
);
int32_t
tqProcessTaskDropReq
(
STQ
*
pTq
,
char
*
msg
,
int32_t
msgLen
);
int32_t
tqProcessStreamTrigger
(
STQ
*
pTq
,
SSubmitReq
*
data
);
int32_t
tqProcessStreamTrigger
(
STQ
*
pTq
,
SSubmitReq
*
data
,
int64_t
ver
);
int32_t
tqProcessTaskRunReq
(
STQ
*
pTq
,
SRpcMsg
*
pMsg
);
int32_t
tqProcessTaskDispatchReq
(
STQ
*
pTq
,
SRpcMsg
*
pMsg
);
int32_t
tqProcessTaskRecoverReq
(
STQ
*
pTq
,
SRpcMsg
*
pMsg
);
...
...
source/dnode/vnode/src/meta/metaOpen.c
浏览文件 @
313248ce
...
...
@@ -22,6 +22,7 @@ static int tagIdxKeyCmpr(const void *pKey1, int kLen1, const void *pKey2, int kL
static
int
ttlIdxKeyCmpr
(
const
void
*
pKey1
,
int
kLen1
,
const
void
*
pKey2
,
int
kLen2
);
static
int
uidIdxKeyCmpr
(
const
void
*
pKey1
,
int
kLen1
,
const
void
*
pKey2
,
int
kLen2
);
static
int
smaIdxKeyCmpr
(
const
void
*
pKey1
,
int
kLen1
,
const
void
*
pKey2
,
int
kLen2
);
static
int
taskIdxKeyCmpr
(
const
void
*
pKey1
,
int
kLen1
,
const
void
*
pKey2
,
int
kLen2
);
static
int32_t
metaInitLock
(
SMeta
*
pMeta
)
{
return
taosThreadRwlockInit
(
&
pMeta
->
lock
,
NULL
);
}
static
int32_t
metaDestroyLock
(
SMeta
*
pMeta
)
{
return
taosThreadRwlockDestroy
(
&
pMeta
->
lock
);
}
...
...
@@ -130,6 +131,12 @@ int metaOpen(SVnode *pVnode, SMeta **ppMeta) {
goto
_err
;
}
ret
=
tdbTbOpen
(
"stream.task.db"
,
sizeof
(
int64_t
),
-
1
,
taskIdxKeyCmpr
,
pMeta
->
pEnv
,
&
pMeta
->
pTaskIdx
);
if
(
ret
<
0
)
{
metaError
(
"vgId: %d, failed to open meta stream task index since %s"
,
TD_VID
(
pVnode
),
tstrerror
(
terrno
));
goto
_err
;
}
// open index
if
(
metaOpenIdx
(
pMeta
)
<
0
)
{
metaError
(
"vgId:%d, failed to open meta index since %s"
,
TD_VID
(
pVnode
),
tstrerror
(
terrno
));
...
...
@@ -143,6 +150,7 @@ int metaOpen(SVnode *pVnode, SMeta **ppMeta) {
_err:
if
(
pMeta
->
pIdx
)
metaCloseIdx
(
pMeta
);
if
(
pMeta
->
pTaskIdx
)
tdbTbClose
(
pMeta
->
pTaskIdx
);
if
(
pMeta
->
pSmaIdx
)
tdbTbClose
(
pMeta
->
pSmaIdx
);
if
(
pMeta
->
pTtlIdx
)
tdbTbClose
(
pMeta
->
pTtlIdx
);
if
(
pMeta
->
pTagIvtIdx
)
indexClose
(
pMeta
->
pTagIvtIdx
);
...
...
@@ -162,6 +170,7 @@ _err:
int
metaClose
(
SMeta
*
pMeta
)
{
if
(
pMeta
)
{
if
(
pMeta
->
pIdx
)
metaCloseIdx
(
pMeta
);
if
(
pMeta
->
pTaskIdx
)
tdbTbClose
(
pMeta
->
pTaskIdx
);
if
(
pMeta
->
pSmaIdx
)
tdbTbClose
(
pMeta
->
pSmaIdx
);
if
(
pMeta
->
pTtlIdx
)
tdbTbClose
(
pMeta
->
pTtlIdx
);
if
(
pMeta
->
pTagIvtIdx
)
indexClose
(
pMeta
->
pTagIvtIdx
);
...
...
@@ -378,3 +387,16 @@ static int smaIdxKeyCmpr(const void *pKey1, int kLen1, const void *pKey2, int kL
return
0
;
}
static
int
taskIdxKeyCmpr
(
const
void
*
pKey1
,
int
kLen1
,
const
void
*
pKey2
,
int
kLen2
)
{
int32_t
uid1
=
*
(
int32_t
*
)
pKey1
;
int32_t
uid2
=
*
(
int32_t
*
)
pKey2
;
if
(
uid1
>
uid2
)
{
return
1
;
}
else
if
(
uid1
<
uid2
)
{
return
-
1
;
}
return
0
;
}
source/dnode/vnode/src/tq/tq.c
浏览文件 @
313248ce
...
...
@@ -695,7 +695,7 @@ FAIL:
return
-
1
;
}
int32_t
tqProcessStreamTrigger
(
STQ
*
pTq
,
SSubmitReq
*
pReq
)
{
int32_t
tqProcessStreamTrigger
(
STQ
*
pTq
,
SSubmitReq
*
pReq
,
int64_t
ver
)
{
void
*
pIter
=
NULL
;
bool
failed
=
false
;
SStreamDataSubmit
*
pSubmit
=
NULL
;
...
...
@@ -713,7 +713,7 @@ int32_t tqProcessStreamTrigger(STQ* pTq, SSubmitReq* pReq) {
SStreamTask
*
pTask
=
*
(
SStreamTask
**
)
pIter
;
if
(
!
pTask
->
isDataScan
)
continue
;
qDebug
(
"data submit enqueue stream task: %d
"
,
pTask
->
taskId
);
qDebug
(
"data submit enqueue stream task: %d
, ver: %ld"
,
pTask
->
taskId
,
ver
);
if
(
!
failed
)
{
if
(
streamTaskInput
(
pTask
,
(
SStreamQueueItem
*
)
pSubmit
)
<
0
)
{
...
...
source/dnode/vnode/src/tq/tqMeta.c
浏览文件 @
313248ce
...
...
@@ -48,7 +48,7 @@ int32_t tqMetaOpen(STQ* pTq) {
ASSERT
(
0
);
}
if
(
tdbTbOpen
(
"handles"
,
-
1
,
-
1
,
0
,
pTq
->
pMetaStore
,
&
pTq
->
pExecStore
)
<
0
)
{
if
(
tdbTbOpen
(
"handles"
,
-
1
,
-
1
,
NULL
,
pTq
->
pMetaStore
,
&
pTq
->
pExecStore
)
<
0
)
{
ASSERT
(
0
);
}
...
...
source/dnode/vnode/src/tq/tqPush.c
浏览文件 @
313248ce
...
...
@@ -252,7 +252,7 @@ int tqPushMsg(STQ* pTq, void* msg, int32_t msgLen, tmsg_t msgType, int64_t ver)
SSubmitReq
*
pReq
=
(
SSubmitReq
*
)
data
;
pReq
->
version
=
ver
;
tqProcessStreamTrigger
(
pTq
,
data
);
tqProcessStreamTrigger
(
pTq
,
data
,
ver
);
}
return
0
;
...
...
source/libs/parser/inc/parAst.h
浏览文件 @
313248ce
...
...
@@ -177,7 +177,7 @@ SNode* createCreateDnodeStmt(SAstCreateContext* pCxt, const SToken* pFqdn, const
SNode
*
createDropDnodeStmt
(
SAstCreateContext
*
pCxt
,
const
SToken
*
pDnode
);
SNode
*
createAlterDnodeStmt
(
SAstCreateContext
*
pCxt
,
const
SToken
*
pDnode
,
const
SToken
*
pConfig
,
const
SToken
*
pValue
);
SNode
*
createCreateIndexStmt
(
SAstCreateContext
*
pCxt
,
EIndexType
type
,
bool
ignoreExists
,
SToken
*
pIndexName
,
S
Token
*
pTableNam
e
,
SNodeList
*
pCols
,
SNode
*
pOptions
);
S
Node
*
pRealTabl
e
,
SNodeList
*
pCols
,
SNode
*
pOptions
);
SNode
*
createIndexOption
(
SAstCreateContext
*
pCxt
,
SNodeList
*
pFuncs
,
SNode
*
pInterval
,
SNode
*
pOffset
,
SNode
*
pSliding
,
SNode
*
pStreamOptions
);
SNode
*
createDropIndexStmt
(
SAstCreateContext
*
pCxt
,
bool
ignoreNotExists
,
SToken
*
pIndexName
);
...
...
source/libs/parser/inc/sql.y
浏览文件 @
313248ce
...
...
@@ -33,6 +33,8 @@
} else {
pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INCOMPLETE_SQL);
}
} else if (TSDB_CODE_PAR_DB_NOT_SPECIFIED == pCxt->errCode && TK_NK_FLOAT == TOKEN.type) {
pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_SYNTAX_ERROR, TOKEN.z);
}
}
...
...
@@ -422,9 +424,7 @@ from_db_opt(A) ::= FROM db_name(B).
/************************************************ create index ********************************************************/
cmd ::= CREATE SMA INDEX not_exists_opt(D)
index_name(A) ON table_name(B) index_options(C). { pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, D, &A, &B, NULL, C); }
//cmd ::= CREATE FULLTEXT INDEX not_exists_opt(D)
// index_name(A) ON table_name(B) NK_LP col_name_list(C) NK_RP. { pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_FULLTEXT, D, &A, &B, C, NULL); }
index_name(A) ON full_table_name(B) index_options(C). { pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, D, &A, B, NULL, C); }
cmd ::= DROP INDEX exists_opt(B) index_name(A). { pCxt->pRootNode = createDropIndexStmt(pCxt, B, &A); }
index_options(A) ::= FUNCTION NK_LP func_list(B) NK_RP INTERVAL
...
...
source/libs/parser/src/parAstCreater.c
浏览文件 @
313248ce
...
...
@@ -1403,9 +1403,9 @@ SNode* createAlterDnodeStmt(SAstCreateContext* pCxt, const SToken* pDnode, const
}
SNode
*
createCreateIndexStmt
(
SAstCreateContext
*
pCxt
,
EIndexType
type
,
bool
ignoreExists
,
SToken
*
pIndexName
,
S
Token
*
pTableNam
e
,
SNodeList
*
pCols
,
SNode
*
pOptions
)
{
S
Node
*
pRealTabl
e
,
SNodeList
*
pCols
,
SNode
*
pOptions
)
{
CHECK_PARSER_STATUS
(
pCxt
);
if
(
!
checkIndexName
(
pCxt
,
pIndexName
)
||
!
checkTableName
(
pCxt
,
pTableName
)
||
!
checkDbName
(
pCxt
,
NULL
,
true
)
)
{
if
(
!
checkIndexName
(
pCxt
,
pIndexName
))
{
return
NULL
;
}
SCreateIndexStmt
*
pStmt
=
(
SCreateIndexStmt
*
)
nodesMakeNode
(
QUERY_NODE_CREATE_INDEX_STMT
);
...
...
@@ -1413,7 +1413,9 @@ SNode* createCreateIndexStmt(SAstCreateContext* pCxt, EIndexType type, bool igno
pStmt
->
indexType
=
type
;
pStmt
->
ignoreExists
=
ignoreExists
;
COPY_STRING_FORM_ID_TOKEN
(
pStmt
->
indexName
,
pIndexName
);
COPY_STRING_FORM_ID_TOKEN
(
pStmt
->
tableName
,
pTableName
);
strcpy
(
pStmt
->
dbName
,
((
SRealTableNode
*
)
pRealTable
)
->
table
.
dbName
);
strcpy
(
pStmt
->
tableName
,
((
SRealTableNode
*
)
pRealTable
)
->
table
.
tableName
);
nodesDestroyNode
(
pRealTable
);
pStmt
->
pCols
=
pCols
;
pStmt
->
pOptions
=
(
SIndexOptions
*
)
pOptions
;
return
(
SNode
*
)
pStmt
;
...
...
source/libs/parser/src/parAstParser.c
浏览文件 @
313248ce
...
...
@@ -244,7 +244,10 @@ static int32_t collectMetaKeyFromDropTable(SCollectMetaKeyCxt* pCxt, SDropTableS
}
static
int32_t
collectMetaKeyFromAlterTable
(
SCollectMetaKeyCxt
*
pCxt
,
SAlterTableStmt
*
pStmt
)
{
int32_t
code
=
reserveTableMetaInCache
(
pCxt
->
pParseCxt
->
acctId
,
pStmt
->
dbName
,
pStmt
->
tableName
,
pCxt
->
pMetaCache
);
int32_t
code
=
reserveDbCfgInCache
(
pCxt
->
pParseCxt
->
acctId
,
pStmt
->
dbName
,
pCxt
->
pMetaCache
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
reserveTableMetaInCache
(
pCxt
->
pParseCxt
->
acctId
,
pStmt
->
dbName
,
pStmt
->
tableName
,
pCxt
->
pMetaCache
);
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
reserveTableVgroupInCache
(
pCxt
->
pParseCxt
->
acctId
,
pStmt
->
dbName
,
pStmt
->
tableName
,
pCxt
->
pMetaCache
);
}
...
...
@@ -252,7 +255,11 @@ static int32_t collectMetaKeyFromAlterTable(SCollectMetaKeyCxt* pCxt, SAlterTabl
}
static
int32_t
collectMetaKeyFromAlterStable
(
SCollectMetaKeyCxt
*
pCxt
,
SAlterTableStmt
*
pStmt
)
{
return
reserveTableMetaInCache
(
pCxt
->
pParseCxt
->
acctId
,
pStmt
->
dbName
,
pStmt
->
tableName
,
pCxt
->
pMetaCache
);
int32_t
code
=
reserveDbCfgInCache
(
pCxt
->
pParseCxt
->
acctId
,
pStmt
->
dbName
,
pCxt
->
pMetaCache
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
reserveTableMetaInCache
(
pCxt
->
pParseCxt
->
acctId
,
pStmt
->
dbName
,
pStmt
->
tableName
,
pCxt
->
pMetaCache
);
}
return
code
;
}
static
int32_t
collectMetaKeyFromUseDatabase
(
SCollectMetaKeyCxt
*
pCxt
,
SUseDatabaseStmt
*
pStmt
)
{
...
...
source/libs/parser/src/parInsert.c
浏览文件 @
313248ce
...
...
@@ -434,7 +434,7 @@ static FORCE_INLINE int32_t checkAndTrimValue(SToken* pToken, char* tmpTokenBuf,
}
static
bool
isNullStr
(
SToken
*
pToken
)
{
return
((
pToken
->
type
==
TK_NK_STRING
)
&&
(
pToken
->
n
!=
0
)
&&
return
((
pToken
->
type
==
TK_NK_STRING
)
&&
(
strlen
(
TSDB_DATA_NULL_STR_L
)
==
pToken
->
n
)
&&
(
strncasecmp
(
TSDB_DATA_NULL_STR_L
,
pToken
->
z
,
pToken
->
n
)
==
0
));
}
...
...
source/libs/parser/src/parTranslater.c
浏览文件 @
313248ce
...
...
@@ -886,8 +886,7 @@ static EDealRes translateNormalValue(STranslateContext* pCxt, SValueNode* pVal,
}
case
TSDB_DATA_TYPE_VARCHAR
:
case
TSDB_DATA_TYPE_VARBINARY
:
{
if
(
strict
&&
(
!
IS_VAR_DATA_TYPE
(
pVal
->
node
.
resType
.
type
)
||
pVal
->
node
.
resType
.
bytes
>
targetDt
.
bytes
-
VARSTR_HEADER_SIZE
))
{
if
(
strict
&&
(
pVal
->
node
.
resType
.
bytes
>
targetDt
.
bytes
-
VARSTR_HEADER_SIZE
))
{
return
generateDealNodeErrMsg
(
pCxt
,
TSDB_CODE_PAR_WRONG_VALUE_TYPE
,
pVal
->
literal
);
}
pVal
->
datum
.
p
=
taosMemoryCalloc
(
1
,
targetDt
.
bytes
+
1
);
...
...
@@ -907,9 +906,6 @@ static EDealRes translateNormalValue(STranslateContext* pCxt, SValueNode* pVal,
break
;
}
case
TSDB_DATA_TYPE_NCHAR
:
{
if
(
strict
&&
!
IS_VAR_DATA_TYPE
(
pVal
->
node
.
resType
.
type
))
{
return
generateDealNodeErrMsg
(
pCxt
,
TSDB_CODE_PAR_WRONG_VALUE_TYPE
,
pVal
->
literal
);
}
pVal
->
datum
.
p
=
taosMemoryCalloc
(
1
,
targetDt
.
bytes
+
1
);
if
(
NULL
==
pVal
->
datum
.
p
)
{
return
generateDealNodeErrMsg
(
pCxt
,
TSDB_CODE_OUT_OF_MEMORY
);
...
...
@@ -4127,7 +4123,7 @@ static SSchema* getTagSchema(STableMeta* pTableMeta, const char* pTagName) {
return
NULL
;
}
static
int32_t
checkAlterSuperTable
Impl
(
STranslateContext
*
pCxt
,
SAlterTableStmt
*
pStmt
,
STableMeta
*
pTableMeta
)
{
static
int32_t
checkAlterSuperTable
BySchema
(
STranslateContext
*
pCxt
,
SAlterTableStmt
*
pStmt
,
STableMeta
*
pTableMeta
)
{
SSchema
*
pTagsSchema
=
getTableTagSchema
(
pTableMeta
);
if
(
getNumOfTags
(
pTableMeta
)
==
1
&&
pTagsSchema
->
type
==
TSDB_DATA_TYPE_JSON
&&
(
pStmt
->
alterType
==
TSDB_ALTER_TABLE_ADD_TAG
||
pStmt
->
alterType
==
TSDB_ALTER_TABLE_DROP_TAG
||
...
...
@@ -4153,11 +4149,16 @@ static int32_t checkAlterSuperTableImpl(STranslateContext* pCxt, SAlterTableStmt
}
static
int32_t
checkAlterSuperTable
(
STranslateContext
*
pCxt
,
SAlterTableStmt
*
pStmt
)
{
if
(
TSDB_ALTER_TABLE_UPDATE_TAG_VAL
==
pStmt
->
alterType
||
TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME
==
pStmt
->
alterType
)
{
if
(
TSDB_ALTER_TABLE_UPDATE_TAG_VAL
==
pStmt
->
alterType
)
{
return
generateSyntaxErrMsgExt
(
&
pCxt
->
msgBuf
,
TSDB_CODE_PAR_INVALID_ALTER_TABLE
,
"Set tag value only available for child table"
);
}
if
(
TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME
==
pStmt
->
alterType
)
{
return
generateSyntaxErrMsgExt
(
&
pCxt
->
msgBuf
,
TSDB_CODE_PAR_INVALID_ALTER_TABLE
,
"Rename column only available for normal table"
);
}
if
(
pStmt
->
alterType
==
TSDB_ALTER_TABLE_UPDATE_OPTIONS
&&
-
1
!=
pStmt
->
pOptions
->
ttl
)
{
return
generateSyntaxErrMsg
(
&
pCxt
->
msgBuf
,
TSDB_CODE_PAR_INVALID_ALTER_TABLE
);
}
...
...
@@ -4170,10 +4171,21 @@ static int32_t checkAlterSuperTable(STranslateContext* pCxt, SAlterTableStmt* pS
return
generateSyntaxErrMsg
(
&
pCxt
->
msgBuf
,
TSDB_CODE_PAR_INVALID_COL_JSON
);
}
SDbCfgInfo
dbCfg
=
{
0
};
int32_t
code
=
getDBCfg
(
pCxt
,
pStmt
->
dbName
,
&
dbCfg
);
if
(
TSDB_CODE_SUCCESS
==
code
&&
NULL
!=
dbCfg
.
pRetensions
&&
(
TSDB_ALTER_TABLE_ADD_COLUMN
==
pStmt
->
alterType
||
TSDB_ALTER_TABLE_DROP_COLUMN
==
pStmt
->
alterType
||
TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES
==
pStmt
->
alterType
))
{
return
generateSyntaxErrMsgExt
(
&
pCxt
->
msgBuf
,
TSDB_CODE_PAR_INVALID_ALTER_TABLE
,
"Modifying the table schema is not supported in databases "
"configured with the 'RETENTIONS' option"
);
}
STableMeta
*
pTableMeta
=
NULL
;
int32_t
code
=
getTableMeta
(
pCxt
,
pStmt
->
dbName
,
pStmt
->
tableName
,
&
pTableMeta
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
checkAlterSuperTableImpl
(
pCxt
,
pStmt
,
pTableMeta
);
code
=
getTableMeta
(
pCxt
,
pStmt
->
dbName
,
pStmt
->
tableName
,
&
pTableMeta
);
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
checkAlterSuperTableBySchema
(
pCxt
,
pStmt
,
pTableMeta
);
}
taosMemoryFree
(
pTableMeta
);
return
code
;
...
...
@@ -4311,9 +4323,8 @@ static int32_t getSmaIndexAst(STranslateContext* pCxt, SCreateIndexStmt* pStmt,
static
int32_t
buildCreateSmaReq
(
STranslateContext
*
pCxt
,
SCreateIndexStmt
*
pStmt
,
SMCreateSmaReq
*
pReq
)
{
SName
name
;
tNameExtractFullName
(
toName
(
pCxt
->
pParseCxt
->
acctId
,
pCxt
->
pParseCxt
->
db
,
pStmt
->
indexName
,
&
name
),
pReq
->
name
);
strcpy
(
name
.
tname
,
pStmt
->
tableName
);
name
.
tname
[
strlen
(
pStmt
->
tableName
)]
=
'\0'
;
tNameExtractFullName
(
&
name
,
pReq
->
stb
);
memset
(
&
name
,
0
,
sizeof
(
SName
));
tNameExtractFullName
(
toName
(
pCxt
->
pParseCxt
->
acctId
,
pStmt
->
dbName
,
pStmt
->
tableName
,
&
name
),
pReq
->
stb
);
pReq
->
igExists
=
pStmt
->
ignoreExists
;
pReq
->
interval
=
((
SValueNode
*
)
pStmt
->
pOptions
->
pInterval
)
->
datum
.
i
;
pReq
->
intervalUnit
=
((
SValueNode
*
)
pStmt
->
pOptions
->
pInterval
)
->
unit
;
...
...
@@ -4391,7 +4402,7 @@ static int32_t translateCreateSmaIndex(STranslateContext* pCxt, SCreateIndexStmt
static
int32_t
buildCreateFullTextReq
(
STranslateContext
*
pCxt
,
SCreateIndexStmt
*
pStmt
,
SMCreateFullTextReq
*
pReq
)
{
// impl later
return
0
;
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
translateCreateFullTextIndex
(
STranslateContext
*
pCxt
,
SCreateIndexStmt
*
pStmt
)
{
...
...
@@ -4405,12 +4416,10 @@ static int32_t translateCreateFullTextIndex(STranslateContext* pCxt, SCreateInde
}
static
int32_t
translateCreateIndex
(
STranslateContext
*
pCxt
,
SCreateIndexStmt
*
pStmt
)
{
if
(
INDEX_TYPE_SMA
==
pStmt
->
indexType
)
{
return
translateCreateSmaIndex
(
pCxt
,
pStmt
);
}
else
if
(
INDEX_TYPE_FULLTEXT
==
pStmt
->
indexType
)
{
if
(
INDEX_TYPE_FULLTEXT
==
pStmt
->
indexType
)
{
return
translateCreateFullTextIndex
(
pCxt
,
pStmt
);
}
return
TSDB_CODE_FAILED
;
return
translateCreateSmaIndex
(
pCxt
,
pStmt
)
;
}
static
int32_t
translateDropIndex
(
STranslateContext
*
pCxt
,
SDropIndexStmt
*
pStmt
)
{
...
...
source/libs/parser/src/parUtil.c
浏览文件 @
313248ce
...
...
@@ -653,7 +653,7 @@ static int32_t reserveTableReqInCacheImpl(const char* pTbFName, int32_t len, SHa
static
int32_t
reserveTableReqInCache
(
int32_t
acctId
,
const
char
*
pDb
,
const
char
*
pTable
,
SHashObj
**
pTables
)
{
char
fullName
[
TSDB_TABLE_FNAME_LEN
];
int32_t
len
=
snprintf
(
fullName
,
sizeof
(
fullName
),
"%d.
%s.%s
"
,
acctId
,
pDb
,
pTable
);
int32_t
len
=
snprintf
(
fullName
,
sizeof
(
fullName
),
"%d.
`%s`.`%s`
"
,
acctId
,
pDb
,
pTable
);
return
reserveTableReqInCacheImpl
(
fullName
,
len
,
pTables
);
}
...
...
source/libs/parser/src/sql.c
浏览文件 @
313248ce
...
...
@@ -219,82 +219,82 @@ typedef union {
#define YY_ACTTAB_COUNT (2395)
static
const
YYACTIONTYPE
yy_action
[]
=
{
/* 0 */
433
,
1937
,
434
,
1503
,
1654
,
1655
,
1599
,
326
,
441
,
548
,
/* 10 */
434
,
1503
,
39
,
37
,
1936
,
14
3
,
1709
,
1776
,
1934
,
1937
,
/* 10 */
434
,
1503
,
39
,
37
,
1936
,
14
4
,
1709
,
1776
,
1934
,
1937
,
/* 20 */
339
,
1469
,
1264
,
513
,
1610
,
40
,
38
,
36
,
35
,
34
,
/* 30 */
1793
,
325
,
16
3
,
1341
,
1706
,
1262
,
1934
,
124
,
1290
,
1023
,
/* 40 */
1006
,
1022
,
10
4
,
1772
,
1778
,
103
,
102
,
101
,
100
,
99
,
/* 50 */
9
8
,
97
,
96
,
95
,
156
,
570
,
1336
,
73
,
1811
,
344
,
/* 60 */
14
7
,
14
,
1653
,
1655
,
1568
,
88
,
577
,
1647
,
1270
,
1024
,
/* 70 */
1023
,
1762
,
1022
,
576
,
39
,
37
,
1404
,
12
2
,
121
,
1604
,
/* 80 */
1010
,
1011
,
339
,
1530
,
1264
,
469
,
1600
,
553
,
14
5
,
1
,
/* 90 */
1480
,
550
,
15
8
,
1879
,
1880
,
1341
,
1884
,
1262
,
1825
,
551
,
/* 100 */
1024
,
64
,
9
1
,
1794
,
579
,
1796
,
1797
,
575
,
1660
,
570
,
/* 30 */
1793
,
325
,
16
4
,
1341
,
1706
,
1262
,
1934
,
125
,
1290
,
1023
,
/* 40 */
1006
,
1022
,
10
5
,
1772
,
1778
,
104
,
103
,
102
,
101
,
100
,
/* 50 */
9
9
,
98
,
97
,
96
,
157
,
570
,
1336
,
73
,
1811
,
344
,
/* 60 */
14
8
,
14
,
1653
,
1655
,
1568
,
89
,
577
,
1647
,
1270
,
1024
,
/* 70 */
1023
,
1762
,
1022
,
576
,
39
,
37
,
1404
,
12
3
,
122
,
1604
,
/* 80 */
1010
,
1011
,
339
,
1530
,
1264
,
469
,
1600
,
553
,
14
6
,
1
,
/* 90 */
1480
,
550
,
15
9
,
1879
,
1880
,
1341
,
1884
,
1262
,
1825
,
551
,
/* 100 */
1024
,
64
,
9
2
,
1794
,
579
,
1796
,
1797
,
575
,
1660
,
570
,
/* 110 */
1291
,
662
,
1871
,
1408
,
1937
,
312
,
306
,
1867
,
1336
,
1289
,
/* 120 */
36
,
35
,
34
,
14
,
1658
,
1343
,
1344
,
1935
,
1937
,
10
4
,
/* 130 */
1270
,
1934
,
10
3
,
102
,
101
,
100
,
99
,
98
,
97
,
96
,
/* 140 */
9
5
,
164
,
450
,
1161
,
1162
,
1934
,
639
,
638
,
637
,
636
,
/* 150 */
349
,
2
,
635
,
634
,
12
5
,
629
,
628
,
627
,
626
,
625
,
/* 160 */
624
,
623
,
13
6
,
619
,
618
,
617
,
348
,
347
,
614
,
613
,
/* 120 */
36
,
35
,
34
,
14
,
1658
,
1343
,
1344
,
1935
,
1937
,
10
5
,
/* 130 */
1270
,
1934
,
10
4
,
103
,
102
,
101
,
100
,
99
,
98
,
97
,
/* 140 */
9
6
,
165
,
450
,
1161
,
1162
,
1934
,
639
,
638
,
637
,
636
,
/* 150 */
349
,
2
,
635
,
634
,
12
6
,
629
,
628
,
627
,
626
,
625
,
/* 160 */
624
,
623
,
13
7
,
619
,
618
,
617
,
348
,
347
,
614
,
613
,
/* 170 */
1265
,
316
,
1263
,
662
,
1491
,
33
,
32
,
1466
,
1937
,
40
,
/* 180 */
38
,
36
,
35
,
34
,
30
,
261
,
63
,
1343
,
1344
,
432
,
/* 190 */
1290
,
16
3
,
436
,
1268
,
1269
,
1934
,
1318
,
1319
,
1321
,
1322
,
/* 190 */
1290
,
16
4
,
436
,
1268
,
1269
,
1934
,
1318
,
1319
,
1321
,
1322
,
/* 200 */
1323
,
1324
,
1325
,
1326
,
572
,
568
,
1334
,
1335
,
1337
,
1338
,
/* 210 */
1339
,
1340
,
1342
,
1345
,
1468
,
1762
,
33
,
32
,
612
,
551
,
/* 220 */
40
,
38
,
36
,
35
,
34
,
1289
,
317
,
16
5
,
315
,
314
,
/* 230 */
610
,
473
,
1265
,
2
09
,
1263
,
475
,
1425
,
354
,
113
,
112
,
/* 240 */
11
1
,
110
,
109
,
108
,
107
,
106
,
105
,
253
,
384
,
134
,
/* 250 */
13
3
,
607
,
606
,
605
,
63
,
1268
,
1269
,
474
,
1318
,
1319
,
/* 220 */
40
,
38
,
36
,
35
,
34
,
1289
,
317
,
16
6
,
315
,
314
,
/* 230 */
610
,
473
,
1265
,
2
10
,
1263
,
475
,
1425
,
354
,
114
,
113
,
/* 240 */
11
2
,
111
,
110
,
109
,
108
,
107
,
106
,
253
,
384
,
135
,
/* 250 */
13
4
,
607
,
606
,
605
,
63
,
1268
,
1269
,
474
,
1318
,
1319
,
/* 260 */
1321
,
1322
,
1323
,
1324
,
1325
,
1326
,
572
,
568
,
1334
,
1335
,
/* 270 */
1337
,
1338
,
1339
,
1340
,
1342
,
1345
,
39
,
37
,
1937
,
534
,
/* 280 */
1423
,
1424
,
1426
,
1427
,
339
,
303
,
1264
,
378
,
43
,
75
,
/* 290 */
305
,
16
2
,
221
,
515
,
1793
,
1934
,
1320
,
1341
,
1435
,
1262
,
/* 290 */
305
,
16
3
,
222
,
515
,
1793
,
1934
,
1320
,
1341
,
1435
,
1262
,
/* 300 */
1119
,
601
,
600
,
599
,
1123
,
598
,
1125
,
1126
,
597
,
1128
,
/* 310 */
594
,
487
,
1134
,
591
,
1136
,
1137
,
588
,
585
,
440
,
1811
,
/* 320 */
1336
,
436
,
1811
,
537
,
16
5
,
14
,
497
,
541
,
1937
,
1461
,
/* 320 */
1336
,
436
,
1811
,
537
,
16
6
,
14
,
497
,
541
,
1937
,
1461
,
/* 330 */
577
,
1699
,
1270
,
551
,
377
,
1762
,
376
,
576
,
39
,
37
,
/* 340 */
20
8
,
162
,
170
,
63
,
548
,
1934
,
339
,
49
,
1264
,
525
,
/* 350 */
665
,
1244
,
1245
,
2
,
490
,
1490
,
22
2
,
223
,
484
,
1341
,
/* 360 */
55
,
1262
,
1825
,
20
7
,
268
,
540
,
93
,
1794
,
579
,
1796
,
/* 370 */
1797
,
575
,
12
4
,
570
,
1289
,
662
,
1871
,
1608
,
154
,
143
,
/* 340 */
20
9
,
163
,
171
,
63
,
548
,
1934
,
339
,
49
,
1264
,
525
,
/* 350 */
665
,
1244
,
1245
,
2
,
490
,
1490
,
22
3
,
224
,
484
,
1341
,
/* 360 */
55
,
1262
,
1825
,
20
8
,
268
,
540
,
94
,
1794
,
579
,
1796
,
/* 370 */
1797
,
575
,
12
5
,
570
,
1289
,
662
,
1871
,
1608
,
155
,
144
,
/* 380 */
1870
,
1867
,
1336
,
655
,
651
,
647
,
643
,
266
,
1611
,
1343
,
/* 390 */
1344
,
1270
,
16
5
,
1264
,
1270
,
58
,
1762
,
216
,
57
,
1489
,
/* 390 */
1344
,
1270
,
16
6
,
1264
,
1270
,
58
,
1762
,
217
,
57
,
1489
,
/* 400 */
543
,
538
,
42
,
39
,
37
,
1346
,
1262
,
1780
,
496
,
1488
,
/* 410 */
548
,
339
,
12
2
,
1264
,
305
,
8
,
1460
,
515
,
1776
,
89
,
/* 420 */
73
,
494
,
231
,
492
,
1341
,
542
,
1262
,
1
59
,
1879
,
1880
,
/* 430 */
63
,
1884
,
77
,
1
19
,
1265
,
1351
,
1263
,
662
,
124
,
1270
,
/* 410 */
548
,
339
,
12
3
,
1264
,
305
,
8
,
1460
,
515
,
1776
,
90
,
/* 420 */
73
,
494
,
231
,
492
,
1341
,
542
,
1262
,
1
60
,
1879
,
1880
,
/* 430 */
63
,
1884
,
77
,
1
20
,
1265
,
1351
,
1263
,
662
,
125
,
1270
,
/* 440 */
1762
,
1289
,
1603
,
63
,
1772
,
1778
,
328
,
1336
,
479
,
478
,
/* 450 */
1762
,
1343
,
1344
,
11
,
10
,
522
,
570
,
1268
,
1269
,
1270
,
/* 460 */
1318
,
1319
,
1321
,
1322
,
1323
,
1324
,
1325
,
1326
,
572
,
568
,
/* 470 */
1334
,
1335
,
1337
,
1338
,
1339
,
1340
,
1342
,
1345
,
12
2
,
215
,
/* 480 */
9
,
16
5
,
662
,
482
,
481
,
165
,
171
,
218
,
1586
,
195
,
/* 490 */
12
0
,
633
,
631
,
160
,
1879
,
1880
,
1265
,
1884
,
1263
,
1660
,
/* 500 */
477
,
480
,
662
,
1
49
,
61
,
1236
,
327
,
211
,
467
,
463
,
/* 510 */
459
,
455
,
19
4
,
1585
,
76
,
1658
,
1343
,
1344
,
71
,
1268
,
/* 470 */
1334
,
1335
,
1337
,
1338
,
1339
,
1340
,
1342
,
1345
,
12
3
,
216
,
/* 480 */
9
,
16
6
,
662
,
482
,
481
,
166
,
172
,
219
,
1586
,
196
,
/* 490 */
12
1
,
633
,
631
,
161
,
1879
,
1880
,
1265
,
1884
,
1263
,
1660
,
/* 500 */
477
,
480
,
662
,
1
50
,
61
,
1236
,
327
,
212
,
467
,
463
,
/* 510 */
459
,
455
,
19
5
,
1585
,
76
,
1658
,
1343
,
1344
,
71
,
1268
,
/* 520 */
1269
,
70
,
1318
,
1319
,
1321
,
1322
,
1323
,
1324
,
1325
,
1326
,
/* 530 */
572
,
568
,
1334
,
1335
,
1337
,
1338
,
1339
,
1340
,
1342
,
1345
,
/* 540 */
16
5
,
1265
,
1377
,
1263
,
74
,
1583
,
1288
,
192
,
450
,
81
,
/* 550 */
33
,
32
,
342
,
16
5
,
40
,
38
,
36
,
35
,
34
,
1533
,
/* 560 */
14
3
,
1265
,
1584
,
1263
,
1268
,
1269
,
621
,
512
,
165
,
1610
,
/* 540 */
16
6
,
1265
,
1377
,
1263
,
74
,
1583
,
1288
,
193
,
450
,
82
,
/* 550 */
33
,
32
,
342
,
16
6
,
40
,
38
,
36
,
35
,
34
,
1533
,
/* 560 */
14
4
,
1265
,
1584
,
1263
,
1268
,
1269
,
621
,
512
,
166
,
1610
,
/* 570 */
1601
,
1699
,
33
,
32
,
1010
,
1011
,
40
,
38
,
36
,
35
,
/* 580 */
34
,
16
5
,
173
,
604
,
1268
,
1269
,
1081
,
1318
,
1319
,
1321
,
/* 580 */
34
,
16
6
,
174
,
604
,
1268
,
1269
,
1081
,
1318
,
1319
,
1321
,
/* 590 */
1322
,
1323
,
1324
,
1325
,
1326
,
572
,
568
,
1334
,
1335
,
1337
,
/* 600 */
1338
,
1339
,
1340
,
1342
,
1345
,
39
,
37
,
22
,
1937
,
19
1
,
/* 610 */
18
4
,
1793
,
189
,
339
,
610
,
1264
,
446
,
1597
,
1320
,
1083
,
/* 620 */
513
,
16
2
,
612
,
482
,
481
,
1934
,
1341
,
525
,
1262
,
1593
,
/* 630 */
12
0
,
1707
,
182
,
134
,
133
,
607
,
606
,
605
,
114
,
1811
,
/* 600 */
1338
,
1339
,
1340
,
1342
,
1345
,
39
,
37
,
22
,
1937
,
19
2
,
/* 610 */
18
5
,
1793
,
190
,
339
,
610
,
1264
,
446
,
1597
,
1320
,
1083
,
/* 620 */
513
,
16
3
,
612
,
482
,
481
,
1934
,
1341
,
525
,
1262
,
1593
,
/* 630 */
12
1
,
1707
,
183
,
135
,
134
,
607
,
606
,
605
,
115
,
1811
,
/* 640 */
477
,
480
,
7
,
345
,
548
,
471
,
610
,
577
,
1487
,
1336
,
/* 650 */
438
,
14
3
,
1762
,
525
,
576
,
1608
,
1287
,
1595
,
419
,
352
,
/* 660 */
1610
,
1270
,
351
,
1365
,
16
7
,
134
,
133
,
607
,
606
,
605
,
/* 670 */
33
,
32
,
12
4
,
1486
,
40
,
38
,
36
,
35
,
34
,
1825
,
/* 650 */
438
,
14
4
,
1762
,
525
,
576
,
1608
,
1287
,
1595
,
419
,
352
,
/* 660 */
1610
,
1270
,
351
,
1365
,
16
8
,
135
,
134
,
607
,
606
,
605
,
/* 670 */
33
,
32
,
12
5
,
1486
,
40
,
38
,
36
,
35
,
34
,
1825
,
/* 680 */
1485
,
1608
,
9
,
280
,
1794
,
579
,
1796
,
1797
,
575
,
1762
,
/* 690 */
570
,
33
,
32
,
553
,
505
,
40
,
38
,
36
,
35
,
34
,
/* 700 */
1937
,
33
,
32
,
1937
,
662
,
40
,
38
,
36
,
35
,
34
,
/* 710 */
17
5
,
174
,
122
,
162
,
1762
,
498
,
162
,
1934
,
1343
,
1344
,
/* 710 */
17
6
,
175
,
123
,
163
,
1762
,
498
,
163
,
1934
,
1343
,
1344
,
/* 720 */
1934
,
1762
,
1705
,
307
,
300
,
27
,
1484
,
251
,
1879
,
547
,
/* 730 */
525
,
546
,
39
,
37
,
1937
,
1370
,
1483
,
302
,
1886
,
1287
,
/* 740 */
339
,
11
4
,
1264
,
525
,
307
,
555
,
412
,
164
,
476
,
424
,
/* 750 */
1591
,
1934
,
1303
,
1341
,
382
,
1262
,
1937
,
21
2
,
1608
,
373
,
/* 760 */
1363
,
1886
,
1883
,
1265
,
1509
,
1263
,
397
,
1762
,
425
,
16
2
,
/* 740 */
339
,
11
5
,
1264
,
525
,
307
,
555
,
412
,
165
,
476
,
424
,
/* 750 */
1591
,
1934
,
1303
,
1341
,
382
,
1262
,
1937
,
21
3
,
1608
,
373
,
/* 760 */
1363
,
1886
,
1883
,
1265
,
1509
,
1263
,
397
,
1762
,
425
,
16
3
,
/* 770 */
399
,
1608
,
1482
,
1934
,
1479
,
1292
,
1336
,
1762
,
375
,
371
,
/* 780 */
1704
,
1363
,
300
,
1415
,
1478
,
1882
,
1268
,
1269
,
1270
,
1318
,
/* 790 */
1319
,
1321
,
1322
,
1323
,
1324
,
1325
,
1326
,
572
,
568
,
1334
,
...
...
@@ -311,111 +311,111 @@ static const YYACTIONTYPE yy_action[] = {
/* 900 */
1359
,
1360
,
1361
,
1362
,
1366
,
1367
,
1368
,
1369
,
1471
,
1762
,
/* 910 */
1793
,
1881
,
233
,
1268
,
1269
,
1762
,
1318
,
1319
,
1321
,
1322
,
/* 920 */
1323
,
1324
,
1325
,
1326
,
572
,
568
,
1334
,
1335
,
1337
,
1338
,
/* 930 */
1339
,
1340
,
1342
,
1345
,
525
,
14
4
,
525
,
525
,
1811
,
1273
,
/* 930 */
1339
,
1340
,
1342
,
1345
,
525
,
14
5
,
525
,
525
,
1811
,
1273
,
/* 940 */
279
,
525
,
1891
,
1397
,
548
,
383
,
577
,
389
,
404
,
1762
,
/* 950 */
603
,
1762
,
405
,
576
,
277
,
60
,
273
,
13
2
,
59
,
1638
,
/* 960 */
44
,
4
,
1608
,
1749
,
1608
,
1608
,
1481
,
553
,
20
0
,
1608
,
/* 970 */
525
,
19
8
,
124
,
1520
,
178
,
429
,
427
,
1780
,
1825
,
1515
,
/* 980 */
560
,
449
,
9
1
,
1794
,
579
,
1796
,
1797
,
575
,
1776
,
570
,
/* 990 */
566
,
20
2
,
1871
,
553
,
201
,
483
,
306
,
1867
,
1608
,
336
,
/* 1000 */
335
,
485
,
525
,
41
,
54
,
557
,
63
,
22
0
,
1937
,
1278
,
/* 1010 */
361
,
1513
,
12
2
,
1605
,
1772
,
1778
,
334
,
53
,
509
,
1320
,
/* 1020 */
1341
,
16
2
,
1271
,
11
,
10
,
1934
,
570
,
251
,
1879
,
547
,
/* 1030 */
1608
,
546
,
256
,
488
,
1937
,
525
,
20
4
,
1781
,
206
,
203
,
/* 1040 */
12
8
,
205
,
1793
,
1336
,
90
,
131
,
1737
,
162
,
1776
,
51
,
/* 1050 */
1213
,
1934
,
33
,
32
,
22
4
,
1270
,
40
,
38
,
36
,
35
,
/* 1060 */
34
,
33
,
32
,
1608
,
13
2
,
40
,
38
,
36
,
35
,
34
,
/* 950 */
603
,
1762
,
405
,
576
,
277
,
60
,
273
,
13
3
,
59
,
1638
,
/* 960 */
44
,
4
,
1608
,
1749
,
1608
,
1608
,
1481
,
553
,
20
1
,
1608
,
/* 970 */
525
,
19
9
,
125
,
1520
,
179
,
429
,
427
,
1780
,
1825
,
1515
,
/* 980 */
560
,
449
,
9
2
,
1794
,
579
,
1796
,
1797
,
575
,
1776
,
570
,
/* 990 */
566
,
20
3
,
1871
,
553
,
202
,
483
,
306
,
1867
,
1608
,
336
,
/* 1000 */
335
,
485
,
525
,
41
,
54
,
557
,
63
,
22
1
,
1937
,
1278
,
/* 1010 */
361
,
1513
,
12
3
,
1605
,
1772
,
1778
,
334
,
53
,
509
,
1320
,
/* 1020 */
1341
,
16
3
,
1271
,
11
,
10
,
1934
,
570
,
251
,
1879
,
547
,
/* 1030 */
1608
,
546
,
256
,
488
,
1937
,
525
,
20
5
,
1781
,
207
,
204
,
/* 1040 */
12
9
,
206
,
1793
,
1336
,
91
,
132
,
1737
,
163
,
1776
,
51
,
/* 1050 */
1213
,
1934
,
33
,
32
,
22
5
,
1270
,
40
,
38
,
36
,
35
,
/* 1060 */
34
,
33
,
32
,
1608
,
13
3
,
40
,
38
,
36
,
35
,
34
,
/* 1070 */
1811
,
525
,
1463
,
1464
,
1772
,
1778
,
1276
,
1569
,
552
,
68
,
/* 1080 */
67
,
381
,
506
,
1762
,
1
69
,
576
,
570
,
518
,
51
,
1783
,
/* 1090 */
615
,
535
,
230
,
1272
,
8
7
,
468
,
1371
,
1400
,
565
,
1608
,
/* 1100 */
301
,
499
,
237
,
369
,
84
,
367
,
363
,
359
,
356
,
353
,
/* 1110 */
1825
,
1112
,
1069
,
41
,
92
,
1794
,
579
,
1796
,
1797
,
575
,
/* 1080 */
67
,
381
,
506
,
1762
,
1
70
,
576
,
570
,
518
,
468
,
1783
,
/* 1090 */
615
,
535
,
230
,
1272
,
8
8
,
245
,
1371
,
1400
,
565
,
1608
,
/* 1100 */
301
,
499
,
51
,
369
,
85
,
367
,
363
,
359
,
356
,
353
,
/* 1110 */
1825
,
1112
,
1069
,
237
,
93
,
1794
,
579
,
1796
,
1797
,
575
,
/* 1120 */
525
,
570
,
1355
,
525
,
1871
,
525
,
525
,
525
,
330
,
1867
,
/* 1130 */
15
7
,
510
,
1785
,
1050
,
523
,
1422
,
524
,
262
,
346
,
616
,
/* 1140 */
41
,
1793
,
16
1
,
1303
,
165
,
245
,
350
,
1504
,
1608
,
240
,
/* 1150 */
1897
,
1608
,
583
,
1608
,
1608
,
1608
,
1812
,
1279
,
131
,
1274
,
/* 1160 */
1327
,
1067
,
1648
,
132
,
1901
,
116
,
1051
,
549
,
250
,
1811
,
/* 1170 */
25
5
,
258
,
3
,
260
,
131
,
5
,
355
,
552
,
313
,
360
,
/* 1180 */
1282
,
1284
,
1762
,
1793
,
576
,
561
,
1229
,
272
,
172
,
269
,
/* 1190 */
385
,
1287
,
568
,
1334
,
1335
,
1337
,
1338
,
1339
,
1340
,
1140
,
/* 1200 */
406
,
142
,
1701
,
413
,
421
,
1144
,
420
,
422
,
558
,
1825
,
/* 1210 */
1151
,
1811
,
1149
,
92
,
1794
,
579
,
1796
,
1797
,
575
,
577
,
/* 1220 */
570
,
135
,
426
,
1871
,
1762
,
428
,
576
,
330
,
1867
,
157
,
/* 1230 */
1275
,
1293
,
431
,
430
,
439
,
1296
,
1793
,
1295
,
442
,
181
,
/* 1240 */
18
3
,
443
,
444
,
1297
,
447
,
445
,
186
,
188
,
1294
,
1898
,
/* 1250 */
448
,
1825
,
190
,
1793
,
72
,
92
,
1794
,
579
,
1796
,
1797
,
/* 1260 */
575
,
193
,
570
,
451
,
1811
,
1871
,
470
,
1742
,
500
,
330
,
/* 1270 */
1867
,
1950
,
577
,
472
,
1598
,
304
,
197
,
1762
,
1594
,
576
,
/* 1280 */
1905
,
1811
,
1
99
,
115
,
137
,
507
,
138
,
1596
,
1592
,
577
,
/* 1290 */
2
10
,
139
,
270
,
501
,
1762
,
140
,
576
,
213
,
511
,
322
,
/* 1300 */
5
33
,
217
,
514
,
129
,
1825
,
519
,
226
,
271
,
92
,
1794
,
/* 1310 */
579
,
1796
,
1797
,
575
,
1
292
,
570
,
1793
,
504
,
1871
,
520
,
/* 1320 */
1741
,
1825
,
330
,
1867
,
1950
,
92
,
1794
,
579
,
1796
,
1797
,
/* 1330 */
575
,
228
,
570
,
1928
,
1711
,
1871
,
516
,
130
,
324
,
330
,
/* 1340 */
1867
,
1950
,
80
,
521
,
1811
,
1609
,
536
,
1902
,
529
,
531
,
/* 1350 */
1890
,
235
,
577
,
239
,
6
,
532
,
1912
,
1762
,
329
,
576
,
/* 1360 */
545
,
53
9
,
530
,
528
,
527
,
1397
,
1793
,
123
,
249
,
1291
,
/* 1370 */
1887
,
562
,
1911
,
553
,
559
,
331
,
1793
,
48
,
82
,
1893
,
/* 1380 */
581
,
1652
,
1581
,
658
,
1825
,
274
,
659
,
246
,
286
,
1794
,
/* 1390 */
579
,
1796
,
1797
,
575
,
1811
,
570
,
52
,
265
,
244
,
248
,
/* 1400 */
151
,
254
,
577
,
1933
,
1811
,
1953
,
661
,
1762
,
247
,
576
,
/* 1410 */
1852
,
150
,
577
,
276
,
1937
,
287
,
1756
,
1762
,
1793
,
576
,
/* 1420 */
2
97
,
278
,
296
,
553
,
556
,
563
,
1755
,
164
,
257
,
65
,
/* 1430 */
1754
,
1934
,
1753
,
66
,
1825
,
259
,
1750
,
357
,
286
,
1794
,
/* 1440 */
579
,
1796
,
1797
,
575
,
1825
,
570
,
1811
,
358
,
93
,
1794
,
/* 1450 */
579
,
1796
,
1797
,
575
,
574
,
570
,
1256
,
12
57
,
1871
,
1762
,
/* 1460 */
168
,
576
,
564
,
1867
,
1937
,
362
,
1748
,
366
,
364
,
365
,
/* 1470 */
1747
,
368
,
1793
,
370
,
1745
,
372
,
1744
,
162
,
1746
,
374
,
/* 1480 */
1
232
,
1934
,
1231
,
1722
,
1793
,
1721
,
1825
,
379
,
1720
,
380
,
/* 1130 */
15
8
,
510
,
1785
,
1050
,
227
,
525
,
523
,
524
,
262
,
616
,
/* 1140 */
41
,
1793
,
16
2
,
1303
,
166
,
350
,
346
,
1504
,
1608
,
1422
,
/* 1150 */
1897
,
1608
,
41
,
1608
,
1608
,
1608
,
1812
,
1279
,
583
,
1274
,
/* 1160 */
240
,
1067
,
1648
,
1608
,
1901
,
132
,
1051
,
549
,
255
,
1811
,
/* 1170 */
25
0
,
258
,
3
,
260
,
133
,
117
,
355
,
552
,
132
,
5
,
/* 1180 */
1282
,
1284
,
1762
,
1793
,
576
,
561
,
360
,
1327
,
313
,
269
,
/* 1190 */
173
,
1229
,
568
,
1334
,
1335
,
1337
,
1338
,
1339
,
1340
,
272
,
/* 1200 */
385
,
143
,
1287
,
406
,
1701
,
1140
,
421
,
413
,
558
,
1825
,
/* 1210 */
426
,
1811
,
1144
,
93
,
1794
,
579
,
1796
,
1797
,
575
,
577
,
/* 1220 */
570
,
1151
,
1149
,
1871
,
1762
,
136
,
576
,
330
,
1867
,
158
,
/* 1230 */
1275
,
420
,
422
,
428
,
430
,
1293
,
1793
,
431
,
1296
,
439
,
/* 1240 */
18
2
,
443
,
442
,
184
,
444
,
1295
,
1297
,
447
,
445
,
1898
,
/* 1250 */
187
,
1825
,
189
,
1793
,
1294
,
93
,
1794
,
579
,
1796
,
1797
,
/* 1260 */
575
,
448
,
570
,
191
,
1811
,
1871
,
72
,
451
,
194
,
330
,
/* 1270 */
1867
,
1950
,
577
,
472
,
470
,
304
,
1598
,
1762
,
198
,
576
,
/* 1280 */
1905
,
1811
,
1
16
,
1594
,
1742
,
211
,
200
,
500
,
138
,
577
,
/* 1290 */
2
70
,
139
,
1596
,
507
,
1762
,
1592
,
576
,
140
,
141
,
214
,
/* 1300 */
5
11
,
218
,
322
,
501
,
1825
,
533
,
519
,
1292
,
93
,
1794
,
/* 1310 */
579
,
1796
,
1797
,
575
,
1
609
,
570
,
1793
,
228
,
1871
,
504
,
/* 1320 */
130
,
1825
,
330
,
1867
,
1950
,
93
,
1794
,
579
,
1796
,
1797
,
/* 1330 */
575
,
514
,
570
,
1928
,
1741
,
1871
,
1711
,
516
,
131
,
330
,
/* 1340 */
1867
,
1950
,
324
,
521
,
1811
,
271
,
81
,
520
,
1902
,
529
,
/* 1350 */
1890
,
235
,
577
,
536
,
239
,
6
,
1912
,
1762
,
531
,
576
,
/* 1360 */
545
,
53
2
,
530
,
329
,
539
,
1911
,
1793
,
528
,
527
,
1397
,
/* 1370 */
124
,
249
,
1291
,
553
,
562
,
559
,
1793
,
48
,
331
,
1887
,
/* 1380 */
83
,
581
,
1652
,
246
,
1825
,
248
,
1893
,
265
,
286
,
1794
,
/* 1390 */
579
,
1796
,
1797
,
575
,
1811
,
570
,
658
,
274
,
1581
,
659
,
/* 1400 */
247
,
1933
,
577
,
661
,
1811
,
52
,
244
,
1762
,
151
,
576
,
/* 1410 */
152
,
1852
,
577
,
276
,
1937
,
287
,
297
,
1762
,
1793
,
576
,
/* 1420 */
2
78
,
1756
,
296
,
553
,
254
,
1755
,
556
,
165
,
257
,
1953
,
/* 1430 */
65
,
1934
,
1754
,
1753
,
1825
,
66
,
1750
,
259
,
286
,
1794
,
/* 1440 */
579
,
1796
,
1797
,
575
,
1825
,
570
,
1811
,
563
,
94
,
1794
,
/* 1450 */
579
,
1796
,
1797
,
575
,
574
,
570
,
358
,
3
57
,
1871
,
1762
,
/* 1460 */
362
,
576
,
564
,
1867
,
1937
,
1256
,
1257
,
1748
,
1747
,
169
,
/* 1470 */
364
,
366
,
1793
,
365
,
1746
,
370
,
368
,
163
,
1745
,
372
,
/* 1480 */
1
744
,
1934
,
374
,
1232
,
1793
,
1231
,
1825
,
1722
,
1721
,
380
,
/* 1490 */
294
,
1794
,
579
,
1796
,
1797
,
575
,
573
,
570
,
567
,
1843
,
/* 1500 */
1811
,
1719
,
1201
,
1694
,
126
,
1693
,
1692
,
1691
,
577
,
69
,
/* 1510 */
169
0
,
1689
,
1811
,
1762
,
1688
,
576
,
1687
,
1686
,
395
,
39
6
,
/* 1520 */
577
,
1685
,
398
,
1684
,
1683
,
1762
,
1682
,
576
,
1681
,
1680
,
/* 1530 */
16
79
,
1678
,
1677
,
1676
,
1675
,
1674
,
1673
,
1672
,
1671
,
1670
,
/* 1540 */
1825
,
1793
,
127
,
1669
,
146
,
1794
,
579
,
1796
,
1797
,
575
,
/* 1550 */
16
68
,
570
,
1825
,
180
,
176
,
1534
,
93
,
1794
,
579
,
1796
,
/* 1560 */
1797
,
575
,
166
7
,
570
,
1666
,
1793
,
1871
,
1203
,
1664
,
1811
,
/* 1570 */
166
5
,
1868
,
1663
,
1662
,
323
,
1661
,
1535
,
577
,
177
,
1532
,
/* 1580 */
1500
,
117
,
1762
,
1793
,
576
,
1013
,
179
,
435
,
554
,
1951
,
/* 1590 */
155
,
1012
,
437
,
1811
,
1499
,
118
,
1735
,
1729
,
526
,
1718
,
/* 1600 */
185
,
577
,
187
,
1717
,
1703
,
1587
,
1762
,
1531
,
576
,
1825
,
/* 1610 */
1
043
,
1811
,
1529
,
295
,
1794
,
579
,
1796
,
1797
,
575
,
577
,
/* 1620 */
570
,
452
,
454
,
1527
,
1762
,
453
,
576
,
456
,
457
,
458
,
/* 1630 */
1525
,
461
,
462
,
1825
,
1523
,
460
,
464
,
295
,
1794
,
579
,
/* 1640 */
1796
,
1797
,
575
,
15
12
,
570
,
1793
,
1511
,
466
,
1496
,
465
,
/* 1650 */
1589
,
1825
,
50
,
196
,
1154
,
290
,
1794
,
579
,
1796
,
1797
,
/* 1660 */
575
,
1155
,
570
,
1793
,
1588
,
630
,
1080
,
632
,
1077
,
1075
,
/* 1670 */
107
6
,
1521
,
1516
,
1811
,
318
,
319
,
486
,
1514
,
320
,
489
,
/* 1680 */
1495
,
577
,
1494
,
1493
,
491
,
495
,
1762
,
94
,
576
,
493
,
/* 1690 */
1734
,
1811
,
1238
,
544
,
1728
,
502
,
1716
,
56
,
141
,
574
,
/* 1700 */
1714
,
1715
,
1713
,
214
,
1762
,
1712
,
576
,
15
,
503
,
321
,
/* 1710 */
219
,
1710
,
1702
,
1825
,
225
,
1793
,
229
,
146
,
1794
,
579
,
/* 1720 */
1796
,
1797
,
575
,
227
,
570
,
508
,
78
,
79
,
84
,
517
,
/* 1730 */
41
,
1825
,
232
,
1793
,
23
,
294
,
1794
,
579
,
1796
,
1797
,
/* 1740 */
575
,
1248
,
570
,
1811
,
1844
,
1437
,
16
,
234
,
338
,
236
,
/* 1750 */
1
419
,
577
,
47
,
242
,
238
,
148
,
1762
,
1793
,
576
,
1421
,
/* 1760 */
1414
,
1811
,
1952
,
241
,
24
,
243
,
340
,
1783
,
83
,
577
,
/* 1770 */
25
,
1394
,
252
,
46
,
1762
,
1393
,
576
,
1782
,
1454
,
15
2
,
/* 1780 */
18
,
1443
,
1449
,
1825
,
1448
,
1811
,
332
,
295
,
1794
,
579
,
/* 1790 */
1796
,
1797
,
575
,
577
,
570
,
145
3
,
17
,
1452
,
1762
,
33
3
,
/* 1800 */
576
,
1825
,
10
,
1280
,
1356
,
295
,
1794
,
579
,
1796
,
1797
,
/* 1810 */
575
,
19
,
570
,
1793
,
45
,
1331
,
13
,
1828
,
569
,
153
,
/* 1820 */
166
,
1311
,
580
,
578
,
1329
,
1825
,
1328
,
1793
,
31
,
281
,
/* 1830 */
1794
,
579
,
1796
,
1797
,
575
,
12
,
570
,
20
,
582
,
21
,
/* 1840 */
341
,
1811
,
1141
,
584
,
586
,
1138
,
587
,
589
,
1135
,
577
,
/* 1850 */
590
,
592
,
595
,
1129
,
1762
,
1811
,
576
,
1127
,
593
,
596
,
/* 1860 */
11
18
,
85
,
1150
,
577
,
86
,
62
,
1133
,
602
,
1762
,
1793
,
/* 1870 */
576
,
263
,
1132
,
1146
,
1072
,
1041
,
611
,
1071
,
113
1
,
1793
,
/* 1880 */
107
0
,
1825
,
1068
,
1066
,
113
0
,
282
,
1794
,
579
,
1796
,
1797
,
/* 1890 */
575
,
106
5
,
570
,
1064
,
1087
,
1825
,
2
64
,
1811
,
620
,
289
,
/* 1900 */
1794
,
579
,
1796
,
1797
,
575
,
577
,
570
,
1811
,
10
62
,
1061
,
/* 1910 */
1762
,
106
0
,
576
,
1059
,
1058
,
577
,
1057
,
1056
,
1084
,
1082
,
/* 1920 */
1762
,
1793
,
576
,
10
53
,
1047
,
1528
,
1052
,
1526
,
1049
,
1048
,
/* 1930 */
1
046
,
640
,
641
,
644
,
645
,
1524
,
642
,
1825
,
646
,
648
,
/* 1940 */
6
50
,
291
,
1794
,
579
,
1796
,
1797
,
575
,
1825
,
570
,
1811
,
/* 1950 */
6
49
,
283
,
1794
,
579
,
1796
,
1797
,
575
,
577
,
570
,
1522
,
/* 1960 */
6
53
,
652
,
1762
,
654
,
576
,
1510
,
656
,
1003
,
1492
,
267
,
/* 1970 */
660
,
1467
,
1266
,
275
,
1793
,
663
,
664
,
1467
,
1467
,
1467
,
/* 1500 */
1811
,
379
,
1720
,
1719
,
1201
,
1694
,
127
,
1693
,
577
,
1692
,
/* 1510 */
169
1
,
69
,
1811
,
1762
,
1690
,
576
,
1689
,
1688
,
1687
,
168
6
,
/* 1520 */
577
,
395
,
1685
,
398
,
396
,
1762
,
1684
,
576
,
1683
,
1682
,
/* 1530 */
16
81
,
1680
,
1679
,
1678
,
1677
,
1676
,
1675
,
1674
,
1673
,
1672
,
/* 1540 */
1825
,
1793
,
1671
,
128
,
147
,
1794
,
579
,
1796
,
1797
,
575
,
/* 1550 */
16
70
,
570
,
1825
,
180
,
177
,
1534
,
94
,
1794
,
579
,
1796
,
/* 1560 */
1797
,
575
,
166
9
,
570
,
1668
,
1793
,
1871
,
1203
,
1664
,
1811
,
/* 1570 */
166
7
,
1868
,
1666
,
1665
,
323
,
1663
,
1662
,
577
,
1661
,
1535
,
/* 1580 */
178
,
1532
,
1762
,
1793
,
576
,
1500
,
118
,
156
,
554
,
1951
,
/* 1590 */
1499
,
1013
,
435
,
1811
,
1012
,
437
,
181
,
119
,
526
,
1735
,
/* 1600 */
1729
,
577
,
1718
,
188
,
186
,
1717
,
1762
,
1703
,
576
,
1825
,
/* 1610 */
1
587
,
1811
,
1531
,
295
,
1794
,
579
,
1796
,
1797
,
575
,
577
,
/* 1620 */
570
,
1043
,
1529
,
452
,
1762
,
454
,
576
,
1527
,
456
,
453
,
/* 1630 */
457
,
458
,
1525
,
1825
,
461
,
462
,
460
,
295
,
1794
,
579
,
/* 1640 */
1796
,
1797
,
575
,
15
23
,
570
,
1793
,
464
,
466
,
1512
,
1511
,
/* 1650 */
465
,
1825
,
1496
,
1589
,
1588
,
290
,
1794
,
579
,
1796
,
1797
,
/* 1660 */
575
,
50
,
570
,
1793
,
1155
,
197
,
1154
,
630
,
1080
,
632
,
/* 1670 */
107
7
,
1076
,
1075
,
1811
,
1521
,
1516
,
1514
,
318
,
319
,
486
,
/* 1680 */
320
,
577
,
489
,
1495
,
1494
,
1493
,
1762
,
495
,
576
,
95
,
/* 1690 */
1734
,
1811
,
491
,
544
,
493
,
1238
,
1728
,
56
,
142
,
574
,
/* 1700 */
502
,
1716
,
1714
,
1715
,
1762
,
503
,
576
,
1713
,
215
,
321
,
/* 1710 */
508
,
1712
,
15
,
1825
,
226
,
1793
,
1710
,
147
,
1794
,
579
,
/* 1720 */
1796
,
1797
,
575
,
1248
,
570
,
1702
,
517
,
220
,
78
,
80
,
/* 1730 */
79
,
1825
,
232
,
1793
,
23
,
294
,
1794
,
579
,
1796
,
1797
,
/* 1740 */
575
,
85
,
570
,
1811
,
1844
,
243
,
16
,
229
,
338
,
41
,
/* 1750 */
1
783
,
577
,
1437
,
234
,
17
,
238
,
1762
,
1793
,
576
,
252
,
/* 1760 */
236
,
1811
,
1952
,
1419
,
47
,
242
,
340
,
1421
,
149
,
577
,
/* 1770 */
241
,
24
,
25
,
46
,
1762
,
1449
,
576
,
1414
,
84
,
178
2
,
/* 1780 */
153
,
18
,
1394
,
1825
,
1393
,
1811
,
45
,
295
,
1794
,
579
,
/* 1790 */
1796
,
1797
,
575
,
577
,
570
,
145
4
,
1448
,
13
,
1762
,
144
3
,
/* 1800 */
576
,
1825
,
332
,
1453
,
1452
,
295
,
1794
,
579
,
1796
,
1797
,
/* 1810 */
575
,
333
,
570
,
1793
,
10
,
1280
,
19
,
1828
,
154
,
1311
,
/* 1820 */
569
,
1356
,
582
,
167
,
31
,
1825
,
1331
,
1793
,
12
,
281
,
/* 1830 */
1794
,
579
,
1796
,
1797
,
575
,
1329
,
570
,
1328
,
20
,
21
,
/* 1840 */
341
,
1811
,
580
,
1141
,
584
,
587
,
578
,
1138
,
586
,
577
,
/* 1850 */
1135
,
589
,
590
,
592
,
1762
,
1811
,
576
,
595
,
1118
,
1133
,
/* 1860 */
11
29
,
1127
,
1150
,
577
,
593
,
1132
,
602
,
596
,
1762
,
1793
,
/* 1870 */
576
,
1131
,
1130
,
263
,
86
,
87
,
1146
,
62
,
61
1
,
1793
,
/* 1880 */
107
2
,
1825
,
1041
,
1071
,
107
0
,
282
,
1794
,
579
,
1796
,
1797
,
/* 1890 */
575
,
106
8
,
570
,
1066
,
1065
,
1825
,
10
64
,
1811
,
620
,
289
,
/* 1900 */
1794
,
579
,
1796
,
1797
,
575
,
577
,
570
,
1811
,
10
87
,
264
,
/* 1910 */
1762
,
106
2
,
576
,
1061
,
1060
,
577
,
1059
,
1058
,
1057
,
1056
,
/* 1920 */
1762
,
1793
,
576
,
10
84
,
1082
,
1047
,
1053
,
1528
,
1052
,
1049
,
/* 1930 */
1
526
,
1048
,
1046
,
640
,
641
,
644
,
1524
,
1825
,
642
,
648
,
/* 1940 */
6
46
,
291
,
1794
,
579
,
1796
,
1797
,
575
,
1825
,
570
,
1811
,
/* 1950 */
6
50
,
283
,
1794
,
579
,
1796
,
1797
,
575
,
577
,
570
,
645
,
/* 1960 */
6
49
,
1522
,
1762
,
652
,
576
,
653
,
1510
,
656
,
654
,
1003
,
/* 1970 */
1492
,
267
,
660
,
663
,
1793
,
1266
,
275
,
664
,
1467
,
1467
,
/* 1980 */
1467
,
1467
,
1467
,
1467
,
1467
,
1467
,
1467
,
1467
,
1467
,
1825
,
/* 1990 */
1467
,
1467
,
1793
,
292
,
1794
,
579
,
1796
,
1797
,
575
,
1467
,
/* 2000 */
570
,
1467
,
1811
,
1467
,
1467
,
1467
,
1467
,
1467
,
1467
,
1467
,
...
...
@@ -568,96 +568,96 @@ static const YYCODETYPE yy_lookahead[] = {
/* 1050 */
90
,
375
,
8
,
9
,
90
,
68
,
12
,
13
,
14
,
15
,
/* 1060 */
16
,
8
,
9
,
296
,
43
,
12
,
13
,
14
,
15
,
16
,
/* 1070 */
288
,
268
,
125
,
126
,
327
,
328
,
172
,
277
,
296
,
162
,
/* 1080 */
163
,
164
,
279
,
301
,
167
,
303
,
339
,
90
,
43
,
46
,
/* 1090 */
13
,
369
,
90
,
35
,
89
,
269
,
90
,
228
,
111
,
296
,
/* 1080 */
163
,
164
,
279
,
301
,
167
,
303
,
339
,
90
,
269
,
46
,
/* 1090 */
13
,
369
,
90
,
35
,
89
,
365
,
90
,
228
,
111
,
296
,
/* 1100 */
183
,
324
,
43
,
186
,
99
,
188
,
189
,
190
,
191
,
192
,
/* 1110 */
328
,
90
,
35
,
43
,
332
,
333
,
334
,
335
,
336
,
337
,
/* 1120 */
268
,
339
,
193
,
268
,
342
,
268
,
268
,
268
,
346
,
347
,
/* 1130 */
348
,
279
,
89
,
35
,
279
,
90
,
279
,
279
,
279
,
13
,
/* 1140 */
43
,
260
,
360
,
90
,
227
,
365
,
26
9
,
267
,
296
,
90
,
/* 1130 */
348
,
279
,
89
,
35
,
279
,
268
,
279
,
279
,
279
,
13
,
/* 1140 */
43
,
260
,
360
,
90
,
227
,
269
,
27
9
,
267
,
296
,
90
,
/* 1150 */
368
,
296
,
43
,
296
,
296
,
296
,
288
,
170
,
43
,
172
,
/* 1160 */
90
,
35
,
300
,
43
,
331
,
43
,
68
,
356
,
349
,
288
,
/* 1170 */
3
72
,
372
,
359
,
372
,
43
,
229
,
326
,
296
,
325
,
47
,
/* 1180 */
193
,
194
,
301
,
260
,
303
,
248
,
168
,
90
,
42
,
319
,
/* 1190 */
308
,
20
,
205
,
206
,
207
,
208
,
209
,
210
,
211
,
90
,
/* 1200 */
268
,
157
,
268
,
308
,
152
,
90
,
306
,
306
,
246
,
328
,
/* 1210 */
90
,
288
,
90
,
332
,
333
,
334
,
335
,
336
,
337
,
296
,
/* 1220 */
339
,
90
,
268
,
342
,
301
,
268
,
303
,
346
,
347
,
348
,
/* 1230 */
172
,
20
,
262
,
268
,
262
,
20
,
260
,
20
,
323
,
27
2
,
/* 1240 */
272
,
303
,
3
16
,
20
,
316
,
318
,
272
,
272
,
20
,
368
,
/* 1250 */
309
,
328
,
272
,
260
,
272
,
332
,
333
,
334
,
335
,
336
,
/* 1260 */
337
,
272
,
339
,
268
,
288
,
342
,
262
,
301
,
175
,
346
,
/* 1270 */
347
,
348
,
296
,
288
,
2
88
,
262
,
288
,
301
,
288
,
303
,
/* 1280 */
357
,
288
,
2
88
,
268
,
288
,
268
,
288
,
288
,
288
,
296
,
/* 1290 */
270
,
288
,
323
,
322
,
301
,
288
,
303
,
270
,
268
,
316
,
/* 1300 */
2
34
,
270
,
301
,
312
,
328
,
154
,
296
,
284
,
332
,
333
,
/* 1310 */
334
,
335
,
336
,
337
,
20
,
339
,
260
,
303
,
342
,
310
,
/* 1320 */
3
01
,
328
,
346
,
347
,
348
,
332
,
333
,
334
,
335
,
336
,
/* 1330 */
337
,
270
,
339
,
357
,
301
,
342
,
301
,
312
,
301
,
346
,
/* 1340 */
347
,
348
,
270
,
309
,
288
,
296
,
235
,
331
,
30
1
,
301
,
/* 1350 */
357
,
312
,
296
,
312
,
241
,
30
1
,
364
,
301
,
301
,
303
,
/* 1360 */
161
,
301
,
243
,
242
,
230
,
226
,
260
,
296
,
326
,
20
,
/* 1370 */
330
,
247
,
364
,
317
,
245
,
250
,
260
,
89
,
89
,
367
,
/* 1380 */
292
,
301
,
278
,
36
,
328
,
268
,
263
,
363
,
332
,
333
,
/* 1390 */
334
,
335
,
336
,
337
,
288
,
339
,
320
,
270
,
366
,
361
,
/* 1400 */
36
4
,
373
,
296
,
374
,
288
,
379
,
262
,
301
,
362
,
303
,
/* 1410 */
3
45
,
315
,
296
,
271
,
358
,
282
,
0
,
301
,
260
,
303
,
/* 1420 */
2
82
,
258
,
282
,
317
,
374
,
374
,
0
,
371
,
373
,
177
,
/* 1430 */
0
,
375
,
0
,
42
,
328
,
373
,
0
,
35
,
332
,
333
,
/* 1440 */
334
,
335
,
336
,
337
,
328
,
339
,
288
,
187
,
332
,
333
,
/* 1450 */
334
,
335
,
336
,
337
,
296
,
339
,
35
,
35
,
342
,
301
,
/* 1460 */
35
,
303
,
346
,
347
,
358
,
187
,
0
,
187
,
35
,
35
,
/* 1470 */
0
,
187
,
260
,
35
,
0
,
22
,
0
,
371
,
0
,
35
,
/* 1480 */
172
,
375
,
170
,
0
,
260
,
0
,
328
,
166
,
0
,
165
,
/* 1160 */
90
,
35
,
300
,
296
,
331
,
43
,
68
,
356
,
372
,
288
,
/* 1170 */
3
49
,
372
,
359
,
372
,
43
,
43
,
326
,
296
,
43
,
229
,
/* 1180 */
193
,
194
,
301
,
260
,
303
,
248
,
47
,
90
,
325
,
319
,
/* 1190 */
42
,
168
,
205
,
206
,
207
,
208
,
209
,
210
,
211
,
90
,
/* 1200 */
308
,
157
,
20
,
268
,
268
,
90
,
152
,
308
,
246
,
328
,
/* 1210 */
268
,
288
,
90
,
332
,
333
,
334
,
335
,
336
,
337
,
296
,
/* 1220 */
339
,
90
,
90
,
342
,
301
,
90
,
303
,
346
,
347
,
348
,
/* 1230 */
172
,
306
,
306
,
268
,
268
,
20
,
260
,
262
,
20
,
26
2
,
/* 1240 */
272
,
303
,
3
23
,
272
,
316
,
20
,
20
,
316
,
318
,
368
,
/* 1250 */
272
,
328
,
272
,
260
,
20
,
332
,
333
,
334
,
335
,
336
,
/* 1260 */
337
,
309
,
339
,
272
,
288
,
342
,
272
,
268
,
272
,
346
,
/* 1270 */
347
,
348
,
296
,
288
,
2
62
,
262
,
288
,
301
,
288
,
303
,
/* 1280 */
357
,
288
,
2
68
,
288
,
301
,
270
,
288
,
175
,
288
,
296
,
/* 1290 */
323
,
288
,
288
,
268
,
301
,
288
,
303
,
288
,
288
,
270
,
/* 1300 */
2
68
,
270
,
316
,
322
,
328
,
234
,
154
,
20
,
332
,
333
,
/* 1310 */
334
,
335
,
336
,
337
,
296
,
339
,
260
,
270
,
342
,
303
,
/* 1320 */
3
12
,
328
,
346
,
347
,
348
,
332
,
333
,
334
,
335
,
336
,
/* 1330 */
337
,
301
,
339
,
357
,
301
,
342
,
301
,
301
,
312
,
346
,
/* 1340 */
347
,
348
,
301
,
309
,
288
,
284
,
270
,
310
,
33
1
,
301
,
/* 1350 */
357
,
312
,
296
,
235
,
312
,
24
1
,
364
,
301
,
301
,
303
,
/* 1360 */
161
,
301
,
243
,
301
,
301
,
364
,
260
,
242
,
230
,
226
,
/* 1370 */
296
,
326
,
20
,
317
,
247
,
245
,
260
,
89
,
250
,
330
,
/* 1380 */
89
,
292
,
301
,
363
,
328
,
361
,
367
,
270
,
332
,
333
,
/* 1390 */
334
,
335
,
336
,
337
,
288
,
339
,
36
,
268
,
278
,
263
,
/* 1400 */
36
2
,
374
,
296
,
262
,
288
,
320
,
366
,
301
,
315
,
303
,
/* 1410 */
3
64
,
345
,
296
,
271
,
358
,
282
,
282
,
301
,
260
,
303
,
/* 1420 */
2
58
,
0
,
282
,
317
,
373
,
0
,
374
,
371
,
373
,
379
,
/* 1430 */
177
,
375
,
0
,
0
,
328
,
42
,
0
,
373
,
332
,
333
,
/* 1440 */
334
,
335
,
336
,
337
,
328
,
339
,
288
,
374
,
332
,
333
,
/* 1450 */
334
,
335
,
336
,
337
,
296
,
339
,
187
,
35
,
342
,
301
,
/* 1460 */
187
,
303
,
346
,
347
,
358
,
35
,
35
,
0
,
0
,
35
,
/* 1470 */
35
,
187
,
260
,
35
,
0
,
35
,
187
,
371
,
0
,
22
,
/* 1480 */
0
,
375
,
35
,
172
,
260
,
170
,
328
,
0
,
0
,
165
,
/* 1490 */
332
,
333
,
334
,
335
,
336
,
337
,
338
,
339
,
340
,
341
,
/* 1500 */
288
,
0
,
46
,
0
,
42
,
0
,
0
,
0
,
296
,
149
,
/* 1510 */
0
,
0
,
288
,
301
,
0
,
303
,
0
,
0
,
144
,
35
,
/* 1520 */
296
,
0
,
144
,
0
,
0
,
301
,
0
,
303
,
0
,
0
,
/* 1500 */
288
,
166
,
0
,
0
,
46
,
0
,
42
,
0
,
296
,
0
,
/* 1510 */
0
,
149
,
288
,
301
,
0
,
303
,
0
,
0
,
0
,
0
,
/* 1520 */
296
,
144
,
0
,
144
,
35
,
301
,
0
,
303
,
0
,
0
,
/* 1530 */
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
/* 1540 */
328
,
260
,
42
,
0
,
332
,
333
,
334
,
335
,
336
,
337
,
/* 1550 */
0
,
339
,
328
,
4
0
,
56
,
0
,
332
,
333
,
334
,
335
,
/* 1540 */
328
,
260
,
0
,
42
,
332
,
333
,
334
,
335
,
336
,
337
,
/* 1550 */
0
,
339
,
328
,
4
2
,
56
,
0
,
332
,
333
,
334
,
335
,
/* 1560 */
336
,
337
,
0
,
339
,
0
,
260
,
342
,
22
,
0
,
288
,
/* 1570 */
0
,
347
,
0
,
0
,
293
,
0
,
0
,
296
,
56
,
0
,
/* 1580 */
0
,
39
,
301
,
260
,
303
,
14
,
42
,
46
,
376
,
377
,
/* 1590 */
43
,
14
,
46
,
288
,
0
,
39
,
0
,
0
,
293
,
0
,
/* 1600 */
39
,
296
,
161
,
0
,
0
,
0
,
301
,
0
,
303
,
328
,
/* 1610 */
62
,
288
,
0
,
332
,
333
,
334
,
335
,
336
,
337
,
296
,
/* 1620 */
339
,
35
,
39
,
0
,
301
,
47
,
303
,
35
,
47
,
39
,
/* 1630 */
0
,
47
,
39
,
328
,
0
,
35
,
35
,
332
,
333
,
334
,
/* 1640 */
335
,
336
,
337
,
0
,
339
,
260
,
0
,
39
,
0
,
47
,
/* 1650 */
0
,
328
,
98
,
96
,
22
,
332
,
333
,
334
,
335
,
336
,
/* 1660 */
337
,
35
,
339
,
260
,
0
,
43
,
35
,
43
,
35
,
22
,
/* 1670 */
35
,
0
,
0
,
288
,
22
,
22
,
49
,
0
,
22
,
35
,
/* 1680 */
0
,
296
,
0
,
0
,
35
,
22
,
301
,
20
,
303
,
35
,
/* 1690 */
0
,
288
,
35
,
370
,
0
,
22
,
0
,
157
,
173
,
296
,
/* 1700 */
0
,
0
,
0
,
154
,
301
,
0
,
303
,
89
,
157
,
157
,
/* 1710 */
90
,
0
,
0
,
328
,
89
,
260
,
153
,
332
,
333
,
334
,
/* 1720 */
335
,
336
,
337
,
39
,
339
,
159
,
89
,
89
,
99
,
155
,
/* 1730 */
43
,
328
,
46
,
260
,
89
,
332
,
333
,
334
,
335
,
336
,
/* 1740 */
337
,
182
,
339
,
288
,
341
,
90
,
231
,
89
,
293
,
90
,
/* 1750 */
90
,
296
,
43
,
43
,
89
,
89
,
301
,
260
,
303
,
90
,
/* 1760 */
90
,
288
,
377
,
89
,
89
,
46
,
293
,
46
,
89
,
296
,
/* 1770 */
43
,
90
,
46
,
43
,
301
,
90
,
303
,
46
,
90
,
46
,
/* 1780 */
4
3
,
90
,
35
,
328
,
35
,
288
,
3
5
,
332
,
333
,
334
,
/* 1790 */
335
,
336
,
337
,
296
,
339
,
35
,
231
,
35
,
301
,
35
,
/* 1800 */
303
,
328
,
2
,
22
,
193
,
332
,
333
,
334
,
335
,
336
,
/* 1810 */
337
,
43
,
339
,
260
,
225
,
90
,
231
,
89
,
89
,
46
,
/* 1820 */
46
,
22
,
100
,
195
,
90
,
328
,
90
,
260
,
89
,
332
,
/* 1830 */
333
,
334
,
335
,
336
,
337
,
89
,
339
,
89
,
35
,
89
,
/* 1840 */
35
,
288
,
90
,
89
,
35
,
90
,
89
,
35
,
90
,
296
,
/* 1850 */
89
,
35
,
35
,
90
,
301
,
288
,
303
,
90
,
89
,
89
,
/* 1860 */
22
,
89
,
35
,
296
,
89
,
89
,
113
,
101
,
301
,
260
,
/* 1870 */
303
,
43
,
113
,
22
,
35
,
62
,
61
,
35
,
113
,
260
,
/* 1880 */
35
,
328
,
35
,
35
,
113
,
332
,
333
,
334
,
335
,
336
,
/* 1890 */
337
,
35
,
339
,
35
,
68
,
328
,
43
,
288
,
87
,
332
,
/* 1900 */
333
,
334
,
335
,
336
,
337
,
296
,
339
,
288
,
35
,
35
,
/* 1910 */
301
,
22
,
303
,
35
,
22
,
296
,
35
,
35
,
68
,
35
,
/* 1920 */
301
,
260
,
303
,
35
,
22
,
0
,
35
,
0
,
35
,
35
,
/* 1930 */
35
,
35
,
47
,
35
,
47
,
0
,
39
,
328
,
39
,
35
,
/* 1570 */
0
,
347
,
0
,
0
,
293
,
0
,
0
,
296
,
0
,
0
,
/* 1580 */
56
,
0
,
301
,
260
,
303
,
0
,
39
,
43
,
376
,
377
,
/* 1590 */
0
,
14
,
46
,
288
,
14
,
46
,
40
,
39
,
293
,
0
,
/* 1600 */
0
,
296
,
0
,
161
,
39
,
0
,
301
,
0
,
303
,
328
,
/* 1610 */
0
,
288
,
0
,
332
,
333
,
334
,
335
,
336
,
337
,
296
,
/* 1620 */
339
,
62
,
0
,
35
,
301
,
39
,
303
,
0
,
35
,
47
,
/* 1630 */
47
,
39
,
0
,
328
,
47
,
39
,
35
,
332
,
333
,
334
,
/* 1640 */
335
,
336
,
337
,
0
,
339
,
260
,
35
,
39
,
0
,
0
,
/* 1650 */
47
,
328
,
0
,
0
,
0
,
332
,
333
,
334
,
335
,
336
,
/* 1660 */
337
,
98
,
339
,
260
,
35
,
96
,
22
,
43
,
35
,
43
,
/* 1670 */
35
,
35
,
22
,
288
,
0
,
0
,
0
,
22
,
22
,
49
,
/* 1680 */
22
,
296
,
35
,
0
,
0
,
0
,
301
,
22
,
303
,
20
,
/* 1690 */
0
,
288
,
35
,
370
,
35
,
35
,
0
,
157
,
173
,
296
,
/* 1700 */
22
,
0
,
0
,
0
,
301
,
157
,
303
,
0
,
154
,
157
,
/* 1710 */
159
,
0
,
89
,
328
,
89
,
260
,
0
,
332
,
333
,
334
,
/* 1720 */
335
,
336
,
337
,
182
,
339
,
0
,
155
,
90
,
89
,
89
,
/* 1730 */
39
,
328
,
46
,
260
,
89
,
332
,
333
,
334
,
335
,
336
,
/* 1740 */
337
,
99
,
339
,
288
,
341
,
46
,
231
,
153
,
293
,
43
,
/* 1750 */
46
,
296
,
90
,
89
,
231
,
89
,
301
,
260
,
303
,
46
,
/* 1760 */
90
,
288
,
377
,
90
,
43
,
43
,
293
,
90
,
89
,
296
,
/* 1770 */
89
,
89
,
43
,
43
,
301
,
35
,
303
,
90
,
89
,
46
,
/* 1780 */
4
6
,
43
,
90
,
328
,
90
,
288
,
22
5
,
332
,
333
,
334
,
/* 1790 */
335
,
336
,
337
,
296
,
339
,
90
,
35
,
231
,
301
,
90
,
/* 1800 */
303
,
328
,
35
,
35
,
35
,
332
,
333
,
334
,
335
,
336
,
/* 1810 */
337
,
35
,
339
,
260
,
2
,
22
,
43
,
89
,
46
,
22
,
/* 1820 */
89
,
193
,
35
,
46
,
89
,
328
,
90
,
260
,
89
,
332
,
/* 1830 */
333
,
334
,
335
,
336
,
337
,
90
,
339
,
90
,
89
,
89
,
/* 1840 */
35
,
288
,
100
,
90
,
89
,
89
,
195
,
90
,
35
,
296
,
/* 1850 */
90
,
35
,
89
,
35
,
301
,
288
,
303
,
35
,
22
,
113
,
/* 1860 */
90
,
90
,
35
,
296
,
89
,
113
,
101
,
89
,
301
,
260
,
/* 1870 */
303
,
113
,
113
,
43
,
89
,
89
,
22
,
89
,
61
,
260
,
/* 1880 */
35
,
328
,
62
,
35
,
35
,
332
,
333
,
334
,
335
,
336
,
/* 1890 */
337
,
35
,
339
,
35
,
35
,
328
,
35
,
288
,
87
,
332
,
/* 1900 */
333
,
334
,
335
,
336
,
337
,
296
,
339
,
288
,
68
,
43
,
/* 1910 */
301
,
35
,
303
,
35
,
22
,
296
,
35
,
22
,
35
,
35
,
/* 1920 */
301
,
260
,
303
,
68
,
35
,
22
,
35
,
0
,
35
,
35
,
/* 1930 */
0
,
35
,
35
,
35
,
47
,
35
,
0
,
328
,
39
,
35
,
/* 1940 */
39
,
332
,
333
,
334
,
335
,
336
,
337
,
328
,
339
,
288
,
/* 1950 */
47
,
332
,
333
,
334
,
335
,
336
,
337
,
296
,
339
,
0
,
/* 1960 */
47
,
35
,
301
,
39
,
303
,
0
,
35
,
35
,
0
,
22
,
/* 1970 */
21
,
380
,
22
,
22
,
260
,
21
,
20
,
38
0
,
380
,
380
,
/* 1950 */
39
,
332
,
333
,
334
,
335
,
336
,
337
,
296
,
339
,
47
,
/* 1960 */
47
,
0
,
301
,
35
,
303
,
47
,
0
,
35
,
39
,
35
,
/* 1970 */
0
,
22
,
21
,
21
,
260
,
22
,
22
,
2
0
,
380
,
380
,
/* 1980 */
380
,
380
,
380
,
380
,
380
,
380
,
380
,
380
,
380
,
328
,
/* 1990 */
380
,
380
,
260
,
332
,
333
,
334
,
335
,
336
,
337
,
380
,
/* 2000 */
339
,
380
,
288
,
380
,
380
,
380
,
380
,
380
,
380
,
380
,
...
...
@@ -703,7 +703,7 @@ static const YYCODETYPE yy_lookahead[] = {
};
#define YY_SHIFT_COUNT (665)
#define YY_SHIFT_MIN (0)
#define YY_SHIFT_MAX (19
68
)
#define YY_SHIFT_MAX (19
70
)
static
const
unsigned
short
int
yy_shift_ofst
[]
=
{
/* 0 */
917
,
0
,
0
,
62
,
62
,
264
,
264
,
264
,
326
,
326
,
/* 10 */
264
,
264
,
391
,
593
,
720
,
593
,
593
,
593
,
593
,
593
,
...
...
@@ -712,66 +712,66 @@ static const unsigned short int yy_shift_ofst[] = {
/* 40 */
593
,
593
,
313
,
313
,
199
,
199
,
199
,
987
,
987
,
354
,
/* 50 */
987
,
987
,
165
,
341
,
254
,
258
,
254
,
79
,
79
,
36
,
/* 60 */
36
,
97
,
18
,
254
,
254
,
79
,
79
,
79
,
79
,
79
,
/* 70 */
79
,
79
,
79
,
79
,
82
,
79
,
79
,
79
,
170
,
205
,
/* 80 */
79
,
79
,
205
,
405
,
79
,
205
,
205
,
205
,
79
,
158
,
/* 90 */
719
,
662
,
683
,
683
,
108
,
371
,
371
,
371
,
371
,
371
,
/* 70 */
79
,
79
,
79
,
79
,
82
,
79
,
79
,
79
,
170
,
79
,
/* 80 */
205
,
79
,
79
,
205
,
405
,
79
,
205
,
205
,
205
,
79
,
/* 90 */
158
,
719
,
662
,
683
,
683
,
108
,
371
,
371
,
371
,
371
,
/* 100 */
371
,
371
,
371
,
371
,
371
,
371
,
371
,
371
,
371
,
371
,
/* 110 */
371
,
371
,
371
,
371
,
134
,
419
,
18
,
636
,
636
,
488
,
/* 120 */
551
,
562
,
90
,
90
,
90
,
551
,
526
,
526
,
170
,
16
,
/* 130 */
16
,
205
,
205
,
323
,
323
,
483
,
498
,
1
98
,
198
,
198
,
/* 140 */
198
,
198
,
198
,
198
,
331
,
21
,
167
,
559
,
43
,
50
,
/* 150 */
112
,
168
,
99
,
421
,
19
,
530
,
771
,
755
,
717
,
603
,
/* 160 */
717
,
918
,
501
,
501
,
501
,
869
,
822
,
946
,
1132
,
1018
,
/* 170 */
1
146
,
1171
,
1171
,
1146
,
1052
,
1052
,
1171
,
1171
,
1171
,
1211
,
/* 180 */
121
1
,
1215
,
82
,
170
,
82
,
1217
,
1223
,
82
,
1217
,
82
,
/* 190 */
1228
,
82
,
82
,
1171
,
82
,
1211
,
20
5
,
205
,
205
,
205
,
/* 200 */
205
,
205
,
205
,
205
,
205
,
205
,
205
,
1171
,
1211
,
323
,
/* 210 */
1215
,
158
,
1093
,
170
,
158
,
1171
,
1171
,
1217
,
158
,
1066
,
/* 220 */
323
,
323
,
323
,
323
,
1066
,
323
,
1151
,
526
,
1228
,
158
,
/* 230 */
483
,
158
,
526
,
12
94
,
323
,
1111
,
1066
,
323
,
323
,
1111
,
/* 240 */
10
66
,
323
,
323
,
205
,
1113
,
1199
,
1111
,
1119
,
1121
,
1134
,
/* 250 */
9
46
,
1139
,
526
,
1349
,
1124
,
1129
,
1125
,
1124
,
1129
,
1124
,
/* 260 */
11
29
,
1288
,
1289
,
323
,
498
,
1171
,
158
,
1347
,
1211
,
2395
,
/* 110 */
371
,
371
,
371
,
371
,
371
,
134
,
419
,
18
,
636
,
636
,
/* 120 */
488
,
551
,
562
,
90
,
90
,
90
,
551
,
526
,
526
,
170
,
/* 130 */
16
,
16
,
205
,
205
,
323
,
323
,
483
,
4
98
,
198
,
198
,
/* 140 */
198
,
198
,
198
,
198
,
198
,
331
,
21
,
167
,
559
,
43
,
/* 150 */
50
,
112
,
168
,
99
,
421
,
19
,
530
,
771
,
755
,
717
,
/* 160 */
603
,
717
,
918
,
501
,
501
,
501
,
869
,
822
,
950
,
1139
,
/* 170 */
1
023
,
1148
,
1182
,
1182
,
1148
,
1054
,
1054
,
1182
,
1182
,
1182
,
/* 180 */
121
5
,
1215
,
1218
,
82
,
170
,
82
,
1225
,
1226
,
82
,
1225
,
/* 190 */
82
,
1234
,
82
,
82
,
1182
,
82
,
121
5
,
205
,
205
,
205
,
/* 200 */
205
,
205
,
205
,
205
,
205
,
205
,
205
,
205
,
1182
,
1215
,
/* 210 */
323
,
1218
,
158
,
1112
,
170
,
158
,
1182
,
1182
,
1225
,
158
,
/* 220 */
1071
,
323
,
323
,
323
,
323
,
1071
,
323
,
1152
,
1234
,
158
,
/* 230 */
483
,
158
,
526
,
12
87
,
323
,
1118
,
1071
,
323
,
323
,
1118
,
/* 240 */
10
71
,
323
,
323
,
205
,
1114
,
1199
,
1118
,
1119
,
1125
,
1138
,
/* 250 */
9
50
,
1143
,
526
,
1352
,
1127
,
1130
,
1128
,
1127
,
1130
,
1127
,
/* 260 */
11
30
,
1288
,
1291
,
323
,
498
,
1182
,
158
,
1360
,
1215
,
2395
,
/* 270 */
2395
,
2395
,
2395
,
2395
,
2395
,
2395
,
83
,
456
,
214
,
307
,
/* 280 */
208
,
564
,
693
,
808
,
824
,
1044
,
1053
,
513
,
542
,
542
,
/* 290 */
542
,
542
,
542
,
542
,
542
,
542
,
545
,
129
,
13
,
13
,
/* 300 */
236
,
594
,
430
,
581
,
387
,
172
,
452
,
511
,
106
,
106
,
/* 310 */
106
,
106
,
914
,
963
,
875
,
898
,
943
,
945
,
973
,
979
,
/* 320 */
1011
,
423
,
860
,
960
,
964
,
997
,
1002
,
1021
,
10
45
,
1059
,
/* 330 */
1022
,
947
,
962
,
937
,
1006
,
904
,
1058
,
929
,
10
70
,
1043
,
/* 340 */
1
097
,
1109
,
1115
,
1120
,
1122
,
1131
,
1005
,
1077
,
1126
,
1098
,
/* 350 */
764
,
14
16
,
1426
,
1252
,
1430
,
1432
,
1391
,
1436
,
1402
,
1260
,
/* 360 */
14
21
,
1422
,
1425
,
1278
,
1466
,
1433
,
1434
,
1280
,
1470
,
1284
,
/* 370 */
147
8
,
1438
,
1474
,
1453
,
1476
,
1444
,
1308
,
1312
,
1483
,
1485
,
/* 380 */
13
21
,
1324
,
1488
,
1501
,
1456
,
1503
,
1462
,
1505
,
1506
,
1507
,
/* 390 */
136
0
,
1510
,
1511
,
1514
,
1516
,
1517
,
1374
,
1484
,
1521
,
1378
,
/* 400 */
152
3
,
1524
,
1526
,
1528
,
1529
,
1530
,
1531
,
1532
,
1533
,
1534
,
/* 410 */
153
5
,
1536
,
1537
,
1538
,
1500
,
1539
,
1543
,
1550
,
1562
,
1564
,
/* 420 */
157
0
,
1545
,
1568
,
1572
,
1573
,
1575
,
1576
,
1498
,
1555
,
1522
,
/* 430 */
15
79
,
1580
,
1544
,
1542
,
1547
,
1571
,
1541
,
1577
,
1546
,
1594
,
/* 440 */
15
13
,
1556
,
1596
,
1597
,
1599
,
1561
,
1441
,
1603
,
1604
,
1605
,
/* 450 */
15
48
,
1607
,
1612
,
1586
,
1578
,
1583
,
1623
,
1592
,
1581
,
1590
,
/* 460 */
163
0
,
1600
,
1584
,
1593
,
1634
,
1601
,
1602
,
1608
,
1643
,
1646
,
/* 470 */
16
48
,
1650
,
1554
,
1557
,
1626
,
1632
,
1664
,
1631
,
1622
,
1624
,
/* 480 */
163
3
,
1635
,
1647
,
1671
,
1652
,
1672
,
1653
,
1627
,
1677
,
1656
,
/* 490 */
164
4
,
1680
,
1649
,
1682
,
1654
,
1683
,
1663
,
1667
,
1690
,
1540
,
/* 500 */
16
57
,
1694
,
1525
,
1673
,
1551
,
1549
,
1696
,
1700
,
1552
,
1566
,
/* 510 */
170
1
,
1702
,
1705
,
1618
,
1620
,
1559
,
1711
,
1625
,
1574
,
1637
,
/* 520 */
17
12
,
1684
,
1563
,
1638
,
1629
,
1686
,
1687
,
1515
,
1645
,
1655
,
/* 530 */
16
58
,
1659
,
1660
,
1665
,
1709
,
1669
,
1666
,
1674
,
1675
,
1670
,
/* 540 */
17
10
,
1719
,
1721
,
1679
,
1727
,
1565
,
1681
,
1685
,
1726
,
1589
,
/* 550 */
1730
,
173
1
,
1733
,
1688
,
1737
,
1585
,
1691
,
1747
,
1749
,
1751
,
/* 560 */
176
0
,
1762
,
1764
,
1691
,
1800
,
1781
,
1611
,
1768
,
1728
,
1725
,
/* 570 */
17
29
,
1734
,
1739
,
1736
,
1773
,
1746
,
1748
,
1774
,
1799
,
1628
,
/* 580 */
1750
,
17
22
,
1752
,
1803
,
1805
,
1754
,
1755
,
1809
,
1757
,
1758
,
/* 590 */
181
2
,
1761
,
1763
,
1816
,
1769
,
1767
,
1817
,
1770
,
1753
,
1759
,
/* 600 */
17
65
,
1771
,
1838
,
1766
,
1772
,
1775
,
1827
,
1776
,
1828
,
1828
,
/* 610 */
185
1
,
1813
,
1815
,
1839
,
1842
,
1845
,
1847
,
1848
,
1856
,
1858
,
/* 620 */
18
26
,
1811
,
1853
,
1873
,
1874
,
1889
,
1878
,
1892
,
1881
,
1882
,
/* 630 */
185
0
,
1622
,
1884
,
1624
,
1888
,
1891
,
1893
,
1894
,
1902
,
1895
,
/* 640 */
192
5
,
1896
,
1885
,
1897
,
1927
,
1898
,
1887
,
1899
,
1935
,
1904
,
/* 650 */
19
03
,
1901
,
1959
,
1926
,
1913
,
1924
,
1965
,
1931
,
1932
,
1968
,
/* 660 */
194
7
,
1949
,
1950
,
1951
,
1954
,
1956
,
/* 320 */
1011
,
423
,
860
,
960
,
964
,
997
,
1002
,
1021
,
10
59
,
1070
,
/* 330 */
1022
,
947
,
962
,
937
,
1006
,
904
,
1058
,
929
,
10
97
,
1043
,
/* 340 */
1
109
,
1115
,
1122
,
1131
,
1132
,
1135
,
1005
,
1077
,
1126
,
1098
,
/* 350 */
764
,
14
21
,
1425
,
1253
,
1432
,
1433
,
1393
,
1436
,
1422
,
1269
,
/* 360 */
14
30
,
1431
,
1434
,
1273
,
1467
,
1435
,
1438
,
1284
,
1468
,
1289
,
/* 370 */
147
4
,
1440
,
1478
,
1457
,
1480
,
1447
,
1311
,
1315
,
1487
,
1488
,
/* 380 */
13
35
,
1324
,
1502
,
1503
,
1458
,
1505
,
1464
,
1507
,
1509
,
1510
,
/* 390 */
136
2
,
1514
,
1516
,
1517
,
1518
,
1519
,
1377
,
1489
,
1522
,
1379
,
/* 400 */
152
6
,
1528
,
1529
,
1530
,
1531
,
1532
,
1533
,
1534
,
1535
,
1536
,
/* 410 */
153
7
,
1538
,
1539
,
1542
,
1501
,
1550
,
1562
,
1564
,
1570
,
1572
,
/* 420 */
157
3
,
1545
,
1568
,
1575
,
1576
,
1578
,
1579
,
1498
,
1555
,
1524
,
/* 430 */
15
81
,
1585
,
1511
,
1547
,
1544
,
1577
,
1546
,
1580
,
1549
,
1590
,
/* 440 */
15
56
,
1558
,
1599
,
1600
,
1602
,
1565
,
1442
,
1605
,
1607
,
1610
,
/* 450 */
15
59
,
1612
,
1622
,
1588
,
1582
,
1586
,
1627
,
1593
,
1583
,
1592
,
/* 460 */
163
2
,
1601
,
1587
,
1596
,
1643
,
1611
,
1603
,
1608
,
1648
,
1649
,
/* 470 */
16
52
,
1653
,
1563
,
1569
,
1629
,
1644
,
1654
,
1633
,
1624
,
1626
,
/* 480 */
163
5
,
1636
,
1650
,
1674
,
1655
,
1675
,
1656
,
1630
,
1676
,
1658
,
/* 490 */
164
7
,
1683
,
1657
,
1684
,
1659
,
1685
,
1665
,
1669
,
1690
,
1540
,
/* 500 */
16
60
,
1696
,
1525
,
1678
,
1548
,
1554
,
1701
,
1702
,
1552
,
1551
,
/* 510 */
170
3
,
1707
,
1711
,
1623
,
1637
,
1541
,
1716
,
1625
,
1571
,
1639
,
/* 520 */
17
25
,
1691
,
1594
,
1640
,
1642
,
1686
,
1706
,
1515
,
1645
,
1662
,
/* 530 */
16
64
,
1670
,
1673
,
1666
,
1721
,
1677
,
1679
,
1681
,
1682
,
1687
,
/* 540 */
17
22
,
1699
,
1704
,
1689
,
1729
,
1523
,
1692
,
1694
,
1713
,
1561
,
/* 550 */
1730
,
173
3
,
1734
,
1705
,
1738
,
1566
,
1709
,
1740
,
1761
,
1767
,
/* 560 */
176
8
,
1769
,
1776
,
1709
,
1812
,
1793
,
1628
,
1773
,
1728
,
1736
,
/* 570 */
17
31
,
1745
,
1735
,
1747
,
1772
,
1739
,
1749
,
1777
,
1797
,
1651
,
/* 580 */
1750
,
17
42
,
1753
,
1787
,
1805
,
1755
,
1757
,
1813
,
1756
,
1760
,
/* 590 */
181
6
,
1763
,
1770
,
1818
,
1775
,
1771
,
1822
,
1778
,
1746
,
1752
,
/* 600 */
17
58
,
1759
,
1836
,
1765
,
1785
,
1786
,
1827
,
1788
,
1830
,
1830
,
/* 610 */
185
4
,
1820
,
1817
,
1845
,
1848
,
1849
,
1856
,
1858
,
1859
,
1861
,
/* 620 */
18
40
,
1811
,
1866
,
1876
,
1878
,
1892
,
1881
,
1895
,
1883
,
1884
,
/* 630 */
185
5
,
1624
,
1889
,
1626
,
1891
,
1893
,
1894
,
1896
,
1903
,
1897
,
/* 640 */
192
7
,
1898
,
1887
,
1899
,
1930
,
1900
,
1912
,
1901
,
1936
,
1904
,
/* 650 */
19
13
,
1911
,
1961
,
1928
,
1918
,
1929
,
1966
,
1932
,
1934
,
1970
,
/* 660 */
194
9
,
1951
,
1953
,
1954
,
1952
,
1957
,
};
#define YY_REDUCE_COUNT (275)
#define YY_REDUCE_MIN (-357)
...
...
@@ -784,27 +784,27 @@ static const short yy_reduce_ofst[] = {
/* 40 */
2045
,
2055
,
376
,
676
,
-
259
,
76
,
142
,
117
,
687
,
-
180
,
/* 50 */
-
284
,
747
,
-
30
,
250
,
342
,
345
,
398
,
359
,
462
,
-
264
,
/* 60 */
-
256
,
-
357
,
-
240
,
-
339
,
-
244
,
81
,
385
,
475
,
666
,
668
,
/* 70 */
669
,
673
,
702
,
734
,
148
,
767
,
803
,
852
,
-
280
,
-
273
,
/* 80 */
855
,
857
,
211
,
31
,
858
,
272
,
523
,
363
,
859
,
-
205
,
/* 90 */
-
20
,
-
159
,
-
159
,
-
159
,
-
171
,
-
86
,
95
,
139
,
149
,
388
,
/* 100 */
413
,
420
,
466
,
476
,
512
,
514
,
524
,
548
,
570
,
574
,
/* 110 */
5
88
,
608
,
614
,
648
,
-
233
,
-
213
,
-
298
,
-
76
,
53
,
-
215
,
/* 120 */
174
,
279
,
408
,
431
,
557
,
217
,
35
,
275
,
317
,
409
,
/* 130 */
4
67
,
91
,
540
,
590
,
595
,
675
,
565
,
328
,
340
,
368
,
/* 140 */
461
,
468
,
606
,
661
,
373
,
705
,
654
,
800
,
722
,
826
,
/* 150 */
777
,
780
,
868
,
868
,
877
,
880
,
862
,
833
,
811
,
811
,
/* 160 */
811
,
81
9
,
798
,
799
,
801
,
813
,
868
,
850
,
853
,
870
,
/* 170 */
8
82
,
932
,
934
,
895
,
900
,
901
,
954
,
957
,
965
,
970
,
/* 180 */
97
2
,
915
,
967
,
938
,
968
,
926
,
927
,
974
,
928
,
975
,
/* 190 */
9
41
,
980
,
982
,
995
,
989
,
1004
,
985
,
986
,
988
,
990
,
/* 200 */
99
4
,
996
,
998
,
999
,
1000
,
1003
,
1007
,
1015
,
1013
,
966
,
/* 210 */
9
69
,
1020
,
971
,
1014
,
1027
,
1017
,
1030
,
983
,
1031
,
99
1
,
/* 220 */
100
1
,
1019
,
1033
,
1035
,
1025
,
1037
,
1009
,
1010
,
1034
,
1061
,
/* 230 */
10
23
,
1072
,
1049
,
1016
,
1047
,
992
,
1039
,
1048
,
1054
,
1008
,
/* 240 */
104
1
,
1057
,
1060
,
868
,
1012
,
1032
,
1036
,
1024
,
1046
,
1038
,
/* 250 */
104
2
,
811
,
1071
,
1040
,
1029
,
1028
,
1026
,
1050
,
1055
,
1051
,
/* 260 */
106
2
,
1065
,
1088
,
1080
,
1104
,
1117
,
1127
,
1123
,
1144
,
1076
,
/* 270 */
109
6
,
1133
,
1138
,
1140
,
1142
,
1163
,
/* 70 */
669
,
673
,
702
,
734
,
148
,
767
,
803
,
852
,
-
280
,
855
,
/* 80 */
-
273
,
857
,
858
,
211
,
31
,
859
,
272
,
523
,
363
,
867
,
/* 90 */
-
205
,
-
20
,
-
159
,
-
159
,
-
159
,
-
171
,
-
86
,
95
,
139
,
149
,
/* 100 */
388
,
413
,
420
,
466
,
476
,
512
,
514
,
524
,
548
,
570
,
/* 110 */
5
74
,
588
,
608
,
614
,
648
,
-
233
,
-
213
,
-
298
,
-
76
,
53
,
/* 120 */
-
215
,
174
,
279
,
408
,
431
,
557
,
217
,
35
,
275
,
317
,
/* 130 */
4
09
,
467
,
91
,
540
,
590
,
595
,
675
,
565
,
328
,
340
,
/* 140 */
368
,
461
,
468
,
606
,
661
,
373
,
705
,
654
,
800
,
722
,
/* 150 */
819
,
777
,
730
,
868
,
868
,
876
,
880
,
862
,
833
,
811
,
/* 160 */
811
,
81
1
,
821
,
796
,
799
,
801
,
813
,
868
,
850
,
863
,
/* 170 */
8
70
,
892
,
935
,
936
,
899
,
925
,
926
,
942
,
965
,
966
,
/* 180 */
97
5
,
977
,
919
,
968
,
938
,
971
,
928
,
930
,
978
,
931
,
/* 190 */
9
80
,
952
,
991
,
994
,
999
,
996
,
1012
,
985
,
988
,
990
,
/* 200 */
99
5
,
998
,
1000
,
1003
,
1004
,
1007
,
1009
,
1010
,
1014
,
1013
,
/* 210 */
9
83
,
967
,
1015
,
981
,
1016
,
1029
,
1025
,
1032
,
986
,
103
1
,
/* 220 */
100
8
,
1030
,
1033
,
1035
,
1036
,
1026
,
1041
,
1037
,
1034
,
1047
,
/* 230 */
10
61
,
1076
,
1018
,
1017
,
1048
,
992
,
1039
,
1057
,
1060
,
1001
,
/* 240 */
104
2
,
1062
,
1063
,
868
,
1019
,
1040
,
1046
,
1020
,
1038
,
1024
,
/* 250 */
104
5
,
811
,
1074
,
1049
,
1027
,
1051
,
1050
,
1052
,
1055
,
1073
,
/* 260 */
106
4
,
1066
,
1089
,
1081
,
1120
,
1129
,
1117
,
1136
,
1141
,
1085
,
/* 270 */
109
3
,
1133
,
1134
,
1140
,
1142
,
1162
,
};
static
const
YYACTIONTYPE
yy_default
[]
=
{
/* 0 */
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
...
...
@@ -815,21 +815,21 @@ static const YYACTIONTYPE yy_default[] = {
/* 50 */
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
/* 60 */
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
/* 70 */
1465
,
1465
,
1465
,
1465
,
1539
,
1465
,
1465
,
1465
,
1465
,
1465
,
/* 80 */
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1
537
,
/* 90 */
1
695
,
1465
,
1873
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
/* 80 */
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1
465
,
/* 90 */
1
537
,
1695
,
1465
,
1873
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
/* 100 */
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
/* 110 */
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1
539
,
/* 120 */
1
465
,
1537
,
1885
,
1885
,
1885
,
1465
,
1465
,
1465
,
1465
,
1738
,
/* 130 */
1738
,
1
465
,
1465
,
1465
,
1465
,
1637
,
1465
,
1465
,
1465
,
1465
,
/* 140 */
1465
,
1465
,
1465
,
1465
,
1
730
,
1465
,
1954
,
1465
,
1465
,
1465
,
/* 150 */
1
736
,
1908
,
1465
,
1465
,
1465
,
1465
,
1590
,
1900
,
1877
,
1891
,
/* 160 */
18
78
,
1875
,
1939
,
1939
,
1939
,
1894
,
1465
,
1904
,
1465
,
1723
,
/* 170 */
17
00
,
1465
,
1465
,
1700
,
1697
,
1697
,
1465
,
1465
,
1465
,
1465
,
/* 180 */
1465
,
1465
,
1
539
,
1465
,
1539
,
1465
,
1465
,
1539
,
1465
,
1539
,
/* 190 */
1
465
,
1539
,
1539
,
1465
,
1539
,
1465
,
1465
,
1465
,
1465
,
1465
,
/* 110 */
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1
465
,
/* 120 */
1
539
,
1465
,
1537
,
1885
,
1885
,
1885
,
1465
,
1465
,
1465
,
1465
,
/* 130 */
1738
,
1
738
,
1465
,
1465
,
1465
,
1465
,
1637
,
1465
,
1465
,
1465
,
/* 140 */
1465
,
1465
,
1465
,
1465
,
1
465
,
1730
,
1465
,
1954
,
1465
,
1465
,
/* 150 */
1
465
,
1736
,
1908
,
1465
,
1465
,
1465
,
1465
,
1590
,
1900
,
1877
,
/* 160 */
18
91
,
1878
,
1875
,
1939
,
1939
,
1939
,
1894
,
1465
,
1904
,
1465
,
/* 170 */
17
23
,
1700
,
1465
,
1465
,
1700
,
1697
,
1697
,
1465
,
1465
,
1465
,
/* 180 */
1465
,
1465
,
1
465
,
1539
,
1465
,
1539
,
1465
,
1465
,
1539
,
1465
,
/* 190 */
1
539
,
1465
,
1539
,
1539
,
1465
,
1539
,
1465
,
1465
,
1465
,
1465
,
/* 200 */
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
1465
,
/* 210 */
1465
,
1
537
,
1732
,
1465
,
1537
,
1465
,
1465
,
1465
,
1537
,
1913
,
/* 220 */
1
465
,
1465
,
1465
,
1465
,
1913
,
1465
,
1465
,
1465
,
1465
,
1537
,
/* 210 */
1465
,
1
465
,
1537
,
1732
,
1465
,
1537
,
1465
,
1465
,
1465
,
1537
,
/* 220 */
1
913
,
1465
,
1465
,
1465
,
1465
,
1913
,
1465
,
1465
,
1465
,
1537
,
/* 230 */
1465
,
1537
,
1465
,
1465
,
1465
,
1915
,
1913
,
1465
,
1465
,
1915
,
/* 240 */
1913
,
1465
,
1465
,
1465
,
1927
,
1923
,
1915
,
1931
,
1929
,
1906
,
/* 250 */
1904
,
1891
,
1465
,
1465
,
1945
,
1941
,
1957
,
1945
,
1941
,
1945
,
...
...
@@ -1858,7 +1858,7 @@ static const char *const yyRuleName[] = {
/* 231 */
"table_name_cond ::= table_name"
,
/* 232 */
"from_db_opt ::="
,
/* 233 */
"from_db_opt ::= FROM db_name"
,
/* 234 */
"cmd ::= CREATE SMA INDEX not_exists_opt index_name ON table_name index_options"
,
/* 234 */
"cmd ::= CREATE SMA INDEX not_exists_opt index_name ON
full_
table_name index_options"
,
/* 235 */
"cmd ::= DROP INDEX exists_opt index_name"
,
/* 236 */
"index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt"
,
/* 237 */
"index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt sma_stream_opt"
,
...
...
@@ -2949,7 +2949,7 @@ static const struct {
{
307
,
-
1
},
/* (231) table_name_cond ::= table_name */
{
308
,
0
},
/* (232) from_db_opt ::= */
{
308
,
-
2
},
/* (233) from_db_opt ::= FROM db_name */
{
257
,
-
8
},
/* (234) cmd ::= CREATE SMA INDEX not_exists_opt index_name ON table_name index_options */
{
257
,
-
8
},
/* (234) cmd ::= CREATE SMA INDEX not_exists_opt index_name ON
full_
table_name index_options */
{
257
,
-
4
},
/* (235) cmd ::= DROP INDEX exists_opt index_name */
{
310
,
-
10
},
/* (236) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */
{
310
,
-
12
},
/* (237) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt sma_stream_opt */
...
...
@@ -4064,8 +4064,8 @@ static YYACTIONTYPE yy_reduce(
case
233
:
/* from_db_opt ::= FROM db_name */
{
yymsp
[
-
1
].
minor
.
yy712
=
createValueNode
(
pCxt
,
TSDB_DATA_TYPE_BINARY
,
&
yymsp
[
0
].
minor
.
yy129
);
}
break
;
case
234
:
/* cmd ::= CREATE SMA INDEX not_exists_opt index_name ON table_name index_options */
{
pCxt
->
pRootNode
=
createCreateIndexStmt
(
pCxt
,
INDEX_TYPE_SMA
,
yymsp
[
-
4
].
minor
.
yy337
,
&
yymsp
[
-
3
].
minor
.
yy129
,
&
yymsp
[
-
1
].
minor
.
yy129
,
NULL
,
yymsp
[
0
].
minor
.
yy712
);
}
case
234
:
/* cmd ::= CREATE SMA INDEX not_exists_opt index_name ON
full_
table_name index_options */
{
pCxt
->
pRootNode
=
createCreateIndexStmt
(
pCxt
,
INDEX_TYPE_SMA
,
yymsp
[
-
4
].
minor
.
yy337
,
&
yymsp
[
-
3
].
minor
.
yy129
,
yymsp
[
-
1
].
minor
.
yy712
,
NULL
,
yymsp
[
0
].
minor
.
yy712
);
}
break
;
case
235
:
/* cmd ::= DROP INDEX exists_opt index_name */
{
pCxt
->
pRootNode
=
createDropIndexStmt
(
pCxt
,
yymsp
[
-
1
].
minor
.
yy337
,
&
yymsp
[
0
].
minor
.
yy129
);
}
...
...
@@ -4805,6 +4805,8 @@ static void yy_syntax_error(
}
else
{
pCxt
->
errCode
=
generateSyntaxErrMsg
(
&
pCxt
->
msgBuf
,
TSDB_CODE_PAR_INCOMPLETE_SQL
);
}
}
else
if
(
TSDB_CODE_PAR_DB_NOT_SPECIFIED
==
pCxt
->
errCode
&&
TK_NK_FLOAT
==
TOKEN
.
type
)
{
pCxt
->
errCode
=
generateSyntaxErrMsg
(
&
pCxt
->
msgBuf
,
TSDB_CODE_PAR_SYNTAX_ERROR
,
TOKEN
.
z
);
}
/************ End %syntax_error code ******************************************/
ParseARG_STORE
/* Suppress warning about unused %extra_argument variable */
...
...
source/libs/planner/src/planSpliter.c
浏览文件 @
313248ce
...
...
@@ -779,8 +779,10 @@ static SNode* stbSplCreateColumnNode(SExprNode* pExpr) {
strcpy
(
pCol
->
dbName
,
((
SColumnNode
*
)
pExpr
)
->
dbName
);
strcpy
(
pCol
->
tableName
,
((
SColumnNode
*
)
pExpr
)
->
tableName
);
strcpy
(
pCol
->
tableAlias
,
((
SColumnNode
*
)
pExpr
)
->
tableAlias
);
strcpy
(
pCol
->
colName
,
((
SColumnNode
*
)
pExpr
)
->
colName
);
}
else
{
strcpy
(
pCol
->
colName
,
pExpr
->
aliasName
);
}
strcpy
(
pCol
->
colName
,
pExpr
->
aliasName
);
strcpy
(
pCol
->
node
.
aliasName
,
pExpr
->
aliasName
);
pCol
->
node
.
resType
=
pExpr
->
resType
;
return
(
SNode
*
)
pCol
;
...
...
source/libs/planner/test/planSubqueryTest.cpp
浏览文件 @
313248ce
...
...
@@ -64,6 +64,12 @@ TEST_F(PlanSubqeuryTest, innerFill) {
"WHERE ts > '2022-04-06 00:00:00'"
);
}
TEST_F
(
PlanSubqeuryTest
,
innerOrderBy
)
{
useDb
(
"root"
,
"test"
);
run
(
"SELECT c2 FROM (SELECT c2 FROM st1 ORDER BY c1, _rowts)"
);
}
TEST_F
(
PlanSubqeuryTest
,
outerInterval
)
{
useDb
(
"root"
,
"test"
);
...
...
source/libs/transport/src/transCli.c
浏览文件 @
313248ce
...
...
@@ -381,8 +381,8 @@ void cliHandleResp(SCliConn* conn) {
STraceId
*
trace
=
&
transMsg
.
info
.
traceId
;
tGTrace
(
"%s conn %p %s received from %s, local info:%s,
msg size:%d, code:0x%x
"
,
CONN_GET_INST_LABEL
(
conn
),
conn
,
TMSG_INFO
(
pHead
->
msgType
),
conn
->
dst
,
conn
->
src
,
transMsg
.
contLen
,
t
ransMsg
.
code
);
tGTrace
(
"%s conn %p %s received from %s, local info:%s,
len:%d, code str:%s
"
,
CONN_GET_INST_LABEL
(
conn
),
conn
,
TMSG_INFO
(
pHead
->
msgType
),
conn
->
dst
,
conn
->
src
,
transMsg
.
contLen
,
t
strerror
(
transMsg
.
code
)
);
if
(
pCtx
==
NULL
&&
CONN_NO_PERSIST_BY_APP
(
conn
))
{
tDebug
(
"%s except, conn %p read while cli ignore it"
,
CONN_GET_INST_LABEL
(
conn
),
conn
);
...
...
@@ -549,6 +549,8 @@ static void addConnToPool(void* pool, SCliConn* conn) {
CONN_CONSTRUCT_HASH_KEY
(
key
,
conn
->
ip
,
conn
->
port
);
tTrace
(
"%s conn %p added to conn pool, read buf cap:%d"
,
CONN_GET_INST_LABEL
(
conn
),
conn
,
conn
->
readBuf
.
cap
);
conn
->
list
=
taosHashGet
((
SHashObj
*
)
pool
,
key
,
strlen
(
key
));
}
else
{
tTrace
(
"%s conn %p added to conn pool, read buf cap:%d"
,
CONN_GET_INST_LABEL
(
conn
),
conn
,
conn
->
readBuf
.
cap
);
}
assert
(
conn
->
list
!=
NULL
);
QUEUE_INIT
(
&
conn
->
q
);
...
...
@@ -756,8 +758,8 @@ void cliSend(SCliConn* pConn) {
uv_buf_t
wb
=
uv_buf_init
((
char
*
)
pHead
,
msgLen
);
STraceId
*
trace
=
&
pMsg
->
info
.
traceId
;
tGTrace
(
"%s conn %p %s is sent to %s, local info %s
"
,
CONN_GET_INST_LABEL
(
pConn
),
pConn
,
TMSG_INFO
(
pHead
->
msgType
)
,
pConn
->
dst
,
pConn
->
src
);
tGTrace
(
"%s conn %p %s is sent to %s, local info %s
, len:%d"
,
CONN_GET_INST_LABEL
(
pConn
),
pConn
,
TMSG_INFO
(
pHead
->
msgType
),
pConn
->
dst
,
pConn
->
src
,
pMsg
->
contLen
);
if
(
pHead
->
persist
==
1
)
{
CONN_SET_PERSIST_BY_APP
(
pConn
);
...
...
source/libs/transport/src/transSvr.c
浏览文件 @
313248ce
...
...
@@ -253,11 +253,11 @@ static void uvHandleReq(SSvrConn* pConn) {
if
(
pConn
->
status
==
ConnNormal
&&
pHead
->
noResp
==
0
)
{
transRefSrvHandle
(
pConn
);
tGTrace
(
"%s conn %p %s received from %s, local info:%s,
msg size
:%d"
,
transLabel
(
pTransInst
),
pConn
,
tGTrace
(
"%s conn %p %s received from %s, local info:%s,
len
:%d"
,
transLabel
(
pTransInst
),
pConn
,
TMSG_INFO
(
transMsg
.
msgType
),
pConn
->
dst
,
pConn
->
src
,
transMsg
.
contLen
);
}
else
{
tGTrace
(
"%s conn %p %s received from %s, local info:%s,
msg size:%d, resp:%d, code:%d"
,
transLabel
(
pTransInst
)
,
pConn
,
TMSG_INFO
(
transMsg
.
msgType
),
pConn
->
dst
,
pConn
->
src
,
transMsg
.
contLen
,
pHead
->
noResp
,
transMsg
.
code
);
tGTrace
(
"%s conn %p %s received from %s, local info:%s,
len:%d, resp:%d, code:%d"
,
transLabel
(
pTransInst
),
pConn
,
TMSG_INFO
(
transMsg
.
msgType
),
pConn
->
dst
,
pConn
->
src
,
transMsg
.
contLen
,
pHead
->
noResp
,
transMsg
.
code
);
}
// pHead->noResp = 1,
...
...
@@ -296,11 +296,9 @@ void uvOnRecvCb(uv_stream_t* cli, ssize_t nread, const uv_buf_t* buf) {
if
(
nread
>
0
)
{
pBuf
->
len
+=
nread
;
tTrace
(
"%s conn %p total read:%d, current read:%d"
,
transLabel
(
pTransInst
),
conn
,
pBuf
->
len
,
(
int
)
nread
);
if
(
transReadComplete
(
pBuf
))
{
while
(
transReadComplete
(
pBuf
))
{
tTrace
(
"%s conn %p alread read complete packet"
,
transLabel
(
pTransInst
),
conn
);
uvHandleReq
(
conn
);
}
else
{
tTrace
(
"%s conn %p read partial packet, continue to read"
,
transLabel
(
pTransInst
),
conn
);
}
return
;
}
...
...
@@ -418,8 +416,8 @@ static void uvPrepareSendData(SSvrMsg* smsg, uv_buf_t* wb) {
STrans
*
pTransInst
=
pConn
->
pTransInst
;
STraceId
*
trace
=
&
pMsg
->
info
.
traceId
;
tGTrace
(
"%s conn %p %s is sent to %s, local info:%s,
msg
len:%d"
,
transLabel
(
pTransInst
),
pConn
,
TMSG_INFO
(
pHead
->
msgType
),
pConn
->
dst
,
pConn
->
src
,
l
en
);
tGTrace
(
"%s conn %p %s is sent to %s, local info:%s, len:%d"
,
transLabel
(
pTransInst
),
pConn
,
TMSG_INFO
(
pHead
->
msgType
),
pConn
->
dst
,
pConn
->
src
,
pMsg
->
contL
en
);
pHead
->
msgLen
=
htonl
(
len
);
wb
->
base
=
msg
;
...
...
source/libs/wal/src/walWrite.c
浏览文件 @
313248ce
...
...
@@ -116,15 +116,15 @@ int32_t walRollback(SWal *pWal, int64_t ver) {
}
walBuildIdxName
(
pWal
,
walGetCurFileFirstVer
(
pWal
),
fnameStr
);
TdFilePtr
pIdx
T
File
=
taosOpenFile
(
fnameStr
,
TD_FILE_WRITE
|
TD_FILE_READ
|
TD_FILE_APPEND
);
TdFilePtr
pIdxFile
=
taosOpenFile
(
fnameStr
,
TD_FILE_WRITE
|
TD_FILE_READ
|
TD_FILE_APPEND
);
if
(
pIdx
T
File
==
NULL
)
{
if
(
pIdxFile
==
NULL
)
{
ASSERT
(
0
);
taosThreadMutexUnlock
(
&
pWal
->
mutex
);
return
-
1
;
}
int64_t
idxOff
=
walGetVerIdxOffset
(
pWal
,
ver
);
code
=
taosLSeekFile
(
pIdx
T
File
,
idxOff
,
SEEK_SET
);
code
=
taosLSeekFile
(
pIdxFile
,
idxOff
,
SEEK_SET
);
if
(
code
<
0
)
{
ASSERT
(
0
);
taosThreadMutexUnlock
(
&
pWal
->
mutex
);
...
...
@@ -132,7 +132,7 @@ int32_t walRollback(SWal *pWal, int64_t ver) {
}
// read idx file and get log file pos
SWalIdxEntry
entry
;
if
(
taosReadFile
(
pIdx
T
File
,
&
entry
,
sizeof
(
SWalIdxEntry
))
!=
sizeof
(
SWalIdxEntry
))
{
if
(
taosReadFile
(
pIdxFile
,
&
entry
,
sizeof
(
SWalIdxEntry
))
!=
sizeof
(
SWalIdxEntry
))
{
ASSERT
(
0
);
taosThreadMutexUnlock
(
&
pWal
->
mutex
);
return
-
1
;
...
...
@@ -140,24 +140,24 @@ int32_t walRollback(SWal *pWal, int64_t ver) {
ASSERT
(
entry
.
ver
==
ver
);
walBuildLogName
(
pWal
,
walGetCurFileFirstVer
(
pWal
),
fnameStr
);
TdFilePtr
pLogTFile
=
taosOpenFile
(
fnameStr
,
TD_FILE_WRITE
|
TD_FILE_READ
|
TD_FILE_APPEND
);
if
(
pLogTFile
==
NULL
)
{
ASSERT
(
0
);
TdFilePtr
pLogFile
=
taosOpenFile
(
fnameStr
,
TD_FILE_WRITE
|
TD_FILE_READ
|
TD_FILE_APPEND
);
if
(
pLogFile
==
NULL
)
{
// TODO
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
taosThreadMutexUnlock
(
&
pWal
->
mutex
);
return
-
1
;
}
code
=
taosLSeekFile
(
pLog
T
File
,
entry
.
offset
,
SEEK_SET
);
code
=
taosLSeekFile
(
pLogFile
,
entry
.
offset
,
SEEK_SET
);
if
(
code
<
0
)
{
ASSERT
(
0
);
// TODO
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
taosThreadMutexUnlock
(
&
pWal
->
mutex
);
return
-
1
;
}
// validate offset
SWalCkHead
head
;
ASSERT
(
taosValidFile
(
pLog
T
File
));
int64_t
size
=
taosReadFile
(
pLog
T
File
,
&
head
,
sizeof
(
SWalCkHead
));
ASSERT
(
taosValidFile
(
pLogFile
));
int64_t
size
=
taosReadFile
(
pLogFile
,
&
head
,
sizeof
(
SWalCkHead
));
if
(
size
!=
sizeof
(
SWalCkHead
))
{
ASSERT
(
0
);
taosThreadMutexUnlock
(
&
pWal
->
mutex
);
...
...
@@ -180,14 +180,14 @@ int32_t walRollback(SWal *pWal, int64_t ver) {
}
// truncate old files
code
=
taosFtruncateFile
(
pLog
T
File
,
entry
.
offset
);
code
=
taosFtruncateFile
(
pLogFile
,
entry
.
offset
);
if
(
code
<
0
)
{
ASSERT
(
0
);
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
taosThreadMutexUnlock
(
&
pWal
->
mutex
);
return
-
1
;
}
code
=
taosFtruncateFile
(
pIdx
T
File
,
idxOff
);
code
=
taosFtruncateFile
(
pIdxFile
,
idxOff
);
if
(
code
<
0
)
{
ASSERT
(
0
);
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
...
...
@@ -205,8 +205,10 @@ int32_t walRollback(SWal *pWal, int64_t ver) {
ASSERT
(((
SWalFileInfo
*
)
taosArrayGetLast
(
pWal
->
fileInfoSet
))
->
fileSize
==
0
);
((
SWalFileInfo
*
)
taosArrayGetLast
(
pWal
->
fileInfoSet
))
->
firstVer
=
-
1
;
}
taosCloseFile
(
&
pIdxTFile
);
taosCloseFile
(
&
pLogTFile
);
taosCloseFile
(
&
pIdxFile
);
taosCloseFile
(
&
pLogFile
);
walSaveMeta
(
pWal
);
// unlock
taosThreadMutexUnlock
(
&
pWal
->
mutex
);
...
...
tests/script/tsim/insert/basic2.sim
浏览文件 @
313248ce
...
...
@@ -26,8 +26,8 @@ endi
print =============== step3-1 insert records into ct1
sql insert into ct1 values('2022-05-03 16:59:00.010', 10, 20, 'n','n',30);
sql insert into ct1 values('2022-05-03 16:59:00.011', '
N', 'n
', 'N',"N",30);
sql insert into ct1 values('2022-05-03 16:59:00.012', '
Nu', 'nu
l', 'Nul','NUL',30);
sql insert into ct1 values('2022-05-03 16:59:00.011', '
null', 'null
', 'N',"N",30);
sql insert into ct1 values('2022-05-03 16:59:00.012', '
null', 'nul
l', 'Nul','NUL',30);
sql insert into ct1 values('2022-05-03 16:59:00.013', NULL, 'null', 'Null',null,30);
sql insert into ct1 values('2022-05-03 16:59:00.014', NULL, 'NuLL', 'Null',NULL,30);
...
...
tests/system-test/1-insert/create_retentions.py
浏览文件 @
313248ce
...
...
@@ -253,34 +253,34 @@ class TDTestCase:
tdLog
.
printNoPrefix
(
"==========step2.1.1 : alter stb schemaL drop column"
)
tdSql
.
query
(
f
"select
{
BINT_COL
}
from
{
DB3
}
.
{
STBNAME
}
"
)
tdSql
.
execute
(
f
"alter stable
{
DB3
}
.stb1 drop column
{
BINT_COL
}
"
)
#
TODO
not support alter stable schema anymore
#
tdSql.error(f"alter stable {DB3}.stb1 drop column {BINT_COL}")
tdSql
.
error
(
f
"select
{
BINT_COL
}
from
{
DB3
}
.
{
STBNAME
}
"
)
#
tdSql.execute(f"alter stable {DB3}.stb1 drop column {BINT_COL}")
# not support alter stable schema anymore
tdSql
.
error
(
f
"alter stable
{
DB3
}
.stb1 drop column
{
BINT_COL
}
"
)
#
tdSql.error(f"select {BINT_COL} from {DB3}.{STBNAME}")
tdLog
.
printNoPrefix
(
"==========step2.1.2 : alter stb schemaL add num_column"
)
#
TODO
not support alter stable schema anymore
#
tdSql.error(f"alter stable {DB3}.stb1 add column {INT_COL}_1 int")
# not support alter stable schema anymore
tdSql
.
error
(
f
"alter stable
{
DB3
}
.stb1 add column
{
INT_COL
}
_1 int"
)
tdSql
.
error
(
f
"select
{
INT_COL
}
_1 from
{
DB3
}
.
{
STBNAME
}
"
)
tdSql
.
execute
(
f
"alter stable
{
DB3
}
.stb1 add column
{
INT_COL
}
_1 int"
)
tdSql
.
query
(
f
"select count(
{
INT_COL
}
_1) from
{
DB3
}
.
{
STBNAME
}
where _c0 > now-5m"
)
tdSql
.
checkData
(
0
,
0
,
0
)
tdSql
.
execute
(
f
"insert into
{
DB3
}
.
{
CTBNAME
}
(
{
PRIMARY_COL
}
,
{
INT_COL
}
,
{
INT_COL
}
_1) values(
{
NOW
}
+20s, 111, 112)"
)
time
.
sleep
(
7
)
tdSql
.
query
(
f
"select _rowts,
{
INT_COL
}
,
{
INT_COL
}
_1 from
{
DB3
}
.
{
CTBNAME
}
where _c0 > now()-1h and _c0>
{
NOW
}
"
)
tdSql
.
checkRows
(
1
)
tdSql
.
checkData
(
0
,
1
,
111
)
tdSql
.
checkData
(
0
,
2
,
112
)
tdSql
.
query
(
f
"select _rowts,
{
INT_COL
}
,
{
INT_COL
}
_1 from
{
DB3
}
.
{
CTBNAME
}
where _c0 > now()-2d and _c0>
{
NOW
}
"
)
tdSql
.
checkRows
(
1
)
tdSql
.
checkData
(
0
,
1
,
111
)
tdSql
.
checkData
(
0
,
2
,
112
)
tdSql
.
query
(
f
"select _rowts,
{
INT_COL
}
,
{
INT_COL
}
_1 from
{
DB3
}
.
{
CTBNAME
}
where _c0 > now()-7d and _c0>
{
NOW
}
"
)
tdSql
.
checkRows
(
1
)
tdSql
.
checkData
(
0
,
1
,
111
)
tdSql
.
checkData
(
0
,
2
,
112
)
#
tdSql.execute(f"alter stable {DB3}.stb1 add column {INT_COL}_1 int")
#
tdSql.query(f"select count({INT_COL}_1) from {DB3}.{STBNAME} where _c0 > now-5m")
#
tdSql.checkData(0, 0, 0)
#
tdSql.execute(f"insert into {DB3}.{CTBNAME} ({PRIMARY_COL}, {INT_COL}, {INT_COL}_1) values({NOW}+20s, 111, 112)")
#
time.sleep(7)
#
tdSql.query(f"select _rowts, {INT_COL}, {INT_COL}_1 from {DB3}.{CTBNAME} where _c0 > now()-1h and _c0>{NOW}")
#
tdSql.checkRows(1)
#
tdSql.checkData(0, 1, 111)
#
tdSql.checkData(0, 2, 112)
#
#
tdSql.query(f"select _rowts, {INT_COL}, {INT_COL}_1 from {DB3}.{CTBNAME} where _c0 > now()-2d and _c0>{NOW}")
#
tdSql.checkRows(1)
#
tdSql.checkData(0, 1, 111)
#
tdSql.checkData(0, 2, 112)
#
tdSql.query(f"select _rowts, {INT_COL}, {INT_COL}_1 from {DB3}.{CTBNAME} where _c0 > now()-7d and _c0>{NOW}")
#
tdSql.checkRows(1)
#
tdSql.checkData(0, 1, 111)
#
tdSql.checkData(0, 2, 112)
tdLog
.
printNoPrefix
(
"==========step2.1.3 : drop child-table"
)
tdSql
.
execute
(
f
"drop table
{
DB3
}
.
{
CTBNAME
}
"
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录