Bumping version to 1.61
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Parser / DBI / SQLite.pm
index a4f28c5..b86ed03 100644 (file)
@@ -1,25 +1,5 @@
 package SQL::Translator::Parser::DBI::SQLite;
 
-# -------------------------------------------------------------------
-# $Id: SQLite.pm,v 1.1 2003-10-03 00:21:41 kycl4rk Exp $
-# -------------------------------------------------------------------
-# Copyright (C) 2003 Ken Y. Clark <kclark@cpan.org>.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; version 2.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-# 02111-1307  USA
-# -------------------------------------------------------------------
-
 =head1 NAME
 
 SQL::Translator::Parser::DBI::SQLite - parser for DBD::SQLite
@@ -30,39 +10,37 @@ See SQL::Translator::Parser::DBI.
 
 =head1 DESCRIPTION
 
-Queries the "sqlite_master" table for schema definition.
+Queries the "sqlite_master" table for schema definition.  The schema
+is held in this table simply as CREATE statements for the database
+objects, so it really just builds up a string of all these and passes
+the result to the regular SQLite parser.  Therefore there is no gain
+(at least in performance) to using this module over simply dumping the
+schema to a text file and parsing that.
 
 =cut
 
 use strict;
+use warnings;
 use DBI;
 use SQL::Translator::Parser::SQLite;
 use Data::Dumper;
 
-use vars qw[ $DEBUG $VERSION @EXPORT_OK ];
-$VERSION = sprintf "%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/;
+our ( $DEBUG, @EXPORT_OK );
+our $VERSION = '1.61';
 $DEBUG   = 0 unless defined $DEBUG;
 
-# -------------------------------------------------------------------
 sub parse {
     my ( $tr, $dbh ) = @_;
 
-    my $data = $dbh->selectall_arrayref(
-        'select * from sqlite_master', { Columns => {} }
+    my $create = join(";\n",
+        map { $_ || () }
+        @{ $dbh->selectcol_arrayref('select sql from sqlite_master') },
     );
-
-    $tr->debug( "sqlite_master =\n", Dumper( $data ) );
+    $create .= ";";
+    $tr->debug( "create =\n$create\n" );
 
     my $schema = $tr->schema;
 
-    my $create;
-    for my $rec ( @$data ) {
-        my $sql  =  $rec->{'sql'} or next;
-        $create .= "$sql;\n";
-    }
-
-    $tr->debug( "create =\n$create\n" );
-
     SQL::Translator::Parser::SQLite::parse( $tr, $create );
     return 1;
 }
@@ -78,11 +56,10 @@ sub parse {
 
 =head1 AUTHOR
 
-Ken Y. Clark E<lt>kclark@cpan.orgE<gt>,
-Chris Mungall E<lt>cjm@fruitfly.orgE<gt>.
+Ken Y. Clark E<lt>kclark@cpan.orgE<gt>.
 
 =head1 SEE ALSO
 
-perl(1), Parse::RecDescent, SQL::Translator::Schema.
+SQL::Translator::Parser::SQLite.
 
 =cut