Commit c340ba5
authored
* ESQL: Compute infrastruture for LEFT JOIN (elastic#118889)
This adds some infrastructure that we can use to run LOOKUP JOIN using
real LEFT JOIN semantics.
Right now if LOOKUP JOIN matches many rows in the `lookup` index we
merge all of the values into a multivalued field. So the number of rows
emitted from LOOKUP JOIN is the same as the number of rows that comes
into LOOKUP JOIN.
This change builds the infrastructure to emit one row per match, mostly
reusing the infrastructure from ENRICH.
* ESQL: Make LOOKUP more left-joiny (elastic#119475)
This makes `LOOKUP` return multiple rows if there are multiple matches. This is the way SQL works so it's *probably* what folks will expect. Even if it isn't, it allows for more optimizations. Like, this change doesn't optimize anything - it just changes the behavior. But there are optimizations you can do *later* that are transparent when we have *this* behavior, but not with the old behavior.
Example:
```
- 2 | [German, German, German] | [Austria, Germany, Switzerland]
+ 2 | German | [Austria, Germany]
+ 2 | German | Switzerland
+ 2 | German | null
```
Relates: elastic#118781
1 parent 106bc7b commit c340ba5
File tree
42 files changed
+1732
-303
lines changed- server/src/main/java/org/elasticsearch/action/admin/cluster/node/capabilities
- x-pack/plugin
- esql
- compute/src
- main
- generated-src/org/elasticsearch/compute/data
- java/org/elasticsearch/compute
- data
- operator
- lookup
- test/java/org/elasticsearch/compute
- data
- operator
- lookup
- qa
- security/src/javaRestTest/java/org/elasticsearch/xpack/esql
- server
- mixed-cluster/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/mixed
- multi-clusters/src/javaRestTest/java/org/elasticsearch/xpack/esql/ccq
- src/main/java/org/elasticsearch/xpack/esql/qa/rest
- testFixtures/src/main/resources
- src
- internalClusterTest/java/org/elasticsearch/xpack/esql/action
- main/java/org/elasticsearch/xpack/esql
- action
- enrich
- test/java/org/elasticsearch/xpack/esql
- analysis
- enrich
- optimizer
- session
- src/yamlRestTest/resources/rest-api-spec/test/esql
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
42 files changed
+1732
-303
lines changedLines changed: 5 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
44 | 49 | | |
Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 37 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
212 | 212 | | |
213 | 213 | | |
214 | 214 | | |
215 | | - | |
216 | 215 | | |
217 | 216 | | |
218 | 217 | | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
219 | 255 | | |
220 | 256 | | |
221 | 257 | | |
| |||
Lines changed: 5 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
246 | 246 | | |
247 | 247 | | |
248 | 248 | | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
249 | 254 | | |
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
149 | 149 | | |
150 | 150 | | |
151 | 151 | | |
152 | | - | |
| 152 | + | |
153 | 153 | | |
154 | 154 | | |
155 | 155 | | |
| |||
0 commit comments