Skip to content

Commit eba591a

Browse files
Merge branch 'main' into nightly/sm-sort-order
2 parents af24391 + a679e9c commit eba591a

File tree

97 files changed

+1352
-1117
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+1352
-1117
lines changed

Base/gradle.properties

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
io.deephaven.project.ProjectType=JAVA_PUBLIC
2-
languageLevel=8

Configuration/gradle.properties

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
io.deephaven.project.ProjectType=JAVA_PUBLIC
2-
languageLevel=8

IO/gradle.properties

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
io.deephaven.project.ProjectType=JAVA_PUBLIC
2-
languageLevel=8

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,8 @@ A Python virtual environment is highly recommended for building Deephaven from s
162162
```sh
163163
git clone https://github.com/deephaven/deephaven-core.git
164164
cd deephaven-core
165-
python3 -m venv /tmp/my-dh-venv
166-
source /tmp/my-dh-venv/bin/activate
165+
python3 -m venv ~/my-dh-venv
166+
source ~/my-dh-venv/bin/activate
167167
./gradlew py-server:assemble
168168
pip install "py/server/build/wheel/deephaven_core-<version>-py3-non-any.whl[autocomplete]
169169
./gradlew server-jetty-app:run

SevenZip/gradle.properties

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
io.deephaven.project.ProjectType=JAVA_EXTERNAL
2-
languageLevel=8

Util/immutables/gradle.properties

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
io.deephaven.project.ProjectType=JAVA_LOCAL
2-
languageLevel=8

Util/pool/gradle.properties

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
io.deephaven.project.ProjectType=JAVA_PUBLIC
2-
languageLevel=8
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
io.deephaven.project.ProjectType=JAVA_PUBLIC
2-
languageLevel=8

Util/thread/gradle.properties

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
io.deephaven.project.ProjectType=JAVA_PUBLIC
2-
languageLevel=8

buildSrc/src/main/groovy/io.deephaven.java-toolchain-conventions.gradle

+5-5
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ def testRuntimeVersion = Integer.parseInt((String)project.findProperty('testRunt
1616
def testRuntimeVendor = project.hasProperty('testRuntimeVendor') ? JvmVendorSpec.matching((String)project.property('testRuntimeVendor')): null
1717

1818
if (languageLevel > compilerVersion) {
19-
throw new IllegalArgumentException("languageLevel must be less than or equal to compileVersion")
19+
throw new IllegalArgumentException("languageLevel must be less than or equal to compilerVersion")
2020
}
21-
if (languageLevel < 8) {
22-
throw new IllegalArgumentException("languageLevel must be greater than or equal to 8")
21+
if (languageLevel < 11) {
22+
throw new IllegalArgumentException("languageLevel must be greater than or equal to 11")
2323
}
24-
if (testLanguageLevel < 8) {
25-
throw new IllegalArgumentException("testLanguageLevel must be greater than or equal to 8")
24+
if (testLanguageLevel < 11) {
25+
throw new IllegalArgumentException("testLanguageLevel must be greater than or equal to 11")
2626
}
2727
if (runtimeVersion < languageLevel) {
2828
throw new IllegalArgumentException("runtimeVersion must be greater than or equal to languageLevel")

clock/gradle.properties

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
io.deephaven.project.ProjectType=JAVA_PUBLIC
2-
languageLevel=8

codec/api/gradle.properties

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
io.deephaven.project.ProjectType=JAVA_PUBLIC
2-
languageLevel=8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
io.deephaven.project.ProjectType=DOCKER_REGISTRY
22
deephaven.registry.imageName=ghcr.io/deephaven/cpp-clients-multi-base:latest
33
# When the image version changes, remember to update cpp-client/build-dependencies.sh to match the image's content
4-
deephaven.registry.imageId=ghcr.io/deephaven/cpp-clients-multi-base@sha256:5d7dce6defbd30b3181a42d05988b763750467f2258e341b7431b378303cca4b
4+
deephaven.registry.imageId=ghcr.io/deephaven/cpp-clients-multi-base@sha256:8588d3bef30699a84eb31c3e28687fc4325317e907d538a3f94fd2bfc4485777
55
deephaven.registry.platform=linux/amd64

docker/registry/go/gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
io.deephaven.project.ProjectType=DOCKER_REGISTRY
22
deephaven.registry.imageName=golang:1
3-
deephaven.registry.imageId=golang@sha256:51a6466e8dbf3e00e422eb0f7a97ac450b2d57b33617bbe8d2ee0bddcd9d0d37
3+
deephaven.registry.imageId=golang@sha256:c5adecdb7b3f8c5ca3c88648a861882849cc8b02fed68ece31e25de88ad13418
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
io.deephaven.project.ProjectType=DOCKER_REGISTRY
22
deephaven.registry.imageName=quay.io/pypa/manylinux2014_x86_64:latest
3-
deephaven.registry.imageId=quay.io/pypa/manylinux2014_x86_64@sha256:52199398003bb163291b6822eea54457db8dd0550381b6b90a506f8f1cfb96b9
3+
deephaven.registry.imageId=quay.io/pypa/manylinux2014_x86_64@sha256:a6d4a35895e0a5bec65b8192952b26c8bd46df9f048115884bb9ac80a3b7e663
44
deephaven.registry.platform=linux/amd64
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
io.deephaven.project.ProjectType=DOCKER_REGISTRY
22
deephaven.registry.imageName=minio/minio:latest
3-
deephaven.registry.imageId=minio/minio@sha256:1dce27c494a16bae114774f1cec295493f3613142713130c2d22dd5696be6ad3
3+
deephaven.registry.imageId=minio/minio@sha256:a929054ae025fa7997857cd0e2a2e3029238e31ad89877326dc032f4c1a14259
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
io.deephaven.project.ProjectType=DOCKER_REGISTRY
22
deephaven.registry.imageName=ghcr.io/deephaven/protoc-base:latest
3-
deephaven.registry.imageId=ghcr.io/deephaven/protoc-base@sha256:90f2a29c3b28d5e5a6cdc37d58d36fb413e4e6ce7964bd00f1d4e696fca46e18
3+
deephaven.registry.imageId=ghcr.io/deephaven/protoc-base@sha256:128f92dced4f155e5e638643096d8a84a1b0314870c52de7f3e5c82982528f6b
44
# TODO(deephaven-base-images#54): arm64 native image for cpp-client-base
55
deephaven.registry.platform=linux/amd64
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
io.deephaven.project.ProjectType=DOCKER_REGISTRY
22
deephaven.registry.imageName=python:3.10
3-
deephaven.registry.imageId=python@sha256:eb7df628043d68aa30019fed02052bd27f1431c3a0abe9299d1e4d804d4b11e0
3+
deephaven.registry.imageId=python@sha256:e70cd7b54564482c0dee8cd6d8e314450aac59ea0ff669ffa715207ea0e04fa6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
io.deephaven.project.ProjectType=DOCKER_REGISTRY
22
deephaven.registry.imageName=ghcr.io/deephaven/server-base:edge
3-
deephaven.registry.imageId=ghcr.io/deephaven/server-base@sha256:270e1a42772d5c68d0c49af1078cfa1bdeb659de786f8d04f7e78deb6fc85836
3+
deephaven.registry.imageId=ghcr.io/deephaven/server-base@sha256:20cf91ccaa830e5cfd40e07bbf4218874edd2acaaefc9815ec5b9237466435a7
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
io.deephaven.project.ProjectType=DOCKER_REGISTRY
22
deephaven.registry.imageName=ghcr.io/deephaven/server-slim-base:edge
3-
deephaven.registry.imageId=ghcr.io/deephaven/server-slim-base@sha256:14c6a88b60463f256496e3c582d7a00ce3ab7672912216582dde9adf3e33eeac
3+
deephaven.registry.imageId=ghcr.io/deephaven/server-slim-base@sha256:35a189ca301c43f87c5dc21e23ad590741307396e9581a6561c8f14e5fa5e8a0
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
adbc-driver-manager==1.3.0
2-
adbc-driver-postgresql==1.3.0
3-
connectorx==0.4.0; platform.machine == 'x86_64'
1+
adbc-driver-manager==1.4.0
2+
adbc-driver-postgresql==1.4.0
3+
connectorx==0.4.2; platform.machine == 'x86_64'
44
deephaven-plugin==0.6.0
55
docstring_parser==0.16
66
importlib_resources==6.5.2
77
java-utilities==0.3.0
88
jedi==0.19.1
99
jpy==1.1.0
10-
llvmlite==0.43.0
11-
numba==0.60.0
12-
numpy==2.0.2
10+
llvmlite==0.44.0
11+
numba==0.61.0
12+
numpy==2.1.3
1313
pandas==2.2.3
1414
parso==0.8.4
15-
pyarrow==19.0.0
15+
pyarrow==19.0.1
1616
python-dateutil==2.9.0.post0
17-
pytz==2024.2
17+
pytz==2025.1
1818
six==1.17.0
1919
typing_extensions==4.12.2
20-
tzdata==2024.2
20+
tzdata==2025.1
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
adbc-driver-manager==1.3.0
2-
adbc-driver-postgresql==1.3.0
3-
connectorx==0.4.0; platform.machine == 'x86_64'
1+
adbc-driver-manager==1.4.0
2+
adbc-driver-postgresql==1.4.0
3+
connectorx==0.4.2; platform.machine == 'x86_64'
44
deephaven-plugin==0.6.0
55
docstring_parser==0.16
66
importlib_resources==6.5.2
77
java-utilities==0.3.0
88
jedi==0.19.1
99
jpy==1.1.0
10-
llvmlite==0.43.0
11-
numba==0.60.0
12-
numpy==2.0.2
10+
llvmlite==0.44.0
11+
numba==0.61.0
12+
numpy==2.1.3
1313
pandas==2.2.3
1414
parso==0.8.4
15-
pyarrow==19.0.0
15+
pyarrow==19.0.1
1616
python-dateutil==2.9.0.post0
17-
pytz==2024.2
17+
pytz==2025.1
1818
six==1.17.0
1919
typing_extensions==4.12.2
20-
tzdata==2024.2
20+
tzdata==2025.1

engine/api/src/main/java/io/deephaven/engine/table/hierarchical/RollupTable.java

+13
Original file line numberDiff line numberDiff line change
@@ -135,4 +135,17 @@ interface NodeOperationsRecorder extends
135135
*/
136136
NodeOperationsRecorder translateAggregatedNodeOperationsForConstituentNodes(
137137
@NotNull NodeOperationsRecorder aggregatedNodeOperationsToTranslate);
138+
139+
/**
140+
* Create a new RollupTable based on {@code newSource}, inheriting this RollupTable's {@link #getAggregations()
141+
* aggregations}, {@link #includesConstituents() constituent inclusion}, {@link #getGroupByColumns() group-by
142+
* columns}, {@link #withNodeOperations(NodeOperationsRecorder...) node operations}, and {@link #withFilter(Filter)
143+
* filters}.
144+
*
145+
* @param newSource A new source table that must have the same definition as the source of this rollup; that is
146+
* {@code newSource.getDefinition().equals(getSource().getDefinition())} must be {@code true}
147+
*
148+
* @return The new RollupTable
149+
*/
150+
RollupTable rebase(@NotNull Table newSource);
138151
}

engine/api/src/main/java/io/deephaven/engine/table/hierarchical/TreeTable.java

+13-1
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,18 @@ interface NodeOperationsRecorder extends
107107
*/
108108
TreeTable withNodeOperations(@NotNull NodeOperationsRecorder nodeOperations);
109109

110+
/**
111+
* Create a new TreeTable based on {@code newSource}, inheriting this TreeTable's {@link #getIdentifierColumn()
112+
* identifier column}, {@link #getParentIdentifierColumn() parent column}, {@link #withNodeFilterColumns(Collection)
113+
* node filter columns}, and {@link #withNodeOperations(NodeOperationsRecorder) node operations}.
114+
*
115+
* @param newSource A new source table that must have the same definition as the source of this tree; that is
116+
* {@code newSource.getDefinition().equals(getSource().getDefinition())} must be {@code true}
117+
*
118+
* @return The new TreeTable
119+
*/
120+
TreeTable rebase(@NotNull Table newSource);
121+
110122
/**
111123
* Adapt a {@code source} {@link Table} to be used for a {@link Table#tree(String, String) tree} to ensure that the
112124
* result will have no orphaned nodes. Nodes whose parents do not exist will become children of the root node in the
@@ -143,7 +155,7 @@ static Table promoteOrphans(
143155
List.of(JoinMatch.of(parent, identifier)),
144156
List.of(JoinAddition.of(sentinel, identifier)))
145157
.view(List.of(viewColumns)),
146-
source::isRefreshing,
158+
source.isRefreshing(),
147159
DynamicNode::isRefreshing);
148160
}
149161
}
-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
io.deephaven.project.ProjectType=JAVA_PUBLIC
2-
languageLevel=8

engine/sql/src/main/java/io/deephaven/engine/sql/Sql.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ private static TableHeader adapt(TableDefinition tableDef) {
109109
}
110110

111111
private static ColumnHeader<?> adapt(ColumnDefinition<?> columnDef) {
112-
return ColumnHeader.of(columnDef.getName(), Type.find(columnDef.getDataType()));
112+
return ColumnHeader.of(columnDef.getName(), Type.find(columnDef.getDataType(), columnDef.getComponentType()));
113113
}
114114

115115
private enum ToGraphvizDot implements ObjFormatter<TableSpec> {

engine/table/src/main/java/io/deephaven/engine/table/impl/JoinControl.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ DataIndex dataIndexToUse(Table table, ColumnSource<?>[] sources) {
6969
// DataIndexer will only give us valid, live data indexes.
7070
() -> indexer.getDataIndex(sources),
7171
// Ensure that we use an enclosing scope to manage the data index if needed.
72-
table::isRefreshing,
72+
table.isRefreshing(),
7373
// Don't keep the data index managed. Joins hold the update graph lock, so the index can't go
7474
// stale,
7575
// and we'll only use it during instantiation.

engine/table/src/main/java/io/deephaven/engine/table/impl/QueryTable.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -3585,10 +3585,7 @@ public QueryTable getSubTable(
35853585
*/
35863586
@Override
35873587
public QueryTable copy() {
3588-
final UpdateGraph updateGraph = getUpdateGraph();
3589-
try (final SafeCloseable ignored = ExecutionContext.getContext().withUpdateGraph(updateGraph).open()) {
3590-
return copy(StandardOptions.COPY_ALL);
3591-
}
3588+
return copy(StandardOptions.COPY_ALL);
35923589
}
35933590

35943591
public QueryTable copy(Predicate<String> shouldCopy) {

engine/table/src/main/java/io/deephaven/engine/table/impl/TableUpdateValidator.java

+13-2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525

2626
import java.util.ArrayList;
2727
import java.util.Arrays;
28+
import java.util.LinkedHashMap;
29+
import java.util.Map;
2830
import java.util.function.Supplier;
2931

3032
public class TableUpdateValidator implements QueryTable.Operation<QueryTable> {
@@ -53,6 +55,7 @@ public static TableUpdateValidator make(final String description, final QueryTab
5355

5456
private TrackingWritableRowSet rowSet;
5557
private QueryTable resultTable;
58+
private ModifiedColumnSet.Transformer mcsTransformer;
5659
private SharedContext sharedContext;
5760
private final String description;
5861

@@ -104,7 +107,11 @@ public String getLogPrefix() {
104107
public Result<QueryTable> initialize(boolean usePrev, long beforeClock) {
105108
rowSet = (usePrev ? tableToValidate.getRowSet().prev() : tableToValidate.getRowSet()).copy().toTracking();
106109

107-
resultTable = new QueryTable(rowSet, tableToValidate.getColumnSourceMap());
110+
resultTable = new QueryTable(tableToValidate.getDefinition(), rowSet,
111+
new LinkedHashMap<>(tableToValidate.getColumnSourceMap()),
112+
null,
113+
tableToValidate.getAttributes());
114+
mcsTransformer = tableToValidate.newModifiedColumnSetIdentityTransformer(resultTable);
108115

109116
final TableUpdateListener listener;
110117
try (final SafeCloseable ignored1 = maybeOpenSharedContext();
@@ -218,7 +225,11 @@ private void onUpdate(final TableUpdate upstream) {
218225
return;
219226
}
220227

221-
resultTable.notifyListeners(upstream.acquire());
228+
final TableUpdateImpl downstream = TableUpdateImpl.copy(upstream);
229+
downstream.modifiedColumnSet = resultTable.getModifiedColumnSetForUpdates();
230+
mcsTransformer.clearAndTransform(upstream.modifiedColumnSet(), downstream.modifiedColumnSet);
231+
232+
resultTable.notifyListeners(downstream);
222233
}
223234
}
224235

engine/table/src/main/java/io/deephaven/engine/table/impl/by/ChunkedOperatorAggregationHelper.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ public static QueryTable aggregation(
132132
return true;
133133
});
134134
return resultHolder.getValue();
135-
}, input::isRefreshing, Table::isRefreshing);
135+
}, input.isRefreshing(), Table::isRefreshing);
136136
}
137137

138138
private static QueryTable aggregation(

0 commit comments

Comments
 (0)