... | ... |
@@ -15,9 +15,12 @@ use DBIx::Custom; |
15 | 15 |
has user => 'dbix_custom'; |
16 | 16 |
has password => 'dbix_custom'; |
17 | 17 |
|
18 |
- sub create_table1 { 'create table table1 (key1 varchar(255), key2 varchar(255));' } |
|
18 |
+ sub create_table1 { 'create table table1 (key1 varchar(255), key2 varchar(255)) engine=InnoDB;' } |
|
19 | 19 |
sub create_table1_2 {'create table table1 (key1 varchar(255), key2 varchar(255), ' |
20 |
- . 'key3 varchar(255), key4 varchar(255), key5 varchar(255));' } |
|
20 |
+ . 'key3 varchar(255), key4 varchar(255), key5 varchar(255)) engine=InnoDB;' } |
|
21 |
+ sub create_table2 { 'create table table2 (key1 varchar(255), key3 varchar(255)) engine=InnoDB;' } |
|
22 |
+ sub create_table_reserved { |
|
23 |
+ 'create table `table` (`select` varchar(255), `update` varchar(255)) engine=InnoDB;' } |
|
21 | 24 |
} |
22 | 25 |
|
23 | 26 |
require "$FindBin::Bin/common.t"; |
... | ... |
@@ -17,6 +17,8 @@ use DBIx::Custom; |
17 | 17 |
sub create_table1 { 'create table table1 (key1 varchar(255), key2 varchar(255));' } |
18 | 18 |
sub create_table1_2 {'create table table1 (key1 varchar(255), key2 varchar(255), ' |
19 | 19 |
. 'key3 varchar(255), key4 varchar(255), key5 varchar(255));' } |
20 |
+ sub create_table2 { 'create table table2 (key1 varchar(255), key3 varchar(255));' } |
|
21 |
+ sub create_table_reserved { 'create table "table" ("select" varchar(255), "update" varchar(255))' } |
|
20 | 22 |
} |
21 | 23 |
|
22 | 24 |
require "$FindBin::Bin/common.t"; |
... | ... |
@@ -12,6 +12,8 @@ use DBIx::Custom; |
12 | 12 |
sub quote { '""' } |
13 | 13 |
sub create_table1 { 'create table table1 (key1, key2);' } |
14 | 14 |
sub create_table1_2 {'create table table1 (key1, key2, key3, key4, key5);' } |
15 |
+ sub create_table2 { 'create table table2 (key1, key3);' } |
|
16 |
+ sub create_table_reserved { 'create table "table" ("select", "update")' } |
|
15 | 17 |
} |
16 | 18 |
|
17 | 19 |
require "$FindBin::Bin/common.t"; |
... | ... |
@@ -11,6 +11,8 @@ use DBIx::Custom; |
11 | 11 |
has dsn => 'dbi:SQLite:dbname=:memory:'; |
12 | 12 |
sub create_table1 { 'create table table1 (key1, key2);' } |
13 | 13 |
sub create_table1_2 {'create table table1 (key1, key2, key3, key4, key5);' } |
14 |
+ sub create_table2 { 'create table table2 (key1, key3);' } |
|
15 |
+ sub create_table_reserved { 'create table "table" ("select", "update")' } |
|
14 | 16 |
} |
15 | 17 |
|
16 | 18 |
require "$FindBin::Bin/common.t"; |
... | ... |
@@ -18,6 +18,8 @@ sub test { print "# $_[0]\n" } |
18 | 18 |
# Constant |
19 | 19 |
my $create_table1 = $dbi->create_table1; |
20 | 20 |
my $create_table1_2 = $dbi->create_table1_2; |
21 |
+my $create_table2 = $dbi->create_table2; |
|
22 |
+my $create_table_reserved = $dbi->create_table_reserved; |
|
21 | 23 |
my $q = substr($dbi->quote, 0, 1); |
22 | 24 |
my $p = substr($dbi->quote, 1, 1) || $q; |
23 | 25 |
|
... | ... |
@@ -281,14 +283,13 @@ like($@, qr/noexist/, "invalid"); |
281 | 283 |
eval{$dbi->insert(table => 'table', param => {';' => 1})}; |
282 | 284 |
like($@, qr/safety/); |
283 | 285 |
|
284 |
-$dbi->quote('"'); |
|
285 | 286 |
eval { $dbi->execute("drop table ${q}table$p") }; |
286 |
-$dbi->execute("create table ${q}table$p (${q}select$p)"); |
|
287 |
+$dbi->execute($create_table_reserved); |
|
287 | 288 |
$dbi->apply_filter('table', select => {out => sub { $_[0] * 2}}); |
288 | 289 |
$dbi->insert(table => 'table', param => {select => 1}); |
289 | 290 |
$result = $dbi->execute("select * from ${q}table$p"); |
290 | 291 |
$rows = $result->all; |
291 |
-is_deeply($rows, [{select => 2}], "reserved word"); |
|
292 |
+is_deeply($rows, [{select => 2, update => undef}], "reserved word"); |
|
292 | 293 |
|
293 | 294 |
eval { $dbi->execute('drop table table1') }; |
294 | 295 |
$dbi->execute($create_table1); |
... | ... |
@@ -298,14 +299,6 @@ $result = $dbi->execute('select * from table1;'); |
298 | 299 |
$rows = $result->all; |
299 | 300 |
is_deeply($rows, [{key1 => 1, key2 => 2}, {key1 => 3, key2 => 4}], "basic"); |
300 | 301 |
|
301 |
-eval { $dbi->execute('drop table table1') }; |
|
302 |
-$dbi->execute("create table table1 (key1 char(255), key2 char(255), primary key(key1))"); |
|
303 |
-$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
|
304 |
-$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 4}, prefix => 'or replace'); |
|
305 |
-$result = $dbi->execute('select * from table1;'); |
|
306 |
-$rows = $result->all; |
|
307 |
-is_deeply($rows, [{key1 => 1, key2 => 4}], "basic"); |
|
308 |
- |
|
309 | 302 |
eval { $dbi->execute('drop table table1') }; |
310 | 303 |
$dbi->execute($create_table1); |
311 | 304 |
$dbi->insert(table => 'table1', param => {key1 => \"'1'", key2 => 2}); |
... | ... |
@@ -320,7 +313,7 @@ $dbi->execute($create_table1_2); |
320 | 313 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}); |
321 | 314 |
$dbi->insert(table => 'table1', param => {key1 => 6, key2 => 7, key3 => 8, key4 => 9, key5 => 10}); |
322 | 315 |
$dbi->update(table => 'table1', param => {key2 => 11}, where => {key1 => 1}); |
323 |
-$result = $dbi->execute('select * from table1;'); |
|
316 |
+$result = $dbi->execute('select * from table1 order by key1;'); |
|
324 | 317 |
$rows = $result->all; |
325 | 318 |
is_deeply($rows, [{key1 => 1, key2 => 11, key3 => 3, key4 => 4, key5 => 5}, |
326 | 319 |
{key1 => 6, key2 => 7, key3 => 8, key4 => 9, key5 => 10}], |
... | ... |
@@ -330,14 +323,14 @@ $dbi->execute("delete from table1"); |
330 | 323 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}); |
331 | 324 |
$dbi->insert(table => 'table1', param => {key1 => 6, key2 => 7, key3 => 8, key4 => 9, key5 => 10}); |
332 | 325 |
$dbi->update(table => 'table1', param => {key2 => 12}, where => {key2 => 2, key3 => 3}); |
333 |
-$result = $dbi->execute('select * from table1;'); |
|
326 |
+$result = $dbi->execute('select * from table1 order by key1;'); |
|
334 | 327 |
$rows = $result->all; |
335 | 328 |
is_deeply($rows, [{key1 => 1, key2 => 12, key3 => 3, key4 => 4, key5 => 5}, |
336 | 329 |
{key1 => 6, key2 => 7, key3 => 8, key4 => 9, key5 => 10}], |
337 | 330 |
"update key same as search key"); |
338 | 331 |
|
339 | 332 |
$dbi->update(table => 'table1', param => {key2 => [12]}, where => {key2 => 2, key3 => 3}); |
340 |
-$result = $dbi->execute('select * from table1;'); |
|
333 |
+$result = $dbi->execute('select * from table1 order by key1;'); |
|
341 | 334 |
$rows = $result->all; |
342 | 335 |
is_deeply($rows, [{key1 => 1, key2 => 12, key3 => 3, key4 => 4, key5 => 5}, |
343 | 336 |
{key1 => 6, key2 => 7, key3 => 8, key4 => 9, key5 => 10}], |
... | ... |
@@ -349,7 +342,7 @@ $dbi->insert(table => 'table1', param => {key1 => 6, key2 => 7, key3 => 8, key4 |
349 | 342 |
$dbi->register_filter(twice => sub { $_[0] * 2 }); |
350 | 343 |
$dbi->update(table => 'table1', param => {key2 => 11}, where => {key1 => 1}, |
351 | 344 |
filter => {key2 => sub { $_[0] * 2 }}); |
352 |
-$result = $dbi->execute('select * from table1;'); |
|
345 |
+$result = $dbi->execute('select * from table1 order by key1;'); |
|
353 | 346 |
$rows = $result->all; |
354 | 347 |
is_deeply($rows, [{key1 => 1, key2 => 22, key3 => 3, key4 => 4, key5 => 5}, |
355 | 348 |
{key1 => 6, key2 => 7, key3 => 8, key4 => 9, key5 => 10}], |
... | ... |
@@ -404,9 +397,8 @@ eval{$dbi->update(table => 'table1', param => {'key1' => 1}, where => {';' => 1} |
404 | 397 |
like($@, qr/safety/); |
405 | 398 |
|
406 | 399 |
eval { $dbi->execute('drop table table1') }; |
407 |
-$dbi->quote('"'); |
|
408 | 400 |
eval { $dbi->execute("drop table ${q}table$p") }; |
409 |
-$dbi->execute("create table ${q}table$p (${q}select$p, ${q}update$p)"); |
|
401 |
+$dbi->execute($create_table_reserved); |
|
410 | 402 |
$dbi->apply_filter('table', select => {out => sub { $_[0] * 2}}); |
411 | 403 |
$dbi->apply_filter('table', update => {out => sub { $_[0] * 3}}); |
412 | 404 |
$dbi->insert(table => 'table', param => {select => 1}); |
... | ... |
@@ -419,8 +411,7 @@ eval {$dbi->update_all(table => 'table', param => {';' => 2}) }; |
419 | 411 |
like($@, qr/safety/); |
420 | 412 |
|
421 | 413 |
eval { $dbi->execute("drop table ${q}table$p") }; |
422 |
-$dbi->reserved_word_quote('"'); |
|
423 |
-$dbi->execute("create table ${q}table$p (${q}select$p, ${q}update$p)"); |
|
414 |
+$dbi->execute($create_table_reserved); |
|
424 | 415 |
$dbi->apply_filter('table', select => {out => sub { $_[0] * 2}}); |
425 | 416 |
$dbi->apply_filter('table', update => {out => sub { $_[0] * 3}}); |
426 | 417 |
$dbi->insert(table => 'table', param => {select => 1}); |
... | ... |
@@ -434,27 +425,18 @@ $dbi->execute($create_table1_2); |
434 | 425 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}); |
435 | 426 |
$dbi->insert(table => 'table1', param => {key1 => 6, key2 => 7, key3 => 8, key4 => 9, key5 => 10}); |
436 | 427 |
$dbi->update({key2 => 11}, table => 'table1', where => {key1 => 1}); |
437 |
-$result = $dbi->execute('select * from table1;'); |
|
428 |
+$result = $dbi->execute('select * from table1 order by key1;'); |
|
438 | 429 |
$rows = $result->all; |
439 | 430 |
is_deeply($rows, [{key1 => 1, key2 => 11, key3 => 3, key4 => 4, key5 => 5}, |
440 | 431 |
{key1 => 6, key2 => 7, key3 => 8, key4 => 9, key5 => 10}], |
441 | 432 |
"basic"); |
442 | 433 |
|
443 |
-eval { $dbi->execute('drop table table1') }; |
|
444 |
-$dbi->execute("create table table1 (key1 char(255), key2 char(255), primary key(key1))"); |
|
445 |
-$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
|
446 |
-$dbi->update(table => 'table1', param => {key2 => 4}, |
|
447 |
- where => {key1 => 1}, prefix => 'or replace'); |
|
448 |
-$result = $dbi->execute('select * from table1;'); |
|
449 |
-$rows = $result->all; |
|
450 |
-is_deeply($rows, [{key1 => 1, key2 => 4}], "basic"); |
|
451 |
- |
|
452 | 434 |
eval { $dbi->execute('drop table table1') }; |
453 | 435 |
$dbi->execute($create_table1_2); |
454 | 436 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}); |
455 | 437 |
$dbi->insert(table => 'table1', param => {key1 => 6, key2 => 7, key3 => 8, key4 => 9, key5 => 10}); |
456 | 438 |
$dbi->update(table => 'table1', param => {key2 => \"'11'"}, where => {key1 => 1}); |
457 |
-$result = $dbi->execute('select * from table1;'); |
|
439 |
+$result = $dbi->execute('select * from table1 order by key1;'); |
|
458 | 440 |
$rows = $result->all; |
459 | 441 |
is_deeply($rows, [{key1 => 1, key2 => 11, key3 => 3, key4 => 4, key5 => 5}, |
460 | 442 |
{key1 => 6, key2 => 7, key3 => 8, key4 => 9, key5 => 10}], |
... | ... |
@@ -531,7 +513,7 @@ $result = $dbi->select(table => 'table1'); |
531 | 513 |
is_deeply($result->all, [{key1 => 3, key2 => 4}], 'delete() where'); |
532 | 514 |
|
533 | 515 |
eval { $dbi->execute('drop table table1') }; |
534 |
-$dbi->execute("create table table1 (key1 char(255), key2 char(255), primary key(key1))"); |
|
516 |
+$dbi->execute($create_table1); |
|
535 | 517 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
536 | 518 |
$dbi->delete(table => 'table1', where => {key1 => 1}, prefix => ' '); |
537 | 519 |
$result = $dbi->execute('select * from table1;'); |
... | ... |
@@ -549,9 +531,8 @@ eval{$dbi->delete(table => 'table1', where => {';' => 1})}; |
549 | 531 |
like($@, qr/safety/); |
550 | 532 |
|
551 | 533 |
$dbi = DBIx::Custom->connect; |
552 |
-$dbi->quote('"'); |
|
553 | 534 |
eval { $dbi->execute("drop table ${q}table$p") }; |
554 |
-$dbi->execute("create table ${q}table$p (${q}select$p, ${q}update$p)"); |
|
535 |
+$dbi->execute($create_table_reserved); |
|
555 | 536 |
$dbi->apply_filter('table', select => {out => sub { $_[0] * 2}}); |
556 | 537 |
$dbi->insert(table => 'table', param => {select => 1}); |
557 | 538 |
$dbi->delete(table => 'table', where => {select => 1}); |
... | ... |
@@ -596,7 +577,8 @@ $rows = $dbi->select(table => 'table1', where => {key1 => 2}, filter => {key1 => |
596 | 577 |
->all; |
597 | 578 |
is_deeply($rows, [{key1 => 1, key2 => 2}], "filter"); |
598 | 579 |
|
599 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
580 |
+eval { $dbi->execute("drop table table2") }; |
|
581 |
+$dbi->execute($create_table2); |
|
600 | 582 |
$dbi->insert(table => 'table2', param => {key1 => 1, key3 => 5}); |
601 | 583 |
$rows = $dbi->select( |
602 | 584 |
table => [qw/table1 table2/], |
... | ... |
@@ -617,8 +599,8 @@ eval{$dbi->select(table => 'table1', noexist => 1)}; |
617 | 599 |
like($@, qr/noexist/, "invalid"); |
618 | 600 |
|
619 | 601 |
$dbi = DBIx::Custom->connect; |
620 |
-$dbi->quote('"'); |
|
621 |
-$dbi->execute("create table ${q}table$p (${q}select$p, ${q}update$p)"); |
|
602 |
+eval { $dbi->execute("drop table ${q}table$p") }; |
|
603 |
+$dbi->execute($create_table_reserved); |
|
622 | 604 |
$dbi->apply_filter('table', select => {out => sub { $_[0] * 2}}); |
623 | 605 |
$dbi->insert(table => 'table', param => {select => 1, update => 2}); |
624 | 606 |
$result = $dbi->select(table => 'table', where => {select => 1}); |
... | ... |
@@ -27,6 +27,9 @@ sub test { print "# $_[0]\n" } |
27 | 27 |
# Constant |
28 | 28 |
my $create_table1 = 'create table table1 (key1 char(255), key2 char(255));'; |
29 | 29 |
my $create_table1_2 = 'create table table1 (key1 char(255), key2 char(255), key3 char(255), key4 char(255), key5 char(255));'; |
30 |
+my $create_table2 = 'create table table2 (key1 char(255), key3 char(255));'; |
|
31 |
+my $create_table_reserved = 'create table "table" ("select", "update")'; |
|
32 |
+ |
|
30 | 33 |
my $q = '"'; |
31 | 34 |
my $p = '"'; |
32 | 35 |
|
... | ... |
@@ -65,6 +68,72 @@ my $binary; |
65 | 68 |
# Prepare table |
66 | 69 |
$dbi = DBIx::Custom->connect; |
67 | 70 |
|
71 |
+test 'insert'; |
|
72 |
+eval { $dbi->execute('drop table table1') }; |
|
73 |
+$dbi->execute($create_table1); |
|
74 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
|
75 |
+$dbi->insert(table => 'table1', param => {key1 => 3, key2 => 4}); |
|
76 |
+$result = $dbi->execute('select * from table1;'); |
|
77 |
+$rows = $result->all; |
|
78 |
+is_deeply($rows, [{key1 => 1, key2 => 2}, {key1 => 3, key2 => 4}], "basic"); |
|
79 |
+ |
|
80 |
+$dbi->execute('delete from table1'); |
|
81 |
+$dbi->register_filter( |
|
82 |
+ twice => sub { $_[0] * 2 }, |
|
83 |
+ three_times => sub { $_[0] * 3 } |
|
84 |
+); |
|
85 |
+$dbi->default_bind_filter('twice'); |
|
86 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}, filter => {key1 => 'three_times'}); |
|
87 |
+$result = $dbi->execute('select * from table1;'); |
|
88 |
+$rows = $result->all; |
|
89 |
+is_deeply($rows, [{key1 => 3, key2 => 4}], "filter"); |
|
90 |
+$dbi->default_bind_filter(undef); |
|
91 |
+ |
|
92 |
+$dbi->execute('drop table table1'); |
|
93 |
+$dbi->execute($create_table1); |
|
94 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}, append => ' '); |
|
95 |
+$rows = $dbi->select(table => 'table1')->all; |
|
96 |
+is_deeply($rows, [{key1 => 1, key2 => 2}], 'insert append'); |
|
97 |
+ |
|
98 |
+eval{$dbi->insert(table => 'table1', noexist => 1)}; |
|
99 |
+like($@, qr/noexist/, "invalid"); |
|
100 |
+ |
|
101 |
+eval{$dbi->insert(table => 'table', param => {';' => 1})}; |
|
102 |
+like($@, qr/safety/); |
|
103 |
+ |
|
104 |
+$dbi->quote('"'); |
|
105 |
+eval { $dbi->execute("drop table ${q}table$p") }; |
|
106 |
+$dbi->execute("create table ${q}table$p (${q}select$p)"); |
|
107 |
+$dbi->apply_filter('table', select => {out => sub { $_[0] * 2}}); |
|
108 |
+$dbi->insert(table => 'table', param => {select => 1}); |
|
109 |
+$result = $dbi->execute("select * from ${q}table$p"); |
|
110 |
+$rows = $result->all; |
|
111 |
+is_deeply($rows, [{select => 2}], "reserved word"); |
|
112 |
+ |
|
113 |
+eval { $dbi->execute('drop table table1') }; |
|
114 |
+$dbi->execute($create_table1); |
|
115 |
+$dbi->insert({key1 => 1, key2 => 2}, table => 'table1'); |
|
116 |
+$dbi->insert({key1 => 3, key2 => 4}, table => 'table1'); |
|
117 |
+$result = $dbi->execute('select * from table1;'); |
|
118 |
+$rows = $result->all; |
|
119 |
+is_deeply($rows, [{key1 => 1, key2 => 2}, {key1 => 3, key2 => 4}], "basic"); |
|
120 |
+ |
|
121 |
+eval { $dbi->execute('drop table table1') }; |
|
122 |
+$dbi->execute("create table table1 (key1 char(255), key2 char(255), primary key(key1))"); |
|
123 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
|
124 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 4}, prefix => 'or replace'); |
|
125 |
+$result = $dbi->execute('select * from table1;'); |
|
126 |
+$rows = $result->all; |
|
127 |
+is_deeply($rows, [{key1 => 1, key2 => 4}], "basic"); |
|
128 |
+ |
|
129 |
+eval { $dbi->execute('drop table table1') }; |
|
130 |
+$dbi->execute($create_table1); |
|
131 |
+$dbi->insert(table => 'table1', param => {key1 => \"'1'", key2 => 2}); |
|
132 |
+$dbi->insert(table => 'table1', param => {key1 => 3, key2 => 4}); |
|
133 |
+$result = $dbi->execute('select * from table1;'); |
|
134 |
+$rows = $result->all; |
|
135 |
+is_deeply($rows, [{key1 => 1, key2 => 2}, {key1 => 3, key2 => 4}], "basic"); |
|
136 |
+ |
|
68 | 137 |
test 'update'; |
69 | 138 |
eval { $dbi->execute('drop table table1') }; |
70 | 139 |
$dbi->execute($create_table1_2); |
... | ... |
@@ -347,7 +416,7 @@ $rows = $dbi->select(table => 'table1', where => {key1 => 2}, filter => {key1 => |
347 | 416 |
->all; |
348 | 417 |
is_deeply($rows, [{key1 => 1, key2 => 2}], "filter"); |
349 | 418 |
|
350 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
419 |
+$dbi->execute($create_table2); |
|
351 | 420 |
$dbi->insert(table => 'table2', param => {key1 => 1, key3 => 5}); |
352 | 421 |
$rows = $dbi->select( |
353 | 422 |
table => [qw/table1 table2/], |
... | ... |
@@ -633,7 +702,7 @@ is_deeply($rows, [{key1 => 4, key2 => 2}], "execute table tag"); |
633 | 702 |
$dbi = DBIx::Custom->connect; |
634 | 703 |
eval { $dbi->execute('drop table table1') }; |
635 | 704 |
$dbi->execute($create_table1); |
636 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
705 |
+$dbi->execute($create_table2); |
|
637 | 706 |
$dbi->register_filter(twice => sub { $_[0] * 2 }); |
638 | 707 |
$dbi->register_filter(three_times => sub { $_[0] * 3 }); |
639 | 708 |
$dbi->apply_filter( |
... | ... |
@@ -666,7 +735,7 @@ test 'each_column'; |
666 | 735 |
$dbi = DBIx::Custom->connect; |
667 | 736 |
eval { $dbi->execute('drop table table1') }; |
668 | 737 |
eval { $dbi->execute('drop table table2') }; |
669 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
738 |
+$dbi->execute($create_table2); |
|
670 | 739 |
$dbi->execute('create table table1 (key1 Date, key2 datetime);'); |
671 | 740 |
|
672 | 741 |
$infos = []; |
... | ... |
@@ -692,7 +761,7 @@ test 'each_table'; |
692 | 761 |
$dbi = DBIx::Custom->connect; |
693 | 762 |
eval { $dbi->execute('drop table table1') }; |
694 | 763 |
eval { $dbi->execute('drop table table2') }; |
695 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
764 |
+$dbi->execute($create_table2); |
|
696 | 765 |
$dbi->execute('create table table1 (key1 Date, key2 datetime);'); |
697 | 766 |
|
698 | 767 |
$infos = []; |
... | ... |
@@ -1905,7 +1974,7 @@ $dbi = MyDBI7->connect; |
1905 | 1974 |
eval { $dbi->execute('drop table table1') }; |
1906 | 1975 |
eval { $dbi->execute('drop table table2') }; |
1907 | 1976 |
$dbi->execute($create_table1); |
1908 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
1977 |
+$dbi->execute($create_table2); |
|
1909 | 1978 |
$dbi->separator('__'); |
1910 | 1979 |
$dbi->setup_model; |
1911 | 1980 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
... | ... |
@@ -2039,7 +2108,7 @@ eval { $dbi->execute('drop table table1') }; |
2039 | 2108 |
$dbi->execute($create_table1); |
2040 | 2109 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
2041 | 2110 |
$dbi->insert(table => 'table1', param => {key1 => 3, key2 => 4}); |
2042 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
2111 |
+$dbi->execute($create_table2); |
|
2043 | 2112 |
$dbi->insert(table => 'table2', param => {key1 => 1, key3 => 5}); |
2044 | 2113 |
$dbi->execute('create table table3 (key3 int, key4 int);'); |
2045 | 2114 |
$dbi->insert(table => 'table3', param => {key3 => 5, key4 => 4}); |
... | ... |
@@ -2099,7 +2168,7 @@ $dbi->quote('"'); |
2099 | 2168 |
eval { $dbi->execute('drop table table1') }; |
2100 | 2169 |
$dbi->execute($create_table1); |
2101 | 2170 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
2102 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
2171 |
+$dbi->execute($create_table2); |
|
2103 | 2172 |
$dbi->insert(table => 'table2', param => {key1 => 1, key3 => 5}); |
2104 | 2173 |
$rows = $dbi->select( |
2105 | 2174 |
table => 'table1', |
... | ... |
@@ -2149,7 +2218,7 @@ $dbi = DBIx::Custom->connect; |
2149 | 2218 |
eval { $dbi->execute('drop table table1') }; |
2150 | 2219 |
eval { $dbi->execute('drop table table2') }; |
2151 | 2220 |
$dbi->execute($create_table1); |
2152 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
2221 |
+$dbi->execute($create_table2); |
|
2153 | 2222 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
2154 | 2223 |
$dbi->insert(table => 'table2', param => {key1 => 1, key3 => 4}); |
2155 | 2224 |
$dbi->insert(table => 'table2', param => {key1 => 1, key3 => 5}); |
... | ... |
@@ -2181,7 +2250,7 @@ $dbi = DBIx::Custom->connect; |
2181 | 2250 |
eval { $dbi->execute('drop table table1') }; |
2182 | 2251 |
eval { $dbi->execute('drop table table2') }; |
2183 | 2252 |
$dbi->execute($create_table1); |
2184 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
2253 |
+$dbi->execute($create_table2); |
|
2185 | 2254 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
2186 | 2255 |
$dbi->insert(table => 'table2', param => {key1 => 1, key3 => 4}); |
2187 | 2256 |
$dbi->insert(table => 'table2', param => {key1 => 1, key3 => 5}); |
... | ... |
@@ -2202,7 +2271,7 @@ $dbi = MyDBI8->connect; |
2202 | 2271 |
eval { $dbi->execute('drop table table1') }; |
2203 | 2272 |
eval { $dbi->execute('drop table table2') }; |
2204 | 2273 |
$dbi->execute($create_table1); |
2205 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
2274 |
+$dbi->execute($create_table2); |
|
2206 | 2275 |
$dbi->setup_model; |
2207 | 2276 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
2208 | 2277 |
$dbi->insert(table => 'table2', param => {key1 => 1, key3 => 3}); |
... | ... |
@@ -2276,7 +2345,7 @@ test 'column table option'; |
2276 | 2345 |
$dbi = MyDBI9->connect; |
2277 | 2346 |
eval { $dbi->execute('drop table table1') }; |
2278 | 2347 |
$dbi->execute($create_table1); |
2279 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
2348 |
+$dbi->execute($create_table2); |
|
2280 | 2349 |
$dbi->setup_model; |
2281 | 2350 |
$dbi->execute('insert into table1 (key1, key2) values (1, 2);'); |
2282 | 2351 |
$dbi->execute('insert into table2 (key1, key3) values (1, 4);'); |
... | ... |
@@ -2384,7 +2453,7 @@ $dbi = DBIx::Custom->connect; |
2384 | 2453 |
eval { $dbi->execute('drop table table1') }; |
2385 | 2454 |
eval { $dbi->execute('drop table table2') }; |
2386 | 2455 |
$dbi->execute($create_table1); |
2387 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
2456 |
+$dbi->execute($create_table2); |
|
2388 | 2457 |
|
2389 | 2458 |
$dbi->create_model( |
2390 | 2459 |
table => 'table1', |
... | ... |
@@ -2418,7 +2487,7 @@ test 'model method'; |
2418 | 2487 |
test 'create_model'; |
2419 | 2488 |
$dbi = DBIx::Custom->connect; |
2420 | 2489 |
eval { $dbi->execute('drop table table2') }; |
2421 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
2490 |
+$dbi->execute($create_table2); |
|
2422 | 2491 |
$dbi->insert(table => 'table2', param => {key1 => 1, key3 => 3}); |
2423 | 2492 |
$model = $dbi->create_model( |
2424 | 2493 |
table => 'table2' |
... | ... |
@@ -2449,7 +2518,7 @@ eval { $dbi->execute('drop table table1') }; |
2449 | 2518 |
$dbi->execute($create_table1); |
2450 | 2519 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
2451 | 2520 |
$dbi->insert(table => 'table1', param => {key1 => 2, key2 => 3}); |
2452 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
2521 |
+$dbi->execute($create_table2); |
|
2453 | 2522 |
$dbi->insert(table => 'table2', param => {key1 => 1, key3 => 4}); |
2454 | 2523 |
$dbi->insert(table => 'table2', param => {key1 => 2, key3 => 5}); |
2455 | 2524 |
$rows = $dbi->select( |
... | ... |
@@ -2792,7 +2861,7 @@ $dbi = MyDBI7->connect; |
2792 | 2861 |
eval { $dbi->execute('drop table table1') }; |
2793 | 2862 |
eval { $dbi->execute('drop table table2') }; |
2794 | 2863 |
$dbi->execute($create_table1); |
2795 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
2864 |
+$dbi->execute($create_table2); |
|
2796 | 2865 |
$dbi->setup_model; |
2797 | 2866 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
2798 | 2867 |
$dbi->insert(table => 'table2', param => {key1 => 1, key3 => 3}); |
... | ... |
@@ -2818,7 +2887,7 @@ $dbi = DBIx::Custom->connect; |
2818 | 2887 |
eval { $dbi->execute('drop table table1') }; |
2819 | 2888 |
eval { $dbi->execute('drop table table2') }; |
2820 | 2889 |
$dbi->execute($create_table1); |
2821 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
2890 |
+$dbi->execute($create_table2); |
|
2822 | 2891 |
|
2823 | 2892 |
$dbi->create_model( |
2824 | 2893 |
table => 'table1', |
... | ... |
@@ -2877,7 +2946,7 @@ $dbi = DBIx::Custom->connect; |
2877 | 2946 |
eval { $dbi->execute('drop table table1') }; |
2878 | 2947 |
eval { $dbi->execute('drop table table2') }; |
2879 | 2948 |
$dbi->execute($create_table1); |
2880 |
-$dbi->execute('create table table2 (key1 char(255), key3 char(255));'); |
|
2949 |
+$dbi->execute($create_table2); |
|
2881 | 2950 |
|
2882 | 2951 |
$dbi->create_model( |
2883 | 2952 |
table => 'table1', |
... | ... |
@@ -3769,3 +3838,49 @@ $result = $dbi->select(table => 'table1'); |
3769 | 3838 |
is($result->type_rule2_off->fetch_first->[0], '1bd'); |
3770 | 3839 |
$result = $dbi->select(table => 'table1'); |
3771 | 3840 |
is($result->type_rule2_on->fetch_first->[0], '1bde'); |
3841 |
+ |
|
3842 |
+test 'prefix'; |
|
3843 |
+$dbi = DBIx::Custom->connect; |
|
3844 |
+eval { $dbi->execute('drop table table1') }; |
|
3845 |
+$dbi->execute("create table table1 (key1 char(255), key2 char(255), primary key(key1))"); |
|
3846 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
|
3847 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 4}, prefix => 'or replace'); |
|
3848 |
+$result = $dbi->execute('select * from table1;'); |
|
3849 |
+$rows = $result->all; |
|
3850 |
+is_deeply($rows, [{key1 => 1, key2 => 4}], "basic"); |
|
3851 |
+ |
|
3852 |
+$dbi = DBIx::Custom->connect; |
|
3853 |
+eval { $dbi->execute('drop table table1') }; |
|
3854 |
+$dbi->execute("create table table1 (key1 char(255), key2 char(255), primary key(key1))"); |
|
3855 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
|
3856 |
+$dbi->update(table => 'table1', param => {key2 => 4}, |
|
3857 |
+ where => {key1 => 1}, prefix => 'or replace'); |
|
3858 |
+$result = $dbi->execute('select * from table1;'); |
|
3859 |
+$rows = $result->all; |
|
3860 |
+is_deeply($rows, [{key1 => 1, key2 => 4}], "basic"); |
|
3861 |
+ |
|
3862 |
+ |
|
3863 |
+test 'reserved_word_quote'; |
|
3864 |
+$dbi = DBIx::Custom->connect; |
|
3865 |
+eval { $dbi->execute("drop table ${q}table$p") }; |
|
3866 |
+$dbi->reserved_word_quote('"'); |
|
3867 |
+$dbi->execute($create_table_reserved); |
|
3868 |
+$dbi->apply_filter('table', select => {out => sub { $_[0] * 2}}); |
|
3869 |
+$dbi->apply_filter('table', update => {out => sub { $_[0] * 3}}); |
|
3870 |
+$dbi->insert(table => 'table', param => {select => 1}); |
|
3871 |
+$dbi->update(table => 'table', where => {'table.select' => 1}, param => {update => 2}); |
|
3872 |
+$result = $dbi->execute("select * from ${q}table$p"); |
|
3873 |
+$rows = $result->all; |
|
3874 |
+is_deeply($rows, [{select => 2, update => 6}], "reserved word"); |
|
3875 |
+ |
|
3876 |
+test 'quote'; |
|
3877 |
+$dbi = DBIx::Custom->connect; |
|
3878 |
+$dbi->quote('"'); |
|
3879 |
+eval { $dbi->execute("drop table ${q}table$p") }; |
|
3880 |
+$dbi->execute($create_table_reserved); |
|
3881 |
+$dbi->apply_filter('table', select => {out => sub { $_[0] * 2}}); |
|
3882 |
+$dbi->insert(table => 'table', param => {select => 1}); |
|
3883 |
+$dbi->delete(table => 'table', where => {select => 1}); |
|
3884 |
+$result = $dbi->execute("select * from ${q}table$p"); |
|
3885 |
+$rows = $result->all; |
|
3886 |
+is_deeply($rows, [], "reserved word"); |