1717import java .util .Collections ;
1818import java .util .List ;
1919import java .util .Optional ;
20-
20+ import net . sf . jsqlparser . expression . Expression ;
2121import net .sf .jsqlparser .statement .select .PlainSelect ;
2222
2323public class Index implements Serializable {
@@ -32,7 +32,7 @@ public class Index implements Serializable {
3232
3333 public List <String > getColumnsNames () {
3434 return columns .stream ()
35- .map (col -> col . columnName )
35+ .map (ColumnParams :: getColumnName )
3636 .collect (toList ());
3737 }
3838
@@ -202,28 +202,52 @@ public void setCommentText(String commentText) {
202202 public static class ColumnParams implements Serializable {
203203 public final String columnName ;
204204 public final List <String > params ;
205+ private final Expression expression ;
205206
206207 public ColumnParams (String columnName ) {
207208 this .columnName = columnName ;
208209 this .params = null ;
210+ this .expression = null ;
209211 }
210212
211213 public ColumnParams (String columnName , List <String > params ) {
212214 this .columnName = columnName ;
213215 this .params = params ;
216+ this .expression = null ;
217+ }
218+
219+ public ColumnParams (Expression expression ) {
220+ this .columnName = null ;
221+ this .params = null ;
222+ this .expression = expression ;
223+ }
224+
225+ public ColumnParams (Expression expression , List <String > params ) {
226+ this .columnName = null ;
227+ this .params = params ;
228+ this .expression = expression ;
214229 }
215230
216231 public String getColumnName () {
217- return columnName ;
232+ return expression != null ? expression . toString () : columnName ;
218233 }
219234
220235 public List <String > getParams () {
221236 return params ;
222237 }
223238
239+ public Expression getExpression () {
240+ return expression ;
241+ }
242+
243+ public boolean isExpression () {
244+ return expression != null ;
245+ }
246+
224247 @ Override
225248 public String toString () {
226- return columnName + (params != null ? " " + String .join (" " , params ) : "" );
249+ String head = expression != null ? "(" + expression + ")" : columnName ;
250+ return head + (params != null ? " " + String .join (" " , params ) : "" );
227251 }
228252 }
229253}
0 commit comments