enso/distribution
Radosław Waśko 1b8b30a68d
Improve performance of Join_Condition.Between by sorting on one dimension (#8212)
- Closes #5303
- Refactors `JoinStrategy` allowing us to 'stack' join strategies on top of each other (to some extent) - currently a `HashJoin` can be followed by another join strategy (currently `SortJoin`)
- Adds benchmarks for join
- Due to limitations of the sorting approach this will still not be as fast as possible for cases where there is more than 1 `Between` condition in a single query - trying to demonstrate that in benchmarks.
- We can replace sorting by d-dimensional [RangeTrees](https://en.wikipedia.org/wiki/Range_tree) to get `O((n + m) log^d n + k)` performance (where `n` and `m` are sizes of joined tables, `d` is the amount of `Between` conditions used in the query and `k` is the result set size).
- Follow up ticket for consideration later:
#8216
- Closes #8215
- After all, it turned out that `TreeSet` was problematic (because of not enough flexibility with duplicate key handling), so the simplest solution was to immediately implement this sub-task.
- Closes #8204
- Unrelated, but I ran into this here: adds type checks to other arguments of `set`.
- Before, putting in a Column as `new_name` (i.e. mistakenly messing up the order of arguments), lead to a hard to understand `Method `if_then_else` of type Column could not be found.`, instead now it would file with type error 'expected Text got Column`.
2023-11-08 12:59:55 +00:00
..
bin Enso Integration with Ideal Graph Visualizer (#3533) 2022-06-23 04:43:49 +00:00
engine/THIRD-PARTY Upgrade directory-watcher library (#8201) 2023-11-02 11:24:26 +00:00
launcher Reduce extra output in compilation and tests (#7809) 2023-10-16 10:57:44 +02:00
lib/Standard Improve performance of Join_Condition.Between by sorting on one dimension (#8212) 2023-11-08 12:59:55 +00:00
project-manager/THIRD-PARTY Reduce extra output in compilation and tests (#7809) 2023-10-16 10:57:44 +02:00
enso.bundle.template Better component handling in the project manager (#1399) 2021-01-15 15:26:51 +00:00
launcher-manifest.yaml Bump the development version number (#1389) 2021-01-06 08:57:02 +00:00
manifest.template.yaml Update GraalVM to 17.0.7 (23.0.0 JDK17) (#7176) 2023-07-20 15:11:30 +00:00