[CP] fix information_schema.columns resolve column default failed
This commit is contained in:
@ -934,7 +934,10 @@ int ObInfoSchemaColumnsTable::fill_row_cells(const common::ObString &database_na
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ObArray<common::ObString> extended_type_info;
|
ObArray<common::ObString> extended_type_info;
|
||||||
if (OB_FAIL(column_item.default_value_.print_plain_str_literal(extended_type_info, buf, buf_len, pos))) {
|
const ObLengthSemantics default_length_semantics = session_->get_local_nls_length_semantics();
|
||||||
|
if (OB_FAIL(extended_type_info.assign(select_item.expr_->get_enum_set_values()))) {
|
||||||
|
SERVER_LOG(WARN, "failed to assign enum values", K(ret));
|
||||||
|
} else if (OB_FAIL(column_item.default_value_.print_plain_str_literal(extended_type_info, buf, buf_len, pos))) {
|
||||||
SERVER_LOG(WARN, "fail to print plain str literal", K(buf), K(buf_len), K(pos), K(ret));
|
SERVER_LOG(WARN, "fail to print plain str literal", K(buf), K(buf_len), K(pos), K(ret));
|
||||||
} else {
|
} else {
|
||||||
cells[cell_idx].set_varchar(ObString(static_cast<int32_t>(pos), buf));
|
cells[cell_idx].set_varchar(ObString(static_cast<int32_t>(pos), buf));
|
||||||
@ -1067,21 +1070,9 @@ int ObInfoSchemaColumnsTable::fill_row_cells(const common::ObString &database_na
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case COLUMN_TYPE: {
|
case COLUMN_TYPE: {
|
||||||
int64_t pos = 0;
|
|
||||||
const ObLengthSemantics default_length_semantics = session_->get_local_nls_length_semantics();
|
|
||||||
ObArray<common::ObString> extended_type_info;
|
|
||||||
if (OB_FAIL(get_type_str(column_attributes.result_type_.get_obj_meta(),
|
|
||||||
column_attributes.result_type_.get_accuracy(),
|
|
||||||
extended_type_info,
|
|
||||||
default_length_semantics,
|
|
||||||
pos))) {
|
|
||||||
SERVER_LOG(WARN,"fail to get column type str",K(ret), K(column_attributes.result_type_));
|
|
||||||
}
|
|
||||||
if (OB_SUCC(ret)) {
|
|
||||||
ObString type_val(column_type_str_len_, static_cast<int32_t>(strlen(column_type_str_)),column_type_str_);
|
ObString type_val(column_type_str_len_, static_cast<int32_t>(strlen(column_type_str_)),column_type_str_);
|
||||||
cells[cell_idx].set_varchar(type_val);
|
cells[cell_idx].set_varchar(type_val);
|
||||||
cells[cell_idx].set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
cells[cell_idx].set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case COLUMN_KEY: {
|
case COLUMN_KEY: {
|
||||||
|
|||||||
Reference in New Issue
Block a user