fixed documentation miss about execute method's table_a...
...lias option and improved documents
| ... | ... |
@@ -1,3 +1,5 @@ |
| 1 |
+0.27 (2012-09-17) |
|
| 2 |
+ - fixed documentation miss about execute method's table_alias option. |
|
| 1 | 3 |
0.26 |
| 2 | 4 |
- fixed bug that when id option's value is object, don't work. |
| 3 | 5 |
0.25 |
| ... | ... |
@@ -2,7 +2,7 @@ use 5.008007; |
| 2 | 2 |
package DBIx::Custom; |
| 3 | 3 |
use Object::Simple -base; |
| 4 | 4 |
|
| 5 |
-our $VERSION = '0.26'; |
|
| 5 |
+our $VERSION = '0.27'; |
|
| 6 | 6 |
|
| 7 | 7 |
use Carp 'croak'; |
| 8 | 8 |
use DBI; |
| ... | ... |
@@ -2185,33 +2185,38 @@ DBIx::Custom - DBI extension to execute insert, update, delete, and select easil |
| 2185 | 2185 |
$dbi->delete(table => 'book', where => {author => 'Ken'});
|
| 2186 | 2186 |
|
| 2187 | 2187 |
# Select |
| 2188 |
- my $result = $dbi->select(table => 'book', |
|
| 2189 |
- column => ['title', 'author'], where => {author => 'Ken'});
|
|
| 2188 |
+ # select title, author from book where author = ? |
|
| 2189 |
+ my $result = $dbi->select( |
|
| 2190 |
+ ['title', 'author'], |
|
| 2191 |
+ table => 'book', |
|
| 2192 |
+ where => {author => 'Ken'}
|
|
| 2193 |
+ ); |
|
| 2190 | 2194 |
|
| 2191 | 2195 |
# Select, more complex |
| 2196 |
+ # select book.title as book.title, |
|
| 2197 |
+ # book.author as book.author, |
|
| 2198 |
+ # comnapy.name as company.name |
|
| 2199 |
+ # form book |
|
| 2200 |
+ # left outer join company on book.company_id = company.id |
|
| 2201 |
+ # where book.author = ? |
|
| 2202 |
+ # order by id limit 0, 5 |
|
| 2192 | 2203 |
my $result = $dbi->select( |
| 2193 |
- table => 'book', |
|
| 2194 |
- column => [ |
|
| 2204 |
+ [ |
|
| 2195 | 2205 |
{book => [qw/title author/]},
|
| 2196 | 2206 |
{company => ['name']}
|
| 2197 | 2207 |
], |
| 2208 |
+ table => 'book', |
|
| 2198 | 2209 |
where => {'book.author' => 'Ken'},
|
| 2199 | 2210 |
join => ['left outer join company on book.company_id = company.id'], |
| 2200 |
- append => 'order by id limit 5' |
|
| 2211 |
+ append => 'order by id limit 0, 5' |
|
| 2201 | 2212 |
); |
| 2202 | 2213 |
|
| 2203 |
- # Fetch |
|
| 2204 |
- while (my $row = $result->fetch) {
|
|
| 2205 |
- |
|
| 2206 |
- } |
|
| 2207 |
- |
|
| 2208 |
- # Fetch as hash |
|
| 2209 |
- while (my $row = $result->fetch_hash) {
|
|
| 2210 |
- |
|
| 2211 |
- } |
|
| 2214 |
+ # Get all rows or only one row |
|
| 2215 |
+ my $rows = $result->all; |
|
| 2216 |
+ my $row = $result->one; |
|
| 2212 | 2217 |
|
| 2213 |
- # Execute SQL with parameter. |
|
| 2214 |
- $dbi->execute( |
|
| 2218 |
+ # Execute SQL. |
|
| 2219 |
+ my $result = $dbi->execute( |
|
| 2215 | 2220 |
"select id from book where author = :author and title like :title", |
| 2216 | 2221 |
{author => 'ken', title => '%Perl%'}
|
| 2217 | 2222 |
); |
| ... | ... |
@@ -2259,19 +2264,13 @@ Create C<order by> clause flexibly |
| 2259 | 2264 |
|
| 2260 | 2265 |
=back |
| 2261 | 2266 |
|
| 2262 |
-=head1 DOCUMENTATION |
|
| 2267 |
+=head1 DOCUMENTS |
|
| 2263 | 2268 |
|
| 2264 |
-L<DBIx::Custom::Guide> - How to use L<DBIx::Custom> |
|
| 2269 |
+L<DBIx::Custom Documents|https://github.com/yuki-kimoto/DBIx-Custom/wiki/DBIx::Custom-Documents> |
|
| 2265 | 2270 |
|
| 2266 |
-L<DBIx::Custom Wiki|https://github.com/yuki-kimoto/DBIx-Custom/wiki> |
|
| 2267 |
-- Theare are various examples. |
|
| 2271 |
+L<DBIx::Custom API reference|http://search.cpan.org/~kimoto/DBIx-Custom/> |
|
| 2268 | 2272 |
|
| 2269 |
-Module documentations - |
|
| 2270 |
-L<DBIx::Custom::Result>, |
|
| 2271 |
-L<DBIx::Custom::Query>, |
|
| 2272 |
-L<DBIx::Custom::Where>, |
|
| 2273 |
-L<DBIx::Custom::Model>, |
|
| 2274 |
-L<DBIx::Custom::Order> |
|
| 2273 |
+L<DBIx::Custom Examples|Wiki|https://github.com/yuki-kimoto/DBIx-Custom/wiki> |
|
| 2275 | 2274 |
|
| 2276 | 2275 |
=head1 ATTRIBUTES |
| 2277 | 2276 |
|
| ... | ... |
@@ -2939,9 +2938,9 @@ You must set C<table> option. |
| 2939 | 2938 |
|
| 2940 | 2939 |
=item C<table_alias> |
| 2941 | 2940 |
|
| 2942 |
- table_alias => {user => 'worker'}
|
|
| 2941 |
+ table_alias => {worker => 'user'} # {ALIAS => TABLE}
|
|
| 2943 | 2942 |
|
| 2944 |
-Table alias. Key is real table name, value is alias table name. |
|
| 2943 |
+Table alias. Key is alias table name, value is real table name, . |
|
| 2945 | 2944 |
If you set C<table_alias>, you can enable C<into1> and C<into2> type rule |
| 2946 | 2945 |
on alias table name. |
| 2947 | 2946 |
|
| ... | ... |
@@ -1,9 +0,0 @@ |
| 1 |
-=head1 NAME |
|
| 2 |
- |
|
| 3 |
-DBIx::Custom::Guide - DBIx::Custom Guide |
|
| 4 |
- |
|
| 5 |
-=head1 LINK |
|
| 6 |
- |
|
| 7 |
-Guide is moved to the following page. |
|
| 8 |
- |
|
| 9 |
-L<https://github.com/yuki-kimoto/DBIx-Custom/wiki/DBIx%3A%3ACustom-Guide> |
| ... | ... |
@@ -171,7 +171,7 @@ sub method {
|
| 171 | 171 |
|
| 172 | 172 |
=head1 NAME |
| 173 | 173 |
|
| 174 |
-DBIx::Custom::Model - Model |
|
| 174 |
+DBIx::Custom::Model - Model object |
|
| 175 | 175 |
|
| 176 | 176 |
=head1 SYNOPSIS |
| 177 | 177 |
|
| ... | ... |
@@ -9,7 +9,7 @@ sub singleton { $not_exists }
|
| 9 | 9 |
|
| 10 | 10 |
=head1 NAME |
| 11 | 11 |
|
| 12 |
-DBIx::Custom::NotExists |
|
| 12 |
+DBIx::Custom::NotExists - Not exsits object |
|
| 13 | 13 |
|
| 14 | 14 |
=head1 SYNOPSYS |
| 15 | 15 |
|
| ... | ... |
@@ -51,7 +51,7 @@ sub to_string {
|
| 51 | 51 |
|
| 52 | 52 |
=head1 NAME |
| 53 | 53 |
|
| 54 |
-DBIx::Custom::Order - Order by |
|
| 54 |
+DBIx::Custom::Order - Order by clause |
|
| 55 | 55 |
|
| 56 | 56 |
=head1 SYNOPSIS |
| 57 | 57 |
|
| ... | ... |
@@ -55,4 +55,8 @@ XE = |
| 55 | 55 |
) |
| 56 | 56 |
) |
| 57 | 57 |
|
| 58 |
+If "the password will expire within 7 days" is displayed on test, |
|
| 59 |
+please change password |
|
| 60 |
+ |
|
| 61 |
+ PASSWORD |
|
| 58 | 62 |
|
| ... | ... |
@@ -4989,4 +4989,39 @@ $model->insert({$key1 => 1, $key3 => 3});
|
| 4989 | 4989 |
is($model->count(id => 1), 1); |
| 4990 | 4990 |
is($model->count(where => {"$table2.$key3" => 3}), 1);
|
| 4991 | 4991 |
|
| 4992 |
+test 'table_alias option'; |
|
| 4993 |
+$dbi = DBIx::Custom->connect; |
|
| 4994 |
+eval { $dbi->execute("drop table $table1") };
|
|
| 4995 |
+$dbi->execute($create_table1_type); |
|
| 4996 |
+$dbi->insert({$key1 => '2010-01-01'}, table => $table1);
|
|
| 4997 |
+$dbi->user_column_info($user_column_info); |
|
| 4998 |
+$dbi->type_rule( |
|
| 4999 |
+ into1 => {
|
|
| 5000 |
+ $date_typename => sub { '2010-' . $_[0] }
|
|
| 5001 |
+ } |
|
| 5002 |
+); |
|
| 5003 |
+$result = $dbi->execute( |
|
| 5004 |
+ "select * from $table1 TABLE1_ALIAS where :TABLE1_ALIAS.${key1}{=}",
|
|
| 5005 |
+ {"TABLE1_ALIAS.${key1}" => '01-01'},
|
|
| 5006 |
+ table_alias => {TABLE1_ALIAS => $table1}
|
|
| 5007 |
+); |
|
| 5008 |
+like($result->one->{$key1}, qr/^2010-01-01/);
|
|
| 5009 |
+ |
|
| 5010 |
+$dbi = DBIx::Custom->connect; |
|
| 5011 |
+eval { $dbi->execute("drop table $table1") };
|
|
| 5012 |
+$dbi->execute($create_table1_type); |
|
| 5013 |
+$dbi->insert({$key1 => '2010-01-01'}, table => $table1);
|
|
| 5014 |
+$dbi->user_column_info($user_column_info); |
|
| 5015 |
+$dbi->type_rule( |
|
| 5016 |
+ into2 => {
|
|
| 5017 |
+ $date_typename => sub { '2010-' . $_[0] }
|
|
| 5018 |
+ } |
|
| 5019 |
+); |
|
| 5020 |
+$result = $dbi->execute( |
|
| 5021 |
+ "select * from $table1 TABLE1_ALIAS where :TABLE1_ALIAS.${key1}{=}",
|
|
| 5022 |
+ {"TABLE1_ALIAS.${key1}" => '01-01'},
|
|
| 5023 |
+ table_alias => {TABLE1_ALIAS => $table1}
|
|
| 5024 |
+); |
|
| 5025 |
+like($result->one->{$key1}, qr/^2010-01-01/);
|
|
| 5026 |
+ |
|
| 4992 | 5027 |
1; |