diff --git a/modules/Bio/EnsEMBL/DBSQL/BaseFeatureAdaptor.pm b/modules/Bio/EnsEMBL/DBSQL/BaseFeatureAdaptor.pm index f2c83d419786848a4df547ebf98abf13877de6c2..ecbfb0729755405f745c9a7136141a6532abe463 100644 --- a/modules/Bio/EnsEMBL/DBSQL/BaseFeatureAdaptor.pm +++ b/modules/Bio/EnsEMBL/DBSQL/BaseFeatureAdaptor.pm @@ -468,10 +468,13 @@ sub _slice_fetch { if ( $slice_start > $slice_end ) { $constraint .= "${tab_syn}.seq_region_id = $sr_id " - . "AND ((${tab_syn}.seq_region_start >= $slice_start " - . "OR ${tab_syn}.seq_region_start <= $slice_end) " - . "OR (${tab_syn}.seq_region_end >= $slice_start " - . "OR ${tab_syn}.seq_region_end <= $slice_end))"; + . "AND ( ${tab_syn}.seq_region_start >= $slice_start " + . "OR ${tab_syn}.seq_region_start <= $slice_end " + . "OR ${tab_syn}.seq_region_end >= $slice_start " + . "OR ${tab_syn}.seq_region_end <= $slice_end " + . "OR ${tab_syn}.seq_region_start > ${tab_syn}.seq_region_end)"; + + } else { $constraint .= "${tab_syn}.seq_region_id = $sr_id "