| ... | ... |
@@ -478,6 +478,10 @@ sub register_filter {
|
| 478 | 478 |
return $invocant; |
| 479 | 479 |
} |
| 480 | 480 |
|
| 481 |
+sub register_tag_processor {
|
|
| 482 |
+ return shift->query_builder->register_tag_processor(@_); |
|
| 483 |
+} |
|
| 484 |
+ |
|
| 481 | 485 |
our %VALID_SELECT_ARGS |
| 482 | 486 |
= map { $_ => 1 } qw/table column where append relation filter query/;
|
| 483 | 487 |
|
| ... | ... |
@@ -1266,6 +1270,16 @@ B<Example:> |
| 1266 | 1270 |
} |
| 1267 | 1271 |
); |
| 1268 | 1272 |
|
| 1273 |
+=head2 C<register_tag_processor> |
|
| 1274 |
+ |
|
| 1275 |
+ $dbi->register_tag_processor( |
|
| 1276 |
+ limit => sub {
|
|
| 1277 |
+ ...; |
|
| 1278 |
+ } |
|
| 1279 |
+ ); |
|
| 1280 |
+ |
|
| 1281 |
+Register tag processor. |
|
| 1282 |
+ |
|
| 1269 | 1283 |
=head2 C<rollback> |
| 1270 | 1284 |
|
| 1271 | 1285 |
$dbi->rollback; |
| ... | ... |
@@ -506,12 +506,12 @@ You can change Result class if you need. |
| 506 | 506 |
my $dbi = DBIx::Custom->connect(...); |
| 507 | 507 |
$dbi->result_class('Your::Result');
|
| 508 | 508 |
|
| 509 |
-=head3 Custamize query builder object |
|
| 509 |
+=head3 Register tag processor |
|
| 510 | 510 |
|
| 511 | 511 |
You can custamize query builder object |
| 512 | 512 |
|
| 513 | 513 |
my $dbi = DBIx::Custom->connect(...); |
| 514 |
- $dbi->query_builder->register_tag_processor( |
|
| 514 |
+ $dbi->register_tag_processor( |
|
| 515 | 515 |
name => sub {
|
| 516 | 516 |
... |
| 517 | 517 |
} |
| ... | ... |
@@ -541,16 +541,13 @@ These method can be called from L<DBIx::Custom> object directory. |
| 541 | 541 |
=head2 EXAMPLES |
| 542 | 542 |
|
| 543 | 543 |
=head3 Limit clause |
| 544 |
- |
|
| 545 |
- my $rows = $dbi->select( |
|
| 546 |
- table => 'table1', |
|
| 547 |
- where => {key1 => 1},
|
|
| 548 |
- append => "order by key2 {limit 1 0}" # {limit COUNT OFFSET}
|
|
| 549 |
- )->fetch_hash_all; |
|
| 544 |
+ |
|
| 545 |
+ # {limit COUNT OFFSET}
|
|
| 546 |
+ select * from book {limit 1 0};
|
|
| 550 | 547 |
|
| 551 | 548 |
SQLite |
| 552 | 549 |
|
| 553 |
- $dbi->query_builder->register_tag_processor( |
|
| 550 |
+ $dbi->register_tag_processor( |
|
| 554 | 551 |
limit => sub {
|
| 555 | 552 |
my ($count, $offset) = @_; |
| 556 | 553 |
|
| ... | ... |
@@ -564,7 +561,7 @@ SQLite |
| 564 | 561 |
|
| 565 | 562 |
MySQL |
| 566 | 563 |
|
| 567 |
- $dbi->query_builder->register_tag_processor( |
|
| 564 |
+ $dbi->register_tag_processor( |
|
| 568 | 565 |
limit => sub {
|
| 569 | 566 |
my ($count, $offset) = @_; |
| 570 | 567 |
|
| ... | ... |
@@ -915,5 +915,11 @@ test 'dbi_options default'; |
| 915 | 915 |
$dbi = DBIx::Custom->new; |
| 916 | 916 |
is_deeply($dbi->dbi_options, {});
|
| 917 | 917 |
|
| 918 |
+test 'register_tag_processor'; |
|
| 919 |
+$dbi = DBIx::Custom->connect($NEW_ARGS->{0});
|
|
| 920 |
+$dbi->register_tag_processor( |
|
| 921 |
+ a => sub { 1 }
|
|
| 922 |
+); |
|
| 923 |
+is($dbi->query_builder->tag_processors->{a}->(), 1);
|
|
| 918 | 924 |
|
| 919 | 925 |
|