[CP] [CP] [OBCDC] upgrade drcmsg to v20240124, modify xml type_code in column_meta

This commit is contained in:
SanmuWangZJU
2024-02-28 04:44:45 +00:00
committed by ob-robot
parent 23717e281c
commit c43caa0570
9 changed files with 36 additions and 8 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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<int>(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<int>(col_type));
}
}
template<class TABLE_SCHEMA>
int ObLogMetaManager::set_primary_keys_(ITableMeta *table_meta,
const TABLE_SCHEMA *table_schema,

View File

@ -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<class TABLE_SCHEMA>
int set_primary_keys_(
ITableMeta *table_meta,

View File

@ -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)

View File

@ -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'