@Override public boolean isPostInsert() { return ds.getSQLDialect().lookupGeneratedValuesPostInsert() && ds.getSQLDialect() instanceof PreparedStatementSQLDialect; }
protected boolean isPostgisDialect() { String dialectClassName = getDataStore().getSQLDialect().getClass().getName(); if ("org.geotools.data.postgis.PostGISDialect".equals(dialectClassName) || "org.geotools.data.postgis.PostGISPSDialect".equals(dialectClassName)) { return true; } return false; }
@Override public boolean isPostInsert() { return ds.getSQLDialect().lookupGeneratedValuesPostInsert(); }
KeyFetcher(JDBCDataStore ds, PrimaryKeyColumn col) { this.col = col; StringBuffer colName = new StringBuffer(); ds.getSQLDialect().encodeColumnName(null, col.getName(), colName); this.colName = colName.toString(); }
@Override protected void addHints(Set<Key> hints) { // mark the features as detached, that is, the user can directly alter them // without altering the state of the datastore hints.add(Hints.FEATURE_DETACHED); getDataStore().getSQLDialect().addSupportedHints(hints); }
public static KeysFetcher create( JDBCDataStore ds, Connection cx, boolean useExisting, PrimaryKey key) throws SQLException, IOException { if (useExisting) { return new Existing(ds.getSQLDialect(), key); } else { return new FromDB(ds, cx, key); } }
@Override protected boolean canLimit() { return getDataStore().getSQLDialect().isLimitOffsetSupported(); }
@Override protected boolean canOffset() { return getDataStore().getSQLDialect().isLimitOffsetSupported(); }
@Override public boolean isOffsetSupported() { return source.getDataStore().getSQLDialect().isLimitOffsetSupported(); }
@Override public void addKeyBinding(StringBuffer sql) { if (isPostInsert()) { String sequenceName = ((SequencedPrimaryKeyColumn) col).getSequenceName(); sql.append(ds.getSQLDialect().encodeNextSequenceValue(null, sequenceName)); sql.append(","); } else { super.addKeyBinding(sql); } }
/** Helper method that encode a column name. */ private void encodeColumnName(StringBuffer sql, String tableName, String columnName) { JDBCDataStore dataStore = getDataStore(); SQLDialect dialect = dataStore.getSQLDialect(); String schema = dataStore.getDatabaseSchema(); if (schema != null) { dialect.encodeSchemaName(schema, sql); sql.append("."); } dialect.encodeColumnName(tableName, columnName, sql); }
@Override public Object getLastValue(Connection cx, Statement st) throws SQLException { return ds.getSQLDialect() .getLastAutoGeneratedValue( ds.getDatabaseSchema(), key.getTableName(), col.getName(), cx, st); }
@Override public Object getNext(Connection cx) throws IOException, SQLException { if (isPostInsert()) { return NOT_SET_BEFORE_INSERT; } else { String sequenceName = ((SequencedPrimaryKeyColumn) col).getSequenceName(); return ds.getSQLDialect() .getNextSequenceValue(ds.getDatabaseSchema(), sequenceName, cx); } } }
@Override public Object getNext(Connection cx) throws IOException, SQLException { if (isPostInsert()) { return NOT_SET_BEFORE_INSERT; } else { return ds.getSQLDialect() .getNextAutoGeneratedValue( ds.getDatabaseSchema(), key.getTableName(), col.getName(), cx); } }
/** * Craete the filter to sql converter * * @param ft * @return */ protected FilterToSQL createFilterToSQL(SimpleFeatureType ft) { if (getDataStore().getSQLDialect() instanceof PreparedStatementSQLDialect) { return getDataStore().createPreparedFilterToSQL(ft); } else { return getDataStore().createFilterToSQL(ft); } }
public void testMultipleGroupByWithMinWithLimitOffset() throws Exception { if (!dataStore.getSQLDialect().isLimitOffsetSupported()) { return; } List<Object[]> value = genericGroupByTestTest( queryWithLimits(0, 3), Aggregate.MIN, "building_type", "energy_type"); assertFalse(value.isEmpty()); assertTrue(value.size() <= 3); }
public void testMultipleGroupByWithCountWithLimitOffset() throws Exception { if (!dataStore.getSQLDialect().isLimitOffsetSupported()) { return; } List<Object[]> value = genericGroupByTestTest( queryWithLimits(0, 3), Aggregate.COUNT, "building_type", "energy_type"); assertFalse(value.isEmpty()); assertTrue(value.size() <= 3); }
public void testMultipleGroupByWithMaxWithLimitOffset() throws Exception { if (!dataStore.getSQLDialect().isLimitOffsetSupported()) { return; } List<Object[]> value = genericGroupByTestTest( queryWithLimits(0, 3), Aggregate.MAX, "building_type", "energy_type"); assertFalse(value.isEmpty()); assertTrue(value.size() <= 3); }
public void testWithMinWithLimitOffset() throws Exception { if (!dataStore.getSQLDialect().isLimitOffsetSupported()) { return; } List<Object[]> value = genericGroupByTestTest( queryWithLimits(0, 3), Aggregate.SUM, "building_type", "energy_type"); assertFalse(value.isEmpty()); assertTrue(value.size() <= 3); }
public void testMaxWithLimitOffset() throws Exception { if (!dataStore.getSQLDialect().isLimitOffsetSupported()) { return; } FilterFactory ff = dataStore.getFilterFactory(); PropertyName p = ff.property(aname("doubleProperty")); MaxVisitor v = new MyMaxVisitor(p); Query q = new Query(tname("ft1")); q.setStartIndex(0); q.setMaxFeatures(2); dataStore.getFeatureSource(tname("ft1")).accepts(q, v, null); assertFalse(visited); assertEquals(1.1, v.getResult().toDouble(), 0.01); }