@Override public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> getResultHandleRuntime(IDataSink sink, int[] printColumns, IPrinterFactory[] printerFactories, RecordDescriptor inputDesc, boolean ordered, JobSpecification spec) throws AlgebricksException { ResultSetDataSink rsds = (ResultSetDataSink) sink; ResultSetSinkId rssId = rsds.getId(); ResultSetId rsId = rssId.getResultSetId(); ResultWriterOperatorDescriptor resultWriter = null; try { IResultSerializerFactory resultSerializedAppenderFactory = resultSerializerFactoryProvider .getAqlResultSerializerFactoryProvider(printColumns, printerFactories, getWriterFactory()); resultWriter = new ResultWriterOperatorDescriptor(spec, rsId, ordered, getResultAsyncMode(), resultSerializedAppenderFactory, getMaxResultReads()); } catch (IOException e) { throw new AlgebricksException(e); } return new Pair<>(resultWriter, null); }