func (stmt *Restore) walkStmt(v Visitor) Statement {
	ret := stmt
	if stmt.AsOf.Expr != nil {
		e, changed := WalkExpr(v, stmt.AsOf.Expr)
		if changed {
			if ret == stmt {
				ret = stmt.copyNode()
			}
			ret.AsOf.Expr = e
		}
	}
	for i, backup := range stmt.From {
		for j, expr := range backup {
			e, changed := WalkExpr(v, expr)
			if changed {
				if ret == stmt {
					ret = stmt.copyNode()
				}
				ret.From[i][j] = e
			}
		}
	}
	{
		opts, changed := walkKVOptions(v, stmt.Options)
		if changed {
			if ret == stmt {
				ret = stmt.copyNode()
			}
			ret.Options = opts
		}
	}
	return ret
}
// walkStmt is part of the walkableStmt interface.
walkStmt is part of the walkableStmt interface.
// walkStmt is part of the walkableStmt interface .
func (stmt *Restore) walkStmt(v Visitor) Statement {
	ret := stmt
	if stmt.AsOf.Expr != nil {
		e, changed := WalkExpr(v, stmt.AsOf.Expr)
		if changed {
			if ret == stmt {
				ret = stmt.copyNode()
			}
			ret.AsOf.Expr = e
		}
	}
	for i, backup := range stmt.From {
		for j, expr := range backup {
			e, changed := WalkExpr(v, expr)
			if changed {
				if ret == stmt {
					ret = stmt.copyNode()
				}
				ret.From[i][j] = e
			}
		}
	}
	{
		opts, changed := walkKVOptions(v, stmt.Options)
		if changed {
			if ret == stmt {
				ret = stmt.copyNode()
			}
			ret.Options = opts
		}
	}
	return ret
}
func ( stmt * Restore ) walkStmt ( v Visitor ) Statement { ret := stmt if stmt . AsOf . Expr != nil { e , changed := WalkExpr ( v , stmt . AsOf . Expr ) if changed { if ret == stmt { ret = stmt . copyNode ( ) } ret . AsOf . Expr = e } } for i , backup := range stmt . From { for j , expr := range backup { e , changed := WalkExpr ( v , expr ) if changed { if ret == stmt { ret = stmt . copyNode ( ) } ret . From [ i ] [ j ] = e } } } { opts , changed := walkKVOptions ( v , stmt . Options ) if changed { if ret == stmt { ret = stmt . copyNode ( ) } ret . Options = opts } } return ret }
walkStmt is part of the walkableStmt interface.
walkStmt is part of the walkableStmt interface .