It occurred to me to run the regression tests type_sanity and opr_sanity
over the contrib/isn code. (The easy way to do this is to copy the isn
install script into the regress/sql directory and then add it to
serial_schedule just before those two tests.) It turned up a couple
of moderately serious problems:
* There are a whole bunch of "shell" operators created; tryselect oid::regoperator from pg_operator where oprcode = 0;
after loading isn. I didn't track it down in detail, but it looked
like most or all of these come from dangling oprcom links, ie, there's
an operator that claims to have a commutator but you never supplied one.
This is very bad, because the planner *will* try to use those operators
given the right kind of query.
* There are hash opclasses for these datatypes but the corresponding
equality operators are not marked hashable. This is not quite as bad,
but should be fixed.
Please submit a patch that fixes these.
Note to hackers: it might be worth trying the same thing with the other
contrib modules; I don't have time right now though.
regards, tom lane