GiST, Not Using Index

From: Itai Zukerman <zukerman(at)math-hat(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: GiST, Not Using Index
Date: 2003-02-27 19:37:02
Message-ID: 87adghtt0h.fsf_-_@pip.dynamiclogic.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

I've defined this:

[...some definitions...]

CREATE OPERATOR CLASS sig_ops
FOR TYPE sig USING gist AS
OPERATOR 7 ~>=,
FUNCTION 1 g_sig_consistent (internal, internal, int2),
FUNCTION 2 g_sig_union (bytea, internal),
FUNCTION 3 g_sig_compress (internal),
FUNCTION 4 g_sig_decompress (internal),
FUNCTION 5 g_sig_penalty (internal, internal),
FUNCTION 6 g_sig_picksplit (bytea, internal),
FUNCTION 7 g_sig_same (internal, internal, internal);

CREATE TABLE x (z sig);
CREATE INDEX xx ON x USING gist (z sig_ops);

[...insert 20000 rows into x...]

VACUUM ANALYZE x;

But I can't seem to get PG to use the index. Shouldn't this "explain
verbose" at least attempt to check the cost of using the index? Am I
not interpreting the output correctly? What am I doing wrong?

# explain verbose
# select z from x where z ~>= sig_in('{1,2,3}'::int4[]);;

QUERY PLAN
--------------------------------------------------------------------------------
{ SEQSCAN
:startup_cost 0.00
:total_cost 2826.01
:rows 24334
:width 8
:qptargetlist (
{ TARGETENTRY
:resdom
{ RESDOM
:resno 1
:restype 1802511
:restypmod -1
:resname z
:reskey 0
:reskeyop 0
:ressortgroupref 0
:resjunk false
}

:expr
{ VAR
:varno 1
:varattno 2
:vartype 1802511
:vartypmod -1
:varlevelsup 0
:varnoold 1
:varoattno 2
}
}
)

:qpqual (
{ EXPR
:typeOid 16
:opType op
:oper
{ OPER
:opno 1836035
:opid 1802521
:opresulttype 16
:opretset false
}

:args (
{ VAR
:varno 1
:varattno 2
:vartype 1802511
:vartypmod -1
:varlevelsup 0
:varnoold 1
:varoattno 2
}

{ EXPR
:typeOid 1802511
:opType func
:oper
{ FUNC
:funcid 1802514
:funcresulttype 1802511
:funcretset false
:funcformat 0
}

:args (
{ CONST
:consttype 1007
:constlen -1
:constbyval false
:constisnull false
:constvalue 36 [ 36 0 0 0 1 0 0 0 0 0 0 0 23 0 0 0 3 0 0 0 1 0 0
0 1 0 0 0 2 0 0 0 3 0 0 0 ]
}
)
}
)
}
)

:lefttree <>
:righttree <>
:extprm ()

:locprm ()

:initplan <>
:nprm 0
:scanrelid 1
}

Seq Scan on x (cost=0.00..2826.01 rows=24334 width=8)
Filter: (z ~>= sig_in('{1,2,3}'::integer[]))
(94 rows)

--
Itai Zukerman <http://www.math-hat.com/~zukerman/>

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Dan Langille 2003-02-27 19:59:46 Re: Analyse article
Previous Message Dan Langille 2003-02-27 18:51:40 Analyse article