From db5f8c581dd905e9ae40695f45613b731d4fd23b Mon Sep 17 00:00:00 2001 From: Julian Kiryakov Date: Thu, 21 Aug 2025 15:32:51 -0400 Subject: [PATCH 01/30] WIP POC for expression join --- .../Debug_Elasticsearch__node_2_.xml | 4 + .../Debug_Elasticsearch__node_3_.xml | 4 + .../org/elasticsearch/TransportVersions.java | 1 + .../compute/operator/lookup/QueryList.java | 32 +- .../resources/lookup-join-expression.csv-spec | 333 ++++++++++++++++++ .../xpack/esql/action/LookupFromIndexIT.java | 3 +- .../xpack/esql/action/EsqlCapabilities.java | 5 + .../xpack/esql/analysis/Analyzer.java | 68 +++- .../esql/enrich/AbstractLookupService.java | 4 + .../enrich/BinaryComparisonQueryList.java | 84 +++++ .../esql/enrich/ExpressionQueryList.java | 89 ++++- .../esql/enrich/LookupFromIndexOperator.java | 17 +- .../esql/enrich/LookupFromIndexService.java | 40 ++- .../xpack/esql/enrich/MatchConfig.java | 4 +- .../logical/PushDownJoinPastProject.java | 2 +- .../xpack/esql/parser/LogicalPlanBuilder.java | 27 +- .../xpack/esql/plan/logical/InlineStats.java | 2 +- .../xpack/esql/plan/logical/Lookup.java | 31 +- .../esql/plan/logical/join/InlineJoin.java | 2 +- .../xpack/esql/plan/logical/join/Join.java | 40 ++- .../esql/plan/logical/join/JoinConfig.java | 112 +++++- .../esql/plan/logical/join/LookupJoin.java | 23 +- .../esql/plan/physical/LookupJoinExec.java | 37 +- .../esql/planner/LocalExecutionPlanner.java | 20 +- .../esql/planner/mapper/LocalMapper.java | 4 +- .../xpack/esql/planner/mapper/Mapper.java | 3 +- .../xpack/esql/analysis/ParsingTests.java | 6 +- .../enrich/LookupFromIndexOperatorTests.java | 8 +- .../optimizer/LogicalPlanOptimizerTests.java | 4 +- .../PushDownAndCombineFiltersTests.java | 4 +- .../logical/PushDownJoinPastProjectTests.java | 191 ++++++++++ .../esql/parser/StatementParserTests.java | 2 +- .../plan/logical/CommandLicenseTests.java | 2 +- .../plan/logical/JoinSerializationTests.java | 2 +- .../xpack/esql/plan/logical/JoinTests.java | 4 +- .../logical/LookupSerializationTests.java | 4 +- .../LookupJoinExecSerializationTests.java | 4 +- .../esql/tree/EsqlNodeSubclassTests.java | 3 +- 38 files changed, 1127 insertions(+), 98 deletions(-) create mode 100644 x-pack/plugin/esql/qa/testFixtures/src/main/resources/lookup-join-expression.csv-spec create mode 100644 x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/enrich/BinaryComparisonQueryList.java diff --git a/.idea/runConfigurations/Debug_Elasticsearch__node_2_.xml b/.idea/runConfigurations/Debug_Elasticsearch__node_2_.xml index 94bb079398ffd..76bb8f72eafc9 100644 --- a/.idea/runConfigurations/Debug_Elasticsearch__node_2_.xml +++ b/.idea/runConfigurations/Debug_Elasticsearch__node_2_.xml @@ -6,6 +6,10 @@