| ... | ... |
@@ -1,4 +1,8 @@ |
| 1 |
+0.2111 |
|
| 2 |
+ - "created_at" option is renamed to "ctime" option |
|
| 3 |
+ - "updated_at" option is renamed to "mtime" option |
|
| 1 | 4 |
0.2110 |
| 5 |
+ - Perl 5.008007 is required. |
|
| 2 | 6 |
- added EXPERIMETNAL aysnc_conf attribute |
| 3 | 7 |
0.2109 |
| 4 | 8 |
- select method can be called even if table name is not specified |
| ... | ... |
@@ -1,7 +1,8 @@ |
| 1 |
+use 5.008007; |
|
| 1 | 2 |
package DBIx::Custom; |
| 2 | 3 |
use Object::Simple -base; |
| 3 | 4 |
|
| 4 |
-our $VERSION = '0.2110'; |
|
| 5 |
+our $VERSION = '0.2111'; |
|
| 5 | 6 |
use 5.008001; |
| 6 | 7 |
|
| 7 | 8 |
use Carp 'croak'; |
| ... | ... |
@@ -684,7 +685,7 @@ sub insert {
|
| 684 | 685 |
|
| 685 | 686 |
# Timestamp(DEPRECATED!) |
| 686 | 687 |
if (!$multi && $opt{timestamp} && (my $insert_timestamp = $self->insert_timestamp)) {
|
| 687 |
- warn "insert timestamp option is DEPRECATED! use created_at with now attribute"; |
|
| 688 |
+ warn "insert timestamp option is DEPRECATED! use ctime option"; |
|
| 688 | 689 |
my $columns = $insert_timestamp->[0]; |
| 689 | 690 |
$columns = [$columns] unless ref $columns eq 'ARRAY'; |
| 690 | 691 |
my $value = $insert_timestamp->[1]; |
| ... | ... |
@@ -694,16 +695,24 @@ sub insert {
|
| 694 | 695 |
|
| 695 | 696 |
# Created time and updated time |
| 696 | 697 |
my @timestamp_cleanup; |
| 697 |
- if (defined $opt{created_at} || defined $opt{updated_at}) {
|
|
| 698 |
+ warn "insert method created_at option is DEPRECATED! " |
|
| 699 |
+ . "use ctime option instead. " . _subname |
|
| 700 |
+ if $opt{created_at};
|
|
| 701 |
+ warn "insert method updated_at option is DEPRECATED! " |
|
| 702 |
+ . "use mtime option instead. " . _subname |
|
| 703 |
+ if $opt{updated_at};
|
|
| 704 |
+ $opt{ctime} ||= $opt{created_at};
|
|
| 705 |
+ $opt{mtime} ||= $opt{updated_at};
|
|
| 706 |
+ if (defined $opt{ctime} || defined $opt{mtime}) {
|
|
| 698 | 707 |
my $now = $self->now; |
| 699 | 708 |
$now = $now->() if ref $now eq 'CODE'; |
| 700 |
- if (defined $opt{created_at}) {
|
|
| 701 |
- $_->{$opt{created_at}} = $now for @$params;
|
|
| 702 |
- push @timestamp_cleanup, $opt{created_at};
|
|
| 709 |
+ if (defined $opt{ctime}) {
|
|
| 710 |
+ $_->{$opt{ctime}} = $now for @$params;
|
|
| 711 |
+ push @timestamp_cleanup, $opt{ctime};
|
|
| 703 | 712 |
} |
| 704 |
- if (defined $opt{updated_at}) {
|
|
| 705 |
- $_->{$opt{updated_at}} = $now for @$params;
|
|
| 706 |
- push @timestamp_cleanup, $opt{updated_at};
|
|
| 713 |
+ if (defined $opt{mtime}) {
|
|
| 714 |
+ $_->{$opt{mtime}} = $now for @$params;
|
|
| 715 |
+ push @timestamp_cleanup, $opt{mtime};
|
|
| 707 | 716 |
} |
| 708 | 717 |
} |
| 709 | 718 |
|
| ... | ... |
@@ -775,8 +784,7 @@ sub include_model {
|
| 775 | 784 |
croak qq{"$name_space" is invalid class name } . _subname
|
| 776 | 785 |
if $name_space =~ /[^\w:]/; |
| 777 | 786 |
eval "use $name_space"; |
| 778 |
- croak qq{Name space module "$name_space.pm" is needed. $@ }
|
|
| 779 |
- . _subname |
|
| 787 |
+ croak qq{Name space module "$name_space.pm" is needed. $@ } . _subname
|
|
| 780 | 788 |
if $@; |
| 781 | 789 |
|
| 782 | 790 |
# Search model modules |
| ... | ... |
@@ -1193,7 +1201,7 @@ sub update {
|
| 1193 | 1201 |
|
| 1194 | 1202 |
# Timestamp(DEPRECATED!) |
| 1195 | 1203 |
if ($opt{timestamp} && (my $update_timestamp = $self->update_timestamp)) {
|
| 1196 |
- warn "update timestamp option is DEPRECATED! use updated_at and now method"; |
|
| 1204 |
+ warn "update timestamp option is DEPRECATED! use mtime"; |
|
| 1197 | 1205 |
my $columns = $update_timestamp->[0]; |
| 1198 | 1206 |
$columns = [$columns] unless ref $columns eq 'ARRAY'; |
| 1199 | 1207 |
my $value = $update_timestamp->[1]; |
| ... | ... |
@@ -1203,11 +1211,15 @@ sub update {
|
| 1203 | 1211 |
|
| 1204 | 1212 |
# Created time and updated time |
| 1205 | 1213 |
my @timestamp_cleanup; |
| 1206 |
- if (defined $opt{updated_at}) {
|
|
| 1214 |
+ warn "update method update_at option is DEPRECATED! " |
|
| 1215 |
+ . "use mtime option instead " . _subname |
|
| 1216 |
+ if $opt{updated_at};
|
|
| 1217 |
+ $opt{mtime} ||= $opt{updated_at};
|
|
| 1218 |
+ if (defined $opt{mtime}) {
|
|
| 1207 | 1219 |
my $now = $self->now; |
| 1208 | 1220 |
$now = $now->() if ref $now eq 'CODE'; |
| 1209 |
- $param->{$opt{updated_at}} = $self->now->();
|
|
| 1210 |
- push @timestamp_cleanup, $opt{updated_at};
|
|
| 1221 |
+ $param->{$opt{mtime}} = $self->now->();
|
|
| 1222 |
+ push @timestamp_cleanup, $opt{mtime};
|
|
| 1211 | 1223 |
} |
| 1212 | 1224 |
|
| 1213 | 1225 |
# Assign clause |
| ... | ... |
@@ -2946,11 +2958,11 @@ The SQL like the following one is executed. |
| 2946 | 2958 |
|
| 2947 | 2959 |
insert into book (id, title) values (?, ?), (?, ?); |
| 2948 | 2960 |
|
| 2949 |
-=item C<created_at> |
|
| 2961 |
+=item C<ctime> |
|
| 2950 | 2962 |
|
| 2951 |
- created_at => 'created_datetime' |
|
| 2963 |
+ ctime => 'created_time' |
|
| 2952 | 2964 |
|
| 2953 |
-Created timestamp column name. time when row is created is set to the column. |
|
| 2965 |
+Created time column name. time when row is created is set to the column. |
|
| 2954 | 2966 |
default time format is "YYYY-mm-dd HH:MM:SS", which can be changed by |
| 2955 | 2967 |
C<now> attribute. |
| 2956 | 2968 |
|
| ... | ... |
@@ -2990,9 +3002,9 @@ prefix before table name section |
| 2990 | 3002 |
|
| 2991 | 3003 |
Table name. |
| 2992 | 3004 |
|
| 2993 |
-=item C<updated_at> |
|
| 3005 |
+=item C<mtime> |
|
| 2994 | 3006 |
|
| 2995 |
-This option is same as C<update> method C<updated_at> option. |
|
| 3007 |
+This option is same as C<update> method C<mtime> option. |
|
| 2996 | 3008 |
|
| 2997 | 3009 |
=item C<wrap> |
| 2998 | 3010 |
|
| ... | ... |
@@ -3471,11 +3483,11 @@ is executed, the following SQL is executed. |
| 3471 | 3483 |
|
| 3472 | 3484 |
update book set price = ? + 5; |
| 3473 | 3485 |
|
| 3474 |
-=item C<updated_at> |
|
| 3486 |
+=item C<mtime> |
|
| 3475 | 3487 |
|
| 3476 |
- updated_at => 'updated_datetime' |
|
| 3488 |
+ mtime => 'modified_time' |
|
| 3477 | 3489 |
|
| 3478 |
-Updated timestamp column name. time when row is updated is set to the column. |
|
| 3490 |
+Modified time column name. time row is updated is set to the column. |
|
| 3479 | 3491 |
default time format is C<YYYY-mm-dd HH:MM:SS>, which can be changed by |
| 3480 | 3492 |
C<now> attribute. |
| 3481 | 3493 |
|
| ... | ... |
@@ -3649,6 +3661,8 @@ L<DBIx::Custom> |
| 3649 | 3661 |
update_param_tag # will be removed at 2017/1/1 |
| 3650 | 3662 |
|
| 3651 | 3663 |
# Options |
| 3664 |
+ insert method created_at option # will be removed 2017/3/1 |
|
| 3665 |
+ update method updated_at option # will be removed 2017/3/1 |
|
| 3652 | 3666 |
select column option [COLUMN => ALIAS] syntax # will be removed 2017/1/1 |
| 3653 | 3667 |
execute method id option # will be removed 2017/1/1 |
| 3654 | 3668 |
update timestamp option # will be removed 2017/1/1 |
| ... | ... |
@@ -7,7 +7,7 @@ use DBIx::Custom::Util '_subname'; |
| 7 | 7 |
# Carp trust relationship |
| 8 | 8 |
push @DBIx::Custom::CARP_NOT, __PACKAGE__; |
| 9 | 9 |
|
| 10 |
-has [qw/dbi table created_at updated_at bind_type join primary_key/], |
|
| 10 |
+has [qw/dbi table ctime mtime bind_type join primary_key/], |
|
| 11 | 11 |
columns => sub { [] };
|
| 12 | 12 |
|
| 13 | 13 |
our $AUTOLOAD; |
| ... | ... |
@@ -47,8 +47,8 @@ for my $method (@methods) {
|
| 47 | 47 |
|
| 48 | 48 |
|
| 49 | 49 |
my @attrs = qw/table type primary_key bind_type/; |
| 50 |
- my @insert_attrs = qw/created_at updated_at/; |
|
| 51 |
- my @update_attrs = qw/updated_at/; |
|
| 50 |
+ my @insert_attrs = qw/created_at updated_at ctime mtime/; |
|
| 51 |
+ my @update_attrs = qw/updated_at mtime/; |
|
| 52 | 52 |
my @select_attrs = qw/join/; |
| 53 | 53 |
if ($method eq 'insert') { push @attrs, @insert_attrs }
|
| 54 | 54 |
elsif ($method eq 'update') { push @attrs, @update_attrs }
|
| ... | ... |
@@ -144,7 +144,7 @@ sub new {
|
| 144 | 144 |
} |
| 145 | 145 |
|
| 146 | 146 |
# Cache |
| 147 |
- for my $attr (qw/dbi table created_at updated_at bind_type join primary_key/) {
|
|
| 147 |
+ for my $attr (qw/dbi table created_at updated_at ctime mtime bind_type join primary_key/) {
|
|
| 148 | 148 |
$self->$attr; |
| 149 | 149 |
$self->{$attr} = undef unless exists $self->{$attr};
|
| 150 | 150 |
} |
| ... | ... |
@@ -157,6 +157,8 @@ sub new {
|
| 157 | 157 |
has 'filter'; |
| 158 | 158 |
has 'name'; |
| 159 | 159 |
has 'type'; |
| 160 |
+has 'created_at'; |
|
| 161 |
+has 'updated_at'; |
|
| 160 | 162 |
|
| 161 | 163 |
# DEPRECATED! |
| 162 | 164 |
sub method {
|
| ... | ... |
@@ -185,10 +187,10 @@ my $model = DBIx::Custom::Model->new(table => 'books'); |
| 185 | 187 |
|
| 186 | 188 |
L<DBIx::Custom> object. |
| 187 | 189 |
|
| 188 |
-=head2 C<created_at> |
|
| 190 |
+=head2 C<ctime> |
|
| 189 | 191 |
|
| 190 |
- my $created_at = $model->created_at; |
|
| 191 |
- $model = $model->created_at('created_datatime');
|
|
| 192 |
+ my $ctime = $model->ctime; |
|
| 193 |
+ $model = $model->ctime('created_time');
|
|
| 192 | 194 |
|
| 193 | 195 |
Create timestamp column, this is passed to C<insert> or C<update> method. |
| 194 | 196 |
|
| ... | ... |
@@ -225,10 +227,10 @@ Database data type, this is used as type optioon of C<insert>, |
| 225 | 227 |
C<update>, C<update_all>, C<delete>, C<delete_all>, |
| 226 | 228 |
and C<select> method |
| 227 | 229 |
|
| 228 |
-=head2 C<updated_at> |
|
| 230 |
+=head2 C<mtime> |
|
| 229 | 231 |
|
| 230 |
- my $updated_at = $model->updated_at; |
|
| 231 |
- $model = $model->updated_at('updated_datatime');
|
|
| 232 |
+ my $mtime = $model->mtime; |
|
| 233 |
+ $model = $model->mtime('modified_time');
|
|
| 232 | 234 |
|
| 233 | 235 |
Updated timestamp column, this is passed to C<update> method. |
| 234 | 236 |
|
| ... | ... |
@@ -590,6 +590,16 @@ $row = $result->one; |
| 590 | 590 |
is($row->{$key1}, 1);
|
| 591 | 591 |
like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
| 592 | 592 |
|
| 593 |
+eval { $dbi->execute("drop table $table1") };
|
|
| 594 |
+$dbi->execute($create_table1_2); |
|
| 595 |
+$param = {$key1 => 1};
|
|
| 596 |
+$dbi->insert($param, table => $table1, ctime => $key2); |
|
| 597 |
+$result = $dbi->select(table => $table1); |
|
| 598 |
+is_deeply($param, {$key1 => 1});
|
|
| 599 |
+$row = $result->one; |
|
| 600 |
+is($row->{$key1}, 1);
|
|
| 601 |
+like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 602 |
+ |
|
| 593 | 603 |
eval { $dbi->execute("drop table $table1") };
|
| 594 | 604 |
$dbi->execute($create_table1_2); |
| 595 | 605 |
$param = {$key1 => 1};
|
| ... | ... |
@@ -600,6 +610,16 @@ $row = $result->one; |
| 600 | 610 |
is($row->{$key1}, 1);
|
| 601 | 611 |
like($row->{$key3}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
| 602 | 612 |
|
| 613 |
+eval { $dbi->execute("drop table $table1") };
|
|
| 614 |
+$dbi->execute($create_table1_2); |
|
| 615 |
+$param = {$key1 => 1};
|
|
| 616 |
+$dbi->insert($param, table => $table1, mtime => $key3); |
|
| 617 |
+$result = $dbi->select(table => $table1); |
|
| 618 |
+is_deeply($param, {$key1 => 1});
|
|
| 619 |
+$row = $result->one; |
|
| 620 |
+is($row->{$key1}, 1);
|
|
| 621 |
+like($row->{$key3}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 622 |
+ |
|
| 603 | 623 |
eval { $dbi->execute("drop table $table1") };
|
| 604 | 624 |
$dbi->execute($create_table1_2); |
| 605 | 625 |
$param = {$key1 => 1};
|
| ... | ... |
@@ -612,6 +632,42 @@ like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
| 612 | 632 |
like($row->{$key3}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
| 613 | 633 |
is($row->{$key2}, $row->{$key3});
|
| 614 | 634 |
|
| 635 |
+eval { $dbi->execute("drop table $table1") };
|
|
| 636 |
+$dbi->execute($create_table1_2); |
|
| 637 |
+$param = {$key1 => 1};
|
|
| 638 |
+$dbi->insert($param, table => $table1, created_at => $key2, mtime => $key3); |
|
| 639 |
+$result = $dbi->select(table => $table1); |
|
| 640 |
+is_deeply($param, {$key1 => 1});
|
|
| 641 |
+$row = $result->one; |
|
| 642 |
+is($row->{$key1}, 1);
|
|
| 643 |
+like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 644 |
+like($row->{$key3}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 645 |
+is($row->{$key2}, $row->{$key3});
|
|
| 646 |
+ |
|
| 647 |
+eval { $dbi->execute("drop table $table1") };
|
|
| 648 |
+$dbi->execute($create_table1_2); |
|
| 649 |
+$param = {$key1 => 1};
|
|
| 650 |
+$dbi->insert($param, table => $table1, ctime => $key2, updated_at => $key3); |
|
| 651 |
+$result = $dbi->select(table => $table1); |
|
| 652 |
+is_deeply($param, {$key1 => 1});
|
|
| 653 |
+$row = $result->one; |
|
| 654 |
+is($row->{$key1}, 1);
|
|
| 655 |
+like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 656 |
+like($row->{$key3}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 657 |
+is($row->{$key2}, $row->{$key3});
|
|
| 658 |
+ |
|
| 659 |
+eval { $dbi->execute("drop table $table1") };
|
|
| 660 |
+$dbi->execute($create_table1_2); |
|
| 661 |
+$param = {$key1 => 1};
|
|
| 662 |
+$dbi->insert($param, table => $table1, ctime => $key2, mtime => $key3); |
|
| 663 |
+$result = $dbi->select(table => $table1); |
|
| 664 |
+is_deeply($param, {$key1 => 1});
|
|
| 665 |
+$row = $result->one; |
|
| 666 |
+is($row->{$key1}, 1);
|
|
| 667 |
+like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 668 |
+like($row->{$key3}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 669 |
+is($row->{$key2}, $row->{$key3});
|
|
| 670 |
+ |
|
| 615 | 671 |
eval { $dbi->execute("drop table $table1") };
|
| 616 | 672 |
$dbi->execute($create_table1_2); |
| 617 | 673 |
$model = $dbi->create_model(table => $table1, created_at => $key2); |
| ... | ... |
@@ -623,6 +679,17 @@ $row = $result->one; |
| 623 | 679 |
is($row->{$key1}, 1);
|
| 624 | 680 |
like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
| 625 | 681 |
|
| 682 |
+eval { $dbi->execute("drop table $table1") };
|
|
| 683 |
+$dbi->execute($create_table1_2); |
|
| 684 |
+$model = $dbi->create_model(table => $table1, ctime => $key2); |
|
| 685 |
+$param = {$key1 => 1};
|
|
| 686 |
+$model->insert($param); |
|
| 687 |
+$result = $dbi->select(table => $table1); |
|
| 688 |
+is_deeply($param, {$key1 => 1});
|
|
| 689 |
+$row = $result->one; |
|
| 690 |
+is($row->{$key1}, 1);
|
|
| 691 |
+like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 692 |
+ |
|
| 626 | 693 |
eval { $dbi->execute("drop table $table1") };
|
| 627 | 694 |
$dbi->execute($create_table1_2); |
| 628 | 695 |
$param = {$key1 => 1};
|
| ... | ... |
@@ -634,6 +701,17 @@ $row = $result->one; |
| 634 | 701 |
is($row->{$key1}, 1);
|
| 635 | 702 |
like($row->{$key3}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
| 636 | 703 |
|
| 704 |
+eval { $dbi->execute("drop table $table1") };
|
|
| 705 |
+$dbi->execute($create_table1_2); |
|
| 706 |
+$param = {$key1 => 1};
|
|
| 707 |
+$model = $dbi->create_model(table => $table1, mtime => $key3); |
|
| 708 |
+$model->insert($param); |
|
| 709 |
+$result = $dbi->select(table => $table1); |
|
| 710 |
+is_deeply($param, {$key1 => 1});
|
|
| 711 |
+$row = $result->one; |
|
| 712 |
+is($row->{$key1}, 1);
|
|
| 713 |
+like($row->{$key3}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 714 |
+ |
|
| 637 | 715 |
eval { $dbi->execute("drop table $table1") };
|
| 638 | 716 |
$dbi->execute($create_table1_2); |
| 639 | 717 |
$param = {$key1 => 1};
|
| ... | ... |
@@ -647,6 +725,45 @@ like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
| 647 | 725 |
like($row->{$key3}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
| 648 | 726 |
is($row->{$key2}, $row->{$key3});
|
| 649 | 727 |
|
| 728 |
+eval { $dbi->execute("drop table $table1") };
|
|
| 729 |
+$dbi->execute($create_table1_2); |
|
| 730 |
+$param = {$key1 => 1};
|
|
| 731 |
+$model = $dbi->create_model(table => $table1, created_at => $key2, mtime => $key3); |
|
| 732 |
+$model->insert($param); |
|
| 733 |
+$result = $dbi->select(table => $table1); |
|
| 734 |
+is_deeply($param, {$key1 => 1});
|
|
| 735 |
+$row = $result->one; |
|
| 736 |
+is($row->{$key1}, 1);
|
|
| 737 |
+like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 738 |
+like($row->{$key3}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 739 |
+is($row->{$key2}, $row->{$key3});
|
|
| 740 |
+ |
|
| 741 |
+eval { $dbi->execute("drop table $table1") };
|
|
| 742 |
+$dbi->execute($create_table1_2); |
|
| 743 |
+$param = {$key1 => 1};
|
|
| 744 |
+$model = $dbi->create_model(table => $table1, ctime=> $key2, updated_at => $key3); |
|
| 745 |
+$model->insert($param); |
|
| 746 |
+$result = $dbi->select(table => $table1); |
|
| 747 |
+is_deeply($param, {$key1 => 1});
|
|
| 748 |
+$row = $result->one; |
|
| 749 |
+is($row->{$key1}, 1);
|
|
| 750 |
+like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 751 |
+like($row->{$key3}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 752 |
+is($row->{$key2}, $row->{$key3});
|
|
| 753 |
+ |
|
| 754 |
+eval { $dbi->execute("drop table $table1") };
|
|
| 755 |
+$dbi->execute($create_table1_2); |
|
| 756 |
+$param = {$key1 => 1};
|
|
| 757 |
+$model = $dbi->create_model(table => $table1, ctime=> $key2, mtime => $key3); |
|
| 758 |
+$model->insert($param); |
|
| 759 |
+$result = $dbi->select(table => $table1); |
|
| 760 |
+is_deeply($param, {$key1 => 1});
|
|
| 761 |
+$row = $result->one; |
|
| 762 |
+is($row->{$key1}, 1);
|
|
| 763 |
+like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 764 |
+like($row->{$key3}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 765 |
+is($row->{$key2}, $row->{$key3});
|
|
| 766 |
+ |
|
| 650 | 767 |
eval { $dbi->execute("drop table $table1") };
|
| 651 | 768 |
$dbi->execute($create_table1); |
| 652 | 769 |
$dbi->insert([{$key1 => 1, $key2 => 2}, {$key1 => 3, $key2 => 4}] , table => $table1);
|
| ... | ... |
@@ -657,9 +774,25 @@ is_deeply($rows, [{$key1 => 1, $key2 => 2}, {$key1 => 3, $key2 => 4}], "basic");
|
| 657 | 774 |
eval { $dbi->execute("drop table $table1") };
|
| 658 | 775 |
$dbi->execute($create_table1_2); |
| 659 | 776 |
$dbi->insert([{$key1 => 1}, {$key1 => 3}] ,
|
| 660 |
-table => $table1, |
|
| 661 |
-updated_at => $key2, |
|
| 662 |
-created_at => $key3 |
|
| 777 |
+ table => $table1, |
|
| 778 |
+ updated_at => $key2, |
|
| 779 |
+ created_at => $key3 |
|
| 780 |
+); |
|
| 781 |
+$result = $dbi->execute("select * from $table1");
|
|
| 782 |
+$rows = $result->all; |
|
| 783 |
+is($rows->[0]->{$key1}, 1);
|
|
| 784 |
+is($rows->[1]->{$key1}, 3);
|
|
| 785 |
+like($rows->[0]->{$key2}, qr/\d{2}:/);
|
|
| 786 |
+like($rows->[1]->{$key2}, qr/\d{2}:/);
|
|
| 787 |
+like($rows->[0]->{$key3}, qr/\d{2}:/);
|
|
| 788 |
+like($rows->[1]->{$key3}, qr/\d{2}:/);
|
|
| 789 |
+ |
|
| 790 |
+eval { $dbi->execute("drop table $table1") };
|
|
| 791 |
+$dbi->execute($create_table1_2); |
|
| 792 |
+$dbi->insert([{$key1 => 1}, {$key1 => 3}] ,
|
|
| 793 |
+ table => $table1, |
|
| 794 |
+ mtime => $key2, |
|
| 795 |
+ ctime => $key3 |
|
| 663 | 796 |
); |
| 664 | 797 |
$result = $dbi->execute("select * from $table1");
|
| 665 | 798 |
$rows = $result->all; |
| ... | ... |
@@ -998,6 +1131,17 @@ $row = $result->one; |
| 998 | 1131 |
is($row->{$key3}, 4);
|
| 999 | 1132 |
like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
| 1000 | 1133 |
|
| 1134 |
+eval { $dbi->execute("drop table $table1") };
|
|
| 1135 |
+$dbi->execute($create_table1_2); |
|
| 1136 |
+$param = {$key3 => 4};
|
|
| 1137 |
+$dbi->insert({$key1 => 1, $key2 => 2, $key3 => 3}, table => $table1);
|
|
| 1138 |
+$dbi->update($param, table => $table1, mtime => $key2, where => {$key1 => 1});
|
|
| 1139 |
+$result = $dbi->select(table => $table1); |
|
| 1140 |
+is_deeply($param, {$key3 => 4});
|
|
| 1141 |
+$row = $result->one; |
|
| 1142 |
+is($row->{$key3}, 4);
|
|
| 1143 |
+like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 1144 |
+ |
|
| 1001 | 1145 |
eval { $dbi->execute("drop table $table1") };
|
| 1002 | 1146 |
$dbi->execute($create_table1_2); |
| 1003 | 1147 |
$param = {$key3 => 4};
|
| ... | ... |
@@ -1009,6 +1153,17 @@ $row = $result->one; |
| 1009 | 1153 |
is($row->{$key3}, 4);
|
| 1010 | 1154 |
like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
| 1011 | 1155 |
|
| 1156 |
+eval { $dbi->execute("drop table $table1") };
|
|
| 1157 |
+$dbi->execute($create_table1_2); |
|
| 1158 |
+$param = {$key3 => 4};
|
|
| 1159 |
+$dbi->insert({$key1 => 1, $key2 => 2, $key3 => 3}, table => $table1);
|
|
| 1160 |
+$dbi->update($param, table => $table1, mtime => $key2, where => {$key3 => 3});
|
|
| 1161 |
+$result = $dbi->select(table => $table1); |
|
| 1162 |
+is_deeply($param, {$key3 => 4});
|
|
| 1163 |
+$row = $result->one; |
|
| 1164 |
+is($row->{$key3}, 4);
|
|
| 1165 |
+like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 1166 |
+ |
|
| 1012 | 1167 |
eval { $dbi->execute("drop table $table1") };
|
| 1013 | 1168 |
$dbi->execute($create_table1_2); |
| 1014 | 1169 |
$model = $dbi->create_model(table => $table1, updated_at => $key2); |
| ... | ... |
@@ -1021,6 +1176,18 @@ $row = $result->one; |
| 1021 | 1176 |
is($row->{$key3}, 4);
|
| 1022 | 1177 |
like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
| 1023 | 1178 |
|
| 1179 |
+eval { $dbi->execute("drop table $table1") };
|
|
| 1180 |
+$dbi->execute($create_table1_2); |
|
| 1181 |
+$model = $dbi->create_model(table => $table1, mtime => $key2); |
|
| 1182 |
+$param = {$key3 => 4};
|
|
| 1183 |
+$dbi->insert({$key1 => 1, $key2 => 2, $key3 => 3}, table => $table1);
|
|
| 1184 |
+$model->update($param, where => {$key1 => 1});
|
|
| 1185 |
+$result = $dbi->select(table => $table1); |
|
| 1186 |
+is_deeply($param, {$key3 => 4});
|
|
| 1187 |
+$row = $result->one; |
|
| 1188 |
+is($row->{$key3}, 4);
|
|
| 1189 |
+like($row->{$key2}, qr/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
|
|
| 1190 |
+ |
|
| 1024 | 1191 |
test 'update_all'; |
| 1025 | 1192 |
eval { $dbi->execute("drop table $table1") };
|
| 1026 | 1193 |
$dbi->execute($create_table1_2); |