| ... | ... | @@ -47,6 +47,11 @@ my $ret_val; | 
              
              
                | 47 | 47 |  
 | 
              
              
                | 48 | 48 |  
 | 
              
              
                | 49 | 49 |  
 | 
              
              
                |  | 50 | +test 'Disconnect';
 | 
              
              
                |  | 51 | +$dbi = DBI::Custom->new(data_source => 'dbi:SQLite:dbname=:memory:');
 | 
              
              
                |  | 52 | +$dbi->connect;
 | 
              
              
                |  | 53 | +$dbi->disconnect;
 | 
              
              
                |  | 54 | +ok(!$dbi->dbh, $test);
 | 
              
              
                | 50 | 55 |  
 | 
              
              
                | 51 | 56 |  # Prepare table
 | 
              
              
                | 52 | 57 |  $dbi = DBI::Custom->new(data_source => 'dbi:SQLite:dbname=:memory:');
 | 
              
              
                | ... | ... | @@ -216,12 +221,40 @@ $result = $dbi->execute($query, {key1 => 1, key2 => 3, key3 => 4, key4 => 3, key | 
              
              
                | 216 | 221 |  $rows = $result->fetch_all_hash;
 | 
              
              
                | 217 | 222 |  is_deeply($rows, [{key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}], "$test : basic tag1");
 | 
              
              
                | 218 | 223 |  
 | 
              
              
                |  | 224 | +$tmpl = "select * from table1 where {= table1.key1} and {<> table1.key2} and {< table1.key3} and {> table1.key4} and {>= table1.key5};";
 | 
              
              
                |  | 225 | +$query = $dbi->create_query($tmpl);
 | 
              
              
                |  | 226 | +$result = $dbi->execute($query, {table1 => {key1 => 1, key2 => 3, key3 => 4, key4 => 3, key5 => 5}});
 | 
              
              
                |  | 227 | +$rows = $result->fetch_all_hash;
 | 
              
              
                |  | 228 | +is_deeply($rows, [{key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}], "$test : basic tag1 with table");
 | 
              
              
                |  | 229 | +
 | 
              
              
                |  | 230 | +$tmpl = "select * from table1 where {= table1.key1} and {<> table1.key2} and {< table1.key3} and {> table1.key4} and {>= table1.key5};";
 | 
              
              
                |  | 231 | +$query = $dbi->create_query($tmpl);
 | 
              
              
                |  | 232 | +$result = $dbi->execute($query, {'table1.key1' => 1, 'table1.key2' => 3, 'table1.key3' => 4, 'table1.key4' => 3, 'table1.key5' => 5});
 | 
              
              
                |  | 233 | +$rows = $result->fetch_all_hash;
 | 
              
              
                |  | 234 | +is_deeply($rows, [{key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}], "$test : basic tag1 with table dot");
 | 
              
              
                |  | 235 | +
 | 
              
              
                | 219 | 236 |  $tmpl = "select * from table1 where {<= key1} and {like key2};";
 | 
              
              
                | 220 | 237 |  $query = $dbi->create_query($tmpl);
 | 
              
              
                | 221 | 238 |  $result = $dbi->execute($query, {key1 => 1, key2 => '%2%'});
 | 
              
              
                | 222 | 239 |  $rows = $result->fetch_all_hash;
 | 
              
              
                | 223 | 240 |  is_deeply($rows, [{key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}], "$test : basic tag2");
 | 
              
              
                | 224 | 241 |  
 | 
              
              
                |  | 242 | +$tmpl = "select * from table1 where {<= table1.key1} and {like table1.key2};";
 | 
              
              
                |  | 243 | +$query = $dbi->create_query($tmpl);
 | 
              
              
                |  | 244 | +$result = $dbi->execute($query, {table1 => {key1 => 1, key2 => '%2%'}});
 | 
              
              
                |  | 245 | +$rows = $result->fetch_all_hash;
 | 
              
              
                |  | 246 | +is_deeply($rows, [{key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}], "$test : basic tag2 with table");
 | 
              
              
                |  | 247 | +
 | 
              
              
                |  | 248 | +$tmpl = "select * from table1 where {<= table1.key1} and {like table1.key2};";
 | 
              
              
                |  | 249 | +$query = $dbi->create_query($tmpl);
 | 
              
              
                |  | 250 | +$result = $dbi->execute($query, {'table1.key1' => 1, 'table1.key2' => '%2%'});
 | 
              
              
                |  | 251 | +$rows = $result->fetch_all_hash;
 | 
              
              
                |  | 252 | +is_deeply($rows, [{key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}], "$test : basic tag2 with table dot");
 | 
              
              
                |  | 253 | +
 | 
              
              
                |  | 254 | +
 | 
              
              
                |  | 255 | +
 | 
              
              
                |  | 256 | +test 'DIB::Custom::SQL::Template';
 | 
              
              
                |  | 257 | +
 | 
              
              
                | 225 | 258 |  
 | 
              
              
                | 226 | 259 |  test 'DBI::Custom::SQL::Template insert tag';
 | 
              
              
                | 227 | 260 |  $dbi->do("delete from table1");
 | 
              
              
                | ... | ... | @@ -242,11 +275,16 @@ is_deeply($rows, [{key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}], "$te | 
              
              
                | 242 | 275 |  $dbi->do("delete from table1");
 | 
              
              
                | 243 | 276 |  $insert_tmpl = 'insert into table1 {insert table1.key1 table1.key2 table1.key3 table1.key4 table1.key5}';
 | 
              
              
                | 244 | 277 |  $dbi->execute($insert_tmpl, {table1 => {key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}});
 | 
              
              
                | 245 |  | -
 | 
              
              
                | 246 | 278 |  $result = $dbi->execute($SELECT_TMPL->{0});
 | 
              
              
                | 247 | 279 |  $rows = $result->fetch_all_hash;
 | 
              
              
                | 248 | 280 |  is_deeply($rows, [{key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}], "$test : with table name");
 | 
              
              
                | 249 | 281 |  
 | 
              
              
                |  | 282 | +$dbi->do("delete from table1");
 | 
              
              
                |  | 283 | +$insert_tmpl = 'insert into table1 {insert table1.key1 table1.key2 table1.key3 table1.key4 table1.key5}';
 | 
              
              
                |  | 284 | +$dbi->execute($insert_tmpl, {'table1.key1' => 1, 'table1.key2' => 2, 'table1.key3' => 3, 'table1.key4' => 4, 'table1.key5' => 5});
 | 
              
              
                |  | 285 | +$result = $dbi->execute($SELECT_TMPL->{0});
 | 
              
              
                |  | 286 | +$rows = $result->fetch_all_hash;
 | 
              
              
                |  | 287 | +is_deeply($rows, [{key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}], "$test : with table name dot");
 | 
              
              
                | 250 | 288 |  
 | 
              
              
                | 251 | 289 |  $dbi->do("delete from table1");
 | 
              
              
                | 252 | 290 |  $dbi->execute($insert_tmpl, {'#insert' => {table1 => {key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}}});
 | 
              
              
                | ... | ... | @@ -254,6 +292,12 @@ $result = $dbi->execute($SELECT_TMPL->{0}); | 
              
              
                | 254 | 292 |  $rows = $result->fetch_all_hash;
 | 
              
              
                | 255 | 293 |  is_deeply($rows, [{key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}], "$test : #insert with table name");
 | 
              
              
                | 256 | 294 |  
 | 
              
              
                |  | 295 | +$dbi->do("delete from table1");
 | 
              
              
                |  | 296 | +$dbi->execute($insert_tmpl, {'#insert' => {'table1.key1' => 1, 'table1.key2' => 2, 'table1.key3' => 3, 'table1.key4' => 4, 'table1.key5' => 5}});
 | 
              
              
                |  | 297 | +$result = $dbi->execute($SELECT_TMPL->{0});
 | 
              
              
                |  | 298 | +$rows = $result->fetch_all_hash;
 | 
              
              
                |  | 299 | +is_deeply($rows, [{key1 => 1, key2 => 2, key3 => 3, key4 => 4, key5 => 5}], "$test : #insert with table name dot");
 | 
              
              
                |  | 300 | +
 | 
              
              
                | 257 | 301 |  
 | 
              
              
                | 258 | 302 |  test 'DBI::Custom::SQL::Template update tag';
 | 
              
              
                | 259 | 303 |  $dbi->do("delete from table1");
 | 
              
              
                | ... | ... | @@ -282,18 +326,24 @@ $rows = $result->fetch_all_hash; | 
              
              
                | 282 | 326 |  is_deeply($rows, [{key1 => 3, key2 => 3, key3 => 3, key4 => 3, key5 => 5},
 | 
              
              
                | 283 | 327 |                    {key1 => 6, key2 => 7, key3 => 8, key4 => 9, key5 => 10}], "$test : with table name");
 | 
              
              
                | 284 | 328 |  
 | 
              
              
                | 285 |  | -$dbi->execute($update_tmpl, {'#update' => {table1 => {key1 => 4, key2 => 4, key3 => 4, key4 => 4}}, table1 => {key5 => 5}});
 | 
              
              
                |  | 329 | +$update_tmpl = 'update table1 {update table1.key1 table1.key2 table1.key3 table1.key4} where {= table1.key5}';
 | 
              
              
                |  | 330 | +$dbi->execute($update_tmpl, {'table1.key1' => 4, 'table1.key2' => 4, 'table1.key3' => 4, 'table1.key4' => 4, 'table1.key5' => 5});
 | 
              
              
                | 286 | 331 |  $result = $dbi->execute($SELECT_TMPL->{0});
 | 
              
              
                | 287 | 332 |  $rows = $result->fetch_all_hash;
 | 
              
              
                | 288 | 333 |  is_deeply($rows, [{key1 => 4, key2 => 4, key3 => 4, key4 => 4, key5 => 5},
 | 
              
              
                | 289 |  | -                  {key1 => 6, key2 => 7, key3 => 8, key4 => 9, key5 => 10}], "$test update tag #update with table name");
 | 
              
              
                | 290 |  | -
 | 
              
              
                | 291 |  | -
 | 
              
              
                | 292 |  | -__END__
 | 
              
              
                |  | 334 | +                  {key1 => 6, key2 => 7, key3 => 8, key4 => 9, key5 => 10}], "$test : with table name dot");
 | 
              
              
                | 293 | 335 |  
 | 
              
              
                |  | 336 | +$dbi->execute($update_tmpl, {'#update' => {table1 => {key1 => 5, key2 => 5, key3 => 5, key4 => 5}}, table1 => {key5 => 5}});
 | 
              
              
                |  | 337 | +$result = $dbi->execute($SELECT_TMPL->{0});
 | 
              
              
                |  | 338 | +$rows = $result->fetch_all_hash;
 | 
              
              
                |  | 339 | +is_deeply($rows, [{key1 => 5, key2 => 5, key3 => 5, key4 => 5, key5 => 5},
 | 
              
              
                |  | 340 | +                  {key1 => 6, key2 => 7, key3 => 8, key4 => 9, key5 => 10}], "$test update tag #update with table name");
 | 
              
              
                | 294 | 341 |  
 | 
              
              
                |  | 342 | +$dbi->execute($update_tmpl, {'#update' => {'table1.key1' => 6, 'table1.key2' => 6, 'table1.key3' => 6, 'table1.key4' => 6}, 'table1.key5' => 5});
 | 
              
              
                |  | 343 | +$result = $dbi->execute($SELECT_TMPL->{0});
 | 
              
              
                |  | 344 | +$rows = $result->fetch_all_hash;
 | 
              
              
                |  | 345 | +is_deeply($rows, [{key1 => 6, key2 => 6, key3 => 6, key4 => 6, key5 => 5},
 | 
              
              
                |  | 346 | +                  {key1 => 6, key2 => 7, key3 => 8, key4 => 9, key5 => 10}], "$test update tag #update with table name dot");
 | 
              
              
                | 295 | 347 |  
 | 
              
              
                | 296 |  | -$dbi->disconnnect;
 | 
              
              
                | 297 | 348 |  
 | 
              
              
                | 298 |  | -# Tag 'in' is easy to wrong
 | 
              
              
                | 299 | 349 |  
 |