Hatena::ブログ(Diary)

さげはちろぐ このページをアンテナに追加 RSSフィード

2009-10-16

PostgreSQL・BYTEA型・DBI…に嵌る⇒はいはい勘違い…だね

Qudoでハッシュ値を渡そうと思ったら、JSONなりなんなりにシリアライズして渡すのが手っ取り早い。

というか、他に方法あるのかな?

何はともあれ勘違い。反省。

でも、DBIx::SkinnyのPostgreSQL-BYTEA型については、一応間違ってはいないっぽいっす。

超ニーズ少ないと思いますが。

相変わらずのQudoをPostgreSQLで何とか使ってやろうと四苦八苦中ですが、例えばMySQLで簡単に

use Qudo;
my $client = Qudo->new(
    driver_class => 'DBI',
    database => +{
        dsn => 'dbi:mysql:qudo',
        username => 'test',
        password => 'test',
        },
);
$client->enqueue("Worker::Test", { arg => {target => 1}, uniqkey => 'aaa');

みたいに、enqueueするときのargにはすんなりHashが入れられるのですが、これがPostgreSQLだと駄目。

で、色々調べてみると、DBD::Pgの中には

NOTE: The undocumented (and invalid) support for the SQL_BINARY data type is officially deprecated. Use PG_BYTEA with bind_param() instead:

  $rv = $sth->bind_param($param_num, $bind_value,
                         { pg_type => PG_BYTEA });

なんて、execute(@bind)とかじゃなくて、ちゃんとbind_param()でひとつずつ見て、BYTEA型の場合は型を指名してあげないといけないっぽい…。

この辺は、どうやらDBIx::Skinnyでも対応していない模様です。

DBICは既に対応しているみたいなのですが・・・その辺を追うのなんて私には無理!

0.07999_02 2007-01-25 20:11:00

  • add support for binding BYTEA and similar parameters (w/Pg impl)

PostgreSQL対応の道は遠そうだ…。

という所で、本日はお開き。あー眠い眠い。