|
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? |
@@ -1549,6 +1549,10 @@ public void visit(SimilarToExpression expr) { |
1549 | 1549 | visit(expr, null); |
1550 | 1550 | } |
1551 | 1551 |
|
| 1552 | + public void visit(KeyExpression keyExpression) { |
| 1553 | + visit(keyExpression, null); |
| 1554 | + } |
| 1555 | + |
1552 | 1556 |
|
1553 | 1557 | @Override |
1554 | 1558 | public <S> StringBuilder visit(ArrayExpression array, S context) { |
@@ -1669,6 +1673,13 @@ public <S> StringBuilder visit(ConnectByPriorOperator connectByPriorOperator, S |
1669 | 1673 | return builder; |
1670 | 1674 | } |
1671 | 1675 |
|
| 1676 | + @Override |
| 1677 | + public <S> StringBuilder visit(KeyExpression keyExpression, S context) { |
| 1678 | + builder.append("KEY "); |
| 1679 | + keyExpression.getExpression().accept(this, context); |
| 1680 | + return builder; |
| 1681 | + } |
| 1682 | + |
1672 | 1683 | @Override |
1673 | 1684 | public <S> StringBuilder visit(OracleNamedFunctionParameter oracleNamedFunctionParameter, |
1674 | 1685 | S context) { |
|
0 commit comments