First attempt at SQLA2Support
[scpubgit/Q-Branch.git] / lib / DBIx / Class / SQLMaker / SQLA2Support.pm
1 package DBIx::Class::SQLMaker::SQLA2Support;
2
3 use strict;
4 use warnings;
5 use if $] < '5.010', 'MRO::Compat';
6 use mro 'c3';
7 use base qw(
8   DBIx::Class::SQLMaker
9   SQL::Abstract::ExtraClauses
10 );
11
12 sub select {
13   my $self = shift;
14   my ($sql, @bind) = $self->next::method(@_);
15   my (undef, undef, undef, $attrs) = @_;
16   if (my $with = delete $attrs->{with}) {
17     my ($wsql, @wbind) = @{ $self->render_statement({
18       -select => { with => $with }
19     }) };
20     unshift @bind, @wbind;
21     $sql = "${wsql} ${sql}";
22   }
23   return wantarray ? ($sql, @bind) : $sql;
24 }
25
26 1;