Adrian Schreyer <ams214(at)cam(dot)ac(dot)uk> writes:
> I have added a GIST operator class to a custom data type in
> PostgreSQL. The index returns the correct results and the build speed
> is fairly good as well. There is one problem however that is
> presumably linked to the picksplit function (?) - the query planner
> always returns half of all the rows in the table as (after vacuum)
> "Plan Rows".
Uh, no, picksplit is not where your problem is. You need to provide a
selectivity estimation function for your indexable operator. It sounds
like you don't have one at all, and restriction_selectivity() is
defaulting to 0.5.
regards, tom lane