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;
12 __PACKAGE__->mk_classdata('_sql_statements',
15 sub { "SELECT ".join(', ', @$_[COLS])." FROM $_[FROM] WHERE $_[COND]"; },
17 sub { "UPDATE $_[FROM] SET ".join(', ', map { "$_ = ?" } @$_[COLS]).
20 sub { "INSERT INTO $_[FROM] (".join(', ', @$_[COLS]).") VALUES (".
21 join(', ', map { '?' } @$_[COLS]).")"; },
23 sub { "DELETE FROM $_[FROM] WHERE $_[COND]"; },
27 my ($class, $name, $cols, $from, $cond) = @_;
28 return $class->_sql_statements->{$name}->($cols, $from, $cond);
32 my ($class, $sql) = @_;
33 return $class->_get_dbh->prepare($sql);
38 return $class->_sql_to_sth($class->_get_sql(@_));