my @uniq = grep { !$seen{Data::Dumper::Concise::Dumper($_)}++ } @top;
+ return \$uniq[0] if @uniq == 1;
+
return \Operator({ 'SQL.Naive' => 'AND' }, \@uniq);
}
$sql_maker->{name_sep} = '';
}
- $sql_maker->clear_renderer;
- $sql_maker->clear_converter;
+ # delete local is 5.12+
+ local @{$sql_maker}{qw(renderer converter)};
+ delete @{$sql_maker}{qw(renderer converter)};
my ($lquote, $rquote, $sep) = map { quotemeta $_ } ($sql_maker->_quote_chars, $sql_maker->name_sep);
my $having_sql = $sql_maker->_render_sqla(where => $attrs->{having});
- $sql_maker->clear_renderer;
- $sql_maker->clear_converter;
-
my %seen_having;
# search for both a proper quoted qualified string, for a naive unquoted scalarref
if (! defined $self->{cond}) {
# just massage $data below
}
- elsif ($self->{cond} eq $DBIx::Class::ResultSource::UNRESOLVABLE_CONDITION) {
- %new_data = %{ $self->{attrs}{related_objects} || {} }; # nothing might have been inserted yet
- @cols_from_relations = keys %new_data;
- }
elsif (ref $self->{cond} eq 'HASH') {
# precedence must be given to passed values over values inherited from
# the cond, so the order here is important.
}
}
elsif (ref $self->{cond} eq 'REF' and ref ${$self->{cond}} eq 'HASH') {
- %new_data = %{$self->result_source
- ->_extract_fixed_values_for(${$self->{cond}}, $alias)};
+ if ((${$self->{cond}})->{'DBIx::Class::ResultSource.UNRESOLVABLE'}) {
+ %new_data = %{ $self->{attrs}{related_objects} || {} }; # nothing might have been inserted yet
+ @cols_from_relations = keys %new_data;
+ } else {
+ %new_data = %{$self->_remove_alias(
+ $self->result_source
+ ->_extract_fixed_values_for(${$self->{cond}}),
+ $alias
+ )};
+ }
}
else {
$self->throw_exception(