Skip to content

Commit

Permalink
fix: seek row for sorted columns (#5238)
Browse files Browse the repository at this point in the history
- Change algorithm for sorted columns
  - Use `SortedColumnsAttribute.getOrderForColumn` instead of `guessSorted` to guarantee
  - Add a binary search algorithm to find first/last occurrence in a sorted list
  - Check next/prev row first, then loop around to end/start and get last/first occurrence
    - e.g. for `[1, 2, 2, 3]` and on the last `2`, the algorithm would check the next value (`3`) first, then search for first occurrence of `1, 2, 2`
- Change algorithm for unsorted columns to return `-1` when not found, instead of the closest value
- Replace `ConcurrentMethod` with snapshots

---------

Co-authored-by: Ryan Caudy <rcaudy@gmail.com>
Co-authored-by: Colin Alworth <colin@vertispan.com>
  • Loading branch information
3 people authored Apr 11, 2024
1 parent 5307f52 commit b1f657b
Show file tree
Hide file tree
Showing 4 changed files with 469 additions and 263 deletions.
10 changes: 10 additions & 0 deletions ClientSupport/ClientSupport.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,14 @@ dependencies {
implementation project(':log-factory')
implementation project(':Configuration')
implementation depCommonsLang3

testImplementation project(':engine-test-utils')
Classpaths.inheritJUnitClassic(project, 'testImplementation')
Classpaths.inheritJUnitPlatform(project)
Classpaths.inheritAssertJ(project)

testRuntimeOnly project(':log-to-slf4j'),
project(path: ':configs'),
project(path: ':test-configs')
Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly')
}
Loading

0 comments on commit b1f657b

Please sign in to comment.