如何在DBIx :: Class中使用SQL :: Abstract的特殊运算符?

时间:2014-05-29 05:48:27

标签: perl sqlite dbix-class

我正试图在SQL::Abstract内找到一种方法special operatorsDBIx::Class

我的目标是能够使用sqlite的MATCH运算符进行全文搜索,以便我可以做到

$d->search({ textcontent => { -match => "sqlite" }})

生成如下查询:

SELECT * FROM mail WHERE textcontent MATCH 'sqlite';

我想我可以用SQL::Abstract弄清楚如何做到这一点,但我找不到如何摆弄DBIx::Class内的sql生成器。我想这会在DBIx::Class::SQLMaker里面,虽然我不知道如何为子类化整个事件来访问该保存。

1 个答案:

答案 0 :(得分:1)

这似乎没有记录,但您可以放在DBIC connect_info上的"extra attributes"之一(即connect的参数)是sql_maker_options。所以你可以通过调用例如

来试试这个
$schema->connect($dsn, $username, $password, undef,
    {
        sql_maker_options => {
            special_ops => {
                 ...
            }
        }
    }
);

SQLMaker是SQL::Abstract的子类,除非另有说明(并且它没有),否则应接受相同的选项。