X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=scpubgit%2FQ-Branch.git;a=blobdiff_plain;f=lib%2FSQL%2FAbstract%2FPlugin%2FBangOverrides.pm;h=3f31f6e7473eed3395b66efc9ebacfd59d3aa61b;hp=9ef6a614abb3a7e0a1610c270cec10b147f79810;hb=HEAD;hpb=b10168404805faba08bbc67249e7f297102a1cc0 diff --git a/lib/SQL/Abstract/Plugin/BangOverrides.pm b/lib/SQL/Abstract/Plugin/BangOverrides.pm index 9ef6a61..3f31f6e 100644 --- a/lib/SQL/Abstract/Plugin/BangOverrides.pm +++ b/lib/SQL/Abstract/Plugin/BangOverrides.pm @@ -55,14 +55,18 @@ of '!name' is encountered, if its value is a coderef, it's called with the original value of the 'name' clause and expected to return a replacement, and if not, it's simply used as a direct replacement. -So, given appropriate DBIC setup: +This allows for passing data through existing systems that attempt to have +their own handling for thing but whose capabilities are now superceded by +L, and is primarily useful to provide access to experimental +feature bundles such as L. + +As an example of such a thing, given an appropriate DBIC setup +(see C): $s->storage->sqlmaker->plugin('+ExtraClauses')->plugin('+BangOverrides'); my $rs2 = $s->resultset('Foo')->search({ -op => [ '=', { -ident => 'outer.y' }, { -ident => 'me.x' } ] - }, { - with_recursive => [ outer => $rs->get_column('x')->as_query ], }); # (SELECT me.x, me.y, me.z FROM foo me WHERE ( outer.y = me.x ))