Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
6c64b760
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6c64b760
编写于
4月 03, 2023
作者:
G
Ganlin Zhao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: fix tsim crash on windows due to invalid input to strftime
上级
1a2a04b0
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
43 addition
and
11 deletion
+43
-11
source/common/src/tdatablock.c
source/common/src/tdatablock.c
+4
-1
source/common/src/ttime.c
source/common/src/ttime.c
+16
-4
source/libs/function/src/builtins.c
source/libs/function/src/builtins.c
+5
-2
source/libs/scalar/src/sclfunc.c
source/libs/scalar/src/sclfunc.c
+10
-2
utils/test/c/tmqSim.c
utils/test/c/tmqSim.c
+4
-1
utils/tsim/src/simExe.c
utils/tsim/src/simExe.c
+4
-1
未找到文件。
source/common/src/tdatablock.c
浏览文件 @
6c64b760
...
...
@@ -1864,7 +1864,10 @@ static char* formatTimestamp(char* buf, int64_t val, int precision) {
}
}
struct
tm
ptm
=
{
0
};
taosLocalTime
(
&
tt
,
&
ptm
);
if
(
taosLocalTime
(
&
tt
,
&
ptm
)
==
NULL
)
{
sprintf
(
buf
,
"NaN"
);
return
buf
;
}
size_t
pos
=
strftime
(
buf
,
35
,
"%Y-%m-%d %H:%M:%S"
,
&
ptm
);
if
(
precision
==
TSDB_TIME_PRECISION_NANO
)
{
...
...
source/common/src/ttime.c
浏览文件 @
6c64b760
...
...
@@ -867,13 +867,19 @@ const char* fmtts(int64_t ts) {
if
(
ts
>
-
62135625943
&&
ts
<
32503651200
)
{
time_t
t
=
(
time_t
)
ts
;
taosLocalTime
(
&
t
,
&
tm
);
if
(
taosLocalTime
(
&
t
,
&
tm
)
==
NULL
)
{
sprintf
(
buf
,
"NaN"
);
return
buf
;
}
pos
+=
strftime
(
buf
+
pos
,
sizeof
(
buf
),
"s=%Y-%m-%d %H:%M:%S"
,
&
tm
);
}
if
(
ts
>
-
62135625943000
&&
ts
<
32503651200000
)
{
time_t
t
=
(
time_t
)(
ts
/
1000
);
taosLocalTime
(
&
t
,
&
tm
);
if
(
taosLocalTime
(
&
t
,
&
tm
)
==
NULL
)
{
sprintf
(
buf
,
"NaN"
);
return
buf
;
}
if
(
pos
>
0
)
{
buf
[
pos
++
]
=
' '
;
buf
[
pos
++
]
=
'|'
;
...
...
@@ -885,7 +891,10 @@ const char* fmtts(int64_t ts) {
{
time_t
t
=
(
time_t
)(
ts
/
1000000
);
taosLocalTime
(
&
t
,
&
tm
);
if
(
taosLocalTime
(
&
t
,
&
tm
)
==
NULL
)
{
sprintf
(
buf
,
"NaN"
);
return
buf
;
}
if
(
pos
>
0
)
{
buf
[
pos
++
]
=
' '
;
buf
[
pos
++
]
=
'|'
;
...
...
@@ -937,7 +946,10 @@ void taosFormatUtcTime(char* buf, int32_t bufLen, int64_t t, int32_t precision)
ASSERT
(
false
);
}
taosLocalTime
(
&
quot
,
&
ptm
);
if
(
taosLocalTime
(
&
quot
,
&
ptm
)
==
NULL
)
{
sprintf
(
buf
,
"NaN"
);
return
;
}
int32_t
length
=
(
int32_t
)
strftime
(
ts
,
40
,
"%Y-%m-%dT%H:%M:%S"
,
&
ptm
);
length
+=
snprintf
(
ts
+
length
,
fractionLen
,
format
,
mod
);
length
+=
(
int32_t
)
strftime
(
ts
+
length
,
40
-
length
,
"%z"
,
&
ptm
);
...
...
source/libs/function/src/builtins.c
浏览文件 @
6c64b760
...
...
@@ -213,8 +213,11 @@ static int32_t addTimezoneParam(SNodeList* pList) {
char
buf
[
6
]
=
{
0
};
time_t
t
=
taosTime
(
NULL
);
struct
tm
tmInfo
;
taosLocalTime
(
&
t
,
&
tmInfo
);
strftime
(
buf
,
sizeof
(
buf
),
"%z"
,
&
tmInfo
);
if
(
taosLocalTime
(
&
t
,
&
tmInfo
)
==
NULL
)
{
sprintf
(
buf
,
"NaN"
);
}
else
{
strftime
(
buf
,
sizeof
(
buf
),
"%z"
,
&
tmInfo
);
}
int32_t
len
=
(
int32_t
)
strlen
(
buf
);
SValueNode
*
pVal
=
(
SValueNode
*
)
nodesMakeNode
(
QUERY_NODE_VALUE
);
...
...
source/libs/scalar/src/sclfunc.c
浏览文件 @
6c64b760
...
...
@@ -1067,9 +1067,16 @@ int32_t toISO8601Function(SScalarParam *pInput, int32_t inputNum, SScalarParam *
}
struct
tm
tmInfo
;
taosLocalTime
((
const
time_t
*
)
&
timeVal
,
&
tmInfo
);
int32_t
len
=
0
;
if
(
taosLocalTime
((
const
time_t
*
)
&
timeVal
,
&
tmInfo
)
==
NULL
)
{
sprintf
(
buf
,
"NaN"
);
len
=
(
int32_t
)
strlen
(
buf
);
goto
_end
;
}
strftime
(
buf
,
sizeof
(
buf
),
"%Y-%m-%dT%H:%M:%S"
,
&
tmInfo
);
int32_t
len
=
(
int32_t
)
strlen
(
buf
);
len
=
(
int32_t
)
strlen
(
buf
);
// add timezone string
if
(
tzLen
>
0
)
{
...
...
@@ -1103,6 +1110,7 @@ int32_t toISO8601Function(SScalarParam *pInput, int32_t inputNum, SScalarParam *
len
+=
fracLen
;
}
_end:
memmove
(
buf
+
VARSTR_HEADER_SIZE
,
buf
,
len
);
varDataSetLen
(
buf
,
len
);
...
...
utils/test/c/tmqSim.c
浏览文件 @
6c64b760
...
...
@@ -472,7 +472,10 @@ static char* shellFormatTimestamp(char* buf, int64_t val, int32_t precision) {
}
struct
tm
ptm
;
taosLocalTime
(
&
tt
,
&
ptm
);
if
(
taosLocalTime
(
&
tt
,
&
ptm
)
==
NULL
)
{
sprintf
(
tt
,
"NaN"
);
return
buf
;
}
size_t
pos
=
strftime
(
buf
,
35
,
"%Y-%m-%d %H:%M:%S"
,
&
ptm
);
if
(
precision
==
TSDB_TIME_PRECISION_NANO
)
{
...
...
utils/tsim/src/simExe.c
浏览文件 @
6c64b760
...
...
@@ -772,7 +772,10 @@ bool simExecuteNativeSqlCommand(SScript *script, char *rest, bool isSlow) {
tt
=
(
*
(
int64_t
*
)
row
[
i
])
/
1000000000
;
}
taosLocalTime
(
&
tt
,
&
tp
);
if
(
taosLocalTime
(
&
tt
,
&
tp
)
==
NULL
)
{
sprintf
(
timeStr
,
"NaN"
);
break
;
}
strftime
(
timeStr
,
64
,
"%y-%m-%d %H:%M:%S"
,
&
tp
);
if
(
precision
==
TSDB_TIME_PRECISION_MILLI
)
{
sprintf
(
value
,
"%s.%03d"
,
timeStr
,
(
int32_t
)(
*
((
int64_t
*
)
row
[
i
])
%
1000
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录