VoltDB/voltdb — pull request #236 by paulmartel (2012-10-23 18:47:02+00:00)
Title: index rework -- ready for review -- SubPlanAssembler refactor defies diff (sorry).

Streamline index planning and and various modes of failing prior to complicating the code with real parameter-binding.

The change that caused all the churn in SubPlanAssembler is the approach to finding indexable filter conditions. The old approach did one pass over the query filters to populate multiple hashes of lists of possibly applicable filters before even starting the walk over the indexed key components that might use them. The new approach is totally key component driven, doing a more targeted scan of all remaining query filters for the exact form of filter that will be of immediate use in the next step of configuring or disqualifying the scan. With so much less up-front effort, it should at least be faster to fail.
Performance for the rest depends on cases. It nets out to about the same # of LOC.