| ... | ... |
@@ -1,6 +1,6 @@ |
| 1 | 1 |
package DBIx::Custom; |
| 2 | 2 |
|
| 3 |
-our $VERSION = '0.1670'; |
|
| 3 |
+our $VERSION = '0.1671'; |
|
| 4 | 4 |
|
| 5 | 5 |
use 5.008001; |
| 6 | 6 |
use strict; |
| ... | ... |
@@ -67,7 +67,7 @@ sub AUTOLOAD {
|
| 67 | 67 |
# Method name |
| 68 | 68 |
my ($package, $mname) = $AUTOLOAD =~ /^([\w\:]+)\:\:(\w+)$/; |
| 69 | 69 |
|
| 70 |
- # Method |
|
| 70 |
+ # Call method |
|
| 71 | 71 |
$self->{_methods} ||= {};
|
| 72 | 72 |
if (my $method = $self->{_methods}->{$mname}) {
|
| 73 | 73 |
return $self->$method(@_) |
| ... | ... |
@@ -89,16 +89,16 @@ sub apply_filter {
|
| 89 | 89 |
$self->{filter}{in} ||= {};
|
| 90 | 90 |
$self->{filter}{end} ||= {};
|
| 91 | 91 |
|
| 92 |
- # Create filters |
|
| 92 |
+ # Usage |
|
| 93 | 93 |
my $usage = "Usage: \$dbi->apply_filter(" .
|
| 94 | 94 |
"TABLE, COLUMN1, {in => INFILTER1, out => OUTFILTER1, end => ENDFILTER1}, " .
|
| 95 | 95 |
"COLUMN2, {in => INFILTER2, out => OUTFILTER2, end => ENDFILTER2}, ...)";
|
| 96 |
- |
|
| 96 |
+ |
|
| 97 |
+ # Apply filter |
|
| 97 | 98 |
for (my $i = 0; $i < @cinfos; $i += 2) {
|
| 98 | 99 |
|
| 99 | 100 |
# Column |
| 100 | 101 |
my $column = $cinfos[$i]; |
| 101 |
- |
|
| 102 | 102 |
if (ref $column eq 'ARRAY') {
|
| 103 | 103 |
foreach my $c (@$column) {
|
| 104 | 104 |
push @cinfos, $c, $cinfos[$i + 1]; |
| ... | ... |
@@ -106,7 +106,7 @@ sub apply_filter {
|
| 106 | 106 |
next; |
| 107 | 107 |
} |
| 108 | 108 |
|
| 109 |
- # Filter info |
|
| 109 |
+ # Filter infomation |
|
| 110 | 110 |
my $finfo = $cinfos[$i + 1] || {};
|
| 111 | 111 |
croak "$usage (table: $table)" unless ref $finfo eq 'HASH'; |
| 112 | 112 |
foreach my $ftype (keys %$finfo) {
|
| ... | ... |
@@ -114,23 +114,27 @@ sub apply_filter {
|
| 114 | 114 |
|| $ftype eq 'end'; |
| 115 | 115 |
} |
| 116 | 116 |
|
| 117 |
+ # Set filters |
|
| 117 | 118 |
foreach my $way (qw/in out end/) {
|
| 119 |
+ |
|
| 120 |
+ # Filter |
|
| 118 | 121 |
my $filter = $finfo->{$way};
|
| 119 | 122 |
|
| 120 |
- # State |
|
| 123 |
+ # Filter state |
|
| 121 | 124 |
my $state = !exists $finfo->{$way} ? 'not_exists'
|
| 122 | 125 |
: !defined $filter ? 'not_defined' |
| 123 | 126 |
: ref $filter eq 'CODE' ? 'code' |
| 124 | 127 |
: 'name'; |
| 125 | 128 |
|
| 129 |
+ # Filter is not exists |
|
| 126 | 130 |
next if $state eq 'not_exists'; |
| 127 | 131 |
|
| 128 |
- # Check filter |
|
| 132 |
+ # Check filter name |
|
| 129 | 133 |
croak qq{Filter "$filter" is not registered}
|
| 130 | 134 |
if $state eq 'name' |
| 131 | 135 |
&& ! exists $self->filters->{$filter};
|
| 132 | 136 |
|
| 133 |
- # Filter |
|
| 137 |
+ # Set filter |
|
| 134 | 138 |
my $f = $state eq 'not_defined' ? undef |
| 135 | 139 |
: $state eq 'code' ? $filter |
| 136 | 140 |
: $self->filters->{$filter};
|
| ... | ... |
@@ -146,11 +150,12 @@ sub apply_filter {
|
| 146 | 150 |
sub column {
|
| 147 | 151 |
my ($self, $table, $columns) = @_; |
| 148 | 152 |
|
| 149 |
- $columns ||= []; |
|
| 150 |
- |
|
| 153 |
+ # Reserved word quote |
|
| 151 | 154 |
my $q = $self->reserved_word_quote; |
| 152 | 155 |
|
| 156 |
+ # Column clause |
|
| 153 | 157 |
my @column; |
| 158 |
+ $columns ||= []; |
|
| 154 | 159 |
push @column, "$q$table$q.$q$_$q as $q${table}${q}__$q$_$q" for @$columns;
|
| 155 | 160 |
|
| 156 | 161 |
return join (', ', @column);
|
| ... | ... |
@@ -159,12 +164,13 @@ sub column {
|
| 159 | 164 |
sub connect {
|
| 160 | 165 |
my $self = ref $_[0] ? shift : shift->new(@_);; |
| 161 | 166 |
|
| 167 |
+ # Connect and get database handle |
|
| 162 | 168 |
my $dbh = $self->_connect; |
| 163 | 169 |
|
| 164 |
- # Database handle |
|
| 170 |
+ # Set database handle |
|
| 165 | 171 |
$self->dbh($dbh); |
| 166 | 172 |
|
| 167 |
- # Process ID |
|
| 173 |
+ # Set process ID |
|
| 168 | 174 |
$self->pid($$); |
| 169 | 175 |
|
| 170 | 176 |
return $self; |
| ... | ... |
@@ -176,8 +182,10 @@ sub create_query {
|
| 176 | 182 |
# Cache |
| 177 | 183 |
my $cache = $self->cache; |
| 178 | 184 |
|
| 179 |
- # Create query |
|
| 185 |
+ # Query |
|
| 180 | 186 |
my $query; |
| 187 |
+ |
|
| 188 |
+ # Get cached query |
|
| 181 | 189 |
if ($cache) {
|
| 182 | 190 |
|
| 183 | 191 |
# Get query |
| ... | ... |
@@ -190,28 +198,27 @@ sub create_query {
|
| 190 | 198 |
} |
| 191 | 199 |
} |
| 192 | 200 |
|
| 201 |
+ # Create query |
|
| 193 | 202 |
unless ($query) {
|
| 194 | 203 |
|
| 195 |
- # Create SQL object |
|
| 196 |
- my $builder = $self->query_builder; |
|
| 197 |
- |
|
| 198 | 204 |
# Create query |
| 205 |
+ my $builder = $self->query_builder; |
|
| 199 | 206 |
$query = $builder->build_query($source); |
| 200 | 207 |
|
| 201 |
- # Bind |
|
| 202 |
- my $columns = $query->columns; |
|
| 208 |
+ # Remove reserved word quote |
|
| 203 | 209 |
if (my $q = $self->reserved_word_quote) {
|
| 204 |
- foreach my $column (@$columns) {
|
|
| 205 |
- $column =~ s/$q//g; |
|
| 206 |
- } |
|
| 210 |
+ $_ =~ s/$q//g for @{$query->columns}
|
|
| 207 | 211 |
} |
| 208 | 212 |
|
| 209 |
- # Cache query |
|
| 210 |
- $self->cache_method->($self, $source, |
|
| 211 |
- {sql => $query->sql,
|
|
| 212 |
- columns => $query->columns, |
|
| 213 |
- tables => $query->tables}) |
|
| 214 |
- if $cache; |
|
| 213 |
+ # Save query to cache |
|
| 214 |
+ $self->cache_method->( |
|
| 215 |
+ $self, $source, |
|
| 216 |
+ {
|
|
| 217 |
+ sql => $query->sql, |
|
| 218 |
+ columns => $query->columns, |
|
| 219 |
+ tables => $query->tables |
|
| 220 |
+ } |
|
| 221 |
+ ) if $cache; |
|
| 215 | 222 |
} |
| 216 | 223 |
|
| 217 | 224 |
# Prepare statement handle |
| ... | ... |
@@ -230,18 +237,24 @@ sub create_query {
|
| 230 | 237 |
|
| 231 | 238 |
sub dbh {
|
| 232 | 239 |
my $self = shift; |
| 233 |
- |
|
| 240 |
+ |
|
| 241 |
+ # Set |
|
| 234 | 242 |
if (@_) {
|
| 235 | 243 |
$self->{dbh} = $_[0];
|
| 236 | 244 |
return $self; |
| 237 | 245 |
} |
| 246 |
+ |
|
| 247 |
+ # Get |
|
| 238 | 248 |
else {
|
| 239 | 249 |
my $pid = $$; |
| 250 |
+ |
|
| 251 |
+ # Get database handle |
|
| 240 | 252 |
if ($self->pid eq $pid) {
|
| 241 | 253 |
return $self->{dbh};
|
| 242 | 254 |
} |
| 255 |
+ |
|
| 256 |
+ # Create new database handle in child process |
|
| 243 | 257 |
else {
|
| 244 |
- # Create new connection in child process |
|
| 245 | 258 |
croak "Process is forked in transaction" |
| 246 | 259 |
unless $self->{dbh}->{AutoCommit};
|
| 247 | 260 |
$self->pid($pid); |
| ... | ... |
@@ -257,12 +270,9 @@ our %DELETE_ARGS |
| 257 | 270 |
sub delete {
|
| 258 | 271 |
my ($self, %args) = @_; |
| 259 | 272 |
|
| 260 |
- # Quote for reserved word |
|
| 261 |
- my $q = $self->reserved_word_quote; |
|
| 262 |
- |
|
| 263 |
- # Check argument names |
|
| 273 |
+ # Check arguments |
|
| 264 | 274 |
foreach my $name (keys %args) {
|
| 265 |
- croak qq{Argument "$name" is invalid name}
|
|
| 275 |
+ croak qq{Argument "$name" is wrong name}
|
|
| 266 | 276 |
unless $DELETE_ARGS{$name};
|
| 267 | 277 |
} |
| 268 | 278 |
|
| ... | ... |
@@ -272,39 +282,34 @@ sub delete {
|
| 272 | 282 |
my $where = delete $args{where} || {};
|
| 273 | 283 |
my $append = delete $args{append};
|
| 274 | 284 |
my $allow_delete_all = delete $args{allow_delete_all};
|
| 285 |
+ my $query_return = delete $args{query};
|
|
| 275 | 286 |
|
| 276 | 287 |
# Where |
| 277 |
- my $w = $self->_where($where); |
|
| 278 |
- $where = $w->param; |
|
| 279 |
- |
|
| 280 |
- # String where |
|
| 281 |
- my $swhere = "$w"; |
|
| 288 |
+ $where = $self->_where_to_obj($where); |
|
| 282 | 289 |
|
| 290 |
+ # Where clause |
|
| 291 |
+ my $where_clause = $where->to_string; |
|
| 283 | 292 |
croak qq{"where" must be specified}
|
| 284 |
- if $swhere eq '' && !$allow_delete_all; |
|
| 293 |
+ if $where_clause eq '' && !$allow_delete_all; |
|
| 285 | 294 |
|
| 286 |
- # SQL stack |
|
| 295 |
+ # Delete statement |
|
| 287 | 296 |
my @sql; |
| 288 |
- |
|
| 289 |
- # Delete |
|
| 290 |
- push @sql, "delete from $q$table$q $swhere"; |
|
| 297 |
+ my $q = $self->reserved_word_quote; |
|
| 298 |
+ push @sql, "delete from $q$table$q $where_clause"; |
|
| 291 | 299 |
push @sql, $append if $append; |
| 292 |
- |
|
| 293 | 300 |
my $sql = join(' ', @sql);
|
| 294 | 301 |
|
| 295 | 302 |
# Create query |
| 296 | 303 |
my $query = $self->create_query($sql); |
| 297 |
- return $query if $args{query};
|
|
| 304 |
+ return $query if $query_return; |
|
| 298 | 305 |
|
| 299 | 306 |
# Execute query |
| 300 |
- my $ret_val = $self->execute( |
|
| 307 |
+ return $self->execute( |
|
| 301 | 308 |
$query, |
| 302 |
- param => $where, |
|
| 309 |
+ param => $where->param, |
|
| 303 | 310 |
table => $table, |
| 304 | 311 |
%args |
| 305 | 312 |
); |
| 306 |
- |
|
| 307 |
- return $ret_val; |
|
| 308 | 313 |
} |
| 309 | 314 |
|
| 310 | 315 |
sub delete_all { shift->delete(allow_delete_all => 1, @_) }
|
| ... | ... |
@@ -314,56 +319,45 @@ our %DELETE_AT_ARGS = (%DELETE_ARGS, where => 1, primary_key => 1); |
| 314 | 319 |
sub delete_at {
|
| 315 | 320 |
my ($self, %args) = @_; |
| 316 | 321 |
|
| 317 |
- # Check argument names |
|
| 318 |
- foreach my $name (keys %args) {
|
|
| 319 |
- croak qq{Argument "$name" is invalid name}
|
|
| 320 |
- unless $DELETE_AT_ARGS{$name};
|
|
| 321 |
- } |
|
| 322 |
- |
|
| 323 |
- # Primary key |
|
| 322 |
+ # Arguments |
|
| 324 | 323 |
my $primary_keys = delete $args{primary_key};
|
| 325 | 324 |
$primary_keys = [$primary_keys] unless ref $primary_keys; |
| 325 |
+ my $where = delete $args{where};
|
|
| 326 | 326 |
|
| 327 |
- # Where clause |
|
| 328 |
- my $where = {};
|
|
| 329 |
- if (exists $args{where}) {
|
|
| 330 |
- my $where_columns = delete $args{where};
|
|
| 331 |
- $where_columns = [$where_columns] unless ref $where_columns; |
|
| 332 |
- |
|
| 333 |
- croak qq{"where" must be constant value or array reference}
|
|
| 334 |
- unless !ref $where_columns || ref $where_columns eq 'ARRAY'; |
|
| 335 |
- |
|
| 336 |
- for(my $i = 0; $i < @$primary_keys; $i ++) {
|
|
| 337 |
- $where->{$primary_keys->[$i]} = $where_columns->[$i];
|
|
| 338 |
- } |
|
| 327 |
+ # Check arguments |
|
| 328 |
+ foreach my $name (keys %args) {
|
|
| 329 |
+ croak qq{Argument "$name" is wrong name}
|
|
| 330 |
+ unless $DELETE_AT_ARGS{$name};
|
|
| 339 | 331 |
} |
| 340 | 332 |
|
| 341 |
- if (exists $args{param}) {
|
|
| 342 |
- my $param = delete $args{param};
|
|
| 343 |
- |
|
| 333 |
+ # Where to hash |
|
| 334 |
+ my $param = {};
|
|
| 335 |
+ if ($where) {
|
|
| 336 |
+ $where = [$where] unless ref $where; |
|
| 337 |
+ croak qq{"where" must be constant value or array reference}
|
|
| 338 |
+ unless ref $where eq 'ARRAY'; |
|
| 344 | 339 |
for(my $i = 0; $i < @$primary_keys; $i ++) {
|
| 345 |
- delete $param->{$primary_keys->[$i]};
|
|
| 340 |
+ $param->{$primary_keys->[$i]} = $where->[$i];
|
|
| 346 | 341 |
} |
| 347 | 342 |
} |
| 348 | 343 |
|
| 349 |
- return $self->delete(where => $where, %args); |
|
| 344 |
+ return $self->delete(where => $param, %args); |
|
| 350 | 345 |
} |
| 351 | 346 |
|
| 352 | 347 |
sub DESTROY { }
|
| 353 | 348 |
|
| 354 |
-our %EXECUTE_ARGS = map { $_ => 1 } @COMMON_ARGS, 'param';
|
|
| 355 |
- |
|
| 356 | 349 |
sub create_model {
|
| 357 | 350 |
my $self = shift; |
| 358 | 351 |
|
| 352 |
+ # Arguments |
|
| 359 | 353 |
my $args = ref $_[0] eq 'HASH' ? $_[0] : {@_};
|
| 360 | 354 |
$args->{dbi} = $self;
|
| 361 |
- |
|
| 362 | 355 |
my $model_class = delete $args->{model_class} || 'DBIx::Custom::Model';
|
| 363 | 356 |
my $model_name = delete $args->{name};
|
| 364 | 357 |
my $model_table = delete $args->{table};
|
| 365 | 358 |
$model_name ||= $model_table; |
| 366 | 359 |
|
| 360 |
+ # Create model |
|
| 367 | 361 |
my $model = $model_class->new($args); |
| 368 | 362 |
$model->name($model_name) unless $model->name; |
| 369 | 363 |
$model->table($model_table) unless $model->table; |
| ... | ... |
@@ -373,7 +367,7 @@ sub create_model {
|
| 373 | 367 |
unless ref $model->filter eq 'ARRAY'; |
| 374 | 368 |
$self->apply_filter($model->table, @{$model->filter});
|
| 375 | 369 |
|
| 376 |
- # Table - Model |
|
| 370 |
+ # Associate table with model |
|
| 377 | 371 |
croak "Table name is duplicated" |
| 378 | 372 |
if exists $self->{_model_from}->{$model->table};
|
| 379 | 373 |
$self->{_model_from}->{$model->table} = $model->name;
|
| ... | ... |
@@ -407,44 +401,44 @@ sub each_column {
|
| 407 | 401 |
} |
| 408 | 402 |
} |
| 409 | 403 |
|
| 410 |
-sub execute{
|
|
| 404 |
+our %EXECUTE_ARGS = map { $_ => 1 } @COMMON_ARGS, 'param';
|
|
| 405 |
+ |
|
| 406 |
+sub _remove_duplicate_table {
|
|
| 407 |
+ my ($self, $tables, $main_table) = @_; |
|
| 408 |
+ |
|
| 409 |
+ my %tables = map {defined $_ ? ($_ => 1) : ()} @$tables;
|
|
| 410 |
+ delete $tables{$main_table} if $main_table;
|
|
| 411 |
+ |
|
| 412 |
+ return [keys %tables, $main_table ? $main_table : ()]; |
|
| 413 |
+} |
|
| 414 |
+ |
|
| 415 |
+sub execute {
|
|
| 411 | 416 |
my ($self, $query, %args) = @_; |
| 412 | 417 |
|
| 413 |
- # Quote for reserved word |
|
| 414 |
- my $q = $self->reserved_word_quote; |
|
| 418 |
+ # Arguments |
|
| 419 |
+ my $params = delete $args{param} || {};
|
|
| 420 |
+ my $tables = delete $args{table} || [];
|
|
| 421 |
+ $tables = [$tables] unless ref $tables eq 'ARRAY'; |
|
| 415 | 422 |
|
| 416 | 423 |
# Check argument names |
| 417 | 424 |
foreach my $name (keys %args) {
|
| 418 |
- croak qq{Argument "$name" is invalid name}
|
|
| 425 |
+ croak qq{Argument "$name" is wrong name}
|
|
| 419 | 426 |
unless $EXECUTE_ARGS{$name};
|
| 420 | 427 |
} |
| 421 | 428 |
|
| 422 |
- my $params = $args{param} || {};
|
|
| 423 |
- |
|
| 424 |
- # First argument is the soruce of SQL |
|
| 425 |
- $query = $self->create_query($query) |
|
| 426 |
- unless ref $query; |
|
| 427 |
- |
|
| 428 |
- # Applied filter |
|
| 429 |
- my $filter = {};
|
|
| 429 |
+ # Create query |
|
| 430 |
+ $query = $self->create_query($query) unless ref $query; |
|
| 430 | 431 |
|
| 431 |
- my $tables = $query->tables; |
|
| 432 |
- if ($q) {
|
|
| 433 |
- foreach my $table (@$tables) {
|
|
| 434 |
- $table =~ s/$q//g; |
|
| 435 |
- } |
|
| 436 |
- } |
|
| 437 |
- my $arg_tables = $args{table} || [];
|
|
| 438 |
- $arg_tables = [$arg_tables] |
|
| 439 |
- unless ref $arg_tables eq 'ARRAY'; |
|
| 440 |
- push @$tables, @$arg_tables; |
|
| 441 |
- |
|
| 442 |
- # Organize tables |
|
| 432 |
+ # Tables |
|
| 433 |
+ unshift @$tables, @{$query->tables};
|
|
| 443 | 434 |
my %table_set = map {defined $_ ? ($_ => 1) : ()} @$tables;
|
| 444 | 435 |
my $main_table = pop @$tables; |
| 445 |
- delete $table_set{$main_table} if $main_table;
|
|
| 446 |
- foreach my $table (keys %table_set) {
|
|
| 447 |
- push @$tables, $table; |
|
| 436 |
+ $tables = $self->_remove_duplicate_table($tables, $main_table); |
|
| 437 |
+ if (my $q = $self->reserved_word_quote) {
|
|
| 438 |
+ $_ =~ s/$q//g for @$tables; |
|
| 439 |
+ } |
|
| 440 |
+ |
|
| 441 |
+ foreach my $table (@$tables) {
|
|
| 448 | 442 |
|
| 449 | 443 |
if (my $dist = $self->{_table_alias}->{$table}) {
|
| 450 | 444 |
$self->{filter} ||= {};
|
| ... | ... |
@@ -468,10 +462,9 @@ sub execute{
|
| 468 | 462 |
} |
| 469 | 463 |
} |
| 470 | 464 |
} |
| 471 |
- |
|
| 472 |
- $tables = [keys %table_set]; |
|
| 473 |
- push @$tables, $main_table if $main_table; |
|
| 474 |
- |
|
| 465 |
+ |
|
| 466 |
+ # Filters |
|
| 467 |
+ my $filter = {};
|
|
| 475 | 468 |
foreach my $table (@$tables) {
|
| 476 | 469 |
next unless $table; |
| 477 | 470 |
$filter = {
|
| ... | ... |
@@ -557,12 +550,12 @@ our %INSERT_ARGS = map { $_ => 1 } @COMMON_ARGS, qw/param append/;
|
| 557 | 550 |
sub insert {
|
| 558 | 551 |
my ($self, %args) = @_; |
| 559 | 552 |
|
| 560 |
- # Quote for reserved word |
|
| 553 |
+ # Reserved word quote |
|
| 561 | 554 |
my $q = $self->reserved_word_quote; |
| 562 | 555 |
|
| 563 | 556 |
# Check argument names |
| 564 | 557 |
foreach my $name (keys %args) {
|
| 565 |
- croak qq{Argument "$name" is invalid name}
|
|
| 558 |
+ croak qq{Argument "$name" is wrong name}
|
|
| 566 | 559 |
unless $INSERT_ARGS{$name};
|
| 567 | 560 |
} |
| 568 | 561 |
|
| ... | ... |
@@ -615,7 +608,7 @@ sub insert_at {
|
| 615 | 608 |
|
| 616 | 609 |
# Check argument names |
| 617 | 610 |
foreach my $name (keys %args) {
|
| 618 |
- croak qq{Argument "$name" is invalid name}
|
|
| 611 |
+ croak qq{Argument "$name" is wrong name}
|
|
| 619 | 612 |
unless $INSERT_AT_ARGS{$name};
|
| 620 | 613 |
} |
| 621 | 614 |
|
| ... | ... |
@@ -865,12 +858,12 @@ our %SELECT_ARGS |
| 865 | 858 |
sub select {
|
| 866 | 859 |
my ($self, %args) = @_; |
| 867 | 860 |
|
| 868 |
- # Quote for reserved word |
|
| 861 |
+ # Reserved word quote |
|
| 869 | 862 |
my $q = $self->reserved_word_quote; |
| 870 | 863 |
|
| 871 | 864 |
# Check argument names |
| 872 | 865 |
foreach my $name (keys %args) {
|
| 873 |
- croak qq{Argument "$name" is invalid name}
|
|
| 866 |
+ croak qq{Argument "$name" is wrong name}
|
|
| 874 | 867 |
unless $SELECT_ARGS{$name};
|
| 875 | 868 |
} |
| 876 | 869 |
|
| ... | ... |
@@ -930,7 +923,7 @@ sub select {
|
| 930 | 923 |
unshift @$tables, @{$self->_tables(join(' ', keys %$param) || '')};
|
| 931 | 924 |
|
| 932 | 925 |
# Where |
| 933 |
- my $w = $self->_where($where); |
|
| 926 |
+ my $w = $self->_where_to_obj($where); |
|
| 934 | 927 |
$param = keys %$param ? $self->merge_param($param, $w->param) |
| 935 | 928 |
: $w->param; |
| 936 | 929 |
|
| ... | ... |
@@ -977,7 +970,7 @@ sub select_at {
|
| 977 | 970 |
|
| 978 | 971 |
# Check argument names |
| 979 | 972 |
foreach my $name (keys %args) {
|
| 980 |
- croak qq{Argument "$name" is invalid name}
|
|
| 973 |
+ croak qq{Argument "$name" is wrong name}
|
|
| 981 | 974 |
unless $SELECT_AT_ARGS{$name};
|
| 982 | 975 |
} |
| 983 | 976 |
|
| ... | ... |
@@ -1035,12 +1028,12 @@ our %UPDATE_ARGS |
| 1035 | 1028 |
sub update {
|
| 1036 | 1029 |
my ($self, %args) = @_; |
| 1037 | 1030 |
|
| 1038 |
- # Quote for reserved word |
|
| 1031 |
+ # Reserved word quote |
|
| 1039 | 1032 |
my $q = $self->reserved_word_quote; |
| 1040 | 1033 |
|
| 1041 | 1034 |
# Check argument names |
| 1042 | 1035 |
foreach my $name (keys %args) {
|
| 1043 |
- croak qq{Argument "$name" is invalid name}
|
|
| 1036 |
+ croak qq{Argument "$name" is wrong name}
|
|
| 1044 | 1037 |
unless $UPDATE_ARGS{$name};
|
| 1045 | 1038 |
} |
| 1046 | 1039 |
|
| ... | ... |
@@ -1067,7 +1060,7 @@ sub update {
|
| 1067 | 1060 |
my $update_clause = '{update_param ' . join(' ', @columns) . '}';
|
| 1068 | 1061 |
|
| 1069 | 1062 |
# Where |
| 1070 |
- my $w = $self->_where($where); |
|
| 1063 |
+ my $w = $self->_where_to_obj($where); |
|
| 1071 | 1064 |
$where = $w->param; |
| 1072 | 1065 |
|
| 1073 | 1066 |
# String where |
| ... | ... |
@@ -1124,7 +1117,7 @@ sub update_at {
|
| 1124 | 1117 |
|
| 1125 | 1118 |
# Check argument names |
| 1126 | 1119 |
foreach my $name (keys %args) {
|
| 1127 |
- croak qq{Argument "$name" is invalid name}
|
|
| 1120 |
+ croak qq{Argument "$name" is wrong name}
|
|
| 1128 | 1121 |
unless $UPDATE_AT_ARGS{$name};
|
| 1129 | 1122 |
} |
| 1130 | 1123 |
|
| ... | ... |
@@ -1360,7 +1353,7 @@ sub _push_join {
|
| 1360 | 1353 |
} |
| 1361 | 1354 |
} |
| 1362 | 1355 |
|
| 1363 |
-sub _where {
|
|
| 1356 |
+sub _where_to_obj {
|
|
| 1364 | 1357 |
my ($self, $where) = @_; |
| 1365 | 1358 |
|
| 1366 | 1359 |
my $w; |
| ... | ... |
@@ -1684,7 +1677,7 @@ Query builder, default to L<DBIx::Custom::QueryBuilder> object. |
| 1684 | 1677 |
my reserved_word_quote = $dbi->reserved_word_quote; |
| 1685 | 1678 |
$dbi = $dbi->reserved_word_quote('"');
|
| 1686 | 1679 |
|
| 1687 |
-Quote for reserved word, default to empty string. |
|
| 1680 |
+Reserved word quote, default to empty string. |
|
| 1688 | 1681 |
|
| 1689 | 1682 |
=head2 C<result_class> |
| 1690 | 1683 |
|
| ... | ... |
@@ -599,7 +599,7 @@ $dbi->execute($CREATE_TABLE->{0});
|
| 599 | 599 |
} |
| 600 | 600 |
|
| 601 | 601 |
eval{$dbi->execute('select * from table1', no_exists => 1)};
|
| 602 |
-like($@, qr/invalid/, "invald SQL"); |
|
| 602 |
+like($@, qr/name/, "invald SQL"); |
|
| 603 | 603 |
|
| 604 | 604 |
$query = $dbi->create_query('select * from table1 where {= key1}');
|
| 605 | 605 |
$dbi->dbh->disconnect; |