提交 06141699 编写于 作者: O obdev 提交者: wangzelin.wzl

fix ddl rule for generated column.

上级 6960485a
...@@ -6034,20 +6034,26 @@ int ObDDLService::check_generated_column_modify_authority( ...@@ -6034,20 +6034,26 @@ int ObDDLService::check_generated_column_modify_authority(
{ {
int ret = OB_SUCCESS; int ret = OB_SUCCESS;
if (old_column_schema.is_generated_column() && alter_column_schema.is_generated_column()) { if (old_column_schema.is_generated_column() && alter_column_schema.is_generated_column()) {
ObString old_def; if ((old_column_schema.is_virtual_generated_column() && alter_column_schema.is_virtual_generated_column())
ObString alter_def; || (old_column_schema.is_stored_generated_column() && alter_column_schema.is_stored_generated_column())) {
if (OB_FAIL(old_column_schema.get_cur_default_value().get_string(old_def))) { ObString old_def;
LOG_WARN("get old generated column definition failed", K(ret), K(old_column_schema)); ObString alter_def;
} else if (OB_FAIL(alter_column_schema.get_cur_default_value().get_string(alter_def))) { if (OB_FAIL(old_column_schema.get_cur_default_value().get_string(old_def))) {
LOG_WARN("get new generated column definition failed", K(ret), K(alter_column_schema)); LOG_WARN("get old generated column definition failed", K(ret), K(old_column_schema));
} else if (!ObCharset::case_insensitive_equal(old_def, alter_def)) { } else if (OB_FAIL(alter_column_schema.get_cur_default_value().get_string(alter_def))) {
ret = OB_NOT_SUPPORTED; LOG_WARN("get new generated column definition failed", K(ret), K(alter_column_schema));
LOG_USER_ERROR(OB_NOT_SUPPORTED, "Modify generated column definition"); } else if (!ObCharset::case_insensitive_equal(old_def, alter_def)) {
LOG_WARN("generated column schema definition changed", K(ret), K(old_column_schema), K(alter_column_schema)); ret = OB_NOT_SUPPORTED;
LOG_USER_ERROR(OB_NOT_SUPPORTED, "Modify generated column definition");
LOG_WARN("generated column schema definition changed", K(ret), K(old_column_schema), K(alter_column_schema));
}
} else {
ret = OB_ERR_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN;
LOG_USER_ERROR(OB_ERR_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN, "Changing the STORED status");
} }
} else if (old_column_schema.is_generated_column() || alter_column_schema.is_generated_column()) { } else if (old_column_schema.is_generated_column() || alter_column_schema.is_generated_column()) {
ret = OB_NOT_SUPPORTED; ret = OB_ERR_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN;
LOG_USER_ERROR(OB_NOT_SUPPORTED, "Changing the STORED status for generated columns"); LOG_USER_ERROR(OB_ERR_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN, "Changing the STORED status");
} }
return ret; return ret;
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册