Hi Paul,
I meant the explicit IndexScanExecutor::pre_execute_pull call from the
NestLoopIndexExecutor::p_pre_execute_pull. In the long run the
indexscan node doesn't need to be inlined and will be initialized via
regular chain of the Pre_execute_pull calls.
I was actually thinking about NValueArray object as a generic way to
path parameters similar to the p_init method. The problem I ran into
was that you actually need to pass two tuples to reset the inner state
- the search key and the outer tuple. How would you know which values
are for the first one and which ones belong to the second tuple? Well,
in this particular case, the search key reset logic could be moved
from nestloop to indexscan, but in general the question remains.
>
> Also, it would be a little nicer if we could undo a little of the cut&paste
> job from indexscanexecutor and find some way to refactor out the shared code
> into indexscanexecutor methods for setting up and executing each scan
> "pass". Maybe that's a little off-topic for this project and better to do as
> a follow-on? An idea even further along these lines would be to take (at
> least some) join predicate processing out of nestloopexecutor and push it
> down to the scan executor (or maybe a new generic predicate executor that
> would sit just above the scan). The idea would be to use the same API that
> nestloopindexexecutor uses to drive indexscanexecutor so that
> nestloopexecutor and nestloopindexexecutor could be unified into a single
> class that just happens to have different children.
I did some refactoring but not to the full extent. I will post my
latest code shortly so you could take a look and provide me feedback.
It seems to work in some simple cases but I see crashes running the
test suite. Something is not initialized properly. So, please treat it
as a work-in-progress.
>
>>
>>
>> Thanks,
>> Mike
>
>
> In other news, I've gotten some time (and qa help) scheduled in the new
> development cycle to do some benchmarking on this code.
> I really didn't get that far with it in the last cycle.
> I've also gotten a few questions from the team about how the project is
> proceeding, whether it's keeping your interest, and whether you'd be
> interested in a side-project or prefer to stay focused on this. They're
> really excited about bringing this in-house for some testing. Let me know
> your thoughts.
That's a great news! It would be really nice to do some real life
testing and compare the results with the current code.
As far as the project goes, I definitely want to finish this one
before moving on on something else. At the beginning I was a little
bit scared by the magnitude of changes and wasn't sure whether I would
be able to pull it off or not, but now I can see the light at the end
of the tunnel, so let keep going!
Mike
>
> --paul
>