}
sub _custom_column_info {
- my $info = shift;
+ my ( $table_name, $column_name, $column_info ) = @_;
+ $table_name = lc ( $table_name );
+ $column_name = lc ( $column_name );
- if ( lc( $info->{TABLE_NAME} ) eq 'loader_test11'
- and lc( $info->{COLUMN_NAME} ) eq 'loader_test10'
+ 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 => 149 + ($self->{extra}->{count} || 0);
+ plan tests => 155 + ($self->{extra}->{count} || 0);
$self->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;
is($class36->column_info('a_date')->{locale},'de_DE','locale is correct');
is($class36->column_info('a_date')->{timezone},'Europe/Berlin','locale is correct');
+ ok($class36->column_info('b_char_as_data')->{inflate_datetime},'inflate_datetime detected');
+ is($class36->column_info('b_char_as_data')->{locale},'de_DE','locale is correct');
+ is($class36->column_info('b_char_as_data')->{timezone},'Europe/Berlin','locale is correct');
+
+ ok($class36->column_info('c_char_as_data')->{inflate_date},'inflate_date detected');
+ is($class36->column_info('c_char_as_data')->{locale},'de_DE','locale is correct');
+ is($class36->column_info('c_char_as_data')->{timezone},'Europe/Berlin','locale is correct');
+
my $obj10 = $rsobj10->create({ subject => 'xyzzy' });
$obj10->update();
qq{
CREATE TABLE loader_test36 (
id INTEGER NOT NULL PRIMARY KEY,
- a_date DATE
+ a_date DATE,
+ b_char_as_data VARCHAR(100),
+ c_char_as_data VARCHAR(100)
) $self->{innodb}
},
);