Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
哥们要飞
TDengine
提交
b7239469
T
TDengine
项目概览
哥们要飞
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b7239469
编写于
4月 10, 2020
作者:
S
slguan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TD-114] let replica 3 can create table
上级
ed2254db
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
39 addition
and
53 deletion
+39
-53
src/vnode/main/src/vnodeWrite.c
src/vnode/main/src/vnodeWrite.c
+39
-53
未找到文件。
src/vnode/main/src/vnodeWrite.c
浏览文件 @
b7239469
...
...
@@ -110,36 +110,27 @@ static int32_t vnodeProcessCreateTableMsg(SVnodeObj *pVnode, void *pCont, SRspRe
int32_t
code
=
0
;
dTrace
(
"pVnode:%p vgId:%d, table:%s, start to create"
,
pVnode
,
pVnode
->
vgId
,
pTable
->
tableId
);
pTable
->
numOfColumns
=
htons
(
pTable
->
numOfColumns
);
pTable
->
numOfTags
=
htons
(
pTable
->
numOfTags
);
pTable
->
sid
=
htonl
(
pTable
->
sid
);
pTable
->
sversion
=
htonl
(
pTable
->
sversion
);
pTable
->
tagDataLen
=
htonl
(
pTable
->
tagDataLen
);
pTable
->
sqlDataLen
=
htonl
(
pTable
->
sqlDataLen
);
pTable
->
uid
=
htobe64
(
pTable
->
uid
);
pTable
->
superTableUid
=
htobe64
(
pTable
->
superTableUid
);
pTable
->
createdTime
=
htobe64
(
pTable
->
createdTime
);
int16_t
numOfColumns
=
htons
(
pTable
->
numOfColumns
);
int16_t
numOfTags
=
htons
(
pTable
->
numOfTags
);
int32_t
sid
=
htonl
(
pTable
->
sid
);
uint64_t
uid
=
htobe64
(
pTable
->
uid
);
SSchema
*
pSchema
=
(
SSchema
*
)
pTable
->
data
;
int
totalCols
=
pTable
->
numOfColumns
+
pTable
->
numOfTags
;
for
(
int
i
=
0
;
i
<
totalCols
;
i
++
)
{
pSchema
[
i
].
colId
=
htons
(
pSchema
[
i
].
colId
);
pSchema
[
i
].
bytes
=
htons
(
pSchema
[
i
].
bytes
);
}
int32_t
totalCols
=
numOfColumns
+
numOfTags
;
STableCfg
tCfg
;
tsdbInitTableCfg
(
&
tCfg
,
pTable
->
tableType
,
pTable
->
uid
,
pTable
->
sid
);
tsdbInitTableCfg
(
&
tCfg
,
pTable
->
tableType
,
uid
,
sid
);
STSchema
*
pDestSchema
=
tdNewSchema
(
pTable
->
numOfColumns
);
for
(
int
i
=
0
;
i
<
pTable
->
numOfColumns
;
i
++
)
{
tdSchemaAppendCol
(
pDestSchema
,
pSchema
[
i
].
type
,
pSchema
[
i
].
colId
,
pSchema
[
i
].
bytes
);
STSchema
*
pDestSchema
=
tdNewSchema
(
numOfColumns
);
for
(
int
i
=
0
;
i
<
numOfColumns
;
i
++
)
{
tdSchemaAppendCol
(
pDestSchema
,
pSchema
[
i
].
type
,
htons
(
pSchema
[
i
].
colId
),
htons
(
pSchema
[
i
].
bytes
)
);
}
tsdbTableSetSchema
(
&
tCfg
,
pDestSchema
,
false
);
if
(
pTable
->
numOfTags
!=
0
)
{
STSchema
*
pDestTagSchema
=
tdNewSchema
(
pTable
->
numOfTags
);
for
(
int
i
=
pTable
->
numOfColumns
;
i
<
totalCols
;
i
++
)
{
tdSchemaAppendCol
(
pDestTagSchema
,
pSchema
[
i
].
type
,
pSchema
[
i
].
colId
,
pSchema
[
i
].
bytes
);
if
(
numOfTags
!=
0
)
{
STSchema
*
pDestTagSchema
=
tdNewSchema
(
numOfTags
);
for
(
int
i
=
numOfColumns
;
i
<
totalCols
;
i
++
)
{
tdSchemaAppendCol
(
pDestTagSchema
,
pSchema
[
i
].
type
,
htons
(
pSchema
[
i
].
colId
),
htons
(
pSchema
[
i
].
bytes
)
);
}
tsdbTableSetTagSchema
(
&
tCfg
,
pDestTagSchema
,
false
);
...
...
@@ -147,9 +138,9 @@ static int32_t vnodeProcessCreateTableMsg(SVnodeObj *pVnode, void *pCont, SRspRe
int
accumBytes
=
0
;
SDataRow
dataRow
=
tdNewDataRowFromSchema
(
pDestTagSchema
);
for
(
int
i
=
0
;
i
<
pTable
->
numOfTags
;
i
++
)
{
for
(
int
i
=
0
;
i
<
numOfTags
;
i
++
)
{
tdAppendColVal
(
dataRow
,
pTagData
+
accumBytes
,
pDestTagSchema
->
columns
+
i
);
accumBytes
+=
pSchema
[
i
+
pTable
->
numOfColumns
].
bytes
;
accumBytes
+=
htons
(
pSchema
[
i
+
numOfColumns
].
bytes
)
;
}
tsdbTableSetTagValue
(
&
tCfg
,
dataRow
,
false
);
}
...
...
@@ -183,51 +174,46 @@ static int32_t vnodeProcessAlterTableMsg(SVnodeObj *pVnode, void *pCont, SRspRet
int32_t
code
=
0
;
dTrace
(
"pVnode:%p vgId:%d, table:%s, start to alter"
,
pVnode
,
pVnode
->
vgId
,
pTable
->
tableId
);
pTable
->
numOfColumns
=
htons
(
pTable
->
numOfColumns
);
pTable
->
numOfTags
=
htons
(
pTable
->
numOfTags
);
pTable
->
sid
=
htonl
(
pTable
->
sid
);
pTable
->
sversion
=
htonl
(
pTable
->
sversion
);
pTable
->
tagDataLen
=
htonl
(
pTable
->
tagDataLen
);
pTable
->
sqlDataLen
=
htonl
(
pTable
->
sqlDataLen
);
pTable
->
uid
=
htobe64
(
pTable
->
uid
);
pTable
->
superTableUid
=
htobe64
(
pTable
->
superTableUid
);
pTable
->
createdTime
=
htobe64
(
pTable
->
createdTime
);
int16_t
numOfColumns
=
htons
(
pTable
->
numOfColumns
);
int16_t
numOfTags
=
htons
(
pTable
->
numOfTags
);
int32_t
sid
=
htonl
(
pTable
->
sid
);
uint64_t
uid
=
htobe64
(
pTable
->
uid
);
SSchema
*
pSchema
=
(
SSchema
*
)
pTable
->
data
;
int
totalCols
=
pTable
->
numOfColumns
+
pTable
->
numOfTags
;
for
(
int
i
=
0
;
i
<
totalCols
;
i
++
)
{
pSchema
[
i
].
colId
=
htons
(
pSchema
[
i
].
colId
);
pSchema
[
i
].
bytes
=
htons
(
pSchema
[
i
].
bytes
);
}
int32_t
totalCols
=
numOfColumns
+
numOfTags
;
STableCfg
tCfg
;
tsdbInitTableCfg
(
&
tCfg
,
pTable
->
tableType
,
pTable
->
uid
,
pTable
->
sid
);
tsdbInitTableCfg
(
&
tCfg
,
pTable
->
tableType
,
uid
,
sid
);
STSchema
*
pDestSchema
=
tdNewSchema
(
pTable
->
numOfColumns
);
for
(
int
i
=
0
;
i
<
pTable
->
numOfColumns
;
i
++
)
{
tdSchemaAppendCol
(
pDestSchema
,
pSchema
[
i
].
type
,
pSchema
[
i
].
colId
,
pSchema
[
i
].
bytes
);
STSchema
*
pDestSchema
=
tdNewSchema
(
numOfColumns
);
for
(
int
i
=
0
;
i
<
numOfColumns
;
i
++
)
{
tdSchemaAppendCol
(
pDestSchema
,
pSchema
[
i
].
type
,
htons
(
pSchema
[
i
].
colId
),
htons
(
pSchema
[
i
].
bytes
)
);
}
tsdbTableSetSchema
(
&
tCfg
,
pDestSchema
,
false
);
if
(
pTable
->
numOfTags
!=
0
)
{
STSchema
*
pDestTagSchema
=
tdNewSchema
(
pTable
->
numOfTags
);
for
(
int
i
=
pTable
->
numOfColumns
;
i
<
totalCols
;
i
++
)
{
tdSchemaAppendCol
(
pDestTagSchema
,
pSchema
[
i
].
type
,
pSchema
[
i
].
colId
,
pSchema
[
i
].
bytes
);
if
(
numOfTags
!=
0
)
{
STSchema
*
pDestTagSchema
=
tdNewSchema
(
numOfTags
);
for
(
int
i
=
numOfColumns
;
i
<
totalCols
;
i
++
)
{
tdSchemaAppendCol
(
pDestTagSchema
,
pSchema
[
i
].
type
,
htons
(
pSchema
[
i
].
colId
),
htons
(
pSchema
[
i
].
bytes
)
);
}
tsdbTableSetSchema
(
&
tCfg
,
pDestTagSchema
,
false
);
tsdbTableSet
Tag
Schema
(
&
tCfg
,
pDestTagSchema
,
false
);
char
*
pTagData
=
pTable
->
data
+
totalCols
*
sizeof
(
SSchema
);
int
accumBytes
=
0
;
SDataRow
dataRow
=
tdNewDataRowFromSchema
(
pDestTagSchema
);
for
(
int
i
=
0
;
i
<
pTable
->
numOfTags
;
i
++
)
{
for
(
int
i
=
0
;
i
<
numOfTags
;
i
++
)
{
tdAppendColVal
(
dataRow
,
pTagData
+
accumBytes
,
pDestTagSchema
->
columns
+
i
);
accumBytes
+=
pSchema
[
i
+
pTable
->
numOfColumns
].
bytes
;
accumBytes
+=
htons
(
pSchema
[
i
+
numOfColumns
].
bytes
)
;
}
tsdbTableSetTagValue
(
&
tCfg
,
dataRow
,
false
);
}
code
=
tsdbAlterTable
(
pVnode
->
tsdb
,
&
tCfg
);
void
*
pTsdb
=
vnodeGetTsdb
(
pVnode
);
code
=
tsdbAlterTable
(
pTsdb
,
&
tCfg
);
tfree
(
pDestSchema
);
dTrace
(
"pVnode:%p vgId:%d, table:%s, alter table result:%d"
,
pVnode
,
pVnode
->
vgId
,
pTable
->
tableId
,
code
);
return
code
;
...
...
@@ -238,7 +224,7 @@ static int32_t vnodeProcessDropStableMsg(SVnodeObj *pVnode, void *pCont, SRspRet
int32_t
code
=
0
;
dTrace
(
"pVnode:%p vgId:%d, stable:%s, start to drop"
,
pVnode
,
pVnode
->
vgId
,
pTable
->
tableId
);
pTable
->
uid
=
htobe64
(
pTable
->
uid
);
// int64_t
uid = htobe64(pTable->uid);
// TODO: drop stable in vvnode
//void *pTsdb = dnodeGetVnodeTsdb(pMsg->pVnode);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录