Author: REHSACK
Date: Wed Jun 30 03:37:17 2010
New Revision: 14201
Modified:
dbi/trunk/lib/DBD/DBM.pm
dbi/trunk/lib/DBD/File.pm
Log:
- remove duplicated code from DBD::File
- add register_reset_on_modify to DBD::File::Table
- register meta flags to reset in DBD::DBM
Modified: dbi/trunk/lib/DBD/DBM.pm
==============================================================================
--- dbi/trunk/lib/DBD/DBM.pm (original)
+++ dbi/trunk/lib/DBD/DBM.pm Wed Jun 30 03:37:17 2010
@@ -257,6 +257,12 @@
return $tbl;
}
+my %reset_on_modify = (
+ dbm_type => "dbm_tietype",
+ dbm_mldbm => "dbm_tietype",
+);
+__PACKAGE__->register_reset_on_modify(\%reset_on_modify);
+
sub bootstrap_table_meta
{
my ( $self, $dbh, $meta, $table ) = @_;
Modified: dbi/trunk/lib/DBD/File.pm
==============================================================================
--- dbi/trunk/lib/DBD/File.pm (original)
+++ dbi/trunk/lib/DBD/File.pm Wed Jun 30 03:37:17 2010
@@ -110,49 +110,6 @@
@DBD::File::dr::ISA = qw(DBI::DBD::SqlEngine::dr);
$DBD::File::dr::imp_data_size = 0;
-sub connect ($$;$$$)
-{
- my ($drh, $dbname, $user, $auth, $attr)= @_;
-
- # create a 'blank' dbh
- my $this = DBI::_new_dbh ($drh, {
- Name => $dbname,
- USER => $user,
- CURRENT_USER => $user,
- });
-
- if ($this) {
- # must be done first, because setting flags implicitly calls
$dbdname::db->STORE
- $this->func ("init_default_attributes");
-
- my ($var, $val);
- while (length $dbname) {
- if ($dbname =~ s/^((?:[^\\;]|\\.)*?);//s) {
- $var = $1;
- }
- else {
- $var = $dbname;
- $dbname = "";
- }
- if ($var =~ m/^(.+?)=(.*)/s) {
- $var = $1;
- ($val = $2) =~ s/\\(.)/$1/g;
- $this->{$var} = $val;
- }
- elsif ($var =~ m/^(.+?)=>(.*)/s) {
- $var = $1;
- ($val = $2) =~ s/\\(.)/$1/g;
- my $ref = eval $val;
- $this->$var ($ref);
- }
- }
-
- $this->STORE (Active => 1);
- }
-
- return $this;
- } # connect
-
sub dsn_quote
{
my $str = shift;
@@ -318,21 +275,6 @@
return $dbh;
} # init_default_attributes
-sub sql_parser_object
-{
- my $dbh = shift;
- my $parser = {
- dialect => "CSV",
- RaiseError => $dbh->FETCH ("RaiseError"),
- PrintError => $dbh->FETCH ("PrintError"),
- };
- my $sql_flags = $dbh->FETCH ("sql_flags") || {};
- %$parser = (%$parser, %$sql_flags);
- $parser = SQL::Parser->new ($parser->{dialect}, $parser);
- $dbh->{sql_parser_object} = $parser;
- return $parser;
- } # cache_sql_parser_object
-
sub disconnect ($)
{
$_[0]->STORE (Active => 0);
@@ -949,6 +891,20 @@
return ($table, $meta);
} # get_table_meta
+my %reset_on_modify = (
+ f_file => "f_fqfn",
+ f_dir => "f_fqfn",
+ f_ext => "f_fqfn",
+ f_lockfile => "f_fqfn", # forces new file2table call
+);
+
+sub register_reset_on_modify
+{
+ my ($proto, $extra_resets) = @_;
+ %reset_on_modify = (%reset_on_modify, %$extra_resets);
+ return;
+ } # register_reset_on_modify
+
sub get_table_meta_attr
{
my ($class, $meta, $attrib) = @_;
@@ -957,13 +913,6 @@
return;
} # get_table_meta_attr
-my %reset_on_modify = (
- f_file => "f_fqfn",
- f_dir => "f_fqfn",
- f_ext => "f_fqfn",
- f_lockfile => "f_fqfn", # forces new file2table call
-);
-
sub set_table_meta_attr
{
my ($class, $meta, $attrib, $value) = @_;
@@ -1126,7 +1075,7 @@
=head1 NAME
-DBD::File - Base class for writing DBI drivers
+DBD::File - Base class for writing file based DBI drivers
=head1 SYNOPSIS