From: | James Coleman <jtc331(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Teach predtest about IS [NOT] <boolean> proofs |
Date: | 2024-04-06 00:43:33 |
Message-ID: | CAAaqYe-s59GXnfEb-V39oBhp=W5zRDABn3Zk77vYOgZi8k+T6A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, Apr 1, 2024 at 8:06 AM James Coleman <jtc331(at)gmail(dot)com> wrote:
>
> On Mon, Mar 25, 2024 at 5:53 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> >
> > James Coleman <jtc331(at)gmail(dot)com> writes:
> > > [ v6 patchset ]
> >
> > I went ahead and committed 0001 after one more round of review
> >
> > statements; my bad). I also added the changes in test_predtest.c from
> > 0002. I attach a rebased version of 0002, as well as 0003 which isn't
> > changed, mainly to keep the cfbot happy.
> >
> > I'm still not happy with what you did in predicate_refuted_by_recurse:
> > it feels wrong and rather expensively so. There has to be a better
> > way. Maybe strong vs. weak isn't quite the right formulation for
> > refutation tests?
>
> Possibly. Earlier I'd mused that:
>
> > Alternatively (to avoid unnecessary CPU burn) we could modify
> > predicate_implied_by_recurse (and functionals called by it) to have a
> > argument beyond "weak = true/false" Ie.g., an enum that allows for
> > something like "WEAK", "STRONG", and "EITHER". That's a bigger change,
> > so I didn't want to do that right away unless there was agreement on
> > that direction.
>
> I'm going to try implementing that and see how I feel about what it
> looks like in practice.
Attached is v8 which does this. Note that I kept the patch 0001 as
before and inserted a new 0002 to show exactly what's changed from the
previously version -- I wouldn't expect that to be committed
separately, of course. With this change we only need to recurse a
single time and can check for both strong and weak refutation when
either will do for proving refutation of the "NOT x" construct.
Regards,
James Coleman
Attachment | Content-Type | Size |
---|---|---|
v8-0001-Teach-predtest.c-about-BooleanTest.patch | application/octet-stream | 49.3 KB |
v8-0003-Add-temporary-all-permutations-test.patch | application/octet-stream | 32.9 KB |
v8-0002-Recurse-weak-and-strong-implication-at-the-same-t.patch | application/octet-stream | 12.1 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tomas Vondra | 2024-04-06 00:51:45 | Re: BitmapHeapScan streaming read user and prelim refactoring |
Previous Message | Michael Paquier | 2024-04-06 00:16:25 | Re: IPC::Run::time[r|out] vs our TAP tests |