Dave RolskyのSQL生成モジュール、Feyを使ってみた。コードはこんな感じ。
本来はFey::SchemaとかをFey::Loaderで自動生成して云々、ということになるんだろうが、まぁだいたいこういう事らしい。明らかにこれはSQL生成自体を自動化するために使うような感じだね。RTやTracがもしその機能を書き換える事があるならそういうシステムのカスタムクエリーとか、こういうの使うといいんじゃない、って感じ。
use strict;
use DBI;
use Fey::Placeholder;
use Fey::SQL;
use Fey::Schema;
use Fey::Table;
my $dbh = DBI->connect('dbi:mysql:dbname=mq', 'root', undef);
my $schema = Fey::Schema->new(name => 'Q4M');
my $table = Fey::Table->new(name => 'mq');
$table->add_column( Fey::Column->new( name => $_, type => 'text' ) ) for qw(a b
c);
$schema->add_table($table);
my $sql = Fey::SQL->new_select;
$sql->select( $table->column('a') );
$sql->from( $table );
$sql->where($table->column('b'), '=', Fey::Placeholder->new());
print $sql->sql($dbh), "\n";
本来はFey::SchemaとかをFey::Loaderで自動生成して云々、ということになるんだろうが、まぁだいたいこういう事らしい。明らかにこれはSQL生成自体を自動化するために使うような感じだね。RTやTracがもしその機能を書き換える事があるならそういうシステムのカスタムクエリーとか、こういうの使うといいんじゃない、って感じ。