clean up select-hackery code
Matt S Trout [Fri, 5 Apr 2019 18:48:37 +0000 (18:48 +0000)]
lib/SQL/Abstract/Clauses.pm

index 86b468f..a8e5848 100644 (file)
@@ -60,11 +60,13 @@ sub select {
   my ($self, @args) = @_;
   my %clauses;
   @clauses{qw(from select where order_by)} = @args;
+
   # This oddity is to literalify since historically SQLA doesn't quote
-  # a single identifier argument, and the .'' is to copy $clauses{select}
-  # before taking a reference to it to avoid making a reference loop
-  $clauses{select}= \(($clauses{select}||'*').'')
-    unless ref($clauses{select});
+  # a single identifier argument, so we convert it into a literal
+
+  unless (ref(my $select = $clauses{select}||'*')) {
+    $clauses{select} = \$select;
+  }
   my ($sql, @bind) = $self->render_expr({ -select => \%clauses });
   return wantarray ? ($sql, @bind) : $sql;
 }