Author: timbo
Date: Sun May 13 08:45:04 2007
New Revision: 9560

Removed:
   dbi/trunk/META.yml
Modified:
   dbi/trunk/Changes
   dbi/trunk/DBI.pm
   dbi/trunk/MANIFEST
   dbi/trunk/lib/DBD/Gofer.pm
   dbi/trunk/lib/DBD/Gofer/Policy/Base.pm
   dbi/trunk/lib/DBD/Gofer/Policy/classic.pm
   dbi/trunk/lib/DBD/Gofer/Policy/pedantic.pm
   dbi/trunk/lib/DBD/Gofer/Policy/rush.pm
   dbi/trunk/lib/DBD/Gofer/Transport/Base.pm
   dbi/trunk/lib/DBD/Gofer/Transport/null.pm
   dbi/trunk/lib/DBD/Gofer/Transport/pipeone.pm
   dbi/trunk/lib/DBD/Gofer/Transport/stream.pm
   dbi/trunk/lib/DBI/Gofer/Execute.pm
   dbi/trunk/lib/DBI/Gofer/Request.pm
   dbi/trunk/lib/DBI/Gofer/Response.pm
   dbi/trunk/lib/DBI/Gofer/Transport/Base.pm
   dbi/trunk/lib/DBI/Gofer/Transport/pipeone.pm
   dbi/trunk/lib/DBI/Gofer/Transport/stream.pm
   dbi/trunk/t/85gofer.t

Log:
Removed META.yml so it'll be autogenerated correctly.
Changes default gofo retry_limit from 2 to 0 to be safe.
Enable 'gofer random' behaviour to be specified via Gofer config.
Lots more Gofer docs


Modified: dbi/trunk/Changes
==============================================================================
--- dbi/trunk/Changes   (original)
+++ dbi/trunk/Changes   Sun May 13 08:45:04 2007
@@ -8,8 +8,6 @@
 
 Assorted TODO notes:
 
-XXX write up DBI_GOFER_RANDOM
-
 Policy principle:
     Designed to influence behaviour of unaltered programs
     ie go_* attributes take precidence over policy
@@ -41,6 +39,24 @@
 Add trace modules that just records the last N trace messages into an array
 and prepends them to any error message.
 
+=head2 Changes in DBI 1.56 (svn rev XXX),  11th May 2007
+
+  Fixed printf arg warnings thanks to JDHEDDEN.
+  Fixed returning driver-private sth attributes via gofer.   
+
+  Changed pod docs docs to use =head3 instead of =item
+    so now in html you get links to individual methods etc.
+  Changed default gofer retry_limit from 2 to 0.
+  Changed tests to workaround Math::BigInt broken versions.
+
+  Added DBI_GOFER_RANDOM env var that can be use to trigger random
+    failures and delays when executing gofer requests. Designed to help
+    test automatic retry on failures and timeout handling.
+
+  Add way for gofer executor config to enable extra dbh/sth to be returned 
with responses.
+  Add $h->FETCH_many(@attrib_names) method.
+
+
 =head2 Changes in DBI 1.55 (svn rev 9504),  4th May 2007
 
   Fixed set_err() so HandleSetErr hook is executed reliably, if set.

Modified: dbi/trunk/DBI.pm
==============================================================================
--- dbi/trunk/DBI.pm    (original)
+++ dbi/trunk/DBI.pm    Sun May 13 08:45:04 2007
@@ -1323,7 +1323,7 @@
     sub EXISTS   { defined($_[0]->FETCH($_[1])) } # XXX undef?
     sub CLEAR    { Carp::carp "Can't CLEAR $_[0] (DBI)" }
 
-    sub FETCH_many {    # should move to C one day
+    sub FETCH_many {    # XXX should move to C one day
         my $h = shift;
         return map { $h->FETCH($_) } @_;
     }

Modified: dbi/trunk/MANIFEST
==============================================================================
--- dbi/trunk/MANIFEST  (original)
+++ dbi/trunk/MANIFEST  Sun May 13 08:45:04 2007
@@ -5,7 +5,6 @@
 Driver.xst                     Template driver xs file
 Driver_xst.h                   Template driver xs support code
 MANIFEST
-META.yml                       Module meta-data in YAML
 Makefile.PL                    The Makefile generator
 Perl.xs                                Test harness (currently) for Driver.xst
 README

Modified: dbi/trunk/lib/DBD/Gofer.pm
==============================================================================
--- dbi/trunk/lib/DBD/Gofer.pm  (original)
+++ dbi/trunk/lib/DBD/Gofer.pm  Sun May 13 08:45:04 2007
@@ -1071,23 +1071,36 @@
 
 =head1 CONFIGURING VIA POLICY
 
-XXX
+DBD::Gofer supports 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.
 
-policy=pedantic is most transparent but slow
+The L<DBD::Gofer::Policy::Base> class is the base class for all the policy
+packages and describes all the available policies.
 
-policy=classic is a reasonable compromise, and is the default
+Three policy packages are supplied with DBD::Gofer:
 
-policy=rush is fastest but may require code changes in application
+L<DBD::Gofer::Policy::pedantic> is most 'transparent' but slowest because it
+makes more  round-trips to the Gofer server.
 
-See L<DBD::Gofer::Policy::Base> for more information.
+L<DBD::Gofer::Policy::classic> is a reasonable compromise - it's the default 
policy.
 
-=head1 AUTHOR AND COPYRIGHT
+L<DBD::Gofer::Policy::rush> is fastest, but may require code changes in your 
applications.
 
-The DBD::Gofer, DBD::Gofer::* and DBI::Gofer::* modules are
-Copyright (c) 2007 Tim Bunce. Ireland.  All rights reserved.
+Generally the default C<classic> policy is fine. When first testing an existing
+application with Gofer it is a good idea to start with the C<pedantic> policy
+first and then switch to C<classic> or a custom policy, for final testing.
 
-You may distribute under the terms of either the GNU General Public License or
-the Artistic License, as specified in the Perl README file.
+
+=head1 AUTHOR
+
+Tim Bunce, L<http://www.linkedin.com/in/timbunce>
+
+=head1 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 L<perlartistic>.
 
 =head1 ACKNOWLEDGEMENTS
 

Modified: dbi/trunk/lib/DBD/Gofer/Policy/Base.pm
==============================================================================
--- dbi/trunk/lib/DBD/Gofer/Policy/Base.pm      (original)
+++ dbi/trunk/lib/DBD/Gofer/Policy/Base.pm      Sun May 13 08:45:04 2007
@@ -83,11 +83,40 @@
 
 1;
 
-=head1 AUTHOR AND COPYRIGHT
+=head1 NAME
 
-The DBD::Gofer, DBD::Gofer::* and DBI::Gofer::* modules are
-Copyright (c) 2007 Tim Bunce. Ireland.  All rights reserved.
+DBD::Gofer::Policy::Base - Base class for DBD::Gofer policies
 
-You may distribute under the terms of either the GNU General Public License or
-the Artistic License, as specified in the Perl README file.
+=head1 SYNOPSIS
+
+  $dbh = DBI->connect("dbi:Gofer:transport=...;policy=...", ...)
+
+=head1 DESCRIPTION
+
+The Base policy is not used directly. You should use a policy class derived 
from it.
+
+Policies included with DBD::Gofer include:
+
+L<DBD::Gofer::Policy::pedantic> - strictest but slowest
+
+L<DBD::Gofer::Policy::classic> - reasonable strictness and speed - the default
+
+L<DBD::Gofer::Policy::rush> - least strictness, fewest round-trips
+
+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.
+
+=head1 AUTHOR
+
+Tim Bunce, L<http://www.linkedin.com/in/timbunce>
+
+=head1 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 L<perlartistic>.
+
+=cut
 

Modified: dbi/trunk/lib/DBD/Gofer/Policy/classic.pm
==============================================================================
--- dbi/trunk/lib/DBD/Gofer/Policy/classic.pm   (original)
+++ dbi/trunk/lib/DBD/Gofer/Policy/classic.pm   Sun May 13 08:45:04 2007
@@ -48,11 +48,32 @@
 
 1;
 
-=head1 AUTHOR AND COPYRIGHT
+=head1 NAME
 
-The DBD::Gofer, DBD::Gofer::* and DBI::Gofer::* modules are
-Copyright (c) 2007 Tim Bunce. Ireland.  All rights reserved.
+DBD::Gofer::Policy::classic - The 'classic' policy for DBD::Gofer
 
-You may distribute under the terms of either the GNU General Public License or
-the Artistic License, as specified in the Perl README file.
+=head1 SYNOPSIS
+
+  $dbh = DBI->connect("dbi:Gofer:transport=...;policy=classic", ...)
+
+The C<classic> policy is the default DBD::Gofer policy, so need not be 
included in the DSN.
+
+=head1 DESCRIPTION
+
+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.
+
+=head1 AUTHOR
+
+Tim Bunce, L<http://www.linkedin.com/in/timbunce>
+
+=head1 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 L<perlartistic>.
+
+=cut
 

Modified: dbi/trunk/lib/DBD/Gofer/Policy/pedantic.pm
==============================================================================
--- dbi/trunk/lib/DBD/Gofer/Policy/pedantic.pm  (original)
+++ dbi/trunk/lib/DBD/Gofer/Policy/pedantic.pm  Sun May 13 08:45:04 2007
@@ -18,11 +18,36 @@
 
 1;
 
-=head1 AUTHOR AND COPYRIGHT
+=head1 NAME
 
-The DBD::Gofer, DBD::Gofer::* and DBI::Gofer::* modules are
-Copyright (c) 2007 Tim Bunce. Ireland.  All rights reserved.
+DBD::Gofer::Policy::pedantic - The 'pedantic' policy for DBD::Gofer
 
-You may distribute under the terms of either the GNU General Public License or
-the Artistic License, as specified in the Perl README file.
+=head1 SYNOPSIS
+
+  $dbh = DBI->connect("dbi:Gofer:transport=...;policy=pedantic", ...)
+
+=head1 DESCRIPTION
+
+The C<pedantic> policy tries to be as transparent as possible. To do this it
+makes round-trips to the server for almost every DBI method call.
+
+This is the best policy to use when first testing existing code with Gofer.
+Once it's working well you should consider moving to the C<classic> policy or 
defining your own policy class.
+
+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.
+
+=head1 AUTHOR
+
+Tim Bunce, L<http://www.linkedin.com/in/timbunce>
+
+=head1 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 L<perlartistic>.
+
+=cut
 

Modified: dbi/trunk/lib/DBD/Gofer/Policy/rush.pm
==============================================================================
--- dbi/trunk/lib/DBD/Gofer/Policy/rush.pm      (original)
+++ dbi/trunk/lib/DBD/Gofer/Policy/rush.pm      Sun May 13 08:45:04 2007
@@ -58,11 +58,33 @@
 
 1;
 
-=head1 AUTHOR AND COPYRIGHT
+=head1 NAME
 
-The DBD::Gofer, DBD::Gofer::* and DBI::Gofer::* modules are
-Copyright (c) 2007 Tim Bunce. Ireland.  All rights reserved.
+DBD::Gofer::Policy::rush - The 'rush' policy for DBD::Gofer
 
-You may distribute under the terms of either the GNU General Public License or
-the Artistic License, as specified in the Perl README file.
+=head1 SYNOPSIS
+
+  $dbh = DBI->connect("dbi:Gofer:transport=...;policy=rush", ...)
+
+=head1 DESCRIPTION
+
+The C<rush> policy tries to make as few round-trips as possible.
+It's the opposite end of the policy spectrum to the C<pedantic> policy.
+
+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.
+
+=head1 AUTHOR
+
+Tim Bunce, L<http://www.linkedin.com/in/timbunce>
+
+=head1 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 L<perlartistic>.
+
+=cut
 

Modified: dbi/trunk/lib/DBD/Gofer/Transport/Base.pm
==============================================================================
--- dbi/trunk/lib/DBD/Gofer/Transport/Base.pm   (original)
+++ dbi/trunk/lib/DBD/Gofer/Transport/Base.pm   Sun May 13 08:45:04 2007
@@ -18,6 +18,7 @@
     trace
     go_dsn
     go_url
+    go_policy
     go_timeout
     go_retry_hook
     go_retry_limit
@@ -147,9 +148,13 @@
         return 0;
     }
 
-    my $meta = $request->meta;
     my $retry_limit = $self->go_retry_limit;
-    $retry_limit = 2 unless defined $retry_limit;
+    # $retry_limit = 2 unless defined $retry_limit; # not safe enough to do 
this
+    if (!$retry_limit) {
+        $self->trace_msg("response_needs_retransmit: retries disabled 
(retry_limit not set)\n");
+        return 0;
+    }
+    my $meta = $request->meta;
     if (($meta->{retry_count}||=0) >= $retry_limit) {
         $self->trace_msg("response_needs_retransmit: $meta->{retry_count} is 
too many retries\n");
         return 0;
@@ -240,19 +245,22 @@
 
 Tracing of gofer requests and reponses can be enabled by setting the
 C<DBD_GOFER_TRACE> environment variable. A value of 1 gives a reasonably
-compact summary o each request and response. A value of 2 or more gives a
+compact summary of each request and response. A value of 2 or more gives a
 detailed, and voluminous, dump.
 
 The trace is written using DBI->trace_msg() and so is written to the default
 DBI trace output, which is usually STDERR.
 
-=head1 AUTHOR AND COPYRIGHT
+=head1 AUTHOR
+
+Tim Bunce, L<http://www.linkedin.com/in/timbunce>
+
+=head1 LICENCE AND COPYRIGHT
 
-The DBD::Gofer, DBD::Gofer::* and DBI::Gofer::* modules are
-Copyright (c) 2007 Tim Bunce. Ireland.  All rights reserved.
+Copyright (c) 2007, Tim Bunce, Ireland. All rights reserved.
 
-You may distribute under the terms of either the GNU General Public License or
-the Artistic License, as specified in the Perl README file.
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself. See L<perlartistic>.
 
 =head1 SEE ALSO
 

Modified: dbi/trunk/lib/DBD/Gofer/Transport/null.pm
==============================================================================
--- dbi/trunk/lib/DBD/Gofer/Transport/null.pm   (original)
+++ dbi/trunk/lib/DBD/Gofer/Transport/null.pm   Sun May 13 08:45:04 2007
@@ -89,17 +89,21 @@
 
 The C<t/85gofer.t> script in the DBI distribution includes a comparative 
benchmark.
 
-=head1 AUTHOR AND COPYRIGHT
+=head1 AUTHOR
 
-The DBD::Gofer, DBD::Gofer::* and DBI::Gofer::* modules are
-Copyright (c) 2007 Tim Bunce. Ireland.  All rights reserved.
+Tim Bunce, L<http://www.linkedin.com/in/timbunce>
 
-You may distribute under the terms of either the GNU General Public License or
-the Artistic License, as specified in the Perl README file.
+=head1 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 L<perlartistic>.
 
 =head1 SEE ALSO
 
+L<DBD::Gofer::Transport::Base>
+
 L<DBD::Gofer>
 
 =cut

Modified: dbi/trunk/lib/DBD/Gofer/Transport/pipeone.pm
==============================================================================
--- dbi/trunk/lib/DBD/Gofer/Transport/pipeone.pm        (original)
+++ dbi/trunk/lib/DBD/Gofer/Transport/pipeone.pm        Sun May 13 08:45:04 2007
@@ -209,7 +209,7 @@
 __END__
 
 =head1 NAME
-    
+
 DBD::Gofer::Transport::pipeone - DBD::Gofer client transport for testing
 
 =head1 SYNOPSIS
@@ -233,18 +233,21 @@
 It also provides a base class for the much more useful 
L<DBD::Gofer::Transport::stream>
 transport.
 
-=head1 AUTHOR AND COPYRIGHT
+=head1 AUTHOR
+
+Tim Bunce, L<http://www.linkedin.com/in/timbunce>
 
-The DBD::Gofer, DBD::Gofer::* and DBI::Gofer::* modules are
-Copyright (c) 2007 Tim Bunce. Ireland.  All rights reserved.
+=head1 LICENCE AND COPYRIGHT
 
-You may distribute under the terms of either the GNU General Public License or
-the Artistic License, as specified in the Perl README file.
+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 L<perlartistic>.
 
 =head1 SEE ALSO
 
+L<DBD::Gofer::Transport::Base>
+
 L<DBD::Gofer>
 
 =cut
-

Modified: dbi/trunk/lib/DBD/Gofer/Transport/stream.pm
==============================================================================
--- dbi/trunk/lib/DBD/Gofer/Transport/stream.pm (original)
+++ dbi/trunk/lib/DBD/Gofer/Transport/stream.pm Sun May 13 08:45:04 2007
@@ -211,7 +211,7 @@
 __END__
 
 =head1 NAME
-    
+
 DBD::Gofer::Transport::stream - DBD::Gofer transport for stdio streaming
 
 =head1 SYNOPSIS
@@ -270,17 +270,21 @@
 
 Decide on default for persistent connection - on or off? limits? ttl?
 
-=head1 AUTHOR AND COPYRIGHT
+=head1 AUTHOR
+
+Tim Bunce, L<http://www.linkedin.com/in/timbunce>
+
+=head1 LICENCE AND COPYRIGHT
 
-The DBD::Gofer, DBD::Gofer::* and DBI::Gofer::* modules are
-Copyright (c) 2007 Tim Bunce. Ireland.  All rights reserved.
+Copyright (c) 2007, Tim Bunce, Ireland. All rights reserved.
 
-You may distribute under the terms of either the GNU General Public License or
-the Artistic License, as specified in the Perl README file.
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself. See L<perlartistic>.
 
 =head1 SEE ALSO
 
+L<DBD::Gofer::Transport::Base>
+
 L<DBD::Gofer>
 
 =cut
-

Modified: dbi/trunk/lib/DBI/Gofer/Execute.pm
==============================================================================
--- dbi/trunk/lib/DBI/Gofer/Execute.pm  (original)
+++ dbi/trunk/lib/DBI/Gofer/Execute.pm  Sun May 13 08:45:04 2007
@@ -45,6 +45,7 @@
     max_cached_dbh_per_drh => 1,
     max_cached_sth_per_dbh => 1,
     forced_response_attributes => {},
+    forced_gofer_random => 1,
     stats => {},
 );
 
@@ -164,6 +165,13 @@
     $dsn = $self->forced_connect_dsn || $dsn || $self->default_connect_dsn
         or die "No forced_connect_dsn, requested dsn, or default_connect_dsn 
for request";
 
+    # ensure this connect_cached doesn't have the same args as the client
+    # because that causes subtle issues if in the same process (ie 
transport=null)
+    # include pid to avoid problems with forking (ie null transport in 
mod_perl)
+    # include gofer-random to avoid random behaviour leaking to other handles
+    my $extra_cache_key = join "|",
+        __PACKAGE__, "$$", $self->{forced_gofer_random} || 
$ENV{DBI_GOFER_RANDOM} || '';
+
     # XXX implement our own private connect_cached method? (with rate-limited 
ping)
     my $dbh = DBI->$connect_method($dsn, undef, undef, {
 
@@ -192,18 +200,17 @@
         # if errors happened before the main part of the request was executed
         Executed => 0,
 
-        # ensure this connect_cached doesn't have the same args as the client
-        # because that causes subtle issues if in the same process (ie 
transport=null)
-       # include pid to avoid problems with forking (ie null transport in 
mod_perl)
-        dbi_go_execute_unique => __PACKAGE__."$$",
+        # ensure connect_cached is sufficiently distinct
+        dbi_go_execute_unique => $extra_cache_key,
     });
 
     $dbh->{ShowErrorStatement} = 1 if $local_log;
 
-    # note that this affects previously cached handles because 
$ENV{DBI_GOFER_RANDOM}
-    # isn't included in the cache key. Could add a go_rand_fail=>... attribute.
-    $self->_install_rand_callbacks($dbh, $ENV{DBI_GOFER_RANDOM})
-        if $ENV{DBI_GOFER_RANDOM};
+    # XXX should probably just be a Callbacks => arg to connect_cached
+    # with a cache of pre-built callback hoks (memoized, without $self) 
+    if (my $random = $self->{forced_gofer_random} || $ENV{DBI_GOFER_RANDOM}) {
+        $self->_install_rand_callbacks($dbh, $random);
+    }
 
     my $CK = $dbh->{CachedKids};
     if ($CK && keys %$CK > $self->{max_cached_sth_per_dbh}) {
@@ -708,6 +715,10 @@
 
 Note that this setting can significantly increase memory use. Use with caution.
 
+=head2 forced_gofer_random
+
+Enable forced random failures and/or delays for testing. See 
L</DBI_GOFER_RANDOM> below.
+
 =head1 DRIVER-SPECIFIC ISSUES
 
 Gofer needs to know about any driver-private attributes that should have their
@@ -718,6 +729,52 @@
 the driver being used. Currently hard-coded details are available for the
 mysql, Pg, Sybase, and SQLite drivers.
 
+=head1 TESTING
+
+DBD::Gofer, DBD::Execute and related packages are well tested by executing the
+DBI test suite with DBI_AUTOPROXY configured to route all DBI calls via 
DBD::Gofer.
+
+Because Gofer includes timeout and 'retry on error' mechanisms there is a need
+for some way to trigger delays and/or errors. This can be done via the
+C<forced_gofer_random> configuration item, or else the DBI_GOFER_RANDOM 
environment
+variable.
+
+=head2 DBI_GOFER_RANDOM
+
+The value of the C<forced_gofer_random> configuration item (or else the
+DBI_GOFER_RANDOM environment variable) is treated as a series of tokens
+separated by commas.
+
+The tokens can be one of three types:
+
+=over 4
+
+=item fail=R%
+
+Set the current random failure rate to R where R is a percentage. The value R 
can be floating point, e.g., C<fail=0.05%>.
+
+=item delayN=R%
+
+Set the current random delay rate to R where R is a percentage, and set the
+current delay duration to N seconds. The values of R and N can be floating 
point,
+e.g., C<delay120=0.1%>.
+
+=item methodname
+
+Applies the current current random failure rate and random delay rate and 
duration to the named method.
+If neither a fail nor delay have been set yet then a warning is generated.
+
+=back
+
+For example:
+
+  $executor = DBI::Gofer::Execute->new( {
+    forced_gofer_random => "fail=0.01%,do,delay60=1%,execute",
+  });
+
+will cause the do() method to fail for 0.01% of calls, and the execute() 
method to
+fail for 0.01% of calls and be delayed by 60 seconds on 1% of calls.
+
 =head1 AUTHOR
 
 Tim Bunce, L<http://www.linkedin.com/in/timbunce>

Modified: dbi/trunk/lib/DBI/Gofer/Request.pm
==============================================================================
--- dbi/trunk/lib/DBI/Gofer/Request.pm  (original)
+++ dbi/trunk/lib/DBI/Gofer/Request.pm  Sun May 13 08:45:04 2007
@@ -17,7 +17,7 @@
 
 use constant GOf_REQUEST_IDEMPOTENT => 0x0001;
 use constant GOf_REQUEST_READONLY   => 0x0002;
-    
+
 our @EXPORT = qw(GOf_REQUEST_IDEMPOTENT GOf_REQUEST_READONLY);
 
 
@@ -151,6 +151,13 @@
 
 1;
 
+=head1 NAME
+
+DBI::Gofer::Request - Encapsulate a request from DBD::Gofer to 
DBI::Gofer::Execute
+
+=head1 DESCRIPTION
+
+This is an internal class.
 
 =head1 AUTHOR
 
@@ -163,3 +170,4 @@
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself. See L<perlartistic>.
 
+=cut

Modified: dbi/trunk/lib/DBI/Gofer/Response.pm
==============================================================================
--- dbi/trunk/lib/DBI/Gofer/Response.pm (original)
+++ dbi/trunk/lib/DBI/Gofer/Response.pm Sun May 13 08:45:04 2007
@@ -155,11 +155,24 @@
 
 1;
 
-=head1 AUTHOR AND COPYRIGHT
+=head1 NAME
 
-The DBD::Gofer, DBD::Gofer::* and DBI::Gofer::* modules are
-Copyright (c) 2007 Tim Bunce. Ireland.  All rights reserved.
+DBI::Gofer::Response - Encapsulate a response from DBI::Gofer::Execute to 
DBD::Gofer
 
-You may distribute under the terms of either the GNU General Public License or
-the Artistic License, as specified in the Perl README file.
+=head1 DESCRIPTION
+
+This is an internal class.
+
+=head1 AUTHOR
+
+Tim Bunce, L<http://www.linkedin.com/in/timbunce>
+
+=head1 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 L<perlartistic>.
+
+=cut
 

Modified: dbi/trunk/lib/DBI/Gofer/Transport/Base.pm
==============================================================================
--- dbi/trunk/lib/DBI/Gofer/Transport/Base.pm   (original)
+++ dbi/trunk/lib/DBI/Gofer/Transport/Base.pm   Sun May 13 08:45:04 2007
@@ -17,7 +17,6 @@
 
 __PACKAGE__->mk_accessors(qw(
     trace
-    go_policy
     serializer_obj
 ));
 
@@ -140,11 +139,28 @@
 
 1;
 
-=head1 AUTHOR AND COPYRIGHT
+=head1 NAME
 
-The DBD::Gofer, DBD::Gofer::* and DBI::Gofer::* modules are
-Copyright (c) 2007 Tim Bunce. Ireland.  All rights reserved.
+DBI::Gofer::Transport::Base - Base class for Gofer transports
 
-You may distribute under the terms of either the GNU General Public License or
-the Artistic License, as specified in the Perl README file.
+=head1 DESCRIPTION
+
+This is the base class for server-side Gofer transports.
+
+It's also the base class for the client-side base class 
L<DBD::Gofer::Transport::Base>.
+
+This is an internal class.
+
+=head1 AUTHOR
+
+Tim Bunce, L<http://www.linkedin.com/in/timbunce>
+
+=head1 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 L<perlartistic>.
+
+=cut
 

Modified: dbi/trunk/lib/DBI/Gofer/Transport/pipeone.pm
==============================================================================
--- dbi/trunk/lib/DBI/Gofer/Transport/pipeone.pm        (original)
+++ dbi/trunk/lib/DBI/Gofer/Transport/pipeone.pm        Sun May 13 08:45:04 2007
@@ -37,21 +37,23 @@
 __END__
 
 =head1 NAME
-    
+
 DBI::Gofer::Transport::pipeone - DBD::Gofer server-side transport for pipeone
 
 =head1 SYNOPSIS
 
 See L<DBD::Gofer::Transport::pipeone>.
 
-=head1 AUTHOR AND COPYRIGHT
+=head1 AUTHOR
+
+Tim Bunce, L<http://www.linkedin.com/in/timbunce>
 
-The DBD::Gofer, DBD::Gofer::* and DBI::Gofer::* modules are
-Copyright (c) 2007 Tim Bunce. Ireland.  All rights reserved.
+=head1 LICENCE AND COPYRIGHT
 
-You may distribute under the terms of either the GNU General Public License or
-the Artistic License, as specified in the Perl README file.
+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 L<perlartistic>.
 
 =cut
 

Modified: dbi/trunk/lib/DBI/Gofer/Transport/stream.pm
==============================================================================
--- dbi/trunk/lib/DBI/Gofer/Transport/stream.pm (original)
+++ dbi/trunk/lib/DBI/Gofer/Transport/stream.pm Sun May 13 08:45:04 2007
@@ -55,21 +55,22 @@
 __END__
 
 =head1 NAME
-    
+
 DBI::Gofer::Transport::stream - DBD::Gofer server-side transport for stream
 
 =head1 SYNOPSIS
 
 See L<DBD::Gofer::Transport::stream>.
 
-=head1 AUTHOR AND COPYRIGHT
+=head1 AUTHOR
 
-The DBD::Gofer, DBD::Gofer::* and DBI::Gofer::* modules are
-Copyright (c) 2007 Tim Bunce. Ireland.  All rights reserved.
+Tim Bunce, L<http://www.linkedin.com/in/timbunce>
 
-You may distribute under the terms of either the GNU General Public License or
-the Artistic License, as specified in the Perl README file.
+=head1 LICENCE AND COPYRIGHT
 
+Copyright (c) 2007, Tim Bunce, Ireland. All rights reserved.
 
-=cut
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself. See L<perlartistic>.
 
+=cut

Modified: dbi/trunk/t/85gofer.t
==============================================================================
--- dbi/trunk/t/85gofer.t       (original)
+++ dbi/trunk/t/85gofer.t       Sun May 13 08:45:04 2007
@@ -127,7 +127,7 @@
     $dsn = $remote_dsn if $transport eq 'no';
     print " $dsn\n";
 
-    my $dbh = DBI->connect($dsn, undef, undef, { RaiseError => 1, PrintError 
=> 0 } );
+    my $dbh = DBI->connect($dsn, undef, undef, { RaiseError => 1, PrintError 
=> 0, ShowErrorStatement => 1 } );
     die "$test_run_tag aborted: $DBI::errstr\n" unless $dbh; # no point 
continuing
     ok $dbh, sprintf "should connect to %s", $dsn;
 

Reply via email to