|
37 | 37 | public class SelectDeParser implements SelectVisitor, OrderByVisitor, SelectItemVisitor, FromItemVisitor, PivotVisitor {
|
38 | 38 |
|
39 | 39 | private StringBuilder buffer;
|
40 |
| - private ExpressionVisitor expressionVisitor; |
| 40 | + private ExpressionVisitor expressionVisitor; |
41 | 41 |
|
42 | 42 | public SelectDeParser() {
|
43 | 43 | }
|
@@ -90,15 +90,15 @@ public void visit(PlainSelect plainSelect) {
|
90 | 90 | }
|
91 | 91 |
|
92 | 92 | if (plainSelect.getJoins() != null) {
|
93 |
| - for (Join join : plainSelect.getJoins()) { |
94 |
| - deparseJoin(join); |
95 |
| - } |
| 93 | + for (Join join : plainSelect.getJoins()) { |
| 94 | + deparseJoin(join); |
| 95 | + } |
96 | 96 | }
|
97 | 97 |
|
98 | 98 | if (plainSelect.getOracleHierarchical() != null) {
|
99 | 99 | plainSelect.getOracleHierarchical().accept(expressionVisitor);
|
100 | 100 | }
|
101 |
| - |
| 101 | + |
102 | 102 | if (plainSelect.getWhere() != null) {
|
103 | 103 | buffer.append(" WHERE ");
|
104 | 104 | plainSelect.getWhere().accept(expressionVisitor);
|
@@ -175,55 +175,56 @@ public void visit(SubSelect subSelect) {
|
175 | 175 | @Override
|
176 | 176 | public void visit(Table tableName) {
|
177 | 177 | buffer.append(tableName.getWholeTableName());
|
178 |
| - Pivot pivot = tableName.getPivot(); |
179 |
| - if (pivot != null) { |
180 |
| - pivot.accept(this); |
181 |
| - } |
| 178 | + Pivot pivot = tableName.getPivot(); |
| 179 | + if (pivot != null) { |
| 180 | + pivot.accept(this); |
| 181 | + } |
182 | 182 | String alias = tableName.getAlias();
|
183 | 183 | if (alias != null && !alias.isEmpty()) {
|
184 | 184 | buffer.append(" AS ").append(alias);
|
185 | 185 | }
|
186 | 186 | }
|
187 | 187 |
|
188 |
| - @Override |
189 |
| - public void visit(Pivot pivot) { |
190 |
| - List<Column> forColumns = pivot.getForColumns(); |
191 |
| - buffer.append(" PIVOT (") |
192 |
| - .append(PlainSelect.getStringList(pivot.getFunctionItems())) |
193 |
| - .append(" FOR ") |
194 |
| - .append(PlainSelect.getStringList(forColumns, true, forColumns != null && forColumns.size() > 1)) |
195 |
| - .append(" IN ") |
196 |
| - .append(PlainSelect.getStringList(pivot.getInItems(), true, true)) |
197 |
| - .append(")"); |
198 |
| - } |
199 |
| - |
200 |
| - @Override |
201 |
| - public void visit(PivotXml pivot) { |
202 |
| - List<Column> forColumns = pivot.getForColumns(); |
203 |
| - buffer.append(" PIVOT XML (") |
204 |
| - .append(PlainSelect.getStringList(pivot.getFunctionItems())) |
205 |
| - .append(" FOR ") |
206 |
| - .append(PlainSelect.getStringList(forColumns, true, forColumns != null && forColumns.size() > 1)) |
207 |
| - .append(" IN ("); |
208 |
| - if (pivot.isInAny()) { |
209 |
| - buffer.append("ANY"); |
210 |
| - } else if (pivot.getInSelect() != null) { |
211 |
| - buffer.append(pivot.getInSelect()); |
212 |
| - } else { |
213 |
| - buffer.append(PlainSelect.getStringList(pivot.getInItems())); |
214 |
| - } |
215 |
| - buffer.append("))"); |
216 |
| - } |
| 188 | + @Override |
| 189 | + public void visit(Pivot pivot) { |
| 190 | + List<Column> forColumns = pivot.getForColumns(); |
| 191 | + buffer.append(" PIVOT (") |
| 192 | + .append(PlainSelect.getStringList(pivot.getFunctionItems())) |
| 193 | + .append(" FOR ") |
| 194 | + .append(PlainSelect.getStringList(forColumns, true, forColumns != null && forColumns.size() > 1)) |
| 195 | + .append(" IN ") |
| 196 | + .append(PlainSelect.getStringList(pivot.getInItems(), true, true)) |
| 197 | + .append(")"); |
| 198 | + } |
| 199 | + |
| 200 | + @Override |
| 201 | + public void visit(PivotXml pivot) { |
| 202 | + List<Column> forColumns = pivot.getForColumns(); |
| 203 | + buffer.append(" PIVOT XML (") |
| 204 | + .append(PlainSelect.getStringList(pivot.getFunctionItems())) |
| 205 | + .append(" FOR ") |
| 206 | + .append(PlainSelect.getStringList(forColumns, true, forColumns != null && forColumns.size() > 1)) |
| 207 | + .append(" IN ("); |
| 208 | + if (pivot.isInAny()) { |
| 209 | + buffer.append("ANY"); |
| 210 | + } else if (pivot.getInSelect() != null) { |
| 211 | + buffer.append(pivot.getInSelect()); |
| 212 | + } else { |
| 213 | + buffer.append(PlainSelect.getStringList(pivot.getInItems())); |
| 214 | + } |
| 215 | + buffer.append("))"); |
| 216 | + } |
217 | 217 |
|
218 | 218 | public void deparseOrderBy(List<OrderByElement> orderByElements) {
|
219 | 219 | deparseOrderBy(false, orderByElements);
|
220 | 220 | }
|
221 |
| - |
| 221 | + |
222 | 222 | public void deparseOrderBy(boolean oracleSiblings, List<OrderByElement> orderByElements) {
|
223 |
| - if (oracleSiblings) |
| 223 | + if (oracleSiblings) { |
224 | 224 | buffer.append(" ORDER SIBLINGS BY ");
|
225 |
| - else |
| 225 | + } else { |
226 | 226 | buffer.append(" ORDER BY ");
|
| 227 | + } |
227 | 228 | for (Iterator<OrderByElement> iter = orderByElements.iterator(); iter.hasNext();) {
|
228 | 229 | OrderByElement orderByElement = iter.next();
|
229 | 230 | orderByElement.accept(this);
|
|
0 commit comments