}
sub _custom_column_info {
- my $info = shift;
+ my ( $table_name, $column_name, $column_info ) = @_;
- if ( lc( $info->{TABLE_NAME} ) eq 'loader_test11'
- and lc( $info->{COLUMN_NAME} ) eq 'loader_test10'
+ $table_name = lc ( $table_name );
+ $column_name = lc ( $column_name );
+
+ if ( $table_name eq 'loader_test11'
+ and $column_name eq 'loader_test10'
){
return { is_numeric => 1 }
}
+ # Set inflate_datetime or inflate_date to check
+ # datetime_timezone and datetime_locale
+ if ( $table_name eq 'loader_test36' ){
+ return { inflate_datetime => 1 } if
+ ( $column_name eq 'b_char_as_data' );
+ return { inflate_date => 1 } if
+ ( $column_name eq 'c_char_as_data' );
+ }
+
return;
}
sub run_tests {
my $self = shift;
- plan tests => 146 + ($self->{extra}->{count} || 0);
+ plan tests => 155 + ($self->{extra}->{count} || 0);
$self->create();
debug => $debug,
use_namespaces => 0,
dump_directory => $DUMP_DIR,
+ datetime_timezone => 'Europe/Berlin',
+ datetime_locale => 'de_DE'
);
$loader_opts{db_schema} = $self->{db_schema} if $self->{db_schema};
my $file_count;
find sub { return if -d; $file_count++ }, $DUMP_DIR;
- my $expected_count = 35;
+ my $expected_count = 36;
$expected_count += grep /CREATE (?:TABLE|VIEW)/i,
@{ $self->{extra}{create} || [] };
$warn_count++ for grep /^Bad table or view/, @loader_warnings;
+ $warn_count++ for grep /stripping trailing _id/, @loader_warnings;
+
my $vendor = $self->{vendor};
$warn_count++ for grep /${vendor}_\S+ has no primary key/,
@loader_warnings;
my $class34 = $classes->{loader_test34};
my $rsobj34 = $conn->resultset($moniker34);
+ my $moniker36 = $monikers->{loader_test36};
+ my $class36 = $classes->{loader_test36};
+ my $rsobj36 = $conn->resultset($moniker36);
+
isa_ok( $rsobj3, "DBIx::Class::ResultSet" );
isa_ok( $rsobj4, "DBIx::Class::ResultSet" );
isa_ok( $rsobj5, "DBIx::Class::ResultSet" );
isa_ok( $rsobj32, "DBIx::Class::ResultSet" );
isa_ok( $rsobj33, "DBIx::Class::ResultSet" );
isa_ok( $rsobj34, "DBIx::Class::ResultSet" );
+ isa_ok( $rsobj36, "DBIx::Class::ResultSet" );
# basic rel test
my $obj4 = $rsobj4->find(123);
ok($class10->column_info('loader_test11')->{is_foreign_key}, 'Foreign key detected');
ok($class11->column_info('loader_test10')->{is_foreign_key}, 'Foreign key detected');
+
# Added by custom_column_info
- ok($class11->column_info('loader_test10')->{is_numeric}, 'is_numeric detected');
+ ok($class11->column_info('loader_test10')->{is_numeric}, 'custom_column_info');
+
+ is($class36->column_info('a_date')->{locale},'de_DE','datetime_locale');
+ is($class36->column_info('a_date')->{timezone},'Europe/Berlin','datetime_timezone');
+
+ ok($class36->column_info('b_char_as_data')->{inflate_datetime},'custom_column_info');
+ is($class36->column_info('b_char_as_data')->{locale},'de_DE','datetime_locale');
+ is($class36->column_info('b_char_as_data')->{timezone},'Europe/Berlin','datetime_timezone');
+
+ ok($class36->column_info('c_char_as_data')->{inflate_date},'custom_column_info');
+ is($class36->column_info('c_char_as_data')->{locale},'de_DE','datetime_locale');
+ is($class36->column_info('c_char_as_data')->{timezone},'Europe/Berlin','datetime_timezone');
my $obj10 = $rsobj10->create({ subject => 'xyzzy' });
a_function $self->{default_function_def}
) $self->{innodb}
},
+
+ qq{
+ CREATE TABLE loader_test36 (
+ id INTEGER NOT NULL PRIMARY KEY,
+ a_date DATE,
+ b_char_as_data VARCHAR(100),
+ c_char_as_data VARCHAR(100)
+ ) $self->{innodb}
+ },
);
@statements_reltests = (
LOADER_TEST23
LoAdEr_test24
loader_test35
+ loader_test36
/;
my @tables_auto_inc = (