[CP] [vector] fix vector/roaringbitmap column default length

This commit is contained in:
JLY2015 2024-10-08 14:15:59 +00:00 committed by ob-robot
parent cc6ad00897
commit e87b329756
2 changed files with 8 additions and 0 deletions

View File

@ -3664,6 +3664,13 @@ int ObCreateTableResolver::check_max_row_data_length(const ObTableSchema &table_
LOG_USER_ERROR(OB_ERR_TOO_LONG_COLUMN_LENGTH, column->get_column_name(),
ObAccuracy::MAX_ACCURACY2[is_oracle_mode][column->get_data_type()].get_length());
} else {
if (length <= 0) { // Temporary workaround only for array/vector/roaringbitmap types.
if (column->is_roaringbitmap()) {
length = ObAccuracy::DDL_DEFAULT_ACCURACY[ObRoaringBitmapType].get_length();
} else if (column->is_collection()) {
length = ObAccuracy::DDL_DEFAULT_ACCURACY[ObCollectionSQLType].get_length();
}
}
length = min(length, max(table_schema.get_lob_inrow_threshold(), OB_MAX_LOB_HANDLE_LENGTH));
}
}

View File

@ -6942,6 +6942,7 @@ int ObResolverUtils::resolve_data_type(const ParseNode &type_node,
break;
case ObCollectionSQLTC: {
uint64_t tenant_data_version = 0;
length = 0;
if (OB_FAIL(GET_MIN_DATA_VERSION(tenant_id, tenant_data_version))) {
LOG_WARN("get tenant data version failed", K(ret));
} else if (tenant_data_version < DATA_VERSION_4_3_3_0) {