Revision 43355 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/operations/ResultSetForSetProviderOperation.java

View differences:

ResultSetForSetProviderOperation.java
4 4
import java.util.ArrayList;
5 5
import java.util.List;
6 6
import org.apache.commons.lang3.StringUtils;
7
import org.gvsig.fmap.dal.ExpressionBuilder.Config;
7 8
import org.gvsig.fmap.dal.exception.DataException;
8 9
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
9 10
import org.gvsig.fmap.dal.feature.FeatureQuery;
......
84 85
            int fetchSize
85 86
        ) throws DataException {
86 87
        
88
        double tolerance = -1 ; //query.getScale();
87 89
        JDBCSQLBuilderBase sqlbuilder = createSQLBuilder();
88 90
        
89 91
        List<String> primaryKeys = new ArrayList<>();
......
101 103
                primaryKeys.remove(attr.getName());
102 104
            }
103 105
            if( attr.getType() == DataTypes.GEOMETRY ) {
104
                sqlbuilder.select().column().name(attr.getName()).as_geometry();
106
                if( tolerance<=0 || !sqlbuilder.getConfig().has_functionality(Config.ST_Simplify)) {
107
                    sqlbuilder.select().column().name(attr.getName()).as_geometry();
108
                } else {
109
                    sqlbuilder.select().column().value(
110
                        sqlbuilder.ST_Simplify( 
111
                            sqlbuilder.column(attr.getName()),
112
                            sqlbuilder.constant(tolerance)
113
                        )
114
                    ).as_geometry();
115
                }
105 116
            } else {
106 117
                sqlbuilder.select().column().name(attr.getName());
107 118
            }

Also available in: Unified diff