File Coverage

blib/lib/DBIx/Table/Dup.pm
Criterion Covered Total %
statement 12 29 41.3
branch 0 8 0.0
condition n/a
subroutine 4 6 66.6
pod 1 2 50.0
total 17 45 37.7


line stmt bran cond sub pod time code
1             package DBIx::Table::Dup;
2              
3 1     1   7163 use 5.006;
  1         4  
  1         127  
4 1     1   7 use strict;
  1         2  
  1         41  
5 1     1   6 use warnings;
  1         6  
  1         44  
6              
7 1     1   1073 use DBIx::DBSchema;
  1         55034  
  1         391  
8              
9             require Exporter;
10              
11             our @ISA = qw(Exporter);
12              
13             # Items to export into callers namespace by default. Note: do not export
14             # names by default without a very good reason. Use EXPORT_OK instead.
15             # Do not simply export all your public functions/methods/constants.
16              
17             # This allows declaration use DBIx::Table::Dup ':all';
18             # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
19             # will save memory.
20             our %EXPORT_TAGS = ( 'all' => [ qw(
21            
22             ) ] );
23              
24             our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
25              
26             our @EXPORT = qw(
27            
28             );
29             our $VERSION = '0.03';
30              
31              
32             # Preloaded methods go here.
33              
34             sub date_string {
35              
36 0     0 0   my $d = lc `date +%b_%d_%H_%M_%S`;
37 0           chomp $d;
38 0           $d;
39              
40             }
41              
42             sub this {
43              
44 0     0 1   my (undef, $dbh, $tbl_name, $dup_name, $create, $append) = @_;
45              
46 0 0         $tbl_name or die 'must supply table to dup';
47              
48 0 0         $dup_name or die 'must supply table dup table name';
49              
50             # warn $dbh;
51              
52 0           my $schema = new_native DBIx::DBSchema $dbh;
53              
54             # warn $schema;
55              
56 0           my @table_names = $schema->tables;
57              
58             # warn "@table_names";
59              
60 0 0         grep { $tbl_name eq $_ } @table_names or die
  0            
61             "$tbl_name not found in @table_names";
62              
63 0           my $table = $schema->table($tbl_name);
64              
65             # warn $table;
66              
67 0           my ($table_create) = $table->sql_create_table($dbh);
68              
69 0           $table_create =~ s!CREATE TABLE \w+!CREATE TABLE $dup_name!;
70              
71 0           $table_create .= $append;
72              
73 0 0         return $table_create unless $create;
74              
75             # warn $table_create;
76              
77 0           $dbh->do($table_create);
78              
79 0           return $table_create;
80              
81             }
82              
83             1;
84             __END__