@Override public String getJobResultsTable() { loadIfNecessary(); return dataLoader.getJobResultsTable(); }
@Override public void loadIfNecessary() { dataLoader.waitForCompletion(); }
@Override public JobDataFragment truncate(int maxRows) { loadIfNecessary(); synchronized (dataObjectsToRelease) { checkNotClosed(); final JobDataFragmentImpl dataFragment = new JobDataFragmentImpl(dataLoader.load(0, maxRows), 0, jobId); dataObjectsToRelease.add(dataFragment); return dataFragment; } }
@Override public JobDataFragment range(int offset, int limit) { loadIfNecessary(); synchronized (dataObjectsToRelease) { checkNotClosed(); final JobDataFragmentImpl dataFragment = new JobDataFragmentImpl(dataLoader.load(offset, limit), offset, jobId); dataObjectsToRelease.add(dataFragment); return dataFragment; } }
@Test public void testDataTrunc() throws Exception { Pair<? extends ValueVector, ResultVerifier> varChar1 = testVarCharVector(0, 0); Pair<? extends ValueVector, ResultVerifier> varChar2 = testVarCharVector(5, 5); Pair<? extends ValueVector, ResultVerifier> varChar3 = testVarCharVector(10, 10); Pair<? extends ValueVector, ResultVerifier> date1 = testDateMilliVector(0, 0); Pair<? extends ValueVector, ResultVerifier> date2 = testDateMilliVector(5, 5); Pair<? extends ValueVector, ResultVerifier> date3 = testDateMilliVector(10, 10); RecordBatchData batch1 = createRecordBatch(varChar1.getKey(), date1.getKey()); RecordBatchData batch2 = createRecordBatch(varChar2.getKey(), date2.getKey()); RecordBatchData batch3 = createRecordBatch(varChar3.getKey(), date3.getKey()); JobLoader jobLoader = mock(JobLoader.class); when(jobLoader.load(anyInt(), anyInt())).thenReturn( new RecordBatches(asList( newRecordBatchHolder(batch1, 0, 5), newRecordBatchHolder(batch2, 0, 5), newRecordBatchHolder(batch3, 0, 5) )) ); try (JobData dataInput = new JobDataWrapper(new JobDataImpl(jobLoader, TEST_JOB_ID))) { JobDataFragment truncDataInput = dataInput.truncate(10); DataPOJO dataOutput = OBJECT_MAPPER.readValue(OBJECT_MAPPER.writeValueAsString(truncDataInput), DataPOJO.class); assertEquals(truncDataInput.getColumns().toString(), dataOutput.getColumns().toString()); assertEquals(truncDataInput.getReturnedRowCount(), dataOutput.getReturnedRowCount()); varChar1.getValue().verify(dataOutput); varChar2.getValue().verify(dataOutput); date1.getValue().verify(dataOutput); date2.getValue().verify(dataOutput); } }
@Test public void testDataRange() throws Exception { Pair<? extends ValueVector, ResultVerifier> varChar1 = testVarCharVector(0, 0); Pair<? extends ValueVector, ResultVerifier> varChar2 = testVarCharVector(0, 5); Pair<? extends ValueVector, ResultVerifier> varChar3 = testVarCharVector(5, 10); Pair<? extends ValueVector, ResultVerifier> date1 = testDateMilliVector(0, 0); Pair<? extends ValueVector, ResultVerifier> date2 = testDateMilliVector(0, 5); Pair<? extends ValueVector, ResultVerifier> date3 = testDateMilliVector(5, 10); RecordBatchData batch1 = createRecordBatch(varChar1.getKey(), date1.getKey()); RecordBatchData batch2 = createRecordBatch(varChar2.getKey(), date2.getKey()); RecordBatchData batch3 = createRecordBatch(varChar3.getKey(), date3.getKey()); JobLoader jobLoader = mock(JobLoader.class); when(jobLoader.load(anyInt(), anyInt())).thenReturn( new RecordBatches(asList( newRecordBatchHolder(batch1, 0, 5), newRecordBatchHolder(batch2, 0, 5), newRecordBatchHolder(batch3, 0, 5) )) ); try (JobData dataInput = new JobDataWrapper(new JobDataImpl(jobLoader, TEST_JOB_ID))) { JobDataFragment rangeDataInput = dataInput.range(5, 10); DataPOJO dataOutput = OBJECT_MAPPER.readValue(OBJECT_MAPPER.writeValueAsString(rangeDataInput), DataPOJO.class); assertEquals(rangeDataInput.getColumns().toString(), dataOutput.getColumns().toString()); assertEquals(rangeDataInput.getReturnedRowCount(), dataOutput.getReturnedRowCount()); varChar2.getValue().verify(dataOutput); varChar3.getValue().verify(dataOutput); date2.getValue().verify(dataOutput); date3.getValue().verify(dataOutput); } }
when(jobLoader.load(anyInt(), anyInt())).thenReturn( new RecordBatches(asList( newRecordBatchHolder(data1, 2, 5),