Browse Source

Fixed bug in chado aggregate join handler: now handles null values in the all field without collapsing the entire results to null. Uses a combination of coalesce to only return non-null results and cast to ensure all fields are strings

Lacey Sanderson 12 years ago
parent
commit
5eecd98053

+ 4 - 4
tripal_views/views/handlers/views_handler_join_chado_aggregator.inc

@@ -177,11 +177,11 @@ class views_handler_join_chado_aggregator extends views_join {
             else {
               $fields[] = 'array_agg(' . $table . '.' . $fname . ') as '. $alias . $fname;
             }
-            $composite_field_parts[] = "'" . $alias . $fname . "::' ||" . $table . '.' . $fname;
+            $composite_field_parts[] = "'" . $alias . $fname . "::' || COALESCE(CAST(" . $table . '.' . $fname . " as text), '')";
           }
           else {
             $fields[] = $fname;
-            $composite_field_parts[] = "'" . $alias . $fname . "::' ||" . $table . '.' . $fname;
+            $composite_field_parts[] = "'" . $alias . $fname . "::' || COALESCE(CAST(" . $table . '.' . $fname . " as text), '')";
           }
         }
       }
@@ -216,11 +216,11 @@ class views_handler_join_chado_aggregator extends views_join {
           else {
             $fields[] = 'array_agg(' . $table . '.' . $fname . ') as ' . $alias . $fname;
           }
-          $composite_field_parts[] = "'" . $alias . $fname . "::' ||" . $table . '.' . $fname;
+          $composite_field_parts[] = "'" . $alias . $fname . "::' || COALESCE(CAST(" . $table . '.' . $fname . " as text), '')";
         }
         else {
           $fields[] = $fname;
-          $composite_field_parts[] = "'" . $alias . $fname . "::' ||" . $table . '.' . $fname;
+          $composite_field_parts[] = "'" . $alias . $fname . "::' || COALESCE(CAST(" . $table . '.' . $fname . " as text), '')";
         }
       }