| ... | ... | @@ -1,5 +1,4 @@ | 
| 1 | 1 | 0.1748 | 
| 2 | - - added EXPERIMETNAL use_version1 | |
| 3 | 2 | - DBIx::Custom::Query is DEPRECATED! | 
| 4 | 3 | 0.1747 | 
| 5 | 4 | - fixed bug DBIx::Custom::Result fetch_hash_multi throw warnings | 
| ... | ... | @@ -1,7 +1,7 @@ | 
| 1 | 1 | package DBIx::Custom; | 
| 2 | 2 | use Object::Simple -base; | 
| 3 | 3 |  | 
| 4 | -our $VERSION = '0.1747'; | |
| 4 | +our $VERSION = '0.2100'; | |
| 5 | 5 | use 5.008001; | 
| 6 | 6 |  | 
| 7 | 7 | use Carp 'croak'; | 
| ... | ... | @@ -131,18 +131,7 @@ sub assign_clause { | 
| 131 | 131 | my ($self, $param, $opts) = @_; | 
| 132 | 132 |  | 
| 133 | 133 |      my $wrap = $opts->{wrap} || {}; | 
| 134 | -    my $safety = $self->{safety_character} || $self->safety_character; | |
| 135 | -    my $qp = $self->q(''); | |
| 136 | - my $q = substr($qp, 0, 1) || ''; | |
| 137 | - my $p = substr($qp, 1, 1) || ''; | |
| 138 | - | |
| 139 | - # Check unsafety keys | |
| 140 | -    unless ((join('', keys %$param) || '') =~ /^[$safety\.]+$/) { | |
| 141 | -        for my $column (keys %$param) { | |
| 142 | -            croak qq{"$column" is not safety column name } . _subname | |
| 143 | - unless $column =~ /^[$safety\.]+$/; | |
| 144 | - } | |
| 145 | - } | |
| 134 | +    my ($q, $p) = split //, $self->q(''); | |
| 146 | 135 |  | 
| 147 | 136 | # Assign clause (performance is important) | 
| 148 | 137 | join( | 
| ... | ... | @@ -406,8 +395,17 @@ sub execute { | 
| 406 | 395 | } | 
| 407 | 396 |      else { | 
| 408 | 397 |          $query = $opt{reuse}->{$sql} if $opt{reuse}; | 
| 409 | -        $query = $self->_create_query($sql,$opt{after_build_sql} || $opt{sqlfilter}) | |
| 410 | - unless $query; | |
| 398 | +        unless ($query) { | |
| 399 | +            my $safety = $self->{safety_character} || $self->safety_character; | |
| 400 | + # Check unsafety keys | |
| 401 | +            unless ((join('', keys %$param) || '') =~ /^[$safety\.]+$/) { | |
| 402 | +                for my $column (keys %$param) { | |
| 403 | +                    croak qq{"$column" is not safety column name } . _subname | |
| 404 | + unless $column =~ /^[$safety\.]+$/; | |
| 405 | + } | |
| 406 | + } | |
| 407 | +            $query = $self->_create_query($sql,$opt{after_build_sql} || $opt{sqlfilter}); | |
| 408 | + } | |
| 411 | 409 |          $query->statement($opt{statement} || ''); | 
| 412 | 410 |          $opt{reuse}->{$sql} = $query if $opt{reuse}; | 
| 413 | 411 | } | 
| ... | ... | @@ -1183,69 +1181,13 @@ sub update_timestamp { | 
| 1183 | 1181 |      return $self->{update_timestamp}; | 
| 1184 | 1182 | } | 
| 1185 | 1183 |  | 
| 1186 | -sub use_version1 { | |
| 1187 | - my $self = shift; | |
| 1188 | - | |
| 1189 | - return if $VERSION >= 1; | |
| 1190 | - | |
| 1191 | -    my @modules = ('', qw/::Where ::Util ::Result ::Order ::NotExists ::Model ::Mapper/); | |
| 1192 | - | |
| 1193 | - # Replace | |
| 1194 | -    for my $module (@modules) { | |
| 1195 | - my $old = 'DBIx::Custom' . $module; | |
| 1196 | - my $new = 'DBIx::Custom::Next' . $module; | |
| 1197 | - | |
| 1198 | - no strict 'refs'; | |
| 1199 | - no warnings 'redefine'; | |
| 1200 | - eval "require $old"; | |
| 1201 | - die $@ if $@; | |
| 1202 | - eval "require $new"; | |
| 1203 | - die $@ if $@; | |
| 1204 | -        for my $method (@{DBIx::Custom::Class::Inspector->methods( $old, 'full', 'public' )}) { | |
| 1205 | - next unless $method =~ /^DBIx::Custom/; | |
| 1206 | -            undef &{"$method"}; | |
| 1207 | -            *{"$method"} = sub { die "$method method is removed" }; | |
| 1208 | - } | |
| 1209 | - | |
| 1210 | -        for my $new_method (@{DBIx::Custom::Class::Inspector->methods( $new, 'full', 'public' )}) { | |
| 1211 | - next unless $new_method =~ /^DBIx::Custom/; | |
| 1212 | - my $old_method = $new_method; | |
| 1213 | - $old_method =~ s/::Next//; | |
| 1214 | -            *{"$old_method"} = \&{"$new_method"}; | |
| 1215 | - } | |
| 1216 | - } | |
| 1217 | - | |
| 1218 | - # Remove | |
| 1219 | -    for my $module (qw/DBIx::Custom::Tag DBIx::Custom::QueryBuilder/) { | |
| 1220 | - no strict 'refs'; | |
| 1221 | - eval "require $module"; | |
| 1222 | - die $@ if $@; | |
| 1223 | -        for my $method (@{DBIx::Custom::Class::Inspector->methods( $module, 'full', 'public' )}) { | |
| 1224 | - next unless $method =~ /^DBIx::Custom/; | |
| 1225 | -            undef &{"$method"}; | |
| 1226 | -            *{"$method"} = sub { die "$method method is removed" }; | |
| 1227 | - } | |
| 1228 | - } | |
| 1229 | -} | |
| 1230 | - | |
| 1231 | 1184 |  sub values_clause { | 
| 1232 | 1185 | my ($self, $param, $opts) = @_; | 
| 1233 | 1186 |  | 
| 1234 | 1187 |      my $wrap = $opts->{wrap} || {}; | 
| 1235 | 1188 |  | 
| 1236 | 1189 | # Create insert parameter tag | 
| 1237 | -    my $safety = $self->{safety_character} || $self->safety_character; | |
| 1238 | -    my $qp = $self->q(''); | |
| 1239 | - my $q = substr($qp, 0, 1) || ''; | |
| 1240 | - my $p = substr($qp, 1, 1) || ''; | |
| 1241 | - | |
| 1242 | - # Check unsafety keys | |
| 1243 | -    unless ((join('', keys %$param) || '') =~ /^[$safety\.]+$/) { | |
| 1244 | -        for my $column (keys %$param) { | |
| 1245 | -            croak qq{"$column" is not safety column name } . _subname | |
| 1246 | - unless $column =~ /^[$safety\.]+$/; | |
| 1247 | - } | |
| 1248 | - } | |
| 1190 | +    my ($q, $p) = split //, $self->q(''); | |
| 1249 | 1191 |  | 
| 1250 | 1192 | # values clause(performance is important) | 
| 1251 | 1193 |      '(' . | 
| ... | ... | @@ -3415,13 +3357,6 @@ Show type name of the columns of specified table. | 
| 3415 | 3357 |  | 
| 3416 | 3358 | This type name is used in C<type_rule>'s C<into1> and C<into2>. | 
| 3417 | 3359 |  | 
| 3418 | -=head2 C<use_version1 EXPERIMENTAL> | |
| 3419 | - | |
| 3420 | - DBIx::Custom->use_version1; | |
| 3421 | - | |
| 3422 | -Upgrade L<DBIx::Custom> to major version 1 if version is lower than 1. | |
| 3423 | -You can't use DEPRECATED method and method performance is improved. | |
| 3424 | - | |
| 3425 | 3360 | =head2 C<values_clause> | 
| 3426 | 3361 |  | 
| 3427 | 3362 |      my $values_clause = $dbi->values_clause({title => 'a', age => 2}); | 
| ... | ... | @@ -2229,9 +2229,6 @@ $dbi->execute($sql, $param, table => $table1); | 
| 2229 | 2229 |  is($dbi->select(table => $table1)->one->{$key1}, 1); | 
| 2230 | 2230 |  is($dbi->select(table => $table1)->one->{$key2}, 2); | 
| 2231 | 2231 |  | 
| 2232 | -eval { $dbi->values_clause({";" => 1}) }; | |
| 2233 | -like($@, qr/not safety/); | |
| 2234 | - | |
| 2235 | 2232 | test 'mycolumn'; | 
| 2236 | 2233 | $dbi = MyDBI8->connect; | 
| 2237 | 2234 | $dbi->user_table_info($user_table_info); | 
| ... | ... | @@ -3684,9 +3681,6 @@ is_deeply($rows, [{$key1 => 1, $key2 => 11, $key3 => 33, $key4 => 4, $key5 => 5} | 
| 3684 | 3681 | "update param no_set"); | 
| 3685 | 3682 |  | 
| 3686 | 3683 |  | 
| 3687 | -eval { $dbi->assign_clause({";" => 1}) }; | |
| 3688 | -like($@, qr/not safety/); | |
| 3689 | - | |
| 3690 | 3684 | $dbi = DBIx::Custom->connect; | 
| 3691 | 3685 |  eval { $dbi->execute("drop table $table1") }; | 
| 3692 | 3686 | $dbi->execute($create_table1_2); |