On Thu, 22 Aug 2024 09:10:52 +0200 Peter Eisentraut <pe...@eisentraut.org> wrote:
> On 22.08.24 08:15, Yugo Nagata wrote: > > On Thu, 22 Aug 2024 11:38:49 +0800 > > jian he <jian.universal...@gmail.com> wrote: > > > >> On Wed, Aug 21, 2024 at 4:57 PM Peter Eisentraut <pe...@eisentraut.org> > >> wrote: > >>> > >> > >> + /* > >> + * Cannot specify USING when altering type of a generated column, because > >> + * that would violate the generation expression. > >> + */ > >> + if (attTup->attgenerated && def->cooked_default) > >> + ereport(ERROR, > >> + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), > >> + errmsg("cannot specify USING when altering type of generated column"), > >> + errdetail("Column \"%s\" is a generated column.", colName))); > >> + > >> > >> errcode should be ERRCODE_FEATURE_NOT_SUPPORTED? > > > > > > Although ERRCODE_INVALID_TABLE_DEFINITION is used for en error on changing > > type of inherited column, I guess that is because it prevents from breaking > > consistency between inherited and inheriting tables as a result of the > > command. > > In this sense, maybe, ERRCODE_INVALID_COLUMN_DEFINITION is proper here, > > because > > this check is to prevent inconsistency between columns in a tuple. > > Yes, that was my thinking. I think of ERRCODE_FEATURE_NOT_SUPPORTED as > "we could add it in the future", but that does not seem to apply here. + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("cannot specify USING when altering type of generated column"), + errdetail("Column \"%s\" is a generated column.", colName))); Do you thnik ERRCODE_INVALID_TABLE_DEFINITION is more proper than ERRCODE_INVALID_COLUMN_DEFINITION in this case? Regards, Yugo Nagata -- Yugo NAGATA <nag...@sraoss.co.jp>