|
9 | 9 | */ |
10 | 10 | package net.sf.jsqlparser.util.deparser; |
11 | 11 |
|
| 12 | +import static java.util.stream.Collectors.joining; |
| 13 | + |
| 14 | +import java.util.Iterator; |
| 15 | +import java.util.List; |
| 16 | +import java.util.Map; |
12 | 17 | import net.sf.jsqlparser.expression.AllValue; |
13 | 18 | import net.sf.jsqlparser.expression.AnalyticExpression; |
14 | 19 | import net.sf.jsqlparser.expression.AnalyticType; |
|
20 | 25 | import net.sf.jsqlparser.expression.CaseExpression; |
21 | 26 | import net.sf.jsqlparser.expression.CastExpression; |
22 | 27 | import net.sf.jsqlparser.expression.CollateExpression; |
23 | | -import net.sf.jsqlparser.expression.ConnectByRootOperator; |
24 | 28 | import net.sf.jsqlparser.expression.ConnectByPriorOperator; |
| 29 | +import net.sf.jsqlparser.expression.ConnectByRootOperator; |
25 | 30 | import net.sf.jsqlparser.expression.DateTimeLiteralExpression; |
26 | 31 | import net.sf.jsqlparser.expression.DateUnitExpression; |
27 | 32 | import net.sf.jsqlparser.expression.DateValue; |
|
41 | 46 | import net.sf.jsqlparser.expression.JsonFunction; |
42 | 47 | import net.sf.jsqlparser.expression.JsonTableFunction; |
43 | 48 | import net.sf.jsqlparser.expression.KeepExpression; |
| 49 | +import net.sf.jsqlparser.expression.KeyExpression; |
44 | 50 | import net.sf.jsqlparser.expression.LambdaExpression; |
45 | 51 | import net.sf.jsqlparser.expression.LongValue; |
46 | 52 | import net.sf.jsqlparser.expression.LowExpression; |
|
134 | 140 | import net.sf.jsqlparser.statement.select.SelectVisitor; |
135 | 141 | import net.sf.jsqlparser.statement.select.WithItem; |
136 | 142 |
|
137 | | -import java.util.Iterator; |
138 | | -import java.util.List; |
139 | | -import java.util.Map; |
140 | | - |
141 | | -import static java.util.stream.Collectors.joining; |
142 | | - |
143 | 143 | @SuppressWarnings({"PMD.CyclomaticComplexity"}) |
144 | 144 | public class ExpressionDeParser extends AbstractDeParser<Expression> |
145 | 145 | // FIXME maybe we should implement an ItemsListDeparser too? |
@@ -1540,6 +1540,10 @@ public void visit(SimilarToExpression expr) { |
1540 | 1540 | visit(expr, null); |
1541 | 1541 | } |
1542 | 1542 |
|
| 1543 | + public void visit(KeyExpression keyExpression) { |
| 1544 | + visit(keyExpression, null); |
| 1545 | + } |
| 1546 | + |
1543 | 1547 |
|
1544 | 1548 | @Override |
1545 | 1549 | public <S> StringBuilder visit(ArrayExpression array, S context) { |
@@ -1660,6 +1664,13 @@ public <S> StringBuilder visit(ConnectByPriorOperator connectByPriorOperator, S |
1660 | 1664 | return builder; |
1661 | 1665 | } |
1662 | 1666 |
|
| 1667 | + @Override |
| 1668 | + public <S> StringBuilder visit(KeyExpression keyExpression, S context) { |
| 1669 | + builder.append("KEY "); |
| 1670 | + keyExpression.getExpression().accept(this, context); |
| 1671 | + return builder; |
| 1672 | + } |
| 1673 | + |
1663 | 1674 | @Override |
1664 | 1675 | public <S> StringBuilder visit(OracleNamedFunctionParameter oracleNamedFunctionParameter, |
1665 | 1676 | S context) { |
|
0 commit comments