Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: deephaven/deephaven-core
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 1f9167e1a9bb729987a6356422c3a3251b51e6e8
Choose a base ref
..
head repository: deephaven/deephaven-core
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: b6d8cfca31d0900e4b3828357881e8047a6835ba
Choose a head ref
Showing with 11,720 additions and 5,923 deletions.
  1. +15 −0 .github/workflows/quick-ci.yml
  2. +27 −23 Util/src/main/java/io/deephaven/util/SafeCloseable.java
  3. +10 −10 Util/src/main/java/io/deephaven/util/SafeCloseableArray.java
  4. +48 −12 Util/src/main/java/io/deephaven/util/SafeCloseableList.java
  5. +3 −7 Util/src/main/java/io/deephaven/util/SafeCloseablePair.java
  6. +1 −0 docker/registry/selenium/gradle.properties
  7. +1 −1 docker/registry/server-base/gradle.properties
  8. +1 −1 docker/registry/slim-base/gradle.properties
  9. +9 −8 docker/server-jetty/src/main/server-jetty/requirements.txt
  10. +9 −8 docker/server/src/main/server-netty/requirements.txt
  11. +118 −0 engine/api/src/main/java/io/deephaven/engine/table/BasicDataIndex.java
  12. +1 −15 engine/api/src/main/java/io/deephaven/engine/table/ColumnDefinition.java
  13. +21 −21 engine/api/src/main/java/io/deephaven/engine/table/ColumnSource.java
  14. +149 −0 engine/api/src/main/java/io/deephaven/engine/table/DataIndex.java
  15. +112 −0 engine/api/src/main/java/io/deephaven/engine/table/DataIndexTransformer.java
  16. +0 −16 engine/api/src/main/java/io/deephaven/engine/table/TableDefinition.java
  17. +0 −9 engine/api/src/main/java/io/deephaven/engine/table/TupleSource.java
  18. +4 −1 engine/api/src/main/java/io/deephaven/engine/table/iterators/ChunkedColumnIterator.java
  19. +5 −1 engine/api/src/main/java/io/deephaven/engine/table/iterators/ColumnIterator.java
  20. +122 −0 engine/function/src/templates/Numeric.ftl
  21. +228 −8 engine/function/src/templates/Sort.ftl
  22. +121 −0 engine/function/src/templates/TestNumeric.ftl
  23. +73 −2 engine/function/src/templates/TestSort.ftl
  24. +2 −3 engine/primitive/src/main/java/io/deephaven/engine/primitive/iterator/CloseableIterator.java
  25. +1 −0 engine/rowset/src/main/java/io/deephaven/engine/rowset/RowSequence.java
  26. +10 −4 engine/rowset/src/main/java/io/deephaven/engine/rowset/RowSet.java
  27. +7 −6 engine/rowset/src/main/java/io/deephaven/engine/rowset/TrackingRowSet.java
  28. +7 −9 engine/rowset/src/main/java/io/deephaven/engine/rowset/impl/TrackingWritableRowSetImpl.java
  29. +73 −94 engine/table/src/main/java/io/deephaven/engine/table/impl/AbstractColumnSource.java
  30. +1 −1 engine/table/src/main/java/io/deephaven/engine/table/impl/AddOnlyToBlinkTableAdapter.java
  31. +180 −175 engine/table/src/main/java/io/deephaven/engine/table/impl/AsOfJoinHelper.java
  32. +3 −0 ...ne/table/src/main/java/io/deephaven/engine/table/impl/BothIncrementalNaturalJoinStateManager.java
  33. +141 −43 engine/table/src/main/java/io/deephaven/engine/table/impl/BucketingContext.java
  34. +7 −4 engine/table/src/main/java/io/deephaven/engine/table/impl/CodecLookup.java
  35. +57 −12 engine/table/src/main/java/io/deephaven/engine/table/impl/ColumnSourceManager.java
  36. +14 −10 engine/table/src/main/java/io/deephaven/engine/table/impl/CrossJoinHelper.java
  37. +0 −184 engine/table/src/main/java/io/deephaven/engine/table/impl/GroupingUtils.java
  38. +1 −1 engine/table/src/main/java/io/deephaven/engine/table/impl/InstrumentedTableUpdateSource.java
  39. +167 −18 engine/table/src/main/java/io/deephaven/engine/table/impl/JoinControl.java
  40. +194 −225 engine/table/src/main/java/io/deephaven/engine/table/impl/NaturalJoinHelper.java
  41. +16 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/NotificationStepReceiver.java
  42. +1 −1 engine/table/src/main/java/io/deephaven/engine/table/impl/OperationSnapshotControl.java
  43. +64 −63 engine/table/src/main/java/io/deephaven/engine/table/impl/OperationSnapshotControlEx.java
  44. +49 −108 engine/table/src/main/java/io/deephaven/engine/table/impl/PartitionAwareSourceTable.java
  45. +319 −176 engine/table/src/main/java/io/deephaven/engine/table/impl/QueryTable.java
  46. +1 −1 engine/table/src/main/java/io/deephaven/engine/table/impl/RedefinableTable.java
  47. +5 −6 ...e/table/src/main/java/io/deephaven/engine/table/impl/RightIncrementalNaturalJoinStateManager.java
  48. +1 −1 engine/table/src/main/java/io/deephaven/engine/table/impl/SimpleSourceTable.java
  49. +142 −101 engine/table/src/main/java/io/deephaven/engine/table/impl/SortHelpers.java
  50. +22 −12 engine/table/src/main/java/io/deephaven/engine/table/impl/SortListener.java
  51. +68 −40 engine/table/src/main/java/io/deephaven/engine/table/impl/SortOperation.java
  52. +36 −31 engine/table/src/main/java/io/deephaven/engine/table/impl/SourceTable.java
  53. +1 −4 engine/table/src/main/java/io/deephaven/engine/table/impl/TableDefaults.java
  54. +3 −17 engine/table/src/main/java/io/deephaven/engine/table/impl/TimeTable.java
  55. +1 −1 engine/table/src/main/java/io/deephaven/engine/table/impl/WhereListener.java
  56. +44 −28 engine/table/src/main/java/io/deephaven/engine/table/impl/WouldMatchOperation.java
  57. +24 −24 .../table/src/main/java/io/deephaven/engine/table/impl/asofjoin/BucketedChunkedAjMergedListener.java
  58. +111 −51 ...n/java/io/deephaven/engine/table/impl/asofjoin/RightIncrementalAsOfJoinStateManagerTypedBase.java
  59. +19 −12 ...main/java/io/deephaven/engine/table/impl/asofjoin/RightIncrementalHashedAsOfJoinStateManager.java
  60. +39 −34 ...le/src/main/java/io/deephaven/engine/table/impl/asofjoin/StaticAsOfJoinStateManagerTypedBase.java
  61. +6 −6 ...table/src/main/java/io/deephaven/engine/table/impl/asofjoin/StaticHashedAsOfJoinStateManager.java
  62. +14 −15 engine/table/src/main/java/io/deephaven/engine/table/impl/asofjoin/TypedAsOfJoinFactory.java
  63. +8 −8 ...ephaven/engine/table/impl/asofjoin/typed/rightincopen/gen/RightIncrementalAsOfJoinHasherByte.java
  64. +8 −8 ...ephaven/engine/table/impl/asofjoin/typed/rightincopen/gen/RightIncrementalAsOfJoinHasherChar.java
  65. +8 −8 ...haven/engine/table/impl/asofjoin/typed/rightincopen/gen/RightIncrementalAsOfJoinHasherDouble.java
  66. +8 −8 ...phaven/engine/table/impl/asofjoin/typed/rightincopen/gen/RightIncrementalAsOfJoinHasherFloat.java
  67. +8 −8 ...eephaven/engine/table/impl/asofjoin/typed/rightincopen/gen/RightIncrementalAsOfJoinHasherInt.java
  68. +8 −8 ...ephaven/engine/table/impl/asofjoin/typed/rightincopen/gen/RightIncrementalAsOfJoinHasherLong.java
  69. +8 −8 ...haven/engine/table/impl/asofjoin/typed/rightincopen/gen/RightIncrementalAsOfJoinHasherObject.java
  70. +8 −8 ...phaven/engine/table/impl/asofjoin/typed/rightincopen/gen/RightIncrementalAsOfJoinHasherShort.java
  71. +6 −6 ...n/java/io/deephaven/engine/table/impl/asofjoin/typed/staticopen/gen/StaticAsOfJoinHasherByte.java
  72. +6 −6 ...n/java/io/deephaven/engine/table/impl/asofjoin/typed/staticopen/gen/StaticAsOfJoinHasherChar.java
  73. +6 −6 ...java/io/deephaven/engine/table/impl/asofjoin/typed/staticopen/gen/StaticAsOfJoinHasherDouble.java
  74. +6 −6 .../java/io/deephaven/engine/table/impl/asofjoin/typed/staticopen/gen/StaticAsOfJoinHasherFloat.java
  75. +6 −6 ...in/java/io/deephaven/engine/table/impl/asofjoin/typed/staticopen/gen/StaticAsOfJoinHasherInt.java
  76. +6 −6 ...n/java/io/deephaven/engine/table/impl/asofjoin/typed/staticopen/gen/StaticAsOfJoinHasherLong.java
  77. +6 −6 ...java/io/deephaven/engine/table/impl/asofjoin/typed/staticopen/gen/StaticAsOfJoinHasherObject.java
  78. +6 −6 .../java/io/deephaven/engine/table/impl/asofjoin/typed/staticopen/gen/StaticAsOfJoinHasherShort.java
  79. +40 −13 engine/table/src/main/java/io/deephaven/engine/table/impl/by/AggregationControl.java
  80. +4 −2 engine/table/src/main/java/io/deephaven/engine/table/impl/by/AggregationProcessor.java
  81. +335 −335 engine/table/src/main/java/io/deephaven/engine/table/impl/by/ChunkedOperatorAggregationHelper.java
  82. +6 −2 engine/table/src/main/java/io/deephaven/engine/table/impl/by/GroupByChunkedOperator.java
  83. +134 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/dataindex/AbstractDataIndex.java
  84. +121 −0 ...table/src/main/java/io/deephaven/engine/table/impl/dataindex/DataIndexBoxedKeySourceCompound.java
  85. +99 −0 ...e/table/src/main/java/io/deephaven/engine/table/impl/dataindex/DataIndexBoxedKeySourceSingle.java
  86. +26 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/dataindex/DataIndexKeySet.java
  87. +73 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/dataindex/DataIndexKeySetCompound.java
  88. +88 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/dataindex/DataIndexKeySetSingle.java
  89. +173 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/dataindex/DataIndexUtils.java
  90. +112 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/dataindex/RemappedDataIndex.java
  91. +69 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/dataindex/RowSetCodec.java
  92. +74 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/dataindex/StandaloneDataIndex.java
  93. +156 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/dataindex/TableBackedDataIndex.java
  94. +186 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/dataindex/TransformedDataIndex.java
  95. +2 −2 engine/table/src/main/java/io/deephaven/engine/table/impl/hierarchical/RollupNodeKeySource.java
  96. +514 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/indexer/DataIndexer.java
  97. +0 −642 engine/table/src/main/java/io/deephaven/engine/table/impl/indexer/RowSetIndexer.java
  98. +14 −3 engine/table/src/main/java/io/deephaven/engine/table/impl/locations/ColumnLocation.java
  99. +0 −52 engine/table/src/main/java/io/deephaven/engine/table/impl/locations/GroupingProvider.java
  100. +0 −23 engine/table/src/main/java/io/deephaven/engine/table/impl/locations/KeyRangeGroupingProvider.java
  101. +47 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/locations/TableLocation.java
  102. +88 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/locations/impl/AbstractTableLocation.java
  103. +30 −2 ...e/table/src/main/java/io/deephaven/engine/table/impl/locations/impl/NonexistentTableLocation.java
  104. +0 −288 ...src/main/java/io/deephaven/engine/table/impl/locations/impl/ParallelDeferredGroupingProvider.java
  105. +77 −0 .../java/io/deephaven/engine/table/impl/naturaljoin/IncrementalNaturalJoinStateManagerTypedBase.java
  106. +6 −9 .../io/deephaven/engine/table/impl/naturaljoin/RightIncrementalNaturalJoinStateManagerTypedBase.java
  107. +20 −14 ...src/main/java/io/deephaven/engine/table/impl/naturaljoin/StaticHashedNaturalJoinStateManager.java
  108. +21 −6 .../main/java/io/deephaven/engine/table/impl/naturaljoin/StaticNaturalJoinStateManagerTypedBase.java
  109. +2 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/partitioned/PartitionedTableProxyImpl.java
  110. +5 −2 engine/table/src/main/java/io/deephaven/engine/table/impl/remote/ConstructSnapshot.java
  111. +26 −23 engine/table/src/main/java/io/deephaven/engine/table/impl/replay/QueryReplayGroupedTable.java
  112. +6 −11 engine/table/src/main/java/io/deephaven/engine/table/impl/replay/ReplayGroupedFullTable.java
  113. +4 −9 engine/table/src/main/java/io/deephaven/engine/table/impl/replay/ReplayLastByGroupedTable.java
  114. +8 −4 engine/table/src/main/java/io/deephaven/engine/table/impl/replay/Replayer.java
  115. +19 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/select/ComposedFilter.java
  116. +292 −103 engine/table/src/main/java/io/deephaven/engine/table/impl/select/DynamicWhereFilter.java
  117. +37 −27 engine/table/src/main/java/io/deephaven/engine/table/impl/select/FunctionalColumn.java
  118. +223 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/select/FunctionalColumnLong.java
  119. +95 −21 engine/table/src/main/java/io/deephaven/engine/table/impl/select/MatchFilter.java
  120. +27 −21 engine/table/src/main/java/io/deephaven/engine/table/impl/select/MultiSourceFunctionalColumn.java
  121. +32 −8 engine/table/src/main/java/io/deephaven/engine/table/impl/select/WhereFilter.java
  122. +6 −1 engine/table/src/main/java/io/deephaven/engine/table/impl/select/WhereFilterInvertedImpl.java
  123. +6 −5 engine/table/src/main/java/io/deephaven/engine/table/impl/select/analyzers/SelectColumnLayer.java
  124. +1 −2 engine/table/src/main/java/io/deephaven/engine/table/impl/sort/LongMegaMergeKernel.java
  125. +0 −69 ...le/src/main/java/io/deephaven/engine/table/impl/sources/AbstractDeferredGroupingColumnSource.java
  126. +2 −1 engine/table/src/main/java/io/deephaven/engine/table/impl/sources/ArrayBackedColumnSource.java
  127. +0 −37 engine/table/src/main/java/io/deephaven/engine/table/impl/sources/DeferredGroupingColumnSource.java
  128. +9 −3 engine/table/src/main/java/io/deephaven/engine/table/impl/sources/DelegatingColumnSource.java
  129. +2 −1 engine/table/src/main/java/io/deephaven/engine/table/impl/sources/NanosBasedTimeArraySource.java
  130. +2 −1 ...e/table/src/main/java/io/deephaven/engine/table/impl/sources/NanosBasedTimeSparseArraySource.java
  131. +2 −1 engine/table/src/main/java/io/deephaven/engine/table/impl/sources/RedirectedColumnSource.java
  132. +15 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/sources/ReinterpretUtils.java
  133. +179 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/sources/RowSetColumnSourceWrapper.java
  134. +2 −1 engine/table/src/main/java/io/deephaven/engine/table/impl/sources/SparseArrayColumnSource.java
  135. +2 −1 ...le/src/main/java/io/deephaven/engine/table/impl/sources/immutable/Immutable2DByteArraySource.java
  136. +2 −1 ...le/src/main/java/io/deephaven/engine/table/impl/sources/immutable/Immutable2DCharArraySource.java
  137. +2 −1 .../src/main/java/io/deephaven/engine/table/impl/sources/immutable/Immutable2DDoubleArraySource.java
  138. +2 −1 ...e/src/main/java/io/deephaven/engine/table/impl/sources/immutable/Immutable2DFloatArraySource.java
  139. +2 −1 ...ble/src/main/java/io/deephaven/engine/table/impl/sources/immutable/Immutable2DIntArraySource.java
  140. +2 −1 ...le/src/main/java/io/deephaven/engine/table/impl/sources/immutable/Immutable2DLongArraySource.java
  141. +2 −1 ...n/java/io/deephaven/engine/table/impl/sources/immutable/Immutable2DNanosBasedTimeArraySource.java
  142. +2 −1 .../src/main/java/io/deephaven/engine/table/impl/sources/immutable/Immutable2DObjectArraySource.java
  143. +2 −1 ...e/src/main/java/io/deephaven/engine/table/impl/sources/immutable/Immutable2DShortArraySource.java
  144. +2 −1 ...able/src/main/java/io/deephaven/engine/table/impl/sources/immutable/ImmutableByteArraySource.java
  145. +2 −1 ...able/src/main/java/io/deephaven/engine/table/impl/sources/immutable/ImmutableCharArraySource.java
  146. +2 −1 ...le/src/main/java/io/deephaven/engine/table/impl/sources/immutable/ImmutableDoubleArraySource.java
  147. +2 −1 ...ble/src/main/java/io/deephaven/engine/table/impl/sources/immutable/ImmutableFloatArraySource.java
  148. +2 −1 ...table/src/main/java/io/deephaven/engine/table/impl/sources/immutable/ImmutableIntArraySource.java
  149. +2 −1 ...able/src/main/java/io/deephaven/engine/table/impl/sources/immutable/ImmutableLongArraySource.java
  150. +2 −1 ...ain/java/io/deephaven/engine/table/impl/sources/immutable/ImmutableNanosBasedTimeArraySource.java
  151. +2 −1 ...le/src/main/java/io/deephaven/engine/table/impl/sources/immutable/ImmutableObjectArraySource.java
  152. +2 −1 ...ble/src/main/java/io/deephaven/engine/table/impl/sources/immutable/ImmutableShortArraySource.java
  153. +239 −0 engine/table/src/main/java/io/deephaven/engine/table/impl/sources/regioned/MergedDataIndex.java
  154. +267 −0 ...le/src/main/java/io/deephaven/engine/table/impl/sources/regioned/PartitioningColumnDataIndex.java
  155. +2 −2 engine/table/src/main/java/io/deephaven/engine/table/impl/sources/regioned/RegionedColumnSource.java
  156. +2 −2 ...table/src/main/java/io/deephaven/engine/table/impl/sources/regioned/RegionedColumnSourceBase.java
  157. +255 −125 ...le/src/main/java/io/deephaven/engine/table/impl/sources/regioned/RegionedColumnSourceManager.java
  158. +6 −8 ...main/java/io/deephaven/engine/table/impl/sources/regioned/RegionedColumnSourceWithDictionary.java
  159. +52 −46 engine/table/src/main/java/io/deephaven/engine/table/impl/util/ColumnHolder.java
  160. +5 −5 engine/table/src/main/java/io/deephaven/engine/table/impl/util/GroupedWritableRowRedirection.java
  161. +222 −0 engine/table/src/main/java/io/deephaven/libs/GroovyStaticImports.java
  162. +0 −191 engine/table/src/test/java/io/deephaven/engine/table/impl/GroupingValidator.java
  163. +165 −0 engine/table/src/test/java/io/deephaven/engine/table/impl/IndexValidator.java
  164. +140 −3 engine/table/src/test/java/io/deephaven/engine/table/impl/MultiColumnSortTest.java
  165. +25 −31 engine/table/src/test/java/io/deephaven/engine/table/impl/QueryTableAggregationTest.java
  166. +237 −25 engine/table/src/test/java/io/deephaven/engine/table/impl/QueryTableAjTest.java
  167. +12 −15 engine/table/src/test/java/io/deephaven/engine/table/impl/QueryTableHugeSortTest.java
  168. +10 −48 engine/table/src/test/java/io/deephaven/engine/table/impl/QueryTableJoinTest.java
  169. +66 −22 engine/table/src/test/java/io/deephaven/engine/table/impl/QueryTableNaturalJoinTest.java
  170. +73 −21 engine/table/src/test/java/io/deephaven/engine/table/impl/QueryTableSortTest.java
  171. +1 −1 engine/table/src/test/java/io/deephaven/engine/table/impl/QueryTableStaticNaturalJoinRandomTest.java
  172. +56 −39 engine/table/src/test/java/io/deephaven/engine/table/impl/QueryTableTest.java
  173. +163 −14 engine/table/src/test/java/io/deephaven/engine/table/impl/QueryTableWhereTest.java
  174. +2 −2 engine/table/src/test/java/io/deephaven/engine/table/impl/SourcePartitionedTableTest.java
  175. +78 −7 engine/table/src/test/java/io/deephaven/engine/table/impl/TestConcurrentInstantiation.java
  176. +18 −8 engine/table/src/test/java/io/deephaven/engine/table/impl/TestJoinControl.java
  177. +29 −34 engine/table/src/test/java/io/deephaven/engine/table/impl/TestPartitionAwareSourceTable.java
  178. +72 −16 engine/table/src/test/java/io/deephaven/engine/table/impl/TestPartitioningColumns.java
  179. +25 −29 engine/table/src/test/java/io/deephaven/engine/table/impl/TestSelectPreserveGrouping.java
  180. +26 −19 engine/table/src/test/java/io/deephaven/engine/table/impl/TestSimpleSourceTable.java
  181. +231 −0 engine/table/src/test/java/io/deephaven/engine/table/impl/indexer/TestDataIndexer.java
  182. +0 −393 engine/table/src/test/java/io/deephaven/engine/table/impl/indexer/TestRowSetIndexer.java
  183. +509 −0 engine/table/src/test/java/io/deephaven/engine/table/impl/indexer/TestTransformedDataIndex.java
  184. +28 −26 ...n/engine/table/impl/locations/impl/{TestGroupingProviders.java → TestSourceTableDataIndexes.java}
  185. +1 −1 engine/table/src/test/java/io/deephaven/engine/table/impl/select/WhereFilterFactoryTest.java
  186. +2 −2 .../src/test/java/io/deephaven/engine/table/impl/sources/regioned/TestChunkedRegionedOperations.java
  187. +227 −148 ...rc/test/java/io/deephaven/engine/table/impl/sources/regioned/TestRegionedColumnSourceManager.java
  188. +0 −45 ...c/test/java/io/deephaven/engine/table/impl/sources/regioned/TstRegionedColumnSourcePrimitive.java
  189. +7 −10 engine/table/src/test/java/io/deephaven/engine/table/impl/updateby/BaseUpdateByTest.java
  190. +2 −6 engine/table/src/test/java/io/deephaven/engine/table/impl/updateby/TestRollingProduct.java
  191. +1 −4 engine/table/src/test/java/io/deephaven/engine/updategraph/impl/TestEventDrivenUpdateGraph.java
  192. +74 −23 engine/table/src/test/java/io/deephaven/engine/util/TimeTableTest.java
  193. +23 −9 engine/test-utils/src/main/java/io/deephaven/engine/testutil/ColumnInfo.java
  194. +68 −42 engine/test-utils/src/main/java/io/deephaven/engine/testutil/TstUtils.java
  195. +30 −1 engine/test-utils/src/main/java/io/deephaven/engine/testutil/locations/TableBackedTableLocation.java
  196. +0 −5 engine/test-utils/src/main/java/io/deephaven/engine/testutil/sources/ByteTestSource.java
  197. +0 −5 engine/test-utils/src/main/java/io/deephaven/engine/testutil/sources/CharTestSource.java
  198. +0 −5 engine/test-utils/src/main/java/io/deephaven/engine/testutil/sources/DoubleTestSource.java
  199. +0 −5 engine/test-utils/src/main/java/io/deephaven/engine/testutil/sources/FloatTestSource.java
  200. +0 −2 engine/test-utils/src/main/java/io/deephaven/engine/testutil/sources/ImmutableByteTestSource.java
  201. +0 −2 engine/test-utils/src/main/java/io/deephaven/engine/testutil/sources/ImmutableCharTestSource.java
  202. +0 −2 engine/test-utils/src/main/java/io/deephaven/engine/testutil/sources/ImmutableDoubleTestSource.java
  203. +0 −2 engine/test-utils/src/main/java/io/deephaven/engine/testutil/sources/ImmutableFloatTestSource.java
  204. +0 −2 engine/test-utils/src/main/java/io/deephaven/engine/testutil/sources/ImmutableIntTestSource.java
  205. +0 −2 engine/test-utils/src/main/java/io/deephaven/engine/testutil/sources/ImmutableLongTestSource.java
  206. +0 −2 engine/test-utils/src/main/java/io/deephaven/engine/testutil/sources/ImmutableObjectTestSource.java
  207. +0 −2 engine/test-utils/src/main/java/io/deephaven/engine/testutil/sources/ImmutableShortTestSource.java
  208. +0 −5 engine/test-utils/src/main/java/io/deephaven/engine/testutil/sources/IntTestSource.java
  209. +0 −5 engine/test-utils/src/main/java/io/deephaven/engine/testutil/sources/LongTestSource.java
  210. +0 −5 engine/test-utils/src/main/java/io/deephaven/engine/testutil/sources/ObjectTestSource.java
  211. +0 −5 engine/test-utils/src/main/java/io/deephaven/engine/testutil/sources/ShortTestSource.java
  212. +343 −61 engine/time/src/main/java/io/deephaven/time/DateTimeUtils.java
  213. +263 −85 engine/time/src/test/java/io/deephaven/time/TestDateTimeUtils.java
  214. +0 −8 engine/tuplesource/src/main/java/io/deephaven/engine/table/impl/tuplesource/AbstractTupleSource.java
  215. +0 −9 engine/tuplesource/src/main/java/io/deephaven/engine/table/impl/tuplesource/EmptyTupleSource.java
  216. +0 −9 .../tuplesource/src/main/java/io/deephaven/engine/table/impl/tuplesource/MultiColumnTupleSource.java
  217. +8 −13 extensions/parquet/table/src/main/java/io/deephaven/parquet/table/ParquetSchemaReader.java
  218. +75 −55 extensions/parquet/table/src/main/java/io/deephaven/parquet/table/ParquetTableWriter.java
  219. +153 −91 extensions/parquet/table/src/main/java/io/deephaven/parquet/table/ParquetTools.java
  220. +22 −24 extensions/parquet/table/src/main/java/io/deephaven/parquet/table/TypeInfos.java
  221. +10 −281 ...nsions/parquet/table/src/main/java/io/deephaven/parquet/table/location/ParquetColumnLocation.java
  222. +223 −23 extensions/parquet/table/src/main/java/io/deephaven/parquet/table/location/ParquetTableLocation.java
  223. +65 −0 extensions/parquet/table/src/main/java/io/deephaven/parquet/table/metadata/DataIndexInfo.java
  224. +22 −5 extensions/parquet/table/src/main/java/io/deephaven/parquet/table/metadata/TableInfo.java
  225. +2 −1 extensions/parquet/table/src/main/java/io/deephaven/parquet/table/pagestore/topage/ToVectorPage.java
  226. +211 −130 extensions/parquet/table/src/test/java/io/deephaven/parquet/table/ParquetTableReadWriteTest.java
  227. +0 −58 extensions/parquet/table/src/test/java/io/deephaven/parquet/table/TestParquetGrouping.java
  228. +75 −0 extensions/parquet/table/src/test/java/io/deephaven/parquet/table/TestParquetIndexing.java
  229. +7 −2 extensions/parquet/table/src/test/java/io/deephaven/parquet/table/TestParquetTools.java
  230. +10 −10 py/client-ticking/README.md
  231. +6 −2 py/client/README.md
  232. +1 −1 py/embedded-server/setup.py
  233. +1 −1 py/jpy-ext/build.gradle
  234. +1 −1 py/server/deephaven/_udf.py
  235. +37 −14 py/server/deephaven/_wrapper.py
  236. +0 −2 py/server/deephaven/column.py
  237. +0 −1 py/server/deephaven/dtypes.py
  238. +3 −2 py/server/deephaven/table_factory.py
  239. +65 −4 py/server/deephaven/time.py
  240. +1 −1 py/server/setup.py
  241. +30 −2 py/server/tests/test_table_factory.py
  242. +35 −2 py/server/tests/test_time.py
  243. +2 −2 replication/static/src/main/java/io/deephaven/replicators/ReplicateRegionsAndRegionedSources.java
  244. +0 −2 replication/static/src/main/java/io/deephaven/replicators/ReplicateSourceAndChunkTests.java
  245. +4 −4 web/client-ui/Dockerfile
15 changes: 15 additions & 0 deletions .github/workflows/quick-ci.yml
Original file line number Diff line number Diff line change
@@ -50,3 +50,18 @@ jobs:
name: quick-ci-jvm-err
path: '**/*_pid*.log'
if-no-files-found: ignore

verify-python-min-version:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: 'pip'

- name: Install vermin
run: pip install vermin==1.6.0

- name: Verify minimum version support
run: vermin -t=3.8 --no-tips --eval-annotations --violations py/server/deephaven py/client py/client-ticking py/embedded-server
50 changes: 27 additions & 23 deletions Util/src/main/java/io/deephaven/util/SafeCloseable.java
Original file line number Diff line number Diff line change
@@ -18,40 +18,43 @@
*/
public interface SafeCloseable extends AutoCloseable {

@Override
void close();

/**
* {@link #close() Close} all non-{@code null} SafeCloseable arguments.
* {@link #close() Close} all non-{@code null} {@link AutoCloseable} arguments.
*
* @param safeCloseables SafeCloseables to {@link #close() close}
* @param autoCloseables {@link AutoCloseable AutoCloseables} to {@link #close() close}
*/
static void closeAll(@NotNull final SafeCloseable... safeCloseables) {
closeAll(Arrays.asList(safeCloseables).iterator());
static void closeAll(@NotNull final AutoCloseable... autoCloseables) {
closeAll(Arrays.asList(autoCloseables).iterator());
}

/**
* {@link #close() Close} all non-{@code null} SafeCloseable elements. Terminates the {@code stream}.
* {@link #close() Close} all non-{@code null} {@link AutoCloseable} elements. Terminates the {@code stream}.
*
* @param stream the stream of SafeCloseables to {@link #close() close}
* @param <SCT> the safe closable type
* @param stream The stream of {@link AutoCloseable AutoCloseables} to {@link #close() close}
* @param <ACT> the auto closable type
*/
static <SCT extends SafeCloseable> void closeAll(@NotNull final Stream<SCT> stream) {
static <ACT extends AutoCloseable> void closeAll(@NotNull final Stream<ACT> stream) {
closeAll(stream.iterator());
}

/**
* {@link #close() Close} all non-{@code null} SafeCloseable elements. Consumes the {@code iterator}.
* {@link #close() Close} all non-{@code null} {@link AutoCloseable} elements. Consumes the {@code iterator}.
*
* @param iterator the iterator of SafeCloseables to {@link #close() close}
* @param <SCT> the safe closable type
* @param iterator The iterator of {@link AutoCloseable AutoCloseables} to {@link #close() close}
* @param <ACT> the auto closable type
*/
static <SCT extends SafeCloseable> void closeAll(@NotNull final Iterator<SCT> iterator) {
static <ACT extends AutoCloseable> void closeAll(@NotNull final Iterator<ACT> iterator) {
List<Exception> exceptions = null;
while (iterator.hasNext()) {
final SafeCloseable safeCloseable = iterator.next();
if (safeCloseable == null) {
final AutoCloseable autoCloseable = iterator.next();
if (autoCloseable == null) {
continue;
}
try {
safeCloseable.close();
autoCloseable.close();
} catch (Exception e) {
if (exceptions == null) {
exceptions = new ArrayList<>();
@@ -67,16 +70,17 @@ static <SCT extends SafeCloseable> void closeAll(@NotNull final Iterator<SCT> it
}

/**
* {@link #close() Close} a single SafeCloseable argument if it is non-{@code null}.
* {@link #close() Close} a single {@link AutoCloseable} argument if it is non-{@code null}.
*
* @param safeCloseable The SafeCloseable to {@link #close() close}
* @param autoCloseable The {@link AutoCloseable} to {@link #close() close}
*/
static void closeIfNonNull(@Nullable final SafeCloseable safeCloseable) {
if (safeCloseable != null) {
safeCloseable.close();
static void closeIfNonNull(@Nullable final AutoCloseable autoCloseable) {
if (autoCloseable != null) {
try {
autoCloseable.close();
} catch (Exception e) {
throw new UncheckedDeephavenException("Exception while closing resource", e);
}
}
}

@Override
void close();
}
20 changes: 10 additions & 10 deletions Util/src/main/java/io/deephaven/util/SafeCloseableArray.java
Original file line number Diff line number Diff line change
@@ -10,17 +10,17 @@
import java.util.List;

/**
* {@link SafeCloseable} that will close non-null values inside of an array.
* {@link SafeCloseable} that will close non-null values inside an array.
* <p>
* The common use case is to create an array; use the SafeCloseableArray in an ignored try-with-resources variable, and
* then populate the array within the loop. If you fail before populating the array nothing is closed, if you fail
* during or after populating the array the created values are closed.
* then populate the array within the loop. If the operation fails before populating the array nothing is closed. If the
* operation fails during or after populating the array the populated values are closed.
*/
public class SafeCloseableArray<SCT extends SafeCloseable> implements SafeCloseable {
public class SafeCloseableArray<ACT extends AutoCloseable> implements SafeCloseable {

private final SCT[] array;
private final ACT[] array;

public SafeCloseableArray(SCT[] entries) {
public SafeCloseableArray(ACT[] entries) {
array = entries;
}

@@ -30,16 +30,16 @@ public final void close() {
}

/**
* Close an array of {@link SafeCloseable} entries, ignoring {@code null} elements and assigning elements to
* Close an array of {@link AutoCloseable} entries, ignoring {@code null} elements and assigning elements to
* {@code null} as they are cleared.
*
*
* @param array The array to operate one
*/
public static <SCT extends SafeCloseable> void close(@NotNull final SCT[] array) {
public static <ACT extends AutoCloseable> void close(final ACT @NotNull [] array) {
final int length = array.length;
List<Exception> exceptions = null;
for (int ii = 0; ii < length; ii++) {
try (final SafeCloseable ignored = array[ii]) {
try (final AutoCloseable ignored = array[ii]) {
array[ii] = null;
} catch (Exception e) {
if (exceptions == null) {
60 changes: 48 additions & 12 deletions Util/src/main/java/io/deephaven/util/SafeCloseableList.java
Original file line number Diff line number Diff line change
@@ -10,36 +10,42 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.function.BiConsumer;
import java.util.function.BinaryOperator;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collector;

/**
* {@link SafeCloseable} that will close an internal list of other {@link SafeCloseable}s.
* {@link SafeCloseable} that will close an internal list of {@link AutoCloseable AutoCloseables}.
*/
public class SafeCloseableList implements SafeCloseable {

private final List<SafeCloseable> list = new ArrayList<>();
private final List<AutoCloseable> list = new ArrayList<>();

public SafeCloseableList() {}

public SafeCloseableList(SafeCloseable... entries) {
public SafeCloseableList(AutoCloseable... entries) {
this(Arrays.asList(entries));
}

public SafeCloseableList(Collection<SafeCloseable> entries) {
public SafeCloseableList(Collection<AutoCloseable> entries) {
list.addAll(entries);
}

public final void addAll(@NotNull final List<SafeCloseable> closeableList) {
public final void addAll(@NotNull final List<AutoCloseable> closeableList) {
list.addAll(closeableList);
}

public final <T extends SafeCloseable> T[] addArray(@Nullable final T[] closeables) {
public final <T extends AutoCloseable> T[] addArray(@Nullable final T[] closeables) {
if (closeables != null) {
list.add(new SafeCloseableArray<>(closeables));
}
return closeables;
}

public final <T extends SafeCloseable> T add(final T closeable) {
public final <T extends AutoCloseable> T add(final T closeable) {
list.add(closeable);
return closeable;
}
@@ -50,11 +56,41 @@ public final void clear() {

@Override
public final void close() {
for (final SafeCloseable closeable : list) {
if (closeable != null) {
closeable.close();
}
try {
SafeCloseable.closeAll(list.iterator());
} finally {
list.clear();
}
list.clear();
}

public static final Collector<AutoCloseable, SafeCloseableList, SafeCloseableList> COLLECTOR = new Collector<>() {

@Override
public Supplier<SafeCloseableList> supplier() {
return SafeCloseableList::new;
}

@Override
public BiConsumer<SafeCloseableList, AutoCloseable> accumulator() {
return SafeCloseableList::add;
}

@Override
public BinaryOperator<SafeCloseableList> combiner() {
return (left, right) -> {
left.addAll(right.list);
return left;
};
}

@Override
public Function<SafeCloseableList, SafeCloseableList> finisher() {
return a -> a;
}

@Override
public Set<Characteristics> characteristics() {
return Set.of(Characteristics.IDENTITY_FINISH);
}
};
}
10 changes: 3 additions & 7 deletions Util/src/main/java/io/deephaven/util/SafeCloseablePair.java
Original file line number Diff line number Diff line change
@@ -5,7 +5,8 @@

import java.util.Objects;

public class SafeCloseablePair<A extends SafeCloseable, B extends SafeCloseable> implements SafeCloseable {
public class SafeCloseablePair<A extends AutoCloseable, B extends AutoCloseable> implements SafeCloseable {

public final A first;
public final B second;

@@ -32,12 +33,7 @@ public int hashCode() {

@Override
public void close() {
if (this.first != null) {
this.first.close();
}
if (this.second != null) {
this.second.close();
}
SafeCloseable.closeAll(first, second);
}

public static <AP extends SafeCloseable, BP extends SafeCloseable, A extends AP, B extends BP> SafeCloseablePair<AP, BP> downcast(
1 change: 1 addition & 0 deletions docker/registry/selenium/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
io.deephaven.project.ProjectType=DOCKER_REGISTRY
deephaven.registry.imageName=selenium/standalone-firefox:4.16.1-20231219
deephaven.registry.imageId=selenium/standalone-firefox@sha256:a405fe92b3ce5d7eb31a07e1f99be3d628fdc0e5bdc81febd8dc11786edef024
deephaven.registry.platform=linux/amd64
2 changes: 1 addition & 1 deletion docker/registry/server-base/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
io.deephaven.project.ProjectType=DOCKER_REGISTRY
deephaven.registry.imageName=ghcr.io/deephaven/server-base:edge
deephaven.registry.imageId=ghcr.io/deephaven/server-base@sha256:d4db20a0487d0eecc0e201d3e1aa77b746c5d1dd4fed4e6169c5f58fe4c43db5
deephaven.registry.imageId=ghcr.io/deephaven/server-base@sha256:c94df093802971767d073fca278dee703e014dfaeec83ce5bf14331a5c4119f2
2 changes: 1 addition & 1 deletion docker/registry/slim-base/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
io.deephaven.project.ProjectType=DOCKER_REGISTRY
deephaven.registry.imageName=ghcr.io/deephaven/server-slim-base:edge
deephaven.registry.imageId=ghcr.io/deephaven/server-slim-base@sha256:5d9eb6e5c3507d1d463720bb61c4ea62b98cf48a482c8c8f3faeaaf01b3c5f1f
deephaven.registry.imageId=ghcr.io/deephaven/server-slim-base@sha256:2e8b338054b5a6112acecb913cd0a62b254fccdaba9910ffca0bd02c73cc73aa
17 changes: 9 additions & 8 deletions docker/server-jetty/src/main/server-jetty/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
adbc-driver-manager==0.9.0
adbc-driver-postgresql==0.9.0
adbc-driver-manager==0.10.0
adbc-driver-postgresql==0.10.0
connectorx==0.3.2; platform.machine == 'x86_64'
deephaven-plugin==0.6.0
java-utilities==0.2.0
jedi==0.18.2
jpy==0.15.0
jpy==0.16.0
llvmlite==0.42.0
numba==0.59.0
numpy==1.26.3
pandas==2.2.0
numba==0.59.1
numpy==1.26.4
pandas==2.2.1
parso==0.8.3
pyarrow==14.0.2
python-dateutil==2.8.2
python-dateutil==2.9.0.post0
pytz==2024.1
six==1.16.0
turbodbc==4.8.0
tzdata==2023.4
typing_extensions==4.10.0
tzdata==2024.1
17 changes: 9 additions & 8 deletions docker/server/src/main/server-netty/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
adbc-driver-manager==0.9.0
adbc-driver-postgresql==0.9.0
adbc-driver-manager==0.10.0
adbc-driver-postgresql==0.10.0
connectorx==0.3.2; platform.machine == 'x86_64'
deephaven-plugin==0.6.0
java-utilities==0.2.0
jedi==0.18.2
jpy==0.15.0
jpy==0.16.0
llvmlite==0.42.0
numba==0.59.0
numpy==1.26.3
pandas==2.2.0
numba==0.59.1
numpy==1.26.4
pandas==2.2.1
parso==0.8.3
pyarrow==14.0.2
python-dateutil==2.8.2
python-dateutil==2.9.0.post0
pytz==2024.1
six==1.16.0
turbodbc==4.8.0
tzdata==2023.4
typing_extensions==4.10.0
tzdata==2024.1
Loading