dataStore.setExposePrimaryKeyColumns(exposePk);
void doTestSpatialJoin(boolean exposePrimaryKeys) throws Exception { dataStore.setExposePrimaryKeyColumns(exposePrimaryKeys); FilterFactory2 ff = (FilterFactory2) dataStore.getFilterFactory(); Query q = new Query(tname("ft1"));
void doTestSimpleJoinWithFilterCount(boolean exposePrimaryKeys) throws Exception { dataStore.setExposePrimaryKeyColumns(exposePrimaryKeys); FilterFactory ff = dataStore.getFilterFactory(); Query q = new Query(tname("ft1")); Join j = new Join( tname("ftjoin"), ff.equal( ff.property(aname("stringProperty")), ff.property(aname("name")), true)); j.filter(ff.greater(ff.property(aname("join1intProperty")), ff.literal(1))); q.getJoins().add(j); q.setFilter(ff.less(ff.property(aname("intProperty")), ff.literal(3))); assertEquals(1, dataStore.getFeatureSource(tname("ft1")).getCount(q)); }
void doTestSimpleJoinWithFilter(boolean exposePrimaryKeys) throws Exception { dataStore.setExposePrimaryKeyColumns(exposePrimaryKeys); FilterFactory ff = dataStore.getFilterFactory(); Query q = new Query(tname("ft1")); q.getJoins() .add( new Join( tname("ftjoin"), ff.equal( ff.property(aname("stringProperty")), ff.property(aname("name")), true))); q.setFilter(ff.equal(ff.property(aname("stringProperty")), ff.literal("two"), true)); SimpleFeatureCollection features = dataStore.getFeatureSource(tname("ft1")).getFeatures(q); assertEquals(1, features.size()); try (SimpleFeatureIterator it = features.features()) { SimpleFeature f = it.next(); assertEquals(5 + (exposePrimaryKeys ? 1 : 0), f.getAttributeCount()); assertEquals(2, ((Number) f.getAttribute(aname("intProperty"))).intValue()); assertEquals("two", f.getAttribute(aname("stringProperty"))); SimpleFeature g = (SimpleFeature) f.getAttribute(aname("ftjoin")); assertEquals(3 + (exposePrimaryKeys ? 1 : 0), g.getAttributeCount()); if (exposePrimaryKeys) { assertEquals(2, ((Number) g.getAttribute(aname("id"))).intValue()); } assertEquals("two", g.getAttribute(aname("name"))); } }
void doTestOuterJoin(boolean exposePrimaryKeys) throws Exception { dataStore.setExposePrimaryKeyColumns(exposePrimaryKeys); FilterFactory ff = dataStore.getFilterFactory(); Query q = new Query(tname("ftjoin")); q.getJoins() .add( new Join( tname("ft1"), ff.equal( ff.property(aname("name")), ff.property(aname("stringProperty")), true)) .type(Type.OUTER)); SimpleFeatureCollection features = dataStore.getFeatureSource(tname("ftjoin")).getFeatures(q); assertEquals( dataStore.getFeatureSource(tname("ftjoin")).getFeatures(q).size(), features.size()); try (SimpleFeatureIterator it = features.features()) { while (it.hasNext()) { SimpleFeature f = it.next(); assertEquals(4 + (exposePrimaryKeys ? 1 : 0), f.getAttributeCount()); SimpleFeature g = (SimpleFeature) f.getAttribute(tname("ft1")); if ("three".equals(f.getAttribute(aname("name")))) { assertNull(g); } else { assertNotNull(g); } } } }
public void doTestSelfJoin(boolean exposePrimaryKeys) throws Exception { dataStore.setExposePrimaryKeyColumns(exposePrimaryKeys); FilterFactory ff = dataStore.getFilterFactory(); Query q = new Query(tname("ft1")); q.getJoins() .add( new Join( tname("ft1"), ff.equal( ff.property(aname("intProperty")), ff.property(aname("foo.intProperty")), true)) .alias(aname("foo"))); q.setFilter(ff.equal(ff.property(aname("stringProperty")), ff.literal("two"), true)); SimpleFeatureCollection features = dataStore.getFeatureSource(tname("ft1")).getFeatures(q); assertEquals(1, features.size()); try (SimpleFeatureIterator it = features.features()) { assertTrue(it.hasNext()); SimpleFeature f = it.next(); assertEquals(5 + (exposePrimaryKeys ? 1 : 0), f.getAttributeCount()); assertEquals(2, ((Number) f.getAttribute(aname("intProperty"))).intValue()); assertEquals("two", f.getAttribute(aname("stringProperty"))); SimpleFeature g = (SimpleFeature) f.getAttribute(aname("foo")); assertEquals(4 + (exposePrimaryKeys ? 1 : 0), g.getAttributeCount()); assertEquals(2, ((Number) g.getAttribute(aname("intProperty"))).intValue()); assertEquals("two", g.getAttribute(aname("stringProperty"))); } }
void doTestSimpleJoinWithFilterNoProperties(boolean exposePrimaryKeys) throws Exception { dataStore.setExposePrimaryKeyColumns(exposePrimaryKeys); FilterFactory ff = dataStore.getFilterFactory(); Query q = new Query(tname("ft1")); Join j = new Join( tname("ftjoin"), ff.equal( ff.property(aname("stringProperty")), ff.property(aname("name")), true)); j.setProperties(Query.NO_PROPERTIES); q.getJoins().add(j); q.setFilter(ff.equal(ff.property(aname("stringProperty")), ff.literal("two"), true)); SimpleFeatureCollection features = dataStore.getFeatureSource(tname("ft1")).getFeatures(q); assertEquals(1, features.size()); try (SimpleFeatureIterator it = features.features()) { SimpleFeature f = it.next(); assertEquals(5 + (exposePrimaryKeys ? 1 : 0), f.getAttributeCount()); assertEquals(2, ((Number) f.getAttribute(aname("intProperty"))).intValue()); assertEquals("two", f.getAttribute(aname("stringProperty"))); SimpleFeature g = (SimpleFeature) f.getAttribute(aname("ftjoin")); assertEquals(0, g.getAttributeCount()); } }
void doJoinMoreThanTwo(boolean exposePrimaryKeys) throws Exception { dataStore.setExposePrimaryKeyColumns(exposePrimaryKeys); FilterFactory ff = dataStore.getFilterFactory(); Query q = new Query(tname("ftjoin"));
void doTestSimpleJoinWithPostFilter(boolean exposePrimaryKeys) throws Exception { dataStore.setExposePrimaryKeyColumns(exposePrimaryKeys); FilterFactory ff = dataStore.getFilterFactory(); Filter j = ff.equal(ff.property(aname("stringProperty")), ff.property(aname("name")), true); Query q = new Query(tname("ft1")); q.getJoins().add(new Join(tname("ftjoin"), j)); q.setFilter( ff.equal( ff.function( "__equals", ff.property(aname("stringProperty")), ff.literal("one")), ff.literal(true), true)); SimpleFeatureCollection features = dataStore.getFeatureSource(tname("ft1")).getFeatures(q); assertEquals(1, features.size()); // test with post filter on table being joined q = new Query(tname("ft1")); Join join = new Join(tname("ftjoin"), j); join.filter( ff.equal( ff.function("__equals", ff.property(aname("name")), ff.literal("one")), ff.literal(true), true)); q.getJoins().add(join); features = dataStore.getFeatureSource(tname("ft1")).getFeatures(q); assertEquals(1, features.size()); }
void doTestSimpleJoinWithSort(boolean exposePrimaryKeys) throws Exception { dataStore.setExposePrimaryKeyColumns(exposePrimaryKeys); FilterFactory ff = dataStore.getFilterFactory(); Filter j = ff.equal(ff.property(aname("stringProperty")), ff.property(aname("name")), true); Query q = new Query(tname("ft1")); q.getJoins().add(new Join(tname("ftjoin"), j)); q.setSortBy(new SortBy[] {ff.sort(aname("intProperty"), SortOrder.DESCENDING)}); SimpleFeatureCollection features = dataStore.getFeatureSource(tname("ft1")).getFeatures(q); try (SimpleFeatureIterator it = features.features()) { assertTrue(it.hasNext()); assertEquals("two", it.next().getAttribute(aname("stringProperty"))); assertTrue(it.hasNext()); assertEquals("one", it.next().getAttribute(aname("stringProperty"))); assertTrue(it.hasNext()); assertEquals("zero", it.next().getAttribute(aname("stringProperty"))); } }
void doTestSimpleJoinWithPostFilterNoProperties(boolean exposePrimaryKeys) throws Exception { dataStore.setExposePrimaryKeyColumns(exposePrimaryKeys); FilterFactory ff = dataStore.getFilterFactory();
void doTestSimpleJoinWithLimitOffset(boolean exposePrimaryKeys) throws Exception { dataStore.setExposePrimaryKeyColumns(exposePrimaryKeys); FilterFactory ff = dataStore.getFilterFactory(); Filter j = ff.equal(ff.property(aname("stringProperty")), ff.property(aname("name")), true); Query q = new Query(tname("ft1")); q.getJoins().add(new Join(tname("ftjoin"), j)); q.setFilter(ff.greater(ff.property(aname("intProperty")), ff.literal(0))); q.setStartIndex(1); q.setSortBy(new SortBy[] {ff.sort(aname("intProperty"), SortOrder.ASCENDING)}); SimpleFeatureCollection features = dataStore.getFeatureSource(tname("ft1")).getFeatures(q); assertEquals(1, features.size()); try (SimpleFeatureIterator it = features.features()) { assertTrue(it.hasNext()); SimpleFeature f = it.next(); assertEquals("two", f.getAttribute(aname("stringProperty"))); SimpleFeature g = (SimpleFeature) f.getAttribute(aname("ftjoin")); assertEquals("two", g.getAttribute(aname("name"))); } }
void doTestSimpleJoin(boolean exposePrimaryKeys) throws Exception { dataStore.setExposePrimaryKeyColumns(exposePrimaryKeys); try (SimpleFeatureIterator ita = dataStore.getFeatureSource(tname("ft1")).getFeatures().features()) {
public void testSimpleJoinOnPrimaryKey() throws Exception { dataStore.setExposePrimaryKeyColumns(true);
void doTestSimpleJoinInvertedAliases(boolean exposePrimaryKeys) throws Exception { dataStore.setExposePrimaryKeyColumns(exposePrimaryKeys); try (SimpleFeatureIterator ita = dataStore.getFeatureSource(tname("ft1")).getFeatures().features();
dataStore.setExposePrimaryKeyColumns(exposePk);