From e87b329756923b9d2a34d8098480b6d606d146c8 Mon Sep 17 00:00:00 2001 From: JLY2015 <1623359870@qq.com> Date: Tue, 8 Oct 2024 14:15:59 +0000 Subject: [PATCH] [CP] [vector] fix vector/roaringbitmap column default length --- src/sql/resolver/ddl/ob_create_table_resolver.cpp | 7 +++++++ src/sql/resolver/ob_resolver_utils.cpp | 1 + 2 files changed, 8 insertions(+) diff --git a/src/sql/resolver/ddl/ob_create_table_resolver.cpp b/src/sql/resolver/ddl/ob_create_table_resolver.cpp index cd05701e2..db4a559d1 100644 --- a/src/sql/resolver/ddl/ob_create_table_resolver.cpp +++ b/src/sql/resolver/ddl/ob_create_table_resolver.cpp @@ -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)); } } diff --git a/src/sql/resolver/ob_resolver_utils.cpp b/src/sql/resolver/ob_resolver_utils.cpp index 43e5793bf..af5321d67 100644 --- a/src/sql/resolver/ob_resolver_utils.cpp +++ b/src/sql/resolver/ob_resolver_utils.cpp @@ -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) {