index support is NULL

From: Teodor Sigaev <teodor(at)sigaev(dot)ru>
To: Patches <pgsql-patches(at)postgresql(dot)org>
Subject: index support is NULL
Date: 2007-03-30 16:05:17
Message-ID: 460D353D.2080500@sigaev.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches

http://www.sigaev.ru/misc/indexnulls-0.8.gz

Initially patch was developed by Martijn van Oosterhout. But it's reworked and
support of searching NULLS to GiST too. Patch adds new column named amsearchnull
to pg_am. To recognize IS NULL clause ScanKey->sk_flags contains (SK_ISNULL &
SK_INDEXFINDNULL) and ScanKey->sk_strategy sets to InvalidStrategy. IS NOT NULL
isn't supported.

The patch was already suggested to community
(http://archives.postgresql.org/pgsql-patches/2006-12/msg00019.php
and http://archives.postgresql.org/pgsql-hackers/2007-02/msg01162.php) but the
single objection was:
http://archives.postgresql.org/pgsql-patches/2006-12/msg00028.php

Objection was about representing IS [NOT] NULL clause in SkanKey structure,
because it required to set strategy to BTEqualStrategyNumber, and Tom doubted
about needing of such support.

Now ScanKey->sk_strategy = InvalidStrategy and btree code transforms it to
BTEqualStrategyNumber in _bt_preprocess_keys(), btcostestimate knows that fact too.

GiST doesn't need to transform strategy - it looks at SK_INDEXFINDNULL only.

--
Teodor Sigaev E-mail: teodor(at)sigaev(dot)ru
WWW: http://www.sigaev.ru/

Responses

Browse pgsql-patches by date

  From Date Subject
Next Message Tom Lane 2007-03-30 16:18:55 Re: RESET SESSION
Previous Message Alvaro Herrera 2007-03-30 14:41:37 Re: DEALLOCATE ALL