Showing 6 changed files with 146 additions and 98 deletions
+2
Changes
... ...
@@ -5,6 +5,8 @@
5 5
     - added EXPERIMENTAL get_column_info
6 6
     - added EXPERIMENTAL user_column_info attribute
7 7
       and each_column find column info in user_column_info if set.
8
+    - connector is automatically set to DBDx::Connector object
9
+      if connector is set to 1 when connect method is called.
8 10
 0.1716
9 11
     - fixed bugs when using DBD::Oracle.
10 12
     - added EXPERIMENTAL show_tables method.
+42 -14
lib/DBIx/Custom.pm
... ...
@@ -164,7 +164,21 @@ sub column {
164 164
 }
165 165
 
166 166
 sub connect {
167
-    my $self = ref $_[0] ? shift : shift->new(@_);;
167
+    my $self = ref $_[0] ? shift : shift->new(@_);
168
+    
169
+    my $connector = $self->connector;
170
+    
171
+    if (!ref $connector && $connector) {
172
+        require DBIx::Connector;
173
+        
174
+        my $dsn = $self->dsn;
175
+        my $user = $self->user;
176
+        my $password = $self->password;
177
+        my $dbi_option = {%{$self->dbi_options}, %{$self->dbi_option}};
178
+        my $connector = DBIx::Connector->new($dsn, $user, $password,
179
+          {%{$self->default_dbi_option} , %$dbi_option});
180
+        $self->connector($connector);
181
+    }
168 182
     
169 183
     # Connect
170 184
     $self->dbh;
... ...
@@ -559,7 +573,7 @@ sub get_column_info {
559 573
     
560 574
     return [
561 575
       sort {$a->{table} cmp $b->{table} || $a->{column} cmp $b->{column} }
562
-        @$$column_info];
576
+        @$column_info];
563 577
 }
564 578
 
565 579
 sub insert {
... ...
@@ -1038,6 +1052,7 @@ sub type_rule {
1038 1052
         # Into
1039 1053
         foreach my $i (1 .. 2) {
1040 1054
             my $into = "into$i";
1055
+            my $exists_into = exists $type_rule->{$into};
1041 1056
             $type_rule->{$into} = _array_to_hash($type_rule->{$into});
1042 1057
             $self->{type_rule} = $type_rule;
1043 1058
             $self->{"_$into"} = {};
... ...
@@ -1045,6 +1060,7 @@ sub type_rule {
1045 1060
                 croak qq{type name of $into section must be lower case}
1046 1061
                   if $type_name =~ /[A-Z]/;
1047 1062
             }
1063
+            
1048 1064
             $self->each_column(sub {
1049 1065
                 my ($dbi, $table, $column, $column_info) = @_;
1050 1066
                 
... ...
@@ -1330,16 +1346,18 @@ sub _connect {
1330 1346
     warn "dbi_options is DEPRECATED! use dbi_option instead\n"
1331 1347
       if keys %{$self->dbi_options};
1332 1348
     
1349
+    $dbi_option = {%{$self->default_dbi_option}, %$dbi_option};
1350
+    
1333 1351
     # Connect
1334
-    my $dbh = eval {DBI->connect(
1335
-        $dsn,
1336
-        $user,
1337
-        $password,
1338
-        {
1339
-            %{$self->default_dbi_option},
1340
-            %$dbi_option
1341
-        }
1342
-    )};
1352
+    my $dbh;
1353
+    eval {
1354
+        $dbh = DBI->connect(
1355
+            $dsn,
1356
+            $user,
1357
+            $password,
1358
+            $dbi_option
1359
+        );
1360
+    };
1343 1361
     
1344 1362
     # Connect error
1345 1363
     croak "$@ " . _subname if $@;
... ...
@@ -2010,14 +2028,24 @@ This is L<DBIx::Connector> example. Please pass
2010 2028
 C<default_dbi_option> to L<DBIx::Connector> C<new> method.
2011 2029
 
2012 2030
     my $connector = DBIx::Connector->new(
2013
-        "dbi:mysql:database=$DATABASE",
2014
-        $USER,
2015
-        $PASSWORD,
2031
+        "dbi:mysql:database=$database",
2032
+        $user,
2033
+        $password,
2016 2034
         DBIx::Custom->new->default_dbi_option
2017 2035
     );
2018 2036
     
2019 2037
     my $dbi = DBIx::Custom->connect(connector => $connector);
2020 2038
 
2039
+If C<connector> is set to 1 when connect method is called,
2040
+L<DBIx::Connector> is automatically set to C<connector>
2041
+
2042
+    my $dbi = DBIx::Custom->connect(
2043
+      dsn => $dsn, user => $user, password => $password, connector => 1);
2044
+    
2045
+    my $connector = $dbi->connector; # DBIx::Connector
2046
+
2047
+Note that L<DBIx::Connector> must be installed.
2048
+
2021 2049
 =head2 C<dsn>
2022 2050
 
2023 2051
     my $dsn = $dbi->dsn;
+24 -21
t/common.t
... ...
@@ -77,6 +77,7 @@ my $insert_param;
77 77
 my $join;
78 78
 my $binary;
79 79
 my $user_table_info;
80
+my $user_column_info;
80 81
 
81 82
 require MyDBI1;
82 83
 {
... ...
@@ -2044,7 +2045,6 @@ eval { $dbi->execute("drop table $table2") };
2044 2045
 $dbi->execute($create_table1);
2045 2046
 $dbi->execute($create_table2);
2046 2047
 $dbi->separator('__');
2047
-$DB::single = 1;
2048 2048
 $dbi->setup_model;
2049 2049
 $dbi->insert(table => $table1, param => {$key1 => 1, $key2 => 2});
2050 2050
 $dbi->insert(table => $table2, param => {$key1 => 1, $key3 => 3});
... ...
@@ -3322,11 +3322,14 @@ is_deeply($infos,
3322 3322
 test 'type_rule into';
3323 3323
 eval { $dbi->execute("drop table $table1") };
3324 3324
 $dbi->execute($create_table1_type);
3325
+$user_column_info = $dbi->get_column_info(exclude_table => $dbi->exclude_table);
3326
+
3327
+
3325 3328
 $dbi = DBIx::Custom->connect;
3326
-$dbi->user_table_info($user_table_info);
3327 3329
 eval { $dbi->execute("drop table $table1") };
3328 3330
 $dbi->execute($create_table1_type);
3329 3331
 
3332
+$dbi->user_column_info($user_column_info);
3330 3333
 $dbi->type_rule(
3331 3334
     into1 => {
3332 3335
         $date_typename => sub { '2010-' . $_[0] }
... ...
@@ -3337,9 +3340,9 @@ $result = $dbi->select(table => $table1);
3337 3340
 like($result->one->{$key1}, qr/^2010-01-01/);
3338 3341
 
3339 3342
 $dbi = DBIx::Custom->connect;
3340
-$dbi->user_table_info($user_table_info);
3341 3343
 eval { $dbi->execute("drop table $table1") };
3342 3344
 $dbi->execute($create_table1_type);
3345
+$dbi->user_column_info($user_column_info);
3343 3346
 $dbi->type_rule(
3344 3347
     into1 => [
3345 3348
          [$date_typename, $datetime_typename] => sub {
... ...
@@ -3356,10 +3359,10 @@ like($row->{$key1}, qr/^2010-01-03/);
3356 3359
 like($row->{$key2}, qr/^2010-01-01 01:01:03/);
3357 3360
 
3358 3361
 $dbi = DBIx::Custom->connect;
3359
-$dbi->user_table_info($user_table_info);
3360 3362
 eval { $dbi->execute("drop table $table1") };
3361 3363
 $dbi->execute($create_table1_type);
3362 3364
 $dbi->insert({$key1 => '2010-01-03', $key2 => '2010-01-01 01:01:03'}, table => $table1);
3365
+$dbi->user_column_info($user_column_info);
3363 3366
 $dbi->type_rule(
3364 3367
     into1 => [
3365 3368
         [$date_typename, $datetime_typename] => sub {
... ...
@@ -3378,10 +3381,10 @@ like($row->{$key1}, qr/^2010-01-03/);
3378 3381
 like($row->{$key2}, qr/^2010-01-01 01:01:03/);
3379 3382
 
3380 3383
 $dbi = DBIx::Custom->connect;
3381
-$dbi->user_table_info($user_table_info);
3382 3384
 eval { $dbi->execute("drop table $table1") };
3383 3385
 $dbi->execute($create_table1_type);
3384 3386
 $dbi->insert({$key1 => '2010-01-03', $key2 => '2010-01-01 01:01:03'}, table => $table1);
3387
+$dbi->user_column_info($user_column_info);
3385 3388
 $dbi->type_rule(
3386 3389
     into1 => [
3387 3390
         [$date_typename, $datetime_typename] => sub {
... ...
@@ -3401,7 +3404,6 @@ like($row->{$key1}, qr/^2010-01-03/);
3401 3404
 like($row->{$key2}, qr/2010-01-01 01:01:03/);
3402 3405
 
3403 3406
 $dbi = DBIx::Custom->connect;
3404
-$dbi->user_table_info($user_table_info);
3405 3407
 eval { $dbi->execute("drop table $table1") };
3406 3408
 $dbi->execute($create_table1_type);
3407 3409
 $dbi->register_filter(convert => sub {
... ...
@@ -3409,6 +3411,7 @@ $dbi->register_filter(convert => sub {
3409 3411
     $value =~ s/02/03/;
3410 3412
     return $value;
3411 3413
 });
3414
+$dbi->user_column_info($user_column_info);
3412 3415
 $dbi->type_rule(
3413 3416
     from1 => {
3414 3417
         $date_datatype => 'convert',
... ...
@@ -3423,9 +3426,9 @@ like($result->fetch->[0], qr/^2010-03-03/);
3423 3426
 
3424 3427
 test 'type_rule and filter order';
3425 3428
 $dbi = DBIx::Custom->connect;
3426
-$dbi->user_table_info($user_table_info);
3427 3429
 eval { $dbi->execute("drop table $table1") };
3428 3430
 $dbi->execute($create_table1_type);
3431
+$dbi->user_column_info($user_column_info);
3429 3432
 $dbi->type_rule(
3430 3433
     into1 => {
3431 3434
         $date_typename => sub { my $v = shift || ''; $v =~ s/4/5/; return $v }
... ...
@@ -3448,9 +3451,9 @@ like($result->fetch_first->[0], qr/^2010-01-09/);
3448 3451
 
3449 3452
 
3450 3453
 $dbi = DBIx::Custom->connect;
3451
-$dbi->user_table_info($user_table_info);
3452 3454
 eval { $dbi->execute("drop table $table1") };
3453 3455
 $dbi->execute($create_table1_type);
3456
+$dbi->user_column_info($user_column_info);
3454 3457
 $dbi->type_rule(
3455 3458
     from1 => {
3456 3459
         $date_datatype => sub { my $v = shift || ''; $v =~ s/3/4/; return $v }
... ...
@@ -3461,6 +3464,7 @@ $dbi->type_rule(
3461 3464
 );
3462 3465
 $dbi->insert({$key1 => '2010-01-03'}, table => $table1);
3463 3466
 $result = $dbi->select(table => $table1);
3467
+$dbi->user_column_info($user_column_info);
3464 3468
 $result->type_rule(
3465 3469
     from1 => {
3466 3470
         $date_datatype => sub { my $v = shift || ''; $v =~ s/3/6/; return $v }
... ...
@@ -3474,9 +3478,9 @@ like($result->fetch_first->[0], qr/^2010-01-09/);
3474 3478
 
3475 3479
 test 'type_rule_off';
3476 3480
 $dbi = DBIx::Custom->connect;
3477
-$dbi->user_table_info($user_table_info);
3478 3481
 eval { $dbi->execute("drop table $table1") };
3479 3482
 $dbi->execute($create_table1_type);
3483
+$dbi->user_column_info($user_column_info);
3480 3484
 $dbi->type_rule(
3481 3485
     from1 => {
3482 3486
         $date_datatype => sub { my $v = shift || ''; $v =~ s/3/5/; return $v }
... ...
@@ -3490,9 +3494,9 @@ $result = $dbi->select(table => $table1, type_rule_off => 1);
3490 3494
 like($result->type_rule_off->fetch->[0], qr/^2010-01-03/);
3491 3495
 
3492 3496
 $dbi = DBIx::Custom->connect;
3493
-$dbi->user_table_info($user_table_info);
3494 3497
 eval { $dbi->execute("drop table $table1") };
3495 3498
 $dbi->execute($create_table1_type);
3499
+$dbi->user_column_info($user_column_info);
3496 3500
 $dbi->type_rule(
3497 3501
     from1 => {
3498 3502
         $date_datatype => sub { my $v = shift || ''; $v =~ s/3/4/; return $v }
... ...
@@ -3506,9 +3510,9 @@ $result = $dbi->select(table => $table1, type_rule_off => 1);
3506 3510
 like($result->one->{$key1}, qr/^2010-01-04/);
3507 3511
 
3508 3512
 $dbi = DBIx::Custom->connect;
3509
-$dbi->user_table_info($user_table_info);
3510 3513
 eval { $dbi->execute("drop table $table1") };
3511 3514
 $dbi->execute($create_table1_type);
3515
+$dbi->user_column_info($user_column_info);
3512 3516
 $dbi->type_rule(
3513 3517
     from1 => {
3514 3518
         $date_datatype => sub { my $v = shift || ''; $v =~ s/4/5/; return $v }
... ...
@@ -3522,9 +3526,9 @@ $result = $dbi->select(table => $table1);
3522 3526
 like($result->one->{$key1}, qr/^2010-01-05/);
3523 3527
 
3524 3528
 $dbi = DBIx::Custom->connect;
3525
-$dbi->user_table_info($user_table_info);
3526 3529
 eval { $dbi->execute("drop table $table1") };
3527 3530
 $dbi->execute($create_table1_type);
3531
+$dbi->user_column_info($user_column_info);
3528 3532
 $dbi->type_rule(
3529 3533
     from1 => {
3530 3534
         $date_datatype => sub { my $v = shift || ''; $v =~ s/4/5/; return $v }
... ...
@@ -3538,10 +3542,10 @@ $result = $dbi->select(table => $table1);
3538 3542
 like($result->fetch->[0], qr/2010-01-05/);
3539 3543
 
3540 3544
 $dbi = DBIx::Custom->connect;
3541
-$dbi->user_table_info($user_table_info);
3542 3545
 eval { $dbi->execute("drop table $table1") };
3543 3546
 $dbi->execute($create_table1_type);
3544 3547
 $dbi->register_filter(ppp => sub { my $v = shift || ''; $v =~ s/3/4/; return $v });
3548
+$dbi->user_column_info($user_column_info);
3545 3549
 $dbi->type_rule(
3546 3550
     into1 => {
3547 3551
         $date_typename => 'ppp'
... ...
@@ -3559,7 +3563,6 @@ eval{$dbi->type_rule(
3559 3563
 like($@, qr/not registered/);
3560 3564
 
3561 3565
 $dbi = DBIx::Custom->connect;
3562
-$dbi->user_table_info($user_table_info);
3563 3566
 eval { $dbi->execute("drop table $table1") };
3564 3567
 $dbi->execute($create_table1_type);
3565 3568
 eval {
... ...
@@ -3581,9 +3584,9 @@ eval {
3581 3584
 like($@, qr/lower/);
3582 3585
 
3583 3586
 $dbi = DBIx::Custom->connect;
3584
-$dbi->user_table_info($user_table_info);
3585 3587
 eval { $dbi->execute("drop table $table1") };
3586 3588
 $dbi->execute($create_table1_type);
3589
+$dbi->user_column_info($user_column_info);
3587 3590
 $dbi->type_rule(
3588 3591
     from1 => {
3589 3592
         $date_datatype => sub { my $v = shift || ''; $v =~ s/4/5/; return $v }
... ...
@@ -3598,9 +3601,9 @@ $result->type_rule_off;
3598 3601
 like($result->one->{$key1}, qr/^2010-01-04/);
3599 3602
 
3600 3603
 $dbi = DBIx::Custom->connect;
3601
-$dbi->user_table_info($user_table_info);
3602 3604
 eval { $dbi->execute("drop table $table1") };
3603 3605
 $dbi->execute($create_table1_type);
3606
+$dbi->user_column_info($user_column_info);
3604 3607
 $dbi->type_rule(
3605 3608
     from1 => {
3606 3609
         $date_datatype => sub { my $v = shift || ''; $v =~ s/3/4/; return $v },
... ...
@@ -3664,9 +3667,9 @@ like($row->{$key1}, qr/^2010-01-03/);
3664 3667
 like($row->{$key2}, qr/^2010-01-01 01:01:03/);
3665 3668
 
3666 3669
 $dbi = DBIx::Custom->connect;
3667
-$dbi->user_table_info($user_table_info);
3668 3670
 eval { $dbi->execute("drop table $table1") };
3669 3671
 $dbi->execute($create_table1_type);
3672
+$dbi->user_column_info($user_column_info);
3670 3673
 $dbi->type_rule(
3671 3674
     from1 => {
3672 3675
         $date_datatype => sub { my $v = shift || ''; $v =~ s/3/4/; return $v },
... ...
@@ -3678,9 +3681,9 @@ $result->filter($key1 => sub { my $v = shift || ''; $v =~ s/4/5/; return $v });
3678 3681
 like($result->one->{$key1}, qr/^2010-01-05/);
3679 3682
 
3680 3683
 $dbi = DBIx::Custom->connect;
3681
-$dbi->user_table_info($user_table_info);
3682 3684
 eval { $dbi->execute("drop table $table1") };
3683 3685
 $dbi->execute($create_table1_type);
3686
+$dbi->user_column_info($user_column_info);
3684 3687
 $dbi->type_rule(
3685 3688
     from1 => {
3686 3689
         $date_datatype => sub { my $v = shift || ''; $v =~ s/3/4/; return $v }
... ...
@@ -3692,9 +3695,9 @@ $result->filter($key1 => sub { my $v = shift || ''; $v =~ s/4/5/; return $v });
3692 3695
 like($result->fetch->[0], qr/^2010-01-05/);
3693 3696
 
3694 3697
 $dbi = DBIx::Custom->connect;
3695
-$dbi->user_table_info($user_table_info);
3696 3698
 eval { $dbi->execute("drop table $table1") };
3697 3699
 $dbi->execute($create_table1_type);
3700
+$dbi->user_column_info($user_column_info);
3698 3701
 $dbi->type_rule(
3699 3702
     into1 => {
3700 3703
         $date_typename => sub { my $v = shift || ''; $v =~ s/3/4/; return $v }
... ...
@@ -3716,9 +3719,9 @@ $result = $dbi->select(table => $table1);
3716 3719
 like($result->type_rule_on->fetch_first->[0], qr/^2010-01-07/);
3717 3720
 
3718 3721
 $dbi = DBIx::Custom->connect;
3719
-$dbi->user_table_info($user_table_info);
3720 3722
 eval { $dbi->execute("drop table $table1") };
3721 3723
 $dbi->execute($create_table1_type);
3724
+$dbi->user_column_info($user_column_info);
3722 3725
 $dbi->type_rule(
3723 3726
     into1 => {
3724 3727
         $date_typename => sub { my $v = shift || ''; $v =~ s/3/4/; return $v }
... ...
@@ -3740,9 +3743,9 @@ $result = $dbi->select(table => $table1);
3740 3743
 like($result->type_rule1_on->fetch_first->[0], qr/^2010-01-07/);
3741 3744
 
3742 3745
 $dbi = DBIx::Custom->connect;
3743
-$dbi->user_table_info($user_table_info);
3744 3746
 eval { $dbi->execute("drop table $table1") };
3745 3747
 $dbi->execute($create_table1_type);
3748
+$dbi->user_column_info($user_column_info);
3746 3749
 $dbi->type_rule(
3747 3750
     into1 => {
3748 3751
         $date_typename => sub { my $v = shift || ''; $v =~ s/3/5/; return $v }
+13 -63
t/mysql.t
... ...
@@ -1,21 +1,27 @@
1 1
 use Test::More;
2 2
 use strict;
3 3
 use warnings;
4
+use utf8;
4 5
 
5 6
 use FindBin;
6 7
 use DBIx::Custom;
7 8
 
8 9
 my $dbi;
10
+my $dsn;
11
+my $args;
12
+my $user = 'dbix_custom';
13
+my $password = 'dbix_custom';
14
+my $database = 'dbix_custom';
9 15
 
10
-plan skip_all => 'mysql private test' unless -f "$FindBin::Bin/run/mysql.run"
11
-  && eval { $dbi = DBIx::Custom->connect; 1 };
16
+$dsn = "dbi:mysql:database=$database";
17
+$args = {dsn => $dsn, user => $user, password => $password,};
18
+
19
+plan skip_all => 'mysql private test' unless -f "$FindBin::Bin/run/mysql2.run"
20
+  && eval { $dbi = DBIx::Custom->connect($args); 1 };
12 21
 plan 'no_plan';
13 22
 
14 23
 $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /DEPRECATED/};
15 24
 
16
-# user password database
17
-our ($user, $password, $database) = qw/appuser 123456 usertest/;
18
-
19 25
 require DBIx::Connector;
20 26
 
21 27
 # Function for test name
... ...
@@ -44,8 +50,8 @@ for (1 .. 200) {
44 50
         password => $password
45 51
     );
46 52
     $dbi->query_builder;
47
-    $dbi->create_model(table => $table1);
48
-    $dbi->create_model(table => $table2);
53
+    $dbi->create_model(table => 'table1');
54
+    $dbi->create_model(table => 'table2');
49 55
 }
50 56
 
51 57
 test 'limit';
... ...
@@ -104,62 +110,6 @@ $rows = $dbi->select(
104 110
 is_deeply($rows, [{key1 => 1, key2 => 4}]);
105 111
 $dbi->delete_all(table => 'table1');
106 112
 
107
-test 'type_rule';
108
-$dbi = DBIx::Custom->connect(
109
-    dsn => "dbi:mysql:database=$database",
110
-    user => $user,
111
-    password => $password
112
-);
113
-eval{$dbi->execute("create table date_test (date DATE, datetime DATETIME)")};
114
-$dbi->each_column(
115
-    sub {
116
-        my ($self, $table, $column, $column_info) = @_;
117
-    }
118
-);
119
-
120
-$dbi->type_rule(
121
-    into1 => {
122
-        date=> sub {
123
-            my $date = shift;
124
-            $date =~ s/aaaaa//g;
125
-            return $date;
126
-        },
127
-        datetime => sub {
128
-            my $date = shift;
129
-            $date =~ s/ccccc//g;
130
-            return $date;
131
-        },
132
-    },
133
-    from1 => {
134
-        # DATE
135
-        9 => sub {
136
-                my $date = shift;
137
-                $date .= 'bbbbb';
138
-                return $date;
139
-        },
140
-        # DATETIME or TIMPESTANM
141
-        11 => sub {
142
-                my $date = shift;
143
-                $date .= 'ddddd';
144
-                return $date;
145
-        }
146
-    }
147
-);
148
-
149
-$dbi->insert(
150
-    {
151
-        date => 'aaaaa2010-aaaaa11-12aaaaa',
152
-        datetime => '2010-11ccccc-12 10:ccccc55:56'
153
-    },
154
-    table => 'date_test'
155
-);
156
-is_deeply(
157
-    $dbi->select(table => 'date_test')->fetch,
158
-    ['2010-11-12bbbbb', '2010-11-12 10:55:56ddddd']
159
-);
160
-
161
-$dbi->execute("drop table date_test");
162
-
163 113
 test 'dbh';
164 114
 {
165 115
     my $connector = DBIx::Connector->new(
+65
t/mysql2.t
... ...
@@ -0,0 +1,65 @@
1
+use Test::More;
2
+use strict;
3
+use warnings;
4
+use utf8;
5
+
6
+use FindBin;
7
+use DBIx::Custom;
8
+
9
+my $dbi;
10
+my $dsn;
11
+my $args;
12
+my $user = 'dbix_custom';
13
+my $password = 'dbix_custom';
14
+my $database = 'dbix_custom';
15
+
16
+$dsn = "dbi:mysql:database=$database";
17
+$args = {dsn => $dsn, user => $user, password => $password,};
18
+
19
+plan skip_all => 'mysql private test' unless -f "$FindBin::Bin/run/mysql2.run"
20
+  && eval { $dbi = DBIx::Custom->connect($args); 1 };
21
+plan 'no_plan';
22
+
23
+$SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /DEPRECATED/};
24
+
25
+
26
+require DBIx::Connector;
27
+
28
+# Function for test name
29
+sub test { print "# $_[0]\n" }
30
+
31
+# Varialbes for tests
32
+my $dbname;
33
+my $rows;
34
+my $result;
35
+
36
+$dbi = DBIx::Custom->connect(
37
+    dsn => "dbi:mysql:database=$database",
38
+    user => $user,
39
+    password => $password
40
+);
41
+eval { $dbi->execute('drop table table1') };
42
+$dbi->execute('create table table1 (key1 varchar(255), key2 varchar(255))');
43
+
44
+test 'connector => 1';
45
+{
46
+    my $dbi = DBIx::Custom->connect(dsn => $dsn, user => $user, password => $password,
47
+      dbi_option => {PrintError => 1}, connector => 1);
48
+    is(ref $dbi->connector, 'DBIx::Connector');
49
+    ok($dbi->dbh->{PrintError});
50
+    $dbi->delete_all(table => 'table1');
51
+    $dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2});
52
+    die "Can't fork" unless defined (my $pid = fork);
53
+
54
+    if ($pid) {
55
+        # Parent
56
+        my $result = $dbi->select(table => 'table1');
57
+        is_deeply($result->fetch_hash_first, {key1 => 1, key2 => 2});
58
+    }
59
+    else {
60
+        # Child
61
+        my $result = $dbi->select(table => 'table1');
62
+        die "Not OK" unless $result->fetch_hash_first->{key1} == 1;
63
+    }
64
+}
65
+
t/run/mysql2.run
No changes.