docs: def render_node(_node_id, value=None, noderequest={}, **kw):
      "Recursively render a node's value"
      if value == None:
          kw.update( noderequest )
          results = _query(_node_id, **kw)
          current_app.logger.debug("results: %s", results)
          if results:
              values = []
              for (result, cols) in results:
                  if set(cols) == set(['node_id', 'name', 'value']):
                      for subresult in result:
                          #if subresult.get('name') == kw.get('name'):
                              # This is a link node
                          current_app.logger.debug("sub: %s", subresult)
                          name = subresult['name']
                          if noderequest.get('_no_template'):
                              # For debugging or just simply viewing with the
                              # operate script we append the node_id to the name
                              # of each. This doesn't work with templates.
                              name = "{0} ({1})".format(name, subresult['node_id'])
                          values.append( {name: render_node( subresult['node_id'], noderequest=noderequest, **subresult )} )
                  #elif 'node_id' and 'name' in cols:
                  #    for subresult in result:
                  #        current_app.logger.debug("sub2: %s", subresult)
                  #        values.append( {subresult.get('name'): render_node( subresult.get('node_id'), **subresult )} )
                  else:
                      values.append( result )
  
              value = values
  
      value = _short_circuit(value)
      if not noderequest.get('_no_template'):
          value = _template(_node_id, value)
  
      return value