diff --git a/src/metabase/driver/query_processor.clj b/src/metabase/driver/query_processor.clj index dfb2b2a01846dd0638a96d8ee6f30429fc962cc5..ed3735796b7914622065790159894c59c66471b3 100644 --- a/src/metabase/driver/query_processor.clj +++ b/src/metabase/driver/query_processor.clj @@ -313,10 +313,11 @@ ;; Look up the Foreign keys info if applicable. ;; Build a map of FK Field IDs -> Destination Field IDs field-id->dest-field-id (when (seq fk-field-ids) - (sel :many :field->field [ForeignKey :origin_id :destination_id], :origin_id [in fk-field-ids])) + (sel :many :field->field [ForeignKey :origin_id :destination_id], :origin_id [in fk-field-ids], :destination_id [not= nil])) ;; Build a map of Destination Field IDs -> Destination Fields - dest-field-id->field (when (seq fk-field-ids) + dest-field-id->field (when (and (seq fk-field-ids) + (seq (vals field-id->dest-field-id))) (sel :many :id->fields [Field :id :name :table_id :description :base_type :special_type], :id [in (vals field-id->dest-field-id)]))] ;; Add the :extra_info + :target to every Field. For non-FK Fields, these are just {} and nil, respectively.