Revision 45166 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/CountOperation.java

View differences:

CountOperation.java
109 109
                subselect.where().and(expbuilder.toValue(baseFilter));
110 110
            }
111 111

  
112
            FeatureQueryOrder order = query == null ? null : query.getOrder();
113
            if (order != null) {
114
                for (FeatureQueryOrder.FeatureQueryOrderMember member : order.members()) {
115
                    if (member.hasEvaluator()) {
116
                        String sqlorder = member.getEvaluator().getSQL();
117
                        if (!StringUtils.isEmpty(sqlorder)) {
118
                            subselect.order_by().custom(sqlorder);
119
                        }
120
                    } else {
121
                        subselect.order_by()
122
                                .column(member.getAttributeName())
123
                                .ascending(member.getAscending());
124
                    }
125
                }
126
            }
127 112

  
128 113
            List<String> groupbyColumns = query == null ? null : query.getGroupByColumns();
129 114
            if (groupbyColumns != null && !groupbyColumns.isEmpty()) {
......
139 124
                        try {
140 125
                            try {
141 126
                                Code groupByColumnCode = ExpressionUtils.compile(columnName);
142
                                if (groupByColumnCode.code() == Code.CALLABLE) {
143
                                    Code.Callable callable = (Code.Callable) groupByColumnCode;
144
                                    if (callable.name().equalsIgnoreCase(FUNCTION_LET)) {
145
                                        Code exp = callable.parameters().get(1);
146
                                        Code name = callable.parameters().get(0);
147
                                        subselect.column().value(exp.toValue())
148
                                                .as((String) ((Code.Constant) name).value());
149
                                        // nombre que se pone en la parte del groupby debe de ser el nombre de la var del set
150
                                        groupByColumnCode = exp; 
151
                                    }
152
                                }
127
//                                if (groupByColumnCode.code() == Code.CALLABLE) {
128
//                                    Code.Callable callable = (Code.Callable) groupByColumnCode;
129
//                                    if (callable.name().equalsIgnoreCase(FUNCTION_LET)) {
130
//                                        Code exp = callable.parameters().get(1);
131
//                                        Code name = callable.parameters().get(0);
132
//                                        subselect.column().value(exp.toValue())
133
//                                                .as((String) ((Code.Constant) name).value());
134
//                                        // nombre que se pone en la parte del groupby debe de ser el nombre de la var del set
135
//                                        groupByColumnCode = exp; 
136
//                                    }
137
//                                }
153 138
                                subselect.group_by(groupByColumnCode.toValue());
154 139
                            } catch (Exception ex) {
155 140
                                throw new RuntimeException("Not able to create column by expression in groupby query", ex);

Also available in: Unified diff