> I'd suggest not arbitrarily erroring out when there is no need for
> a conversion, and not doing the cache lookup implied by typeidIsValid
> when it's not necessary to touch the type at all.  Hence, I'd recommend
> moving this down a few lines.  Also, conform to the surrounding coding
> style and add a comment:

Thanks for the advice.

>               /* don't know what to do for the input type? then quit... */
>               if (inputTypeId == InvalidOid)
>                       return false;
> 
> +             /* don't choke on references to no-longer-existing types */
> +             if (!typeidIsValid(inputTypeId))
> +                 return false;
> + 
> +             if (!typeidIsValid(targetTypeId))
> +                 return false;

I thought "typeidIsValid(targetTypeId) == false" is better than
"!typeidIsValid(targetTypeId)"?

> BTW, is this sufficient to prevent the VACUUM failure, or are there more
> problems downstream?

The patches fix the particular case. However I'm not sure there is no
lurking problem.
--
Tatsuo Ishii

Reply via email to