Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RowSet.subIndexByPos bug #2087

Closed
rcaudy opened this issue Mar 11, 2022 · 1 comment
Closed

RowSet.subIndexByPos bug #2087

rcaudy opened this issue Mar 11, 2022 · 1 comment
Assignees
Labels
bug Something isn't working query engine rowset
Milestone

Comments

@rcaudy
Copy link
Member

rcaudy commented Mar 11, 2022

This was discovered when exercised by a demo @devinrsmith is building. The following (groovy) reproducer simulates what he encountered:

t = emptyTable(6).update("II=ii")
t.setRefreshing(true)
c=t.countBy("Count", "II").sortDescending("Count").update("K=k")
s = c.slice(5, Long.MAX_VALUE)

(Ticking sort uses a large offset from 0 when building its initial row set in order to allow for data to tick in before existing data without shifting immediately.)

The following should illustrate the specifics of the bug as exercised by the above table operations:

println c.getRowSet()
{1073741821-1073741826}

println c.getRowSet().innerSet
io.deephaven.engine.rowset.impl.singlerange.IntStartIntDeltaSingleRange@16626b51
println c.getRowSet().innerSet.unsignedIntStart
1073741821
println c.getRowSet().innerSet.unsignedIntDelta
5

println s.getRowSet().innerSet
io.deephaven.engine.rowset.impl.singlerange.IntStartLongDeltaSingleRange@63cd4dbb
println s.getRowSet().innerSet.unsignedIntStart
1073741826
println s.getRowSet().innerSet.delta
9223372036854775801

The operation that is going awry is:

c.getRowSet().subsetByPositionRange(5, Long.MAX_VALUE)

Meaning there must be a bug in:
io.deephaven.engine.rowset.impl.singlerange.SingleRange#ixSubindexByPosOnNew

I think the bug is at the end:

        return make(
                Math.max(rangeStart() + startPos, rangeStart()),
                Math.min(rangeStart() + endPos, rangeEnd()));

This doesn't contemplate wraparound. We could fix it with this change:

        return make(
                Math.max(rangeStart() + startPos, rangeStart()),
                Math.min(Math.max(rangeStart() + endPos, Long.MAX_VALUE), rangeEnd()));

That is, if rangeStart() + endPos wraps around, just clamp to Long.MAX_VALUE.

@rcaudy rcaudy added bug Something isn't working query engine rowset labels Mar 11, 2022
@rcaudy rcaudy added this to the Mar 2022 milestone Mar 11, 2022
@rcaudy
Copy link
Member Author

rcaudy commented Mar 11, 2022

Note that I freely acknowledge that the proposed solution late last night was half-baked, since it would be inappropriate in the normal range of values.

jcferretti added a commit to jcferretti/deephaven-core that referenced this issue Mar 11, 2022
mofojed pushed a commit that referenced this issue Jul 17, 2024
## Release notes
https://github.com/deephaven/web-client-ui/releases/tag/v0.86.0

### Features

* Add option to disable WebGL rendering
([#2134](deephaven/web-client-ui#2134))
([011eb33](deephaven/web-client-ui@011eb33))
* Core plugins refactor, XComponent framework
([#2150](deephaven/web-client-ui#2150))
([2571fad](deephaven/web-client-ui@2571fad))
* IrisGridTheme iconSize
([#2123](deephaven/web-client-ui#2123))
([58ee88d](deephaven/web-client-ui@58ee88d)),
closes [#885](deephaven/web-client-ui#885)
* Partitioned Table UI Enhancements
([#2110](deephaven/web-client-ui#2110))
([de5ce40](deephaven/web-client-ui@de5ce40)),
closes [#2079](deephaven/web-client-ui#2079)
[#2066](deephaven/web-client-ui#2066)
[#2103](deephaven/web-client-ui#2103)
[#2104](deephaven/web-client-ui#2104)
[#2105](deephaven/web-client-ui#2105)
[#2106](deephaven/web-client-ui#2106)
[#2107](deephaven/web-client-ui#2107)
[#2108](deephaven/web-client-ui#2108)
[#2109](deephaven/web-client-ui#2109)
[#2049](deephaven/web-client-ui#2049)
[#2120](deephaven/web-client-ui#2120)
[#1904](deephaven/web-client-ui#1904)


### Bug Fixes

* error when edited cell is out of grid viewport
([#2148](deephaven/web-client-ui#2148))
([3fccd43](deephaven/web-client-ui@3fccd43)),
closes [#2087](deephaven/web-client-ui#2087)

## Release notes
https://github.com/deephaven/web-client-ui/releases/tag/v0.85.2


### Bug Fixes

* Fix missing scrim background on LoadingOverlay
([#2098](deephaven/web-client-ui#2098))
([c9ed895](deephaven/web-client-ui@c9ed895))

## Release notes
https://github.com/deephaven/web-client-ui/releases/tag/v0.85.1

##
[0.85.1](deephaven/web-client-ui@v0.85.0...v0.85.1)
(2024-07-08)


### Bug Fixes

* re-export remaining types needed by dh ui from @react-types/shared
([#2132](deephaven/web-client-ui#2132))
([2119a61](deephaven/web-client-ui@2119a61))



## Release notes
https://github.com/deephaven/web-client-ui/releases/tag/v0.85.0

### Features

* ComboBox - @deephaven/jsapi-components
([#2077](deephaven/web-client-ui#2077))
([115e057](deephaven/web-client-ui@115e057)),
closes [#2074](deephaven/web-client-ui#2074)


### Bug Fixes

* Allow ComboBox to accept the FocusableRef for ref
([#2121](deephaven/web-client-ui#2121))
([8fe9bad](deephaven/web-client-ui@8fe9bad))
* Ref was not being passed through for Picker
([#2122](deephaven/web-client-ui#2122))
([a11e2ce](deephaven/web-client-ui@a11e2ce))

Co-authored-by: deephaven-internal <66694643+deephaven-internal@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working query engine rowset
Projects
None yet
Development

No branches or pull requests

2 participants