deephaven / web-client-ui

Deephaven Web Client UI
Apache License 2.0
28 stars 30 forks source link

DH-16865: Partitioned table with no data displays a spinner indefinitely #1904

Closed vbabich closed 1 week ago

vbabich commented 4 months ago

Steps to reprodude:

Run this snippet to create a partitioned table with no data:

from deephaven import empty_table
t = empty_table(0).update("X=ii").partition_by("X")

Expected:

Actual:

mattrunyon commented 4 months ago

Test it works if the table is ticking and a partition is added at least. This will load for around 20s until the first row ticks in

from deephaven import time_table
t2 = time_table("PT20S").update("X=ii").where("X>0").partition_by("X")
vbabich commented 4 months ago

// We want to wait for the first UPDATED event instead of just getting viewport data here // It's possible that the key table does not have any rows of data yet, so just wait until it does have one

https://github.com/deephaven/web-client-ui/blob/main/packages/iris-grid/src/IrisGrid.tsx#L2042

mofojed commented 4 months ago

We can show the empty table until the first key ticks in, in which case then we want to select that first key.

illumon-public-sunil commented 3 months ago

This is an issue in both Core+ and Legacy workers and is present in 1.20231218.219 as well.

Attaching images of Core+, Legacy worker and swing

image

image

image

illumon-public-sunil commented 3 months ago

Noticed the same behavior on a query that includes a where clause. However, the filter column used in where clause is not the partition column, behavior is the same in Legacy and Core+.

Adding empty where() to the end of the query works.

Adding the comment just to capture another use case.

AkshatJawne commented 3 weeks ago

Verified that my changes do not fix this issue, can still see the spinner. Attempted to tested changes proposed in #1953 , but running into a lot of errors (I would assume that surrounding code has changed quite a bit in the interim). Looking at how we can combine both solutions here.