X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSQLMaker%2FSQLA2Support.pm;fp=lib%2FDBIx%2FClass%2FSQLMaker%2FSQLA2Support.pm;h=c35bda942bb53cef35677d438e5070ff9970dfbd;hb=5d4463f6e61ba46ff9755d2104bd1e33a8924300;hp=0000000000000000000000000000000000000000;hpb=b73fb1b622b1a1d15916d32e2a4bf102987490e1;p=scpubgit%2FQ-Branch.git diff --git a/lib/DBIx/Class/SQLMaker/SQLA2Support.pm b/lib/DBIx/Class/SQLMaker/SQLA2Support.pm new file mode 100644 index 0000000..c35bda9 --- /dev/null +++ b/lib/DBIx/Class/SQLMaker/SQLA2Support.pm @@ -0,0 +1,26 @@ +package DBIx::Class::SQLMaker::SQLA2Support; + +use strict; +use warnings; +use if $] < '5.010', 'MRO::Compat'; +use mro 'c3'; +use base qw( + DBIx::Class::SQLMaker + SQL::Abstract::ExtraClauses +); + +sub select { + my $self = shift; + my ($sql, @bind) = $self->next::method(@_); + my (undef, undef, undef, $attrs) = @_; + if (my $with = delete $attrs->{with}) { + my ($wsql, @wbind) = @{ $self->render_statement({ + -select => { with => $with } + }) }; + unshift @bind, @wbind; + $sql = "${wsql} ${sql}"; + } + return wantarray ? ($sql, @bind) : $sql; +} + +1;