ERROR: ExecInitIndexScan - Mailing list pgsql-general

From Mauro Bartolomeoli
Subject ERROR: ExecInitIndexScan
Date
Msg-id XFMail.990326202649.mbarto@wind.home.it
Whole thread Raw
In response to Accessing records w/&  ("Jonathan A. Zdziarski" <jonz@netrail.net>)
List pgsql-general
I'm using Postgresql 6.3.2 on Linux RedHat 5.2.

I receive the following error when I send a specific query to Postgres:

ERROR: ExecInitIndexScan: both left and right op's are rel-vars

The query is:

select codice,descrizione,sub_titolo,
       immobili_per_zona.numero_annunci_immobili_vendita,coordinate
from zona,contiene_zona,immobili_per_zona
where codice_sotto_zona=codice and immobili_per_zona.codice_zona=
      codice_sotto_zona and codice_tipo_immobili=1 and
      immobili_per_zona.numero_annunci_immobili_vendita>0 and
      contiene_zona.codice_zona=31011 and speciale='f' and approvata='t';

The relevant tables are:

ZONA:

codice                           | int4 not null       PRIMARY KEY  |
descrizione                      | varchar() not null               |
immagine                         | varchar()                        |
sub_titolo                       | varchar() not null               |
cap                              | varchar()                        |
prefisso                         | varchar()                        |
numero_annunci_immobili_vendita  | int4 not null                    |
numero_annunci_immobili_affitto  | int4 not null                    |
numero_annunci_aziende_vendita   | int4 not null                    |
numero_annunci_aziende_affitto   | int4 not null                    |
numero_annunci_vacanze_affitto   | int4 not null                    |
principale                       | bool not null                    |
speciale                         | bool not null                    |
attiva                           | bool not null                    |
approvata                        | bool not null                    |

CONTIENE_ZONA:

codice_zona                      | int4 not null                    |
codice_sotto_zona                | int4 not null                    |
coordinate                       | text                             |
PRIMARY_KEY(codice_zona,codice_sotto_zona)

IMMOBILI_PER_ZONA:

codice_tipo_immobili             | int2 not null                    |
codice_zona                      | int4 not null                    |
numero_annunci_immobili_vendita  | int4 not null                    |
numero_annunci_immobili_affitto  | int4 not null                    |
PRIMARY_KEY(codice_tipo_immobili,codice_zona)

I also have the following indeces:

CREATE INDEX contiene_zona_skey1 on Contiene_Zona (Codice_sotto_zona);
CREATE INDEX contiene_zona_skey2 on Contiene_Zona (Codice_zona);
CREATE INDEX immobili_per_zona_skey1 on immobili_per_zona using hash
             (Codice_zona);

This is the EXPLAIN for the query:

Nested Loop  (cost=2.05 size=1 width=52)
  ->  Nested Loop  (cost=0.00 size=1 width=24)
        ->  Index Scan on immobili_per_zona  (cost=0.00 size=0 width=8)
        ->  Index Scan on contiene_zona  (cost=2.00 size=66 width=16)
  ->  Index Scan on zona  (cost=2.05 size=30555 width=28)

The error magically disappears if i drop the primary key index on
contiene_zona. Is there any way to mantain this index without obtaining
the error?
Is this corrected in 6.4.x? Any help appreciated.

---

------------------------------------
 Mauro Bartolomeoli
 e-mail: mbarto@novacomp.it
 ICQ#: 9602542
------------------------------------

pgsql-general by date:

Previous
From: Karl DeBisschop
Date:
Subject: Re: [GENERAL] using Oids to retrieve a row
Next
From: Fabrice Scemama
Date:
Subject: Re: info on people running postgre