Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
68d4a494
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
68d4a494
编写于
1月 25, 2021
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix data1.sim error
上级
ad67bdf1
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
60 addition
and
4 deletion
+60
-4
src/inc/tfs.h
src/inc/tfs.h
+1
-0
src/tfs/src/tfs.c
src/tfs/src/tfs.c
+23
-0
src/tsdb/src/tsdbFile.c
src/tsdb/src/tsdbFile.c
+36
-4
未找到文件。
src/inc/tfs.h
浏览文件 @
68d4a494
...
@@ -75,6 +75,7 @@ void tfsdirname(const TFILE *pf, char *dest);
...
@@ -75,6 +75,7 @@ void tfsdirname(const TFILE *pf, char *dest);
// DIR APIs ====================================
// DIR APIs ====================================
int
tfsMkdirAt
(
const
char
*
rname
,
int
level
,
int
id
);
int
tfsMkdirAt
(
const
char
*
rname
,
int
level
,
int
id
);
int
tfsMkdirRecurAt
(
const
char
*
rname
,
int
level
,
int
id
);
int
tfsMkdir
(
const
char
*
rname
);
int
tfsMkdir
(
const
char
*
rname
);
int
tfsRmdir
(
const
char
*
rname
);
int
tfsRmdir
(
const
char
*
rname
);
int
tfsRename
(
char
*
orname
,
char
*
nrname
);
int
tfsRename
(
char
*
orname
,
char
*
nrname
);
...
...
src/tfs/src/tfs.c
浏览文件 @
68d4a494
...
@@ -250,6 +250,29 @@ int tfsMkdirAt(const char *rname, int level, int id) {
...
@@ -250,6 +250,29 @@ int tfsMkdirAt(const char *rname, int level, int id) {
return
0
;
return
0
;
}
}
int
tfsMkdirRecurAt
(
const
char
*
rname
,
int
level
,
int
id
)
{
if
(
tfsMkdirAt
(
rname
,
level
,
id
)
<
0
)
{
if
(
errno
==
ENOENT
)
{
// Try to create upper
char
*
s
=
strdup
(
rname
);
if
(
tfsMkdirRecurAt
(
dirname
(
s
),
level
,
id
)
<
0
)
{
tfree
(
s
);
return
-
1
;
}
tfree
(
s
);
if
(
tfsMkdirAt
(
rname
,
level
,
id
)
<
0
)
{
return
-
1
;
}
}
else
{
return
-
1
;
}
}
return
0
;
}
int
tfsMkdir
(
const
char
*
rname
)
{
int
tfsMkdir
(
const
char
*
rname
)
{
for
(
int
level
=
0
;
level
<
TFS_NLEVEL
();
level
++
)
{
for
(
int
level
=
0
;
level
<
TFS_NLEVEL
();
level
++
)
{
STier
*
pTier
=
TFS_TIER_AT
(
level
);
STier
*
pTier
=
TFS_TIER_AT
(
level
);
...
...
src/tsdb/src/tsdbFile.c
浏览文件 @
68d4a494
...
@@ -108,11 +108,27 @@ int tsdbApplyMFileChange(SMFile *from, SMFile *to) {
...
@@ -108,11 +108,27 @@ int tsdbApplyMFileChange(SMFile *from, SMFile *to) {
int
tsdbCreateMFile
(
SMFile
*
pMFile
,
bool
updateHeader
)
{
int
tsdbCreateMFile
(
SMFile
*
pMFile
,
bool
updateHeader
)
{
ASSERT
(
pMFile
->
info
.
size
==
0
&&
pMFile
->
info
.
magic
==
TSDB_FILE_INIT_MAGIC
);
ASSERT
(
pMFile
->
info
.
size
==
0
&&
pMFile
->
info
.
magic
==
TSDB_FILE_INIT_MAGIC
);
pMFile
->
fd
=
open
(
TSDB_FILE_FULL_NAME
(
pMFile
),
O_WRONLY
|
O_CREAT
|
O_TRUNC
|
O_BINARY
,
0755
);
if
(
pMFile
->
fd
<
0
)
{
if
(
errno
==
ENOENT
)
{
// Try to create directory recursively
char
*
s
=
strdup
(
TFILE_REL_NAME
(
&
(
pMFile
->
f
)));
if
(
tfsMkdirRecurAt
(
dirname
(
s
),
TSDB_FILE_LEVEL
(
pMFile
),
TSDB_FILE_ID
(
pMFile
))
<
0
)
{
tfree
(
s
);
return
-
1
;
}
tfree
(
s
);
pMFile
->
fd
=
open
(
TSDB_FILE_FULL_NAME
(
pMFile
),
O_WRONLY
|
O_CREAT
|
O_TRUNC
|
O_BINARY
,
0755
);
pMFile
->
fd
=
open
(
TSDB_FILE_FULL_NAME
(
pMFile
),
O_WRONLY
|
O_CREAT
|
O_TRUNC
|
O_BINARY
,
0755
);
if
(
pMFile
->
fd
<
0
)
{
if
(
pMFile
->
fd
<
0
)
{
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
return
-
1
;
return
-
1
;
}
}
}
else
{
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
return
-
1
;
}
}
if
(
!
updateHeader
)
{
if
(
!
updateHeader
)
{
return
0
;
return
0
;
...
@@ -321,11 +337,27 @@ static void *tsdbDecodeSDFileEx(void *buf, SDFile *pDFile) {
...
@@ -321,11 +337,27 @@ static void *tsdbDecodeSDFileEx(void *buf, SDFile *pDFile) {
int
tsdbCreateDFile
(
SDFile
*
pDFile
,
bool
updateHeader
)
{
int
tsdbCreateDFile
(
SDFile
*
pDFile
,
bool
updateHeader
)
{
ASSERT
(
pDFile
->
info
.
size
==
0
&&
pDFile
->
info
.
magic
==
TSDB_FILE_INIT_MAGIC
);
ASSERT
(
pDFile
->
info
.
size
==
0
&&
pDFile
->
info
.
magic
==
TSDB_FILE_INIT_MAGIC
);
pDFile
->
fd
=
open
(
TSDB_FILE_FULL_NAME
(
pDFile
),
O_WRONLY
|
O_CREAT
|
O_TRUNC
|
O_BINARY
,
0755
);
if
(
pDFile
->
fd
<
0
)
{
if
(
errno
==
ENOENT
)
{
// Try to create directory recursively
char
*
s
=
strdup
(
TFILE_REL_NAME
(
&
(
pDFile
->
f
)));
if
(
tfsMkdirRecurAt
(
dirname
(
s
),
TSDB_FILE_LEVEL
(
pDFile
),
TSDB_FILE_ID
(
pDFile
))
<
0
)
{
tfree
(
s
);
return
-
1
;
}
tfree
(
s
);
pDFile
->
fd
=
open
(
TSDB_FILE_FULL_NAME
(
pDFile
),
O_WRONLY
|
O_CREAT
|
O_TRUNC
|
O_BINARY
,
0755
);
pDFile
->
fd
=
open
(
TSDB_FILE_FULL_NAME
(
pDFile
),
O_WRONLY
|
O_CREAT
|
O_TRUNC
|
O_BINARY
,
0755
);
if
(
pDFile
->
fd
<
0
)
{
if
(
pDFile
->
fd
<
0
)
{
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
return
-
1
;
return
-
1
;
}
}
}
else
{
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
return
-
1
;
}
}
if
(
!
updateHeader
)
{
if
(
!
updateHeader
)
{
return
0
;
return
0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录