... | ... |
@@ -17,7 +17,8 @@ sub test { print "# $_[0]\n" } |
17 | 17 |
# Constant |
18 | 18 |
my $create_table1 = $dbi->create_table1; |
19 | 19 |
my $create_table1_2 = $dbi->create_table1_2; |
20 |
- |
|
20 |
+my $q = substr($dbi->quote, 0, 1); |
|
21 |
+my $p = substr($dbi->quote, 1, 1) || $q; |
|
21 | 22 |
|
22 | 23 |
# Variable |
23 | 24 |
# Variables |
... | ... |
@@ -247,7 +248,8 @@ eval{$dbi->execute("{p }", {}, query => 1)}; |
247 | 248 |
ok($@, "create_query invalid SQL template"); |
248 | 249 |
|
249 | 250 |
test 'insert'; |
250 |
-$dbi->delete_all(table => 'table1'); |
|
251 |
+eval { $dbi->execute('drop table table1') }; |
|
252 |
+$dbi->execute($create_table1); |
|
251 | 253 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
252 | 254 |
$dbi->insert(table => 'table1', param => {key1 => 3, key2 => 4}); |
253 | 255 |
$result = $dbi->execute('select * from table1;'); |
... | ... |
@@ -266,7 +268,8 @@ $rows = $result->all; |
266 | 268 |
is_deeply($rows, [{key1 => 3, key2 => 4}], "filter"); |
267 | 269 |
$dbi->default_bind_filter(undef); |
268 | 270 |
|
269 |
-$dbi->delete_all(table => 'table1'); |
|
271 |
+$dbi->execute('drop table table1'); |
|
272 |
+$dbi->execute($create_table1); |
|
270 | 273 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}, append => ' '); |
271 | 274 |
$rows = $dbi->select(table => 'table1')->all; |
272 | 275 |
is_deeply($rows, [{key1 => 1, key2 => 2}], 'insert append'); |
... | ... |
@@ -277,16 +280,16 @@ like($@, qr/noexist/, "invalid"); |
277 | 280 |
eval{$dbi->insert(table => 'table', param => {';' => 1})}; |
278 | 281 |
like($@, qr/safety/); |
279 | 282 |
|
280 |
-__END__ |
|
281 |
- |
|
282 | 283 |
$dbi->quote('"'); |
283 |
-$dbi->execute('create table "table" ("select")'); |
|
284 |
+eval { $dbi->execute("drop table ${q}table$p") }; |
|
285 |
+$dbi->execute("create table ${q}table$p (${q}select$p)"); |
|
284 | 286 |
$dbi->apply_filter('table', select => {out => sub { $_[0] * 2}}); |
285 | 287 |
$dbi->insert(table => 'table', param => {select => 1}); |
286 |
-$result = $dbi->execute('select * from "table"'); |
|
288 |
+$result = $dbi->execute("select * from ${q}table$p"); |
|
287 | 289 |
$rows = $result->all; |
288 | 290 |
is_deeply($rows, [{select => 2}], "reserved word"); |
289 | 291 |
|
292 |
+eval { $dbi->execute('drop table table1') }; |
|
290 | 293 |
$dbi->execute($create_table1); |
291 | 294 |
$dbi->insert({key1 => 1, key2 => 2}, table => 'table1'); |
292 | 295 |
$dbi->insert({key1 => 3, key2 => 4}, table => 'table1'); |
... | ... |
@@ -294,6 +297,7 @@ $result = $dbi->execute('select * from table1;'); |
294 | 297 |
$rows = $result->all; |
295 | 298 |
is_deeply($rows, [{key1 => 1, key2 => 2}, {key1 => 3, key2 => 4}], "basic"); |
296 | 299 |
|
300 |
+eval { $dbi->execute('drop table table1') }; |
|
297 | 301 |
$dbi->execute("create table table1 (key1 char(255), key2 char(255), primary key(key1))"); |
298 | 302 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
299 | 303 |
$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 4}, prefix => 'or replace'); |
... | ... |
@@ -301,6 +305,7 @@ $result = $dbi->execute('select * from table1;'); |
301 | 305 |
$rows = $result->all; |
302 | 306 |
is_deeply($rows, [{key1 => 1, key2 => 4}], "basic"); |
303 | 307 |
|
308 |
+eval { $dbi->execute('drop table table1') }; |
|
304 | 309 |
$dbi->execute($create_table1); |
305 | 310 |
$dbi->insert(table => 'table1', param => {key1 => \"'1'", key2 => 2}); |
306 | 311 |
$dbi->insert(table => 'table1', param => {key1 => 3, key2 => 4}); |
... | ... |
@@ -65,72 +65,6 @@ my $binary; |
65 | 65 |
# Prepare table |
66 | 66 |
$dbi = DBIx::Custom->connect; |
67 | 67 |
|
68 |
-test 'insert'; |
|
69 |
-eval { $dbi->execute('drop table table1') }; |
|
70 |
-$dbi->execute($create_table1); |
|
71 |
-$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
|
72 |
-$dbi->insert(table => 'table1', param => {key1 => 3, key2 => 4}); |
|
73 |
-$result = $dbi->execute('select * from table1;'); |
|
74 |
-$rows = $result->all; |
|
75 |
-is_deeply($rows, [{key1 => 1, key2 => 2}, {key1 => 3, key2 => 4}], "basic"); |
|
76 |
- |
|
77 |
-$dbi->execute('delete from table1'); |
|
78 |
-$dbi->register_filter( |
|
79 |
- twice => sub { $_[0] * 2 }, |
|
80 |
- three_times => sub { $_[0] * 3 } |
|
81 |
-); |
|
82 |
-$dbi->default_bind_filter('twice'); |
|
83 |
-$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}, filter => {key1 => 'three_times'}); |
|
84 |
-$result = $dbi->execute('select * from table1;'); |
|
85 |
-$rows = $result->all; |
|
86 |
-is_deeply($rows, [{key1 => 3, key2 => 4}], "filter"); |
|
87 |
-$dbi->default_bind_filter(undef); |
|
88 |
- |
|
89 |
-$dbi->execute('drop table table1'); |
|
90 |
-$dbi->execute($create_table1); |
|
91 |
-$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}, append => ' '); |
|
92 |
-$rows = $dbi->select(table => 'table1')->all; |
|
93 |
-is_deeply($rows, [{key1 => 1, key2 => 2}], 'insert append'); |
|
94 |
- |
|
95 |
-eval{$dbi->insert(table => 'table1', noexist => 1)}; |
|
96 |
-like($@, qr/noexist/, "invalid"); |
|
97 |
- |
|
98 |
-eval{$dbi->insert(table => 'table', param => {';' => 1})}; |
|
99 |
-like($@, qr/safety/); |
|
100 |
- |
|
101 |
-$dbi->quote('"'); |
|
102 |
-eval { $dbi->execute("drop table ${q}table$p") }; |
|
103 |
-$dbi->execute("create table ${q}table$p (${q}select$p)"); |
|
104 |
-$dbi->apply_filter('table', select => {out => sub { $_[0] * 2}}); |
|
105 |
-$dbi->insert(table => 'table', param => {select => 1}); |
|
106 |
-$result = $dbi->execute("select * from ${q}table$p"); |
|
107 |
-$rows = $result->all; |
|
108 |
-is_deeply($rows, [{select => 2}], "reserved word"); |
|
109 |
- |
|
110 |
-eval { $dbi->execute('drop table table1') }; |
|
111 |
-$dbi->execute($create_table1); |
|
112 |
-$dbi->insert({key1 => 1, key2 => 2}, table => 'table1'); |
|
113 |
-$dbi->insert({key1 => 3, key2 => 4}, table => 'table1'); |
|
114 |
-$result = $dbi->execute('select * from table1;'); |
|
115 |
-$rows = $result->all; |
|
116 |
-is_deeply($rows, [{key1 => 1, key2 => 2}, {key1 => 3, key2 => 4}], "basic"); |
|
117 |
- |
|
118 |
-eval { $dbi->execute('drop table table1') }; |
|
119 |
-$dbi->execute("create table table1 (key1 char(255), key2 char(255), primary key(key1))"); |
|
120 |
-$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
|
121 |
-$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 4}, prefix => 'or replace'); |
|
122 |
-$result = $dbi->execute('select * from table1;'); |
|
123 |
-$rows = $result->all; |
|
124 |
-is_deeply($rows, [{key1 => 1, key2 => 4}], "basic"); |
|
125 |
- |
|
126 |
-eval { $dbi->execute('drop table table1') }; |
|
127 |
-$dbi->execute($create_table1); |
|
128 |
-$dbi->insert(table => 'table1', param => {key1 => \"'1'", key2 => 2}); |
|
129 |
-$dbi->insert(table => 'table1', param => {key1 => 3, key2 => 4}); |
|
130 |
-$result = $dbi->execute('select * from table1;'); |
|
131 |
-$rows = $result->all; |
|
132 |
-is_deeply($rows, [{key1 => 1, key2 => 2}, {key1 => 3, key2 => 4}], "basic"); |
|
133 |
- |
|
134 | 68 |
test 'update'; |
135 | 69 |
eval { $dbi->execute('drop table table1') }; |
136 | 70 |
$dbi->execute($create_table1_2); |