Author: REHSACK
Date: Fri Dec 31 04:21:54 2010
New Revision: 14623
Added:
dbi/branches/sqlengine/ex/corogofer.pl
- copied unchanged from r14622, /dbi/trunk/ex/corogofer.pl
dbi/branches/sqlengine/lib/DBD/Gofer/Transport/corostream.pm
- copied unchanged from r14622,
/dbi/trunk/lib/DBD/Gofer/Transport/corostream.pm
Modified:
dbi/branches/sqlengine/ (props changed)
dbi/branches/sqlengine/Changes
dbi/branches/sqlengine/MANIFEST
dbi/branches/sqlengine/lib/DBD/Gofer/Transport/stream.pm
Log:
Merging r14582 through r14622
Modified: dbi/branches/sqlengine/Changes
==============================================================================
--- dbi/branches/sqlengine/Changes (original)
+++ dbi/branches/sqlengine/Changes Fri Dec 31 04:21:54 2010
@@ -6,29 +6,33 @@
=cut
-=head2 Changes in DBI 1.616 (svn r14486) 15th October 2010
+=head2 Changes in DBI 1.616 (svn r14616) 30th December 2010
- Documented dbd_st_execute return (Martin J. Evans)
Fixed spurious dbi_profile lines written to the log when
profiling is enabled and a trace flag, like SQL, is used.
Fixed to recognize SQL::Statement errors even if instantiated
with RaiseError=0 (Jens Rehsack)
- Optimized connect() to remove redundant FETCH of \%attrib values.
- Adding fix to recognize SQL::Statement errors even if instantiated
- with RaiseError=0 (Jens Rehsack)
- Adding new attribute "sql_dialect" to DBI::DBD::SqlEngine to allow
- users control used SQL dialect (ANSI, CSV or AnyData), defaults to
- CSV (Jens Rehsack)
- Improve initialization phases in DBI::DBD::SqlEngine (Jens Rehsack)
- Add documentation for DBI::DBD::SqlEngine attributes (Jens Rehsack)
Fixed RT#61513 by catching attribute assignment to tied table access
interface (Jens Rehsack)
Fixing some misbehavior of DBD::File when running within the Gofer
server.
+ Fixed compiler warnings RT#62640
+
+ Optimized connect() to remove redundant FETCH of \%attrib values.
+ Improved initialization phases in DBI::DBD::SqlEngine (Jens Rehsack)
+
+ Added DBD::Gofer::Transport::corostream. An experimental proof-of-concept
+ transport that enables asynchronous database calls with few code changes.
+ It enables asynchronous use of DBI frameworks like DBIx::Class.
- Fixed typo in InactiveDestroy thanks to Emmanuel Rodriguez.
Added additional notes on DBDs which avoid creating a statement in
- the do method and the effects on error handlers (Martin J. Evans)
+ the do() method and the effects on error handlers (Martin J. Evans)
+ Adding new attribute "sql_dialect" to DBI::DBD::SqlEngine to allow
+ users control used SQL dialect (ANSI, CSV or AnyData), defaults to
+ CSV (Jens Rehsack)
+ Add documentation for DBI::DBD::SqlEngine attributes (Jens Rehsack)
+ Documented dbd_st_execute return (Martin J. Evans)
+ Fixed typo in InactiveDestroy thanks to Emmanuel Rodriguez.
=head2 Changes in DBI 1.615 (svn r14438) 21st September 2010
Modified: dbi/branches/sqlengine/MANIFEST
==============================================================================
--- dbi/branches/sqlengine/MANIFEST (original)
+++ dbi/branches/sqlengine/MANIFEST Fri Dec 31 04:21:54 2010
@@ -21,6 +21,7 @@
dbixs_rev.pl Utility to write dbixs_rev.h
ex/perl_dbi_nulls_test.pl A test script for forms of IS NULL
qualification in SQL
ex/profile.pl A test script for DBI::Profile
+ex/corogofer.pl A test script for
DBD::Gofer::Transport::corostream
lib/Bundle/DBI.pm A bundle for automatic installation via CPAN.
lib/DBD/DBM.pm A driver for DBM files (uses DBD::File)
lib/DBD/ExampleP.pm A very simple example Driver module
@@ -34,6 +35,7 @@
lib/DBD/Gofer/Policy/classic.pm Reasonable policy for typical usage
lib/DBD/Gofer/Policy/rush.pm Raw speed, fewest round trips, least
transparent
lib/DBD/Gofer/Transport/Base.pm Base class for DBD::Gofer driver transport
classes
+lib/DBD/Gofer/Transport/corostream.pm Async Gofer transport using Coro and
AnyEvent
lib/DBD/Gofer/Transport/null.pm DBD::Gofer transport that executes in same
process (for testing)
lib/DBD/Gofer/Transport/pipeone.pm DBD::Gofer transport to new subprocess for
each request
lib/DBD/Gofer/Transport/stream.pm DBD::Gofer transport for ssh etc
@@ -95,6 +97,7 @@
t/41prof_dump.t
t/42prof_data.t
t/43prof_env.t
+t/48dbi_dbd_sqlengine.t Tests for DBI::DBD::SqlEngine
t/49dbd_file.t DBD::File API and very basic tests
t/50dbm_simple.t simple DBD::DBM tests
t/51dbm_file.t extended DBD::File tests (through DBD::DBM)
Modified: dbi/branches/sqlengine/lib/DBD/Gofer/Transport/stream.pm
==============================================================================
--- dbi/branches/sqlengine/lib/DBD/Gofer/Transport/stream.pm (original)
+++ dbi/branches/sqlengine/lib/DBD/Gofer/Transport/stream.pm Fri Dec 31
04:21:54 2010
@@ -129,13 +129,14 @@
local $\;
$wfh->print($encoded_request) # autoflush enabled
or do {
- # XXX should make new connection and retry
+ my $err = $!;
+ # XXX could/should make new connection and retry
$self->_connection_kill;
- die "Error sending request: $!";
+ die "Error sending request: $err";
};
$self->trace_msg("Request sent: $encoded_request\n",0) if $trace >= 4;
- return;
+ return undef; # indicate no response yet (so caller calls
receive_response_by_transport)
}