Tue May 10 18:37:25 PDT 2005
- Previous message: [Slony1-general] Deferred triggers
- Next message: [Slony1-general] a question about EXECUTE SCRIPT
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
It appears the Slony xxid functions are claiming to be capable of hashing, but cannot actually do so. sdb=# explain select query_start, current_query from pg_locks join pg_stat_activity on pid = procpid where granted = true and transaction in (select transaction from pg_locks where granted = false); ERROR: could not find hash function for hash operator 716373 -------- Forwarded Message -------- From: Tom Lane <tgl at sss.pgh.pa.us> To: Rod Taylor <pg at rbt.ca> Cc: PostgreSQL Development <pgsql-hackers at postgresql.org> Subject: Re: [HACKERS] Hashagg planning bug (8.0.1) Date: Tue, 10 May 2005 13:17:56 -0400 Rod Taylor <pg at rbt.ca> 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 --
- Previous message: [Slony1-general] Deferred triggers
- Next message: [Slony1-general] a question about EXECUTE SCRIPT
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-general mailing list