fix oci pull meta bug

This commit is contained in:
obdev
2023-04-27 13:11:52 +00:00
committed by ob-robot
parent 6873db3200
commit ea5c70b38c
7 changed files with 12 additions and 9 deletions

View File

@ -8454,11 +8454,15 @@ int ObSchemaServiceSQLImpl::fetch_link_table_info(uint64_t tenant_id,
int32_t length = 0;
ObString column_name;
bool old_max_length = false;
if (OB_FAIL(result->get_col_meta(i, old_max_length, column_name, type, precision, scale, length))) {
ObAccuracy acc;
if (OB_FAIL(result->get_col_meta(i, old_max_length, column_name, type, acc))) {
LOG_WARN("failed to get column meta", K(i), K(old_max_length), K(ret));
} else if (OB_FAIL(column_schema.set_column_name(column_name))) {
LOG_WARN("failed to set column name", K(i), K(column_name), K(ret));
} else {
precision = acc.get_precision();
scale = acc.get_scale();
length = acc.get_length();
column_schema.set_table_id(tmp_table_schema.get_table_id());
column_schema.set_tenant_id(tenant_id);
column_schema.set_column_id(i + OB_END_RESERVED_COLUMN_ID_NUM);
@ -8466,6 +8470,7 @@ int ObSchemaServiceSQLImpl::fetch_link_table_info(uint64_t tenant_id,
column_schema.set_charset_type(ObCharset::charset_type_by_coll(column_schema.get_collation_type()));
column_schema.set_data_precision(precision);
column_schema.set_data_scale(scale);
LOG_DEBUG("schema service sql impl get DBLINK schema", K(column_schema), K(length));
if (need_desc && OB_ISNULL(desc_result) &&
(ObNCharType == column_schema.get_data_type() || ObNVarchar2Type == column_schema.get_data_type())) {
if (OB_FAIL(desc_sql.append_fmt(desc_sql_str_fmt, database_name.length(), database_name.ptr(),