| ... | ... |
@@ -20,6 +20,8 @@ use DBIx::Custom; |
| 20 | 20 |
. 'key3 varchar(255), key4 varchar(255), key5 varchar(255)) engine=InnoDB;' } |
| 21 | 21 |
sub create_table1_type { 'create table table1 (key1 Date, key2 datetime) engine=InnoDB;;' }
|
| 22 | 22 |
sub create_table2 { 'create table table2 (key1 varchar(255), key3 varchar(255)) engine=InnoDB;' }
|
| 23 |
+ sub create_table2_2 { "create table table2 (key1 varchar(255), key2 varchar(255), key3 varchar(255)) engine=InnoDB" }
|
|
| 24 |
+ sub create_table3 { "create table table3 (key1 varchar(255), key2 varchar(255), key3 varchar(255)) engine=InnoDB" }
|
|
| 23 | 25 |
sub create_table_reserved {
|
| 24 | 26 |
'create table `table` (`select` varchar(255), `update` varchar(255)) engine=InnoDB;' } |
| 25 | 27 |
} |
| ... | ... |
@@ -19,6 +19,8 @@ use DBIx::Custom; |
| 19 | 19 |
. 'key3 varchar(255), key4 varchar(255), key5 varchar(255));' } |
| 20 | 20 |
sub create_table1_type { 'create table table1 (key1 Date, key2 varchar(255));' }
|
| 21 | 21 |
sub create_table2 { 'create table table2 (key1 varchar(255), key3 varchar(255));' }
|
| 22 |
+ sub create_table2_2 { "create table table2 (key1 varchar(255), key2 varchar(255), key3 varchar(255))" }
|
|
| 23 |
+ sub create_table3 { "create table table3 (key1 varchar(255), key2 varchar(255), key3 varchar(255))" }
|
|
| 22 | 24 |
sub create_table_reserved { 'create table "table" ("select" varchar(255), "update" varchar(255))' }
|
| 23 | 25 |
} |
| 24 | 26 |
|
| ... | ... |
@@ -14,6 +14,8 @@ use DBIx::Custom; |
| 14 | 14 |
sub create_table1_2 {'create table table1 (key1, key2, key3, key4, key5);' }
|
| 15 | 15 |
sub create_table1_type { 'create table table1 (key1 Date, key2 datetime);' }
|
| 16 | 16 |
sub create_table2 { 'create table table2 (key1, key3);' }
|
| 17 |
+ sub create_table2_2 { "create table table2 (key1, key2, key3)" }
|
|
| 18 |
+ sub create_table3 { "create table table3 (key1, key2, key3)" }
|
|
| 17 | 19 |
sub create_table_reserved { 'create table "table" ("select", "update")' }
|
| 18 | 20 |
} |
| 19 | 21 |
|
| ... | ... |
@@ -13,6 +13,8 @@ use DBIx::Custom; |
| 13 | 13 |
sub create_table1_2 {'create table table1 (key1, key2, key3, key4, key5);' }
|
| 14 | 14 |
sub create_table1_type { 'create table table1 (key1 Date, key2 datetime);' }
|
| 15 | 15 |
sub create_table2 { 'create table table2 (key1, key3);' }
|
| 16 |
+ sub create_table2_2 { "create table table2 (key1, key2, key3)" }
|
|
| 17 |
+ sub create_table3 { "create table table3 (key1, key2, key3)" }
|
|
| 16 | 18 |
sub create_table_reserved { 'create table "table" ("select", "update")' }
|
| 17 | 19 |
} |
| 18 | 20 |
|
| ... | ... |
@@ -988,6 +988,7 @@ $dbi = DBIx::Custom->connect; |
| 988 | 988 |
eval { $dbi->execute("drop table ${q}table$p") };
|
| 989 | 989 |
eval { $dbi->execute('drop table table1') };
|
| 990 | 990 |
eval { $dbi->execute('drop table table2') };
|
| 991 |
+eval { $dbi->execute('drop table table3') };
|
|
| 991 | 992 |
$dbi->execute($create_table1_type); |
| 992 | 993 |
$dbi->execute($create_table2); |
| 993 | 994 |
|
| ... | ... |
@@ -0,0 +1,19 @@ |
| 1 |
+package MyDBI1; |
|
| 2 |
+ |
|
| 3 |
+use strict; |
|
| 4 |
+use warnings; |
|
| 5 |
+ |
|
| 6 |
+use base 'DBIx::Custom'; |
|
| 7 |
+ |
|
| 8 |
+sub connect {
|
|
| 9 |
+ my $self = shift->SUPER::connect(@_); |
|
| 10 |
+ |
|
| 11 |
+ $self->include_model( |
|
| 12 |
+ MyModel1 => [ |
|
| 13 |
+ 'book', |
|
| 14 |
+ {class => 'Company', name => 'company'}
|
|
| 15 |
+ ] |
|
| 16 |
+ ); |
|
| 17 |
+} |
|
| 18 |
+ |
|
| 19 |
+1; |
| ... | ... |
@@ -0,0 +1,17 @@ |
| 1 |
+package MyModel1::Company; |
|
| 2 |
+ |
|
| 3 |
+use strict; |
|
| 4 |
+use warnings; |
|
| 5 |
+ |
|
| 6 |
+use base 'DBIx::Custom::Model'; |
|
| 7 |
+ |
|
| 8 |
+ |
|
| 9 |
+sub insert {
|
|
| 10 |
+ my ($self, $param) = @_; |
|
| 11 |
+ |
|
| 12 |
+ return $self->SUPER::insert(param => $param); |
|
| 13 |
+} |
|
| 14 |
+ |
|
| 15 |
+sub list { shift->select; }
|
|
| 16 |
+ |
|
| 17 |
+1; |
| ... | ... |
@@ -0,0 +1,13 @@ |
| 1 |
+package MyModel1::book; |
|
| 2 |
+ |
|
| 3 |
+use DBIx::Custom::Model -base; |
|
| 4 |
+ |
|
| 5 |
+sub insert {
|
|
| 6 |
+ my ($self, $param) = @_; |
|
| 7 |
+ |
|
| 8 |
+ return $self->SUPER::insert(param => $param); |
|
| 9 |
+} |
|
| 10 |
+ |
|
| 11 |
+sub list { shift->select; }
|
|
| 12 |
+ |
|
| 13 |
+1; |
| ... | ... |
@@ -0,0 +1,5 @@ |
| 1 |
+package MyModel4; |
|
| 2 |
+ |
|
| 3 |
+use base 'DBIx::Custom::Model'; |
|
| 4 |
+ |
|
| 5 |
+1; |
| ... | ... |
@@ -0,0 +1,9 @@ |
| 1 |
+package MyModel4::book; |
|
| 2 |
+ |
|
| 3 |
+use base 'MyModel4'; |
|
| 4 |
+ |
|
| 5 |
+sub table { 'table1' }
|
|
| 6 |
+ |
|
| 7 |
+sub list { shift->select }
|
|
| 8 |
+ |
|
| 9 |
+1; |
| ... | ... |
@@ -0,0 +1,8 @@ |
| 1 |
+package MyModel4::company; |
|
| 2 |
+ |
|
| 3 |
+use base 'MyModel4'; |
|
| 4 |
+ |
|
| 5 |
+sub insert { shift->SUPER::insert(param => $_[0]) }
|
|
| 6 |
+sub list { shift->select }
|
|
| 7 |
+ |
|
| 8 |
+1; |
| ... | ... |
@@ -0,0 +1,5 @@ |
| 1 |
+package MyModel5; |
|
| 2 |
+ |
|
| 3 |
+use base 'DBIx::Custom::Model'; |
|
| 4 |
+ |
|
| 5 |
+1; |
| ... | ... |
@@ -0,0 +1,7 @@ |
| 1 |
+package MyModel5::table1; |
|
| 2 |
+ |
|
| 3 |
+use MyModel5 -base; |
|
| 4 |
+ |
|
| 5 |
+has primary_key => sub { ['key1', 'key2'] };
|
|
| 6 |
+ |
|
| 7 |
+1; |
| ... | ... |
@@ -0,0 +1,12 @@ |
| 1 |
+package MyModel5::table1_1; |
|
| 2 |
+ |
|
| 3 |
+use strict; |
|
| 4 |
+use warnings; |
|
| 5 |
+ |
|
| 6 |
+use base 'MyModel5'; |
|
| 7 |
+ |
|
| 8 |
+__PACKAGE__->attr(table => 'table2'); |
|
| 9 |
+ |
|
| 10 |
+__PACKAGE__->attr('primary_key' => sub { ['key1', 'key2'] });
|
|
| 11 |
+ |
|
| 12 |
+1; |
| ... | ... |
@@ -0,0 +1,13 @@ |
| 1 |
+package MyModel5::table1_2; |
|
| 2 |
+ |
|
| 3 |
+use strict; |
|
| 4 |
+use warnings; |
|
| 5 |
+ |
|
| 6 |
+use base 'MyModel5'; |
|
| 7 |
+ |
|
| 8 |
+__PACKAGE__->attr(name => 'table1_3'); |
|
| 9 |
+__PACKAGE__->attr(table => 'table3'); |
|
| 10 |
+ |
|
| 11 |
+__PACKAGE__->attr('primary_key' => sub { ['key1', 'key2'] });
|
|
| 12 |
+ |
|
| 13 |
+1; |
| ... | ... |
@@ -0,0 +1,5 @@ |
| 1 |
+package MyModel6; |
|
| 2 |
+ |
|
| 3 |
+use base 'DBIx::Custom::Model'; |
|
| 4 |
+ |
|
| 5 |
+1; |
| ... | ... |
@@ -0,0 +1,14 @@ |
| 1 |
+package MyModel6::table1; |
|
| 2 |
+ |
|
| 3 |
+use base 'MyModel6'; |
|
| 4 |
+ |
|
| 5 |
+__PACKAGE__->attr( |
|
| 6 |
+ join => sub {
|
|
| 7 |
+ [ |
|
| 8 |
+ 'left outer join table2 on table1.key1 = table2.key1' |
|
| 9 |
+ ] |
|
| 10 |
+ }, |
|
| 11 |
+ primary_key => sub { ['key1'] }
|
|
| 12 |
+); |
|
| 13 |
+ |
|
| 14 |
+1; |
| ... | ... |
@@ -0,0 +1,5 @@ |
| 1 |
+package MyModel6::table2; |
|
| 2 |
+ |
|
| 3 |
+use base 'MyModel6'; |
|
| 4 |
+ |
|
| 5 |
+1; |
| ... | ... |
@@ -0,0 +1,11 @@ |
| 1 |
+package MyModel6::table3; |
|
| 2 |
+ |
|
| 3 |
+use base 'MyModel6'; |
|
| 4 |
+ |
|
| 5 |
+__PACKAGE__->attr(filter => sub {
|
|
| 6 |
+ [ |
|
| 7 |
+ key1 => {in => sub { uc $_[0] }}
|
|
| 8 |
+ ] |
|
| 9 |
+}); |
|
| 10 |
+ |
|
| 11 |
+1; |
| ... | ... |
@@ -0,0 +1,5 @@ |
| 1 |
+package MyModel7; |
|
| 2 |
+ |
|
| 3 |
+use base 'DBIx::Custom::Model'; |
|
| 4 |
+ |
|
| 5 |
+1; |
| ... | ... |
@@ -0,0 +1,14 @@ |
| 1 |
+package MyModel7::table1; |
|
| 2 |
+ |
|
| 3 |
+use base 'MyModel7'; |
|
| 4 |
+ |
|
| 5 |
+__PACKAGE__->attr( |
|
| 6 |
+ primary_key => sub { ['key1'] },
|
|
| 7 |
+ join => sub {
|
|
| 8 |
+ [ |
|
| 9 |
+ 'left outer join table2 on table1.key1 = table2.key1' |
|
| 10 |
+ ] |
|
| 11 |
+ }, |
|
| 12 |
+); |
|
| 13 |
+ |
|
| 14 |
+1; |
| ... | ... |
@@ -0,0 +1,5 @@ |
| 1 |
+package MyModel7::table2; |
|
| 2 |
+ |
|
| 3 |
+use base 'MyModel7'; |
|
| 4 |
+ |
|
| 5 |
+1; |
| ... | ... |
@@ -0,0 +1,4 @@ |
| 1 |
+package MyModel8; |
|
| 2 |
+use DBIx::Custom::Model -base; |
|
| 3 |
+ |
|
| 4 |
+1; |
| ... | ... |
@@ -0,0 +1,7 @@ |
| 1 |
+package MyModel8::table1; |
|
| 2 |
+use MyModel8 -base; |
|
| 3 |
+ |
|
| 4 |
+has join => sub { ['left join table2 as table2_alias on table1.key1 = table2_alias.key1'] };
|
|
| 5 |
+ |
|
| 6 |
+ |
|
| 7 |
+1; |
| ... | ... |
@@ -0,0 +1,10 @@ |
| 1 |
+package MyModel8::table2; |
|
| 2 |
+use MyModel8 -base; |
|
| 3 |
+ |
|
| 4 |
+has filter => sub {
|
|
| 5 |
+ {
|
|
| 6 |
+ key3 => {out => sub { $_[0] * 2}, in => sub { $_[0] * 3}, end => sub { $_[0] * 4 }}
|
|
| 7 |
+ } |
|
| 8 |
+}; |
|
| 9 |
+ |
|
| 10 |
+1; |