提交 366ee771 编写于 作者: S SanmuWangZJU 提交者: OB-robot

[OBCDC] support mark partition_column and generate_dep_column

上级 0d186e59
......@@ -35,7 +35,7 @@ obdevtools-gcc9-9.3.0-52022092914.el7.aarch64.rpm
obdevtools-llvm-11.0.1-312022092921.el7.aarch64.rpm
[tools-deps]
devdeps-oblogmsg-1.0-42022101823.el7.aarch64.rpm
devdeps-oblogmsg-1.0-52022113019.el7.aarch64.rpm
devdeps-rocksdb-6.22.1.1-52022100420.el7.aarch64.rpm
[test-utils]
......
......@@ -36,7 +36,7 @@ obdevtools-gcc9-9.3.0-52022092914.el7.x86_64.rpm
obdevtools-llvm-11.0.1-312022092921.el7.x86_64.rpm
[tools-deps]
devdeps-oblogmsg-1.0-42022101823.el7.x86_64.rpm
devdeps-oblogmsg-1.0-52022113019.el7.x86_64.rpm
devdeps-rocksdb-6.22.1.1-52022100420.el7.x86_64.rpm
[test-utils]
......
......@@ -35,7 +35,7 @@ obdevtools-gcc9-9.3.0-52022092914.el8.aarch64.rpm
obdevtools-llvm-11.0.1-312022092921.el8.aarch64.rpm
[tools-deps]
devdeps-oblogmsg-1.0-42022101823.el8.aarch64.rpm
devdeps-oblogmsg-1.0-52022113019.el8.aarch64.rpm
devdeps-rocksdb-6.22.1.1-52022100420.el8.aarch64.rpm
[test-utils]
......
......@@ -36,7 +36,7 @@ obdevtools-gcc9-9.3.0-52022092914.el8.x86_64.rpm
obdevtools-llvm-11.0.1-312022092921.el8.x86_64.rpm
[tools-deps]
devdeps-oblogmsg-1.0-42022101823.el8.x86_64.rpm
devdeps-oblogmsg-1.0-52022113019.el8.x86_64.rpm
devdeps-rocksdb-6.22.1.1-52022100420.el8.x86_64.rpm
[test-utils]
......
......@@ -795,11 +795,17 @@ int ObLogMetaManager::set_column_meta_(IColMeta *col_meta,
// the "length" of the BIT type is store in precision
col_meta->setLength(column_schema.get_data_precision());
} else {
// for types with valid length(string\enumset\rowid\json\raw\lob\geo),
// for types with valid length(string\enumset\rowid\json\raw\lob\geo),
// get_data_length returns the valid length, returns 0 for other types.
col_meta->setLength(column_schema.get_data_length());
}
if (column_schema.is_tbl_part_key_column()) {
col_meta->setPartitioned(true);
}
if (column_schema.has_generated_column_deps()) {
col_meta->setDependent(true);
}
col_meta->setName(column_schema.get_column_name());
col_meta->setType(static_cast<int>(mysql_type));
col_meta->setSigned(signed_flag);
......@@ -826,7 +832,9 @@ int ObLogMetaManager::set_column_meta_(IColMeta *col_meta,
"encoding", col_meta->getEncoding(),
"default", col_meta->getDefault(),
"isHiddenRowKey", col_meta->isHiddenRowKey(),
"isGeneratedColumn", col_meta->isGenerated());
"isGeneratedColumn", col_meta->isGenerated(),
"isPartitionColumn", col_meta->isPartitioned(),
"isGenerateDepColumn", col_meta->isDependent());
// Do not need
//col_meta->setLength(data_length);
......
......@@ -525,6 +525,8 @@ int ObBinlogRecordPrinter::output_data_file_column_data(IBinlogRecord *br,
const long col_data_length = col_meta ? col_meta->getLength(): 0;
bool is_generated_column = col_meta ? col_meta->isGenerated() : false;
bool is_hidden_row_key_column = col_meta ? col_meta->isHiddenRowKey() : false;
bool is_partition_column = col_meta ? col_meta->isPartitioned() : false;
bool is_generate_dep_column = col_meta ? col_meta->isDependent() : false;
bool is_lob = is_lob_type(ctype);
bool is_json = is_json_type(ctype);
std::string enum_set_values_str;
......@@ -540,11 +542,17 @@ int ObBinlogRecordPrinter::output_data_file_column_data(IBinlogRecord *br,
if (is_hidden_row_key_column) {
ROW_PRINTF(ptr, size, pos, ri, "[C%ld] column_is_hidden_rowkey:%d", column_index, is_hidden_row_key_column);
}
// print the length of varchar only in print detail mode,
if (is_partition_column) {
ROW_PRINTF(ptr, size, pos, ri, "[C%ld] column_is_partition_col:true", column_index);
}
if (is_generate_dep_column) {
ROW_PRINTF(ptr, size, pos, ri, "[C%ld] column_is_dep_col_of_gen_col:true", column_index);
}
// print the length of varchar only in print detail mode,
// because there have been many test cases with varchar type before the varchar length info is added into column meta
if (oceanbase::obmysql::MYSQL_TYPE_VAR_STRING == ctype || oceanbase::obmysql::MYSQL_TYPE_BIT == ctype) {
ROW_PRINTF(ptr, size, pos, ri, "[C%ld] column_define_length:%ld", column_index, col_data_length);
}
}
else if ((oceanbase::obmysql::MYSQL_TYPE_ENUM == ctype) || (oceanbase::obmysql::MYSQL_TYPE_SET == ctype)) {
const std::string delim = ",";
for (int i = 0; i < values_of_enum_set->size(); i++) {
......@@ -554,10 +562,10 @@ int ObBinlogRecordPrinter::output_data_file_column_data(IBinlogRecord *br,
}
}
ROW_PRINTF(ptr, size, pos, ri, "[C%ld] column_extend_info:%s", column_index, enum_set_values_str.c_str());
}
// print precision & scale only in print detail mode, becacuse INT in oracle mode is also a kind of NUMBER(DECIMAL)
// whose precision is 38 and scale is 0, more importantly, the default precision(-1, PRECISION_UNKNOWN_YET)
// and scale(-85, ORA_NUMBER_SCALE_UNKNOWN_YET) of NUMBER in oracle mode is confusing, so we decide not to
}
// print precision & scale only in print detail mode, becacuse INT in oracle mode is also a kind of NUMBER(DECIMAL)
// whose precision is 38 and scale is 0, more importantly, the default precision(-1, PRECISION_UNKNOWN_YET)
// and scale(-85, ORA_NUMBER_SCALE_UNKNOWN_YET) of NUMBER in oracle mode is confusing, so we decide not to
// modify test results for oracle mode temporarily for convenience and efficiency.
// TODO
else if ((oceanbase::obmysql::MYSQL_TYPE_DECIMAL == ctype) || (oceanbase::obmysql::MYSQL_TYPE_NEWDECIMAL == ctype)) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册