@VisibleForTesting
  void createOQLIndexOnPartitionedRegion(InternalRegionArguments internalRegionArgs,
      boolean isOverflowToDisk, Set<Index> indexes, Set<Index> prIndexes, IndexCreationData icd)
      throws IndexNameConflictException, IndexExistsException {
    if (indexManager == null) {
      setIndexManager(IndexUtils.getIndexManager(cache, this, true));
    }
    ExecutionContext externalContext = new ExecutionContext(null, cache);
    if (internalRegionArgs.getPartitionedRegion() != null) {
      externalContext.setBucketRegion(internalRegionArgs.getPartitionedRegion(),
          (BucketRegion) this);
    }
    if (logger.isDebugEnabled()) {
      logger.debug("IndexManager Index creation process for {}", icd.getIndexName());
    }

    // load entries during initialization only for non overflow regions
    indexes.add(indexManager.createIndex(icd.getIndexName(), icd.getIndexType(),
        icd.getIndexExpression(), icd.getIndexFromClause(), icd.getIndexImportString(),
        externalContext, icd.getPartitionedIndex(), !isOverflowToDisk));
    prIndexes.add(icd.getPartitionedIndex());
  }
Do any extra initialization required. Region is already visible in parent's subregion map. This
method releases the initialization Latches, so subclasses should call this super method last
after performing additional initialization.

@param imageTarget ignored, used by subclass for get initial image
@see DistributedRegion#initialize(InputStream, InternalDistributedMember,
     InternalRegionArguments)
geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java