code: def __get_activities(self, search):
          
  
          query = """
                     SELECT a.name AS name, b.name AS category
                       FROM activities a
                  LEFT JOIN categories b ON coalesce(b.id, -1) = a.category_id
                  LEFT JOIN facts f ON a.id = f.activity_id
                      WHERE deleted IS NULL
                        AND a.search_name LIKE ? ESCAPE '\\'
                   GROUP BY a.id
                   ORDER BY max(f.start_time) DESC, lower(a.name)
                      LIMIT 50
          """
          search = search.lower()
          search = search.replace('\\', '\\\\').replace('%', '\\%').replace('_', '\\_')
          activities = self.fetchall(query, ('%s%%' % search, ))
  
          return activities
docs: returns list of activities for autocomplete,
             activity names converted to lowercase