From: <rv...@us...> - 2009-06-11 04:02:40
|
Revision: 21 http://treebase.svn.sourceforge.net/treebase/?rev=21&view=rev Author: rvos Date: 2009-06-11 04:02:05 +0000 (Thu, 11 Jun 2009) Log Message: ----------- Formatted source, added closing semicolon to terminate SQL INSERT statements Modified Paths: -------------- trunk/treebase-core/src/main/perl/lib/CIPRES/TreeBase/RecDumper.pm Modified: trunk/treebase-core/src/main/perl/lib/CIPRES/TreeBase/RecDumper.pm =================================================================== --- trunk/treebase-core/src/main/perl/lib/CIPRES/TreeBase/RecDumper.pm 2009-06-11 02:10:55 UTC (rev 20) +++ trunk/treebase-core/src/main/perl/lib/CIPRES/TreeBase/RecDumper.pm 2009-06-11 04:02:05 UTC (rev 21) @@ -5,12 +5,16 @@ sub new { my $class = shift; my %arg = @_; - my $fn = $arg{FIELDS} or croak("$class->new: FIELDS required"); - my $ct = $arg{TYPES} or croak("$class->new: TYPES required"); - my $tn = uc $arg{TABLE} or croak("$class->new: TABLE required"); - my $X = my @fieldnames = map uc, @$fn; - - my $self = { F => \@fieldnames, X => $X, N => $tn, T => $ct }; + my $fn = $arg{'FIELDS'} or croak("$class->new: FIELDS required"); + my $ct = $arg{'TYPES'} or croak("$class->new: TYPES required"); + my $tn = uc $arg{'TABLE'} or croak("$class->new: TABLE required"); + my $X = my @fieldnames = map uc, @$fn; + my $self = { + 'F' => \@fieldnames, + 'X' => $X, + 'N' => $tn, + 'T' => $ct + }; bless $self => $class; $self->_initialize(); return $self; @@ -18,53 +22,54 @@ sub set_output { my ($self, $fh) = @_; - $self->{OUT} = $fh; + $self->{'OUT'} = $fh; } sub _initialize { my $self = shift; my $fieldlist = join ", ", @{$self->{F}}; # Need to escape certain field names here - $self->{PREFIX} = qq{INSERT INTO $self->{N} ($fieldlist) VALUES (}; - $self->{SUFFIX} = qq{)\n}; + $self->{'PREFIX'} = qq{INSERT INTO $self->{N} ($fieldlist) VALUES (}; + $self->{'SUFFIX'} = qq{);\n}; # XXX added closing semicolon return; } # Format data into an insert statement and return (or write) the result sub rec { - my $self = shift; - @_ > @{$self->{F}} - and croak("rec: too many items (expected $self->{X})"); - @_ < @{$self->{F}} - and croak("rec: too few items (expected $self->{X})"); - - @_ = $self->quote_data(@_); - - my $values = join ", ", @_; - my $insert = $self->{PREFIX} . $values . $self->{SUFFIX}; - return print {$self->{OUT}} $insert if $self->{OUT}; - return $insert; + my $self = shift; + @_ > @{$self->{F}} + and croak("rec: too many items (expected $self->{X})"); + @_ < @{$self->{F}} + and croak("rec: too few items (expected $self->{X})"); + + @_ = $self->quote_data(@_); + + my $values = join ", ", @_; + my $insert = $self->{'PREFIX'} . $values . $self->{'SUFFIX'}; + return print {$self->{'OUT'}} $insert if $self->{'OUT'}; + return $insert; } # XXX UNFINISHED !!!! sub quote_data { my $self = shift; my @d = @_; - for my $i (0 .. $#{$self->{F}}) { - my $t = $self->{T}[$i]; - local *_ = \$d[$i]; - $_ = "NULL", next unless defined; - - if ($t eq "CHAR" || $t eq "VARCHAR") { - s/'/''/g; - $_ = "'$_'"; - } elsif ($t =~ /^(BIG|SMALL|)INT$/ || $t eq "INTEGER" - || $t eq "DOUBLE") { - # do nothing - } else { - croak("Unknown field type '$t'; aborting"); + for my $i (0 .. $#{$self->{F}}) { + my $t = $self->{T}[$i]; + local *_ = \$d[$i]; + $_ = "NULL", next unless defined; + + if ($t eq "CHAR" || $t eq "VARCHAR") { + s/'/''/g; + $_ = "'$_'"; + } + elsif ($t =~ /^(BIG|SMALL|)INT$/ || $t eq 'INTEGER' || $t eq 'DOUBLE') { + # do nothing + } + else { + croak("Unknown field type '$t'; aborting"); + } } - } return @d; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |