diff --git a/deps/init/oceanbase.el7.aarch64.deps b/deps/init/oceanbase.el7.aarch64.deps index 4a390918c3..c753242b1f 100644 --- a/deps/init/oceanbase.el7.aarch64.deps +++ b/deps/init/oceanbase.el7.aarch64.deps @@ -41,7 +41,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-52022113019.el7.aarch64.rpm +devdeps-oblogmsg-1.0-142024012415.el7.aarch64.rpm devdeps-rocksdb-6.22.1.1-52022100420.el7.aarch64.rpm obshell-4.2.2.0-122024022614.el7.aarch64.rpm target=community diff --git a/deps/init/oceanbase.el7.x86_64.deps b/deps/init/oceanbase.el7.x86_64.deps index 44fe6dbda2..5818410a86 100644 --- a/deps/init/oceanbase.el7.x86_64.deps +++ b/deps/init/oceanbase.el7.x86_64.deps @@ -44,7 +44,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-52022113019.el7.x86_64.rpm +devdeps-oblogmsg-1.0-142024012415.el7.x86_64.rpm devdeps-rocksdb-6.22.1.1-52022100420.el7.x86_64.rpm obshell-4.2.2.0-122024022614.el7.x86_64.rpm target=community diff --git a/deps/init/oceanbase.el8.aarch64.deps b/deps/init/oceanbase.el8.aarch64.deps index 3587856cd2..b09b247317 100644 --- a/deps/init/oceanbase.el8.aarch64.deps +++ b/deps/init/oceanbase.el8.aarch64.deps @@ -41,7 +41,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-52022113019.el8.aarch64.rpm +devdeps-oblogmsg-1.0-142024012415.el8.aarch64.rpm devdeps-rocksdb-6.22.1.1-52022100420.el8.aarch64.rpm obshell-4.2.2.0-122024022614.el8.aarch64.rpm target=community diff --git a/deps/init/oceanbase.el8.x86_64.deps b/deps/init/oceanbase.el8.x86_64.deps index d1606d6dbf..a83b0d271c 100644 --- a/deps/init/oceanbase.el8.x86_64.deps +++ b/deps/init/oceanbase.el8.x86_64.deps @@ -43,7 +43,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-52022113019.el8.x86_64.rpm +devdeps-oblogmsg-1.0-142024012415.el8.x86_64.rpm devdeps-rocksdb-6.22.1.1-52022100420.el8.x86_64.rpm obshell-4.2.2.0-122024022614.el8.x86_64.rpm target=community diff --git a/src/logservice/libobcdc/src/ob_cdc_msg_convert.h b/src/logservice/libobcdc/src/ob_cdc_msg_convert.h index 650d353f6b..dcc364a464 100644 --- a/src/logservice/libobcdc/src/ob_cdc_msg_convert.h +++ b/src/logservice/libobcdc/src/ob_cdc_msg_convert.h @@ -33,6 +33,10 @@ namespace liboblog #define IColMeta oceanbase::logmessage::IColMeta #define binlogBuf oceanbase::logmessage::BinLogBuf #define IStrArray oceanbase::logmessage::StrArray +#define drcmsg_field_types oceanbase::logmessage::logmsg_field_types +#define DRCMSG_TYPE_ORA_BINARY_FLOAT LOGMSG_TYPE_ORA_BINARY_FLOAT +#define DRCMSG_TYPE_ORA_BINARY_DOUBLE LOGMSG_TYPE_ORA_BINARY_DOUBLE +#define DRCMSG_TYPE_ORA_XML LOGMSG_TYPE_ORA_XML // method #define createBinlogRecord createLogRecord diff --git a/src/logservice/libobcdc/src/ob_log_meta_manager.cpp b/src/logservice/libobcdc/src/ob_log_meta_manager.cpp index 7ea14f011d..b4380b2515 100644 --- a/src/logservice/libobcdc/src/ob_log_meta_manager.cpp +++ b/src/logservice/libobcdc/src/ob_log_meta_manager.cpp @@ -1187,11 +1187,11 @@ int ObLogMetaManager::set_column_meta_( col_meta->setDependent(true); } col_meta->setName(column_schema.get_column_name()); - col_meta->setType(static_cast(mysql_type)); col_meta->setSigned(signed_flag); col_meta->setIsPK(column_schema.is_original_rowkey_column()); col_meta->setNotNull(! column_schema.is_nullable()); + set_column_type_(*col_meta, mysql_type); set_column_encoding_(col_type, column_schema.get_charset_type(), col_meta); if (column_schema.is_xmltype()) { @@ -1235,6 +1235,20 @@ int ObLogMetaManager::set_column_meta_( return ret; } +// convert column type for drcmsg and oblogmsg +void ObLogMetaManager::set_column_type_(IColMeta &col_meta, const obmysql::EMySQLFieldType &col_type) +{ + if (EMySQLFieldType::MYSQL_TYPE_ORA_BINARY_FLOAT == col_type) { + col_meta.setType(drcmsg_field_types::DRCMSG_TYPE_ORA_BINARY_FLOAT); + } else if (EMySQLFieldType::MYSQL_TYPE_ORA_BINARY_DOUBLE == col_type) { + col_meta.setType(drcmsg_field_types::DRCMSG_TYPE_ORA_BINARY_DOUBLE); + } else if (EMySQLFieldType::MYSQL_TYPE_ORA_XML == col_type) { + col_meta.setType(drcmsg_field_types::DRCMSG_TYPE_ORA_XML); + } else { + col_meta.setType(static_cast(col_type)); + } +} + template int ObLogMetaManager::set_primary_keys_(ITableMeta *table_meta, const TABLE_SCHEMA *table_schema, diff --git a/src/logservice/libobcdc/src/ob_log_meta_manager.h b/src/logservice/libobcdc/src/ob_log_meta_manager.h index 014db6ae31..c123eb2cc2 100644 --- a/src/logservice/libobcdc/src/ob_log_meta_manager.h +++ b/src/logservice/libobcdc/src/ob_log_meta_manager.h @@ -378,6 +378,7 @@ private: IColMeta *col_meta, const COLUMN_SCHEMA &column_schema, const TABLE_SCHEMA &table_schema); + void set_column_type_(IColMeta &col_meta, const obmysql::EMySQLFieldType &col_type); template int set_primary_keys_( ITableMeta *table_meta, diff --git a/src/logservice/libobcdc/src/ob_log_utils.cpp b/src/logservice/libobcdc/src/ob_log_utils.cpp index 6a3bc3960c..b5bd24992d 100644 --- a/src/logservice/libobcdc/src/ob_log_utils.cpp +++ b/src/logservice/libobcdc/src/ob_log_utils.cpp @@ -567,7 +567,15 @@ const char *get_ctype_string(int ctype) sc_type = "MYSQL_TYPE_OB_UROWID"; break; - case oceanbase::obmysql::MYSQL_TYPE_ORA_XML: + case drcmsg_field_types::DRCMSG_TYPE_ORA_BINARY_FLOAT: + sc_type = "MYSQL_TYPE_ORA_BINARY_FLOAT"; + break; + + case drcmsg_field_types::DRCMSG_TYPE_ORA_BINARY_DOUBLE: + sc_type = "MYSQL_TYPE_ORA_BINARY_DOUBLE"; + break; + + case drcmsg_field_types::DRCMSG_TYPE_ORA_XML: sc_type = "MYSQL_TYPE_ORA_XML"; break; @@ -611,7 +619,7 @@ bool is_geometry_type(const int ctype) bool is_xml_type(const int ctype) { - return (ctype == oceanbase::obmysql::MYSQL_TYPE_ORA_XML); + return (ctype == drcmsg_field_types::DRCMSG_TYPE_ORA_XML); } double get_delay_sec(const int64_t tstamp_ns) diff --git a/tools/upgrade/gen_upgrade_scripts.py b/tools/upgrade/gen_upgrade_scripts.py index 45420b3aa8..ad73ff8436 100755 --- a/tools/upgrade/gen_upgrade_scripts.py +++ b/tools/upgrade/gen_upgrade_scripts.py @@ -152,8 +152,9 @@ if __name__ == '__main__': upgrade_post_filename = 'upgrade_post.py' do_upgrade_pre_filename = 'do_upgrade_pre.py' do_upgrade_post_filename = 'do_upgrade_post.py' + obcdc_compatible_filename = 'gen_obcdc_compatiable_info.py' cur_filename = sys.argv[0][sys.argv[0].rfind(os.sep)+1:] - except_filter_filename_list = [cur_filename, upgrade_pre_filename, upgrade_post_filename] + except_filter_filename_list = [cur_filename, upgrade_pre_filename, upgrade_post_filename, obcdc_compatible_filename] file_splitter_line = '####====XXXX======######==== I am a splitter ====######======XXXX====####' sub_filename_line_prefix = '#filename:' sub_file_module_end_line = '#sub file module end'