diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2012-09-24 10:15:50 +0000 |
---|---|---|
committer | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-09-26 13:46:46 +0000 |
commit | 485b97be9f2f2abf5a40923b5fd85f75714a8c02 (patch) | |
tree | ca05cb0ecf3828d909a898c3e5805804a0aff5f8 /t/rt_25460_numeric_aggregate.t | |
download | perl-dbd-sqlite-tarball-master.tar.gz |
Imported from /srv/lorry/lorry-area/perl-dbd-sqlite-tarball/DBD-SQLite-1.38_01.tar.gz.HEADDBD-SQLite-1.38_01masterbaserock/morph
Diffstat (limited to 't/rt_25460_numeric_aggregate.t')
-rw-r--r-- | t/rt_25460_numeric_aggregate.t | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/t/rt_25460_numeric_aggregate.t b/t/rt_25460_numeric_aggregate.t new file mode 100644 index 0000000..683845b --- /dev/null +++ b/t/rt_25460_numeric_aggregate.t @@ -0,0 +1,62 @@ +#!/usr/bin/perl + +use strict; +BEGIN { + $| = 1; + $^W = 1; +} + +use t::lib::Test; +use Test::More tests => 14; +use Test::NoWarnings; + +# Create the table +my $dbh = connect_ok(); +ok( $dbh->do(<<'END_SQL'), 'CREATE TABLE' ); +create table foo ( + id integer primary key not null, + mygroup varchar(255) not null, + mynumber numeric(20,3) not null +) +END_SQL + +# Fill the table +my @data = qw{ + a -2 + a 1 + b 2 + b 1 + c 3 + c -1 + d 4 + d 5 + e 6 + e 7 +}; +$dbh->begin_work; +while ( @data ) { + ok $dbh->do( + 'insert into foo ( mygroup, mynumber ) values ( ?, ? )', {}, + shift(@data), shift(@data), + ); +} +$dbh->commit; + +# Issue the group/sum/sort/limit query +my $rv = $dbh->selectall_arrayref(<<'END_SQL'); +select mygroup, sum(mynumber) as total +from foo +group by mygroup +order by total +limit 3 +END_SQL + +is_deeply( + $rv, + [ + [ 'a', -1 ], + [ 'c', 2 ], + [ 'b', 3 ], + ], + 'group/sum/sort/limit query ok' +); |