code: func (n *UpdateStmt) Accept(v Visitor) (Node, bool) {
  	newNode, skipChildren := v.Enter(n)
  	if skipChildren {
  		return v.Leave(newNode)
  	}
  	n = newNode.(*UpdateStmt)
  	node, ok := n.TableRefs.Accept(v)
  	if !ok {
  		return n, false
  	}
  	n.TableRefs = node.(*TableRefsClause)
  	for i, val := range n.List {
  		node, ok = val.Accept(v)
  		if !ok {
  			return n, false
  		}
  		n.List[i] = node.(*Assignment)
  	}
  	if n.Where != nil {
  		node, ok = n.Where.Accept(v)
  		if !ok {
  			return n, false
  		}
  		n.Where = node.(ExprNode)
  	}
  	if n.Order != nil {
  		node, ok = n.Order.Accept(v)
  		if !ok {
  			return n, false
  		}
  		n.Order = node.(*OrderByClause)
  	}
  	if n.Limit != nil {
  		node, ok = n.Limit.Accept(v)
  		if !ok {
  			return n, false
  		}
  		n.Limit = node.(*Limit)
  	}
  	return v.Leave(n)
  }
docs: // Accept implements Node Accept interface.