Re: Index no longer being used, destroying and recreating it restores use. - Mailing list pgsql-general

From Michael Lewis
Subject Re: Index no longer being used, destroying and recreating it restores use.
Date
Msg-id CAHOFxGqAV58PYCtmZt6Kfcw-f44Nyf2KahtFGZL3OCAB8snS2g@mail.gmail.com
Whole thread Raw
In response to Re: Index no longer being used, destroying and recreating it restores use.  (Koen De Groote <kdg.dev@gmail.com>)
Responses Re: Index no longer being used, destroying and recreating it restores use.  (Koen De Groote <kdg.dev@gmail.com>)
List pgsql-general
On Tue, Jun 9, 2020 at 6:24 AM Koen De Groote <kdg.dev@gmail.com> wrote:
Right. In that case, the function I ended up with is this:

create or replace function still_needs_backup(bool, bool)
returns BOOLEAN as $$
BEGIN                
    PERFORM 1 from item where shouldbebackedup=$1 and backupperformed=$2;
      IF FOUND THEN
        RETURN TRUE;
      ELSE
        RETURN FALSE;
      END IF;
END;
$$
language plpgsql;

I meant something like the below (not tested)-

create or replace function still_needs_backup(shouldbebackedup bool, backupperformed bool)
returns BOOLEAN as $$
BEGIN
   return $1 AND NOT $2;
END;
$$
language sql;

CREATE INDEX CONCURRENTLY index_test ON item USING btree (itemCreated) WHERE still_needs_backup(shouldbebackedup, backupperformed);
ANALYZE item;

pgsql-general by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Move configuration files with pg_upgrade
Next
From: Bruce Momjian
Date:
Subject: Re: Should I enforce ssl/local socket use?