func (stmt *Backup) 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, expr := range stmt.To {
		e, changed := WalkExpr(v, expr)
		if changed {
			if ret == stmt {
				ret = stmt.copyNode()
			}
			ret.To[i] = e
		}
	}
	for i, expr := range stmt.IncrementalFrom {
		e, changed := WalkExpr(v, expr)
		if changed {
			if ret == stmt {
				ret = stmt.copyNode()
			}
			ret.IncrementalFrom[i] = e
		}
	}
	if stmt.Options.EncryptionPassphrase != nil {
		pw, changed := WalkExpr(v, stmt.Options.EncryptionPassphrase)
		if changed {
			if ret == stmt {
				ret = stmt.copyNode()
			}
			ret.Options.EncryptionPassphrase = pw
		}
	}
	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 *Backup) 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, expr := range stmt.To {
		e, changed := WalkExpr(v, expr)
		if changed {
			if ret == stmt {
				ret = stmt.copyNode()
			}
			ret.To[i] = e
		}
	}
	for i, expr := range stmt.IncrementalFrom {
		e, changed := WalkExpr(v, expr)
		if changed {
			if ret == stmt {
				ret = stmt.copyNode()
			}
			ret.IncrementalFrom[i] = e
		}
	}
	if stmt.Options.EncryptionPassphrase != nil {
		pw, changed := WalkExpr(v, stmt.Options.EncryptionPassphrase)
		if changed {
			if ret == stmt {
				ret = stmt.copyNode()
			}
			ret.Options.EncryptionPassphrase = pw
		}
	}
	return ret
}
func ( stmt * Backup ) 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 , expr := range stmt . To { e , changed := WalkExpr ( v , expr ) if changed { if ret == stmt { ret = stmt . copyNode ( ) } ret . To [ i ] = e } } for i , expr := range stmt . IncrementalFrom { e , changed := WalkExpr ( v , expr ) if changed { if ret == stmt { ret = stmt . copyNode ( ) } ret . IncrementalFrom [ i ] = e } } if stmt . Options . EncryptionPassphrase != nil { pw , changed := WalkExpr ( v , stmt . Options . EncryptionPassphrase ) if changed { if ret == stmt { ret = stmt . copyNode ( ) } ret . Options . EncryptionPassphrase = pw } } return ret }
walkStmt is part of the walkableStmt interface.
walkStmt is part of the walkableStmt interface .