Skip to content

Commit 9c8eebc

Browse files
committed
Fix keyColumn and keyColumnTypes order
1 parent 1a28a31 commit 9c8eebc

1 file changed

Lines changed: 12 additions & 9 deletions

File tree

web/client-api/src/main/java/io/deephaven/web/client/api/JsPartitionedTable.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,7 @@
2929
import jsinterop.annotations.JsType;
3030
import jsinterop.base.Js;
3131

32-
import java.util.ArrayList;
33-
import java.util.HashMap;
34-
import java.util.List;
35-
import java.util.Map;
32+
import java.util.*;
3633

3734
/**
3835
* Represents a set of Tables each corresponding to some key. The keys are available locally, but a call must be made to
@@ -95,19 +92,25 @@ public Promise<JsPartitionedTable> refetch() {
9592
WebBarrageUtils.readSchemaMessage(descriptor.getConstituentDefinitionSchema_asU8()));
9693
ColumnDefinition[] columnDefinitions = tableDefinition.getColumns();
9794
Column[] columns = new Column[0];
98-
Column[] keyColumns = new Column[0];
9995
for (int i = 0; i < columnDefinitions.length; i++) {
10096
ColumnDefinition columnDefinition = columnDefinitions[i];
10197
Column column = columnDefinition.makeJsColumn(columns.length, tableDefinition.getColumnsByName());
10298
columns[columns.length] = column;
103-
if (descriptor.getKeyColumnNamesList().indexOf(columnDefinition.getName()) != -1) {
104-
keyColumnTypes.add(columnDefinition.getType());
105-
keyColumns[keyColumns.length] = column;
99+
}
100+
Column[] keyColumns = new Column[0];
101+
JsArray<String> keyColumnNames = descriptor.getKeyColumnNamesList();
102+
for (int i = 0; i < keyColumnNames.length; i++) {
103+
String name = keyColumnNames.getAt(i);
104+
ColumnDefinition columnDefinition = tableDefinition.getColumnsByName().get(false).get(name);
105+
int index = 0;
106+
while (!columns[index].getName().equals(name)) {
107+
index++;
106108
}
109+
keyColumnTypes.add(columnDefinition.getType());
110+
keyColumns[keyColumns.length] = columns[index];
107111
}
108112
this.columns = JsObject.freeze(columns);
109113
this.keyColumns = JsObject.freeze(keyColumns);
110-
111114
return w.getExportedObjects()[0].fetch();
112115
}).then(result -> {
113116
keys = (JsTable) result;

0 commit comments

Comments
 (0)