nmgr.evictKey (node.getKey ());
    public Node getGroupbySubnode (String sid, boolean create) {	loadNodes ();	if (subnodes == null)	    subnodes = new ExternalizableVector ();	if (subnodes.contains (sid) || create) try {	    Relation srel = dbmap.getSubnodeRelation ();	    Relation prel = dbmap.getPropertyRelation ();	    boolean relational = srel.other != null && srel.other.isRelational ();	    if (relational || create) {	        Node node = relational ? new Node (this, sid, nmgr, null) : new Node ("groupby-"+sid, nmgr);	        // set "groupname" property to value of groupby field	        node.setString ("groupname", sid);	        if (relational) {	            DbMapping dbm = new DbMapping ();	            Relation gsrel = srel.getGroupbySubnodeRelation();	            dbm.setSubnodeMapping (srel.other);	            dbm.setSubnodeRelation (gsrel);	            if (prel != null) {	                dbm.setPropertyMapping (prel.other);	                dbm.setPropertyRelation (prel.getGroupbyPropertyRelation());	            }	            node.setDbMapping (dbm);	            String snrel = "WHERE "+srel.groupby +"='"+sid+"'";	            if (gsrel.direction == Relation.BACKWARD)	                snrel += " AND "+gsrel.getRemoteField()+"='"+getNonVirtualHomeID()+"'";	            if (gsrel.order != null)	                snrel += " ORDER BY "+gsrel.order;	            node.setSubnodeRelation (snrel);	        } else {	            setNode (sid, node);	            subnodes.addElement (node.getID ());	        }	        return node;	    }	} catch (Exception noluck) {	    nmgr.logEvent ("Error creating group-by node for "+sid+": "+noluck);	}	return null;    }