Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
205e79ad
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
205e79ad
编写于
6月 15, 2023
作者:
D
dapan1121
提交者:
GitHub
6月 15, 2023
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #21736 from taosdata/fix/TD-24790
fix: fix fill double type column with scalar expression error
上级
7f7c8079
4e2eeed4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
49 addition
and
4 deletion
+49
-4
source/libs/parser/src/parTranslater.c
source/libs/parser/src/parTranslater.c
+4
-4
tests/system-test/2-query/interp.py
tests/system-test/2-query/interp.py
+45
-0
未找到文件。
source/libs/parser/src/parTranslater.c
浏览文件 @
205e79ad
...
@@ -3075,13 +3075,13 @@ static bool needFill(SNode* pNode) {
...
@@ -3075,13 +3075,13 @@ static bool needFill(SNode* pNode) {
static
int32_t
convertFillValue
(
STranslateContext
*
pCxt
,
SDataType
dt
,
SNodeList
*
pValues
,
int32_t
index
)
{
static
int32_t
convertFillValue
(
STranslateContext
*
pCxt
,
SDataType
dt
,
SNodeList
*
pValues
,
int32_t
index
)
{
SListCell
*
pCell
=
nodesListGetCell
(
pValues
,
index
);
SListCell
*
pCell
=
nodesListGetCell
(
pValues
,
index
);
if
(
dataTypeEqual
(
&
dt
,
&
((
SExprNode
*
)
pCell
->
pNode
)
->
resType
))
{
if
(
dataTypeEqual
(
&
dt
,
&
((
SExprNode
*
)
pCell
->
pNode
)
->
resType
)
&&
(
QUERY_NODE_VALUE
==
nodeType
(
pCell
->
pNode
))
)
{
return
TSDB_CODE_SUCCESS
;
return
TSDB_CODE_SUCCESS
;
}
}
SNode
*
pCas
e
Func
=
NULL
;
SNode
*
pCas
t
Func
=
NULL
;
int32_t
code
=
createCastFunc
(
pCxt
,
pCell
->
pNode
,
dt
,
&
pCas
e
Func
);
int32_t
code
=
createCastFunc
(
pCxt
,
pCell
->
pNode
,
dt
,
&
pCas
t
Func
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
scalarCalculateConstants
(
pCas
e
Func
,
&
pCell
->
pNode
);
code
=
scalarCalculateConstants
(
pCas
t
Func
,
&
pCell
->
pNode
);
}
}
if
(
TSDB_CODE_SUCCESS
==
code
&&
QUERY_NODE_VALUE
!=
nodeType
(
pCell
->
pNode
))
{
if
(
TSDB_CODE_SUCCESS
==
code
&&
QUERY_NODE_VALUE
!=
nodeType
(
pCell
->
pNode
))
{
code
=
generateSyntaxErrMsgExt
(
&
pCxt
->
msgBuf
,
TSDB_CODE_PAR_WRONG_VALUE_TYPE
,
"Fill value can only accept constant"
);
code
=
generateSyntaxErrMsgExt
(
&
pCxt
->
msgBuf
,
TSDB_CODE_PAR_WRONG_VALUE_TYPE
,
"Fill value can only accept constant"
);
...
...
tests/system-test/2-query/interp.py
浏览文件 @
205e79ad
...
@@ -226,6 +226,7 @@ class TDTestCase:
...
@@ -226,6 +226,7 @@ class TDTestCase:
tdSql
.
checkData
(
3
,
0
,
12
)
tdSql
.
checkData
(
3
,
0
,
12
)
## test fill value with scalar expression
## test fill value with scalar expression
# data types
tdSql
.
query
(
f
"select interp(c0) from
{
dbname
}
.
{
tbname
}
range('2020-02-01 00:00:16', '2020-02-01 00:00:19') every(1s) fill(value, 1 + 2)"
)
tdSql
.
query
(
f
"select interp(c0) from
{
dbname
}
.
{
tbname
}
range('2020-02-01 00:00:16', '2020-02-01 00:00:19') every(1s) fill(value, 1 + 2)"
)
tdSql
.
checkRows
(
4
)
tdSql
.
checkRows
(
4
)
tdSql
.
checkData
(
0
,
0
,
3
)
tdSql
.
checkData
(
0
,
0
,
3
)
...
@@ -233,6 +234,49 @@ class TDTestCase:
...
@@ -233,6 +234,49 @@ class TDTestCase:
tdSql
.
checkData
(
2
,
0
,
3
)
tdSql
.
checkData
(
2
,
0
,
3
)
tdSql
.
checkData
(
3
,
0
,
3
)
tdSql
.
checkData
(
3
,
0
,
3
)
tdSql
.
query
(
f
"select interp(c1) from
{
dbname
}
.
{
tbname
}
range('2020-02-01 00:00:16', '2020-02-01 00:00:19') every(1s) fill(value, 1 + 2)"
)
tdSql
.
checkRows
(
4
)
tdSql
.
checkData
(
0
,
0
,
3
)
tdSql
.
checkData
(
1
,
0
,
3
)
tdSql
.
checkData
(
2
,
0
,
3
)
tdSql
.
checkData
(
3
,
0
,
3
)
tdSql
.
query
(
f
"select interp(c2) from
{
dbname
}
.
{
tbname
}
range('2020-02-01 00:00:16', '2020-02-01 00:00:19') every(1s) fill(value, 1 + 2)"
)
tdSql
.
checkRows
(
4
)
tdSql
.
checkData
(
0
,
0
,
3
)
tdSql
.
checkData
(
1
,
0
,
3
)
tdSql
.
checkData
(
2
,
0
,
3
)
tdSql
.
checkData
(
3
,
0
,
3
)
tdSql
.
query
(
f
"select interp(c3) from
{
dbname
}
.
{
tbname
}
range('2020-02-01 00:00:16', '2020-02-01 00:00:19') every(1s) fill(value, 1 + 2)"
)
tdSql
.
checkRows
(
4
)
tdSql
.
checkData
(
0
,
0
,
3
)
tdSql
.
checkData
(
1
,
0
,
3
)
tdSql
.
checkData
(
2
,
0
,
3
)
tdSql
.
checkData
(
3
,
0
,
3
)
tdSql
.
query
(
f
"select interp(c4) from
{
dbname
}
.
{
tbname
}
range('2020-02-01 00:00:16', '2020-02-01 00:00:19') every(1s) fill(value, 1 + 2)"
)
tdSql
.
checkRows
(
4
)
tdSql
.
checkData
(
0
,
0
,
3.0
)
tdSql
.
checkData
(
1
,
0
,
3.0
)
tdSql
.
checkData
(
2
,
0
,
3.0
)
tdSql
.
checkData
(
3
,
0
,
3.0
)
tdSql
.
query
(
f
"select interp(c5) from
{
dbname
}
.
{
tbname
}
range('2020-02-01 00:00:16', '2020-02-01 00:00:19') every(1s) fill(value, 1 + 2)"
)
tdSql
.
checkRows
(
4
)
tdSql
.
checkData
(
0
,
0
,
3.0
)
tdSql
.
checkData
(
1
,
0
,
3.0
)
tdSql
.
checkData
(
2
,
0
,
3.0
)
tdSql
.
checkData
(
3
,
0
,
3.0
)
tdSql
.
query
(
f
"select interp(c6) from
{
dbname
}
.
{
tbname
}
range('2020-02-01 00:00:16', '2020-02-01 00:00:19') every(1s) fill(value, 1 + 2)"
)
tdSql
.
checkRows
(
4
)
tdSql
.
checkData
(
0
,
0
,
True
)
tdSql
.
checkData
(
1
,
0
,
True
)
tdSql
.
checkData
(
2
,
0
,
True
)
tdSql
.
checkData
(
3
,
0
,
True
)
# expr types
tdSql
.
query
(
f
"select interp(c0) from
{
dbname
}
.
{
tbname
}
range('2020-02-01 00:00:16', '2020-02-01 00:00:19') every(1s) fill(value, 1.0 + 2.0)"
)
tdSql
.
query
(
f
"select interp(c0) from
{
dbname
}
.
{
tbname
}
range('2020-02-01 00:00:16', '2020-02-01 00:00:19') every(1s) fill(value, 1.0 + 2.0)"
)
tdSql
.
checkRows
(
4
)
tdSql
.
checkRows
(
4
)
tdSql
.
checkData
(
0
,
0
,
3
)
tdSql
.
checkData
(
0
,
0
,
3
)
...
@@ -275,6 +319,7 @@ class TDTestCase:
...
@@ -275,6 +319,7 @@ class TDTestCase:
tdSql
.
checkData
(
2
,
0
,
3
)
tdSql
.
checkData
(
2
,
0
,
3
)
tdSql
.
checkData
(
3
,
0
,
3
)
tdSql
.
checkData
(
3
,
0
,
3
)
tdLog
.
printNoPrefix
(
"==========step5:fill prev"
)
tdLog
.
printNoPrefix
(
"==========step5:fill prev"
)
## {. . .}
## {. . .}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录