> constant in INP link is the value taken the next time the link is processed
Yes, this is the most sensible behavior.
> many record types explicitly check and so don't call dbGetLink() when plink->type==CONSTANT. Thus for this approach to work will require changes to the record types
This is true. However, I argue that this is benign for two reasons:
(1) Changes are only needed when and if it is desired that the record type in question make use of the proposed generalization. If no changes are made, the behavior does not differ from teh current one. So there is no pressing need for providers of external record types to adapt their code.
(2) The changes are simplifications: they eliminate a case distinction that is necessary to make now, but won't be in the future, instead will enable more functionality. The code becomes simpler and shorter and easier to maintain in the long run.
> constant in INP link is the value taken the next time the link is processed
Yes, this is the most sensible behavior.
> many record types explicitly check and so don't call dbGetLink() when plink-> type==CONSTANT. Thus for this approach to work will require changes to the record types
This is true. However, I argue that this is benign for two reasons:
(1) Changes are only needed when and if it is desired that the record type in question make use of the proposed generalization. If no changes are made, the behavior does not differ from teh current one. So there is no pressing need for providers of external record types to adapt their code.
(2) The changes are simplifications: they eliminate a case distinction that is necessary to make now, but won't be in the future, instead will enable more functionality. The code becomes simpler and shorter and easier to maintain in the long run.