From: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
To: alvherre@2ndquadrant.com
Cc: 9erthalion6@gmail.com
Cc: florisvannee@optiver.com
Cc: jesper.pedersen@redhat.com
Cc: david.rowley@2ndquadrant.com
Cc: thomas.munro@gmail.com
Cc: jtc331@gmail.com
Cc: rafia.pghackers@gmail.com
Cc: jeff.janes@gmail.com
Cc: pg@bowt.ie
Cc: tomas.vondra@2ndquadrant.com
Cc: thomas.munro@enterprisedb.com
Cc: bhushan.uparkar@gmail.com
Cc: pgsql-hackers@postgresql.org
Cc: a.korotkov@postgrespro.ru
Subject: Re: Index Skip Scan
Date: Tue, 24 Sep 2019 17:41:46 +0900 (Tokyo Standard Time)
Message-ID: <20190924.174146.159197618.horikyota.ntt@gmail.com> (raw)
In-Reply-To: <20190924.173547.226622711.horikyota.ntt@gmail.com>
References: <CA+q6zcV2Ti99RSOHsauppY2_JZ8zvWhUmN9NWo0R4xf6HL=Szg@mail.gmail.com>
<20190923020204.GA2781@alvherre.pgsql>
<20190924.173547.226622711.horikyota.ntt@gmail.com>
At Tue, 24 Sep 2019 17:35:47 +0900 (Tokyo Standard Time), Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote in <20190924.173547.226622711.horikyota.ntt@gmail.com>
> At Sun, 22 Sep 2019 23:02:04 -0300, Alvaro Herrera <alvherre@2ndquadrant.com> wrote in <20190923020204.GA2781@alvherre.pgsql>
> > On 2019-Sep-22, Dmitry Dolgov wrote:
> >
> > > > I think multiplying two ScanDirections to watch for a negative result is
> > > > pretty ugly:
> > >
> > > Probably, but the only alternative I see to check if directions are opposite is
> > > to check that directions come in pairs (back, forth), (forth, back). Is there
> > > an easier way?
> >
> > Maybe use the ^ operator?
>
> It's not a logical operator but a bitwise arithmetic operator,
> which cannot be used if the operands is guaranteed to be 0 or 1
> (in integer). In a-kind-of-standard, but hacky way, "(!a != !b)"
> works as desired since ! is a logical operator.
>
> Wouldn't we use (a && !b) || (!a && b)? Compiler will optimize it
> some good way.
Sorry, it's not a boolean. A tristate value. From the definition
(Back, NoMove, Forward) = (-1, 0, 1), (dir1 == -dir2) if
NoMovement did not exist. If it is not guranteed,
(dir1 != 0 && dir1 == -dir2) ?
regards.
--
Kyotaro Horiguchi
NTT Open Source Software Center
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: horikyota.ntt@gmail.com, alvherre@2ndquadrant.com, 9erthalion6@gmail.com, florisvannee@optiver.com, jesper.pedersen@redhat.com, david.rowley@2ndquadrant.com, thomas.munro@gmail.com, jtc331@gmail.com, rafia.pghackers@gmail.com, jeff.janes@gmail.com, pg@bowt.ie, tomas.vondra@2ndquadrant.com, thomas.munro@enterprisedb.com, bhushan.uparkar@gmail.com, a.korotkov@postgrespro.ru
Subject: Re: Index Skip Scan
In-Reply-To: <20190924.174146.159197618.horikyota.ntt@gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox