presto-accumulo/src/main/java/io/prestosql/plugin/accumulo/io/AccumuloRecordSet.java/AccumuloRecordSet/AccumuloRecordSet
class AccumuloRecordSet:    public AccumuloRecordSet(
            Connector connector,
            ConnectorSession session,
            AccumuloSplit split,
            String username,
            AccumuloTableHandle table,
            List<AccumuloColumnHandle> columnHandles)
    {
        requireNonNull(session, "session is null");
        requireNonNull(split, "split is null");
        requireNonNull(username, "username is null");
        requireNonNull(table, "table is null");

        rowIdName = table.getRowId();

        serializer = table.getSerializerInstance();

        // Save off the column handles and createa list of the Accumulo types
        this.columnHandles = requireNonNull(columnHandles, "column handles is null");
        ImmutableList.Builder<Type> types = ImmutableList.builder();
        for (AccumuloColumnHandle column : columnHandles) {
            types.add(column.getType());
        }
        this.columnTypes = types.build();

        try {
            // Create the BatchScanner and set the ranges from the split
            scanner = connector.createBatchScanner(table.getFullTableName(), getScanAuthorizations(session, table, connector, username), 10);
            scanner.setRanges(split.getRanges());
        }
        catch (Exception e) {
            throw new PrestoException(UNEXPECTED_ACCUMULO_ERROR, format("Failed to create batch scanner for table %s", table.getFullTableName()), e);
        }
    }