@Override
    public RecordCursor cursor()
    {
        return new TpcdsRecordCursor(results.iterator(), columns);
    }
@Test
    public void testCursor()
    {
        Table table = getTable(CALL_CENTER.getName());
        Results result = constructResults(table, session);
        RecordSet recordSet = new TpcdsRecordSet(result, ImmutableList.copyOf(table.getColumns()));

        try (RecordCursor cursor = recordSet.cursor()) {
            if (cursor.advanceNextPosition()) {
                // Date
                assertFalse(cursor.isNull(CC_REC_START_DATE.ordinal()));
                assertEquals(cursor.getLong(CC_REC_START_DATE.ordinal()), 10227);
                assertTrue(cursor.isNull(CC_REC_END_DATE.ordinal()));

                // Big Int
                assertFalse(cursor.isNull(CC_CALL_CENTER_SK.ordinal()));
                assertEquals(cursor.getLong(CC_CALL_CENTER_SK.ordinal()), 1);

                // Integer
                assertFalse(cursor.isNull(CC_SQ_FT.ordinal()));
                assertEquals(cursor.getLong(CC_SQ_FT.ordinal()), 1138);

                // Varchar
                assertFalse(cursor.isNull(CC_MANAGER.ordinal()));
                assertEquals(cursor.getSlice(CC_MANAGER.ordinal()).toStringUtf8(), "Bob Belcher");

                // Character
                assertFalse(cursor.isNull(CC_STATE.ordinal()));
                assertEquals(cursor.getSlice(CC_STATE.ordinal()).toStringUtf8(), "TN");

                // Decimal
                assertFalse(cursor.isNull(CC_TAX_PERCENTAGE.ordinal()));
                assertEquals(cursor.getDouble(CC_TAX_PERCENTAGE.ordinal()), .11);
            }
        }
    }