groupKey = getColNameFromJSExpr( cx, src.getKeyExpression() );
ColumnInfo groupKeyInfo = getColInfoFromJSExpr( cx, src.getKeyExpression( ) ); groupIndex = groupKeyInfo.getColumnIndex( ); groupKey = groupKeyInfo.getColumnName();
	protected IQuery.GroupSpec groupDefnToSpec( Context cx, IGroupDefinition src ) throws DataException	{		String groupKey = src.getKeyColumn();		if ( groupKey == null || groupKey.length() == 0 )		{			// Group key expressed as expression; convert it to column name			// TODO support key expression in the future by creating implicit			// computed columns			groupKey = getColNameFromJSExpr( cx, src.getKeyExpression() );		}		if ( groupKey == null )		{			throw new DataException( ResourceConstants.INVALID_GROUP_EXPR, src.getKeyExpression() );		}				IQuery.GroupSpec dest = new IQuery.GroupSpec( groupKey );		dest.setName( src.getName() );		dest.setInterval( src.getInterval());		dest.setIntervalRange( src.getIntervalRange());		dest.setIntervalStart( src.getIntervalStart());		dest.setSortDirection( src.getSortDirection());		return dest;			}