... | ... |
@@ -1212,8 +1212,11 @@ sub type_rule { |
1212 | 1212 |
$filter = $self->filters->{$fname}; |
1213 | 1213 |
} |
1214 | 1214 |
|
1215 |
+ my $database = $column_info->{TABLE_SCHEM}; |
|
1215 | 1216 |
$self->{"_$into"}{key}{$table}{$column} = $filter; |
1216 | 1217 |
$self->{"_$into"}{dot}{"$table.$column"} = $filter; |
1218 |
+ $self->{"_$into"}{key}{"$database.$table"}{$column} = $filter; |
|
1219 |
+ $self->{"_$into"}{dot}{"$database.$table.$column"} = $filter; |
|
1217 | 1220 |
} |
1218 | 1221 |
}); |
1219 | 1222 |
} |
... | ... |
@@ -41,6 +41,12 @@ sub colon2 { |
41 | 41 |
return $value; |
42 | 42 |
} |
43 | 43 |
|
44 |
+sub table_only { |
|
45 |
+ my $value = shift; |
|
46 |
+ $value =~ s/^.+\.//; |
|
47 |
+ return $value; |
|
48 |
+} |
|
49 |
+ |
|
44 | 50 |
# Constant |
45 | 51 |
my $table1 = $dbi->table1; |
46 | 52 |
my $table2 = $dbi->table2; |
... | ... |
@@ -4187,10 +4193,10 @@ $dbi->each_column(sub { |
4187 | 4193 |
$infos = [sort { $a->[0] cmp $b->[0] || $a->[1] cmp $b->[1] } @$infos]; |
4188 | 4194 |
is_deeply($infos, |
4189 | 4195 |
[ |
4190 |
- [$table1, $key1, $key1], |
|
4191 |
- [$table1, $key2, $key2], |
|
4192 |
- [$table2, $key1, $key1], |
|
4193 |
- [$table2, $key3, $key3] |
|
4196 |
+ [table_only($table1), $key1, $key1], |
|
4197 |
+ [table_only($table1), $key2, $key2], |
|
4198 |
+ [table_only($table2), $key1, $key1], |
|
4199 |
+ [table_only($table2), $key3, $key3] |
|
4194 | 4200 |
] |
4195 | 4201 |
|
4196 | 4202 |
); |
... | ... |
@@ -4214,8 +4220,8 @@ $dbi->each_table(sub { |
4214 | 4220 |
$infos = [sort { $a->[0] cmp $b->[0] || $a->[1] cmp $b->[1] } @$infos]; |
4215 | 4221 |
is_deeply($infos, |
4216 | 4222 |
[ |
4217 |
- [$table1, $table1], |
|
4218 |
- [$table2, $table2], |
|
4223 |
+ [table_only($table1), table_only($table1)], |
|
4224 |
+ [table_only($table2), table_only($table2)], |
|
4219 | 4225 |
] |
4220 | 4226 |
); |
4221 | 4227 |
|
... | ... |
@@ -4238,9 +4244,9 @@ $dbi->each_table(sub { |
4238 | 4244 |
$infos = [sort { $a->[0] cmp $b->[0] || $a->[1] cmp $b->[1] } @$infos]; |
4239 | 4245 |
is_deeply($infos, |
4240 | 4246 |
[ |
4241 |
- [$table1, $table1], |
|
4242 |
- [$table2, $table2], |
|
4243 |
- [$table3, $table3], |
|
4247 |
+ [table_only($table1), table_only($table1)], |
|
4248 |
+ [table_only($table2), table_only($table2)], |
|
4249 |
+ [table_only($table3), table_only($table3)], |
|
4244 | 4250 |
] |
4245 | 4251 |
); |
4246 | 4252 |
|
... | ... |
@@ -4709,11 +4715,11 @@ $dbi->execute("create table $table3 ($key3 int, $key4 int)"); |
4709 | 4715 |
$dbi->insert({$key3 => 5, $key4 => 4}, table => $table3); |
4710 | 4716 |
$rows = $dbi->select( |
4711 | 4717 |
table => $table1, |
4712 |
- column => "$table1.$key1 as ${table1}_$key1, $table2.$key1 as ${table2}_$key1, $key2, $key3", |
|
4718 |
+ column => "$table1.$key1 as " . u("${table1}_$key1") . ", $table2.$key1 as " . u("${table2}_$key1") . ", $key2, $key3", |
|
4713 | 4719 |
where => {"$table1.$key2" => 2}, |
4714 | 4720 |
join => ["left outer join $table2 on $table1.$key1 = $table2.$key1"] |
4715 | 4721 |
)->all; |
4716 |
-is_deeply($rows, [{"${table1}_$key1" => 1, "${table2}_$key1" => 1, $key2 => 2, $key3 => 5}]); |
|
4722 |
+is_deeply($rows, [{u"${table1}_$key1" => 1, u"${table2}_$key1" => 1, $key2 => 2, $key3 => 5}]); |
|
4717 | 4723 |
|
4718 | 4724 |
$dbi = DBIx::Custom->connect; |
4719 | 4725 |
eval { $dbi->execute("drop table $table1") }; |
... | ... |
@@ -4728,14 +4734,14 @@ $dbi->execute("create table $table3 ($key3 int, $key4 int)"); |
4728 | 4734 |
$dbi->insert({$key3 => 5, $key4 => 4}, table => $table3); |
4729 | 4735 |
$rows = $dbi->select( |
4730 | 4736 |
table => $table1, |
4731 |
- column => "$table1.$key1 as ${table1}_$key1, $table2.$key1 as ${table2}_$key1, $key2, $key3", |
|
4737 |
+ column => "$table1.$key1 as " . u("${table1}_$key1") . ", $table2.$key1 as " . u("${table2}_$key1") . ", $key2, $key3", |
|
4732 | 4738 |
where => {"$table1.$key2" => 2}, |
4733 | 4739 |
join => { |
4734 | 4740 |
clause => "left outer join $table2 on $table1.$key1 = $table2.$key1", |
4735 | 4741 |
table => [$table1, $table2] |
4736 | 4742 |
} |
4737 | 4743 |
)->all; |
4738 |
-is_deeply($rows, [{"${table1}_$key1" => 1, "${table2}_$key1" => 1, $key2 => 2, $key3 => 5}]); |
|
4744 |
+is_deeply($rows, [{u"${table1}_$key1" => 1, u"${table2}_$key1" => 1, $key2 => 2, $key3 => 5}]); |
|
4739 | 4745 |
|
4740 | 4746 |
$rows = $dbi->select( |
4741 | 4747 |
table => $table1, |
... | ... |
@@ -4753,22 +4759,22 @@ $rows = $dbi->select( |
4753 | 4759 |
is_deeply($rows, [{$key1 => 1, $key2 => 2}]); |
4754 | 4760 |
|
4755 | 4761 |
$rows = $dbi->select( |
4756 |
- column => "$table3.$key4 as ${table3}__$key4", |
|
4762 |
+ column => "$table3.$key4 as " . u2("${table3}__$key4"), |
|
4757 | 4763 |
table => $table1, |
4758 | 4764 |
where => {"$table1.$key1" => 1}, |
4759 | 4765 |
join => ["left outer join $table2 on $table1.$key1 = $table2.$key1", |
4760 | 4766 |
"left outer join $table3 on $table2.$key3 = $table3.$key3"] |
4761 | 4767 |
)->all; |
4762 |
-is_deeply($rows, [{"${table3}__$key4" => 4}]); |
|
4768 |
+is_deeply($rows, [{u2"${table3}__$key4" => 4}]); |
|
4763 | 4769 |
|
4764 | 4770 |
$rows = $dbi->select( |
4765 |
- column => "$table1.$key1 as ${table1}__$key1", |
|
4771 |
+ column => "$table1.$key1 as " . u2("${table1}__$key1"), |
|
4766 | 4772 |
table => $table1, |
4767 | 4773 |
where => {"$table3.$key4" => 4}, |
4768 | 4774 |
join => ["left outer join $table2 on $table1.$key1 = $table2.$key1", |
4769 | 4775 |
"left outer join $table3 on $table2.$key3 = $table3.$key3"] |
4770 | 4776 |
)->all; |
4771 |
-is_deeply($rows, [{"${table1}__$key1" => 1}]); |
|
4777 |
+is_deeply($rows, [{u2"${table1}__$key1" => 1}]); |
|
4772 | 4778 |
|
4773 | 4779 |
$dbi = DBIx::Custom->connect; |
4774 | 4780 |
eval { $dbi->execute("drop table $table1") }; |