1 package DBIx::Class::SQLMaker::Converter::Oracle;
3 use Data::Query::ExprHelpers;
7 extends 'DBIx::Class::SQLMaker::Converter';
9 around _where_hashpair_to_dq => sub {
10 my ($orig, $self) = (shift, shift);
11 my ($k, $v, $logic) = @_;
12 if (ref($v) eq 'HASH' and (keys %$v == 1) and lc((keys %$v)[0]) eq '-prior') {
13 my $rhs = $self->_expr_to_dq((values %$v)[0]);
14 return $self->_op_to_dq(
15 $self->{cmp}, $self->_ident_to_dq($k), $self->_op_to_dq(PRIOR => $rhs)
18 return $self->$orig(@_);
22 around _apply_to_dq => sub {
23 my ($orig, $self) = (shift, shift);
26 return $self->_op_to_dq(PRIOR => $self->_expr_to_dq($v));
28 return $self->$orig(@_);
32 around _insert_to_dq => sub {
33 my ($orig, $self) = (shift, shift);
34 my (undef, undef, $options) = @_;
35 my $dq = $self->$orig(@_);
36 my $ret_count = @{$dq->{returning}};
37 @{$options->{returning_container}} = (undef) x $ret_count;
40 my $r_dq = $dq->{returning}[$_];
43 local $SQL::Abstract::Converter::Cur_Col_Meta = (
45 ? join('.', @{$r_dq->{elements}})
46 : ((is_Literal($r_dq) and !ref($r_dq->{literal})
47 and $r_dq->{literal} =~ /^\w+$/)
51 $self->_value_to_dq(\($options->{returning_container}[$_]));
54 +{ %$dq, 'Data::Query::Renderer::SQL::Dialect::ReturnInto.into' => $into };