code: function ImmutableCoreModelResult (args) {
      // original query instance
      this.query = args.query
      // if the view arg is set then apply views to records
      this.applyView = args.applyView === true ? true : false
      // get id column name
      var idColumn = this.query.model.defaultColumnsInverse.id
      // require id column
      assert(defined(idColumn), `${this.query.model.name} result error: id column required`)
      // get ids from raw result - array of arrays having id as element
      this.ids = _.map(args.results, row => row[idColumn])
      // set cached flag from results
      this._cached = args.results._cached
      // total number of records
      this.length = this.ids.length
      // number of rows to fetch at a time
      this.fetchNum = fetchNumDefault
      // number of rows fetched
      this.fetched = 0
      // flag indicating whether or not more rows can be fetched
      this.done = this.length > 0 ? false : true
      // list of records fetched for next
      this.records
  }
docs: @function ImmutableCoreModelResult
  
  create result set instance which is returned by query for multi-record queries
  that do not specify to return all results.
  
  @param {object} args
  @param {ImmutableCoreModelQuery} args.query
  @param {array} args.results
  
  @returns {Object}
  
  @throws {Error}