Fix ps prepare error 4016
This commit is contained in:
@ -6177,13 +6177,13 @@ int ObOptimizerUtil::try_add_cast_to_set_child_list(ObIAllocator *allocator,
|
||||
&& (ob_is_user_defined_sql_type(right_type.get_type()) || ob_is_user_defined_pl_type(right_type.get_type()))))) {
|
||||
// || (left_type.is_lob() && right_type.is_lob() && !is_distinct))) {
|
||||
// Originally, cases like "select clob from t union all select blob from t" return error
|
||||
if (session_info->is_ps_prepare_stage()) {
|
||||
if (session_info->is_varparams_sql_prepare()) {
|
||||
skip_add_cast = true;
|
||||
LOG_WARN("ps prepare stage expression has different datatype", K(i), K(left_type), K(right_type));
|
||||
} else {
|
||||
ret = OB_ERR_EXP_NEED_SAME_DATATYPE;
|
||||
LOG_WARN("expression must have same datatype as corresponding expression", K(ret),
|
||||
K(session_info->is_ps_prepare_stage()), K(right_type.is_varchar_or_char()),
|
||||
K(session_info->is_varparams_sql_prepare()), K(right_type.is_varchar_or_char()),
|
||||
K(i), K(left_type), K(right_type));
|
||||
}
|
||||
} else if (left_type.is_character_type()
|
||||
@ -6217,7 +6217,7 @@ int ObOptimizerUtil::try_add_cast_to_set_child_list(ObIAllocator *allocator,
|
||||
LOG_WARN("failed to get collation connection", K(ret));
|
||||
} else if (OB_FAIL(dummy_op.aggregate_result_type_for_merge(res_type, &types.at(0), 2,
|
||||
coll_type, is_oracle_mode(), length_semantics, session_info))) {
|
||||
if (session_info->is_ps_prepare_stage()) {
|
||||
if (session_info->is_varparams_sql_prepare()) {
|
||||
skip_add_cast = true;
|
||||
res_type = left_type;
|
||||
LOG_WARN("failed to deduce type in ps prepare stage", K(types));
|
||||
|
||||
Reference in New Issue
Block a user