# File lib/will_paginate/data_mapper.rb, line 49
      def total_entries
        @total_entries ||= begin
          if loaded? and @array.size < per_page and (current_page == 1 or @array.size > 0)
            offset + @array.size
          else
            # :reload prevents Collection.filter from being run, which
            # would cause a stack overflow
            clean_query = query.merge(:reload => true)
            # seems like the only way
            clean_query.instance_variable_set('@limit', nil)
            clean_query.instance_variable_set('@offset', 0)
            new_collection(clean_query).count
          end
        end
      end