diff --git a/deps/oblib/src/common/row/ob_row_store.cpp b/deps/oblib/src/common/row/ob_row_store.cpp index 6a3af7d997..5e47e7ec41 100644 --- a/deps/oblib/src/common/row/ob_row_store.cpp +++ b/deps/oblib/src/common/row/ob_row_store.cpp @@ -748,7 +748,7 @@ int ObRowStore::add_row_by_projector(const ObNewRow &row, break; // done } } // end while - if (3 < retry) { + if (OB_SUCC(ret) && 3 < retry) { ret = OB_ERR_UNEXPECTED; OB_LOG(ERROR, "unexpected branch"); } diff --git a/src/sql/resolver/ddl/ob_create_view_resolver.cpp b/src/sql/resolver/ddl/ob_create_view_resolver.cpp index 65fe23b625..5bec025b56 100644 --- a/src/sql/resolver/ddl/ob_create_view_resolver.cpp +++ b/src/sql/resolver/ddl/ob_create_view_resolver.cpp @@ -1225,9 +1225,7 @@ int ObCreateViewResolver::add_column_infos(const uint64_t tenant_id, int64_t cur_column_id = OB_APP_MIN_COLUMN_ID; uint64_t data_version = 0; share::schema::ObSchemaGetterGuard schema_guard; - if (OB_FAIL(GCTX.schema_service_->get_tenant_schema_guard(tenant_id, schema_guard))) { - LOG_WARN("fail to get schema guard", K(ret)); - } else if (OB_FAIL(GET_MIN_DATA_VERSION(tenant_id, data_version))) { + if (OB_FAIL(GET_MIN_DATA_VERSION(tenant_id, data_version))) { LOG_WARN("failed to get data version", K(ret)); } else if (data_version >= DATA_VERSION_4_1_0_0) { if (!column_list.empty() && OB_UNLIKELY(column_list.count() != select_items.count())) { @@ -1258,8 +1256,6 @@ int ObCreateViewResolver::add_column_infos(const uint64_t tenant_id, OB_FAIL(resolve_column_default_value(&select_stmt, select_item, column, alloc, session_info))) { // oracle mode has default expr value, not support now LOG_WARN("add column to table_schema failed", K(ret), K(column)); - } else if (OB_FAIL(resolve_columns_nullable_value(&select_stmt, select_item, column, alloc, session_info, &schema_guard))){ - LOG_WARN("failed to add column nullable info", K(ret)); } else if (OB_FAIL(table_schema.add_column(column))) { LOG_WARN("add column to table_schema failed", K(ret), K(column)); } else { @@ -1288,6 +1284,7 @@ int ObCreateViewResolver::fill_column_meta_infos(const ObRawExpr &expr, column.set_collation_type(expr.get_collation_type()); column.set_accuracy(expr.get_accuracy()); column.set_zero_fill(expr.get_result_type().has_result_flag(ZEROFILL_FLAG)); + column.set_nullable(expr.get_result_type().is_not_null_for_read() ? false : true); if (OB_FAIL(ret)) { } else if (column.is_enum_or_set() && OB_FAIL(column.set_extended_type_info(expr.get_enum_set_values()))) { LOG_WARN("set enum or set info failed", K(ret), K(expr));