=cut
sub columns {
- my ( $proto, $dbh, $table ) = @_;
- my $sth = $dbh->prepare("PRAGMA table_info($table)");
- $sth->execute();
- my $rows = [];
-
- while ( my $row = $sth->fetchrow_hashref ) {
-
- # notnull # pk # name # type # cid # dflt_value
- push @$rows,
- [
- $row->{'name'},
- $row->{'type'},
- ( $row->{'notnull'} ? 0 : 1 ),
- undef,
- $row->{'dflt_value'},
- $row->{'pk'}
- ];
-
- }
-
- return $rows;
+ my ( $proto, $dbh, $table ) = @_;
+ my $sth = $dbh->prepare("PRAGMA table_info($table)");
+ $sth->execute();
+ my $rows = [];
+
+ while ( my $row = $sth->fetchrow_hashref ) {
+
+ # notnull # pk # name # type # cid # dflt_value
+ push @$rows,
+ [
+ $row->{'name'},
+ $row->{'type'},
+ ( $row->{'notnull'} ? 0 : 1 ),
+ undef,
+ $row->{'dflt_value'},
+ $row->{'pk'}
+ ];
+
+ }
+
+ return $rows;
}
sub primary_key {
my ($proto, $dbh, $table) = @_;
- my $cols = $proto->columns($dbh,$table);
- foreach my $col (@$cols) {
- return ($col->[1]) if ($col->[5]);
- }
-
- return undef;
+ my $cols = $proto->columns($dbh,$table);
+ foreach my $col (@$cols) {
+ return ($col->[1]) if ($col->[5]);
+ }
+
+ return undef;
}
sub unique {
my ($proto, $dbh, $table) = @_;
my @names;
- my $indexes = $proto->_index_info($dbh, $table);
- foreach my $row (@$indexes) {
- push @names, $row->{'name'} if ($row->{'unique'});
-
- }
- my $info = {};
- foreach my $name (@names) {
- $info->{'name'} = $proto->_index_cols($dbh, $name);
- }
- return $info;
+ my $indexes = $proto->_index_info($dbh, $table);
+ foreach my $row (@$indexes) {
+ push @names, $row->{'name'} if ($row->{'unique'});
+
+ }
+ my $info = {};
+ foreach my $name (@names) {
+ $info->{'name'} = $proto->_index_cols($dbh, $name);
+ }
+ return $info;
}
sub index {
my ($proto, $dbh, $table) = @_;
my @names;
- my $indexes = $proto->_index_info($dbh, $table);
- foreach my $row (@$indexes) {
- push @names, $row->{'name'} if not ($row->{'unique'});
+ my $indexes = $proto->_index_info($dbh, $table);
+ foreach my $row (@$indexes) {
+ push @names, $row->{'name'} if not ($row->{'unique'});
- }
- my $info = {};
- foreach my $name (@names) {
- $info->{'name'} = $proto->_index_cols($dbh, $name);
- }
+ }
+ my $info = {};
+ foreach my $name (@names) {
+ $info->{'name'} = $proto->_index_cols($dbh, $name);
+ }
return $info;
}
sub _index_list {
+ my $proto = shift;
+ my $dbh = shift;
+ my $table = shift;
- my $proto = shift;
- my $dbh = shift;
- my $table = shift;
-
-my $sth = $dbh->prepare('PRAGMA index_list($table)');
-$sth->execute();
-my $rows = [];
+ my $sth = $dbh->prepare('PRAGMA index_list($table)');
+ $sth->execute();
+ my $rows = [];
-while ( my $row = $sth->fetchrow_hashref ) {
+ while ( my $row = $sth->fetchrow_hashref ) {
# Keys are "name" and "unique"
push @$rows, $row;
-}
+ }
-return $rows;
+ return $rows;
}
sub _index_cols {
- my $proto = shift;
- my $dbh = shift;
- my $index = shift;
+ my $proto = shift;
+ my $dbh = shift;
+ my $index = shift;
- my $sth = $dbh->prepare('PRAGMA index_info($index)');
- $sth->execute();
- my $data = {};
-while ( my $row = $sth->fetchrow_hashref ) {
+ my $sth = $dbh->prepare('PRAGMA index_info($index)');
+ $sth->execute();
+ my $data = {};
+ while ( my $row = $sth->fetchrow_hashref ) {
# Keys are "name" and "seqno"
- $data->{$row->{'seqno'}} = $data->{'name'};
-}
- my @results;
- foreach my $key (sort keys %$data) {
- push @results, $data->{$key};
- }
-
- return \@results;
+ $data->{$row->{'seqno'}} = $data->{'name'};
+ }
+ my @results;
+ foreach my $key (sort keys %$data) {
+ push @results, $data->{$key};
+ }
+
+ return \@results;
}