| ... | ... | 
                  @@ -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);  |