@Override
  public FetchContext planFetchForProcessing(IndexSegment indexSegment, QueryContext queryContext) {
    return new FetchContext(UUID.randomUUID(), indexSegment.getSegmentName(), getColumns(indexSegment, queryContext));
  }
@Test
  public void testPlanFetchForProcessing() {
    DefaultFetchPlanner planner = new DefaultFetchPlanner();
    IndexSegment indexSegment = mock(IndexSegment.class);
    when(indexSegment.getSegmentName()).thenReturn("s0");
    when(indexSegment.getColumnNames()).thenReturn(ImmutableSet.of("c0", "c1", "c2"));
    String query = "SELECT COUNT(*) FROM testTable WHERE c0 = 0 OR (c1 < 10 AND c2 IN (1, 2))";
    QueryContext queryContext = QueryContextConverterUtils.getQueryContext(query);
    FetchContext fetchContext = planner.planFetchForProcessing(indexSegment, queryContext);
    assertEquals(fetchContext.getSegmentName(), "s0");
    Map<String, List<IndexType<?, ?, ?>>> columns = fetchContext.getColumnToIndexList();
    assertEquals(columns.size(), 3);
    // null means to get all index types created for the column.
    assertNull(columns.get("c0"));
    assertNull(columns.get("c1"));
    assertNull(columns.get("c2"));
  }