Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
c7c6bcee
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看板
提交
c7c6bcee
编写于
10月 29, 2021
作者:
haoranc
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' of github.com:taosdata/TDengine into dev/chr
上级
dace639d
003d509d
变更
39
隐藏空白更改
内联
并排
Showing
39 changed file
with
1096 addition
and
248 deletion
+1096
-248
CMakeLists.txt
CMakeLists.txt
+1
-0
cmake/define.inc
cmake/define.inc
+4
-0
documentation20/cn/08.connector/01.java/docs.md
documentation20/cn/08.connector/01.java/docs.md
+0
-1
packaging/tools/post.sh
packaging/tools/post.sh
+0
-3
src/client/src/dataxJniConnection.c
src/client/src/dataxJniConnection.c
+1
-30
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+10
-12
src/common/inc/tdataformat.h
src/common/inc/tdataformat.h
+1
-1
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSet.java
...r/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSet.java
+25
-25
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBStatement.java
...r/jdbc/src/main/java/com/taosdata/jdbc/TSDBStatement.java
+1
-2
src/connector/jdbc/src/main/java/com/taosdata/jdbc/rs/RestfulResultSet.java
.../src/main/java/com/taosdata/jdbc/rs/RestfulResultSet.java
+25
-35
src/connector/jdbc/src/main/java/com/taosdata/jdbc/rs/RestfulStatement.java
.../src/main/java/com/taosdata/jdbc/rs/RestfulStatement.java
+1
-2
src/connector/jdbc/src/test/java/com/taosdata/jdbc/rs/RestfulResultSetTest.java
.../test/java/com/taosdata/jdbc/rs/RestfulResultSetTest.java
+1
-2
src/connector/jdbc/src/test/java/com/taosdata/jdbc/rs/WasNullTest.java
.../jdbc/src/test/java/com/taosdata/jdbc/rs/WasNullTest.java
+95
-0
src/dnode/CMakeLists.txt
src/dnode/CMakeLists.txt
+4
-0
src/dnode/src/dnodeMain.c
src/dnode/src/dnodeMain.c
+2
-0
src/inc/taosdef.h
src/inc/taosdef.h
+1
-1
src/mnode/src/mnodeDb.c
src/mnode/src/mnodeDb.c
+4
-1
src/mnode/src/mnodeFunc.c
src/mnode/src/mnodeFunc.c
+2
-0
src/mnode/src/mnodeMain.c
src/mnode/src/mnodeMain.c
+1
-1
src/mnode/src/mnodeWrite.c
src/mnode/src/mnodeWrite.c
+3
-1
src/os/src/darwin/dwSysInfo.c
src/os/src/darwin/dwSysInfo.c
+2
-0
src/os/src/detail/osSysinfo.c
src/os/src/detail/osSysinfo.c
+2
-0
src/os/src/detail/osTime.c
src/os/src/detail/osTime.c
+14
-3
src/os/src/windows/wSysinfo.c
src/os/src/windows/wSysinfo.c
+11
-0
src/query/inc/qSqlparser.h
src/query/inc/qSqlparser.h
+1
-1
src/query/inc/sql.y
src/query/inc/sql.y
+18
-19
src/query/src/qAggMain.c
src/query/src/qAggMain.c
+22
-9
src/query/src/qFilter.c
src/query/src/qFilter.c
+29
-3
src/query/src/qSqlParser.c
src/query/src/qSqlParser.c
+2
-1
src/query/src/sql.c
src/query/src/sql.c
+744
-81
src/tsdb/src/tsdbMemTable.c
src/tsdb/src/tsdbMemTable.c
+1
-1
src/util/src/tcompare.c
src/util/src/tcompare.c
+7
-1
src/vnode/src/vnodeRead.c
src/vnode/src/vnodeRead.c
+6
-0
tests/pytest/dbmgmt/nanoSecondCheck.py
tests/pytest/dbmgmt/nanoSecondCheck.py
+2
-1
tests/pytest/functions/function_derivative.py
tests/pytest/functions/function_derivative.py
+3
-0
tests/pytest/query/queryRegex.py
tests/pytest/query/queryRegex.py
+32
-7
tests/script/general/compute/csum.sim
tests/script/general/compute/csum.sim
+12
-0
tests/script/general/parser/alter.sim
tests/script/general/parser/alter.sim
+3
-2
tests/script/general/parser/alter__for_community_version.sim
tests/script/general/parser/alter__for_community_version.sim
+3
-2
未找到文件。
CMakeLists.txt
浏览文件 @
c7c6bcee
...
@@ -18,6 +18,7 @@ ENDIF ()
...
@@ -18,6 +18,7 @@ ENDIF ()
SET
(
TD_ACCOUNT FALSE
)
SET
(
TD_ACCOUNT FALSE
)
SET
(
TD_ADMIN FALSE
)
SET
(
TD_ADMIN FALSE
)
SET
(
TD_GRANT FALSE
)
SET
(
TD_GRANT FALSE
)
SET
(
TD_USB_DONGLE FALSE
)
SET
(
TD_MQTT FALSE
)
SET
(
TD_MQTT FALSE
)
SET
(
TD_TSDB_PLUGINS FALSE
)
SET
(
TD_TSDB_PLUGINS FALSE
)
SET
(
TD_STORAGE FALSE
)
SET
(
TD_STORAGE FALSE
)
...
...
cmake/define.inc
浏览文件 @
c7c6bcee
...
@@ -13,6 +13,10 @@ IF (TD_GRANT)
...
@@ -13,6 +13,10 @@ IF (TD_GRANT)
ADD_DEFINITIONS
(
-
D_GRANT
)
ADD_DEFINITIONS
(
-
D_GRANT
)
ENDIF
()
ENDIF
()
IF
(
TD_USB_DONGLE
)
ADD_DEFINITIONS
(
-
D_USB_DONGLE
)
ENDIF
()
IF
(
TD_MQTT
)
IF
(
TD_MQTT
)
ADD_DEFINITIONS
(
-
D_MQTT
)
ADD_DEFINITIONS
(
-
D_MQTT
)
ENDIF
()
ENDIF
()
...
...
documentation20/cn/08.connector/01.java/docs.md
浏览文件 @
c7c6bcee
...
@@ -334,7 +334,6 @@ JDBC连接器可能报错的错误码包括3种:JDBC driver本身的报错(
...
@@ -334,7 +334,6 @@ JDBC连接器可能报错的错误码包括3种:JDBC driver本身的报错(
从 2.1.2.0 版本开始,TDengine 的
**JDBC-JNI**
实现大幅改进了参数绑定方式对数据写入(INSERT)场景的支持。采用这种方式写入数据时,能避免 SQL 语法解析的资源消耗,从而在很多情况下显著提升写入性能。(注意:
**JDBC-RESTful**
实现并不提供参数绑定这种使用方式。)
从 2.1.2.0 版本开始,TDengine 的
**JDBC-JNI**
实现大幅改进了参数绑定方式对数据写入(INSERT)场景的支持。采用这种方式写入数据时,能避免 SQL 语法解析的资源消耗,从而在很多情况下显著提升写入性能。(注意:
**JDBC-RESTful**
实现并不提供参数绑定这种使用方式。)
```
java
```
java
Statement
stmt
=
conn
.
createStatement
();
Random
r
=
new
Random
();
Random
r
=
new
Random
();
// INSERT 语句中,VALUES 部分允许指定具体的数据列;如果采取自动建表,则 TAGS 部分需要设定全部 TAGS 列的参数值:
// INSERT 语句中,VALUES 部分允许指定具体的数据列;如果采取自动建表,则 TAGS 部分需要设定全部 TAGS 列的参数值:
...
...
packaging/tools/post.sh
浏览文件 @
c7c6bcee
...
@@ -280,9 +280,6 @@ function install_blm3_config() {
...
@@ -280,9 +280,6 @@ function install_blm3_config() {
${
csudo
}
chmod
644
${
cfg_install_dir
}
/blm.toml
${
csudo
}
chmod
644
${
cfg_install_dir
}
/blm.toml
fi
fi
# restore the backup standard input, and turn off 6
exec
0<&6 6<&-
[
-f
${
cfg_dir
}
/blm.toml
]
&&
[
-f
${
cfg_dir
}
/blm.toml
]
&&
${
csudo
}
mv
${
cfg_dir
}
/blm.toml
${
cfg_dir
}
/blm.toml.org
${
csudo
}
mv
${
cfg_dir
}
/blm.toml
${
cfg_dir
}
/blm.toml.org
...
...
src/client/src/dataxJniConnection.c
浏览文件 @
c7c6bcee
...
@@ -6,35 +6,6 @@
...
@@ -6,35 +6,6 @@
#include "com_alibaba_datax_plugin_writer_JniConnection.h"
#include "com_alibaba_datax_plugin_writer_JniConnection.h"
#include "jniCommon.h"
#include "jniCommon.h"
jclass
g_arrayListClass
;
jmethodID
g_arrayListConstructFp
;
jmethodID
g_arrayListAddFp
;
jclass
g_metadataClass
;
jmethodID
g_metadataConstructFp
;
jfieldID
g_metadataColtypeField
;
jfieldID
g_metadataColnameField
;
jfieldID
g_metadataColsizeField
;
jfieldID
g_metadataColindexField
;
jclass
g_rowdataClass
;
jmethodID
g_rowdataConstructor
;
jmethodID
g_rowdataClearFp
;
jmethodID
g_rowdataSetBooleanFp
;
jmethodID
g_rowdataSetByteFp
;
jmethodID
g_rowdataSetShortFp
;
jmethodID
g_rowdataSetIntFp
;
jmethodID
g_rowdataSetLongFp
;
jmethodID
g_rowdataSetFloatFp
;
jmethodID
g_rowdataSetDoubleFp
;
jmethodID
g_rowdataSetStringFp
;
jmethodID
g_rowdataSetTimestampFp
;
jmethodID
g_rowdataSetByteArrayFp
;
jmethodID
g_blockdataSetByteArrayFp
;
jmethodID
g_blockdataSetNumOfRowsFp
;
jmethodID
g_blockdataSetNumOfColsFp
;
JNIEXPORT
void
JNICALL
Java_com_alibaba_datax_plugin_writer_JniConnection_initImp
(
JNIEnv
*
env
,
jobject
jobj
,
JNIEXPORT
void
JNICALL
Java_com_alibaba_datax_plugin_writer_JniConnection_initImp
(
JNIEnv
*
env
,
jobject
jobj
,
jstring
jconfigDir
)
{
jstring
jconfigDir
)
{
if
(
jconfigDir
!=
NULL
)
{
if
(
jconfigDir
!=
NULL
)
{
...
@@ -229,4 +200,4 @@ JNIEXPORT jlong JNICALL Java_com_alibaba_datax_plugin_writer_JniConnection_inser
...
@@ -229,4 +200,4 @@ JNIEXPORT jlong JNICALL Java_com_alibaba_datax_plugin_writer_JniConnection_inser
(
*
env
)
->
ReleaseStringUTFChars
(
env
,
json
,
payload
);
(
*
env
)
->
ReleaseStringUTFChars
(
env
,
json
,
payload
);
return
(
jlong
)
result
;
return
(
jlong
)
result
;
}
}
\ No newline at end of file
src/client/src/tscSQLParser.c
浏览文件 @
c7c6bcee
...
@@ -4523,10 +4523,8 @@ static int32_t validateLikeExpr(tSqlExpr* pExpr, STableMeta* pTableMeta, int32_t
...
@@ -4523,10 +4523,8 @@ static int32_t validateLikeExpr(tSqlExpr* pExpr, STableMeta* pTableMeta, int32_t
// check for match expression
// check for match expression
static
int32_t
validateMatchExpr
(
tSqlExpr
*
pExpr
,
STableMeta
*
pTableMeta
,
int32_t
index
,
char
*
msgBuf
)
{
static
int32_t
validateMatchExpr
(
tSqlExpr
*
pExpr
,
STableMeta
*
pTableMeta
,
int32_t
index
,
char
*
msgBuf
)
{
const
char
*
msg1
=
"regular expression string should be less than %d characters"
;
const
char
*
msg1
=
"regular expression string should be less than %d characters"
;
const
char
*
msg2
=
"illegal column type for match/nmatch"
;
const
char
*
msg3
=
"invalid regular expression"
;
const
char
*
msg3
=
"invalid regular expression"
;
tSqlExpr
*
pLeft
=
pExpr
->
pLeft
;
tSqlExpr
*
pRight
=
pExpr
->
pRight
;
tSqlExpr
*
pRight
=
pExpr
->
pRight
;
if
(
pExpr
->
tokenId
==
TK_MATCH
||
pExpr
->
tokenId
==
TK_NMATCH
)
{
if
(
pExpr
->
tokenId
==
TK_MATCH
||
pExpr
->
tokenId
==
TK_NMATCH
)
{
...
@@ -4536,11 +4534,6 @@ static int32_t validateMatchExpr(tSqlExpr* pExpr, STableMeta* pTableMeta, int32_
...
@@ -4536,11 +4534,6 @@ static int32_t validateMatchExpr(tSqlExpr* pExpr, STableMeta* pTableMeta, int32_
return
invalidOperationMsg
(
msgBuf
,
tmp
);
return
invalidOperationMsg
(
msgBuf
,
tmp
);
}
}
SSchema
*
pSchema
=
tscGetTableSchema
(
pTableMeta
);
if
((
!
isTablenameToken
(
&
pLeft
->
columnName
))
&&
(
pSchema
[
index
].
type
!=
TSDB_DATA_TYPE_BINARY
))
{
return
invalidOperationMsg
(
msgBuf
,
msg2
);
}
if
(
!
(
pRight
->
type
==
SQL_NODE_VALUE
&&
pRight
->
value
.
nType
==
TSDB_DATA_TYPE_BINARY
))
{
if
(
!
(
pRight
->
type
==
SQL_NODE_VALUE
&&
pRight
->
value
.
nType
==
TSDB_DATA_TYPE_BINARY
))
{
return
invalidOperationMsg
(
msgBuf
,
msg3
);
return
invalidOperationMsg
(
msgBuf
,
msg3
);
}
}
...
@@ -6799,16 +6792,21 @@ static int32_t setKeepOption(SSqlCmd* pCmd, SCreateDbMsg* pMsg, SCreateDbInfo* p
...
@@ -6799,16 +6792,21 @@ static int32_t setKeepOption(SSqlCmd* pCmd, SCreateDbMsg* pMsg, SCreateDbInfo* p
tVariantListItem
*
p1
=
(
s
>
1
)
?
taosArrayGet
(
pKeep
,
1
)
:
p0
;
tVariantListItem
*
p1
=
(
s
>
1
)
?
taosArrayGet
(
pKeep
,
1
)
:
p0
;
tVariantListItem
*
p2
=
(
s
>
2
)
?
taosArrayGet
(
pKeep
,
2
)
:
p1
;
tVariantListItem
*
p2
=
(
s
>
2
)
?
taosArrayGet
(
pKeep
,
2
)
:
p1
;
if
((
int32_t
)
p0
->
pVar
.
i64
<=
0
||
(
int32_t
)
p1
->
pVar
.
i64
<=
0
||
(
int32_t
)
p2
->
pVar
.
i64
<=
0
)
{
int32_t
daysToKeep0
=
(
int32_t
)
p0
->
pVar
.
i64
;
int32_t
daysToKeep1
=
(
int32_t
)(
int32_t
)
p1
->
pVar
.
i64
;
int32_t
daysToKeep2
=
(
int32_t
)
p2
->
pVar
.
i64
;
if
(
daysToKeep0
<=
0
||
daysToKeep1
<=
0
||
daysToKeep2
<=
0
||
daysToKeep0
>
TSDB_MAX_KEEP
||
daysToKeep1
>
TSDB_MAX_KEEP
||
daysToKeep2
>
TSDB_MAX_KEEP
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg2
);
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg2
);
}
}
if
(
!
(((
int32_t
)
p0
->
pVar
.
i64
<=
(
int32_t
)
p1
->
pVar
.
i64
)
&&
((
int32_t
)
p1
->
pVar
.
i64
<=
(
int32_t
)
p2
->
pVar
.
i64
)))
{
if
(
!
((
daysToKeep0
<=
daysToKeep1
)
&&
(
daysToKeep1
<=
daysToKeep2
)))
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg3
);
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg3
);
}
}
pMsg
->
daysToKeep0
=
htonl
(
(
int32_t
)
p0
->
pVar
.
i64
);
pMsg
->
daysToKeep0
=
htonl
(
daysToKeep0
);
pMsg
->
daysToKeep1
=
htonl
(
(
int32_t
)
p1
->
pVar
.
i64
);
pMsg
->
daysToKeep1
=
htonl
(
daysToKeep1
);
pMsg
->
daysToKeep2
=
htonl
(
(
int32_t
)
p2
->
pVar
.
i64
);
pMsg
->
daysToKeep2
=
htonl
(
daysToKeep2
);
}
}
...
...
src/common/inc/tdataformat.h
浏览文件 @
c7c6bcee
...
@@ -139,7 +139,7 @@ typedef uint64_t TKEY;
...
@@ -139,7 +139,7 @@ typedef uint64_t TKEY;
#define tdGetTKEY(key) (((TKEY)ABS(key)) | (TKEY_NEGATIVE_FLAG & (TKEY)(key)))
#define tdGetTKEY(key) (((TKEY)ABS(key)) | (TKEY_NEGATIVE_FLAG & (TKEY)(key)))
#define tdGetKey(tkey) (((TSKEY)((tkey)&TKEY_VALUE_FILTER)) * (TKEY_IS_NEGATIVE(tkey) ? -1 : 1))
#define tdGetKey(tkey) (((TSKEY)((tkey)&TKEY_VALUE_FILTER)) * (TKEY_IS_NEGATIVE(tkey) ? -1 : 1))
#define MIN_TS_KEY ((TSKEY)0x
8
000000000000001)
#define MIN_TS_KEY ((TSKEY)0x
c
000000000000001)
#define MAX_TS_KEY ((TSKEY)0x3fffffffffffffff)
#define MAX_TS_KEY ((TSKEY)0x3fffffffffffffff)
#define TD_TO_TKEY(key) tdGetTKEY(((key) < MIN_TS_KEY) ? MIN_TS_KEY : (((key) > MAX_TS_KEY) ? MAX_TS_KEY : key))
#define TD_TO_TKEY(key) tdGetTKEY(((key) < MIN_TS_KEY) ? MIN_TS_KEY : (((key) > MAX_TS_KEY) ? MAX_TS_KEY : key))
...
...
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSet.java
浏览文件 @
c7c6bcee
...
@@ -19,6 +19,7 @@ import com.google.common.primitives.Longs;
...
@@ -19,6 +19,7 @@ import com.google.common.primitives.Longs;
import
com.google.common.primitives.Shorts
;
import
com.google.common.primitives.Shorts
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.nio.charset.StandardCharsets
;
import
java.sql.*
;
import
java.sql.*
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Calendar
;
...
@@ -256,7 +257,11 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
...
@@ -256,7 +257,11 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
public
byte
[]
getBytes
(
int
columnIndex
)
throws
SQLException
{
public
byte
[]
getBytes
(
int
columnIndex
)
throws
SQLException
{
checkAvailability
(
columnIndex
,
this
.
columnMetaDataList
.
size
());
checkAvailability
(
columnIndex
,
this
.
columnMetaDataList
.
size
());
if
(
this
.
getBatchFetch
())
return
this
.
blockData
.
getString
(
columnIndex
).
getBytes
();
Object
value
=
this
.
rowData
.
getObject
(
columnIndex
);
Object
value
=
this
.
rowData
.
getObject
(
columnIndex
);
this
.
lastWasNull
=
value
==
null
;
if
(
value
==
null
)
if
(
value
==
null
)
return
null
;
return
null
;
...
@@ -331,25 +336,26 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
...
@@ -331,25 +336,26 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
return
new
BigDecimal
(
this
.
blockData
.
getLong
(
columnIndex
-
1
));
return
new
BigDecimal
(
this
.
blockData
.
getLong
(
columnIndex
-
1
));
this
.
lastWasNull
=
this
.
rowData
.
wasNull
(
columnIndex
);
this
.
lastWasNull
=
this
.
rowData
.
wasNull
(
columnIndex
);
BigDecimal
res
=
null
;
if
(
lastWasNull
)
if
(!
lastWasNull
)
{
return
null
;
int
nativeType
=
this
.
columnMetaDataList
.
get
(
columnIndex
-
1
).
getColType
();
switch
(
nativeType
)
{
BigDecimal
res
;
case
TSDBConstants
.
TSDB_DATA_TYPE_TINYINT
:
int
nativeType
=
this
.
columnMetaDataList
.
get
(
columnIndex
-
1
).
getColType
();
case
TSDBConstants
.
TSDB_DATA_TYPE_SMALLINT
:
switch
(
nativeType
)
{
case
TSDBConstants
.
TSDB_DATA_TYPE_INT
:
case
TSDBConstants
.
TSDB_DATA_TYPE_TINYINT
:
case
TSDBConstants
.
TSDB_DATA_TYPE_BIGINT
:
case
TSDBConstants
.
TSDB_DATA_TYPE_SMALLINT
:
res
=
new
BigDecimal
(
Long
.
parseLong
(
this
.
rowData
.
getObject
(
columnIndex
).
toString
()));
case
TSDBConstants
.
TSDB_DATA_TYPE_INT
:
break
;
case
TSDBConstants
.
TSDB_DATA_TYPE_BIGINT
:
case
TSDBConstants
.
TSDB_DATA_TYPE_FLOAT
:
res
=
new
BigDecimal
(
Long
.
parseLong
(
this
.
rowData
.
getObject
(
columnIndex
).
toString
()));
case
TSDBConstants
.
TSDB_DATA_TYPE_DOUBLE
:
break
;
res
=
BigDecimal
.
valueOf
(
Double
.
parseDouble
(
this
.
rowData
.
getObject
(
columnIndex
).
toString
()));
case
TSDBConstants
.
TSDB_DATA_TYPE_FLOAT
:
break
;
case
TSDBConstants
.
TSDB_DATA_TYPE_DOUBLE
:
case
TSDBConstants
.
TSDB_DATA_TYPE_TIMESTAMP
:
res
=
BigDecimal
.
valueOf
(
Double
.
parseDouble
(
this
.
rowData
.
getObject
(
columnIndex
).
toString
()));
return
new
BigDecimal
(((
Timestamp
)
this
.
rowData
.
getObject
(
columnIndex
)).
getTime
());
break
;
default
:
case
TSDBConstants
.
TSDB_DATA_TYPE_TIMESTAMP
:
res
=
new
BigDecimal
(
this
.
rowData
.
getObject
(
columnIndex
).
toString
());
return
new
BigDecimal
(((
Timestamp
)
this
.
rowData
.
getObject
(
columnIndex
)).
getTime
());
}
default
:
res
=
new
BigDecimal
(
this
.
rowData
.
getObject
(
columnIndex
).
toString
());
}
}
return
res
;
return
res
;
}
}
...
@@ -465,12 +471,6 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
...
@@ -465,12 +471,6 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
public
boolean
isClosed
()
throws
SQLException
{
public
boolean
isClosed
()
throws
SQLException
{
return
isClosed
;
return
isClosed
;
// if (isClosed)
// return true;
// if (jniConnector != null) {
// isClosed = jniConnector.isResultsetClosed();
// }
// return isClosed;
}
}
public
String
getNString
(
int
columnIndex
)
throws
SQLException
{
public
String
getNString
(
int
columnIndex
)
throws
SQLException
{
...
...
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBStatement.java
浏览文件 @
c7c6bcee
...
@@ -84,8 +84,7 @@ public class TSDBStatement extends AbstractStatement {
...
@@ -84,8 +84,7 @@ public class TSDBStatement extends AbstractStatement {
long
pSql
=
this
.
connection
.
getConnector
().
executeQuery
(
sql
);
long
pSql
=
this
.
connection
.
getConnector
().
executeQuery
(
sql
);
// if pSql is create/insert/update/delete/alter SQL
// if pSql is create/insert/update/delete/alter SQL
if
(
this
.
connection
.
getConnector
().
isUpdateQuery
(
pSql
))
{
if
(
this
.
connection
.
getConnector
().
isUpdateQuery
(
pSql
))
{
int
rows
=
this
.
connection
.
getConnector
().
getAffectedRows
(
pSql
);
this
.
affectedRows
=
this
.
connection
.
getConnector
().
getAffectedRows
(
pSql
);
this
.
affectedRows
=
rows
==
0
?
-
1
:
this
.
connection
.
getConnector
().
getAffectedRows
(
pSql
);
this
.
connection
.
getConnector
().
freeResultSet
(
pSql
);
this
.
connection
.
getConnector
().
freeResultSet
(
pSql
);
return
false
;
return
false
;
}
}
...
...
src/connector/jdbc/src/main/java/com/taosdata/jdbc/rs/RestfulResultSet.java
浏览文件 @
c7c6bcee
...
@@ -255,11 +255,9 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
...
@@ -255,11 +255,9 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
if
(
value
==
null
)
{
wasNull
=
value
==
null
;
wasNull
=
true
;
if
(
value
==
null
)
return
null
;
return
null
;
}
wasNull
=
false
;
if
(
value
instanceof
byte
[])
if
(
value
instanceof
byte
[])
return
new
String
((
byte
[])
value
);
return
new
String
((
byte
[])
value
);
return
value
.
toString
();
return
value
.
toString
();
...
@@ -270,11 +268,9 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
...
@@ -270,11 +268,9 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
if
(
value
==
null
)
{
wasNull
=
value
==
null
;
wasNull
=
true
;
if
(
value
==
null
)
return
false
;
return
false
;
}
wasNull
=
false
;
if
(
value
instanceof
Boolean
)
if
(
value
instanceof
Boolean
)
return
(
boolean
)
value
;
return
(
boolean
)
value
;
return
Boolean
.
parseBoolean
(
value
.
toString
());
return
Boolean
.
parseBoolean
(
value
.
toString
());
...
@@ -285,11 +281,9 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
...
@@ -285,11 +281,9 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
if
(
value
==
null
)
{
wasNull
=
value
==
null
;
wasNull
=
true
;
if
(
value
==
null
)
return
0
;
return
0
;
}
wasNull
=
false
;
long
valueAsLong
=
Long
.
parseLong
(
value
.
toString
());
long
valueAsLong
=
Long
.
parseLong
(
value
.
toString
());
if
(
valueAsLong
==
Byte
.
MIN_VALUE
)
if
(
valueAsLong
==
Byte
.
MIN_VALUE
)
return
0
;
return
0
;
...
@@ -309,11 +303,9 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
...
@@ -309,11 +303,9 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
if
(
value
==
null
)
{
wasNull
=
value
==
null
;
wasNull
=
true
;
if
(
value
==
null
)
return
0
;
return
0
;
}
wasNull
=
false
;
long
valueAsLong
=
Long
.
parseLong
(
value
.
toString
());
long
valueAsLong
=
Long
.
parseLong
(
value
.
toString
());
if
(
valueAsLong
==
Short
.
MIN_VALUE
)
if
(
valueAsLong
==
Short
.
MIN_VALUE
)
return
0
;
return
0
;
...
@@ -327,11 +319,9 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
...
@@ -327,11 +319,9 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
if
(
value
==
null
)
{
wasNull
=
value
==
null
;
wasNull
=
true
;
if
(
value
==
null
)
return
0
;
return
0
;
}
wasNull
=
false
;
long
valueAsLong
=
Long
.
parseLong
(
value
.
toString
());
long
valueAsLong
=
Long
.
parseLong
(
value
.
toString
());
if
(
valueAsLong
==
Integer
.
MIN_VALUE
)
if
(
valueAsLong
==
Integer
.
MIN_VALUE
)
return
0
;
return
0
;
...
@@ -345,15 +335,11 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
...
@@ -345,15 +335,11 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
if
(
value
==
null
)
{
wasNull
=
value
==
null
;
wasNull
=
true
;
if
(
value
==
null
)
return
0
;
return
0
;
}
if
(
value
instanceof
Timestamp
)
wasNull
=
false
;
if
(
value
instanceof
Timestamp
)
{
return
((
Timestamp
)
value
).
getTime
();
return
((
Timestamp
)
value
).
getTime
();
}
long
valueAsLong
=
0
;
long
valueAsLong
=
0
;
try
{
try
{
valueAsLong
=
Long
.
parseLong
(
value
.
toString
());
valueAsLong
=
Long
.
parseLong
(
value
.
toString
());
...
@@ -370,11 +356,9 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
...
@@ -370,11 +356,9 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
if
(
value
==
null
)
{
wasNull
=
value
==
null
;
wasNull
=
true
;
if
(
value
==
null
)
return
0
;
return
0
;
}
wasNull
=
false
;
if
(
value
instanceof
Float
)
if
(
value
instanceof
Float
)
return
(
float
)
value
;
return
(
float
)
value
;
if
(
value
instanceof
Double
)
if
(
value
instanceof
Double
)
...
@@ -387,11 +371,10 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
...
@@ -387,11 +371,10 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
wasNull
=
value
==
null
;
if
(
value
==
null
)
{
if
(
value
==
null
)
{
wasNull
=
true
;
return
0
;
return
0
;
}
}
wasNull
=
false
;
if
(
value
instanceof
Double
||
value
instanceof
Float
)
if
(
value
instanceof
Double
||
value
instanceof
Float
)
return
(
double
)
value
;
return
(
double
)
value
;
return
Double
.
parseDouble
(
value
.
toString
());
return
Double
.
parseDouble
(
value
.
toString
());
...
@@ -402,6 +385,7 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
...
@@ -402,6 +385,7 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
wasNull
=
value
==
null
;
if
(
value
==
null
)
if
(
value
==
null
)
return
null
;
return
null
;
if
(
value
instanceof
byte
[])
if
(
value
instanceof
byte
[])
...
@@ -428,6 +412,7 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
...
@@ -428,6 +412,7 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
wasNull
=
value
==
null
;
if
(
value
==
null
)
if
(
value
==
null
)
return
null
;
return
null
;
if
(
value
instanceof
Timestamp
)
if
(
value
instanceof
Timestamp
)
...
@@ -440,6 +425,7 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
...
@@ -440,6 +425,7 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
wasNull
=
value
==
null
;
if
(
value
==
null
)
if
(
value
==
null
)
return
null
;
return
null
;
if
(
value
instanceof
Timestamp
)
if
(
value
instanceof
Timestamp
)
...
@@ -457,6 +443,7 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
...
@@ -457,6 +443,7 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
wasNull
=
value
==
null
;
if
(
value
==
null
)
if
(
value
==
null
)
return
null
;
return
null
;
if
(
value
instanceof
Timestamp
)
if
(
value
instanceof
Timestamp
)
...
@@ -473,6 +460,7 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
...
@@ -473,6 +460,7 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
ret
=
Utils
.
parseTimestamp
(
value
.
toString
());
ret
=
Utils
.
parseTimestamp
(
value
.
toString
());
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
ret
=
null
;
ret
=
null
;
wasNull
=
true
;
}
}
return
ret
;
return
ret
;
}
}
...
@@ -488,7 +476,9 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
...
@@ -488,7 +476,9 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
public
Object
getObject
(
int
columnIndex
)
throws
SQLException
{
public
Object
getObject
(
int
columnIndex
)
throws
SQLException
{
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
return
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
wasNull
=
value
==
null
;
return
value
;
}
}
@Override
@Override
...
@@ -507,9 +497,9 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
...
@@ -507,9 +497,9 @@ public class RestfulResultSet extends AbstractResultSet implements ResultSet {
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
checkAvailability
(
columnIndex
,
resultSet
.
get
(
pos
).
size
());
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
Object
value
=
resultSet
.
get
(
pos
).
get
(
columnIndex
-
1
);
wasNull
=
value
==
null
;
if
(
value
==
null
)
if
(
value
==
null
)
return
null
;
return
null
;
if
(
value
instanceof
Long
||
value
instanceof
Integer
||
value
instanceof
Short
||
value
instanceof
Byte
)
if
(
value
instanceof
Long
||
value
instanceof
Integer
||
value
instanceof
Short
||
value
instanceof
Byte
)
return
new
BigDecimal
(
Long
.
parseLong
(
value
.
toString
()));
return
new
BigDecimal
(
Long
.
parseLong
(
value
.
toString
()));
if
(
value
instanceof
Double
||
value
instanceof
Float
)
if
(
value
instanceof
Double
||
value
instanceof
Float
)
...
...
src/connector/jdbc/src/main/java/com/taosdata/jdbc/rs/RestfulStatement.java
浏览文件 @
c7c6bcee
...
@@ -140,8 +140,7 @@ public class RestfulStatement extends AbstractStatement {
...
@@ -140,8 +140,7 @@ public class RestfulStatement extends AbstractStatement {
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_INVALID_VARIABLE
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_INVALID_VARIABLE
);
JSONArray
data
=
jsonObject
.
getJSONArray
(
"data"
);
JSONArray
data
=
jsonObject
.
getJSONArray
(
"data"
);
if
(
data
!=
null
)
{
if
(
data
!=
null
)
{
int
rows
=
data
.
getJSONArray
(
0
).
getInteger
(
0
);
return
data
.
getJSONArray
(
0
).
getInteger
(
0
);
return
rows
==
0
?
-
1
:
data
.
getJSONArray
(
0
).
getInteger
(
0
);
}
}
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_INVALID_VARIABLE
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_INVALID_VARIABLE
);
}
}
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/rs/RestfulResultSetTest.java
浏览文件 @
c7c6bcee
...
@@ -660,7 +660,6 @@ public class RestfulResultSetTest {
...
@@ -660,7 +660,6 @@ public class RestfulResultSetTest {
@BeforeClass
@BeforeClass
public
static
void
beforeClass
()
{
public
static
void
beforeClass
()
{
try
{
try
{
Class
.
forName
(
"com.taosdata.jdbc.rs.RestfulDriver"
);
conn
=
DriverManager
.
getConnection
(
"jdbc:TAOS-RS://"
+
host
+
":6041/restful_test?user=root&password=taosdata"
);
conn
=
DriverManager
.
getConnection
(
"jdbc:TAOS-RS://"
+
host
+
":6041/restful_test?user=root&password=taosdata"
);
stmt
=
conn
.
createStatement
();
stmt
=
conn
.
createStatement
();
stmt
.
execute
(
"create database if not exists restful_test"
);
stmt
.
execute
(
"create database if not exists restful_test"
);
...
@@ -670,7 +669,7 @@ public class RestfulResultSetTest {
...
@@ -670,7 +669,7 @@ public class RestfulResultSetTest {
stmt
.
execute
(
"insert into restful_test.weather values('2021-01-01 00:00:00.000', 1, 100, 3.1415, 3.1415926, 'abc', 10, 10, true, '涛思数据')"
);
stmt
.
execute
(
"insert into restful_test.weather values('2021-01-01 00:00:00.000', 1, 100, 3.1415, 3.1415926, 'abc', 10, 10, true, '涛思数据')"
);
rs
=
stmt
.
executeQuery
(
"select * from restful_test.weather"
);
rs
=
stmt
.
executeQuery
(
"select * from restful_test.weather"
);
rs
.
next
();
rs
.
next
();
}
catch
(
ClassNotFoundException
|
SQLException
e
)
{
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/rs/WasNullTest.java
0 → 100644
浏览文件 @
c7c6bcee
package
com.taosdata.jdbc.rs
;
import
org.junit.*
;
import
java.sql.*
;
public
class
WasNullTest
{
// private static final String host = "127.0.0.1";
private
static
final
String
host
=
"master"
;
private
Connection
conn
;
@Test
public
void
testGetTimestamp
()
{
try
(
Statement
stmt
=
conn
.
createStatement
())
{
stmt
.
execute
(
"drop table if exists weather"
);
stmt
.
execute
(
"create table if not exists weather(f1 timestamp, f2 timestamp, f3 int)"
);
stmt
.
execute
(
"insert into restful_test.weather values('2021-01-01 00:00:00.000', NULL, 100)"
);
ResultSet
rs
=
stmt
.
executeQuery
(
"select * from restful_test.weather"
);
ResultSetMetaData
meta
=
rs
.
getMetaData
();
while
(
rs
.
next
())
{
for
(
int
i
=
1
;
i
<=
meta
.
getColumnCount
();
i
++)
{
if
(
i
==
2
)
{
Object
value
=
rs
.
getTimestamp
(
i
);
boolean
wasNull
=
rs
.
wasNull
();
Assert
.
assertNull
(
value
);
Assert
.
assertTrue
(
wasNull
);
}
else
{
Object
value
=
rs
.
getObject
(
i
);
boolean
wasNull
=
rs
.
wasNull
();
Assert
.
assertNotNull
(
value
);
Assert
.
assertFalse
(
wasNull
);
}
}
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
@Test
public
void
testGetObject
()
{
try
(
Statement
stmt
=
conn
.
createStatement
())
{
stmt
.
execute
(
"drop table if exists weather"
);
stmt
.
execute
(
"create table if not exists weather(f1 timestamp, f2 int, f3 bigint, f4 float, f5 double, f6 binary(64), f7 smallint, f8 tinyint, f9 bool, f10 nchar(64))"
);
stmt
.
execute
(
"insert into restful_test.weather values('2021-01-01 00:00:00.000', 1, 100, 3.1415, 3.1415926, NULL, 10, 10, true, '涛思数据')"
);
ResultSet
rs
=
stmt
.
executeQuery
(
"select * from restful_test.weather"
);
ResultSetMetaData
meta
=
rs
.
getMetaData
();
while
(
rs
.
next
())
{
for
(
int
i
=
1
;
i
<=
meta
.
getColumnCount
();
i
++)
{
Object
value
=
rs
.
getObject
(
i
);
boolean
wasNull
=
rs
.
wasNull
();
if
(
i
==
6
)
{
Assert
.
assertNull
(
value
);
Assert
.
assertTrue
(
wasNull
);
}
else
{
Assert
.
assertNotNull
(
value
);
Assert
.
assertFalse
(
wasNull
);
}
}
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
@Before
public
void
before
()
{
try
{
conn
=
DriverManager
.
getConnection
(
"jdbc:TAOS-RS://"
+
host
+
":6041/restful_test?user=root&password=taosdata"
);
Statement
stmt
=
conn
.
createStatement
();
stmt
.
execute
(
"drop database if exists restful_test"
);
stmt
.
execute
(
"create database if not exists restful_test"
);
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
@After
public
void
after
()
{
try
{
Statement
statement
=
conn
.
createStatement
();
statement
.
execute
(
"drop database if exists restful_test"
);
if
(
conn
!=
null
)
conn
.
close
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
}
src/dnode/CMakeLists.txt
浏览文件 @
c7c6bcee
...
@@ -39,6 +39,10 @@ IF (TD_GRANT)
...
@@ -39,6 +39,10 @@ IF (TD_GRANT)
TARGET_LINK_LIBRARIES
(
taosd grant
)
TARGET_LINK_LIBRARIES
(
taosd grant
)
ENDIF
()
ENDIF
()
IF
(
TD_USB_DONGLE
)
TARGET_LINK_LIBRARIES
(
taosd usb_dongle
)
ENDIF
()
IF
(
TD_MQTT
)
IF
(
TD_MQTT
)
TARGET_LINK_LIBRARIES
(
taosd mqtt
)
TARGET_LINK_LIBRARIES
(
taosd mqtt
)
ENDIF
()
ENDIF
()
...
...
src/dnode/src/dnodeMain.c
浏览文件 @
c7c6bcee
...
@@ -23,6 +23,7 @@
...
@@ -23,6 +23,7 @@
#include "twal.h"
#include "twal.h"
#include "tfs.h"
#include "tfs.h"
#include "tsync.h"
#include "tsync.h"
#include "tgrant.h"
#include "dnodeStep.h"
#include "dnodeStep.h"
#include "dnodePeer.h"
#include "dnodePeer.h"
#include "dnodeModule.h"
#include "dnodeModule.h"
...
@@ -88,6 +89,7 @@ static SStep tsDnodeSteps[] = {
...
@@ -88,6 +89,7 @@ static SStep tsDnodeSteps[] = {
{
"dnode-statustmr"
,
dnodeInitStatusTimer
,
dnodeCleanupStatusTimer
},
{
"dnode-statustmr"
,
dnodeInitStatusTimer
,
dnodeCleanupStatusTimer
},
{
"dnode-telemetry"
,
dnodeInitTelemetry
,
dnodeCleanupTelemetry
},
{
"dnode-telemetry"
,
dnodeInitTelemetry
,
dnodeCleanupTelemetry
},
{
"dnode-script"
,
scriptEnvPoolInit
,
scriptEnvPoolCleanup
},
{
"dnode-script"
,
scriptEnvPoolInit
,
scriptEnvPoolCleanup
},
{
"dnode-grant"
,
grantInit
,
grantCleanUp
},
};
};
static
SStep
tsDnodeCompactSteps
[]
=
{
static
SStep
tsDnodeCompactSteps
[]
=
{
...
...
src/inc/taosdef.h
浏览文件 @
c7c6bcee
...
@@ -295,7 +295,7 @@ do { \
...
@@ -295,7 +295,7 @@ do { \
#define TSDB_DEFAULT_DAYS_PER_FILE 10
#define TSDB_DEFAULT_DAYS_PER_FILE 10
#define TSDB_MIN_KEEP 1 // data in db to be reserved.
#define TSDB_MIN_KEEP 1 // data in db to be reserved.
#define TSDB_MAX_KEEP 36500
0
// data in db to be reserved.
#define TSDB_MAX_KEEP 36500 // data in db to be reserved.
#define TSDB_DEFAULT_KEEP 3650 // ten years
#define TSDB_DEFAULT_KEEP 3650 // ten years
#define TSDB_DEFAULT_MIN_ROW_FBLOCK 100
#define TSDB_DEFAULT_MIN_ROW_FBLOCK 100
...
...
src/mnode/src/mnodeDb.c
浏览文件 @
c7c6bcee
...
@@ -927,9 +927,12 @@ static int32_t mnodeProcessCreateDbMsg(SMnodeMsg *pMsg) {
...
@@ -927,9 +927,12 @@ static int32_t mnodeProcessCreateDbMsg(SMnodeMsg *pMsg) {
pCreate
->
maxRowsPerFileBlock
=
htonl
(
pCreate
->
maxRowsPerFileBlock
);
pCreate
->
maxRowsPerFileBlock
=
htonl
(
pCreate
->
maxRowsPerFileBlock
);
int32_t
code
;
int32_t
code
;
#ifdef GRANT_CHECK_WRITE
if
(
grantCheck
(
TSDB_GRANT_TIME
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
grantCheck
(
TSDB_GRANT_TIME
)
!=
TSDB_CODE_SUCCESS
)
{
code
=
TSDB_CODE_GRANT_EXPIRED
;
code
=
TSDB_CODE_GRANT_EXPIRED
;
}
else
if
(
!
pMsg
->
pUser
->
writeAuth
)
{
}
// else
#endif
if
(
!
pMsg
->
pUser
->
writeAuth
)
{
code
=
TSDB_CODE_MND_NO_RIGHTS
;
code
=
TSDB_CODE_MND_NO_RIGHTS
;
}
else
{
}
else
{
code
=
mnodeCreateDb
(
pMsg
->
pUser
->
pAcct
,
pCreate
,
pMsg
);
code
=
mnodeCreateDb
(
pMsg
->
pUser
->
pAcct
,
pCreate
,
pMsg
);
...
...
src/mnode/src/mnodeFunc.c
浏览文件 @
c7c6bcee
...
@@ -191,9 +191,11 @@ static int32_t mnodeUpdateFunc(SFuncObj *pFunc, void *pMsg) {
...
@@ -191,9 +191,11 @@ static int32_t mnodeUpdateFunc(SFuncObj *pFunc, void *pMsg) {
}
}
*/
*/
int32_t
mnodeCreateFunc
(
SAcctObj
*
pAcct
,
char
*
name
,
int32_t
codeLen
,
char
*
codeScript
,
char
*
path
,
uint8_t
outputType
,
int16_t
outputLen
,
int32_t
funcType
,
int32_t
bufSize
,
SMnodeMsg
*
pMsg
)
{
int32_t
mnodeCreateFunc
(
SAcctObj
*
pAcct
,
char
*
name
,
int32_t
codeLen
,
char
*
codeScript
,
char
*
path
,
uint8_t
outputType
,
int16_t
outputLen
,
int32_t
funcType
,
int32_t
bufSize
,
SMnodeMsg
*
pMsg
)
{
#ifdef GRANT_CHECK_WRITE
if
(
grantCheck
(
TSDB_GRANT_TIME
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
grantCheck
(
TSDB_GRANT_TIME
)
!=
TSDB_CODE_SUCCESS
)
{
return
TSDB_CODE_GRANT_EXPIRED
;
return
TSDB_CODE_GRANT_EXPIRED
;
}
}
#endif
if
(
!
pMsg
->
pUser
->
writeAuth
)
{
if
(
!
pMsg
->
pUser
->
writeAuth
)
{
return
TSDB_CODE_MND_NO_RIGHTS
;
return
TSDB_CODE_MND_NO_RIGHTS
;
...
...
src/mnode/src/mnodeMain.c
浏览文件 @
c7c6bcee
...
@@ -55,7 +55,7 @@ static SStep tsMnodeSteps[] = {
...
@@ -55,7 +55,7 @@ static SStep tsMnodeSteps[] = {
{
"mnodes"
,
mnodeInitMnodes
,
mnodeCleanupMnodes
},
{
"mnodes"
,
mnodeInitMnodes
,
mnodeCleanupMnodes
},
{
"sdb"
,
sdbInit
,
sdbCleanUp
},
{
"sdb"
,
sdbInit
,
sdbCleanUp
},
{
"balance"
,
bnInit
,
bnCleanUp
},
{
"balance"
,
bnInit
,
bnCleanUp
},
{
"grant"
,
grantInit
,
grantCleanUp
},
//
{"grant", grantInit, grantCleanUp},
{
"show"
,
mnodeInitShow
,
mnodeCleanUpShow
}
{
"show"
,
mnodeInitShow
,
mnodeCleanUpShow
}
};
};
...
...
src/mnode/src/mnodeWrite.c
浏览文件 @
c7c6bcee
...
@@ -65,14 +65,16 @@ int32_t mnodeProcessWrite(SMnodeMsg *pMsg) {
...
@@ -65,14 +65,16 @@ int32_t mnodeProcessWrite(SMnodeMsg *pMsg) {
return
TSDB_CODE_MND_MSG_NOT_PROCESSED
;
return
TSDB_CODE_MND_MSG_NOT_PROCESSED
;
}
}
#ifdef GRANT_CHECK_WRITE
int32_t
code
=
grantCheck
(
TSDB_GRANT_TIME
);
int32_t
code
=
grantCheck
(
TSDB_GRANT_TIME
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
mError
(
"msg:%p, app:%p type:%s not processed, reason:%s"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
taosMsg
[
pMsg
->
rpcMsg
.
msgType
],
mError
(
"msg:%p, app:%p type:%s not processed, reason:%s"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
taosMsg
[
pMsg
->
rpcMsg
.
msgType
],
tstrerror
(
code
));
tstrerror
(
code
));
return
code
;
return
code
;
}
}
#endif
code
=
mnodeInitMsg
(
pMsg
);
int32_t
code
=
mnodeInitMsg
(
pMsg
);
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
mError
(
"msg:%p, app:%p type:%s not processed, reason:%s"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
taosMsg
[
pMsg
->
rpcMsg
.
msgType
],
mError
(
"msg:%p, app:%p type:%s not processed, reason:%s"
,
pMsg
,
pMsg
->
rpcMsg
.
ahandle
,
taosMsg
[
pMsg
->
rpcMsg
.
msgType
],
tstrerror
(
code
));
tstrerror
(
code
));
...
...
src/os/src/darwin/dwSysInfo.c
浏览文件 @
c7c6bcee
...
@@ -65,6 +65,8 @@ static void taosGetSystemTimezone() {
...
@@ -65,6 +65,8 @@ static void taosGetSystemTimezone() {
struct
tm
tm1
;
struct
tm
tm1
;
localtime_r
(
&
tx1
,
&
tm1
);
localtime_r
(
&
tx1
,
&
tm1
);
tsDaylight
=
daylight
;
/*
/*
* format example:
* format example:
*
*
...
...
src/os/src/detail/osSysinfo.c
浏览文件 @
c7c6bcee
...
@@ -213,6 +213,8 @@ static void taosGetSystemTimezone() {
...
@@ -213,6 +213,8 @@ static void taosGetSystemTimezone() {
int32_t
tz
=
(
-
timezone
*
MILLISECOND_PER_SECOND
)
/
MILLISECOND_PER_HOUR
;
int32_t
tz
=
(
-
timezone
*
MILLISECOND_PER_SECOND
)
/
MILLISECOND_PER_HOUR
;
tz
+=
daylight
;
tz
+=
daylight
;
tsDaylight
=
daylight
;
/*
/*
* format example:
* format example:
*
*
...
...
src/os/src/detail/osTime.c
浏览文件 @
c7c6bcee
...
@@ -380,15 +380,20 @@ int64_t convertTimePrecision(int64_t time, int32_t fromPrecision, int32_t toPrec
...
@@ -380,15 +380,20 @@ int64_t convertTimePrecision(int64_t time, int32_t fromPrecision, int32_t toPrec
assert
(
toPrecision
==
TSDB_TIME_PRECISION_MILLI
||
assert
(
toPrecision
==
TSDB_TIME_PRECISION_MILLI
||
toPrecision
==
TSDB_TIME_PRECISION_MICRO
||
toPrecision
==
TSDB_TIME_PRECISION_MICRO
||
toPrecision
==
TSDB_TIME_PRECISION_NANO
);
toPrecision
==
TSDB_TIME_PRECISION_NANO
);
double
tempResult
=
time
;
switch
(
fromPrecision
)
{
switch
(
fromPrecision
)
{
case
TSDB_TIME_PRECISION_MILLI
:
{
case
TSDB_TIME_PRECISION_MILLI
:
{
switch
(
toPrecision
)
{
switch
(
toPrecision
)
{
case
TSDB_TIME_PRECISION_MILLI
:
case
TSDB_TIME_PRECISION_MILLI
:
return
time
;
return
time
;
case
TSDB_TIME_PRECISION_MICRO
:
case
TSDB_TIME_PRECISION_MICRO
:
return
time
*
1000
;
tempResult
*=
1000
;
time
*=
1000
;
goto
end_
;
case
TSDB_TIME_PRECISION_NANO
:
case
TSDB_TIME_PRECISION_NANO
:
return
time
*
1000000
;
tempResult
*=
1000000
;
time
*=
1000000
;
goto
end_
;
}
}
}
// end from milli
}
// end from milli
case
TSDB_TIME_PRECISION_MICRO
:
{
case
TSDB_TIME_PRECISION_MICRO
:
{
...
@@ -398,7 +403,9 @@ int64_t convertTimePrecision(int64_t time, int32_t fromPrecision, int32_t toPrec
...
@@ -398,7 +403,9 @@ int64_t convertTimePrecision(int64_t time, int32_t fromPrecision, int32_t toPrec
case
TSDB_TIME_PRECISION_MICRO
:
case
TSDB_TIME_PRECISION_MICRO
:
return
time
;
return
time
;
case
TSDB_TIME_PRECISION_NANO
:
case
TSDB_TIME_PRECISION_NANO
:
return
time
*
1000
;
tempResult
*=
1000
;
time
*=
1000
;
goto
end_
;
}
}
}
//end from micro
}
//end from micro
case
TSDB_TIME_PRECISION_NANO
:
{
case
TSDB_TIME_PRECISION_NANO
:
{
...
@@ -416,6 +423,10 @@ int64_t convertTimePrecision(int64_t time, int32_t fromPrecision, int32_t toPrec
...
@@ -416,6 +423,10 @@ int64_t convertTimePrecision(int64_t time, int32_t fromPrecision, int32_t toPrec
return
time
;
// only to pass windows compilation
return
time
;
// only to pass windows compilation
}
}
}
//end switch fromPrecision
}
//end switch fromPrecision
end_:
if
(
tempResult
>
(
double
)
INT64_MAX
)
return
INT64_MAX
;
if
(
tempResult
<
(
double
)
INT64_MIN
)
return
INT64_MIN
+
1
;
// INT64_MIN means NULL
return
time
;
}
}
static
int32_t
getDuration
(
int64_t
val
,
char
unit
,
int64_t
*
result
,
int32_t
timePrecision
)
{
static
int32_t
getDuration
(
int64_t
val
,
char
unit
,
int64_t
*
result
,
int32_t
timePrecision
)
{
...
...
src/os/src/windows/wSysinfo.c
浏览文件 @
c7c6bcee
...
@@ -91,6 +91,17 @@ static void taosGetSystemTimezone() {
...
@@ -91,6 +91,17 @@ static void taosGetSystemTimezone() {
strcpy
(
tsTimezone
,
tz
);
strcpy
(
tsTimezone
,
tz
);
}
}
cfg_timezone
->
cfgStatus
=
TAOS_CFG_CSTATUS_DEFAULT
;
cfg_timezone
->
cfgStatus
=
TAOS_CFG_CSTATUS_DEFAULT
;
#ifdef _MSC_VER
#if _MSC_VER >= 1900
int64_t
timezone
=
_timezone
;
int32_t
daylight
=
_daylight
;
char
**
tzname
=
_tzname
;
#endif
#endif
tsDaylight
=
daylight
;
uInfo
(
"timezone not configured, use default"
);
uInfo
(
"timezone not configured, use default"
);
}
}
}
}
...
...
src/query/inc/qSqlparser.h
浏览文件 @
c7c6bcee
...
@@ -281,7 +281,7 @@ void *destroyRelationInfo(SRelationInfo* pFromInfo);
...
@@ -281,7 +281,7 @@ void *destroyRelationInfo(SRelationInfo* pFromInfo);
SRelationInfo
*
addSubqueryElem
(
SRelationInfo
*
pRelationInfo
,
SArray
*
pSub
,
SStrToken
*
pAlias
);
SRelationInfo
*
addSubqueryElem
(
SRelationInfo
*
pRelationInfo
,
SArray
*
pSub
,
SStrToken
*
pAlias
);
// sql expr leaf node
// sql expr leaf node
tSqlExpr
*
tSqlExprCreateIdValue
(
SStrToken
*
pToken
,
int32_t
optrType
);
tSqlExpr
*
tSqlExprCreateIdValue
(
SS
qlInfo
*
pInfo
,
SS
trToken
*
pToken
,
int32_t
optrType
);
tSqlExpr
*
tSqlExprCreateFunction
(
SArray
*
pParam
,
SStrToken
*
pFuncToken
,
SStrToken
*
endToken
,
int32_t
optType
);
tSqlExpr
*
tSqlExprCreateFunction
(
SArray
*
pParam
,
SStrToken
*
pFuncToken
,
SStrToken
*
endToken
,
int32_t
optType
);
SArray
*
tStrTokenAppend
(
SArray
*
pList
,
SStrToken
*
pToken
);
SArray
*
tStrTokenAppend
(
SArray
*
pList
,
SStrToken
*
pToken
);
...
...
src/query/inc/sql.y
浏览文件 @
c7c6bcee
...
@@ -90,7 +90,6 @@ dbPrefix(A) ::= ids(X) DOT. {A = X; }
...
@@ -90,7 +90,6 @@ dbPrefix(A) ::= ids(X) DOT. {A = X; }
%type cpxName {SStrToken}
%type cpxName {SStrToken}
cpxName(A) ::= . {A.n = 0; }
cpxName(A) ::= . {A.n = 0; }
cpxName(A) ::= DOT ids(Y). {A = Y; A.n += 1; }
cpxName(A) ::= DOT ids(Y). {A = Y; A.n += 1; }
cmd ::= SHOW CREATE TABLE ids(X) cpxName(Y). {
cmd ::= SHOW CREATE TABLE ids(X) cpxName(Y). {
X.n += Y.n;
X.n += Y.n;
setDCLSqlElems(pInfo, TSDB_SQL_SHOW_CREATE_TABLE, 1, &X);
setDCLSqlElems(pInfo, TSDB_SQL_SHOW_CREATE_TABLE, 1, &X);
...
@@ -520,7 +519,7 @@ selcollist(A) ::= sclp(P) distinct(Z) expr(X) as(Y). {
...
@@ -520,7 +519,7 @@ selcollist(A) ::= sclp(P) distinct(Z) expr(X) as(Y). {
}
}
selcollist(A) ::= sclp(P) STAR. {
selcollist(A) ::= sclp(P) STAR. {
tSqlExpr *pNode = tSqlExprCreateIdValue(NULL, TK_ALL);
tSqlExpr *pNode = tSqlExprCreateIdValue(
pInfo,
NULL, TK_ALL);
A = tSqlExprListAppend(P, pNode, 0, 0);
A = tSqlExprListAppend(P, pNode, 0, 0);
}
}
...
@@ -701,23 +700,23 @@ where_opt(A) ::= WHERE expr(X). {A = X;}
...
@@ -701,23 +700,23 @@ where_opt(A) ::= WHERE expr(X). {A = X;}
expr(A) ::= LP(X) expr(Y) RP(Z). {A = Y; A->exprToken.z = X.z; A->exprToken.n = (Z.z - X.z + 1);}
expr(A) ::= LP(X) expr(Y) RP(Z). {A = Y; A->exprToken.z = X.z; A->exprToken.n = (Z.z - X.z + 1);}
expr(A) ::= ID(X). { A = tSqlExprCreateIdValue(&X, TK_ID);}
expr(A) ::= ID(X). { A = tSqlExprCreateIdValue(
pInfo,
&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 ID(Y). { X.n += (1+Y.n); A = tSqlExprCreateIdValue(
pInfo,
&X, TK_ID);}
expr(A) ::= ID(X) DOT STAR(Y). { X.n += (1+Y.n); A = tSqlExprCreateIdValue(&X, TK_ALL);}
expr(A) ::= ID(X) DOT STAR(Y). { X.n += (1+Y.n); A = tSqlExprCreateIdValue(
pInfo,
&X, TK_ALL);}
expr(A) ::= INTEGER(X). { A = tSqlExprCreateIdValue(&X, TK_INTEGER);}
expr(A) ::= INTEGER(X). { A = tSqlExprCreateIdValue(
pInfo,
&X, TK_INTEGER);}
expr(A) ::= MINUS(X) INTEGER(Y). { X.n += Y.n; X.type = TK_INTEGER; A = tSqlExprCreateIdValue(&X, TK_INTEGER);}
expr(A) ::= MINUS(X) INTEGER(Y). { X.n += Y.n; X.type = TK_INTEGER; A = tSqlExprCreateIdValue(
pInfo,
&X, TK_INTEGER);}
expr(A) ::= PLUS(X) INTEGER(Y). { X.n += Y.n; X.type = TK_INTEGER; A = tSqlExprCreateIdValue(&X, TK_INTEGER);}
expr(A) ::= PLUS(X) INTEGER(Y). { X.n += Y.n; X.type = TK_INTEGER; A = tSqlExprCreateIdValue(
pInfo,
&X, TK_INTEGER);}
expr(A) ::= FLOAT(X). { A = tSqlExprCreateIdValue(&X, TK_FLOAT);}
expr(A) ::= FLOAT(X). { A = tSqlExprCreateIdValue(
pInfo,
&X, TK_FLOAT);}
expr(A) ::= MINUS(X) FLOAT(Y). { X.n += Y.n; X.type = TK_FLOAT; A = tSqlExprCreateIdValue(&X, TK_FLOAT);}
expr(A) ::= MINUS(X) FLOAT(Y). { X.n += Y.n; X.type = TK_FLOAT; A = tSqlExprCreateIdValue(
pInfo,
&X, TK_FLOAT);}
expr(A) ::= PLUS(X) FLOAT(Y). { X.n += Y.n; X.type = TK_FLOAT; A = tSqlExprCreateIdValue(&X, TK_FLOAT);}
expr(A) ::= PLUS(X) FLOAT(Y). { X.n += Y.n; X.type = TK_FLOAT; A = tSqlExprCreateIdValue(
pInfo,
&X, TK_FLOAT);}
expr(A) ::= STRING(X). { A = tSqlExprCreateIdValue(&X, TK_STRING);}
expr(A) ::= STRING(X). { A = tSqlExprCreateIdValue(
pInfo,
&X, TK_STRING);}
expr(A) ::= NOW(X). { A = tSqlExprCreateIdValue(&X, TK_NOW); }
expr(A) ::= NOW(X). { A = tSqlExprCreateIdValue(
pInfo,
&X, TK_NOW); }
expr(A) ::= VARIABLE(X). { A = tSqlExprCreateIdValue(&X, TK_VARIABLE);}
expr(A) ::= VARIABLE(X). { A = tSqlExprCreateIdValue(
pInfo,
&X, TK_VARIABLE);}
expr(A) ::= PLUS(X) VARIABLE(Y). { X.n += Y.n; X.type = TK_VARIABLE; A = tSqlExprCreateIdValue(&X, TK_VARIABLE);}
expr(A) ::= PLUS(X) VARIABLE(Y). { X.n += Y.n; X.type = TK_VARIABLE; A = tSqlExprCreateIdValue(
pInfo,
&X, TK_VARIABLE);}
expr(A) ::= MINUS(X) VARIABLE(Y). { X.n += Y.n; X.type = TK_VARIABLE; A = tSqlExprCreateIdValue(&X, TK_VARIABLE);}
expr(A) ::= MINUS(X) VARIABLE(Y). { X.n += Y.n; X.type = TK_VARIABLE; A = tSqlExprCreateIdValue(
pInfo,
&X, TK_VARIABLE);}
expr(A) ::= BOOL(X). { A = tSqlExprCreateIdValue(&X, TK_BOOL);}
expr(A) ::= BOOL(X). { A = tSqlExprCreateIdValue(
pInfo,
&X, TK_BOOL);}
expr(A) ::= NULL(X). { A = tSqlExprCreateIdValue(&X, TK_NULL);}
expr(A) ::= NULL(X). { A = tSqlExprCreateIdValue(
pInfo,
&X, TK_NULL);}
// ordinary functions: min(x), max(x), top(k, 20)
// ordinary functions: min(x), max(x), top(k, 20)
expr(A) ::= ID(X) LP exprlist(Y) RP(E). { tStrTokenAppend(pInfo->funcs, &X); A = tSqlExprCreateFunction(Y, &X, &E, X.type); }
expr(A) ::= ID(X) LP exprlist(Y) RP(E). { tStrTokenAppend(pInfo->funcs, &X); A = tSqlExprCreateFunction(Y, &X, &E, X.type); }
...
...
src/query/src/qAggMain.c
浏览文件 @
c7c6bcee
...
@@ -20,7 +20,6 @@
...
@@ -20,7 +20,6 @@
#include "tdigest.h"
#include "tdigest.h"
#include "ttype.h"
#include "ttype.h"
#include "tsdb.h"
#include "tsdb.h"
#include "tglobal.h"
#include "qAggMain.h"
#include "qAggMain.h"
#include "qFill.h"
#include "qFill.h"
...
@@ -172,7 +171,11 @@ typedef struct SDerivInfo {
...
@@ -172,7 +171,11 @@ typedef struct SDerivInfo {
}
SDerivInfo
;
}
SDerivInfo
;
typedef
struct
{
typedef
struct
{
double
cumSum
;
union
{
double
d64CumSum
;
int64_t
i64CumSum
;
uint64_t
u64CumSum
;
};
}
SCumSumInfo
;
}
SCumSumInfo
;
typedef
struct
{
typedef
struct
{
...
@@ -4709,7 +4712,7 @@ static bool csum_function_setup(SQLFunctionCtx *pCtx, SResultRowCellInfo* pResIn
...
@@ -4709,7 +4712,7 @@ static bool csum_function_setup(SQLFunctionCtx *pCtx, SResultRowCellInfo* pResIn
}
}
SCumSumInfo
*
pCumSumInfo
=
GET_ROWCELL_INTERBUF
(
pResInfo
);
SCumSumInfo
*
pCumSumInfo
=
GET_ROWCELL_INTERBUF
(
pResInfo
);
pCumSumInfo
->
c
umSum
=
0
;
pCumSumInfo
->
i64C
umSum
=
0
;
return
true
;
return
true
;
}
}
...
@@ -4733,20 +4736,30 @@ static void csum_function(SQLFunctionCtx *pCtx) {
...
@@ -4733,20 +4736,30 @@ static void csum_function(SQLFunctionCtx *pCtx) {
continue
;
continue
;
}
}
double
v
=
0
;
if
(
IS_SIGNED_NUMERIC_TYPE
(
pCtx
->
inputType
))
{
GET_TYPED_DATA
(
v
,
double
,
pCtx
->
inputType
,
pData
);
int64_t
v
=
0
;
pCumSumInfo
->
cumSum
+=
v
;
GET_TYPED_DATA
(
v
,
int64_t
,
pCtx
->
inputType
,
pData
);
pCumSumInfo
->
i64CumSum
+=
v
;
}
else
if
(
IS_UNSIGNED_NUMERIC_TYPE
(
pCtx
->
inputType
))
{
uint64_t
v
=
0
;
GET_TYPED_DATA
(
v
,
uint64_t
,
pCtx
->
inputType
,
pData
);
pCumSumInfo
->
u64CumSum
+=
v
;
}
else
if
(
IS_FLOAT_TYPE
(
pCtx
->
inputType
))
{
double
v
=
0
;
GET_TYPED_DATA
(
v
,
double
,
pCtx
->
inputType
,
pData
);
pCumSumInfo
->
d64CumSum
+=
v
;
}
*
pTimestamp
=
(
tsList
!=
NULL
)
?
tsList
[
i
]
:
0
;
*
pTimestamp
=
(
tsList
!=
NULL
)
?
tsList
[
i
]
:
0
;
if
(
IS_SIGNED_NUMERIC_TYPE
(
pCtx
->
inputType
))
{
if
(
IS_SIGNED_NUMERIC_TYPE
(
pCtx
->
inputType
))
{
int64_t
*
retVal
=
(
int64_t
*
)
pCtx
->
pOutput
;
int64_t
*
retVal
=
(
int64_t
*
)
pCtx
->
pOutput
;
*
retVal
=
(
int64_t
)(
pCumSumInfo
->
c
umSum
);
*
retVal
=
(
int64_t
)(
pCumSumInfo
->
i64C
umSum
);
}
else
if
(
IS_UNSIGNED_NUMERIC_TYPE
(
pCtx
->
inputType
))
{
}
else
if
(
IS_UNSIGNED_NUMERIC_TYPE
(
pCtx
->
inputType
))
{
uint64_t
*
retVal
=
(
uint64_t
*
)
pCtx
->
pOutput
;
uint64_t
*
retVal
=
(
uint64_t
*
)
pCtx
->
pOutput
;
*
retVal
=
(
uint64_t
)(
pCumSumInfo
->
c
umSum
);
*
retVal
=
(
uint64_t
)(
pCumSumInfo
->
u64C
umSum
);
}
else
if
(
IS_FLOAT_TYPE
(
pCtx
->
inputType
))
{
}
else
if
(
IS_FLOAT_TYPE
(
pCtx
->
inputType
))
{
double
*
retVal
=
(
double
*
)
pCtx
->
pOutput
;
double
*
retVal
=
(
double
*
)
pCtx
->
pOutput
;
SET_DOUBLE_VAL
(
retVal
,
pCumSumInfo
->
c
umSum
);
SET_DOUBLE_VAL
(
retVal
,
pCumSumInfo
->
d64C
umSum
);
}
}
++
notNullElems
;
++
notNullElems
;
...
...
src/query/src/qFilter.c
浏览文件 @
c7c6bcee
...
@@ -1841,6 +1841,15 @@ int32_t filterInitValFieldData(SFilterInfo *info) {
...
@@ -1841,6 +1841,15 @@ int32_t filterInitValFieldData(SFilterInfo *info) {
qError
(
"dump value to type[%d] failed"
,
type
);
qError
(
"dump value to type[%d] failed"
,
type
);
return
TSDB_CODE_TSC_INVALID_OPERATION
;
return
TSDB_CODE_TSC_INVALID_OPERATION
;
}
}
// match/nmatch for nchar type need convert from ucs4 to mbs
if
(
type
==
TSDB_DATA_TYPE_NCHAR
&&
(
unit
->
compare
.
optr
==
TSDB_RELATION_MATCH
||
unit
->
compare
.
optr
==
TSDB_RELATION_NMATCH
)){
char
newValData
[
TSDB_REGEX_STRING_DEFAULT_LEN
*
TSDB_NCHAR_SIZE
+
VARSTR_HEADER_SIZE
]
=
{
0
};
int32_t
len
=
taosUcs4ToMbs
(
varDataVal
(
fi
->
data
),
varDataLen
(
fi
->
data
),
varDataVal
(
newValData
));
varDataSetLen
(
newValData
,
len
);
varDataCopy
(
fi
->
data
,
newValData
);
}
}
}
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
...
@@ -2960,9 +2969,18 @@ bool filterExecuteImplMisc(void *pinfo, int32_t numOfRows, int8_t** p, SDataStat
...
@@ -2960,9 +2969,18 @@ bool filterExecuteImplMisc(void *pinfo, int32_t numOfRows, int8_t** p, SDataStat
all
=
false
;
all
=
false
;
continue
;
continue
;
}
}
// match/nmatch for nchar type need convert from ucs4 to mbs
if
(
info
->
cunits
[
uidx
].
dataType
==
TSDB_DATA_TYPE_NCHAR
&&
(
info
->
cunits
[
uidx
].
optr
==
TSDB_RELATION_MATCH
||
info
->
cunits
[
uidx
].
optr
==
TSDB_RELATION_NMATCH
)){
char
*
newColData
=
calloc
(
info
->
cunits
[
uidx
].
dataSize
*
TSDB_NCHAR_SIZE
+
VARSTR_HEADER_SIZE
,
1
);
int
len
=
taosUcs4ToMbs
(
varDataVal
(
colData
),
varDataLen
(
colData
),
varDataVal
(
newColData
));
varDataSetLen
(
newColData
,
len
);
(
*
p
)[
i
]
=
filterDoCompare
(
gDataCompare
[
info
->
cunits
[
uidx
].
func
],
info
->
cunits
[
uidx
].
optr
,
newColData
,
info
->
cunits
[
uidx
].
valData
);
tfree
(
newColData
);
}
else
{
(
*
p
)[
i
]
=
filterDoCompare
(
gDataCompare
[
info
->
cunits
[
uidx
].
func
],
info
->
cunits
[
uidx
].
optr
,
colData
,
info
->
cunits
[
uidx
].
valData
);
}
(
*
p
)[
i
]
=
filterDoCompare
(
gDataCompare
[
info
->
cunits
[
uidx
].
func
],
info
->
cunits
[
uidx
].
optr
,
colData
,
info
->
cunits
[
uidx
].
valData
);
if
((
*
p
)[
i
]
==
0
)
{
if
((
*
p
)[
i
]
==
0
)
{
all
=
false
;
all
=
false
;
}
}
...
@@ -3009,7 +3027,15 @@ bool filterExecuteImpl(void *pinfo, int32_t numOfRows, int8_t** p, SDataStatis *
...
@@ -3009,7 +3027,15 @@ bool filterExecuteImpl(void *pinfo, int32_t numOfRows, int8_t** p, SDataStatis *
}
else
if
(
cunit
->
rfunc
>=
0
)
{
}
else
if
(
cunit
->
rfunc
>=
0
)
{
(
*
p
)[
i
]
=
(
*
gRangeCompare
[
cunit
->
rfunc
])(
colData
,
colData
,
cunit
->
valData
,
cunit
->
valData2
,
gDataCompare
[
cunit
->
func
]);
(
*
p
)[
i
]
=
(
*
gRangeCompare
[
cunit
->
rfunc
])(
colData
,
colData
,
cunit
->
valData
,
cunit
->
valData2
,
gDataCompare
[
cunit
->
func
]);
}
else
{
}
else
{
(
*
p
)[
i
]
=
filterDoCompare
(
gDataCompare
[
cunit
->
func
],
cunit
->
optr
,
colData
,
cunit
->
valData
);
if
(
cunit
->
dataType
==
TSDB_DATA_TYPE_NCHAR
&&
(
cunit
->
optr
==
TSDB_RELATION_MATCH
||
cunit
->
optr
==
TSDB_RELATION_NMATCH
)){
char
*
newColData
=
calloc
(
cunit
->
dataSize
*
TSDB_NCHAR_SIZE
+
VARSTR_HEADER_SIZE
,
1
);
int
len
=
taosUcs4ToMbs
(
varDataVal
(
colData
),
varDataLen
(
colData
),
varDataVal
(
newColData
));
varDataSetLen
(
newColData
,
len
);
(
*
p
)[
i
]
=
filterDoCompare
(
gDataCompare
[
cunit
->
func
],
cunit
->
optr
,
newColData
,
cunit
->
valData
);
tfree
(
newColData
);
}
else
{
(
*
p
)[
i
]
=
filterDoCompare
(
gDataCompare
[
cunit
->
func
],
cunit
->
optr
,
colData
,
cunit
->
valData
);
}
}
}
//FILTER_UNIT_SET_R(info, uidx, p[i]);
//FILTER_UNIT_SET_R(info, uidx, p[i]);
...
...
src/query/src/qSqlParser.c
浏览文件 @
c7c6bcee
...
@@ -134,7 +134,7 @@ SArray *tStrTokenAppend(SArray *pList, SStrToken *pToken) {
...
@@ -134,7 +134,7 @@ SArray *tStrTokenAppend(SArray *pList, SStrToken *pToken) {
return
pList
;
return
pList
;
}
}
tSqlExpr
*
tSqlExprCreateIdValue
(
SStrToken
*
pToken
,
int32_t
optrType
)
{
tSqlExpr
*
tSqlExprCreateIdValue
(
SS
qlInfo
*
pInfo
,
SS
trToken
*
pToken
,
int32_t
optrType
)
{
tSqlExpr
*
pSqlExpr
=
calloc
(
1
,
sizeof
(
tSqlExpr
));
tSqlExpr
*
pSqlExpr
=
calloc
(
1
,
sizeof
(
tSqlExpr
));
if
(
pToken
!=
NULL
)
{
if
(
pToken
!=
NULL
)
{
...
@@ -169,6 +169,7 @@ tSqlExpr *tSqlExprCreateIdValue(SStrToken *pToken, int32_t optrType) {
...
@@ -169,6 +169,7 @@ tSqlExpr *tSqlExprCreateIdValue(SStrToken *pToken, int32_t optrType) {
char
unit
=
0
;
char
unit
=
0
;
int32_t
ret
=
parseAbsoluteDuration
(
pToken
->
z
,
pToken
->
n
,
&
pSqlExpr
->
value
.
i64
,
&
unit
,
TSDB_TIME_PRECISION_NANO
);
int32_t
ret
=
parseAbsoluteDuration
(
pToken
->
z
,
pToken
->
n
,
&
pSqlExpr
->
value
.
i64
,
&
unit
,
TSDB_TIME_PRECISION_NANO
);
if
(
ret
!=
TSDB_CODE_SUCCESS
)
{
if
(
ret
!=
TSDB_CODE_SUCCESS
)
{
snprintf
(
pInfo
->
msg
,
tListLen
(
pInfo
->
msg
),
"%s"
,
pToken
->
z
);
terrno
=
TSDB_CODE_TSC_SQL_SYNTAX_ERROR
;
terrno
=
TSDB_CODE_TSC_SQL_SYNTAX_ERROR
;
}
}
}
}
...
...
src/query/src/sql.c
浏览文件 @
c7c6bcee
/* This file is automatically generated by Lemon from input grammar
** source file "sql.y". */
/*
/*
** 2000-05-29
** 2000-05-29
**
**
...
@@ -22,9 +24,8 @@
...
@@ -22,9 +24,8 @@
** The following is the concatenation of all %include directives from the
** The following is the concatenation of all %include directives from the
** input grammar file:
** input grammar file:
*/
*/
#include <stdio.h>
#include <assert.h>
/************ Begin %include sections from the grammar ************************/
/************ Begin %include sections from the grammar ************************/
#line 23 "sql.y"
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
...
@@ -37,12 +38,209 @@
...
@@ -37,12 +38,209 @@
#include "ttokendef.h"
#include "ttokendef.h"
#include "tutil.h"
#include "tutil.h"
#include "tvariant.h"
#include "tvariant.h"
#line 42 "sql.c"
/**************** End of %include directives **********************************/
/**************** End of %include directives **********************************/
/* These constants specify the various numeric values for terminal symbols
/* These constants specify the various numeric values for terminal symbols.
** in a format understandable to "makeheaders". This section is blank unless
***************** Begin token definitions *************************************/
** "lemon" is run with the "-m" command-line option.
#ifndef TK_ID
***************** Begin makeheaders token definitions *************************/
#define TK_ID 1
/**************** End makeheaders token definitions ***************************/
#define TK_BOOL 2
#define TK_TINYINT 3
#define TK_SMALLINT 4
#define TK_INTEGER 5
#define TK_BIGINT 6
#define TK_FLOAT 7
#define TK_DOUBLE 8
#define TK_STRING 9
#define TK_TIMESTAMP 10
#define TK_BINARY 11
#define TK_NCHAR 12
#define TK_OR 13
#define TK_AND 14
#define TK_NOT 15
#define TK_EQ 16
#define TK_NE 17
#define TK_ISNULL 18
#define TK_NOTNULL 19
#define TK_IS 20
#define TK_LIKE 21
#define TK_MATCH 22
#define TK_NMATCH 23
#define TK_GLOB 24
#define TK_BETWEEN 25
#define TK_IN 26
#define TK_GT 27
#define TK_GE 28
#define TK_LT 29
#define TK_LE 30
#define TK_BITAND 31
#define TK_BITOR 32
#define TK_LSHIFT 33
#define TK_RSHIFT 34
#define TK_PLUS 35
#define TK_MINUS 36
#define TK_DIVIDE 37
#define TK_TIMES 38
#define TK_STAR 39
#define TK_SLASH 40
#define TK_REM 41
#define TK_CONCAT 42
#define TK_UMINUS 43
#define TK_UPLUS 44
#define TK_BITNOT 45
#define TK_SHOW 46
#define TK_DATABASES 47
#define TK_TOPICS 48
#define TK_FUNCTIONS 49
#define TK_MNODES 50
#define TK_DNODES 51
#define TK_ACCOUNTS 52
#define TK_USERS 53
#define TK_MODULES 54
#define TK_QUERIES 55
#define TK_CONNECTIONS 56
#define TK_STREAMS 57
#define TK_VARIABLES 58
#define TK_SCORES 59
#define TK_GRANTS 60
#define TK_VNODES 61
#define TK_DOT 62
#define TK_CREATE 63
#define TK_TABLE 64
#define TK_STABLE 65
#define TK_DATABASE 66
#define TK_TABLES 67
#define TK_STABLES 68
#define TK_VGROUPS 69
#define TK_DROP 70
#define TK_TOPIC 71
#define TK_FUNCTION 72
#define TK_DNODE 73
#define TK_USER 74
#define TK_ACCOUNT 75
#define TK_USE 76
#define TK_DESCRIBE 77
#define TK_DESC 78
#define TK_ALTER 79
#define TK_PASS 80
#define TK_PRIVILEGE 81
#define TK_LOCAL 82
#define TK_COMPACT 83
#define TK_LP 84
#define TK_RP 85
#define TK_IF 86
#define TK_EXISTS 87
#define TK_AS 88
#define TK_OUTPUTTYPE 89
#define TK_AGGREGATE 90
#define TK_BUFSIZE 91
#define TK_PPS 92
#define TK_TSERIES 93
#define TK_DBS 94
#define TK_STORAGE 95
#define TK_QTIME 96
#define TK_CONNS 97
#define TK_STATE 98
#define TK_COMMA 99
#define TK_KEEP 100
#define TK_CACHE 101
#define TK_REPLICA 102
#define TK_QUORUM 103
#define TK_DAYS 104
#define TK_MINROWS 105
#define TK_MAXROWS 106
#define TK_BLOCKS 107
#define TK_CTIME 108
#define TK_WAL 109
#define TK_FSYNC 110
#define TK_COMP 111
#define TK_PRECISION 112
#define TK_UPDATE 113
#define TK_CACHELAST 114
#define TK_PARTITIONS 115
#define TK_UNSIGNED 116
#define TK_TAGS 117
#define TK_USING 118
#define TK_NULL 119
#define TK_NOW 120
#define TK_SELECT 121
#define TK_UNION 122
#define TK_ALL 123
#define TK_DISTINCT 124
#define TK_FROM 125
#define TK_VARIABLE 126
#define TK_INTERVAL 127
#define TK_EVERY 128
#define TK_SESSION 129
#define TK_STATE_WINDOW 130
#define TK_FILL 131
#define TK_SLIDING 132
#define TK_ORDER 133
#define TK_BY 134
#define TK_ASC 135
#define TK_GROUP 136
#define TK_HAVING 137
#define TK_LIMIT 138
#define TK_OFFSET 139
#define TK_SLIMIT 140
#define TK_SOFFSET 141
#define TK_WHERE 142
#define TK_RESET 143
#define TK_QUERY 144
#define TK_SYNCDB 145
#define TK_ADD 146
#define TK_COLUMN 147
#define TK_MODIFY 148
#define TK_TAG 149
#define TK_CHANGE 150
#define TK_SET 151
#define TK_KILL 152
#define TK_CONNECTION 153
#define TK_STREAM 154
#define TK_COLON 155
#define TK_ABORT 156
#define TK_AFTER 157
#define TK_ATTACH 158
#define TK_BEFORE 159
#define TK_BEGIN 160
#define TK_CASCADE 161
#define TK_CLUSTER 162
#define TK_CONFLICT 163
#define TK_COPY 164
#define TK_DEFERRED 165
#define TK_DELIMITERS 166
#define TK_DETACH 167
#define TK_EACH 168
#define TK_END 169
#define TK_EXPLAIN 170
#define TK_FAIL 171
#define TK_FOR 172
#define TK_IGNORE 173
#define TK_IMMEDIATE 174
#define TK_INITIALLY 175
#define TK_INSTEAD 176
#define TK_KEY 177
#define TK_OF 178
#define TK_RAISE 179
#define TK_REPLACE 180
#define TK_RESTRICT 181
#define TK_ROW 182
#define TK_STATEMENT 183
#define TK_TRIGGER 184
#define TK_VIEW 185
#define TK_IPTOKEN 186
#define TK_SEMI 187
#define TK_NONE 188
#define TK_PREV 189
#define TK_LINEAR 190
#define TK_IMPORT 191
#define TK_TBNAME 192
#define TK_JOIN 193
#define TK_INSERT 194
#define TK_INTO 195
#define TK_VALUES 196
#endif
/**************** End token definitions ***************************************/
/* The next sections is a series of control #defines.
/* The next sections is a series of control #defines.
** various aspects of the generated parser.
** various aspects of the generated parser.
...
@@ -771,6 +969,7 @@ typedef struct yyParser yyParser;
...
@@ -771,6 +969,7 @@ typedef struct yyParser yyParser;
#ifndef NDEBUG
#ifndef NDEBUG
#include <stdio.h>
#include <stdio.h>
#include <assert.h>
static
FILE
*
yyTraceFILE
=
0
;
static
FILE
*
yyTraceFILE
=
0
;
static
char
*
yyTracePrompt
=
0
;
static
char
*
yyTracePrompt
=
0
;
#endif
/* NDEBUG */
#endif
/* NDEBUG */
...
@@ -1513,7 +1712,9 @@ static void yy_destructor(
...
@@ -1513,7 +1712,9 @@ static void yy_destructor(
case
250
:
/* selcollist */
case
250
:
/* selcollist */
case
264
:
/* sclp */
case
264
:
/* sclp */
{
{
#line 762 "sql.y"
tSqlExprListDestroy
((
yypminor
->
yy421
));
tSqlExprListDestroy
((
yypminor
->
yy421
));
#line 1717 "sql.c"
}
}
break
;
break
;
case
221
:
/* intitemlist */
case
221
:
/* intitemlist */
...
@@ -1527,24 +1728,32 @@ tSqlExprListDestroy((yypminor->yy421));
...
@@ -1527,24 +1728,32 @@ tSqlExprListDestroy((yypminor->yy421));
case
272
:
/* sortlist */
case
272
:
/* sortlist */
case
276
:
/* grouplist */
case
276
:
/* grouplist */
{
{
#line 256 "sql.y"
taosArrayDestroy
((
yypminor
->
yy421
));
taosArrayDestroy
((
yypminor
->
yy421
));
#line 1733 "sql.c"
}
}
break
;
break
;
case
242
:
/* create_table_list */
case
242
:
/* create_table_list */
{
{
#line 364 "sql.y"
destroyCreateTableSql
((
yypminor
->
yy438
));
destroyCreateTableSql
((
yypminor
->
yy438
));
#line 1740 "sql.c"
}
}
break
;
break
;
case
247
:
/* select */
case
247
:
/* select */
{
{
#line 484 "sql.y"
destroySqlNode
((
yypminor
->
yy56
));
destroySqlNode
((
yypminor
->
yy56
));
#line 1747 "sql.c"
}
}
break
;
break
;
case
251
:
/* from */
case
251
:
/* from */
case
268
:
/* tablelist */
case
268
:
/* tablelist */
case
269
:
/* sub */
case
269
:
/* sub */
{
{
#line 539 "sql.y"
destroyRelationInfo
((
yypminor
->
yy8
));
destroyRelationInfo
((
yypminor
->
yy8
));
#line 1756 "sql.c"
}
}
break
;
break
;
case
252
:
/* where_opt */
case
252
:
/* where_opt */
...
@@ -1552,17 +1761,23 @@ destroyRelationInfo((yypminor->yy8));
...
@@ -1552,17 +1761,23 @@ destroyRelationInfo((yypminor->yy8));
case
266
:
/* expr */
case
266
:
/* expr */
case
277
:
/* expritem */
case
277
:
/* expritem */
{
{
#line 691 "sql.y"
tSqlExprDestroy
((
yypminor
->
yy439
));
tSqlExprDestroy
((
yypminor
->
yy439
));
#line 1766 "sql.c"
}
}
break
;
break
;
case
263
:
/* union */
case
263
:
/* union */
{
{
#line 492 "sql.y"
destroyAllSqlNode
((
yypminor
->
yy421
));
destroyAllSqlNode
((
yypminor
->
yy421
));
#line 1773 "sql.c"
}
}
break
;
break
;
case
273
:
/* sortitem */
case
273
:
/* sortitem */
{
{
#line 624 "sql.y"
tVariantDestroy
(
&
(
yypminor
->
yy430
));
tVariantDestroy
(
&
(
yypminor
->
yy430
));
#line 1780 "sql.c"
}
}
break
;
break
;
/********* End destructor definitions *****************************************/
/********* End destructor definitions *****************************************/
...
@@ -1729,7 +1944,7 @@ static YYACTIONTYPE yy_find_shift_action(
...
@@ -1729,7 +1944,7 @@ static YYACTIONTYPE yy_find_shift_action(
#endif
/* YYWILDCARD */
#endif
/* YYWILDCARD */
return
yy_default
[
stateno
];
return
yy_default
[
stateno
];
}
else
{
}
else
{
assert
(
i
>=
0
&&
i
<
sizeof
(
yy_action
)
/
sizeof
(
yy_action
[
0
]
)
);
assert
(
i
>=
0
&&
i
<
(
int
)(
sizeof
(
yy_action
)
/
sizeof
(
yy_action
[
0
])
)
);
return
yy_action
[
i
];
return
yy_action
[
i
];
}
}
}
while
(
1
);
}
while
(
1
);
...
@@ -2473,54 +2688,6 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2473,54 +2688,6 @@ static YYACTIONTYPE yy_reduce(
(
void
)
yyLookahead
;
(
void
)
yyLookahead
;
(
void
)
yyLookaheadToken
;
(
void
)
yyLookaheadToken
;
yymsp
=
yypParser
->
yytos
;
yymsp
=
yypParser
->
yytos
;
#ifndef NDEBUG
if
(
yyTraceFILE
&&
yyruleno
<
(
int
)(
sizeof
(
yyRuleName
)
/
sizeof
(
yyRuleName
[
0
]))
){
yysize
=
yyRuleInfoNRhs
[
yyruleno
];
if
(
yysize
){
fprintf
(
yyTraceFILE
,
"%sReduce %d [%s]%s, pop back to state %d.
\n
"
,
yyTracePrompt
,
yyruleno
,
yyRuleName
[
yyruleno
],
yyruleno
<
YYNRULE_WITH_ACTION
?
""
:
" without external action"
,
yymsp
[
yysize
].
stateno
);
}
else
{
fprintf
(
yyTraceFILE
,
"%sReduce %d [%s]%s.
\n
"
,
yyTracePrompt
,
yyruleno
,
yyRuleName
[
yyruleno
],
yyruleno
<
YYNRULE_WITH_ACTION
?
""
:
" without external action"
);
}
}
#endif
/* NDEBUG */
/* Check that the stack is large enough to grow by a single entry
** if the RHS of the rule is empty. This ensures that there is room
** enough on the stack to push the LHS value */
if
(
yyRuleInfoNRhs
[
yyruleno
]
==
0
){
#ifdef YYTRACKMAXSTACKDEPTH
if
(
(
int
)(
yypParser
->
yytos
-
yypParser
->
yystack
)
>
yypParser
->
yyhwm
){
yypParser
->
yyhwm
++
;
assert
(
yypParser
->
yyhwm
==
(
int
)(
yypParser
->
yytos
-
yypParser
->
yystack
));
}
#endif
#if YYSTACKDEPTH>0
if
(
yypParser
->
yytos
>=
yypParser
->
yystackEnd
){
yyStackOverflow
(
yypParser
);
/* The call to yyStackOverflow() above pops the stack until it is
** empty, causing the main parser loop to exit. So the return value
** is never used and does not matter. */
return
0
;
}
#else
if
(
yypParser
->
yytos
>=&
yypParser
->
yystack
[
yypParser
->
yystksz
-
1
]
){
if
(
yyGrowStack
(
yypParser
)
){
yyStackOverflow
(
yypParser
);
/* The call to yyStackOverflow() above pops the stack until it is
** empty, causing the main parser loop to exit. So the return value
** is never used and does not matter. */
return
0
;
}
yymsp
=
yypParser
->
yytos
;
}
#endif
}
switch
(
yyruleno
){
switch
(
yyruleno
){
/* Beginning here are the reduction cases. A typical example
/* Beginning here are the reduction cases. A typical example
...
@@ -2537,227 +2704,347 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2537,227 +2704,347 @@ static YYACTIONTYPE yy_reduce(
case
139
:
/* cmd ::= CREATE TABLE create_table_args */
yytestcase
(
yyruleno
==
139
);
case
139
:
/* cmd ::= CREATE TABLE create_table_args */
yytestcase
(
yyruleno
==
139
);
case
140
:
/* cmd ::= CREATE TABLE create_stable_args */
yytestcase
(
yyruleno
==
140
);
case
140
:
/* cmd ::= CREATE TABLE create_stable_args */
yytestcase
(
yyruleno
==
140
);
case
141
:
/* cmd ::= CREATE STABLE create_stable_args */
yytestcase
(
yyruleno
==
141
);
case
141
:
/* cmd ::= CREATE STABLE create_stable_args */
yytestcase
(
yyruleno
==
141
);
#line 63 "sql.y"
{}
{}
#line 2709 "sql.c"
break
;
break
;
case
1
:
/* cmd ::= SHOW DATABASES */
case
1
:
/* cmd ::= SHOW DATABASES */
#line 66 "sql.y"
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_DB
,
0
,
0
);}
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_DB
,
0
,
0
);}
#line 2714 "sql.c"
break
;
break
;
case
2
:
/* cmd ::= SHOW TOPICS */
case
2
:
/* cmd ::= SHOW TOPICS */
#line 67 "sql.y"
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_TP
,
0
,
0
);}
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_TP
,
0
,
0
);}
#line 2719 "sql.c"
break
;
break
;
case
3
:
/* cmd ::= SHOW FUNCTIONS */
case
3
:
/* cmd ::= SHOW FUNCTIONS */
#line 68 "sql.y"
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_FUNCTION
,
0
,
0
);}
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_FUNCTION
,
0
,
0
);}
#line 2724 "sql.c"
break
;
break
;
case
4
:
/* cmd ::= SHOW MNODES */
case
4
:
/* cmd ::= SHOW MNODES */
#line 69 "sql.y"
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_MNODE
,
0
,
0
);}
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_MNODE
,
0
,
0
);}
#line 2729 "sql.c"
break
;
break
;
case
5
:
/* cmd ::= SHOW DNODES */
case
5
:
/* cmd ::= SHOW DNODES */
#line 70 "sql.y"
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_DNODE
,
0
,
0
);}
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_DNODE
,
0
,
0
);}
#line 2734 "sql.c"
break
;
break
;
case
6
:
/* cmd ::= SHOW ACCOUNTS */
case
6
:
/* cmd ::= SHOW ACCOUNTS */
#line 71 "sql.y"
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_ACCT
,
0
,
0
);}
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_ACCT
,
0
,
0
);}
#line 2739 "sql.c"
break
;
break
;
case
7
:
/* cmd ::= SHOW USERS */
case
7
:
/* cmd ::= SHOW USERS */
#line 72 "sql.y"
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_USER
,
0
,
0
);}
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_USER
,
0
,
0
);}
#line 2744 "sql.c"
break
;
break
;
case
8
:
/* cmd ::= SHOW MODULES */
case
8
:
/* cmd ::= SHOW MODULES */
#line 74 "sql.y"
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_MODULE
,
0
,
0
);
}
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_MODULE
,
0
,
0
);
}
#line 2749 "sql.c"
break
;
break
;
case
9
:
/* cmd ::= SHOW QUERIES */
case
9
:
/* cmd ::= SHOW QUERIES */
#line 75 "sql.y"
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_QUERIES
,
0
,
0
);
}
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_QUERIES
,
0
,
0
);
}
#line 2754 "sql.c"
break
;
break
;
case
10
:
/* cmd ::= SHOW CONNECTIONS */
case
10
:
/* cmd ::= SHOW CONNECTIONS */
#line 76 "sql.y"
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_CONNS
,
0
,
0
);}
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_CONNS
,
0
,
0
);}
#line 2759 "sql.c"
break
;
break
;
case
11
:
/* cmd ::= SHOW STREAMS */
case
11
:
/* cmd ::= SHOW STREAMS */
#line 77 "sql.y"
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_STREAMS
,
0
,
0
);
}
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_STREAMS
,
0
,
0
);
}
#line 2764 "sql.c"
break
;
break
;
case
12
:
/* cmd ::= SHOW VARIABLES */
case
12
:
/* cmd ::= SHOW VARIABLES */
#line 78 "sql.y"
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_VARIABLES
,
0
,
0
);
}
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_VARIABLES
,
0
,
0
);
}
#line 2769 "sql.c"
break
;
break
;
case
13
:
/* cmd ::= SHOW SCORES */
case
13
:
/* cmd ::= SHOW SCORES */
#line 79 "sql.y"
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_SCORES
,
0
,
0
);
}
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_SCORES
,
0
,
0
);
}
#line 2774 "sql.c"
break
;
break
;
case
14
:
/* cmd ::= SHOW GRANTS */
case
14
:
/* cmd ::= SHOW GRANTS */
#line 80 "sql.y"
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_GRANTS
,
0
,
0
);
}
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_GRANTS
,
0
,
0
);
}
#line 2779 "sql.c"
break
;
break
;
case
15
:
/* cmd ::= SHOW VNODES */
case
15
:
/* cmd ::= SHOW VNODES */
#line 82 "sql.y"
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_VNODES
,
0
,
0
);
}
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_VNODES
,
0
,
0
);
}
#line 2784 "sql.c"
break
;
break
;
case
16
:
/* cmd ::= SHOW VNODES ids */
case
16
:
/* cmd ::= SHOW VNODES ids */
#line 83 "sql.y"
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_VNODES
,
&
yymsp
[
0
].
minor
.
yy0
,
0
);
}
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_VNODES
,
&
yymsp
[
0
].
minor
.
yy0
,
0
);
}
#line 2789 "sql.c"
break
;
break
;
case
17
:
/* dbPrefix ::= */
case
17
:
/* dbPrefix ::= */
#line 87 "sql.y"
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
yymsp
[
1
].
minor
.
yy0
.
type
=
0
;}
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
yymsp
[
1
].
minor
.
yy0
.
type
=
0
;}
#line 2794 "sql.c"
break
;
break
;
case
18
:
/* dbPrefix ::= ids DOT */
case
18
:
/* dbPrefix ::= ids DOT */
#line 88 "sql.y"
{
yylhsminor
.
yy0
=
yymsp
[
-
1
].
minor
.
yy0
;
}
{
yylhsminor
.
yy0
=
yymsp
[
-
1
].
minor
.
yy0
;
}
#line 2799 "sql.c"
yymsp
[
-
1
].
minor
.
yy0
=
yylhsminor
.
yy0
;
yymsp
[
-
1
].
minor
.
yy0
=
yylhsminor
.
yy0
;
break
;
break
;
case
19
:
/* cpxName ::= */
case
19
:
/* cpxName ::= */
#line 91 "sql.y"
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
}
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
}
#line 2805 "sql.c"
break
;
break
;
case
20
:
/* cpxName ::= DOT ids */
case
20
:
/* cpxName ::= DOT ids */
#line 92 "sql.y"
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
1
;
}
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
1
;
}
#line 2810 "sql.c"
break
;
break
;
case
21
:
/* cmd ::= SHOW CREATE TABLE ids cpxName */
case
21
:
/* cmd ::= SHOW CREATE TABLE ids cpxName */
#line 93 "sql.y"
{
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
setDCLSqlElems
(
pInfo
,
TSDB_SQL_SHOW_CREATE_TABLE
,
1
,
&
yymsp
[
-
1
].
minor
.
yy0
);
setDCLSqlElems
(
pInfo
,
TSDB_SQL_SHOW_CREATE_TABLE
,
1
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
}
#line 2818 "sql.c"
break
;
break
;
case
22
:
/* cmd ::= SHOW CREATE STABLE ids cpxName */
case
22
:
/* cmd ::= SHOW CREATE STABLE ids cpxName */
#line 97 "sql.y"
{
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
setDCLSqlElems
(
pInfo
,
TSDB_SQL_SHOW_CREATE_STABLE
,
1
,
&
yymsp
[
-
1
].
minor
.
yy0
);
setDCLSqlElems
(
pInfo
,
TSDB_SQL_SHOW_CREATE_STABLE
,
1
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
}
#line 2826 "sql.c"
break
;
break
;
case
23
:
/* cmd ::= SHOW CREATE DATABASE ids */
case
23
:
/* cmd ::= SHOW CREATE DATABASE ids */
#line 102 "sql.y"
{
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_SHOW_CREATE_DATABASE
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);
setDCLSqlElems
(
pInfo
,
TSDB_SQL_SHOW_CREATE_DATABASE
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);
}
}
#line 2833 "sql.c"
break
;
break
;
case
24
:
/* cmd ::= SHOW dbPrefix TABLES */
case
24
:
/* cmd ::= SHOW dbPrefix TABLES */
#line 106 "sql.y"
{
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_TABLE
,
&
yymsp
[
-
1
].
minor
.
yy0
,
0
);
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_TABLE
,
&
yymsp
[
-
1
].
minor
.
yy0
,
0
);
}
}
#line 2840 "sql.c"
break
;
break
;
case
25
:
/* cmd ::= SHOW dbPrefix TABLES LIKE ids */
case
25
:
/* cmd ::= SHOW dbPrefix TABLES LIKE ids */
#line 110 "sql.y"
{
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_TABLE
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_TABLE
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
}
#line 2847 "sql.c"
break
;
break
;
case
26
:
/* cmd ::= SHOW dbPrefix STABLES */
case
26
:
/* cmd ::= SHOW dbPrefix STABLES */
#line 114 "sql.y"
{
{
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_METRIC
,
&
yymsp
[
-
1
].
minor
.
yy0
,
0
);
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_METRIC
,
&
yymsp
[
-
1
].
minor
.
yy0
,
0
);
}
}
#line 2854 "sql.c"
break
;
break
;
case
27
:
/* cmd ::= SHOW dbPrefix STABLES LIKE ids */
case
27
:
/* cmd ::= SHOW dbPrefix STABLES LIKE ids */
#line 118 "sql.y"
{
{
SStrToken
token
;
SStrToken
token
;
tSetDbName
(
&
token
,
&
yymsp
[
-
3
].
minor
.
yy0
);
tSetDbName
(
&
token
,
&
yymsp
[
-
3
].
minor
.
yy0
);
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_METRIC
,
&
token
,
&
yymsp
[
0
].
minor
.
yy0
);
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_METRIC
,
&
token
,
&
yymsp
[
0
].
minor
.
yy0
);
}
}
#line 2863 "sql.c"
break
;
break
;
case
28
:
/* cmd ::= SHOW dbPrefix VGROUPS */
case
28
:
/* cmd ::= SHOW dbPrefix VGROUPS */
#line 124 "sql.y"
{
{
SStrToken
token
;
SStrToken
token
;
tSetDbName
(
&
token
,
&
yymsp
[
-
1
].
minor
.
yy0
);
tSetDbName
(
&
token
,
&
yymsp
[
-
1
].
minor
.
yy0
);
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_VGROUP
,
&
token
,
0
);
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_VGROUP
,
&
token
,
0
);
}
}
#line 2872 "sql.c"
break
;
break
;
case
29
:
/* cmd ::= SHOW dbPrefix VGROUPS ids */
case
29
:
/* cmd ::= SHOW dbPrefix VGROUPS ids */
#line 130 "sql.y"
{
{
SStrToken
token
;
SStrToken
token
;
tSetDbName
(
&
token
,
&
yymsp
[
-
2
].
minor
.
yy0
);
tSetDbName
(
&
token
,
&
yymsp
[
-
2
].
minor
.
yy0
);
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_VGROUP
,
&
token
,
&
yymsp
[
0
].
minor
.
yy0
);
setShowOptions
(
pInfo
,
TSDB_MGMT_TABLE_VGROUP
,
&
token
,
&
yymsp
[
0
].
minor
.
yy0
);
}
}
#line 2881 "sql.c"
break
;
break
;
case
30
:
/* cmd ::= DROP TABLE ifexists ids cpxName */
case
30
:
/* cmd ::= DROP TABLE ifexists ids cpxName */
#line 137 "sql.y"
{
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
setDropDbTableInfo
(
pInfo
,
TSDB_SQL_DROP_TABLE
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
-
2
].
minor
.
yy0
,
-
1
,
-
1
);
setDropDbTableInfo
(
pInfo
,
TSDB_SQL_DROP_TABLE
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
-
2
].
minor
.
yy0
,
-
1
,
-
1
);
}
}
#line 2889 "sql.c"
break
;
break
;
case
31
:
/* cmd ::= DROP STABLE ifexists ids cpxName */
case
31
:
/* cmd ::= DROP STABLE ifexists ids cpxName */
#line 143 "sql.y"
{
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
setDropDbTableInfo
(
pInfo
,
TSDB_SQL_DROP_TABLE
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
-
2
].
minor
.
yy0
,
-
1
,
TSDB_SUPER_TABLE
);
setDropDbTableInfo
(
pInfo
,
TSDB_SQL_DROP_TABLE
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
-
2
].
minor
.
yy0
,
-
1
,
TSDB_SUPER_TABLE
);
}
}
#line 2897 "sql.c"
break
;
break
;
case
32
:
/* cmd ::= DROP DATABASE ifexists ids */
case
32
:
/* cmd ::= DROP DATABASE ifexists ids */
#line 148 "sql.y"
{
setDropDbTableInfo
(
pInfo
,
TSDB_SQL_DROP_DB
,
&
yymsp
[
0
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TSDB_DB_TYPE_DEFAULT
,
-
1
);
}
{
setDropDbTableInfo
(
pInfo
,
TSDB_SQL_DROP_DB
,
&
yymsp
[
0
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TSDB_DB_TYPE_DEFAULT
,
-
1
);
}
#line 2902 "sql.c"
break
;
break
;
case
33
:
/* cmd ::= DROP TOPIC ifexists ids */
case
33
:
/* cmd ::= DROP TOPIC ifexists ids */
#line 149 "sql.y"
{
setDropDbTableInfo
(
pInfo
,
TSDB_SQL_DROP_DB
,
&
yymsp
[
0
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TSDB_DB_TYPE_TOPIC
,
-
1
);
}
{
setDropDbTableInfo
(
pInfo
,
TSDB_SQL_DROP_DB
,
&
yymsp
[
0
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TSDB_DB_TYPE_TOPIC
,
-
1
);
}
#line 2907 "sql.c"
break
;
break
;
case
34
:
/* cmd ::= DROP FUNCTION ids */
case
34
:
/* cmd ::= DROP FUNCTION ids */
#line 150 "sql.y"
{
setDropFuncInfo
(
pInfo
,
TSDB_SQL_DROP_FUNCTION
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
setDropFuncInfo
(
pInfo
,
TSDB_SQL_DROP_FUNCTION
,
&
yymsp
[
0
].
minor
.
yy0
);
}
#line 2912 "sql.c"
break
;
break
;
case
35
:
/* cmd ::= DROP DNODE ids */
case
35
:
/* cmd ::= DROP DNODE ids */
#line 152 "sql.y"
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_DROP_DNODE
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_DROP_DNODE
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);
}
#line 2917 "sql.c"
break
;
break
;
case
36
:
/* cmd ::= DROP USER ids */
case
36
:
/* cmd ::= DROP USER ids */
#line 153 "sql.y"
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_DROP_USER
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_DROP_USER
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);
}
#line 2922 "sql.c"
break
;
break
;
case
37
:
/* cmd ::= DROP ACCOUNT ids */
case
37
:
/* cmd ::= DROP ACCOUNT ids */
#line 154 "sql.y"
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_DROP_ACCT
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_DROP_ACCT
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);
}
#line 2927 "sql.c"
break
;
break
;
case
38
:
/* cmd ::= USE ids */
case
38
:
/* cmd ::= USE ids */
#line 157 "sql.y"
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_USE_DB
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_USE_DB
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);}
#line 2932 "sql.c"
break
;
break
;
case
39
:
/* cmd ::= DESCRIBE ids cpxName */
case
39
:
/* cmd ::= DESCRIBE ids cpxName */
case
40
:
/* cmd ::= DESC ids cpxName */
yytestcase
(
yyruleno
==
40
);
case
40
:
/* cmd ::= DESC ids cpxName */
yytestcase
(
yyruleno
==
40
);
#line 160 "sql.y"
{
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
setDCLSqlElems
(
pInfo
,
TSDB_SQL_DESCRIBE_TABLE
,
1
,
&
yymsp
[
-
1
].
minor
.
yy0
);
setDCLSqlElems
(
pInfo
,
TSDB_SQL_DESCRIBE_TABLE
,
1
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
}
#line 2941 "sql.c"
break
;
break
;
case
41
:
/* cmd ::= ALTER USER ids PASS ids */
case
41
:
/* cmd ::= ALTER USER ids PASS ids */
#line 170 "sql.y"
{
setAlterUserSql
(
pInfo
,
TSDB_ALTER_USER_PASSWD
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
NULL
);
}
{
setAlterUserSql
(
pInfo
,
TSDB_ALTER_USER_PASSWD
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
NULL
);
}
#line 2946 "sql.c"
break
;
break
;
case
42
:
/* cmd ::= ALTER USER ids PRIVILEGE ids */
case
42
:
/* cmd ::= ALTER USER ids PRIVILEGE ids */
#line 171 "sql.y"
{
setAlterUserSql
(
pInfo
,
TSDB_ALTER_USER_PRIVILEGES
,
&
yymsp
[
-
2
].
minor
.
yy0
,
NULL
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
setAlterUserSql
(
pInfo
,
TSDB_ALTER_USER_PRIVILEGES
,
&
yymsp
[
-
2
].
minor
.
yy0
,
NULL
,
&
yymsp
[
0
].
minor
.
yy0
);}
#line 2951 "sql.c"
break
;
break
;
case
43
:
/* cmd ::= ALTER DNODE ids ids */
case
43
:
/* cmd ::= ALTER DNODE ids ids */
#line 172 "sql.y"
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_CFG_DNODE
,
2
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_CFG_DNODE
,
2
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
#line 2956 "sql.c"
break
;
break
;
case
44
:
/* cmd ::= ALTER DNODE ids ids ids */
case
44
:
/* cmd ::= ALTER DNODE ids ids ids */
#line 173 "sql.y"
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_CFG_DNODE
,
3
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_CFG_DNODE
,
3
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
#line 2961 "sql.c"
break
;
break
;
case
45
:
/* cmd ::= ALTER LOCAL ids */
case
45
:
/* cmd ::= ALTER LOCAL ids */
#line 174 "sql.y"
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_CFG_LOCAL
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_CFG_LOCAL
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);
}
#line 2966 "sql.c"
break
;
break
;
case
46
:
/* cmd ::= ALTER LOCAL ids ids */
case
46
:
/* cmd ::= ALTER LOCAL ids ids */
#line 175 "sql.y"
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_CFG_LOCAL
,
2
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_CFG_LOCAL
,
2
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
#line 2971 "sql.c"
break
;
break
;
case
47
:
/* cmd ::= ALTER DATABASE ids alter_db_optr */
case
47
:
/* cmd ::= ALTER DATABASE ids alter_db_optr */
case
48
:
/* cmd ::= ALTER TOPIC ids alter_topic_optr */
yytestcase
(
yyruleno
==
48
);
case
48
:
/* cmd ::= ALTER TOPIC ids alter_topic_optr */
yytestcase
(
yyruleno
==
48
);
#line 176 "sql.y"
{
SStrToken
t
=
{
0
};
setCreateDbInfo
(
pInfo
,
TSDB_SQL_ALTER_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy90
,
&
t
);}
{
SStrToken
t
=
{
0
};
setCreateDbInfo
(
pInfo
,
TSDB_SQL_ALTER_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy90
,
&
t
);}
#line 2977 "sql.c"
break
;
break
;
case
49
:
/* cmd ::= ALTER ACCOUNT ids acct_optr */
case
49
:
/* cmd ::= ALTER ACCOUNT ids acct_optr */
#line 179 "sql.y"
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
,
&
yymsp
[
0
].
minor
.
yy171
);}
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
,
&
yymsp
[
0
].
minor
.
yy171
);}
#line 2982 "sql.c"
break
;
break
;
case
50
:
/* cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
case
50
:
/* cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
#line 180 "sql.y"
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy171
);}
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_ALTER_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy171
);}
#line 2987 "sql.c"
break
;
break
;
case
51
:
/* cmd ::= COMPACT VNODES IN LP exprlist RP */
case
51
:
/* cmd ::= COMPACT VNODES IN LP exprlist RP */
#line 184 "sql.y"
{
setCompactVnodeSql
(
pInfo
,
TSDB_SQL_COMPACT_VNODE
,
yymsp
[
-
1
].
minor
.
yy421
);}
{
setCompactVnodeSql
(
pInfo
,
TSDB_SQL_COMPACT_VNODE
,
yymsp
[
-
1
].
minor
.
yy421
);}
#line 2992 "sql.c"
break
;
break
;
case
52
:
/* ids ::= ID */
case
52
:
/* ids ::= ID */
case
53
:
/* ids ::= STRING */
yytestcase
(
yyruleno
==
53
);
case
53
:
/* ids ::= STRING */
yytestcase
(
yyruleno
==
53
);
#line 190 "sql.y"
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
#line 2998 "sql.c"
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
break
;
break
;
case
54
:
/* ifexists ::= IF EXISTS */
case
54
:
/* ifexists ::= IF EXISTS */
#line 194 "sql.y"
{
yymsp
[
-
1
].
minor
.
yy0
.
n
=
1
;}
{
yymsp
[
-
1
].
minor
.
yy0
.
n
=
1
;}
#line 3004 "sql.c"
break
;
break
;
case
55
:
/* ifexists ::= */
case
55
:
/* ifexists ::= */
case
57
:
/* ifnotexists ::= */
yytestcase
(
yyruleno
==
57
);
case
57
:
/* ifnotexists ::= */
yytestcase
(
yyruleno
==
57
);
case
181
:
/* distinct ::= */
yytestcase
(
yyruleno
==
181
);
case
181
:
/* distinct ::= */
yytestcase
(
yyruleno
==
181
);
#line 195 "sql.y"
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;}
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;}
#line 3011 "sql.c"
break
;
break
;
case
56
:
/* ifnotexists ::= IF NOT EXISTS */
case
56
:
/* ifnotexists ::= IF NOT EXISTS */
#line 198 "sql.y"
{
yymsp
[
-
2
].
minor
.
yy0
.
n
=
1
;}
{
yymsp
[
-
2
].
minor
.
yy0
.
n
=
1
;}
#line 3016 "sql.c"
break
;
break
;
case
58
:
/* cmd ::= CREATE DNODE ids */
case
58
:
/* cmd ::= CREATE DNODE ids */
#line 203 "sql.y"
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_CREATE_DNODE
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_CREATE_DNODE
,
1
,
&
yymsp
[
0
].
minor
.
yy0
);}
#line 3021 "sql.c"
break
;
break
;
case
59
:
/* cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
case
59
:
/* cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
#line 205 "sql.y"
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_CREATE_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy171
);}
{
setCreateAcctSql
(
pInfo
,
TSDB_SQL_CREATE_ACCT
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy171
);}
#line 3026 "sql.c"
break
;
break
;
case
60
:
/* cmd ::= CREATE DATABASE ifnotexists ids db_optr */
case
60
:
/* cmd ::= CREATE DATABASE ifnotexists ids db_optr */
case
61
:
/* cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
yytestcase
(
yyruleno
==
61
);
case
61
:
/* cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
yytestcase
(
yyruleno
==
61
);
#line 206 "sql.y"
{
setCreateDbInfo
(
pInfo
,
TSDB_SQL_CREATE_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy90
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
{
setCreateDbInfo
(
pInfo
,
TSDB_SQL_CREATE_DB
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy90
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
#line 3032 "sql.c"
break
;
break
;
case
62
:
/* cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
case
62
:
/* cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
#line 208 "sql.y"
{
setCreateFuncInfo
(
pInfo
,
TSDB_SQL_CREATE_FUNCTION
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy183
,
&
yymsp
[
0
].
minor
.
yy0
,
1
);}
{
setCreateFuncInfo
(
pInfo
,
TSDB_SQL_CREATE_FUNCTION
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy183
,
&
yymsp
[
0
].
minor
.
yy0
,
1
);}
#line 3037 "sql.c"
break
;
break
;
case
63
:
/* cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
case
63
:
/* cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
#line 209 "sql.y"
{
setCreateFuncInfo
(
pInfo
,
TSDB_SQL_CREATE_FUNCTION
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy183
,
&
yymsp
[
0
].
minor
.
yy0
,
2
);}
{
setCreateFuncInfo
(
pInfo
,
TSDB_SQL_CREATE_FUNCTION
,
&
yymsp
[
-
5
].
minor
.
yy0
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
1
].
minor
.
yy183
,
&
yymsp
[
0
].
minor
.
yy0
,
2
);}
#line 3042 "sql.c"
break
;
break
;
case
64
:
/* cmd ::= CREATE USER ids PASS ids */
case
64
:
/* cmd ::= CREATE USER ids PASS ids */
#line 210 "sql.y"
{
setCreateUserSql
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
setCreateUserSql
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);}
#line 3047 "sql.c"
break
;
break
;
case
65
:
/* bufsize ::= */
case
65
:
/* bufsize ::= */
case
67
:
/* pps ::= */
yytestcase
(
yyruleno
==
67
);
case
67
:
/* pps ::= */
yytestcase
(
yyruleno
==
67
);
...
@@ -2769,7 +3056,9 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2769,7 +3056,9 @@ static YYACTIONTYPE yy_reduce(
case
79
:
/* users ::= */
yytestcase
(
yyruleno
==
79
);
case
79
:
/* users ::= */
yytestcase
(
yyruleno
==
79
);
case
81
:
/* conns ::= */
yytestcase
(
yyruleno
==
81
);
case
81
:
/* conns ::= */
yytestcase
(
yyruleno
==
81
);
case
83
:
/* state ::= */
yytestcase
(
yyruleno
==
83
);
case
83
:
/* state ::= */
yytestcase
(
yyruleno
==
83
);
#line 212 "sql.y"
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
}
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
}
#line 3061 "sql.c"
break
;
break
;
case
66
:
/* bufsize ::= BUFSIZE INTEGER */
case
66
:
/* bufsize ::= BUFSIZE INTEGER */
case
68
:
/* pps ::= PPS INTEGER */
yytestcase
(
yyruleno
==
68
);
case
68
:
/* pps ::= PPS INTEGER */
yytestcase
(
yyruleno
==
68
);
...
@@ -2781,9 +3070,12 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2781,9 +3070,12 @@ static YYACTIONTYPE yy_reduce(
case
80
:
/* users ::= USERS INTEGER */
yytestcase
(
yyruleno
==
80
);
case
80
:
/* users ::= USERS INTEGER */
yytestcase
(
yyruleno
==
80
);
case
82
:
/* conns ::= CONNS INTEGER */
yytestcase
(
yyruleno
==
82
);
case
82
:
/* conns ::= CONNS INTEGER */
yytestcase
(
yyruleno
==
82
);
case
84
:
/* state ::= STATE ids */
yytestcase
(
yyruleno
==
84
);
case
84
:
/* state ::= STATE ids */
yytestcase
(
yyruleno
==
84
);
#line 213 "sql.y"
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
#line 3075 "sql.c"
break
;
break
;
case
85
:
/* acct_optr ::= pps tseries storage streams qtime dbs users conns state */
case
85
:
/* acct_optr ::= pps tseries storage streams qtime dbs users conns state */
#line 243 "sql.y"
{
{
yylhsminor
.
yy171
.
maxUsers
=
(
yymsp
[
-
2
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
2
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy171
.
maxUsers
=
(
yymsp
[
-
2
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
2
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy171
.
maxDbs
=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
3
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy171
.
maxDbs
=
(
yymsp
[
-
3
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
3
].
minor
.
yy0
.
z
)
:-
1
;
...
@@ -2795,16 +3087,21 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2795,16 +3087,21 @@ static YYACTIONTYPE yy_reduce(
yylhsminor
.
yy171
.
maxConnections
=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
1
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy171
.
maxConnections
=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
>
0
)
?
atoi
(
yymsp
[
-
1
].
minor
.
yy0
.
z
)
:-
1
;
yylhsminor
.
yy171
.
stat
=
yymsp
[
0
].
minor
.
yy0
;
yylhsminor
.
yy171
.
stat
=
yymsp
[
0
].
minor
.
yy0
;
}
}
#line 3090 "sql.c"
yymsp
[
-
8
].
minor
.
yy171
=
yylhsminor
.
yy171
;
yymsp
[
-
8
].
minor
.
yy171
=
yylhsminor
.
yy171
;
break
;
break
;
case
86
:
/* intitemlist ::= intitemlist COMMA intitem */
case
86
:
/* intitemlist ::= intitemlist COMMA intitem */
case
155
:
/* tagitemlist ::= tagitemlist COMMA tagitem */
yytestcase
(
yyruleno
==
155
);
case
155
:
/* tagitemlist ::= tagitemlist COMMA tagitem */
yytestcase
(
yyruleno
==
155
);
#line 259 "sql.y"
{
yylhsminor
.
yy421
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy430
,
-
1
);
}
{
yylhsminor
.
yy421
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy430
,
-
1
);
}
#line 3097 "sql.c"
yymsp
[
-
2
].
minor
.
yy421
=
yylhsminor
.
yy421
;
yymsp
[
-
2
].
minor
.
yy421
=
yylhsminor
.
yy421
;
break
;
break
;
case
87
:
/* intitemlist ::= intitem */
case
87
:
/* intitemlist ::= intitem */
case
156
:
/* tagitemlist ::= tagitem */
yytestcase
(
yyruleno
==
156
);
case
156
:
/* tagitemlist ::= tagitem */
yytestcase
(
yyruleno
==
156
);
#line 260 "sql.y"
{
yylhsminor
.
yy421
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy430
,
-
1
);
}
{
yylhsminor
.
yy421
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy430
,
-
1
);
}
#line 3104 "sql.c"
yymsp
[
0
].
minor
.
yy421
=
yylhsminor
.
yy421
;
yymsp
[
0
].
minor
.
yy421
=
yylhsminor
.
yy421
;
break
;
break
;
case
88
:
/* intitem ::= INTEGER */
case
88
:
/* intitem ::= INTEGER */
...
@@ -2812,11 +3109,15 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2812,11 +3109,15 @@ static YYACTIONTYPE yy_reduce(
case
158
:
/* tagitem ::= FLOAT */
yytestcase
(
yyruleno
==
158
);
case
158
:
/* tagitem ::= FLOAT */
yytestcase
(
yyruleno
==
158
);
case
159
:
/* tagitem ::= STRING */
yytestcase
(
yyruleno
==
159
);
case
159
:
/* tagitem ::= STRING */
yytestcase
(
yyruleno
==
159
);
case
160
:
/* tagitem ::= BOOL */
yytestcase
(
yyruleno
==
160
);
case
160
:
/* tagitem ::= BOOL */
yytestcase
(
yyruleno
==
160
);
#line 262 "sql.y"
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy430
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
toTSDBType
(
yymsp
[
0
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy430
,
&
yymsp
[
0
].
minor
.
yy0
);
}
#line 3114 "sql.c"
yymsp
[
0
].
minor
.
yy430
=
yylhsminor
.
yy430
;
yymsp
[
0
].
minor
.
yy430
=
yylhsminor
.
yy430
;
break
;
break
;
case
89
:
/* keep ::= KEEP intitemlist */
case
89
:
/* keep ::= KEEP intitemlist */
#line 266 "sql.y"
{
yymsp
[
-
1
].
minor
.
yy421
=
yymsp
[
0
].
minor
.
yy421
;
}
{
yymsp
[
-
1
].
minor
.
yy421
=
yymsp
[
0
].
minor
.
yy421
;
}
#line 3120 "sql.c"
break
;
break
;
case
90
:
/* cache ::= CACHE INTEGER */
case
90
:
/* cache ::= CACHE INTEGER */
case
91
:
/* replica ::= REPLICA INTEGER */
yytestcase
(
yyruleno
==
91
);
case
91
:
/* replica ::= REPLICA INTEGER */
yytestcase
(
yyruleno
==
91
);
...
@@ -2833,99 +3134,142 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2833,99 +3134,142 @@ static YYACTIONTYPE yy_reduce(
case
102
:
/* update ::= UPDATE INTEGER */
yytestcase
(
yyruleno
==
102
);
case
102
:
/* update ::= UPDATE INTEGER */
yytestcase
(
yyruleno
==
102
);
case
103
:
/* cachelast ::= CACHELAST INTEGER */
yytestcase
(
yyruleno
==
103
);
case
103
:
/* cachelast ::= CACHELAST INTEGER */
yytestcase
(
yyruleno
==
103
);
case
104
:
/* partitions ::= PARTITIONS INTEGER */
yytestcase
(
yyruleno
==
104
);
case
104
:
/* partitions ::= PARTITIONS INTEGER */
yytestcase
(
yyruleno
==
104
);
#line 268 "sql.y"
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
#line 3139 "sql.c"
break
;
break
;
case
105
:
/* db_optr ::= */
case
105
:
/* db_optr ::= */
#line 285 "sql.y"
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy90
);
yymsp
[
1
].
minor
.
yy90
.
dbType
=
TSDB_DB_TYPE_DEFAULT
;}
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy90
);
yymsp
[
1
].
minor
.
yy90
.
dbType
=
TSDB_DB_TYPE_DEFAULT
;}
#line 3144 "sql.c"
break
;
break
;
case
106
:
/* db_optr ::= db_optr cache */
case
106
:
/* db_optr ::= db_optr cache */
#line 287 "sql.y"
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
cacheBlockSize
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
cacheBlockSize
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
#line 3149 "sql.c"
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
107
:
/* db_optr ::= db_optr replica */
case
107
:
/* db_optr ::= db_optr replica */
case
124
:
/* alter_db_optr ::= alter_db_optr replica */
yytestcase
(
yyruleno
==
124
);
case
124
:
/* alter_db_optr ::= alter_db_optr replica */
yytestcase
(
yyruleno
==
124
);
#line 288 "sql.y"
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
replica
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
replica
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
#line 3156 "sql.c"
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
108
:
/* db_optr ::= db_optr quorum */
case
108
:
/* db_optr ::= db_optr quorum */
case
125
:
/* alter_db_optr ::= alter_db_optr quorum */
yytestcase
(
yyruleno
==
125
);
case
125
:
/* alter_db_optr ::= alter_db_optr quorum */
yytestcase
(
yyruleno
==
125
);
#line 289 "sql.y"
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
quorum
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
quorum
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
#line 3163 "sql.c"
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
109
:
/* db_optr ::= db_optr days */
case
109
:
/* db_optr ::= db_optr days */
#line 290 "sql.y"
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
daysPerFile
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
daysPerFile
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
#line 3169 "sql.c"
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
110
:
/* db_optr ::= db_optr minrows */
case
110
:
/* db_optr ::= db_optr minrows */
#line 291 "sql.y"
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
minRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
minRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
#line 3175 "sql.c"
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
111
:
/* db_optr ::= db_optr maxrows */
case
111
:
/* db_optr ::= db_optr maxrows */
#line 292 "sql.y"
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
maxRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
maxRowsPerBlock
=
strtod
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
);
}
#line 3181 "sql.c"
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
112
:
/* db_optr ::= db_optr blocks */
case
112
:
/* db_optr ::= db_optr blocks */
case
127
:
/* alter_db_optr ::= alter_db_optr blocks */
yytestcase
(
yyruleno
==
127
);
case
127
:
/* alter_db_optr ::= alter_db_optr blocks */
yytestcase
(
yyruleno
==
127
);
#line 293 "sql.y"
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
numOfBlocks
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
numOfBlocks
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
#line 3188 "sql.c"
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
113
:
/* db_optr ::= db_optr ctime */
case
113
:
/* db_optr ::= db_optr ctime */
#line 294 "sql.y"
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
commitTime
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
commitTime
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
#line 3194 "sql.c"
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
114
:
/* db_optr ::= db_optr wal */
case
114
:
/* db_optr ::= db_optr wal */
#line 295 "sql.y"
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
walLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
walLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
#line 3200 "sql.c"
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
115
:
/* db_optr ::= db_optr fsync */
case
115
:
/* db_optr ::= db_optr fsync */
#line 296 "sql.y"
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
fsyncPeriod
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
fsyncPeriod
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
#line 3206 "sql.c"
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
116
:
/* db_optr ::= db_optr comp */
case
116
:
/* db_optr ::= db_optr comp */
case
128
:
/* alter_db_optr ::= alter_db_optr comp */
yytestcase
(
yyruleno
==
128
);
case
128
:
/* alter_db_optr ::= alter_db_optr comp */
yytestcase
(
yyruleno
==
128
);
#line 297 "sql.y"
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
compressionLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
compressionLevel
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
#line 3213 "sql.c"
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
117
:
/* db_optr ::= db_optr prec */
case
117
:
/* db_optr ::= db_optr prec */
#line 298 "sql.y"
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
precision
=
yymsp
[
0
].
minor
.
yy0
;
}
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
precision
=
yymsp
[
0
].
minor
.
yy0
;
}
#line 3219 "sql.c"
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
118
:
/* db_optr ::= db_optr keep */
case
118
:
/* db_optr ::= db_optr keep */
case
126
:
/* alter_db_optr ::= alter_db_optr keep */
yytestcase
(
yyruleno
==
126
);
case
126
:
/* alter_db_optr ::= alter_db_optr keep */
yytestcase
(
yyruleno
==
126
);
#line 299 "sql.y"
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
keep
=
yymsp
[
0
].
minor
.
yy421
;
}
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
keep
=
yymsp
[
0
].
minor
.
yy421
;
}
#line 3226 "sql.c"
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
119
:
/* db_optr ::= db_optr update */
case
119
:
/* db_optr ::= db_optr update */
case
129
:
/* alter_db_optr ::= alter_db_optr update */
yytestcase
(
yyruleno
==
129
);
case
129
:
/* alter_db_optr ::= alter_db_optr update */
yytestcase
(
yyruleno
==
129
);
#line 300 "sql.y"
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
update
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
update
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
#line 3233 "sql.c"
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
120
:
/* db_optr ::= db_optr cachelast */
case
120
:
/* db_optr ::= db_optr cachelast */
case
130
:
/* alter_db_optr ::= alter_db_optr cachelast */
yytestcase
(
yyruleno
==
130
);
case
130
:
/* alter_db_optr ::= alter_db_optr cachelast */
yytestcase
(
yyruleno
==
130
);
#line 301 "sql.y"
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
cachelast
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
cachelast
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
#line 3240 "sql.c"
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
121
:
/* topic_optr ::= db_optr */
case
121
:
/* topic_optr ::= db_optr */
case
131
:
/* alter_topic_optr ::= alter_db_optr */
yytestcase
(
yyruleno
==
131
);
case
131
:
/* alter_topic_optr ::= alter_db_optr */
yytestcase
(
yyruleno
==
131
);
#line 305 "sql.y"
{
yylhsminor
.
yy90
=
yymsp
[
0
].
minor
.
yy90
;
yylhsminor
.
yy90
.
dbType
=
TSDB_DB_TYPE_TOPIC
;
}
{
yylhsminor
.
yy90
=
yymsp
[
0
].
minor
.
yy90
;
yylhsminor
.
yy90
.
dbType
=
TSDB_DB_TYPE_TOPIC
;
}
#line 3247 "sql.c"
yymsp
[
0
].
minor
.
yy90
=
yylhsminor
.
yy90
;
yymsp
[
0
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
122
:
/* topic_optr ::= topic_optr partitions */
case
122
:
/* topic_optr ::= topic_optr partitions */
case
132
:
/* alter_topic_optr ::= alter_topic_optr partitions */
yytestcase
(
yyruleno
==
132
);
case
132
:
/* alter_topic_optr ::= alter_topic_optr partitions */
yytestcase
(
yyruleno
==
132
);
#line 306 "sql.y"
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
partitions
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy90
=
yymsp
[
-
1
].
minor
.
yy90
;
yylhsminor
.
yy90
.
partitions
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
#line 3254 "sql.c"
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
yymsp
[
-
1
].
minor
.
yy90
=
yylhsminor
.
yy90
;
break
;
break
;
case
123
:
/* alter_db_optr ::= */
case
123
:
/* alter_db_optr ::= */
#line 309 "sql.y"
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy90
);
yymsp
[
1
].
minor
.
yy90
.
dbType
=
TSDB_DB_TYPE_DEFAULT
;}
{
setDefaultCreateDbOption
(
&
yymsp
[
1
].
minor
.
yy90
);
yymsp
[
1
].
minor
.
yy90
.
dbType
=
TSDB_DB_TYPE_DEFAULT
;}
#line 3260 "sql.c"
break
;
break
;
case
133
:
/* typename ::= ids */
case
133
:
/* typename ::= ids */
#line 329 "sql.y"
{
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tSetColumnType
(
&
yylhsminor
.
yy183
,
&
yymsp
[
0
].
minor
.
yy0
);
tSetColumnType
(
&
yylhsminor
.
yy183
,
&
yymsp
[
0
].
minor
.
yy0
);
}
}
#line 3268 "sql.c"
yymsp
[
0
].
minor
.
yy183
=
yylhsminor
.
yy183
;
yymsp
[
0
].
minor
.
yy183
=
yylhsminor
.
yy183
;
break
;
break
;
case
134
:
/* typename ::= ids LP signed RP */
case
134
:
/* typename ::= ids LP signed RP */
#line 335 "sql.y"
{
{
if
(
yymsp
[
-
1
].
minor
.
yy325
<=
0
)
{
if
(
yymsp
[
-
1
].
minor
.
yy325
<=
0
)
{
yymsp
[
-
3
].
minor
.
yy0
.
type
=
0
;
yymsp
[
-
3
].
minor
.
yy0
.
type
=
0
;
...
@@ -2935,30 +3279,42 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2935,30 +3279,42 @@ static YYACTIONTYPE yy_reduce(
tSetColumnType
(
&
yylhsminor
.
yy183
,
&
yymsp
[
-
3
].
minor
.
yy0
);
tSetColumnType
(
&
yylhsminor
.
yy183
,
&
yymsp
[
-
3
].
minor
.
yy0
);
}
}
}
}
#line 3282 "sql.c"
yymsp
[
-
3
].
minor
.
yy183
=
yylhsminor
.
yy183
;
yymsp
[
-
3
].
minor
.
yy183
=
yylhsminor
.
yy183
;
break
;
break
;
case
135
:
/* typename ::= ids UNSIGNED */
case
135
:
/* typename ::= ids UNSIGNED */
#line 346 "sql.y"
{
{
yymsp
[
-
1
].
minor
.
yy0
.
type
=
0
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
0
;
yymsp
[
-
1
].
minor
.
yy0
.
n
=
((
yymsp
[
0
].
minor
.
yy0
.
z
+
yymsp
[
0
].
minor
.
yy0
.
n
)
-
yymsp
[
-
1
].
minor
.
yy0
.
z
);
yymsp
[
-
1
].
minor
.
yy0
.
n
=
((
yymsp
[
0
].
minor
.
yy0
.
z
+
yymsp
[
0
].
minor
.
yy0
.
n
)
-
yymsp
[
-
1
].
minor
.
yy0
.
z
);
tSetColumnType
(
&
yylhsminor
.
yy183
,
&
yymsp
[
-
1
].
minor
.
yy0
);
tSetColumnType
(
&
yylhsminor
.
yy183
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
}
#line 3292 "sql.c"
yymsp
[
-
1
].
minor
.
yy183
=
yylhsminor
.
yy183
;
yymsp
[
-
1
].
minor
.
yy183
=
yylhsminor
.
yy183
;
break
;
break
;
case
136
:
/* signed ::= INTEGER */
case
136
:
/* signed ::= INTEGER */
#line 353 "sql.y"
{
yylhsminor
.
yy325
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yylhsminor
.
yy325
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
#line 3298 "sql.c"
yymsp
[
0
].
minor
.
yy325
=
yylhsminor
.
yy325
;
yymsp
[
0
].
minor
.
yy325
=
yylhsminor
.
yy325
;
break
;
break
;
case
137
:
/* signed ::= PLUS INTEGER */
case
137
:
/* signed ::= PLUS INTEGER */
#line 354 "sql.y"
{
yymsp
[
-
1
].
minor
.
yy325
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
{
yymsp
[
-
1
].
minor
.
yy325
=
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);
}
#line 3304 "sql.c"
break
;
break
;
case
138
:
/* signed ::= MINUS INTEGER */
case
138
:
/* signed ::= MINUS INTEGER */
#line 355 "sql.y"
{
yymsp
[
-
1
].
minor
.
yy325
=
-
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);}
{
yymsp
[
-
1
].
minor
.
yy325
=
-
strtol
(
yymsp
[
0
].
minor
.
yy0
.
z
,
NULL
,
10
);}
#line 3309 "sql.c"
break
;
break
;
case
142
:
/* cmd ::= CREATE TABLE create_table_list */
case
142
:
/* cmd ::= CREATE TABLE create_table_list */
#line 361 "sql.y"
{
pInfo
->
type
=
TSDB_SQL_CREATE_TABLE
;
pInfo
->
pCreateTableInfo
=
yymsp
[
0
].
minor
.
yy438
;}
{
pInfo
->
type
=
TSDB_SQL_CREATE_TABLE
;
pInfo
->
pCreateTableInfo
=
yymsp
[
0
].
minor
.
yy438
;}
#line 3314 "sql.c"
break
;
break
;
case
143
:
/* create_table_list ::= create_from_stable */
case
143
:
/* create_table_list ::= create_from_stable */
#line 365 "sql.y"
{
{
SCreateTableSql
*
pCreateTable
=
calloc
(
1
,
sizeof
(
SCreateTableSql
));
SCreateTableSql
*
pCreateTable
=
calloc
(
1
,
sizeof
(
SCreateTableSql
));
pCreateTable
->
childTableInfo
=
taosArrayInit
(
4
,
sizeof
(
SCreatedTableInfo
));
pCreateTable
->
childTableInfo
=
taosArrayInit
(
4
,
sizeof
(
SCreatedTableInfo
));
...
@@ -2967,16 +3323,20 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2967,16 +3323,20 @@ static YYACTIONTYPE yy_reduce(
pCreateTable
->
type
=
TSQL_CREATE_TABLE_FROM_STABLE
;
pCreateTable
->
type
=
TSQL_CREATE_TABLE_FROM_STABLE
;
yylhsminor
.
yy438
=
pCreateTable
;
yylhsminor
.
yy438
=
pCreateTable
;
}
}
#line 3326 "sql.c"
yymsp
[
0
].
minor
.
yy438
=
yylhsminor
.
yy438
;
yymsp
[
0
].
minor
.
yy438
=
yylhsminor
.
yy438
;
break
;
break
;
case
144
:
/* create_table_list ::= create_table_list create_from_stable */
case
144
:
/* create_table_list ::= create_table_list create_from_stable */
#line 374 "sql.y"
{
{
taosArrayPush
(
yymsp
[
-
1
].
minor
.
yy438
->
childTableInfo
,
&
yymsp
[
0
].
minor
.
yy152
);
taosArrayPush
(
yymsp
[
-
1
].
minor
.
yy438
->
childTableInfo
,
&
yymsp
[
0
].
minor
.
yy152
);
yylhsminor
.
yy438
=
yymsp
[
-
1
].
minor
.
yy438
;
yylhsminor
.
yy438
=
yymsp
[
-
1
].
minor
.
yy438
;
}
}
#line 3335 "sql.c"
yymsp
[
-
1
].
minor
.
yy438
=
yylhsminor
.
yy438
;
yymsp
[
-
1
].
minor
.
yy438
=
yylhsminor
.
yy438
;
break
;
break
;
case
145
:
/* create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
case
145
:
/* create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
#line 380 "sql.y"
{
{
yylhsminor
.
yy438
=
tSetCreateTableInfo
(
yymsp
[
-
1
].
minor
.
yy421
,
NULL
,
NULL
,
TSQL_CREATE_TABLE
);
yylhsminor
.
yy438
=
tSetCreateTableInfo
(
yymsp
[
-
1
].
minor
.
yy421
,
NULL
,
NULL
,
TSQL_CREATE_TABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy438
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy438
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
...
@@ -2984,9 +3344,11 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2984,9 +3344,11 @@ static YYACTIONTYPE yy_reduce(
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
setCreatedTableName
(
pInfo
,
&
yymsp
[
-
4
].
minor
.
yy0
,
&
yymsp
[
-
5
].
minor
.
yy0
);
setCreatedTableName
(
pInfo
,
&
yymsp
[
-
4
].
minor
.
yy0
,
&
yymsp
[
-
5
].
minor
.
yy0
);
}
}
#line 3347 "sql.c"
yymsp
[
-
5
].
minor
.
yy438
=
yylhsminor
.
yy438
;
yymsp
[
-
5
].
minor
.
yy438
=
yylhsminor
.
yy438
;
break
;
break
;
case
146
:
/* create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
case
146
:
/* create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
#line 390 "sql.y"
{
{
yylhsminor
.
yy438
=
tSetCreateTableInfo
(
yymsp
[
-
5
].
minor
.
yy421
,
yymsp
[
-
1
].
minor
.
yy421
,
NULL
,
TSQL_CREATE_STABLE
);
yylhsminor
.
yy438
=
tSetCreateTableInfo
(
yymsp
[
-
5
].
minor
.
yy421
,
yymsp
[
-
1
].
minor
.
yy421
,
NULL
,
TSQL_CREATE_STABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy438
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy438
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
...
@@ -2994,33 +3356,43 @@ static YYACTIONTYPE yy_reduce(
...
@@ -2994,33 +3356,43 @@ static YYACTIONTYPE yy_reduce(
yymsp
[
-
8
].
minor
.
yy0
.
n
+=
yymsp
[
-
7
].
minor
.
yy0
.
n
;
yymsp
[
-
8
].
minor
.
yy0
.
n
+=
yymsp
[
-
7
].
minor
.
yy0
.
n
;
setCreatedTableName
(
pInfo
,
&
yymsp
[
-
8
].
minor
.
yy0
,
&
yymsp
[
-
9
].
minor
.
yy0
);
setCreatedTableName
(
pInfo
,
&
yymsp
[
-
8
].
minor
.
yy0
,
&
yymsp
[
-
9
].
minor
.
yy0
);
}
}
#line 3359 "sql.c"
yymsp
[
-
9
].
minor
.
yy438
=
yylhsminor
.
yy438
;
yymsp
[
-
9
].
minor
.
yy438
=
yylhsminor
.
yy438
;
break
;
break
;
case
147
:
/* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
case
147
:
/* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
#line 401 "sql.y"
{
{
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
yymsp
[
-
8
].
minor
.
yy0
.
n
+=
yymsp
[
-
7
].
minor
.
yy0
.
n
;
yymsp
[
-
8
].
minor
.
yy0
.
n
+=
yymsp
[
-
7
].
minor
.
yy0
.
n
;
yylhsminor
.
yy152
=
createNewChildTableInfo
(
&
yymsp
[
-
5
].
minor
.
yy0
,
NULL
,
yymsp
[
-
1
].
minor
.
yy421
,
&
yymsp
[
-
8
].
minor
.
yy0
,
&
yymsp
[
-
9
].
minor
.
yy0
);
yylhsminor
.
yy152
=
createNewChildTableInfo
(
&
yymsp
[
-
5
].
minor
.
yy0
,
NULL
,
yymsp
[
-
1
].
minor
.
yy421
,
&
yymsp
[
-
8
].
minor
.
yy0
,
&
yymsp
[
-
9
].
minor
.
yy0
);
}
}
#line 3369 "sql.c"
yymsp
[
-
9
].
minor
.
yy152
=
yylhsminor
.
yy152
;
yymsp
[
-
9
].
minor
.
yy152
=
yylhsminor
.
yy152
;
break
;
break
;
case
148
:
/* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
case
148
:
/* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
#line 407 "sql.y"
{
{
yymsp
[
-
8
].
minor
.
yy0
.
n
+=
yymsp
[
-
7
].
minor
.
yy0
.
n
;
yymsp
[
-
8
].
minor
.
yy0
.
n
+=
yymsp
[
-
7
].
minor
.
yy0
.
n
;
yymsp
[
-
11
].
minor
.
yy0
.
n
+=
yymsp
[
-
10
].
minor
.
yy0
.
n
;
yymsp
[
-
11
].
minor
.
yy0
.
n
+=
yymsp
[
-
10
].
minor
.
yy0
.
n
;
yylhsminor
.
yy152
=
createNewChildTableInfo
(
&
yymsp
[
-
8
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy421
,
yymsp
[
-
1
].
minor
.
yy421
,
&
yymsp
[
-
11
].
minor
.
yy0
,
&
yymsp
[
-
12
].
minor
.
yy0
);
yylhsminor
.
yy152
=
createNewChildTableInfo
(
&
yymsp
[
-
8
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy421
,
yymsp
[
-
1
].
minor
.
yy421
,
&
yymsp
[
-
11
].
minor
.
yy0
,
&
yymsp
[
-
12
].
minor
.
yy0
);
}
}
#line 3379 "sql.c"
yymsp
[
-
12
].
minor
.
yy152
=
yylhsminor
.
yy152
;
yymsp
[
-
12
].
minor
.
yy152
=
yylhsminor
.
yy152
;
break
;
break
;
case
149
:
/* tagNamelist ::= tagNamelist COMMA ids */
case
149
:
/* tagNamelist ::= tagNamelist COMMA ids */
#line 415 "sql.y"
{
taosArrayPush
(
yymsp
[
-
2
].
minor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy0
);
yylhsminor
.
yy421
=
yymsp
[
-
2
].
minor
.
yy421
;
}
{
taosArrayPush
(
yymsp
[
-
2
].
minor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy0
);
yylhsminor
.
yy421
=
yymsp
[
-
2
].
minor
.
yy421
;
}
#line 3385 "sql.c"
yymsp
[
-
2
].
minor
.
yy421
=
yylhsminor
.
yy421
;
yymsp
[
-
2
].
minor
.
yy421
=
yylhsminor
.
yy421
;
break
;
break
;
case
150
:
/* tagNamelist ::= ids */
case
150
:
/* tagNamelist ::= ids */
#line 416 "sql.y"
{
yylhsminor
.
yy421
=
taosArrayInit
(
4
,
sizeof
(
SStrToken
));
taosArrayPush
(
yylhsminor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
yylhsminor
.
yy421
=
taosArrayInit
(
4
,
sizeof
(
SStrToken
));
taosArrayPush
(
yylhsminor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy0
);}
#line 3391 "sql.c"
yymsp
[
0
].
minor
.
yy421
=
yylhsminor
.
yy421
;
yymsp
[
0
].
minor
.
yy421
=
yylhsminor
.
yy421
;
break
;
break
;
case
151
:
/* create_table_args ::= ifnotexists ids cpxName AS select */
case
151
:
/* create_table_args ::= ifnotexists ids cpxName AS select */
#line 420 "sql.y"
{
{
yylhsminor
.
yy438
=
tSetCreateTableInfo
(
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy56
,
TSQL_CREATE_STREAM
);
yylhsminor
.
yy438
=
tSetCreateTableInfo
(
NULL
,
NULL
,
yymsp
[
0
].
minor
.
yy56
,
TSQL_CREATE_STREAM
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy438
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
setSqlInfo
(
pInfo
,
yylhsminor
.
yy438
,
NULL
,
TSDB_SQL_CREATE_TABLE
);
...
@@ -3028,186 +3400,266 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3028,186 +3400,266 @@ static YYACTIONTYPE yy_reduce(
yymsp
[
-
3
].
minor
.
yy0
.
n
+=
yymsp
[
-
2
].
minor
.
yy0
.
n
;
yymsp
[
-
3
].
minor
.
yy0
.
n
+=
yymsp
[
-
2
].
minor
.
yy0
.
n
;
setCreatedTableName
(
pInfo
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
4
].
minor
.
yy0
);
setCreatedTableName
(
pInfo
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
-
4
].
minor
.
yy0
);
}
}
#line 3403 "sql.c"
yymsp
[
-
4
].
minor
.
yy438
=
yylhsminor
.
yy438
;
yymsp
[
-
4
].
minor
.
yy438
=
yylhsminor
.
yy438
;
break
;
break
;
case
152
:
/* columnlist ::= columnlist COMMA column */
case
152
:
/* columnlist ::= columnlist COMMA column */
#line 431 "sql.y"
{
taosArrayPush
(
yymsp
[
-
2
].
minor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy183
);
yylhsminor
.
yy421
=
yymsp
[
-
2
].
minor
.
yy421
;
}
{
taosArrayPush
(
yymsp
[
-
2
].
minor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy183
);
yylhsminor
.
yy421
=
yymsp
[
-
2
].
minor
.
yy421
;
}
#line 3409 "sql.c"
yymsp
[
-
2
].
minor
.
yy421
=
yylhsminor
.
yy421
;
yymsp
[
-
2
].
minor
.
yy421
=
yylhsminor
.
yy421
;
break
;
break
;
case
153
:
/* columnlist ::= column */
case
153
:
/* columnlist ::= column */
#line 432 "sql.y"
{
yylhsminor
.
yy421
=
taosArrayInit
(
4
,
sizeof
(
TAOS_FIELD
));
taosArrayPush
(
yylhsminor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy183
);}
{
yylhsminor
.
yy421
=
taosArrayInit
(
4
,
sizeof
(
TAOS_FIELD
));
taosArrayPush
(
yylhsminor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy183
);}
#line 3415 "sql.c"
yymsp
[
0
].
minor
.
yy421
=
yylhsminor
.
yy421
;
yymsp
[
0
].
minor
.
yy421
=
yylhsminor
.
yy421
;
break
;
break
;
case
154
:
/* column ::= ids typename */
case
154
:
/* column ::= ids typename */
#line 436 "sql.y"
{
{
tSetColumnInfo
(
&
yylhsminor
.
yy183
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy183
);
tSetColumnInfo
(
&
yylhsminor
.
yy183
,
&
yymsp
[
-
1
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy183
);
}
}
#line 3423 "sql.c"
yymsp
[
-
1
].
minor
.
yy183
=
yylhsminor
.
yy183
;
yymsp
[
-
1
].
minor
.
yy183
=
yylhsminor
.
yy183
;
break
;
break
;
case
161
:
/* tagitem ::= NULL */
case
161
:
/* tagitem ::= NULL */
#line 451 "sql.y"
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tVariantCreate
(
&
yylhsminor
.
yy430
,
&
yymsp
[
0
].
minor
.
yy0
);
}
{
yymsp
[
0
].
minor
.
yy0
.
type
=
0
;
tVariantCreate
(
&
yylhsminor
.
yy430
,
&
yymsp
[
0
].
minor
.
yy0
);
}
#line 3429 "sql.c"
yymsp
[
0
].
minor
.
yy430
=
yylhsminor
.
yy430
;
yymsp
[
0
].
minor
.
yy430
=
yylhsminor
.
yy430
;
break
;
break
;
case
162
:
/* tagitem ::= NOW */
case
162
:
/* tagitem ::= NOW */
#line 452 "sql.y"
{
yymsp
[
0
].
minor
.
yy0
.
type
=
TSDB_DATA_TYPE_TIMESTAMP
;
tVariantCreate
(
&
yylhsminor
.
yy430
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
yymsp
[
0
].
minor
.
yy0
.
type
=
TSDB_DATA_TYPE_TIMESTAMP
;
tVariantCreate
(
&
yylhsminor
.
yy430
,
&
yymsp
[
0
].
minor
.
yy0
);}
#line 3435 "sql.c"
yymsp
[
0
].
minor
.
yy430
=
yylhsminor
.
yy430
;
yymsp
[
0
].
minor
.
yy430
=
yylhsminor
.
yy430
;
break
;
break
;
case
163
:
/* tagitem ::= MINUS INTEGER */
case
163
:
/* tagitem ::= MINUS INTEGER */
case
164
:
/* tagitem ::= MINUS FLOAT */
yytestcase
(
yyruleno
==
164
);
case
164
:
/* tagitem ::= MINUS FLOAT */
yytestcase
(
yyruleno
==
164
);
case
165
:
/* tagitem ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
165
);
case
165
:
/* tagitem ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
165
);
case
166
:
/* tagitem ::= PLUS FLOAT */
yytestcase
(
yyruleno
==
166
);
case
166
:
/* tagitem ::= PLUS FLOAT */
yytestcase
(
yyruleno
==
166
);
#line 454 "sql.y"
{
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
yymsp
[
0
].
minor
.
yy0
.
type
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
yymsp
[
0
].
minor
.
yy0
.
type
;
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
tVariantCreate
(
&
yylhsminor
.
yy430
,
&
yymsp
[
-
1
].
minor
.
yy0
);
tVariantCreate
(
&
yylhsminor
.
yy430
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
}
#line 3449 "sql.c"
yymsp
[
-
1
].
minor
.
yy430
=
yylhsminor
.
yy430
;
yymsp
[
-
1
].
minor
.
yy430
=
yylhsminor
.
yy430
;
break
;
break
;
case
167
:
/* select ::= SELECT selcollist from where_opt interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
case
167
:
/* select ::= SELECT selcollist from where_opt interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
#line 485 "sql.y"
{
{
yylhsminor
.
yy56
=
tSetQuerySqlNode
(
&
yymsp
[
-
13
].
minor
.
yy0
,
yymsp
[
-
12
].
minor
.
yy421
,
yymsp
[
-
11
].
minor
.
yy8
,
yymsp
[
-
10
].
minor
.
yy439
,
yymsp
[
-
4
].
minor
.
yy421
,
yymsp
[
-
2
].
minor
.
yy421
,
&
yymsp
[
-
9
].
minor
.
yy400
,
&
yymsp
[
-
7
].
minor
.
yy147
,
&
yymsp
[
-
6
].
minor
.
yy40
,
&
yymsp
[
-
8
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy166
,
&
yymsp
[
-
1
].
minor
.
yy166
,
yymsp
[
-
3
].
minor
.
yy439
);
yylhsminor
.
yy56
=
tSetQuerySqlNode
(
&
yymsp
[
-
13
].
minor
.
yy0
,
yymsp
[
-
12
].
minor
.
yy421
,
yymsp
[
-
11
].
minor
.
yy8
,
yymsp
[
-
10
].
minor
.
yy439
,
yymsp
[
-
4
].
minor
.
yy421
,
yymsp
[
-
2
].
minor
.
yy421
,
&
yymsp
[
-
9
].
minor
.
yy400
,
&
yymsp
[
-
7
].
minor
.
yy147
,
&
yymsp
[
-
6
].
minor
.
yy40
,
&
yymsp
[
-
8
].
minor
.
yy0
,
yymsp
[
-
5
].
minor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy166
,
&
yymsp
[
-
1
].
minor
.
yy166
,
yymsp
[
-
3
].
minor
.
yy439
);
}
}
#line 3457 "sql.c"
yymsp
[
-
13
].
minor
.
yy56
=
yylhsminor
.
yy56
;
yymsp
[
-
13
].
minor
.
yy56
=
yylhsminor
.
yy56
;
break
;
break
;
case
168
:
/* select ::= LP select RP */
case
168
:
/* select ::= LP select RP */
#line 489 "sql.y"
{
yymsp
[
-
2
].
minor
.
yy56
=
yymsp
[
-
1
].
minor
.
yy56
;}
{
yymsp
[
-
2
].
minor
.
yy56
=
yymsp
[
-
1
].
minor
.
yy56
;}
#line 3463 "sql.c"
break
;
break
;
case
169
:
/* union ::= select */
case
169
:
/* union ::= select */
#line 493 "sql.y"
{
yylhsminor
.
yy421
=
setSubclause
(
NULL
,
yymsp
[
0
].
minor
.
yy56
);
}
{
yylhsminor
.
yy421
=
setSubclause
(
NULL
,
yymsp
[
0
].
minor
.
yy56
);
}
#line 3468 "sql.c"
yymsp
[
0
].
minor
.
yy421
=
yylhsminor
.
yy421
;
yymsp
[
0
].
minor
.
yy421
=
yylhsminor
.
yy421
;
break
;
break
;
case
170
:
/* union ::= union UNION ALL select */
case
170
:
/* union ::= union UNION ALL select */
#line 494 "sql.y"
{
yylhsminor
.
yy421
=
appendSelectClause
(
yymsp
[
-
3
].
minor
.
yy421
,
yymsp
[
0
].
minor
.
yy56
);
}
{
yylhsminor
.
yy421
=
appendSelectClause
(
yymsp
[
-
3
].
minor
.
yy421
,
yymsp
[
0
].
minor
.
yy56
);
}
#line 3474 "sql.c"
yymsp
[
-
3
].
minor
.
yy421
=
yylhsminor
.
yy421
;
yymsp
[
-
3
].
minor
.
yy421
=
yylhsminor
.
yy421
;
break
;
break
;
case
171
:
/* cmd ::= union */
case
171
:
/* cmd ::= union */
#line 496 "sql.y"
{
setSqlInfo
(
pInfo
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_SQL_SELECT
);
}
{
setSqlInfo
(
pInfo
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_SQL_SELECT
);
}
#line 3480 "sql.c"
break
;
break
;
case
172
:
/* select ::= SELECT selcollist */
case
172
:
/* select ::= SELECT selcollist */
#line 503 "sql.y"
{
{
yylhsminor
.
yy56
=
tSetQuerySqlNode
(
&
yymsp
[
-
1
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
yylhsminor
.
yy56
=
tSetQuerySqlNode
(
&
yymsp
[
-
1
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
}
}
#line 3487 "sql.c"
yymsp
[
-
1
].
minor
.
yy56
=
yylhsminor
.
yy56
;
yymsp
[
-
1
].
minor
.
yy56
=
yylhsminor
.
yy56
;
break
;
break
;
case
173
:
/* sclp ::= selcollist COMMA */
case
173
:
/* sclp ::= selcollist COMMA */
#line 515 "sql.y"
{
yylhsminor
.
yy421
=
yymsp
[
-
1
].
minor
.
yy421
;}
{
yylhsminor
.
yy421
=
yymsp
[
-
1
].
minor
.
yy421
;}
#line 3493 "sql.c"
yymsp
[
-
1
].
minor
.
yy421
=
yylhsminor
.
yy421
;
yymsp
[
-
1
].
minor
.
yy421
=
yylhsminor
.
yy421
;
break
;
break
;
case
174
:
/* sclp ::= */
case
174
:
/* sclp ::= */
case
206
:
/* orderby_opt ::= */
yytestcase
(
yyruleno
==
206
);
case
206
:
/* orderby_opt ::= */
yytestcase
(
yyruleno
==
206
);
#line 516 "sql.y"
{
yymsp
[
1
].
minor
.
yy421
=
0
;}
{
yymsp
[
1
].
minor
.
yy421
=
0
;}
#line 3500 "sql.c"
break
;
break
;
case
175
:
/* selcollist ::= sclp distinct expr as */
case
175
:
/* selcollist ::= sclp distinct expr as */
#line 517 "sql.y"
{
{
yylhsminor
.
yy421
=
tSqlExprListAppend
(
yymsp
[
-
3
].
minor
.
yy421
,
yymsp
[
-
1
].
minor
.
yy439
,
yymsp
[
-
2
].
minor
.
yy0
.
n
?
&
yymsp
[
-
2
].
minor
.
yy0
:
0
,
yymsp
[
0
].
minor
.
yy0
.
n
?&
yymsp
[
0
].
minor
.
yy0
:
0
);
yylhsminor
.
yy421
=
tSqlExprListAppend
(
yymsp
[
-
3
].
minor
.
yy421
,
yymsp
[
-
1
].
minor
.
yy439
,
yymsp
[
-
2
].
minor
.
yy0
.
n
?
&
yymsp
[
-
2
].
minor
.
yy0
:
0
,
yymsp
[
0
].
minor
.
yy0
.
n
?&
yymsp
[
0
].
minor
.
yy0
:
0
);
}
}
#line 3507 "sql.c"
yymsp
[
-
3
].
minor
.
yy421
=
yylhsminor
.
yy421
;
yymsp
[
-
3
].
minor
.
yy421
=
yylhsminor
.
yy421
;
break
;
break
;
case
176
:
/* selcollist ::= sclp STAR */
case
176
:
/* selcollist ::= sclp STAR */
#line 521 "sql.y"
{
{
tSqlExpr
*
pNode
=
tSqlExprCreateIdValue
(
NULL
,
TK_ALL
);
tSqlExpr
*
pNode
=
tSqlExprCreateIdValue
(
pInfo
,
NULL
,
TK_ALL
);
yylhsminor
.
yy421
=
tSqlExprListAppend
(
yymsp
[
-
1
].
minor
.
yy421
,
pNode
,
0
,
0
);
yylhsminor
.
yy421
=
tSqlExprListAppend
(
yymsp
[
-
1
].
minor
.
yy421
,
pNode
,
0
,
0
);
}
}
#line 3516 "sql.c"
yymsp
[
-
1
].
minor
.
yy421
=
yylhsminor
.
yy421
;
yymsp
[
-
1
].
minor
.
yy421
=
yylhsminor
.
yy421
;
break
;
break
;
case
177
:
/* as ::= AS ids */
case
177
:
/* as ::= AS ids */
#line 529 "sql.y"
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
{
yymsp
[
-
1
].
minor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
#line 3522 "sql.c"
break
;
break
;
case
178
:
/* as ::= ids */
case
178
:
/* as ::= ids */
#line 530 "sql.y"
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
#line 3527 "sql.c"
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
break
;
break
;
case
179
:
/* as ::= */
case
179
:
/* as ::= */
#line 531 "sql.y"
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
}
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
}
#line 3533 "sql.c"
break
;
break
;
case
180
:
/* distinct ::= DISTINCT */
case
180
:
/* distinct ::= DISTINCT */
#line 534 "sql.y"
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;
}
#line 3538 "sql.c"
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
break
;
break
;
case
182
:
/* from ::= FROM tablelist */
case
182
:
/* from ::= FROM tablelist */
case
183
:
/* from ::= FROM sub */
yytestcase
(
yyruleno
==
183
);
case
183
:
/* from ::= FROM sub */
yytestcase
(
yyruleno
==
183
);
#line 540 "sql.y"
{
yymsp
[
-
1
].
minor
.
yy8
=
yymsp
[
0
].
minor
.
yy8
;}
{
yymsp
[
-
1
].
minor
.
yy8
=
yymsp
[
0
].
minor
.
yy8
;}
#line 3545 "sql.c"
break
;
break
;
case
184
:
/* sub ::= LP union RP */
case
184
:
/* sub ::= LP union RP */
#line 545 "sql.y"
{
yymsp
[
-
2
].
minor
.
yy8
=
addSubqueryElem
(
NULL
,
yymsp
[
-
1
].
minor
.
yy421
,
NULL
);}
{
yymsp
[
-
2
].
minor
.
yy8
=
addSubqueryElem
(
NULL
,
yymsp
[
-
1
].
minor
.
yy421
,
NULL
);}
#line 3550 "sql.c"
break
;
break
;
case
185
:
/* sub ::= LP union RP ids */
case
185
:
/* sub ::= LP union RP ids */
#line 546 "sql.y"
{
yymsp
[
-
3
].
minor
.
yy8
=
addSubqueryElem
(
NULL
,
yymsp
[
-
2
].
minor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
yymsp
[
-
3
].
minor
.
yy8
=
addSubqueryElem
(
NULL
,
yymsp
[
-
2
].
minor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy0
);}
#line 3555 "sql.c"
break
;
break
;
case
186
:
/* sub ::= sub COMMA LP union RP ids */
case
186
:
/* sub ::= sub COMMA LP union RP ids */
#line 547 "sql.y"
{
yylhsminor
.
yy8
=
addSubqueryElem
(
yymsp
[
-
5
].
minor
.
yy8
,
yymsp
[
-
2
].
minor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
yylhsminor
.
yy8
=
addSubqueryElem
(
yymsp
[
-
5
].
minor
.
yy8
,
yymsp
[
-
2
].
minor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy0
);}
#line 3560 "sql.c"
yymsp
[
-
5
].
minor
.
yy8
=
yylhsminor
.
yy8
;
yymsp
[
-
5
].
minor
.
yy8
=
yylhsminor
.
yy8
;
break
;
break
;
case
187
:
/* tablelist ::= ids cpxName */
case
187
:
/* tablelist ::= ids cpxName */
#line 551 "sql.y"
{
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yylhsminor
.
yy8
=
setTableNameList
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
);
yylhsminor
.
yy8
=
setTableNameList
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
);
}
}
#line 3569 "sql.c"
yymsp
[
-
1
].
minor
.
yy8
=
yylhsminor
.
yy8
;
yymsp
[
-
1
].
minor
.
yy8
=
yylhsminor
.
yy8
;
break
;
break
;
case
188
:
/* tablelist ::= ids cpxName ids */
case
188
:
/* tablelist ::= ids cpxName ids */
#line 556 "sql.y"
{
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
yymsp
[
-
1
].
minor
.
yy0
.
n
;
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
yymsp
[
-
1
].
minor
.
yy0
.
n
;
yylhsminor
.
yy8
=
setTableNameList
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
yylhsminor
.
yy8
=
setTableNameList
(
NULL
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
}
#line 3578 "sql.c"
yymsp
[
-
2
].
minor
.
yy8
=
yylhsminor
.
yy8
;
yymsp
[
-
2
].
minor
.
yy8
=
yylhsminor
.
yy8
;
break
;
break
;
case
189
:
/* tablelist ::= tablelist COMMA ids cpxName */
case
189
:
/* tablelist ::= tablelist COMMA ids cpxName */
#line 561 "sql.y"
{
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yylhsminor
.
yy8
=
setTableNameList
(
yymsp
[
-
3
].
minor
.
yy8
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
);
yylhsminor
.
yy8
=
setTableNameList
(
yymsp
[
-
3
].
minor
.
yy8
,
&
yymsp
[
-
1
].
minor
.
yy0
,
NULL
);
}
}
#line 3587 "sql.c"
yymsp
[
-
3
].
minor
.
yy8
=
yylhsminor
.
yy8
;
yymsp
[
-
3
].
minor
.
yy8
=
yylhsminor
.
yy8
;
break
;
break
;
case
190
:
/* tablelist ::= tablelist COMMA ids cpxName ids */
case
190
:
/* tablelist ::= tablelist COMMA ids cpxName ids */
#line 566 "sql.y"
{
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
yymsp
[
-
1
].
minor
.
yy0
.
n
;
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
yymsp
[
-
1
].
minor
.
yy0
.
n
;
yylhsminor
.
yy8
=
setTableNameList
(
yymsp
[
-
4
].
minor
.
yy8
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
yylhsminor
.
yy8
=
setTableNameList
(
yymsp
[
-
4
].
minor
.
yy8
,
&
yymsp
[
-
2
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
);
}
}
#line 3596 "sql.c"
yymsp
[
-
4
].
minor
.
yy8
=
yylhsminor
.
yy8
;
yymsp
[
-
4
].
minor
.
yy8
=
yylhsminor
.
yy8
;
break
;
break
;
case
191
:
/* tmvar ::= VARIABLE */
case
191
:
/* tmvar ::= VARIABLE */
#line 573 "sql.y"
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;}
{
yylhsminor
.
yy0
=
yymsp
[
0
].
minor
.
yy0
;}
#line 3602 "sql.c"
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
yymsp
[
0
].
minor
.
yy0
=
yylhsminor
.
yy0
;
break
;
break
;
case
192
:
/* interval_option ::= intervalKey LP tmvar RP */
case
192
:
/* interval_option ::= intervalKey LP tmvar RP */
#line 576 "sql.y"
{
yylhsminor
.
yy400
.
interval
=
yymsp
[
-
1
].
minor
.
yy0
;
yylhsminor
.
yy400
.
offset
.
n
=
0
;
yylhsminor
.
yy400
.
token
=
yymsp
[
-
3
].
minor
.
yy104
;}
{
yylhsminor
.
yy400
.
interval
=
yymsp
[
-
1
].
minor
.
yy0
;
yylhsminor
.
yy400
.
offset
.
n
=
0
;
yylhsminor
.
yy400
.
token
=
yymsp
[
-
3
].
minor
.
yy104
;}
#line 3608 "sql.c"
yymsp
[
-
3
].
minor
.
yy400
=
yylhsminor
.
yy400
;
yymsp
[
-
3
].
minor
.
yy400
=
yylhsminor
.
yy400
;
break
;
break
;
case
193
:
/* interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
case
193
:
/* interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
#line 577 "sql.y"
{
yylhsminor
.
yy400
.
interval
=
yymsp
[
-
3
].
minor
.
yy0
;
yylhsminor
.
yy400
.
offset
=
yymsp
[
-
1
].
minor
.
yy0
;
yylhsminor
.
yy400
.
token
=
yymsp
[
-
5
].
minor
.
yy104
;}
{
yylhsminor
.
yy400
.
interval
=
yymsp
[
-
3
].
minor
.
yy0
;
yylhsminor
.
yy400
.
offset
=
yymsp
[
-
1
].
minor
.
yy0
;
yylhsminor
.
yy400
.
token
=
yymsp
[
-
5
].
minor
.
yy104
;}
#line 3614 "sql.c"
yymsp
[
-
5
].
minor
.
yy400
=
yylhsminor
.
yy400
;
yymsp
[
-
5
].
minor
.
yy400
=
yylhsminor
.
yy400
;
break
;
break
;
case
194
:
/* interval_option ::= */
case
194
:
/* interval_option ::= */
#line 578 "sql.y"
{
memset
(
&
yymsp
[
1
].
minor
.
yy400
,
0
,
sizeof
(
yymsp
[
1
].
minor
.
yy400
));}
{
memset
(
&
yymsp
[
1
].
minor
.
yy400
,
0
,
sizeof
(
yymsp
[
1
].
minor
.
yy400
));}
#line 3620 "sql.c"
break
;
break
;
case
195
:
/* intervalKey ::= INTERVAL */
case
195
:
/* intervalKey ::= INTERVAL */
#line 581 "sql.y"
{
yymsp
[
0
].
minor
.
yy104
=
TK_INTERVAL
;}
{
yymsp
[
0
].
minor
.
yy104
=
TK_INTERVAL
;}
#line 3625 "sql.c"
break
;
break
;
case
196
:
/* intervalKey ::= EVERY */
case
196
:
/* intervalKey ::= EVERY */
#line 582 "sql.y"
{
yymsp
[
0
].
minor
.
yy104
=
TK_EVERY
;
}
{
yymsp
[
0
].
minor
.
yy104
=
TK_EVERY
;
}
#line 3630 "sql.c"
break
;
break
;
case
197
:
/* session_option ::= */
case
197
:
/* session_option ::= */
#line 585 "sql.y"
{
yymsp
[
1
].
minor
.
yy147
.
col
.
n
=
0
;
yymsp
[
1
].
minor
.
yy147
.
gap
.
n
=
0
;}
{
yymsp
[
1
].
minor
.
yy147
.
col
.
n
=
0
;
yymsp
[
1
].
minor
.
yy147
.
gap
.
n
=
0
;}
#line 3635 "sql.c"
break
;
break
;
case
198
:
/* session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
case
198
:
/* session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
#line 586 "sql.y"
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
6
].
minor
.
yy147
.
col
=
yymsp
[
-
4
].
minor
.
yy0
;
yymsp
[
-
6
].
minor
.
yy147
.
col
=
yymsp
[
-
4
].
minor
.
yy0
;
yymsp
[
-
6
].
minor
.
yy147
.
gap
=
yymsp
[
-
1
].
minor
.
yy0
;
yymsp
[
-
6
].
minor
.
yy147
.
gap
=
yymsp
[
-
1
].
minor
.
yy0
;
}
}
#line 3644 "sql.c"
break
;
break
;
case
199
:
/* windowstate_option ::= */
case
199
:
/* windowstate_option ::= */
#line 593 "sql.y"
{
yymsp
[
1
].
minor
.
yy40
.
col
.
n
=
0
;
yymsp
[
1
].
minor
.
yy40
.
col
.
z
=
NULL
;}
{
yymsp
[
1
].
minor
.
yy40
.
col
.
n
=
0
;
yymsp
[
1
].
minor
.
yy40
.
col
.
z
=
NULL
;}
#line 3649 "sql.c"
break
;
break
;
case
200
:
/* windowstate_option ::= STATE_WINDOW LP ids RP */
case
200
:
/* windowstate_option ::= STATE_WINDOW LP ids RP */
#line 594 "sql.y"
{
yymsp
[
-
3
].
minor
.
yy40
.
col
=
yymsp
[
-
1
].
minor
.
yy0
;
}
{
yymsp
[
-
3
].
minor
.
yy40
.
col
=
yymsp
[
-
1
].
minor
.
yy0
;
}
#line 3654 "sql.c"
break
;
break
;
case
201
:
/* fill_opt ::= */
case
201
:
/* fill_opt ::= */
#line 598 "sql.y"
{
yymsp
[
1
].
minor
.
yy421
=
0
;
}
{
yymsp
[
1
].
minor
.
yy421
=
0
;
}
#line 3659 "sql.c"
break
;
break
;
case
202
:
/* fill_opt ::= FILL LP ID COMMA tagitemlist RP */
case
202
:
/* fill_opt ::= FILL LP ID COMMA tagitemlist RP */
#line 599 "sql.y"
{
{
tVariant
A
=
{
0
};
tVariant
A
=
{
0
};
toTSDBType
(
yymsp
[
-
3
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
-
3
].
minor
.
yy0
.
type
);
...
@@ -3216,272 +3668,402 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3216,272 +3668,402 @@ static YYACTIONTYPE yy_reduce(
tVariantListInsert
(
yymsp
[
-
1
].
minor
.
yy421
,
&
A
,
-
1
,
0
);
tVariantListInsert
(
yymsp
[
-
1
].
minor
.
yy421
,
&
A
,
-
1
,
0
);
yymsp
[
-
5
].
minor
.
yy421
=
yymsp
[
-
1
].
minor
.
yy421
;
yymsp
[
-
5
].
minor
.
yy421
=
yymsp
[
-
1
].
minor
.
yy421
;
}
}
#line 3671 "sql.c"
break
;
break
;
case
203
:
/* fill_opt ::= FILL LP ID RP */
case
203
:
/* fill_opt ::= FILL LP ID RP */
#line 608 "sql.y"
{
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
3
].
minor
.
yy421
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
yymsp
[
-
3
].
minor
.
yy421
=
tVariantListAppendToken
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy0
,
-
1
);
}
}
#line 3679 "sql.c"
break
;
break
;
case
204
:
/* sliding_opt ::= SLIDING LP tmvar RP */
case
204
:
/* sliding_opt ::= SLIDING LP tmvar RP */
#line 614 "sql.y"
{
yymsp
[
-
3
].
minor
.
yy0
=
yymsp
[
-
1
].
minor
.
yy0
;
}
{
yymsp
[
-
3
].
minor
.
yy0
=
yymsp
[
-
1
].
minor
.
yy0
;
}
#line 3684 "sql.c"
break
;
break
;
case
205
:
/* sliding_opt ::= */
case
205
:
/* sliding_opt ::= */
#line 615 "sql.y"
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
yymsp
[
1
].
minor
.
yy0
.
z
=
NULL
;
yymsp
[
1
].
minor
.
yy0
.
type
=
0
;
}
{
yymsp
[
1
].
minor
.
yy0
.
n
=
0
;
yymsp
[
1
].
minor
.
yy0
.
z
=
NULL
;
yymsp
[
1
].
minor
.
yy0
.
type
=
0
;
}
#line 3689 "sql.c"
break
;
break
;
case
207
:
/* orderby_opt ::= ORDER BY sortlist */
case
207
:
/* orderby_opt ::= ORDER BY sortlist */
#line 627 "sql.y"
{
yymsp
[
-
2
].
minor
.
yy421
=
yymsp
[
0
].
minor
.
yy421
;}
{
yymsp
[
-
2
].
minor
.
yy421
=
yymsp
[
0
].
minor
.
yy421
;}
#line 3694 "sql.c"
break
;
break
;
case
208
:
/* sortlist ::= sortlist COMMA item sortorder */
case
208
:
/* sortlist ::= sortlist COMMA item sortorder */
#line 629 "sql.y"
{
{
yylhsminor
.
yy421
=
tVariantListAppend
(
yymsp
[
-
3
].
minor
.
yy421
,
&
yymsp
[
-
1
].
minor
.
yy430
,
yymsp
[
0
].
minor
.
yy96
);
yylhsminor
.
yy421
=
tVariantListAppend
(
yymsp
[
-
3
].
minor
.
yy421
,
&
yymsp
[
-
1
].
minor
.
yy430
,
yymsp
[
0
].
minor
.
yy96
);
}
}
#line 3701 "sql.c"
yymsp
[
-
3
].
minor
.
yy421
=
yylhsminor
.
yy421
;
yymsp
[
-
3
].
minor
.
yy421
=
yylhsminor
.
yy421
;
break
;
break
;
case
209
:
/* sortlist ::= item sortorder */
case
209
:
/* sortlist ::= item sortorder */
#line 633 "sql.y"
{
{
yylhsminor
.
yy421
=
tVariantListAppend
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy430
,
yymsp
[
0
].
minor
.
yy96
);
yylhsminor
.
yy421
=
tVariantListAppend
(
NULL
,
&
yymsp
[
-
1
].
minor
.
yy430
,
yymsp
[
0
].
minor
.
yy96
);
}
}
#line 3709 "sql.c"
yymsp
[
-
1
].
minor
.
yy421
=
yylhsminor
.
yy421
;
yymsp
[
-
1
].
minor
.
yy421
=
yylhsminor
.
yy421
;
break
;
break
;
case
210
:
/* item ::= ids cpxName */
case
210
:
/* item ::= ids cpxName */
#line 638 "sql.y"
{
{
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
toTSDBType
(
yymsp
[
-
1
].
minor
.
yy0
.
type
);
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
tVariantCreate
(
&
yylhsminor
.
yy430
,
&
yymsp
[
-
1
].
minor
.
yy0
);
tVariantCreate
(
&
yylhsminor
.
yy430
,
&
yymsp
[
-
1
].
minor
.
yy0
);
}
}
#line 3720 "sql.c"
yymsp
[
-
1
].
minor
.
yy430
=
yylhsminor
.
yy430
;
yymsp
[
-
1
].
minor
.
yy430
=
yylhsminor
.
yy430
;
break
;
break
;
case
211
:
/* sortorder ::= ASC */
case
211
:
/* sortorder ::= ASC */
#line 646 "sql.y"
{
yymsp
[
0
].
minor
.
yy96
=
TSDB_ORDER_ASC
;
}
{
yymsp
[
0
].
minor
.
yy96
=
TSDB_ORDER_ASC
;
}
#line 3726 "sql.c"
break
;
break
;
case
212
:
/* sortorder ::= DESC */
case
212
:
/* sortorder ::= DESC */
#line 647 "sql.y"
{
yymsp
[
0
].
minor
.
yy96
=
TSDB_ORDER_DESC
;}
{
yymsp
[
0
].
minor
.
yy96
=
TSDB_ORDER_DESC
;}
#line 3731 "sql.c"
break
;
break
;
case
213
:
/* sortorder ::= */
case
213
:
/* sortorder ::= */
#line 648 "sql.y"
{
yymsp
[
1
].
minor
.
yy96
=
TSDB_ORDER_ASC
;
}
{
yymsp
[
1
].
minor
.
yy96
=
TSDB_ORDER_ASC
;
}
#line 3736 "sql.c"
break
;
break
;
case
214
:
/* groupby_opt ::= */
case
214
:
/* groupby_opt ::= */
#line 656 "sql.y"
{
yymsp
[
1
].
minor
.
yy421
=
0
;}
{
yymsp
[
1
].
minor
.
yy421
=
0
;}
#line 3741 "sql.c"
break
;
break
;
case
215
:
/* groupby_opt ::= GROUP BY grouplist */
case
215
:
/* groupby_opt ::= GROUP BY grouplist */
#line 657 "sql.y"
{
yymsp
[
-
2
].
minor
.
yy421
=
yymsp
[
0
].
minor
.
yy421
;}
{
yymsp
[
-
2
].
minor
.
yy421
=
yymsp
[
0
].
minor
.
yy421
;}
#line 3746 "sql.c"
break
;
break
;
case
216
:
/* grouplist ::= grouplist COMMA item */
case
216
:
/* grouplist ::= grouplist COMMA item */
#line 659 "sql.y"
{
{
yylhsminor
.
yy421
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy430
,
-
1
);
yylhsminor
.
yy421
=
tVariantListAppend
(
yymsp
[
-
2
].
minor
.
yy421
,
&
yymsp
[
0
].
minor
.
yy430
,
-
1
);
}
}
#line 3753 "sql.c"
yymsp
[
-
2
].
minor
.
yy421
=
yylhsminor
.
yy421
;
yymsp
[
-
2
].
minor
.
yy421
=
yylhsminor
.
yy421
;
break
;
break
;
case
217
:
/* grouplist ::= item */
case
217
:
/* grouplist ::= item */
#line 663 "sql.y"
{
{
yylhsminor
.
yy421
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy430
,
-
1
);
yylhsminor
.
yy421
=
tVariantListAppend
(
NULL
,
&
yymsp
[
0
].
minor
.
yy430
,
-
1
);
}
}
#line 3761 "sql.c"
yymsp
[
0
].
minor
.
yy421
=
yylhsminor
.
yy421
;
yymsp
[
0
].
minor
.
yy421
=
yylhsminor
.
yy421
;
break
;
break
;
case
218
:
/* having_opt ::= */
case
218
:
/* having_opt ::= */
case
228
:
/* where_opt ::= */
yytestcase
(
yyruleno
==
228
);
case
228
:
/* where_opt ::= */
yytestcase
(
yyruleno
==
228
);
case
272
:
/* expritem ::= */
yytestcase
(
yyruleno
==
272
);
case
272
:
/* expritem ::= */
yytestcase
(
yyruleno
==
272
);
#line 670 "sql.y"
{
yymsp
[
1
].
minor
.
yy439
=
0
;}
{
yymsp
[
1
].
minor
.
yy439
=
0
;}
#line 3769 "sql.c"
break
;
break
;
case
219
:
/* having_opt ::= HAVING expr */
case
219
:
/* having_opt ::= HAVING expr */
case
229
:
/* where_opt ::= WHERE expr */
yytestcase
(
yyruleno
==
229
);
case
229
:
/* where_opt ::= WHERE expr */
yytestcase
(
yyruleno
==
229
);
#line 671 "sql.y"
{
yymsp
[
-
1
].
minor
.
yy439
=
yymsp
[
0
].
minor
.
yy439
;}
{
yymsp
[
-
1
].
minor
.
yy439
=
yymsp
[
0
].
minor
.
yy439
;}
#line 3775 "sql.c"
break
;
break
;
case
220
:
/* limit_opt ::= */
case
220
:
/* limit_opt ::= */
case
224
:
/* slimit_opt ::= */
yytestcase
(
yyruleno
==
224
);
case
224
:
/* slimit_opt ::= */
yytestcase
(
yyruleno
==
224
);
#line 675 "sql.y"
{
yymsp
[
1
].
minor
.
yy166
.
limit
=
-
1
;
yymsp
[
1
].
minor
.
yy166
.
offset
=
0
;}
{
yymsp
[
1
].
minor
.
yy166
.
limit
=
-
1
;
yymsp
[
1
].
minor
.
yy166
.
offset
=
0
;}
#line 3781 "sql.c"
break
;
break
;
case
221
:
/* limit_opt ::= LIMIT signed */
case
221
:
/* limit_opt ::= LIMIT signed */
case
225
:
/* slimit_opt ::= SLIMIT signed */
yytestcase
(
yyruleno
==
225
);
case
225
:
/* slimit_opt ::= SLIMIT signed */
yytestcase
(
yyruleno
==
225
);
#line 676 "sql.y"
{
yymsp
[
-
1
].
minor
.
yy166
.
limit
=
yymsp
[
0
].
minor
.
yy325
;
yymsp
[
-
1
].
minor
.
yy166
.
offset
=
0
;}
{
yymsp
[
-
1
].
minor
.
yy166
.
limit
=
yymsp
[
0
].
minor
.
yy325
;
yymsp
[
-
1
].
minor
.
yy166
.
offset
=
0
;}
#line 3787 "sql.c"
break
;
break
;
case
222
:
/* limit_opt ::= LIMIT signed OFFSET signed */
case
222
:
/* limit_opt ::= LIMIT signed OFFSET signed */
#line 678 "sql.y"
{
yymsp
[
-
3
].
minor
.
yy166
.
limit
=
yymsp
[
-
2
].
minor
.
yy325
;
yymsp
[
-
3
].
minor
.
yy166
.
offset
=
yymsp
[
0
].
minor
.
yy325
;}
{
yymsp
[
-
3
].
minor
.
yy166
.
limit
=
yymsp
[
-
2
].
minor
.
yy325
;
yymsp
[
-
3
].
minor
.
yy166
.
offset
=
yymsp
[
0
].
minor
.
yy325
;}
#line 3792 "sql.c"
break
;
break
;
case
223
:
/* limit_opt ::= LIMIT signed COMMA signed */
case
223
:
/* limit_opt ::= LIMIT signed COMMA signed */
#line 680 "sql.y"
{
yymsp
[
-
3
].
minor
.
yy166
.
limit
=
yymsp
[
0
].
minor
.
yy325
;
yymsp
[
-
3
].
minor
.
yy166
.
offset
=
yymsp
[
-
2
].
minor
.
yy325
;}
{
yymsp
[
-
3
].
minor
.
yy166
.
limit
=
yymsp
[
0
].
minor
.
yy325
;
yymsp
[
-
3
].
minor
.
yy166
.
offset
=
yymsp
[
-
2
].
minor
.
yy325
;}
#line 3797 "sql.c"
break
;
break
;
case
226
:
/* slimit_opt ::= SLIMIT signed SOFFSET signed */
case
226
:
/* slimit_opt ::= SLIMIT signed SOFFSET signed */
#line 686 "sql.y"
{
yymsp
[
-
3
].
minor
.
yy166
.
limit
=
yymsp
[
-
2
].
minor
.
yy325
;
yymsp
[
-
3
].
minor
.
yy166
.
offset
=
yymsp
[
0
].
minor
.
yy325
;}
{
yymsp
[
-
3
].
minor
.
yy166
.
limit
=
yymsp
[
-
2
].
minor
.
yy325
;
yymsp
[
-
3
].
minor
.
yy166
.
offset
=
yymsp
[
0
].
minor
.
yy325
;}
#line 3802 "sql.c"
break
;
break
;
case
227
:
/* slimit_opt ::= SLIMIT signed COMMA signed */
case
227
:
/* slimit_opt ::= SLIMIT signed COMMA signed */
#line 688 "sql.y"
{
yymsp
[
-
3
].
minor
.
yy166
.
limit
=
yymsp
[
0
].
minor
.
yy325
;
yymsp
[
-
3
].
minor
.
yy166
.
offset
=
yymsp
[
-
2
].
minor
.
yy325
;}
{
yymsp
[
-
3
].
minor
.
yy166
.
limit
=
yymsp
[
0
].
minor
.
yy325
;
yymsp
[
-
3
].
minor
.
yy166
.
offset
=
yymsp
[
-
2
].
minor
.
yy325
;}
#line 3807 "sql.c"
break
;
break
;
case
230
:
/* expr ::= LP expr RP */
case
230
:
/* expr ::= LP expr RP */
#line 701 "sql.y"
{
yylhsminor
.
yy439
=
yymsp
[
-
1
].
minor
.
yy439
;
yylhsminor
.
yy439
->
exprToken
.
z
=
yymsp
[
-
2
].
minor
.
yy0
.
z
;
yylhsminor
.
yy439
->
exprToken
.
n
=
(
yymsp
[
0
].
minor
.
yy0
.
z
-
yymsp
[
-
2
].
minor
.
yy0
.
z
+
1
);}
{
yylhsminor
.
yy439
=
yymsp
[
-
1
].
minor
.
yy439
;
yylhsminor
.
yy439
->
exprToken
.
z
=
yymsp
[
-
2
].
minor
.
yy0
.
z
;
yylhsminor
.
yy439
->
exprToken
.
n
=
(
yymsp
[
0
].
minor
.
yy0
.
z
-
yymsp
[
-
2
].
minor
.
yy0
.
z
+
1
);}
#line 3812 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
231
:
/* expr ::= ID */
case
231
:
/* expr ::= ID */
{
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_ID
);}
#line 703 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_ID
);}
#line 3818 "sql.c"
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
232
:
/* expr ::= ID DOT ID */
case
232
:
/* expr ::= ID DOT ID */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);}
#line 704 "sql.y"
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ID
);}
#line 3824 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
233
:
/* expr ::= ID DOT STAR */
case
233
:
/* expr ::= ID DOT STAR */
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ALL
);}
#line 705 "sql.y"
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
1
+
yymsp
[
0
].
minor
.
yy0
.
n
);
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
2
].
minor
.
yy0
,
TK_ALL
);}
#line 3830 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
234
:
/* expr ::= INTEGER */
case
234
:
/* expr ::= INTEGER */
{
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
#line 707 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_INTEGER
);}
#line 3836 "sql.c"
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
235
:
/* expr ::= MINUS INTEGER */
case
235
:
/* expr ::= MINUS INTEGER */
case
236
:
/* expr ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
236
);
case
236
:
/* expr ::= PLUS INTEGER */
yytestcase
(
yyruleno
==
236
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
#line 708 "sql.y"
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_INTEGER
;
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_INTEGER
);}
#line 3843 "sql.c"
yymsp
[
-
1
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
1
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
237
:
/* expr ::= FLOAT */
case
237
:
/* expr ::= FLOAT */
{
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_FLOAT
);}
#line 710 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_FLOAT
);}
#line 3849 "sql.c"
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
238
:
/* expr ::= MINUS FLOAT */
case
238
:
/* expr ::= MINUS FLOAT */
case
239
:
/* expr ::= PLUS FLOAT */
yytestcase
(
yyruleno
==
239
);
case
239
:
/* expr ::= PLUS FLOAT */
yytestcase
(
yyruleno
==
239
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_FLOAT
;
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_FLOAT
);}
#line 711 "sql.y"
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_FLOAT
;
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_FLOAT
);}
#line 3856 "sql.c"
yymsp
[
-
1
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
1
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
240
:
/* expr ::= STRING */
case
240
:
/* expr ::= STRING */
{
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
#line 713 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_STRING
);}
#line 3862 "sql.c"
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
241
:
/* expr ::= NOW */
case
241
:
/* expr ::= NOW */
{
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
#line 714 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_NOW
);
}
#line 3868 "sql.c"
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
242
:
/* expr ::= VARIABLE */
case
242
:
/* expr ::= VARIABLE */
{
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_VARIABLE
);}
#line 715 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_VARIABLE
);}
#line 3874 "sql.c"
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
243
:
/* expr ::= PLUS VARIABLE */
case
243
:
/* expr ::= PLUS VARIABLE */
case
244
:
/* expr ::= MINUS VARIABLE */
yytestcase
(
yyruleno
==
244
);
case
244
:
/* expr ::= MINUS VARIABLE */
yytestcase
(
yyruleno
==
244
);
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_VARIABLE
;
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_VARIABLE
);}
#line 716 "sql.y"
{
yymsp
[
-
1
].
minor
.
yy0
.
n
+=
yymsp
[
0
].
minor
.
yy0
.
n
;
yymsp
[
-
1
].
minor
.
yy0
.
type
=
TK_VARIABLE
;
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
-
1
].
minor
.
yy0
,
TK_VARIABLE
);}
#line 3881 "sql.c"
yymsp
[
-
1
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
1
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
245
:
/* expr ::= BOOL */
case
245
:
/* expr ::= BOOL */
{
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_BOOL
);}
#line 718 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_BOOL
);}
#line 3887 "sql.c"
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
246
:
/* expr ::= NULL */
case
246
:
/* expr ::= NULL */
{
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
&
yymsp
[
0
].
minor
.
yy0
,
TK_NULL
);}
#line 719 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreateIdValue
(
pInfo
,
&
yymsp
[
0
].
minor
.
yy0
,
TK_NULL
);}
#line 3893 "sql.c"
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
247
:
/* expr ::= ID LP exprlist RP */
case
247
:
/* expr ::= ID LP exprlist RP */
#line 722 "sql.y"
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yylhsminor
.
yy439
=
tSqlExprCreateFunction
(
yymsp
[
-
1
].
minor
.
yy421
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yylhsminor
.
yy439
=
tSqlExprCreateFunction
(
yymsp
[
-
1
].
minor
.
yy421
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
#line 3899 "sql.c"
yymsp
[
-
3
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
3
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
248
:
/* expr ::= ID LP STAR RP */
case
248
:
/* expr ::= ID LP STAR RP */
#line 725 "sql.y"
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yylhsminor
.
yy439
=
tSqlExprCreateFunction
(
NULL
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
{
tStrTokenAppend
(
pInfo
->
funcs
,
&
yymsp
[
-
3
].
minor
.
yy0
);
yylhsminor
.
yy439
=
tSqlExprCreateFunction
(
NULL
,
&
yymsp
[
-
3
].
minor
.
yy0
,
&
yymsp
[
0
].
minor
.
yy0
,
yymsp
[
-
3
].
minor
.
yy0
.
type
);
}
#line 3905 "sql.c"
yymsp
[
-
3
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
3
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
249
:
/* expr ::= expr IS NULL */
case
249
:
/* expr ::= expr IS NULL */
#line 728 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
NULL
,
TK_ISNULL
);}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
NULL
,
TK_ISNULL
);}
#line 3911 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
250
:
/* expr ::= expr IS NOT NULL */
case
250
:
/* expr ::= expr IS NOT NULL */
#line 729 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
3
].
minor
.
yy439
,
NULL
,
TK_NOTNULL
);}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
3
].
minor
.
yy439
,
NULL
,
TK_NOTNULL
);}
#line 3917 "sql.c"
yymsp
[
-
3
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
3
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
251
:
/* expr ::= expr LT expr */
case
251
:
/* expr ::= expr LT expr */
#line 732 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_LT
);}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_LT
);}
#line 3923 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
252
:
/* expr ::= expr GT expr */
case
252
:
/* expr ::= expr GT expr */
#line 733 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_GT
);}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_GT
);}
#line 3929 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
253
:
/* expr ::= expr LE expr */
case
253
:
/* expr ::= expr LE expr */
#line 734 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_LE
);}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_LE
);}
#line 3935 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
254
:
/* expr ::= expr GE expr */
case
254
:
/* expr ::= expr GE expr */
#line 735 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_GE
);}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_GE
);}
#line 3941 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
255
:
/* expr ::= expr NE expr */
case
255
:
/* expr ::= expr NE expr */
#line 736 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_NE
);}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_NE
);}
#line 3947 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
256
:
/* expr ::= expr EQ expr */
case
256
:
/* expr ::= expr EQ expr */
#line 737 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_EQ
);}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_EQ
);}
#line 3953 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
257
:
/* expr ::= expr BETWEEN expr AND expr */
case
257
:
/* expr ::= expr BETWEEN expr AND expr */
#line 739 "sql.y"
{
tSqlExpr
*
X2
=
tSqlExprClone
(
yymsp
[
-
4
].
minor
.
yy439
);
yylhsminor
.
yy439
=
tSqlExprCreate
(
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy439
,
yymsp
[
-
2
].
minor
.
yy439
,
TK_GE
),
tSqlExprCreate
(
X2
,
yymsp
[
0
].
minor
.
yy439
,
TK_LE
),
TK_AND
);}
{
tSqlExpr
*
X2
=
tSqlExprClone
(
yymsp
[
-
4
].
minor
.
yy439
);
yylhsminor
.
yy439
=
tSqlExprCreate
(
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy439
,
yymsp
[
-
2
].
minor
.
yy439
,
TK_GE
),
tSqlExprCreate
(
X2
,
yymsp
[
0
].
minor
.
yy439
,
TK_LE
),
TK_AND
);}
#line 3959 "sql.c"
yymsp
[
-
4
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
4
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
258
:
/* expr ::= expr AND expr */
case
258
:
/* expr ::= expr AND expr */
#line 741 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_AND
);}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_AND
);}
#line 3965 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
259
:
/* expr ::= expr OR expr */
case
259
:
/* expr ::= expr OR expr */
#line 742 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_OR
);
}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_OR
);
}
#line 3971 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
260
:
/* expr ::= expr PLUS expr */
case
260
:
/* expr ::= expr PLUS expr */
#line 745 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_PLUS
);
}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_PLUS
);
}
#line 3977 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
261
:
/* expr ::= expr MINUS expr */
case
261
:
/* expr ::= expr MINUS expr */
#line 746 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_MINUS
);
}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_MINUS
);
}
#line 3983 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
262
:
/* expr ::= expr STAR expr */
case
262
:
/* expr ::= expr STAR expr */
#line 747 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_STAR
);
}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_STAR
);
}
#line 3989 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
263
:
/* expr ::= expr SLASH expr */
case
263
:
/* expr ::= expr SLASH expr */
#line 748 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_DIVIDE
);}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_DIVIDE
);}
#line 3995 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
264
:
/* expr ::= expr REM expr */
case
264
:
/* expr ::= expr REM expr */
#line 749 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_REM
);
}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_REM
);
}
#line 4001 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
265
:
/* expr ::= expr LIKE expr */
case
265
:
/* expr ::= expr LIKE expr */
#line 752 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_LIKE
);
}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_LIKE
);
}
#line 4007 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
266
:
/* expr ::= expr MATCH expr */
case
266
:
/* expr ::= expr MATCH expr */
#line 755 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_MATCH
);
}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_MATCH
);
}
#line 4013 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
267
:
/* expr ::= expr NMATCH expr */
case
267
:
/* expr ::= expr NMATCH expr */
#line 756 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_NMATCH
);
}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
2
].
minor
.
yy439
,
yymsp
[
0
].
minor
.
yy439
,
TK_NMATCH
);
}
#line 4019 "sql.c"
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
2
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
268
:
/* expr ::= expr IN LP exprlist RP */
case
268
:
/* expr ::= expr IN LP exprlist RP */
#line 759 "sql.y"
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy439
,
(
tSqlExpr
*
)
yymsp
[
-
1
].
minor
.
yy421
,
TK_IN
);
}
{
yylhsminor
.
yy439
=
tSqlExprCreate
(
yymsp
[
-
4
].
minor
.
yy439
,
(
tSqlExpr
*
)
yymsp
[
-
1
].
minor
.
yy421
,
TK_IN
);
}
#line 4025 "sql.c"
yymsp
[
-
4
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
-
4
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
269
:
/* exprlist ::= exprlist COMMA expritem */
case
269
:
/* exprlist ::= exprlist COMMA expritem */
#line 767 "sql.y"
{
yylhsminor
.
yy421
=
tSqlExprListAppend
(
yymsp
[
-
2
].
minor
.
yy421
,
yymsp
[
0
].
minor
.
yy439
,
0
,
0
);}
{
yylhsminor
.
yy421
=
tSqlExprListAppend
(
yymsp
[
-
2
].
minor
.
yy421
,
yymsp
[
0
].
minor
.
yy439
,
0
,
0
);}
#line 4031 "sql.c"
yymsp
[
-
2
].
minor
.
yy421
=
yylhsminor
.
yy421
;
yymsp
[
-
2
].
minor
.
yy421
=
yylhsminor
.
yy421
;
break
;
break
;
case
270
:
/* exprlist ::= expritem */
case
270
:
/* exprlist ::= expritem */
#line 768 "sql.y"
{
yylhsminor
.
yy421
=
tSqlExprListAppend
(
0
,
yymsp
[
0
].
minor
.
yy439
,
0
,
0
);}
{
yylhsminor
.
yy421
=
tSqlExprListAppend
(
0
,
yymsp
[
0
].
minor
.
yy439
,
0
,
0
);}
#line 4037 "sql.c"
yymsp
[
0
].
minor
.
yy421
=
yylhsminor
.
yy421
;
yymsp
[
0
].
minor
.
yy421
=
yylhsminor
.
yy421
;
break
;
break
;
case
271
:
/* expritem ::= expr */
case
271
:
/* expritem ::= expr */
#line 769 "sql.y"
{
yylhsminor
.
yy439
=
yymsp
[
0
].
minor
.
yy439
;}
{
yylhsminor
.
yy439
=
yymsp
[
0
].
minor
.
yy439
;}
#line 4043 "sql.c"
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
yymsp
[
0
].
minor
.
yy439
=
yylhsminor
.
yy439
;
break
;
break
;
case
273
:
/* cmd ::= RESET QUERY CACHE */
case
273
:
/* cmd ::= RESET QUERY CACHE */
#line 773 "sql.y"
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_RESET_CACHE
,
0
);}
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_RESET_CACHE
,
0
);}
#line 4049 "sql.c"
break
;
break
;
case
274
:
/* cmd ::= SYNCDB ids REPLICA */
case
274
:
/* cmd ::= SYNCDB ids REPLICA */
#line 776 "sql.y"
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_SYNC_DB_REPLICA
,
1
,
&
yymsp
[
-
1
].
minor
.
yy0
);}
{
setDCLSqlElems
(
pInfo
,
TSDB_SQL_SYNC_DB_REPLICA
,
1
,
&
yymsp
[
-
1
].
minor
.
yy0
);}
#line 4054 "sql.c"
break
;
break
;
case
275
:
/* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
case
275
:
/* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
#line 779 "sql.y"
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
#line 4063 "sql.c"
break
;
break
;
case
276
:
/* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
case
276
:
/* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
#line 785 "sql.y"
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
...
@@ -3491,22 +4073,28 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3491,22 +4073,28 @@ static YYACTIONTYPE yy_reduce(
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
NULL
,
K
,
TSDB_ALTER_TABLE_DROP_COLUMN
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
NULL
,
K
,
TSDB_ALTER_TABLE_DROP_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
#line 4076 "sql.c"
break
;
break
;
case
277
:
/* cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
case
277
:
/* cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
#line 795 "sql.y"
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_ALTER_TABLE_CHANGE_COLUMN
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_ALTER_TABLE_CHANGE_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
#line 4085 "sql.c"
break
;
break
;
case
278
:
/* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
case
278
:
/* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
#line 802 "sql.y"
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
#line 4094 "sql.c"
break
;
break
;
case
279
:
/* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
case
279
:
/* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
#line 807 "sql.y"
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
...
@@ -3516,8 +4104,10 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3516,8 +4104,10 @@ static YYACTIONTYPE yy_reduce(
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_DROP_TAG_COLUMN
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_DROP_TAG_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
#line 4107 "sql.c"
break
;
break
;
case
280
:
/* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
case
280
:
/* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
#line 817 "sql.y"
{
{
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
...
@@ -3530,8 +4120,10 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3530,8 +4120,10 @@ static YYACTIONTYPE yy_reduce(
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
5
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_CHANGE_TAG_COLUMN
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
5
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_CHANGE_TAG_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
#line 4123 "sql.c"
break
;
break
;
case
281
:
/* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
case
281
:
/* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
#line 830 "sql.y"
{
{
yymsp
[
-
6
].
minor
.
yy0
.
n
+=
yymsp
[
-
5
].
minor
.
yy0
.
n
;
yymsp
[
-
6
].
minor
.
yy0
.
n
+=
yymsp
[
-
5
].
minor
.
yy0
.
n
;
...
@@ -3542,22 +4134,28 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3542,22 +4134,28 @@ static YYACTIONTYPE yy_reduce(
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
6
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_UPDATE_TAG_VAL
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
6
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_UPDATE_TAG_VAL
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
#line 4137 "sql.c"
break
;
break
;
case
282
:
/* cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
case
282
:
/* cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
#line 841 "sql.y"
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN
,
-
1
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN
,
-
1
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
#line 4146 "sql.c"
break
;
break
;
case
283
:
/* cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
case
283
:
/* cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
#line 848 "sql.y"
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_ALTER_TABLE_ADD_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
#line 4155 "sql.c"
break
;
break
;
case
284
:
/* cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
case
284
:
/* cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
#line 854 "sql.y"
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
...
@@ -3567,22 +4165,28 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3567,22 +4165,28 @@ static YYACTIONTYPE yy_reduce(
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
NULL
,
K
,
TSDB_ALTER_TABLE_DROP_COLUMN
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
NULL
,
K
,
TSDB_ALTER_TABLE_DROP_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
#line 4168 "sql.c"
break
;
break
;
case
285
:
/* cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
case
285
:
/* cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
#line 864 "sql.y"
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_ALTER_TABLE_CHANGE_COLUMN
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_ALTER_TABLE_CHANGE_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
#line 4177 "sql.c"
break
;
break
;
case
286
:
/* cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
case
286
:
/* cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
#line 871 "sql.y"
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_ALTER_TABLE_ADD_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
#line 4186 "sql.c"
break
;
break
;
case
287
:
/* cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
case
287
:
/* cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
#line 876 "sql.y"
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
...
@@ -3592,8 +4196,10 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3592,8 +4196,10 @@ static YYACTIONTYPE yy_reduce(
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_DROP_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_DROP_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
#line 4199 "sql.c"
break
;
break
;
case
288
:
/* cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
case
288
:
/* cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
#line 886 "sql.y"
{
{
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
yymsp
[
-
5
].
minor
.
yy0
.
n
+=
yymsp
[
-
4
].
minor
.
yy0
.
n
;
...
@@ -3606,8 +4212,10 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3606,8 +4212,10 @@ static YYACTIONTYPE yy_reduce(
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
5
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_CHANGE_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
5
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_CHANGE_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
#line 4215 "sql.c"
break
;
break
;
case
289
:
/* cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */
case
289
:
/* cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */
#line 899 "sql.y"
{
{
yymsp
[
-
6
].
minor
.
yy0
.
n
+=
yymsp
[
-
5
].
minor
.
yy0
.
n
;
yymsp
[
-
6
].
minor
.
yy0
.
n
+=
yymsp
[
-
5
].
minor
.
yy0
.
n
;
...
@@ -3618,22 +4226,31 @@ static YYACTIONTYPE yy_reduce(
...
@@ -3618,22 +4226,31 @@ static YYACTIONTYPE yy_reduce(
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
6
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_UPDATE_TAG_VAL
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
6
].
minor
.
yy0
,
NULL
,
A
,
TSDB_ALTER_TABLE_UPDATE_TAG_VAL
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
#line 4229 "sql.c"
break
;
break
;
case
290
:
/* cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
case
290
:
/* cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
#line 910 "sql.y"
{
{
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
yymsp
[
-
4
].
minor
.
yy0
.
n
+=
yymsp
[
-
3
].
minor
.
yy0
.
n
;
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
SAlterTableInfo
*
pAlterTable
=
tSetAlterTableInfo
(
&
yymsp
[
-
4
].
minor
.
yy0
,
yymsp
[
0
].
minor
.
yy421
,
NULL
,
TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN
,
TSDB_SUPER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
setSqlInfo
(
pInfo
,
pAlterTable
,
NULL
,
TSDB_SQL_ALTER_TABLE
);
}
}
#line 4238 "sql.c"
break
;
break
;
case
291
:
/* cmd ::= KILL CONNECTION INTEGER */
case
291
:
/* cmd ::= KILL CONNECTION INTEGER */
#line 917 "sql.y"
{
setKillSql
(
pInfo
,
TSDB_SQL_KILL_CONNECTION
,
&
yymsp
[
0
].
minor
.
yy0
);}
{
setKillSql
(
pInfo
,
TSDB_SQL_KILL_CONNECTION
,
&
yymsp
[
0
].
minor
.
yy0
);}
#line 4243 "sql.c"
break
;
break
;
case
292
:
/* cmd ::= KILL STREAM INTEGER COLON INTEGER */
case
292
:
/* cmd ::= KILL STREAM INTEGER COLON INTEGER */
#line 918 "sql.y"
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
+
yymsp
[
0
].
minor
.
yy0
.
n
);
setKillSql
(
pInfo
,
TSDB_SQL_KILL_STREAM
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
+
yymsp
[
0
].
minor
.
yy0
.
n
);
setKillSql
(
pInfo
,
TSDB_SQL_KILL_STREAM
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
#line 4248 "sql.c"
break
;
break
;
case
293
:
/* cmd ::= KILL QUERY INTEGER COLON INTEGER */
case
293
:
/* cmd ::= KILL QUERY INTEGER COLON INTEGER */
#line 919 "sql.y"
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
+
yymsp
[
0
].
minor
.
yy0
.
n
);
setKillSql
(
pInfo
,
TSDB_SQL_KILL_QUERY
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
{
yymsp
[
-
2
].
minor
.
yy0
.
n
+=
(
yymsp
[
-
1
].
minor
.
yy0
.
n
+
yymsp
[
0
].
minor
.
yy0
.
n
);
setKillSql
(
pInfo
,
TSDB_SQL_KILL_QUERY
,
&
yymsp
[
-
2
].
minor
.
yy0
);}
#line 4253 "sql.c"
break
;
break
;
default:
default:
break
;
break
;
...
@@ -3695,6 +4312,7 @@ static void yy_syntax_error(
...
@@ -3695,6 +4312,7 @@ static void yy_syntax_error(
ParseCTX_FETCH
ParseCTX_FETCH
#define TOKEN yyminor
#define TOKEN yyminor
/************ Begin %syntax_error code ****************************************/
/************ Begin %syntax_error code ****************************************/
#line 37 "sql.y"
pInfo
->
valid
=
false
;
pInfo
->
valid
=
false
;
int32_t
outputBufLen
=
tListLen
(
pInfo
->
msg
);
int32_t
outputBufLen
=
tListLen
(
pInfo
->
msg
);
...
@@ -3717,6 +4335,7 @@ static void yy_syntax_error(
...
@@ -3717,6 +4335,7 @@ static void yy_syntax_error(
}
}
assert
(
len
<=
outputBufLen
);
assert
(
len
<=
outputBufLen
);
#line 4338 "sql.c"
/************ End %syntax_error code ******************************************/
/************ End %syntax_error code ******************************************/
ParseARG_STORE
/* Suppress warning about unused %extra_argument variable */
ParseARG_STORE
/* Suppress warning about unused %extra_argument variable */
ParseCTX_STORE
ParseCTX_STORE
...
@@ -3742,7 +4361,8 @@ static void yy_accept(
...
@@ -3742,7 +4361,8 @@ static void yy_accept(
/* Here code is inserted which will be executed whenever the
/* Here code is inserted which will be executed whenever the
** parser accepts */
** parser accepts */
/*********** Begin %parse_accept code *****************************************/
/*********** Begin %parse_accept code *****************************************/
#line 61 "sql.y"
#line 4365 "sql.c"
/*********** End %parse_accept code *******************************************/
/*********** End %parse_accept code *******************************************/
ParseARG_STORE
/* Suppress warning about unused %extra_argument variable */
ParseARG_STORE
/* Suppress warning about unused %extra_argument variable */
ParseCTX_STORE
ParseCTX_STORE
...
@@ -3803,12 +4423,56 @@ void Parse(
...
@@ -3803,12 +4423,56 @@ void Parse(
}
}
#endif
#endif
do
{
while
(
1
){
/* Exit by "break" */
assert
(
yypParser
->
yytos
>=
yypParser
->
yystack
);
assert
(
yyact
==
yypParser
->
yytos
->
stateno
);
assert
(
yyact
==
yypParser
->
yytos
->
stateno
);
yyact
=
yy_find_shift_action
((
YYCODETYPE
)
yymajor
,
yyact
);
yyact
=
yy_find_shift_action
((
YYCODETYPE
)
yymajor
,
yyact
);
if
(
yyact
>=
YY_MIN_REDUCE
){
if
(
yyact
>=
YY_MIN_REDUCE
){
yyact
=
yy_reduce
(
yypParser
,
yyact
-
YY_MIN_REDUCE
,
yymajor
,
unsigned
int
yyruleno
=
yyact
-
YY_MIN_REDUCE
;
/* Reduce by this rule */
yyminor
ParseCTX_PARAM
);
assert
(
yyruleno
<
(
int
)(
sizeof
(
yyRuleName
)
/
sizeof
(
yyRuleName
[
0
]))
);
#ifndef NDEBUG
if
(
yyTraceFILE
){
int
yysize
=
yyRuleInfoNRhs
[
yyruleno
];
if
(
yysize
){
fprintf
(
yyTraceFILE
,
"%sReduce %d [%s]%s, pop back to state %d.
\n
"
,
yyTracePrompt
,
yyruleno
,
yyRuleName
[
yyruleno
],
yyruleno
<
YYNRULE_WITH_ACTION
?
""
:
" without external action"
,
yypParser
->
yytos
[
yysize
].
stateno
);
}
else
{
fprintf
(
yyTraceFILE
,
"%sReduce %d [%s]%s.
\n
"
,
yyTracePrompt
,
yyruleno
,
yyRuleName
[
yyruleno
],
yyruleno
<
YYNRULE_WITH_ACTION
?
""
:
" without external action"
);
}
}
#endif
/* NDEBUG */
/* Check that the stack is large enough to grow by a single entry
** if the RHS of the rule is empty. This ensures that there is room
** enough on the stack to push the LHS value */
if
(
yyRuleInfoNRhs
[
yyruleno
]
==
0
){
#ifdef YYTRACKMAXSTACKDEPTH
if
(
(
int
)(
yypParser
->
yytos
-
yypParser
->
yystack
)
>
yypParser
->
yyhwm
){
yypParser
->
yyhwm
++
;
assert
(
yypParser
->
yyhwm
==
(
int
)(
yypParser
->
yytos
-
yypParser
->
yystack
));
}
#endif
#if YYSTACKDEPTH>0
if
(
yypParser
->
yytos
>=
yypParser
->
yystackEnd
){
yyStackOverflow
(
yypParser
);
break
;
}
#else
if
(
yypParser
->
yytos
>=&
yypParser
->
yystack
[
yypParser
->
yystksz
-
1
]
){
if
(
yyGrowStack
(
yypParser
)
){
yyStackOverflow
(
yypParser
);
break
;
}
}
#endif
}
yyact
=
yy_reduce
(
yypParser
,
yyruleno
,
yymajor
,
yyminor
ParseCTX_PARAM
);
}
else
if
(
yyact
<=
YY_MAX_SHIFTREDUCE
){
}
else
if
(
yyact
<=
YY_MAX_SHIFTREDUCE
){
yy_shift
(
yypParser
,
yyact
,(
YYCODETYPE
)
yymajor
,
yyminor
);
yy_shift
(
yypParser
,
yyact
,(
YYCODETYPE
)
yymajor
,
yyminor
);
#ifndef YYNOERRORRECOVERY
#ifndef YYNOERRORRECOVERY
...
@@ -3864,14 +4528,13 @@ void Parse(
...
@@ -3864,14 +4528,13 @@ void Parse(
yy_destructor
(
yypParser
,
(
YYCODETYPE
)
yymajor
,
&
yyminorunion
);
yy_destructor
(
yypParser
,
(
YYCODETYPE
)
yymajor
,
&
yyminorunion
);
yymajor
=
YYNOCODE
;
yymajor
=
YYNOCODE
;
}
else
{
}
else
{
while
(
yypParser
->
yytos
>=
yypParser
->
yystack
while
(
yypParser
->
yytos
>
yypParser
->
yystack
){
&&
(
yyact
=
yy_find_reduce_action
(
yyact
=
yy_find_reduce_action
(
yypParser
->
yytos
->
stateno
,
yypParser
->
yytos
->
stateno
,
YYERRORSYMBOL
);
YYERRORSYMBOL
))
>
YY_MAX_SHIFTREDUCE
if
(
yyact
<=
YY_MAX_SHIFTREDUCE
)
break
;
){
yy_pop_parser_stack
(
yypParser
);
yy_pop_parser_stack
(
yypParser
);
}
}
if
(
yypParser
->
yytos
<
yypParser
->
yystack
||
yymajor
==
0
){
if
(
yypParser
->
yytos
<
=
yypParser
->
yystack
||
yymajor
==
0
){
yy_destructor
(
yypParser
,(
YYCODETYPE
)
yymajor
,
&
yyminorunion
);
yy_destructor
(
yypParser
,(
YYCODETYPE
)
yymajor
,
&
yyminorunion
);
yy_parse_failed
(
yypParser
);
yy_parse_failed
(
yypParser
);
#ifndef YYNOERRORRECOVERY
#ifndef YYNOERRORRECOVERY
...
@@ -3921,7 +4584,7 @@ void Parse(
...
@@ -3921,7 +4584,7 @@ void Parse(
break
;
break
;
#endif
#endif
}
}
}
while
(
yypParser
->
yytos
>
yypParser
->
yystack
);
}
#ifndef NDEBUG
#ifndef NDEBUG
if
(
yyTraceFILE
){
if
(
yyTraceFILE
){
yyStackEntry
*
i
;
yyStackEntry
*
i
;
...
...
src/tsdb/src/tsdbMemTable.c
浏览文件 @
c7c6bcee
...
@@ -647,7 +647,7 @@ static int tsdbScanAndConvertSubmitMsg(STsdbRepo *pRepo, SSubmitMsg *pMsg) {
...
@@ -647,7 +647,7 @@ static int tsdbScanAndConvertSubmitMsg(STsdbRepo *pRepo, SSubmitMsg *pMsg) {
TSKEY
now
=
taosGetTimestamp
(
pRepo
->
config
.
precision
);
TSKEY
now
=
taosGetTimestamp
(
pRepo
->
config
.
precision
);
TSKEY
minKey
=
now
-
tsTickPerDay
[
pRepo
->
config
.
precision
]
*
pRepo
->
config
.
keep
;
TSKEY
minKey
=
now
-
tsTickPerDay
[
pRepo
->
config
.
precision
]
*
pRepo
->
config
.
keep
;
TSKEY
maxKey
=
now
+
tsTickPerDay
[
pRepo
->
config
.
precision
]
*
pRepo
->
config
.
daysPerFile
;
TSKEY
maxKey
=
now
+
tsTickPerDay
[
pRepo
->
config
.
precision
]
*
pRepo
->
config
.
daysPerFile
;
terrno
=
TSDB_CODE_SUCCESS
;
terrno
=
TSDB_CODE_SUCCESS
;
pMsg
->
length
=
htonl
(
pMsg
->
length
);
pMsg
->
length
=
htonl
(
pMsg
->
length
);
pMsg
->
numOfBlocks
=
htonl
(
pMsg
->
numOfBlocks
);
pMsg
->
numOfBlocks
=
htonl
(
pMsg
->
numOfBlocks
);
...
...
src/util/src/tcompare.c
浏览文件 @
c7c6bcee
...
@@ -417,14 +417,20 @@ int32_t compareFindItemInSet(const void *pLeft, const void* pRight) {
...
@@ -417,14 +417,20 @@ int32_t compareFindItemInSet(const void *pLeft, const void* pRight) {
int32_t
compareWStrPatternComp
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
int32_t
compareWStrPatternComp
(
const
void
*
pLeft
,
const
void
*
pRight
)
{
SPatternCompareInfo
pInfo
=
{
'%'
,
'_'
};
SPatternCompareInfo
pInfo
=
{
'%'
,
'_'
};
size_t
size
=
varDataLen
(
pLeft
)
/
TSDB_NCHAR_SIZE
;
assert
(
varDataLen
(
pRight
)
<=
TSDB_MAX_FIELD_LEN
*
TSDB_NCHAR_SIZE
);
assert
(
varDataLen
(
pRight
)
<=
TSDB_MAX_FIELD_LEN
*
TSDB_NCHAR_SIZE
);
wchar_t
*
pattern
=
calloc
(
varDataLen
(
pRight
)
+
1
,
sizeof
(
wchar_t
));
wchar_t
*
pattern
=
calloc
(
varDataLen
(
pRight
)
+
1
,
sizeof
(
wchar_t
));
wchar_t
*
str
=
calloc
(
size
+
1
,
sizeof
(
wchar_t
));
memcpy
(
pattern
,
varDataVal
(
pRight
),
varDataLen
(
pRight
));
memcpy
(
pattern
,
varDataVal
(
pRight
),
varDataLen
(
pRight
));
memcpy
(
str
,
varDataVal
(
pLeft
),
size
*
sizeof
(
wchar_t
));
int32_t
ret
=
WCSPatternMatch
(
pattern
,
str
,
size
,
&
pInfo
);
int32_t
ret
=
WCSPatternMatch
(
pattern
,
varDataVal
(
pLeft
),
varDataLen
(
pLeft
)
/
TSDB_NCHAR_SIZE
,
&
pInfo
);
free
(
pattern
);
free
(
pattern
);
free
(
str
);
return
(
ret
==
TSDB_PATTERN_MATCH
)
?
0
:
1
;
return
(
ret
==
TSDB_PATTERN_MATCH
)
?
0
:
1
;
}
}
...
...
src/vnode/src/vnodeRead.c
浏览文件 @
c7c6bcee
...
@@ -20,6 +20,7 @@
...
@@ -20,6 +20,7 @@
#include "tglobal.h"
#include "tglobal.h"
#include "query.h"
#include "query.h"
#include "vnodeStatus.h"
#include "vnodeStatus.h"
#include "tgrant.h"
int32_t
vNumOfExistedQHandle
;
// current initialized and existed query handle in current dnode
int32_t
vNumOfExistedQHandle
;
// current initialized and existed query handle in current dnode
...
@@ -55,6 +56,11 @@ int32_t vnodeProcessRead(void *vparam, SVReadMsg *pRead) {
...
@@ -55,6 +56,11 @@ int32_t vnodeProcessRead(void *vparam, SVReadMsg *pRead) {
}
}
static
int32_t
vnodeCheckRead
(
SVnodeObj
*
pVnode
)
{
static
int32_t
vnodeCheckRead
(
SVnodeObj
*
pVnode
)
{
if
(
grantCheck
(
TSDB_GRANT_TIME
)
!=
TSDB_CODE_SUCCESS
)
{
vDebug
(
"vgId:%d, grant expired, refCount:%d pVnode:%p"
,
pVnode
->
vgId
,
pVnode
->
refCount
,
pVnode
);
return
TSDB_CODE_GRANT_EXPIRED
;
}
if
(
!
vnodeInReadyStatus
(
pVnode
))
{
if
(
!
vnodeInReadyStatus
(
pVnode
))
{
vDebug
(
"vgId:%d, vnode status is %s, refCount:%d pVnode:%p"
,
pVnode
->
vgId
,
vnodeStatus
[
pVnode
->
status
],
vDebug
(
"vgId:%d, vnode status is %s, refCount:%d pVnode:%p"
,
pVnode
->
vgId
,
vnodeStatus
[
pVnode
->
status
],
pVnode
->
refCount
,
pVnode
);
pVnode
->
refCount
,
pVnode
);
...
...
tests/pytest/dbmgmt/nanoSecondCheck.py
浏览文件 @
c7c6bcee
...
@@ -31,6 +31,7 @@ class TDTestCase:
...
@@ -31,6 +31,7 @@ class TDTestCase:
tdSql
.
prepare
()
tdSql
.
prepare
()
tdSql
.
execute
(
'reset query cache'
)
tdSql
.
execute
(
'reset query cache'
)
tdSql
.
execute
(
'drop database if exists db'
)
tdSql
.
execute
(
'drop database if exists db'
)
tdSql
.
error
(
'create database db keep 365000'
);
tdSql
.
execute
(
'create database db precision "ns";'
)
tdSql
.
execute
(
'create database db precision "ns";'
)
tdSql
.
query
(
'show databases;'
)
tdSql
.
query
(
'show databases;'
)
tdSql
.
checkData
(
0
,
16
,
'ns'
)
tdSql
.
checkData
(
0
,
16
,
'ns'
)
...
@@ -216,4 +217,4 @@ class TDTestCase:
...
@@ -216,4 +217,4 @@ class TDTestCase:
tdCases
.
addWindows
(
__file__
,
TDTestCase
())
tdCases
.
addWindows
(
__file__
,
TDTestCase
())
tdCases
.
addLinux
(
__file__
,
TDTestCase
())
tdCases
.
addLinux
(
__file__
,
TDTestCase
())
\ No newline at end of file
tests/pytest/functions/function_derivative.py
浏览文件 @
c7c6bcee
...
@@ -147,6 +147,9 @@ class TDTestCase:
...
@@ -147,6 +147,9 @@ class TDTestCase:
tdSql
.
error
(
"select derivative(col, 10s, 1) from stb group by id"
)
tdSql
.
error
(
"select derivative(col, 10s, 1) from stb group by id"
)
tdSql
.
error
(
"select derivative(col, 999ms, 1) from stb group by id"
)
tdSql
.
error
(
"select derivative(col, 999ms, 1) from stb group by id"
)
tdSql
.
error
(
"select derivative(col, 10s, 2) from stb group by id"
)
tdSql
.
error
(
"select derivative(col, 10s, 2) from stb group by id"
)
tdSql
.
error
(
"select derivative(col, -106752999999999922222d, 0) from stb group by tbname"
);
#overflow error
tdSql
.
error
(
"select derivative(col, 10y, 0) from stb group by tbname"
)
#TD-10399, DB error: syntax error near '10y, 0) from stb group by tbname;'
tdSql
.
error
(
"select derivative(col, -106752d, 0) from stb group by tbname"
)
#TD-10398 overflow tips
def
run
(
self
):
def
run
(
self
):
tdSql
.
prepare
()
tdSql
.
prepare
()
...
...
tests/pytest/query/queryRegex.py
浏览文件 @
c7c6bcee
...
@@ -29,18 +29,18 @@ class TDTestCase:
...
@@ -29,18 +29,18 @@ class TDTestCase:
print
(
"==============step1"
)
print
(
"==============step1"
)
##2021-09-17 For jira: https://jira.taosdata.com:18080/browse/TD-6585
##2021-09-17 For jira: https://jira.taosdata.com:18080/browse/TD-6585
tdSql
.
execute
(
tdSql
.
execute
(
"create stable if not exists stb_test(ts timestamp,c0 binary(32),c1 int
) tags(t0 binary(32
))"
"create stable if not exists stb_test(ts timestamp,c0 binary(32),c1 int
,c2 nchar(50)) tags(t0 binary(32),t1 nchar(50
))"
)
)
tdSql
.
execute
(
tdSql
.
execute
(
'create table if not exists stb_1 using stb_test tags("abcdefgasdfg12346")'
'create table if not exists stb_1 using stb_test tags("abcdefgasdfg12346"
,"涛思数据"
)'
)
)
tdLog
.
info
(
'insert into stb_1 values("2021-09-13 10:00:00.001","abcefdasdqwerxasdazx12345",15'
)
tdLog
.
info
(
'insert into stb_1 values("2021-09-13 10:00:00.001","abcefdasdqwerxasdazx12345",15
,"引擎一组"
'
)
tdSql
.
execute
(
'insert into stb_1 values("2021-09-13 10:00:00.002","abcefdasdqwerxasdazx12345",15)'
)
tdSql
.
execute
(
'insert into stb_1 values("2021-09-13 10:00:00.002","abcefdasdqwerxasdazx12345",15
,"引擎一组一号"
)'
)
tdSql
.
execute
(
'insert into stb_1 values("2021-09-13 10:00:00.003","aaaaafffwwqqxzz",16)'
)
tdSql
.
execute
(
'insert into stb_1 values("2021-09-13 10:00:00.003","aaaaafffwwqqxzz",16
,"引擎一组二号"
)'
)
tdSql
.
execute
(
'insert into stb_1 values("2021-09-13 10:00:00.004","fffwwqqxzz",17)'
)
tdSql
.
execute
(
'insert into stb_1 values("2021-09-13 10:00:00.004","fffwwqqxzz",17
,"涛涛思思"
)'
)
tdSql
.
execute
(
'insert into stb_1 values("2020-10-13 10:00:00.001","abcd
\\
\efgh",100)'
)
tdSql
.
execute
(
'insert into stb_1 values("2020-10-13 10:00:00.001","abcd
\\
\efgh",100
,"思涛思"
)'
)
tdSql
.
query
(
'select * from stb_test where tbname match "asd"'
)
tdSql
.
query
(
'select * from stb_test where tbname match "asd"'
)
tdSql
.
checkRows
(
0
)
tdSql
.
checkRows
(
0
)
...
@@ -98,6 +98,31 @@ class TDTestCase:
...
@@ -98,6 +98,31 @@ class TDTestCase:
tdSql
.
query
(
"select * from stb_1 where c0 nmatch '
\\\\
'"
)
tdSql
.
query
(
"select * from stb_1 where c0 nmatch '
\\\\
'"
)
tdSql
.
checkRows
(
3
)
tdSql
.
checkRows
(
3
)
#2021-10-20 for https://jira.taosdata.com:18080/browse/TD-10708
tdSql
.
query
(
'select * from stb_1 where c2 match "^涛"'
)
tdSql
.
checkRows
(
1
)
tdSql
.
query
(
'select * from stb_1 where c2 nmatch "^涛"'
)
tdSql
.
checkRows
(
3
)
tdSql
.
query
(
'select * from stb_1 where c2 match "号$"'
)
tdSql
.
checkRows
(
2
)
tdSql
.
query
(
'select * from stb_1 where c2 nmatch "号$"'
)
tdSql
.
checkRows
(
2
)
tdSql
.
query
(
'select * from stb_1 where c2 match "涛+思"'
)
tdSql
.
checkRows
(
2
)
tdSql
.
query
(
'select * from stb_1 where c2 nmatch "涛+思"'
)
tdSql
.
checkRows
(
2
)
tdSql
.
query
(
'select * from stb_1 where c2 match "涛*思"'
)
tdSql
.
checkRows
(
2
)
tdSql
.
query
(
'select * from stb_1 where c2 nmatch "涛*思"'
)
tdSql
.
checkRows
(
2
)
...
...
tests/script/general/compute/csum.sim
浏览文件 @
c7c6bcee
...
@@ -88,6 +88,18 @@ sql select csum(tbcol) as b from $tb where ts <= $ms interval(1m) -x step6
...
@@ -88,6 +88,18 @@ sql select csum(tbcol) as b from $tb where ts <= $ms interval(1m) -x step6
return -1
return -1
step6:
step6:
print =============== csum result overflow follow sum behavior
sql create table overflow(ts timestamp, c1 bigint)
sql insert into overflow values(now-1s, NULL)(now, 9223372036854775807)(now+1s, 9223372036854775807)
sql select csum(c1) from overflow
print $data00 , $data01, $data10, $data11
if $data01 != 9223372036854775807 then
return -1
endi
if $data11 != -2 then
return -1
endi
print =============== clear
print =============== clear
sql drop database $db
sql drop database $db
sql show databases
sql show databases
...
...
tests/script/general/parser/alter.sim
浏览文件 @
c7c6bcee
...
@@ -86,12 +86,13 @@ endi
...
@@ -86,12 +86,13 @@ endi
if $data07 != 11,12,13 then
if $data07 != 11,12,13 then
return -1
return -1
endi
endi
sql alter database $db keep 365000,365000,365000
sql_error alter database $db keep 365000,365000,365000
sql alter database $db keep 36500,36500,36500
sql show databases
sql show databases
if $rows != 1 then
if $rows != 1 then
return -1
return -1
endi
endi
if $data07 != 36500
0,365000,3650
00 then
if $data07 != 36500
,36500,365
00 then
return -1
return -1
endi
endi
...
...
tests/script/general/parser/alter__for_community_version.sim
浏览文件 @
c7c6bcee
...
@@ -79,15 +79,16 @@ endi
...
@@ -79,15 +79,16 @@ endi
if $data07 != 13 then
if $data07 != 13 then
return -1
return -1
endi
endi
sql alter database $db keep 36500
0
sql alter database $db keep 36500
sql show databases
sql show databases
if $rows != 1 then
if $rows != 1 then
return -1
return -1
endi
endi
if $data07 != 36500
0
then
if $data07 != 36500 then
return -1
return -1
endi
endi
sql_error alter database $db keep 365000
##### alter table test, simeplest case
##### alter table test, simeplest case
sql create table tb (ts timestamp, c1 int, c2 int, c3 int)
sql create table tb (ts timestamp, c1 int, c2 int, c3 int)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录