@Test
  public void testSingleFilterWithSingleEquijoinMultipleFiltersOnSameRegionOnSameIteratorMapping()
      throws Exception {
    createRegions();

    String[] queries = new String[] {
        "select * from " + SEPARATOR + "region1 c, " + SEPARATOR
            + "region2 s where c.pkid=1 and c.pkid = s.pkid and c.id = 1",
        "select * from " + SEPARATOR + "region1 c, " + SEPARATOR
            + "region2 s where c.id = 1 and c.pkid=1 and s.pkid = c.pkid",

    };

    for (int i = 0; i < 1000; i++) {
      region1.put(i, new Customer(i, i % 10));
      region2.put(i, new Customer(i, i));
    }

    executeQueriesWithIndexCombinations(queries, new DefaultIndexCreatorCallback(qs) {
      Index secondaryIndex;

      @Override
      public void createIndexForRegion1(int indexTypeId)
          throws RegionNotFoundException, IndexExistsException, IndexNameConflictException {
        secondaryIndex = qs.createIndex("region1 id", "p.id", SEPARATOR + "region1 p");
        super.createIndexForRegion1(indexTypeId);
      }

      @Override
      public void destroyIndexForRegion1(int indexTypeId) {
        qs.removeIndex(secondaryIndex);
        super.destroyIndexForRegion1(indexTypeId);
      }

    }, false /* want to compare actual results and not size only */);
  }
We do not want to test this with Primary Key on the many side or else only 1 result will be
returned
geode-core/src/integrationTest/java/org/apache/geode/cache/query/internal/index/EquiJoinIntegrationTest.java