elasticsearch/libs/core
Nik Everett 04d3b9989f
ESQL: Begin optimizing Block#lookup (#108482)
This creates the infrastructure to allow optimizing the `lookup` method
when applied to `Vector`s and then implements that optimization for
constant vectors. Constant vectors now take one of six paths:
1. An empty positions `Block` yields an empty result set.
2. If `positions` is a `Block`, perform the un-optimized lookup.
3. If the `min` of the `positions` *Vector* is less that 0 then throw an
   exception.
4. If the `min` of the positions Vector is greater than the number of
   positions in the lookup block then return a single
   `ConstantNullBlock` because you are looking up outside the range.
5. If the `max` of the positions Vector is less than the number of
   positions in the lookup block then return a `Constant$Type$Block`
   with the same value as the lookup block. This is a lookup that's
   entirely within range.
6. Otherwise return the unoptimized lookup.

This is *fairly* simple but demonstrates how we can plug in more complex
optimizations later.
2024-05-10 13:45:42 -04:00
..
src ESQL: Begin optimizing Block#lookup (#108482) 2024-05-10 13:45:42 -04:00
build.gradle Make ProviderLocator aware of boot qualified exports (#105250) 2024-02-07 09:43:22 -08:00