docs: def ReadAllFlowObjects(self,
                           client_id = None,
                           min_create_time = None,
                           max_create_time = None,
                           include_child_flows = True,
                           cursor=None):
      """Returns all flow objects."""
      conditions = []
      args = []
  
      if client_id is not None:
        conditions.append("client_id = %s")
        args.append(db_utils.ClientIDToInt(client_id))
  
      if min_create_time is not None:
        conditions.append("timestamp >= FROM_UNIXTIME(%s)")
        args.append(mysql_utils.RDFDatetimeToTimestamp(min_create_time))
  
      if max_create_time is not None:
        conditions.append("timestamp <= FROM_UNIXTIME(%s)")
        args.append(mysql_utils.RDFDatetimeToTimestamp(max_create_time))
  
      if not include_child_flows:
        conditions.append("parent_flow_id IS NULL")
  
      query = "SELECT {} FROM flows".format(self.FLOW_DB_FIELDS)
      if conditions:
        query += " WHERE " + " AND ".join(conditions)
  
      cursor.execute(query, args)
      return [self._FlowObjectFromRow(row) for row in cursor.fetchall()]