.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "DBD::Gofer::Policy::Base 3pm" .TH DBD::Gofer::Policy::Base 3pm "2020-10-29" "perl v5.28.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DBD::Gofer::Policy::Base \- Base class for DBD::Gofer policies .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& $dbh = DBI\->connect("dbi:Gofer:transport=...;policy=...", ...) .Ve .SH "DESCRIPTION" .IX Header "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. .PP The DBD::Gofer::Policy::Base class is the base class for all the policy classes and describes all the individual policy items. .PP The Base policy is not used directly. You should use a policy class derived from it. .SH "POLICY CLASSES" .IX Header "POLICY CLASSES" Three policy classes are supplied with DBD::Gofer: .PP DBD::Gofer::Policy::pedantic is most 'transparent' but slowest because it makes more round-trips to the Gofer server. .PP DBD::Gofer::Policy::classic is a reasonable compromise \- it's the default policy. .PP DBD::Gofer::Policy::rush is fastest, but may require code changes in your applications. .PP Generally the default \f(CW\*(C`classic\*(C'\fR policy is fine. When first testing an existing application with Gofer it is a good idea to start with the \f(CW\*(C`pedantic\*(C'\fR policy first and then switch to \f(CW\*(C`classic\*(C'\fR or a custom policy, for final testing. .SH "POLICY ITEMS" .IX Header "POLICY ITEMS" These are temporary docs: See the source code for list of policies and their defaults. .PP In a future version the policies and their defaults will be defined in the pod and parsed out at load-time. .PP See the source code to this module for more details. .SH "POLICY CUSTOMIZATION" .IX Header "POLICY CUSTOMIZATION" \&\s-1XXX\s0 This area of DBD::Gofer is subject to change. .PP There are three ways to customize policies: .PP 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. .PP 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 \&\f(CW\*(C`> attribute into \s-1DBI\s0 methods by your application code. This lets you fine-tune the behaviour for special cases. .PP 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. .SH "AUTHOR" .IX Header "AUTHOR" Tim Bunce, .SH "LICENCE AND COPYRIGHT" .IX Header "LICENCE AND COPYRIGHT" Copyright (c) 2007, Tim Bunce, Ireland. All rights reserved. .PP This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.