function checkExec(sampleDataCount, skip) {
  var rows = generateSampleRows(sampleDataCount);
  var tableName = 'dummyTable';
  var childStep = new lf.proc.NoOpStep([
    lf.proc.Relation.fromRows(rows, [tableName])]);

  var queryContext = new lf.query.SelectContext(schema);
  queryContext.skip = skip;
  var step = new lf.proc.SkipStep();
  step.addChild(childStep);

  return step.exec(undefined, queryContext).then(function(relations) {
    var relation = relations[0];
    var expectedResults = Math.max(sampleDataCount - skip, 0);
    assertEquals(expectedResults, relation.entries.length);
    if (expectedResults > 0) {
      // Check that the skipped results are not returned.
      for (var i = 0; i < expectedResults; i++) {
        assertEquals(
            'id' + String(skip + i),
            relation.entries[i].row.payload().id);
      }
    }
  });
}
Checks that the returned results do not include skipped rows.
@param {number} sampleDataCount The total number of rows available.
@param {number} skip The number of rows to be skipped.
@return {!IThenable}