2
2
3
3
import net .sf .jsqlparser .expression .Alias ;
4
4
import net .sf .jsqlparser .expression .Expression ;
5
- import net .sf .jsqlparser .expression .operators . relational . ExpressionList ;
5
+ import net .sf .jsqlparser .expression .Function ;
6
6
import net .sf .jsqlparser .schema .Column ;
7
+ import net .sf .jsqlparser .statement .select .Select ;
8
+ import net .sf .jsqlparser .statement .select .SelectItem ;
9
+
10
+ import java .util .List ;
7
11
8
12
public class PivotPipeOperator extends PipeOperator {
9
- private Expression aggregateExpression ;
13
+ private Function aggregateExpression ;
10
14
private Column inputColumn ;
11
- private ExpressionList < Column > pivotColumns ;
15
+ private List < SelectItem <?> > pivotColumns ;
12
16
private Alias alias = null ;
13
17
14
- public PivotPipeOperator (Expression aggregateExpression , Column inputColumn ,
15
- ExpressionList < Column > pivotColumns , Alias alias ) {
18
+ public PivotPipeOperator (Function aggregateExpression , Column inputColumn ,
19
+ List < SelectItem <?> > pivotColumns , Alias alias ) {
16
20
this .aggregateExpression = aggregateExpression ;
17
21
this .inputColumn = inputColumn ;
18
22
this .pivotColumns = pivotColumns ;
@@ -23,7 +27,7 @@ public Expression getAggregateExpression() {
23
27
return aggregateExpression ;
24
28
}
25
29
26
- public PivotPipeOperator setAggregateExpression (Expression aggregateExpression ) {
30
+ public PivotPipeOperator setAggregateExpression (Function aggregateExpression ) {
27
31
this .aggregateExpression = aggregateExpression ;
28
32
return this ;
29
33
}
@@ -37,11 +41,11 @@ public PivotPipeOperator setInputColumn(Column inputColumn) {
37
41
return this ;
38
42
}
39
43
40
- public ExpressionList < Column > getPivotColumns () {
44
+ public List < SelectItem <?> > getPivotColumns () {
41
45
return pivotColumns ;
42
46
}
43
47
44
- public PivotPipeOperator setPivotColumns (ExpressionList < Column > pivotColumns ) {
48
+ public PivotPipeOperator setPivotColumns (List < SelectItem <?> > pivotColumns ) {
45
49
this .pivotColumns = pivotColumns ;
46
50
return this ;
47
51
}
@@ -64,7 +68,7 @@ public StringBuilder appendTo(StringBuilder builder) {
64
68
.append (" FOR " )
65
69
.append (inputColumn )
66
70
.append (" IN (" )
67
- .append (pivotColumns )
71
+ .append (Select . getStringList ( pivotColumns ) )
68
72
.append ("))" );
69
73
if (alias != null ) {
70
74
builder .append (" " ).append (alias );
0 commit comments