You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
LocalDate instances can be used by PartitionedTables, or partitioned Tables (iceberg, parquet, etc), and may be displayed in the UI. The user will then expect to select a partition to display only data from that partition. However, the UI seems to be using dh.FilterValue.ofNumber(...) to try to create partition values
PartitionedTable
Steps to reproduce
In the web IDE, create a PartitionedTable with a LocalDate column:
Expected results
A partition selector dropdown should be visible, and there should be no errors in the JS console.
Actual results
There is no way to select a partition (only to merge the table), and an error is present:
Uncaught (in promise) Error: java.lang.NumberFormatException: For input string: "1970-01-05"
at NumberFormatException.createError (dh-core.js:1472:10)
at NumberFormatException.initializeBackingError (dh-core.js:1498:46)
at NumberFormatException.Throwable_0 (dh-core.js:1429:8)
at NumberFormatException.Exception_1 (dh-core.js:1523:18)
at NumberFormatException.RuntimeException_1 (dh-core.js:1541:18)
at NumberFormatException.IllegalArgumentException_0 (dh-core.js:1555:25)
at new NumberFormatException (dh-core.js:41262:33)
at Object.__parseAndValidateDouble (dh-core.js:40739:16)
at Object.ofNumber (dh-core.js:24934:27)
at C.makeFilterRawValue (TableUtils.js:1399:27)
at C.makeNullableEqFilter (TableUtils.js:1412:36)
at IrisGridPartitionSelector.js:220:34
at Array.map (<anonymous>)
at IrisGridPartitionSelector.js:218:57
at Generator.next (<anonymous>)
at ri (IrisGridPartitionSelector.js:3:102)
at o (IrisGridPartitionSelector.js:4:194)
at IrisGridPartitionSelector.js:4:364
at new Promise (<anonymous>)
at IrisGridPartitionSelector.js:4:97
at _o.updatePartitionOptions (IrisGridPartitionSelector.js:234:6)
at _o.componentDidUpdate (IrisGridPartitionSelector.js:75:12)
at het (react-dom.production.min.js:219:502)
at $et (react-dom.production.min.js:259:160)
at e.unstable_runWithPriority (scheduler.production.min.js:18:343)
at ag (react-dom.production.min.js:122:325)
at vv (react-dom.production.min.js:252:279)
at gF (react-dom.production.min.js:243:371)
at react-dom.production.min.js:123:115
at e.unstable_runWithPriority (scheduler.production.min.js:18:343)
at ag (react-dom.production.min.js:122:325)
at C5e (react-dom.production.min.js:123:61)
at Tp (react-dom.production.min.js:122:428)
at Vm (react-dom.production.min.js:237:203)
at Object.enqueueSetState (react-dom.production.min.js:133:211)
at w3.setState (react.production.min.js:12:369)
at IrisGrid.js:1446:18
at Object.$lambda$3 (dh-core.js:12276:5)
at Function.onInvoke_127 (dh-core.js:24649:17)
at lambda (dh-core.js:195:22)
at Array.forEach (<anonymous>)
at Object.$fireEvent (dh-core.js:12255:15)
at Object.$refire (dh-core.js:29373:106)
at TableViewportSubscription.notifyUpdate_0 [as notifyUpdate] (dh-core.js:29472:11)
at Object.$onDataChanged (dh-core.js:28706:15)
at AbstractTableSubscription$1methodref$onDataChanged$Type.onDataChanged (dh-core.js:28850:11)
at WebBarrageSubscription$ViewportImpl.applyUpdates_1 [as applyUpdates] (dh-core.js:22270:27)
at Object.$onFlightData (dh-core.js:28723:48)
at Function.apply_157 (dh-core.js:28877:11)
at lambda (dh-core.js:195:22)
at dh-internal.js:1:350285
at Array.forEach (<anonymous>)
at dh-internal.js:1:350264
at dh-internal.js:1:11539
at Array.forEach (<anonymous>)
at e.rawOnMessage (dh-internal.js:1:11501)
at dh-internal.js:1:9314
at Array.forEach (<anonymous>)
at e.onTransportChunk (dh-internal.js:1:9189)
at Object.$onMessage (dh-core.js:25125:35)
at MultiplexedWebsocketTransport$3methodref$onMessage$Type.handleEvent_2 [as handleEvent] (dh-core.js:25268:10)
Table with LocalDate partitions
Steps to reproduce
In the web IDE, create a PartitionedTable with a LocalDate column, write it to disk as a parquet table in partitions, and read it back as a single partition. Note that this will work, ddeasdfe
from deephaven.parquet import write_partitioned, read, ParquetFileLayout
from deephaven import empty_table
from deephaven.column import col_def, ColumnType
from deephaven import dtypes
pt = empty_table(5).update_view(["I=i", "Date=java.time.LocalDate.ofEpochDay(ii)"]).partition_by("Date")
Description
LocalDate instances can be used by PartitionedTables, or partitioned Tables (iceberg, parquet, etc), and may be displayed in the UI. The user will then expect to select a partition to display only data from that partition. However, the UI seems to be using
dh.FilterValue.ofNumber(...)
to try to create partition valuesPartitionedTable
Steps to reproduce
Expected results
A partition selector dropdown should be visible, and there should be no errors in the JS console.
Actual results
There is no way to select a partition (only to merge the table), and an error is present:
Table with LocalDate partitions
Steps to reproduce
from deephaven.parquet import write_partitioned, read, ParquetFileLayout
from deephaven import empty_table
from deephaven.column import col_def, ColumnType
from deephaven import dtypes
pt = empty_table(5).update_view(["I=i", "Date=java.time.LocalDate.ofEpochDay(ii)"]).partition_by("Date")
write_partitioned(pt, destination_dir='/tmp/table_with_partitions')
table_with_partitions = read('/tmp/table_with_partitions', table_definition=[
col_def('I', data_type=dtypes.int32),
col_def("Date", data_type=dtypes.LocalDate, column_type=ColumnType.PARTITIONING)
])
table_with_partitions
.Expected results
A partition selector dropdown should be visible, and there should be no errors in the JS console.
Actual results
Instead of seeing the table and the partition selector, we see an error message:
This is the same error as the PartitionedTable case, but hiding the table itself.
In both cases the web UI seems to be trying to serialize the LocalDate via Filters
dh.IdeSession.newTable(...)
. See Web UI CSV Upload followup deephaven-core#1041 via JS Flight/Barrage Refactor follow up deephaven-core#5927.The text was updated successfully, but these errors were encountered: