Skip to content

Commit 68e2734

Browse files
authored
fix: DH-20036: Skip totalsConfig updates during model transitions to prevent stale column errors (#2645)
For DH-20036. Fixes a bug where removing a rollup group while keeping an aggregation (like CountDistinct) causes an error.
1 parent a0ef312 commit 68e2734

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

packages/iris-grid/src/IrisGridProxyModel.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import IrisGridTableModel from './IrisGridTableModel';
1111
import IrisGridPartitionedTableModel from './IrisGridPartitionedTableModel';
1212
import IrisGridTreeTableModel from './IrisGridTreeTableModel';
1313
import IrisGridModel from './IrisGridModel';
14-
import { type ColumnName } from './CommonTypes';
14+
import { type ColumnName, type UITotalsTableConfig } from './CommonTypes';
1515
import { isIrisGridTableModelTemplate } from './IrisGridTableModelTemplate';
1616
import {
1717
type PartitionConfig,
@@ -431,6 +431,15 @@ class IrisGridProxyModel extends IrisGridModel implements PartitionedGridModel {
431431
this.setNextModel(modelPromise);
432432
}
433433

434+
set totalsConfig(totalsConfig: UITotalsTableConfig | null) {
435+
if (this.modelPromise != null) {
436+
// Model switch in progress. Don't forward, as the config may reference stale columns.
437+
// COLUMNS_CHANGED will reapply the correct config after.
438+
return;
439+
}
440+
this.model.totalsConfig = totalsConfig;
441+
}
442+
434443
get isFilterRequired(): boolean {
435444
return this.originalModel.isFilterRequired;
436445
}

0 commit comments

Comments
 (0)