...
|
...
|
@@ -3499,4 +3499,108 @@ $rows = [
|
3499
|
3499
|
);
|
3500
|
3500
|
}
|
3501
|
3501
|
|
|
3502
|
+test 'result';
|
|
3503
|
+$dbi = DBIx::Custom->connect(%memory);
|
|
3504
|
+$dbi->execute($create_table_default);
|
|
3505
|
+$dbi->insert({key1 => 1, key2 => 2}, table => 'table1');
|
|
3506
|
+$dbi->insert({key1 => 3, key2 => 4}, table => 'table1');
|
|
3507
|
+
|
|
3508
|
+$result = $dbi->select(table => 'table1');
|
|
3509
|
+@rows = ();
|
|
3510
|
+while (my $row = $result->fetch) {
|
|
3511
|
+ push @rows, [@$row];
|
|
3512
|
+}
|
|
3513
|
+is_deeply(\@rows, [[1, 2], [3, 4]]);
|
|
3514
|
+
|
|
3515
|
+$result = $dbi->select(table => 'table1');
|
|
3516
|
+@rows = ();
|
|
3517
|
+while (my $row = $result->fetch_hash) {
|
|
3518
|
+ push @rows, {%$row};
|
|
3519
|
+}
|
|
3520
|
+is_deeply(\@rows, [{key1 => 1, key2 => 2}, {key1 => 3, key2 => 4}]);
|
|
3521
|
+
|
|
3522
|
+$result = $dbi->select(table => 'table1');
|
|
3523
|
+$row = $result->fetch_first;
|
|
3524
|
+is_deeply($row, [1, 2], "row");
|
|
3525
|
+$row = $result->fetch;
|
|
3526
|
+ok(!$row, "finished");
|
|
3527
|
+
|
|
3528
|
+$result = $dbi->select(table => 'table1');
|
|
3529
|
+$row = $result->fetch_hash_first;
|
|
3530
|
+is_deeply($row, {key1 => 1, key2 => 2}, "row");
|
|
3531
|
+$row = $result->fetch_hash;
|
|
3532
|
+ok(!$row, "finished");
|
|
3533
|
+
|
|
3534
|
+$dbi->execute('create table table2 (key1, key2);');
|
|
3535
|
+$result = $dbi->select(table => 'table2');
|
|
3536
|
+$row = $result->fetch_hash_first;
|
|
3537
|
+ok(!$row, "no row fetch");
|
|
3538
|
+
|
|
3539
|
+$dbi = DBIx::Custom->connect(%memory);
|
|
3540
|
+$dbi->execute($create_table_default);
|
|
3541
|
+$dbi->insert({key1 => 1, key2 => 2}, table => 'table1');
|
|
3542
|
+$dbi->insert({key1 => 3, key2 => 4}, table => 'table1');
|
|
3543
|
+$dbi->insert({key1 => 5, key2 => 6}, table => 'table1');
|
|
3544
|
+$dbi->insert({key1 => 7, key2 => 8}, table => 'table1');
|
|
3545
|
+$dbi->insert({key1 => 9, key2 => 10}, table => 'table1');
|
|
3546
|
+$result = $dbi->select(table => 'table1');
|
|
3547
|
+$rows = $result->fetch_multi(2);
|
|
3548
|
+is_deeply($rows, [[1, 2],
|
|
3549
|
+ [3, 4]], "fetch_multi first");
|
|
3550
|
+$rows = $result->fetch_multi(2);
|
|
3551
|
+is_deeply($rows, [[5, 6],
|
|
3552
|
+ [7, 8]], "fetch_multi secound");
|
|
3553
|
+$rows = $result->fetch_multi(2);
|
|
3554
|
+is_deeply($rows, [[9, 10]], "fetch_multi third");
|
|
3555
|
+$rows = $result->fetch_multi(2);
|
|
3556
|
+ok(!$rows);
|
|
3557
|
+
|
|
3558
|
+$result = $dbi->select(table => 'table1');
|
|
3559
|
+eval {$result->fetch_multi};
|
|
3560
|
+like($@, qr/Row count must be specified/, "Not specified row count");
|
|
3561
|
+
|
|
3562
|
+$result = $dbi->select(table => 'table1');
|
|
3563
|
+$rows = $result->fetch_hash_multi(2);
|
|
3564
|
+is_deeply($rows, [{key1 => 1, key2 => 2},
|
|
3565
|
+ {key1 => 3, key2 => 4}], "fetch_multi first");
|
|
3566
|
+$rows = $result->fetch_hash_multi(2);
|
|
3567
|
+is_deeply($rows, [{key1 => 5, key2 => 6},
|
|
3568
|
+ {key1 => 7, key2 => 8}], "fetch_multi secound");
|
|
3569
|
+$rows = $result->fetch_hash_multi(2);
|
|
3570
|
+is_deeply($rows, [{key1 => 9, key2 => 10}], "fetch_multi third");
|
|
3571
|
+$rows = $result->fetch_hash_multi(2);
|
|
3572
|
+ok(!$rows);
|
|
3573
|
+
|
|
3574
|
+$result = $dbi->select(table => 'table1');
|
|
3575
|
+eval {$result->fetch_hash_multi};
|
|
3576
|
+like($@, qr/Row count must be specified/, "Not specified row count");
|
|
3577
|
+
|
|
3578
|
+$dbi = DBIx::Custom->connect(%memory);
|
|
3579
|
+$dbi->execute($create_table_default);
|
|
3580
|
+$dbi->insert({key1 => 1, key2 => 2}, table => 'table1');
|
|
3581
|
+$dbi->insert({key1 => 3, key2 => 4}, table => 'table1');
|
|
3582
|
+
|
|
3583
|
+test 'fetch_all';
|
|
3584
|
+$result = $dbi->select(table => 'table1');
|
|
3585
|
+$rows = $result->fetch_all;
|
|
3586
|
+is_deeply($rows, [[1, 2], [3, 4]]);
|
|
3587
|
+
|
|
3588
|
+test 'fetch_hash_all';
|
|
3589
|
+$result = $dbi->select(table => 'table1');
|
|
3590
|
+$rows = $result->fetch_hash_all;
|
|
3591
|
+is_deeply($rows, [{key1 => 1, key2 => 2}, {key1 => 3, key2 => 4}]);
|
|
3592
|
+
|
|
3593
|
+$result = $dbi->select(table => 'table1');
|
|
3594
|
+$result->dbi->filters({three_times => sub { $_[0] * 3}});
|
|
3595
|
+$result->filter({key1 => 'three_times'});
|
|
3596
|
+
|
|
3597
|
+$rows = $result->fetch_all;
|
|
3598
|
+is_deeply($rows, [[3, 2], [9, 4]], "array");
|
|
3599
|
+
|
|
3600
|
+$result = $dbi->select(table => 'table1');
|
|
3601
|
+$result->dbi->filters({three_times => sub { $_[0] * 3}});
|
|
3602
|
+$result->filter({key1 => 'three_times'});
|
|
3603
|
+$rows = $result->fetch_hash_all;
|
|
3604
|
+is_deeply($rows, [{key1 => 3, key2 => 2}, {key1 => 9, key2 => 4}], "hash");
|
|
3605
|
+
|
3502
|
3606
|
=cut
|