elasticsearch
elasticsearch copied to clipboard
Abstract `RowInTable` logic
This moves the logic for finding the offset in a table that we will use in LOOKUP
from a method on BlockHash
and some complex building logic in HashLookupOperator
. Now it's in an RowInTable
interface - both a static builder method and some implementations.
There are three implementations:
- One that talks to
BlockHash
just likeHashLookupOperator
used to. Right now it talks toPackedValuesBlockHash
because it's the only one who'slookup
method returns the offset in the original row, but we'll fix it eventually. - A
RowInTable
that works with increasing sequences of integers, say,1, 2, 3, 4, 5
- this is fairly simple - it just checks that the input is between1
and5
and, if it is, subtracts1
. Easy. Obvious. And very very fast. Simple. Good simple example. - An
RowInTable
that handles empty tables - this just makes writing the rest of the code simpler. It always returnsnull
.
Pinging @elastic/es-analytical-engine (Team:Analytics)