diff --git a/src/rootserver/ob_ddl_service.cpp b/src/rootserver/ob_ddl_service.cpp index c030b577d2..cc2e98c741 100644 --- a/src/rootserver/ob_ddl_service.cpp +++ b/src/rootserver/ob_ddl_service.cpp @@ -6965,6 +6965,7 @@ int ObDDLService::fill_new_column_attributes( if (!is_oracle_mode() || alter_column_schema.is_set_default_) { new_column_schema.set_cur_default_value(alter_column_schema.get_cur_default_value()); } + new_column_schema.set_zero_fill(alter_column_schema.is_zero_fill()); new_column_schema.set_is_hidden(alter_column_schema.is_hidden()); new_column_schema.set_nullable(alter_column_schema.is_nullable()); new_column_schema.set_autoincrement(alter_column_schema.is_autoincrement()); diff --git a/src/sql/resolver/ddl/ob_alter_table_resolver.cpp b/src/sql/resolver/ddl/ob_alter_table_resolver.cpp index bceee9a5db..26edf40093 100644 --- a/src/sql/resolver/ddl/ob_alter_table_resolver.cpp +++ b/src/sql/resolver/ddl/ob_alter_table_resolver.cpp @@ -4676,6 +4676,10 @@ int ObAlterTableResolver::resolve_change_column(const ParseNode &node) && alter_column_schema.get_cur_default_value().is_null()) { ret = OB_ERR_PRIMARY_CANT_HAVE_NULL; LOG_USER_ERROR(OB_ERR_PRIMARY_CANT_HAVE_NULL); + } else if (0 != origin_col_schema->get_rowkey_position() + && alter_column_schema.is_set_nullable_) { + ret = OB_ERR_PRIMARY_CANT_HAVE_NULL; + LOG_WARN("can't set primary key nullable", K(ret)); } else if (ObGeometryType == origin_col_schema->get_data_type() && origin_col_schema->get_geo_type() != alter_column_schema.get_geo_type()) { ret = OB_NOT_SUPPORTED; @@ -4934,6 +4938,10 @@ int ObAlterTableResolver::resolve_modify_column(const ParseNode &node, && alter_column_schema.get_cur_default_value().is_null()) { ret = OB_ERR_PRIMARY_CANT_HAVE_NULL; LOG_USER_ERROR(OB_ERR_PRIMARY_CANT_HAVE_NULL); + } else if (0 != origin_col_schema->get_rowkey_position() + && alter_column_schema.is_set_nullable_) { + ret = OB_ERR_PRIMARY_CANT_HAVE_NULL; + LOG_WARN("can't set primary key nullable", K(ret)); } else if (ObGeometryType == origin_col_schema->get_data_type() && origin_col_schema->get_geo_type() != alter_column_schema.get_geo_type()) { ret = OB_NOT_SUPPORTED;