From 1a315819c1896891d5316c9fc61a348eabebce4f Mon Sep 17 00:00:00 2001 From: SanmuWangZJU Date: Tue, 6 Dec 2022 12:05:51 +0000 Subject: [PATCH] [CP] [OBCDC] support mark partition_column and generate_dep_column --- deps/init/oceanbase.el7.aarch64.deps | 2 +- deps/init/oceanbase.el7.x86_64.deps | 2 +- deps/init/oceanbase.el8.aarch64.deps | 2 +- deps/init/oceanbase.el8.x86_64.deps | 2 +- src/logservice/libobcdc/src/ob_log_meta_manager.cpp | 10 +++++++++- .../libobcdc/tests/ob_binlog_record_printer.cpp | 8 ++++++++ 6 files changed, 21 insertions(+), 5 deletions(-) diff --git a/deps/init/oceanbase.el7.aarch64.deps b/deps/init/oceanbase.el7.aarch64.deps index f9a8187e0e..f3b0593d86 100644 --- a/deps/init/oceanbase.el7.aarch64.deps +++ b/deps/init/oceanbase.el7.aarch64.deps @@ -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] diff --git a/deps/init/oceanbase.el7.x86_64.deps b/deps/init/oceanbase.el7.x86_64.deps index d5e2a0c4d3..58e30c4daa 100644 --- a/deps/init/oceanbase.el7.x86_64.deps +++ b/deps/init/oceanbase.el7.x86_64.deps @@ -37,7 +37,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] diff --git a/deps/init/oceanbase.el8.aarch64.deps b/deps/init/oceanbase.el8.aarch64.deps index d10edb4e0e..f2d10cace5 100644 --- a/deps/init/oceanbase.el8.aarch64.deps +++ b/deps/init/oceanbase.el8.aarch64.deps @@ -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] diff --git a/deps/init/oceanbase.el8.x86_64.deps b/deps/init/oceanbase.el8.x86_64.deps index 1309fd1495..cfe7b0661a 100644 --- a/deps/init/oceanbase.el8.x86_64.deps +++ b/deps/init/oceanbase.el8.x86_64.deps @@ -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] diff --git a/src/logservice/libobcdc/src/ob_log_meta_manager.cpp b/src/logservice/libobcdc/src/ob_log_meta_manager.cpp index 7f6f196147..5c89e0c844 100644 --- a/src/logservice/libobcdc/src/ob_log_meta_manager.cpp +++ b/src/logservice/libobcdc/src/ob_log_meta_manager.cpp @@ -800,6 +800,12 @@ int ObLogMetaManager::set_column_meta_(IColMeta *col_meta, 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(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); diff --git a/src/logservice/libobcdc/tests/ob_binlog_record_printer.cpp b/src/logservice/libobcdc/tests/ob_binlog_record_printer.cpp index 0defad6ef3..490316b375 100644 --- a/src/logservice/libobcdc/tests/ob_binlog_record_printer.cpp +++ b/src/logservice/libobcdc/tests/ob_binlog_record_printer.cpp @@ -524,6 +524,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; @@ -539,6 +541,12 @@ 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); } + 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) { -- GitLab