On 03/05/2018 08:34 PM, Tom Lane wrote: > Tomas Vondra <tomas.von...@2ndquadrant.com> writes: >> On 03/04/2018 09:46 PM, Tom Lane wrote: >>> Well, I think the existing bytea bug is a counterexample to that. If >>> someone were to repeat that mistake with, say, UUID, these tests would not >>> catch it, because none of them would exercise UUID-vs-something-else. >>> For that matter, your statement is false on its face, because even if >>> somebody tried to add say uuid-versus-int8, these tests would not catch >>> lack of support for that in convert_to_scalar unless the specific case of >>> uuid-versus-int8 were added to the tests. > >> I suspect we're simply having different expectations what the tests >> could/should protect against - my intention was to make sure someone >> does not break convert_to_scalar for the currently handled types. > > I concur that we could use better test coverage for the existing > code --- the coverage report is pretty bleak there. But I think we > could improve that just by testing with the existing operators. I do > not see much use in checking that unsupported cross-type cases fail > cleanly, because there isn't a practical way to have full coverage > for such a concern. >
Hmmm, OK. I'm sure we could improve the coverage of the file in general by using existing operators, no argument here. Obviously, that does not work for failure cases in convert_to_scalar(), because no existing operator can exercise those. I wouldn't call those cases 'unsupported' - they are pretty obviously supported, just meant to handle unknown user-defined data types. Admittedly, the operators in the tests were rather silly but I find them rather practical. In any case, thanks for the discussion! I now understand the reasoning why you did not commit the tests, at least. regards -- Tomas Vondra http://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services