Gena Gurchonok <gena@rt.mipt.ru> writes:
> CREATE INDEX "logs_id_key" on "logs" using hash ( "id" "int4_ops" );
> CREATE INDEX "logs_type_key" on "logs" using hash ( "type" "int4_ops" );
> CREATE INDEX "logs_dt_key" on "logs" using hash ( "dt" "timestamp_ops" );
> Sometimes it writes error message
> "NOTICE: Deadlock detected -- See the lock(l) manual page for a possible cause."
> and row of course is not inserted.
> If I drop all indices on this table then such notice is not appearing.
> But I need indices on this table.
Don't use hash indexes; use the default index type (btree). hash
indexes are subject to deadlock under concurrent insertions. Besides,
they do nothing that you can't do with a btree.
regards, tom lane