From: | Greg Stark <stark(at)mit(dot)edu> |
---|---|
To: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
Cc: | Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, David Rowley <dgrowleyml(at)gmail(dot)com>, Jeff Janes <jeff(dot)janes(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Erik Rijkers <er(at)xs4all(dot)nl>, Emanuel Calvo <3manuek(at)esdebian(dot)org>, Simon Riggs <simon(at)2ndquadrant(dot)com>, Nicolas Barbier <nicolas(dot)barbier(at)gmail(dot)com>, Claudio Freire <klaussfreire(at)gmail(dot)com>, Josh Berkus <josh(at)agliodbs(dot)com>, Andres Freund <andres(at)2ndquadrant(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: BRIN indexes - TRAP: BadArgument |
Date: | 2014-11-11 08:14:20 |
Message-ID: | CAM-w4HNOfQZVESDY3ztD0z1a-_rEUy4fg5OFY3FVzO61iJELyQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Nov 11, 2014 at 2:14 AM, Alvaro Herrera
<alvherre(at)2ndquadrant(dot)com> wrote:
> I'm not sure why you say opaque is not associated with the specific
> scan. Are you thinking we could reuse opaque for a future scan? I
> think we could consider that opaque *is* the place to cache things such
> as the hashed value of the qual constants or whatever.
Oh. I guess this goes back to my original suggestion that the API docs
need to explain some sense of when OpcInfo is called. I didn't realize
it was tied to a specific scan. This does raise the question of why
the scan information isn't available in OpcInfo though. That would let
me build the hash value in a natural place instead of having to do it
lazily which I find significantly more awkward.
Is it possible for scan keys to change between calls for nested loop
joins or quirky SQL with volatile functions in the scan or anything? I
guess that would prevent the index scan from being used at all. But I
can be reassured the Opcinfo call will be called again when a cached
plan is reexecuted? Stable functions might have new values in a
subsequent execution even if the plan hasn't changed at all for
example.
> That's to test the Union procedure; if you look at the code, it's just
> used in assert-enabled builds. Now that I think about it, perhaps this
> can turn out to be problematic for your bloom filter opclass. I
> considered the idea of allowing the opclass to disable this testing
> procedure, but it isn't done (yet.)
No, it isn't a problem for my opclass other than performance, it was
quite helpful in turning up bugs early in fact. It was just a bit
confusing because I was trying to test things one by one and it turned
out the assertion checks meant a simple insert turned up bugs in Union
which I hadn't expected. But it seems perfectly sensible in an
assertion check.
--
greg
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Langote | 2014-11-11 08:18:01 | Re: [REVIEW] Re: Compression of full-page-writes |
Previous Message | Michael Paquier | 2014-11-11 08:10:01 | Re: [REVIEW] Re: Compression of full-page-writes |