Add failing test
[dbsrgits/DBIx-Class-Fixtures.git] / t / lib / DBICTest / Schema3.pm
CommitLineData
19c6539b 1package Schema3::Result::Person;
2
3use strict;
4use warnings;
5
6use base 'DBIx::Class::Core';
7
8__PACKAGE__->table('person');
9
10__PACKAGE__->add_columns(
11 id => {
12 data_type => 'integer',
13 is_auto_increment => 1,
14 },
15 name => {
16 data_type => 'varchar',
17 size => 255,
18 },
19 weight => {
20 datatype => 'float',
21 },
22 height => {
23 datatype => 'float',
24 },
25);
26
27__PACKAGE__->set_primary_key('id');
28
29# Add virtual column
30__PACKAGE__->resultset_attributes({
31 '+select' => [ \'weight/height' ],
32 '+as' => [ 'weight_to_height_ratio' ],
33});
34
35package Schema3;
36
37use strict;
38use warnings;
39
40use base 'DBIx::Class::Schema';
41
42__PACKAGE__->register_class(Person => 'Schema3::Result::Person');
43
44sub load_sql {
45 local $/ = undef;
46 my $sql = <DATA>;
47}
48
49sub init_schema {
50 my $sql = (my $schema = shift)
51 ->load_sql;
52
53 ($schema->storage->dbh->do($_) ||
54 die "Error on SQL: $_\n")
55 for split(/;\n/, $sql);
56}
57
581;
59
60__DATA__
61CREATE TABLE person (
62 id INTEGER PRIMARY KEY NOT NULL,
63 name varchar(255) NOT NULL,
64 weight FLOAT NOT NULL,
65 height FLOAT NOT NULL
66);
67
68INSERT INTO person (name, weight, height)
69VALUES
70('Fred Flintstone', 220, 5.2),
71('Barney Rubble', 190, 4.8)