Revision 45708
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