diff --git a/src/foam/mlang/sink/GroupBy.js b/src/foam/mlang/sink/GroupBy.js index 9c5e5de820..bf877d7e4e 100644 --- a/src/foam/mlang/sink/GroupBy.js +++ b/src/foam/mlang/sink/GroupBy.js @@ -258,12 +258,9 @@ for (Object key : getGroups().keySet()) { } else { // No explicit output type - traverse to find underlying property var expr = this.arg1; - var sourceClass = 'Unknown'; while ( expr ) { if ( foam.lang.Property.isInstance(expr) ) { exprClass = expr.cls_?.id || 'String'; - // Get the source class name from the property's forClass_ - sourceClass = expr.forClass_ || sourceClass; break; } // Try delegate, then arg1, then stop @@ -271,15 +268,10 @@ for (Object key : getGroups().keySet()) { } } - // Generate deterministic name based on source class, property name, and sink type - // This prevents conflicts in chained GroupBy operations - var sinkName = this.arg2.cls_?.name || 'Count'; - var sourceClassName = sourceClass.split('.').pop(); // Get last part of class name - var modelName = 'GroupBy_' + sourceClassName + '_' + exprName + '_' + sinkName; const model = { package: 'foam.tmp', - name: modelName, + name: 'GroupBy' + foam.next$UID(), ids: [ 'row' ], properties: [ { class: 'Long', name: 'row' },