Author: timbo
Date: Sat Nov  6 13:03:57 2004
New Revision: 567

Modified:
   dbi/trunk/Changes
   dbi/trunk/DBI.pm
   dbi/trunk/Roadmap.pod
   dbi/trunk/ToDo
   dbi/trunk/test.pl
Log:
Fixed space-parsing bug in DBI::SQL::Nano thanks to Jeff Zucker. (prev checkin)
Fixed a couple of bad links in docs thanks to Graham Barr.
Fixed test.pl Win32 undef warning thanks to H.Merijn Brand & David Repko.
Updated Roadmap and ToDo


Modified: dbi/trunk/Changes
==============================================================================
--- dbi/trunk/Changes   (original)
+++ dbi/trunk/Changes   Sat Nov  6 13:03:57 2004
@@ -4,6 +4,13 @@
 
 =cut
 
+=head2 Changes in DBI 1.46 (svn rev XXX),    5th November 2004
+
+  Fixed space-parsing bug in DBI::SQL::Nano thanks to Jeff Zucker.
+  Fixed a couple of bad links in docs thanks to Graham Barr.
+  Fixed test.pl Win32 undef warning thanks to H.Merijn Brand & David Repko.
+  Updated Roadmap and ToDo
+
 =head2 Changes in DBI 1.45 (svn rev 480),    6th October 2004
 
   Fixed DBI::DBD code for drivers broken in 1.44.

Modified: dbi/trunk/DBI.pm
==============================================================================
--- dbi/trunk/DBI.pm    (original)
+++ dbi/trunk/DBI.pm    Sat Nov  6 13:03:57 2004
@@ -138,9 +138,9 @@
 
 Extensions to the DBI API often use the C<DBIx::*> namespace.
 See L</Naming Conventions and Name Space>. DBI extension modules
-can be found at L<"http://search.cpan.org/search?mode=module&query=DBIx%3A%3A";>.
+can be found at L<http://search.cpan.org/search?mode=module&query=DBIx>.
 And all modules related to the DBI can be found at
-L<"http://search.cpan.org/search?query=DBI&mode=all";>.
+L<http://search.cpan.org/search?query=DBI&mode=all>.
 
 =cut
 

Modified: dbi/trunk/Roadmap.pod
==============================================================================
--- dbi/trunk/Roadmap.pod       (original)
+++ dbi/trunk/Roadmap.pod       Sat Nov  6 13:03:57 2004
@@ -1,8 +1,9 @@
+
 =head1 NAME
 
-DBI ROADMAP - Planned Changes and Enhancements for the DBI
+DBI::Roadmap - Planned Changes and Enhancements for the DBI
 
-Tim Bunce - 5th October 2004
+Tim Bunce - 5th November 2004
 
 =head2 SYNOPSIS
 
@@ -17,11 +18,12 @@
 
 In the 10 years since the DBI was first released, incremental
 development has continued at a reasonably steady pace. A growing
-number of significant issues have, however, not been addressed by
-this incremental development process.
+number of issues and significant enhancements have, however, not
+been addressed by this incremental development process.
 
 The planned changes cover testing, performance, high availability
-and load balancing, batch statements, Unicode, portability, and more.
+and load balancing, batch statements, Unicode, database portability,
+and more.
 
 Addressing these issues now, in coordinated way, will help ensure
 maximum future functionality with minimal disruptive (incompatible)
@@ -41,12 +43,14 @@
 Batch statements are a sequence of SQL statements, or a stored procedure
 containing a sequence of SQL statements, which can be executed as a whole.
 
-Currently the DBI has no standard interface for dealing with batch statements.
-After considerable discussion, an interface design has been agreed upon with driver
-authors, but has not yet been implemented.
-
-This would enable greater application portability between databases,
-and greater performance for databases that directly support batch statements.
+Currently the DBI has no standard interface for dealing with multiple
+results from batch statements.  After considerable discussion, an
+interface design has been agreed upon with driver authors, but has
+not yet been implemented.
+
+These changes would enable greater application portability between
+databases, and greater performance for databases that directly
+support batch statements.
 
 =head2 Unicode
 
@@ -56,19 +60,21 @@
 
 * Define expected behavior for fetching data and binding parameters.
 
-* Fix 'leaking' of UTF8 flag from one row to the next.
-
 * Provide interfaces to support Unicode issues for XS and pure Perl drivers
 and applications.
 
-This would smooth the transition to Unicode for many applications and drivers.
+* Provide functions for applications to help diagnose inconsistencies
+between byte string contents and setting of the SvUTF8 flag.
+
+These changes would smooth the transition to Unicode for many
+applications and drivers.
 
 
 =head2 Testing
 
 The DBI has a test suite. Every driver has a test suite.  Each is limited in
 its scope.  The driver test suite is testing for behavior that the driver
-author thinks the DBI specifies, but may be subtly incorrect.  These test
+author I<thinks> the DBI specifies, but may be subtly incorrect.  These test
 suites are poorly maintained because the return on investment for a single
 driver is too low to provide sufficient incentive.
 
@@ -76,7 +82,7 @@
 It would:
 
 * Ensure all drivers conform to the DBI specification.
-Easing the porting applications between databases, and the implementation of
+Easing the porting of applications between databases, and the implementation of
 database independent modules layered over the DBI.
 
 * Improve the DBI specification by clarifying unclear issues in order to
@@ -93,6 +99,8 @@
 various "transparent" drivers, such as DBD::Proxy and DBD::Multiplex,
 by automatically running the test suite through them.
 
+These changes would improve the quality of all applications using the DBI.
+
 
 =head2 Performance
 
@@ -125,6 +133,9 @@
 The DBI needs to define a standard interface for this so drivers can
 implement it in a portable way, where possible.
 
+These changes would significantly enhance the performance of the
+DBI and many applications which use the DBI.
+
 
 =head2 Introspection
 
@@ -144,17 +155,13 @@
 weak references to child handles would solve the problem without
 creating reference loops.
 
-* A DBI handle is a reference to a tied hash and so has an 'outer'
-hash that the handle reference points to and an 'inner' hash holding
-the DBI data.  By allowing the inner handle to be changed, for
-example swapped with a different handle, many new behaviors become
-possible. For example a database handle to a database that has crashed
-could have its inner handle changed to a new connection to a replica.
-
 * It is often useful to know which handle attributes have been changed
 since the handle was created (e.g., in mod_perl where a handle needs
 to be reset or cloned). This will become more important as developers
-start exploring the ability to change the inner handle.
+start exploring use of the newly added $h1->swap_inner_handle($h2) method.
+
+These changes would simplify and improve the stability of many
+advanced uses of the DBI.
 
 
 =head2 High Availability and Load Balancing
@@ -170,18 +177,19 @@
 applications a simpler proxy architecture that operates with a single
 round-trip to the server would be sufficient and preferable.
 
-New proxy client and server classes are needed, which could be subclassed to
-support specific client to server transport mechanisms (such as HTTP and
-Spread::Queue).
-
-Apart from the efficiency gains, this would also enable the use of
-a load-balanced pool of stateless servers.
+New proxy client and server classes are needed, which could be
+subclassed to support specific client to server transport mechanisms
+(such as HTTP and Spread::Queue).  Apart from the efficiency gains,
+this would also enable the use of a load-balanced pool of stateless
+servers.
 
 * The DBI currently offers no support for distributed transactions.
 The most useful elements of the standard XA distributed transaction interface
 standard could be included in the DBI specification.  Drivers for databases
 which support distributed transactions could then be extended to support it.
 
+These changes would enable new kinds of DBI applications.
+
 
 =head2 Extensibility
 
@@ -205,6 +213,9 @@
 as a row being fetched, would enable utility modules, for example, to modify
 the behavior of a handle independent of any subclassing in use.
 
+These changes would enable deeper and cleaner integration between
+applications, layered modules, and the DBI.
+
 
 =head2 Database Portability
 
@@ -212,7 +223,7 @@
 dialects.  This is the main hurdle limiting database portability
 for DBI applications.
 
-The goal is not to fully parse the SQL and rewrite it in a different
+The goal is I<not> to fully parse the SQL and rewrite it in a different
 dialect.  That's well beyond the scope of the DBI and should be
 left to layered modules.  A simple token rewriting mechanism
 for five comment styles, two quoting styles, four placeholder styles,
@@ -230,6 +241,9 @@
 all DATE type columns, for example, can be set to be returned in the standard
 format.
 
+These changes would enable greater database portability for applications
+and greater functionality for layered modules.
+
 
 =head2 Debugability
 
@@ -245,10 +259,21 @@
 * Integration with the Perl debugger would make it simpler to perform
 actions on a per-handle basis (such as breakpoint on execute,
 breakpoint on error).
+ 
+These changes would enable more rapid application development and
+fault finding.
 
 
 =head2 Other Enhancements
 
+* Clarify current intellectual property status, including a review
+  of past contributions.
+
+* Establishing a procedure for vetting future contributions for any
+  intellectual property issues.
+
+* Reduce the work needed to create new database interface drivers.
+
 * Definition of an interface to support scrollable cursors.
 
 
@@ -270,16 +295,15 @@
 I plan to better define the API between the DBI and the drivers and
 use that API as the primary API for the 'raw' Parrot database interface.
 This project is known a Parrot DBDI (for "DataBase Driver Interface").
-Here's the announcement:
-
-  http://groups.google.com/[EMAIL PROTECTED]
+The announcement can be read in
+L<http://groups.google.com/[EMAIL PROTECTED]>.
 
 The bulk of the work will be translating the DBI C and Perl base class
 code into Parrot PIR, or a suitable language that generates PIR.
 The project stalled, due to Parrot not having key functionality at the time.
 That has been resolved but the project has not yet restarted.
 
-Each language targeting Parrot would implement their own small
+Each language targeting Parrot would implement their own small 'thin'
 language-specific method dispatcher (a "Perl6 DBI", "Python DBI",
 "PHP DBI" etc) layered over the common Parrot DBDI interface and drivers.
 
@@ -332,6 +356,7 @@
 
 This roadmap does not address the resources required to implement
 in a timely manner the changes for DBI v2.0 and beyond.
-I am preparing a separate document to address those issues.
+
+See L<http://dbi.perl.org/contributing> for I<how you can help>.
 
 =cut

Modified: dbi/trunk/ToDo
==============================================================================
--- dbi/trunk/ToDo      (original)
+++ dbi/trunk/ToDo      Sat Nov  6 13:03:57 2004
@@ -307,6 +307,11 @@
 
 Support async (non-blocking) mode
 
+Add $sql = $dbh->show_create($schema_object_name) to return statement
+that would create that schema object, where possible.
+
+Add $id = $dbh->get_session_id() and $dbh->kill_session_id($id).
+
 Study alternate DBI's:
        ruby
        python
@@ -503,6 +508,8 @@
 http://www.opengroup.org/publications/catalog/s423.htm
 
http://www-106.ibm.com/developerworks/websphere/library/techarticles/0407_woolf/0407_woolf.html?ca=dnp-327
 
+Consider issues affecting OSMM score. Add relevant notes to docs.
+
 --- DBI::Profile
 
 Add %time to per-node DBI::Profile dump

Modified: dbi/trunk/test.pl
==============================================================================
--- dbi/trunk/test.pl   (original)
+++ dbi/trunk/test.pl   Sat Nov  6 13:03:57 2004
@@ -106,7 +106,7 @@
     printf "%5d NullP sth/s perl %8s %s (%s %s %s)\n\n",
            $count/$dur, $], $Config{archname},
            $Config{gccversion} ? 'gcc' : $Config{cc},
-           (split / /, $Config{gccversion}||$Config{ccversion}||'')[0],
+           (split / /, $Config{gccversion}||$Config{ccversion}||'')[0]||'',
            $Config{optimize};
 
   if (0) {

Reply via email to