```{index} single: DBD::Gofer::Policy::Base ``` # DBD::Gofer::Policy::Base Base class for DBD::Gofer policies ## SYNOPSIS ```perl $dbh = DBI->connect("dbi:Gofer:transport=...;policy=...", ...) ``` ## DESCRIPTION DBD::Gofer can be configured via a 'policy' mechanism that allows you to fine-tune the number of round-trips to the Gofer server. The policies are grouped into classes (which may be subclassed) and referenced by the name of the class. The [DBD::Gofer::Policy::Base](Base.md) class is the base class for all the policy classes and describes all the individual policy items. The Base policy is not used directly. You should use a policy class derived from it. ## POLICY CLASSES Three policy classes are supplied with DBD::Gofer: [DBD::Gofer::Policy::pedantic](pedantic.md) is most 'transparent' but slowest because it makes more round-trips to the Gofer server. [DBD::Gofer::Policy::classic](classic.md) is a reasonable compromise - it's the default policy. [DBD::Gofer::Policy::rush](rush.md) is fastest, but may require code changes in your applications. Generally the default `classic` policy is fine. When first testing an existing application with Gofer it is a good idea to start with the `pedantic` policy first and then switch to `classic` or a custom policy, for final testing. ## POLICY ITEMS These are temporary docs: See the source code for list of policies and their defaults. In a future version the policies and their defaults will be defined in the pod and parsed out at load-time. See the source code to this module for more details. ## POLICY CUSTOMIZATION XXX This area of DBD::Gofer is subject to change. There are three ways to customize policies: Policy classes are designed to influence the overall behaviour of DBD::Gofer with existing, unaltered programs, so they work in a reasonably optimal way without requiring code changes. You can implement new policy classes as subclasses of existing policies. In many cases individual policy items can be overridden on a case-by-case basis within your application code. You do this by passing a corresponding `> attribute into DBI methods by your application code. This lets you fine-tune the behaviour for special cases. The policy items are implemented as methods. In many cases the methods are passed parameters relating to the DBD::Gofer code being executed. This means the policy can implement dynamic behaviour that varies depending on the particular circumstances, such as the particular statement being executed. ## AUTHOR Tim Bunce, [http://www.tim.bunce.name](http://www.tim.bunce.name) ## LICENCE AND COPYRIGHT Copyright (c) 2007, Tim Bunce, Ireland. All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See [perlartistic](https://perldoc.perl.org/perlartistic).