Revision 45708

View differences:

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
144 144
                        .value(ExpressionUtils.compile(aggregate).toValue(expbuilder))
145 145
                        .as(attr.getName());
146 146
              }
147
            } else {
147
                } else {
148 148
              if( attr.getType() == DataTypes.GEOMETRY ) {
149 149
                  select.column().name(attr.getName()).as_geometry();
150 150
  //                if( tolerance<=0 || !sqlbuilder.getConfig().has_functionality(Config.ST_Simplify)) {
......
159 159
  //                }
160 160
              } else {
161 161
                  select.column().name(attr.getName());
162
              }
163 162
            }
163
            }
164 164
            columns.add(attr);
165 165
        }
166
       
166
                                           
167 167
       if( query !=null && query.hasGroupByColumns() ) {
168 168
            for (Map.Entry<String, String> entry : query.getAggregateFunctions().entrySet()) {
169 169
                 EditableFeatureAttributeDescriptor attr = query.getExtraColumn().get(entry.getKey());
......
200 200
                     ExpressionBuilder.Function atrcolumn = expbuilder.getattr(this.table.getTable(), attrName);
201 201
                    select.group_by(atrcolumn);
202 202
                }
203
            }            
203
            }                               
204 204
        } else {
205 205
            for(String attrName : forcedColumns ) {
206 206
                select.column().name(attrName);
207 207
                columns.add(setType.getAttributeDescriptor(attrName));
208 208
            }
209 209
        }
210
                                  
210
                            
211 211
        select.from().table()
212 212
                .database(this.table.getDatabase())
213 213
                .schema(this.table.getSchema())
......
227 227
            select.where().and(expbuilder.toValue(baseFilter));
228 228
        }
229 229
        
230
        FeatureQueryOrder order = query==null? null:query.getOrder();
231
        if( order != null ) {
232
            for( FeatureQueryOrderMember member : order.members() ) {
233
                if( member.hasEvaluator() ) {
230
        FeatureQueryOrder order = query == null ? null : query.getOrder();
231
        if (order != null) {
232
            for (FeatureQueryOrderMember member : order.members()) {
233
                if (member.hasEvaluator()) {
234 234
                    String sqlorder = member.getEvaluator().getSQL();
235
                    if( ! StringUtils.isEmpty(sqlorder) ) {
236
                        select.order_by()
237
                                .value(expbuilder.toValue(sqlorder))
238
                                .ascending(member.getAscending());
235
                    select.order_by()
236
                            .value(expbuilder.toValue(sqlorder))
237
                            .ascending(member.getAscending());
238
                } else {
239
                    if (query.getExtraColumn().get(member.getAttributeName()) != null) {
240
                        Expression exp = ((FeatureAttributeEmulatorExpression) query.getExtraColumn().get(member.getAttributeName()).getFeatureAttributeEmulator()).getExpression();
241
                        select.column().value(exp.getCode().toValue()).as(member.getAttributeName());
239 242
                    }
240
                } else {
241 243
                    select.order_by()
242 244
                            .column(member.getAttributeName())
243 245
                            .ascending(member.getAscending());
244 246
                }
245 247
            }
246 248
        }
249
    
247 250
        if( !StringUtils.isEmpty(baseOrder) ) {
248 251
            select.order_by().custom(baseOrder);
249 252
        }

Also available in: Unified diff