Rod Taylor <[EMAIL PROTECTED]> writes:
> It's the = operator that Slony adds for xxid comparisons. I didn't even
> think of changes Slony would have made.

> ssdb=# select * from pg_operator where oid = 716373;
>  oprname | oprnamespace | oprowner | oprkind | oprcanhash | oprleft | 
> oprright | oprresult | oprcom | oprnegate | oprlsortop | oprrsortop | 
> oprltcmpop | oprgtcmpop |    oprcode    | oprrest |  oprjoin
> ---------+--------------+----------+---------+------------+---------+----------+-----------+--------+-----------+------------+------------+------------+------------+---------------+---------+-----------
>  =       |         2200 |      588 | b       | t          |  716353 |   
> 716353 |        16 | 716373 |    716372 |     716371 |     716371 |     
> 716371 |     716369 | _ssrep.xxideq | eqsel   | eqjoinsel
> (1 row)

I think you need to have a word with the Slony boys.  They shouldn't be
marking the operator oprcanhash if they aren't providing a valid hash
opclass for the datatype.  Per the manual:

: To be marked HASHES, the join operator must appear in a hash index
: operator class. This is not enforced when you create the operator, since
: of course the referencing operator class couldn't exist yet. But
: attempts to use the operator in hash joins will fail at runtime if no
: such operator class exists. The system needs the operator class to find
: the data-type-specific hash function for the operator's input data
: type. Of course, you must also supply a suitable hash function before
: you can create the operator class.

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to