Re: PANIC: unexpected hash relation size - Mailing list pgsql-general

From csaba
Subject Re: PANIC: unexpected hash relation size
Date
Msg-id 460D7F71.5000201@freemail.hu
Whole thread Raw
In response to Re: PANIC: unexpected hash relation size  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Tom Lane writes:
> Csaba Kalman <csaba818@freemail.hu> writes:
>> I frequently get this error message:
>> PANIC: unexpected hash relation size: X, should be Y
>> There is no specific point where I get this error, it can occur anytime
>> after a SELECT/INSERT/UPDATE. I've never got it after DELETE so far.
>
> AFAICS this should only happen in INSERT/UPDATE, since it must be coming
> from an attempt to insert an entry in a hash index.  What's the exact
> schema of this table including indexes?
>
>> Is it a bug, or I'm doing something wrong?
>
> It's a bug, but you've not provided enough information to let anyone
> reproduce or fix it.
>

Sorry for not being specific.

Here is the CREATE script of the table which is most likely to be one
source of the error. The last error happened after an insert into this
table.


CREATE TABLE munkalap (
     pk character(12) NOT NULL,
     statusz_pk character(12) NOT NULL,
     ugyfel_pk character(12) NOT NULL,
     ellenor_pk character(12),
     szamla_pk character(12),
     cim_pk character(12),
     napi_munka_pk character(12),
     vonalkod character varying(10),
     teljesites_datum date,
     archivalas_datum timestamp without time zone,
     visszavetel_megjegyzes character varying(600),
     nyomtatva bit(1) NOT NULL,
     csere_oka character varying(100),
     operator_pk_rogzitette character(12) NOT NULL,
     kapcsolat_nev character varying(100),
     kapcsolat_tel character varying(20),
     vizmero_tipus character(1),
     operator_megjegyzes character varying(600),
     kiszallas_napszak character(1),
     rogzites_datum timestamp without time zone,
     merok_szama smallint,
     merok_atmero character varying(50),
     visszavetel_idopont timestamp without time zone,
     leadhatosag_pk character(12),
     leadas_datum date,

     CONSTRAINT munkalap_tabla_pk PRIMARY KEY (pk),

     CONSTRAINT munkalap_cim_pk_fkey FOREIGN KEY (cim_pk)
         REFERENCES cim(pk),
     CONSTRAINT munkalap_ellenor_pk_fkey FOREIGN KEY (ellenor_pk)
         REFERENCES alkalmazott(pk) ON DELETE SET NULL,
     CONSTRAINT munkalap_leadhatosag_statusz_pk_fkey
         FOREIGN KEY (leadhatosag_pk)
         REFERENCES munkalap_leadhatosag_statusz(pk) ON DELETE RESTRICT,
     CONSTRAINT munkalap_napi_munka_pk_fkey FOREIGN KEY (napi_munka_pk)
         REFERENCES napi_munka(pk) ON DELETE SET NULL,
     CONSTRAINT munkalap_rogzito_fkey
         FOREIGN KEY (operator_pk_rogzitette)
         REFERENCES alkalmazott(pk),
     CONSTRAINT munkalap_statusz_pk_fkey FOREIGN KEY (statusz_pk)
         REFERENCES munkalap_statusz(pk),
     CONSTRAINT munkalap_szamla_pk_fkey FOREIGN KEY (szamla_pk)
         REFERENCES szamla(pk),
     CONSTRAINT munkalap_ugyfel_pk_fkey FOREIGN KEY (ugyfel_pk)
         REFERENCES ugyfel(pk)
);
CREATE INDEX munkalap_cim_pk_index ON munkalap
     USING btree (cim_pk);
CREATE INDEX munkalap_ellenor_pk_index ON munkalap
     USING btree (ellenor_pk);
CREATE INDEX munkalap_napi_munka_pk_index ON munkalap
     USING hash (napi_munka_pk);
CREATE INDEX munkalap_statusz_pk_index ON munkalap
     USING hash (statusz_pk);
CREATE INDEX munkalap_szamla_pk_index ON munkalap
     USING btree (szamla_pk);
CREATE INDEX munkalap_teljesites_index ON munkalap
     USING hash (teljesites_datum);
CREATE INDEX munkalap_ugyfel_pk_index ON munkalap
     USING btree (ugyfel_pk);


(Funny thing is, while copy-pasting this script, I noticed that I
created hash indexes. It was not my intention, I always use B-tree. I
must have accidentally clicked on hash when I was creating the indexes
with the wizard. Shame on me.
I did not understand why the error said unexpected _hash_ relation size,
because I was sure there are no hash indexes. I know hash index use is
discouraged. I'm going to check all my indexes, and correct these
mistakes if there are more.)

Anyway, I can't make a list of steps to reproduce the error. Once I
inserted 100000 rows and succeeded, but another time I inserted less
than a hundred (to an empty table) and I got the error.

Thanks,
Csaba



pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: PANIC: unexpected hash relation size
Next
From: Stephen Harris
Date:
Subject: Re: Slow sequential scans on one DB but not another; fragmentation?