Skip to content

ESQL: Leftovers from making field pushing generic #137679

@nik9000

Description

@nik9000

Description

While working on making field pushing (aka field fusion) generic #137382 we bumped into a few things worth fixing as followup rather than in the original PR.

Blocks release of function pushdown

            FROM test
            | WHERE LENGTH(last_name) > 1
            | EVAL l = LENGTH(last_name)
            FROM test
            | EVAL a1 = LENGTH(last_name), a2 = LENGTH(last_name), a3 = LENGTH(last_name),
                   a4 = abs(LENGTH(last_name)) + a1 + LENGTH(first_name) * 3
            | WHERE a1 > 1 and LENGTH(last_name) > 1
            | STATS l = SUM(LENGTH(last_name)) + AVG(a3)
                FROM test
                | DROP test
                | LOOKUP JOIN lookup ON matching == main_matching
                | EVAL test = LENGTH(test)
                | STATS test = VALUES(test)

Doesn't block release of function pushdown

  • Per-node-fetch-phase
  • Support for more tests of short, byte, float, half_float. The employees data doesn't have any multi-valued field of those types.
  • Don't push if we are already loading.
  • Decide what to do if we push twice to the same field.
  • Push to field loading after a subquery
FROM (my_vectors | WHERE tag == tag1) (my_other_vectors | WHERE other_tag == tag2)
| EVAL score1 = V_COSINE(vector1, [...]), score2 = V_COSINE(vector2, [...])
| SORT score1 + score2
| LIMIT 100

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions