Author: timbo Date: Fri Nov 12 11:07:37 2004 New Revision: 574 Modified: dbi/trunk/Changes dbi/trunk/Roadmap.pod dbi/trunk/ToDo dbi/trunk/lib/DBI/DBD/Metadata.pm Log: Updated roadmap and todo. Fixed minor issues in DBI::DBD::Metadata thanks to Steffen Goeldner.
Modified: dbi/trunk/Changes ============================================================================== --- dbi/trunk/Changes (original) +++ dbi/trunk/Changes Fri Nov 12 11:07:37 2004 @@ -9,6 +9,7 @@ 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. + Fixed minor issues in DBI::DBD::Metadata thanks to Steffen Goeldner. Changed use DBI qw(:utils) export tag to include $neat_maxlen. Updated Roadmap and ToDo. Modified: dbi/trunk/Roadmap.pod ============================================================================== --- dbi/trunk/Roadmap.pod (original) +++ dbi/trunk/Roadmap.pod Fri Nov 12 11:07:37 2004 @@ -1,11 +1,10 @@ - =head1 NAME DBI::Roadmap - Planned Enhancements for the DBI -Tim Bunce - 9th November 2004 +Tim Bunce - 12th November 2004 -=head2 SYNOPSIS +=head1 SYNOPSIS This document gives a high level overview of the future of the Perl DBI module. @@ -24,7 +23,7 @@ ensure maximum future functionality with minimal disruptive (incompatible) upgrades. -=head2 SCOPE +=head1 SCOPE Broad categories of changes are outlined here along with some rationale, but implementation details and minor planned enhancements @@ -113,20 +112,19 @@ * The DBD::Multiplex driver provides a framework to enable a wide range of dynamic functionality, including support for high-availability, failover, load-balancing, caching, and access to distributed data. -It is currently being rewritten to greatly increase its flexibility -and has potential to be a very powerful tool, but development has -stalled. +It is currently being enhanced but development has stalled. * The DBD::Proxy module is complex and relatively inefficient because it's trying to be a complete proxy for most DBI method calls. For many applications a simpler proxy architecture that operates with -a single round-trip to the server would be sufficient and preferable. +a single round-trip to the server would be simpler, faster, and more +flexible. 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. +servers for greater scalability and reliability. * The DBI currently offers no support for distributed transactions. The most useful elements of the standard XA distributed transaction @@ -204,7 +202,8 @@ The DBI can be extended in three main dimensions: subclassing the DBI, subclassing a driver, and callback hooks. Each has different -pros and cons and each is applicable in different situations. +pros and cons, each is applicable in different situations, and +all need enhancing. * Subclassing the DBI is functional but not well defined and some key elements are incomplete, particularly the DbTypeSubclass mechanism @@ -335,21 +334,13 @@ =head1 PRIORITIES -The foundations of many of the enhancements described above require -changes to the interface between the DBI and drivers. To clearly -define the transition point, the source code will be forked into a -DBI v1 branch and the mainline bumped to v2. - -DBI v1 will continue to be maintained for bug fixes and any -enhancements that ease the transition to DBI v2. - =head2 Transition Drivers The first priority is to make all the infrastructure changes that -impact drivers and make an alpha release available that driver -authors can target. As far as possible, the changes will be implemented -in a way that enables driver authors use the same code base for DBI v1 -and DBI v2. +impact drivers and make an alpha release available for driver authors. + +As far as possible, the changes will be implemented in a way that +enables driver authors use the same code base for DBI v1 and DBI v2. The main changes required by driver authors are: @@ -372,6 +363,10 @@ incrementally on the updated foundations. Priorities for those changes have not been set. +=head2 DBI v1 + +DBI v1 will continue to be maintained on a separate branch for +bug fixes and any enhancements that ease the transition to DBI v2. =head1 RESOURCES AND CONTRIBUTIONS Modified: dbi/trunk/ToDo ============================================================================== --- dbi/trunk/ToDo (original) +++ dbi/trunk/ToDo Fri Nov 12 11:07:37 2004 @@ -152,6 +152,8 @@ from which mx_translate_sql_child then 'regenerates' custom sql for the child handle) See also http://c-jdbc.objectweb.org/ +Use subversion mechanism for $VERSION in source files. + ====== LATER ====== Define expected uft8 behaviour. Basically drivers need to set the Modified: dbi/trunk/lib/DBI/DBD/Metadata.pm ============================================================================== --- dbi/trunk/lib/DBI/DBD/Metadata.pm (original) +++ dbi/trunk/lib/DBI/DBD/Metadata.pm Fri Nov 12 11:07:37 2004 @@ -18,11 +18,10 @@ @ISA = qw(Exporter); @EXPORT = qw(write_getinfo_pm write_typeinfo_pm); -use strict; - -my $VERSION = sprintf("%d.%02d", q$Revision: 1.5 $ =~ /(\d+)\.(\d+)/); +use strict; + =head1 NAME DBI::DBD::Metadata - Generate the code and data for some DBI metadata methods @@ -186,6 +185,9 @@ elsif ($key eq 'SQL_KEYWORDS') { $val = ($kw_map) ? '\&sql_keywords' : 'undef'; } + elsif ($key eq 'SQL_DRIVER_NAME') { + $val = "\$INC{'DBD/$driver.pm'}"; + } elsif ($key eq 'SQL_DRIVER_VER') { $val = '$sql_driver_ver'; } @@ -340,7 +342,7 @@ require DynaLoader; [EMAIL PROTECTED] = qw(Exporter DynaLoader); [EMAIL PROTECTED] = qw(type_info_all); - use DBI (:sql_types); + use DBI qw(:sql_types); PERL @@ -409,7 +411,7 @@ my $h = $dbh->type_info_all; my @tia = @$h; - my %odbc_map = %{$tia[0]}; + my %odbc_map = map { uc $_ => $tia[0]->{$_} } keys %{$tia[0]}; shift @tia; # Remove the mapping reference. my $numtyp = $#tia; @@ -484,7 +486,7 @@ Jonathan Leffler <[EMAIL PROTECTED]> (previously <[EMAIL PROTECTED]>), Jochen Wiedmann <[EMAIL PROTECTED]>, -Steffen Goeldner <[EMAIL PROTECTED]>, +Steffen Goeldner <[EMAIL PROTECTED]>, and Tim Bunce <[EMAIL PROTECTED]>. =cut
