1 package DBIx::Class::SQL;
6 use base qw/Class::Data::Inheritable/;
8 use constant COLS => 0;
9 use constant FROM => 1;
10 use constant COND => 2;
14 DBIx::Class::SQL - SQL Specific methods for DBIx::Class
20 This class contains methods that generates SQL queries for
21 the rest of the L<DBIx::Class> hiarchy. It's also responsible
26 __PACKAGE__->mk_classdata('_sql_statements',
29 sub { "SELECT ".join(', ', @{$_[COLS]})." FROM $_[FROM] WHERE $_[COND]"; },
31 sub { "UPDATE $_[FROM] SET $_[COLS] WHERE $_[COND]"; },
33 sub { "INSERT INTO $_[FROM] (".join(', ', @{$_[COLS]}).") VALUES (".
34 join(', ', map { '?' } @{$_[COLS]}).")"; },
36 sub { "DELETE FROM $_[FROM] WHERE $_[COND]"; },
40 my ($class, $name, $cols, $from, $cond) = @_;
41 my $sql = $class->_sql_statements->{$name}->($cols, $from, $cond);
46 *_get_sql = \&create_sql;
52 Matt S. Trout <perl-stuff@trout.me.uk>
56 You may distribute this code under the same terms as Perl itself.