Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wmsofts
oblogmsg
提交
ea10d4b4
O
oblogmsg
项目概览
wmsofts
/
oblogmsg
与 Fork 源项目一致
Fork自
oceanbase / oblogmsg
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
oblogmsg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ea10d4b4
编写于
11月 30, 2022
作者:
自
自凡
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add flag used to mark partitioned dependent column
上级
b5406db2
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
56 addition
and
6 deletion
+56
-6
include/MetaInfo.h
include/MetaInfo.h
+4
-0
src/MetaInfo.cpp
src/MetaInfo.cpp
+26
-5
unittest/lrTest.cpp
unittest/lrTest.cpp
+16
-0
unittest/memoryleakTest.cpp
unittest/memoryleakTest.cpp
+10
-1
未找到文件。
include/MetaInfo.h
浏览文件 @
ea10d4b4
...
@@ -110,6 +110,10 @@ public:
...
@@ -110,6 +110,10 @@ public:
virtual
void
setGenerated
(
bool
Generated
);
virtual
void
setGenerated
(
bool
Generated
);
virtual
void
setHiddenRowKey
();
virtual
void
setHiddenRowKey
();
virtual
bool
isHiddenRowKey
();
virtual
bool
isHiddenRowKey
();
virtual
void
setPartitioned
();
virtual
bool
isPartitioned
();
virtual
void
setDependent
();
virtual
bool
isDependent
();
public:
public:
int
appendTo
(
std
::
string
&
s
);
int
appendTo
(
std
::
string
&
s
);
...
...
src/MetaInfo.cpp
浏览文件 @
ea10d4b4
...
@@ -142,6 +142,8 @@ public:
...
@@ -142,6 +142,8 @@ public:
};
};
#define COL_FLAG_GENERATED 0x01 // col is generated
#define COL_FLAG_GENERATED 0x01 // col is generated
#define COL_FLAG_HIDDEN_ROWKEY (0x01 << 1) // 0x02
#define COL_FLAG_HIDDEN_ROWKEY (0x01 << 1) // 0x02
#define COL_FLAG_PARTITIONED (0x01 << 2) // 0x04
#define COL_FLAG_DEPENDENT (0x01 << 3) // 0x08
// ---------------------ColMeta-----------------------
// ---------------------ColMeta-----------------------
struct
ColMetaHeader
{
struct
ColMetaHeader
{
uint32_t
m_nameOffset
;
uint32_t
m_nameOffset
;
...
@@ -406,7 +408,12 @@ void IColMeta::setFlag(unsigned char flag)
...
@@ -406,7 +408,12 @@ void IColMeta::setFlag(unsigned char flag)
}
}
void
IColMeta
::
setGenerated
(
bool
Generated
)
void
IColMeta
::
setGenerated
(
bool
Generated
)
{
{
if
(
Generated
)
{
m_col
->
m_colMetaHeader
->
m_flag
|=
COL_FLAG_GENERATED
;
m_col
->
m_colMetaHeader
->
m_flag
|=
COL_FLAG_GENERATED
;
}
else
{
// 0xffff - COL_FLAG_GENERATED to binary 0b11111110
m_col
->
m_colMetaHeader
->
m_flag
&=
(
0xffff
-
COL_FLAG_GENERATED
);
}
}
}
void
IColMeta
::
setHiddenRowKey
()
void
IColMeta
::
setHiddenRowKey
()
{
{
...
@@ -416,6 +423,22 @@ bool IColMeta::isHiddenRowKey()
...
@@ -416,6 +423,22 @@ bool IColMeta::isHiddenRowKey()
{
{
return
m_col
->
m_colMetaHeader
->
m_flag
&
COL_FLAG_HIDDEN_ROWKEY
;
return
m_col
->
m_colMetaHeader
->
m_flag
&
COL_FLAG_HIDDEN_ROWKEY
;
}
}
void
IColMeta
::
setPartitioned
()
{
m_col
->
m_colMetaHeader
->
m_flag
|=
COL_FLAG_PARTITIONED
;
}
bool
IColMeta
::
isPartitioned
()
{
return
m_col
->
m_colMetaHeader
->
m_flag
&
COL_FLAG_PARTITIONED
;
}
void
IColMeta
::
setDependent
()
{
m_col
->
m_colMetaHeader
->
m_flag
|=
COL_FLAG_DEPENDENT
;
}
bool
IColMeta
::
isDependent
()
{
return
m_col
->
m_colMetaHeader
->
m_flag
&
COL_FLAG_DEPENDENT
;
}
int
IColMeta
::
appendTo
(
std
::
string
&
s
)
int
IColMeta
::
appendTo
(
std
::
string
&
s
)
{
{
return
m_col
->
appendTo
(
s
);
return
m_col
->
appendTo
(
s
);
...
@@ -440,7 +463,6 @@ void IColMeta::setUserData(void* data)
...
@@ -440,7 +463,6 @@ void IColMeta::setUserData(void* data)
{
{
m_userData
=
data
;
m_userData
=
data
;
}
}
void
*
IColMeta
::
getUserData
()
void
*
IColMeta
::
getUserData
()
{
{
return
m_userData
;
return
m_userData
;
...
@@ -528,8 +550,7 @@ struct TableMetaInfo : public MetaInfo {
...
@@ -528,8 +550,7 @@ struct TableMetaInfo : public MetaInfo {
size_t
colCount
=
m_tblMetaHeader
->
m_colCount
;
size_t
colCount
=
m_tblMetaHeader
->
m_colCount
;
size_t
dataSize
=
m_tblMetaHeader
->
m_colsSize
;
size_t
dataSize
=
m_tblMetaHeader
->
m_colsSize
;
const
size_t
maxColCount
=
5120
;
const
size_t
maxColCount
=
5120
;
if
(
m_data
.
getRealSize
()
+
dataSize
>
size
||
if
(
m_data
.
getRealSize
()
+
dataSize
>
size
||
colCount
>
maxColCount
)
colCount
>
maxColCount
)
return
-
11
;
return
-
11
;
// parse col meta
// parse col meta
...
@@ -1678,7 +1699,7 @@ struct MetaDataCollectionInfo : public MetaInfo {
...
@@ -1678,7 +1699,7 @@ struct MetaDataCollectionInfo : public MetaInfo {
~
MetaDataCollectionInfo
()
~
MetaDataCollectionInfo
()
{
{
if
(
m_removePtr
)
if
(
m_removePtr
)
delete
[]
(
char
*
)
m_ptr
;
delete
[]
(
char
*
)
m_ptr
;
clear
();
clear
();
}
}
...
...
unittest/lrTest.cpp
浏览文件 @
ea10d4b4
...
@@ -39,7 +39,11 @@ IColMeta* createColMeta(const char* name, int type, int length)
...
@@ -39,7 +39,11 @@ IColMeta* createColMeta(const char* name, int type, int length)
colMeta
->
setNotNull
(
NN
);
colMeta
->
setNotNull
(
NN
);
colMeta
->
setDefault
(
DEF
);
colMeta
->
setDefault
(
DEF
);
colMeta
->
setEncoding
(
ENC
);
colMeta
->
setEncoding
(
ENC
);
colMeta
->
setGenerated
(
false
);
colMeta
->
setGenerated
(
true
);
colMeta
->
setGenerated
(
true
);
colMeta
->
setHiddenRowKey
();
colMeta
->
setPartitioned
();
colMeta
->
setDependent
();
colMeta
->
setOriginType
(
"varchar"
);
colMeta
->
setOriginType
(
"varchar"
);
colMeta
->
setPrecision
(
5
);
colMeta
->
setPrecision
(
5
);
colMeta
->
setScale
(
3
);
colMeta
->
setScale
(
3
);
...
@@ -351,6 +355,12 @@ TEST(LogRecordImpl, LogRecordImplAPI)
...
@@ -351,6 +355,12 @@ TEST(LogRecordImpl, LogRecordImplAPI)
ASSERT_EQ
(
12345
,
col_meta
->
getDecimals
());
ASSERT_EQ
(
12345
,
col_meta
->
getDecimals
());
bool
is_generated_column
=
col_meta
->
isGenerated
();
bool
is_generated_column
=
col_meta
->
isGenerated
();
ASSERT_TRUE
(
is_generated_column
);
ASSERT_TRUE
(
is_generated_column
);
bool
is_hidden_row_key
=
col_meta
->
isHiddenRowKey
();
ASSERT_TRUE
(
is_hidden_row_key
);
bool
is_partitioned_column
=
col_meta
->
isPartitioned
();
ASSERT_TRUE
(
is_partitioned_column
);
bool
is_dependent_column
=
col_meta
->
isDependent
();
ASSERT_TRUE
(
is_dependent_column
);
LogMsgFactory
::
destroy
(
table_meta
);
LogMsgFactory
::
destroy
(
table_meta
);
// 224
// 224
...
@@ -537,6 +547,12 @@ TEST(LogRecordImpl, LogRecordImplTestPKS1)
...
@@ -537,6 +547,12 @@ TEST(LogRecordImpl, LogRecordImplTestPKS1)
ASSERT_EQ
(
12345
,
col_meta
->
getDecimals
());
ASSERT_EQ
(
12345
,
col_meta
->
getDecimals
());
bool
is_generated_column
=
col_meta
->
isGenerated
();
bool
is_generated_column
=
col_meta
->
isGenerated
();
ASSERT_TRUE
(
is_generated_column
);
ASSERT_TRUE
(
is_generated_column
);
bool
is_hidden_row_key
=
col_meta
->
isHiddenRowKey
();
ASSERT_TRUE
(
is_hidden_row_key
);
bool
is_partitioned_column
=
col_meta
->
isPartitioned
();
ASSERT_TRUE
(
is_partitioned_column
);
bool
is_dependent_column
=
col_meta
->
isDependent
();
ASSERT_TRUE
(
is_dependent_column
);
// LogMsgFactory::destroy(table_meta);
// LogMsgFactory::destroy(table_meta);
}
}
...
...
unittest/memoryleakTest.cpp
浏览文件 @
ea10d4b4
...
@@ -36,7 +36,11 @@ IColMeta* createColMeta(const char* name, int type, int length)
...
@@ -36,7 +36,11 @@ IColMeta* createColMeta(const char* name, int type, int length)
colMeta
->
setNotNull
(
NN
);
colMeta
->
setNotNull
(
NN
);
colMeta
->
setDefault
(
DEF
);
colMeta
->
setDefault
(
DEF
);
colMeta
->
setEncoding
(
ENC
);
colMeta
->
setEncoding
(
ENC
);
colMeta
->
setGenerated
(
false
);
colMeta
->
setGenerated
(
true
);
colMeta
->
setGenerated
(
true
);
colMeta
->
setHiddenRowKey
();
colMeta
->
setPartitioned
();
colMeta
->
setDependent
();
colMeta
->
setOriginType
(
"varchar"
);
colMeta
->
setOriginType
(
"varchar"
);
colMeta
->
setPrecision
(
5
);
colMeta
->
setPrecision
(
5
);
colMeta
->
setScale
(
4
);
colMeta
->
setScale
(
4
);
...
@@ -146,7 +150,12 @@ void parseAndcheckRecord(LogRecordImpl& parser, const char* m, size_t msgSize)
...
@@ -146,7 +150,12 @@ void parseAndcheckRecord(LogRecordImpl& parser, const char* m, size_t msgSize)
ASSERT_EQ
(
12345
,
col_meta
->
getDecimals
());
ASSERT_EQ
(
12345
,
col_meta
->
getDecimals
());
bool
is_generated_column
=
col_meta
->
isGenerated
();
bool
is_generated_column
=
col_meta
->
isGenerated
();
ASSERT_TRUE
(
is_generated_column
);
ASSERT_TRUE
(
is_generated_column
);
bool
is_hidden_row_key
=
col_meta
->
isHiddenRowKey
();
ASSERT_TRUE
(
is_hidden_row_key
);
bool
is_partitioned_column
=
col_meta
->
isPartitioned
();
ASSERT_TRUE
(
is_partitioned_column
);
bool
is_dependent_column
=
col_meta
->
isDependent
();
ASSERT_TRUE
(
is_dependent_column
);
LogMsgFactory
::
destroy
(
table_meta
);
LogMsgFactory
::
destroy
(
table_meta
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录