diff --git a/src/main/java/net/sf/jsqlparser/expression/CaseExpression.java b/src/main/java/net/sf/jsqlparser/expression/CaseExpression.java index ef578ebd8..1bdf6149a 100644 --- a/src/main/java/net/sf/jsqlparser/expression/CaseExpression.java +++ b/src/main/java/net/sf/jsqlparser/expression/CaseExpression.java @@ -16,7 +16,7 @@ import java.util.List; import java.util.Optional; import net.sf.jsqlparser.parser.ASTNodeAccessImpl; -import net.sf.jsqlparser.statement.select.PlainSelect; +import net.sf.jsqlparser.util.SelectUtils; /** * CASE/WHEN expression. @@ -112,7 +112,7 @@ public void setWhenClauses(List whenClauses) { public String toString() { return (usingBrackets ? "(" : "") + "CASE " + ((switchExpression != null) ? switchExpression + " " : "") - + PlainSelect.getStringList(whenClauses, false, false) + " " + + SelectUtils.getStringList(whenClauses, false, false) + " " + ((elseExpression != null) ? "ELSE " + elseExpression + " " : "") + "END" + (usingBrackets ? ")" : ""); } diff --git a/src/main/java/net/sf/jsqlparser/expression/CastExpression.java b/src/main/java/net/sf/jsqlparser/expression/CastExpression.java index 99665b3e6..cf6d98b3b 100644 --- a/src/main/java/net/sf/jsqlparser/expression/CastExpression.java +++ b/src/main/java/net/sf/jsqlparser/expression/CastExpression.java @@ -12,7 +12,7 @@ import net.sf.jsqlparser.parser.ASTNodeAccessImpl; import net.sf.jsqlparser.statement.create.table.ColDataType; import net.sf.jsqlparser.statement.create.table.ColumnDefinition; -import net.sf.jsqlparser.statement.select.Select; +import net.sf.jsqlparser.util.SelectUtils; import java.util.ArrayList; @@ -110,7 +110,7 @@ public String toString() { if (keyword != null && !keyword.isEmpty()) { return columnDefinitions.size() > 1 ? keyword + "(" + leftExpression + " AS ROW(" - + Select.getStringList(columnDefinitions) + ")" + formatStr + ")" + + SelectUtils.getStringList(columnDefinitions) + ")" + formatStr + ")" : keyword + "(" + leftExpression + " AS " + colDataType.toString() + formatStr + ")"; } else { diff --git a/src/main/java/net/sf/jsqlparser/expression/PartitionByClause.java b/src/main/java/net/sf/jsqlparser/expression/PartitionByClause.java index 0b0f70663..acaae66e2 100644 --- a/src/main/java/net/sf/jsqlparser/expression/PartitionByClause.java +++ b/src/main/java/net/sf/jsqlparser/expression/PartitionByClause.java @@ -10,7 +10,7 @@ package net.sf.jsqlparser.expression; import net.sf.jsqlparser.expression.operators.relational.ExpressionList; -import net.sf.jsqlparser.statement.select.PlainSelect; +import net.sf.jsqlparser.util.SelectUtils; import java.io.Serializable; @@ -34,7 +34,7 @@ public void setPartitionExpressionList(ExpressionList partitionExpressionList, b public void toStringPartitionBy(StringBuilder b) { if (partitionExpressionList != null && !partitionExpressionList.getExpressions().isEmpty()) { b.append("PARTITION BY "); - b.append(PlainSelect. + b.append(SelectUtils. getStringList(partitionExpressionList.getExpressions(), true, brackets)); b.append(" "); } diff --git a/src/main/java/net/sf/jsqlparser/expression/operators/relational/ParenthesedExpressionList.java b/src/main/java/net/sf/jsqlparser/expression/operators/relational/ParenthesedExpressionList.java index 13efb57c8..c49db8971 100644 --- a/src/main/java/net/sf/jsqlparser/expression/operators/relational/ParenthesedExpressionList.java +++ b/src/main/java/net/sf/jsqlparser/expression/operators/relational/ParenthesedExpressionList.java @@ -10,7 +10,7 @@ package net.sf.jsqlparser.expression.operators.relational; import net.sf.jsqlparser.expression.Expression; -import net.sf.jsqlparser.statement.select.PlainSelect; +import net.sf.jsqlparser.util.SelectUtils; import java.util.Arrays; import java.util.Collection; @@ -36,6 +36,6 @@ public static ParenthesedExpressionList from(ExpressionList expressions) { @Override public String toString() { - return PlainSelect.getStringList(this, true, true); + return SelectUtils.getStringList(this, true, true); } } diff --git a/src/main/java/net/sf/jsqlparser/parser/IndexIds.java b/src/main/java/net/sf/jsqlparser/parser/IndexIds.java new file mode 100644 index 000000000..ffa1318b4 --- /dev/null +++ b/src/main/java/net/sf/jsqlparser/parser/IndexIds.java @@ -0,0 +1,27 @@ +/*- + * #%L + * JSQLParser library + * %% + * Copyright (C) 2004 - 2024 JSQLParser + * %% + * Dual licensed under GNU LGPL 2.1 or Apache License 2.0 + * #L% + */ +package net.sf.jsqlparser.parser; + +public enum IndexIds { + + NAME(0), + SCHEMA(1), + DATABASE(2), + SERVER(3); + private int id; + + IndexIds(int id) { + this.id = id; + } + + public int getID() { + return id; + } +} diff --git a/src/main/java/net/sf/jsqlparser/schema/Sequence.java b/src/main/java/net/sf/jsqlparser/schema/Sequence.java index 0997eefb8..409b88368 100644 --- a/src/main/java/net/sf/jsqlparser/schema/Sequence.java +++ b/src/main/java/net/sf/jsqlparser/schema/Sequence.java @@ -10,6 +10,7 @@ package net.sf.jsqlparser.schema; import net.sf.jsqlparser.parser.ASTNodeAccessImpl; +import net.sf.jsqlparser.parser.IndexIds; import java.util.ArrayList; import java.util.Collection; @@ -22,10 +23,6 @@ */ public class Sequence extends ASTNodeAccessImpl implements MultiPartName { - private static final int NAME_IDX = 0; - private static final int SCHEMA_IDX = 1; - private static final int DATABASE_IDX = 2; - private static final int SERVER_IDX = 3; private List partItems = new ArrayList<>(); private List parameters; @@ -46,13 +43,13 @@ public List getParameters() { } public Database getDatabase() { - return new Database(getIndex(DATABASE_IDX)); + return new Database(getIndex(IndexIds.DATABASE.getID())); } public void setDatabase(Database database) { - setIndex(DATABASE_IDX, database.getDatabaseName()); + setIndex(IndexIds.DATABASE.getID(), database.getDatabaseName()); if (database.getServer() != null) { - setIndex(SERVER_IDX, database.getServer().getFullyQualifiedName()); + setIndex(IndexIds.SERVER.getID(), database.getServer().getFullyQualifiedName()); } } @@ -62,11 +59,11 @@ public Sequence withDatabase(Database database) { } public String getSchemaName() { - return getIndex(SCHEMA_IDX); + return getIndex(IndexIds.SCHEMA.getID()); } public void setSchemaName(String string) { - setIndex(SCHEMA_IDX, string); + setIndex(IndexIds.SCHEMA.getID(), string); } public Sequence withSchemaName(String string) { @@ -75,11 +72,11 @@ public Sequence withSchemaName(String string) { } public String getName() { - return getIndex(NAME_IDX); + return getIndex(IndexIds.NAME.getID()); } public void setName(String string) { - setIndex(NAME_IDX, string); + setIndex(IndexIds.NAME.getID(), string); } public Sequence withName(String string) { diff --git a/src/main/java/net/sf/jsqlparser/statement/OutputClause.java b/src/main/java/net/sf/jsqlparser/statement/OutputClause.java index fe2fd60ac..2fdba3886 100644 --- a/src/main/java/net/sf/jsqlparser/statement/OutputClause.java +++ b/src/main/java/net/sf/jsqlparser/statement/OutputClause.java @@ -11,8 +11,8 @@ import net.sf.jsqlparser.expression.UserVariable; import net.sf.jsqlparser.schema.Table; -import net.sf.jsqlparser.statement.select.PlainSelect; import net.sf.jsqlparser.statement.select.SelectItem; +import net.sf.jsqlparser.util.SelectUtils; import java.io.Serializable; import java.util.List; @@ -89,7 +89,7 @@ public void setColumnList(List columnList) { public StringBuilder appendTo(StringBuilder builder) { builder.append(" OUTPUT "); - PlainSelect.appendStringListTo(builder, selectItemList, true, false); + SelectUtils.appendStringListTo(builder, selectItemList, true, false); if (tableVariable != null) { builder.append(" INTO ").append(tableVariable); @@ -97,7 +97,7 @@ public StringBuilder appendTo(StringBuilder builder) { builder.append(" INTO ").append(outputTable); } - PlainSelect.appendStringListTo(builder, columnList, true, false); + SelectUtils.appendStringListTo(builder, columnList, true, false); return builder.append(" "); } diff --git a/src/main/java/net/sf/jsqlparser/statement/SetStatement.java b/src/main/java/net/sf/jsqlparser/statement/SetStatement.java index f276f4956..890aefd69 100644 --- a/src/main/java/net/sf/jsqlparser/statement/SetStatement.java +++ b/src/main/java/net/sf/jsqlparser/statement/SetStatement.java @@ -11,7 +11,7 @@ import net.sf.jsqlparser.expression.Expression; import net.sf.jsqlparser.expression.operators.relational.ExpressionList; -import net.sf.jsqlparser.statement.select.PlainSelect; +import net.sf.jsqlparser.util.SelectUtils; import java.io.Serializable; import java.util.ArrayList; @@ -106,7 +106,7 @@ public void setExpressions(ExpressionList expressions) { private String toString(NameExpr ne) { return ne.name + (ne.useEqual ? " = " : " ") - + PlainSelect.getStringList(ne.expressions, true, false); + + SelectUtils.getStringList(ne.expressions, true, false); } @Override diff --git a/src/main/java/net/sf/jsqlparser/statement/alter/AlterExpression.java b/src/main/java/net/sf/jsqlparser/statement/alter/AlterExpression.java index 0a99c97d5..9ab974e9b 100644 --- a/src/main/java/net/sf/jsqlparser/statement/alter/AlterExpression.java +++ b/src/main/java/net/sf/jsqlparser/statement/alter/AlterExpression.java @@ -24,7 +24,7 @@ import net.sf.jsqlparser.statement.create.table.ColDataType; import net.sf.jsqlparser.statement.create.table.ColumnDefinition; import net.sf.jsqlparser.statement.create.table.Index; -import net.sf.jsqlparser.statement.select.PlainSelect; +import net.sf.jsqlparser.util.SelectUtils; @SuppressWarnings({"PMD.CyclomaticComplexity"}) public class AlterExpression implements Serializable { @@ -463,14 +463,14 @@ public String toString() { b.append("DROP PRIMARY KEY "); } else if (operation == AlterOperation.DROP_UNIQUE) { - b.append("DROP UNIQUE (").append(PlainSelect.getStringList(pkColumns)).append(')'); + b.append("DROP UNIQUE (").append(SelectUtils.getStringList(pkColumns)).append(')'); } else if (operation == AlterOperation.DROP_FOREIGN_KEY) { - b.append("DROP FOREIGN KEY (").append(PlainSelect.getStringList(pkColumns)).append(')'); + b.append("DROP FOREIGN KEY (").append(SelectUtils.getStringList(pkColumns)).append(')'); } else if (operation == AlterOperation.DROP && columnName == null && pkColumns != null && !pkColumns.isEmpty()) { // Oracle Multi Column Drop - b.append("DROP (").append(PlainSelect.getStringList(pkColumns)).append(')'); + b.append("DROP (").append(SelectUtils.getStringList(pkColumns)).append(')'); } else if (operation == AlterOperation.TRUNCATE_PARTITION && truncatePartitionName != null) { b.append("TRUNCATE PARTITION ").append(truncatePartitionName); @@ -516,7 +516,7 @@ public String toString() { if (useBrackets && colDataTypeList.size() == 1) { b.append(" ( "); } - b.append(PlainSelect.getStringList(colDataTypeList)); + b.append(SelectUtils.getStringList(colDataTypeList)); if (useBrackets && colDataTypeList.size() == 1) { b.append(" ) "); } @@ -525,10 +525,10 @@ public String toString() { } } else if (getColumnDropNotNullList() != null) { b.append("COLUMN "); - b.append(PlainSelect.getStringList(columnDropNotNullList)); + b.append(SelectUtils.getStringList(columnDropNotNullList)); } else if (columnDropDefaultList != null && !columnDropDefaultList.isEmpty()) { b.append("COLUMN "); - b.append(PlainSelect.getStringList(columnDropDefaultList)); + b.append(SelectUtils.getStringList(columnDropDefaultList)); } else if (constraintName != null) { b.append("CONSTRAINT "); if (usingIfExists) { @@ -536,7 +536,7 @@ public String toString() { } b.append(constraintName); } else if (pkColumns != null) { - b.append("PRIMARY KEY (").append(PlainSelect.getStringList(pkColumns)).append(')'); + b.append("PRIMARY KEY (").append(SelectUtils.getStringList(pkColumns)).append(')'); } else if (ukColumns != null) { b.append("UNIQUE"); if (ukName != null) { @@ -547,10 +547,10 @@ public String toString() { } b.append(ukName); } - b.append(" (").append(PlainSelect.getStringList(ukColumns)).append(")"); + b.append(" (").append(SelectUtils.getStringList(ukColumns)).append(")"); } else if (fkColumns != null) { b.append("FOREIGN KEY (") - .append(PlainSelect.getStringList(fkColumns)) + .append(SelectUtils.getStringList(fkColumns)) .append(") REFERENCES ") .append( fkSourceSchema != null && fkSourceSchema.trim().length() > 0 @@ -558,7 +558,7 @@ public String toString() { : "") .append(fkSourceTable) .append(" (") - .append(PlainSelect.getStringList(fkSourceColumns)) + .append(SelectUtils.getStringList(fkSourceColumns)) .append(")"); referentialActions.forEach(b::append); } else if (index != null) { @@ -567,7 +567,7 @@ public String toString() { if (getConstraints() != null && !getConstraints().isEmpty()) { - b.append(' ').append(PlainSelect.getStringList(constraints, false, false)); + b.append(' ').append(SelectUtils.getStringList(constraints, false, false)); } if (getUseEqual()) { b.append('='); @@ -575,7 +575,7 @@ public String toString() { } if (parameters != null && !parameters.isEmpty()) { - b.append(' ').append(PlainSelect.getStringList(parameters, false, false)); + b.append(' ').append(SelectUtils.getStringList(parameters, false, false)); } if (index != null && index.getCommentText() != null) { diff --git a/src/main/java/net/sf/jsqlparser/statement/create/table/ColDataType.java b/src/main/java/net/sf/jsqlparser/statement/create/table/ColDataType.java index 548fc447f..95be1a5ae 100644 --- a/src/main/java/net/sf/jsqlparser/statement/create/table/ColDataType.java +++ b/src/main/java/net/sf/jsqlparser/statement/create/table/ColDataType.java @@ -16,7 +16,8 @@ import java.util.List; import java.util.Optional; import static java.util.stream.Collectors.joining; -import net.sf.jsqlparser.statement.select.PlainSelect; + +import net.sf.jsqlparser.util.SelectUtils; public class ColDataType implements Serializable { @@ -80,7 +81,7 @@ public String toString() { arraySpec.append("]"); } return dataType - + (argumentsStringList != null ? " " + PlainSelect. + + (argumentsStringList != null ? " " + SelectUtils. getStringList(argumentsStringList, true, true) : "") + arraySpec.toString() + (characterSet != null ? " CHARACTER SET " + characterSet : ""); diff --git a/src/main/java/net/sf/jsqlparser/statement/create/table/ColumnDefinition.java b/src/main/java/net/sf/jsqlparser/statement/create/table/ColumnDefinition.java index 90a0e0e40..117e7db50 100644 --- a/src/main/java/net/sf/jsqlparser/statement/create/table/ColumnDefinition.java +++ b/src/main/java/net/sf/jsqlparser/statement/create/table/ColumnDefinition.java @@ -9,7 +9,7 @@ */ package net.sf.jsqlparser.statement.create.table; -import net.sf.jsqlparser.statement.select.PlainSelect; +import net.sf.jsqlparser.util.SelectUtils; import java.io.Serializable; import java.util.ArrayList; @@ -71,7 +71,7 @@ public String toString() { public String toStringDataTypeAndSpec() { return (colDataType == null ? "" : colDataType) + (columnSpecs != null && !columnSpecs.isEmpty() - ? " " + PlainSelect.getStringList(columnSpecs, false, false) + ? " " + SelectUtils.getStringList(columnSpecs, false, false) : ""); } diff --git a/src/main/java/net/sf/jsqlparser/statement/create/table/CreateTable.java b/src/main/java/net/sf/jsqlparser/statement/create/table/CreateTable.java index d3793589e..2cd8b18a2 100644 --- a/src/main/java/net/sf/jsqlparser/statement/create/table/CreateTable.java +++ b/src/main/java/net/sf/jsqlparser/statement/create/table/CreateTable.java @@ -19,8 +19,8 @@ import net.sf.jsqlparser.schema.Table; import net.sf.jsqlparser.statement.Statement; import net.sf.jsqlparser.statement.StatementVisitor; -import net.sf.jsqlparser.statement.select.PlainSelect; import net.sf.jsqlparser.statement.select.Select; +import net.sf.jsqlparser.util.SelectUtils; public class CreateTable implements Statement { @@ -167,7 +167,7 @@ public void setRowMovement(RowMovement rowMovement) { @SuppressWarnings({"PMD.CyclomaticComplexity", "PMD.NPathComplexity"}) public String toString() { String sql; - String createOps = PlainSelect.getStringList(createOptionsStrings, false, false); + String createOps = SelectUtils.getStringList(createOptionsStrings, false, false); sql = "CREATE " + (unlogged ? "UNLOGGED " : "") + (!"".equals(createOps) ? createOps + " " : "") @@ -176,19 +176,19 @@ public String toString() { if (columns != null && !columns.isEmpty()) { sql += " "; - sql += PlainSelect.getStringList(columns, true, true); + sql += SelectUtils.getStringList(columns, true, true); } if (columnDefinitions != null && !columnDefinitions.isEmpty()) { sql += " ("; - sql += PlainSelect.getStringList(columnDefinitions, true, false); + sql += SelectUtils.getStringList(columnDefinitions, true, false); if (indexes != null && !indexes.isEmpty()) { sql += ", "; - sql += PlainSelect.getStringList(indexes); + sql += SelectUtils.getStringList(indexes); } sql += ")"; } - String options = PlainSelect.getStringList(tableOptionsStrings, false, false); + String options = SelectUtils.getStringList(tableOptionsStrings, false, false); if (options != null && options.length() > 0) { sql += " " + options; } diff --git a/src/main/java/net/sf/jsqlparser/statement/create/table/ForeignKeyIndex.java b/src/main/java/net/sf/jsqlparser/statement/create/table/ForeignKeyIndex.java index eb9f20c4b..d68e42a91 100644 --- a/src/main/java/net/sf/jsqlparser/statement/create/table/ForeignKeyIndex.java +++ b/src/main/java/net/sf/jsqlparser/statement/create/table/ForeignKeyIndex.java @@ -13,7 +13,7 @@ import net.sf.jsqlparser.statement.ReferentialAction; import net.sf.jsqlparser.statement.ReferentialAction.Action; import net.sf.jsqlparser.statement.ReferentialAction.Type; -import net.sf.jsqlparser.statement.select.PlainSelect; +import net.sf.jsqlparser.util.SelectUtils; import java.util.ArrayList; import java.util.Collection; @@ -120,7 +120,7 @@ public void setOnUpdateReferenceOption(String onUpdateReferenceOption) { @Override public String toString() { StringBuilder b = new StringBuilder(super.toString()).append(" REFERENCES ").append(table) - .append(PlainSelect.getStringList(getReferencedColumnNames(), true, true)); + .append(SelectUtils.getStringList(getReferencedColumnNames(), true, true)); referentialActions.forEach(b::append); return b.toString(); } diff --git a/src/main/java/net/sf/jsqlparser/statement/create/table/Index.java b/src/main/java/net/sf/jsqlparser/statement/create/table/Index.java index 720fa1abe..9e2db23a4 100644 --- a/src/main/java/net/sf/jsqlparser/statement/create/table/Index.java +++ b/src/main/java/net/sf/jsqlparser/statement/create/table/Index.java @@ -17,7 +17,8 @@ import java.util.Collections; import java.util.List; import java.util.Optional; -import net.sf.jsqlparser.statement.select.PlainSelect; + +import net.sf.jsqlparser.util.SelectUtils; public class Index implements Serializable { @@ -134,9 +135,9 @@ public Index withIndexSpec(List idxSpec) { @Override public String toString() { - String idxSpecText = PlainSelect.getStringList(idxSpec, false, false); + String idxSpecText = SelectUtils.getStringList(idxSpec, false, false); String head = (type != null ? type : "") + (!name.isEmpty() ? " " + getName() : ""); - String tail = PlainSelect.getStringList(columns, true, true) + String tail = SelectUtils.getStringList(columns, true, true) + (!"".equals(idxSpecText) ? " " + idxSpecText : ""); if ("".equals(tail)) { diff --git a/src/main/java/net/sf/jsqlparser/statement/create/table/NamedConstraint.java b/src/main/java/net/sf/jsqlparser/statement/create/table/NamedConstraint.java index f9a7f391d..df7fe88a0 100644 --- a/src/main/java/net/sf/jsqlparser/statement/create/table/NamedConstraint.java +++ b/src/main/java/net/sf/jsqlparser/statement/create/table/NamedConstraint.java @@ -11,15 +11,16 @@ import java.util.Collection; import java.util.List; -import net.sf.jsqlparser.statement.select.PlainSelect; + +import net.sf.jsqlparser.util.SelectUtils; public class NamedConstraint extends Index { @Override public String toString() { - String idxSpecText = PlainSelect.getStringList(getIndexSpec(), false, false); + String idxSpecText = SelectUtils.getStringList(getIndexSpec(), false, false); String head = getName() != null ? "CONSTRAINT " + getName() + " " : ""; - String tail = getType() + " " + PlainSelect.getStringList(getColumnsNames(), true, true) + + String tail = getType() + " " + SelectUtils.getStringList(getColumnsNames(), true, true) + (!"".equals(idxSpecText) ? " " + idxSpecText : ""); return head + tail; } diff --git a/src/main/java/net/sf/jsqlparser/statement/create/view/AlterView.java b/src/main/java/net/sf/jsqlparser/statement/create/view/AlterView.java index 8d43aab3e..38d91b53b 100644 --- a/src/main/java/net/sf/jsqlparser/statement/create/view/AlterView.java +++ b/src/main/java/net/sf/jsqlparser/statement/create/view/AlterView.java @@ -12,8 +12,8 @@ import net.sf.jsqlparser.schema.Table; import net.sf.jsqlparser.statement.Statement; import net.sf.jsqlparser.statement.StatementVisitor; -import net.sf.jsqlparser.statement.select.PlainSelect; import net.sf.jsqlparser.statement.select.Select; +import net.sf.jsqlparser.util.SelectUtils; import java.util.ArrayList; import java.util.Collection; @@ -76,7 +76,7 @@ public String toString() { sql.append("VIEW "); sql.append(view); if (columnNames != null) { - sql.append(PlainSelect.getStringList(columnNames, true, true)); + sql.append(SelectUtils.getStringList(columnNames, true, true)); } sql.append(" AS ").append(select); return sql.toString(); diff --git a/src/main/java/net/sf/jsqlparser/statement/create/view/CreateView.java b/src/main/java/net/sf/jsqlparser/statement/create/view/CreateView.java index 034902cca..f2c241dce 100644 --- a/src/main/java/net/sf/jsqlparser/statement/create/view/CreateView.java +++ b/src/main/java/net/sf/jsqlparser/statement/create/view/CreateView.java @@ -15,8 +15,8 @@ import net.sf.jsqlparser.schema.Table; import net.sf.jsqlparser.statement.Statement; import net.sf.jsqlparser.statement.StatementVisitor; -import net.sf.jsqlparser.statement.select.PlainSelect; import net.sf.jsqlparser.statement.select.Select; +import net.sf.jsqlparser.util.SelectUtils; public class CreateView implements Statement { @@ -161,7 +161,7 @@ public String toString() { sql.append(")"); } if (viewCommentOptions != null) { - sql.append(PlainSelect.getStringList(viewCommentOptions, false, false)); + sql.append(SelectUtils.getStringList(viewCommentOptions, false, false)); } sql.append(" AS ").append(select); if (isWithReadOnly()) { diff --git a/src/main/java/net/sf/jsqlparser/statement/drop/Drop.java b/src/main/java/net/sf/jsqlparser/statement/drop/Drop.java index 402574d26..0d5532144 100644 --- a/src/main/java/net/sf/jsqlparser/statement/drop/Drop.java +++ b/src/main/java/net/sf/jsqlparser/statement/drop/Drop.java @@ -19,7 +19,7 @@ import net.sf.jsqlparser.schema.Table; import net.sf.jsqlparser.statement.Statement; import net.sf.jsqlparser.statement.StatementVisitor; -import net.sf.jsqlparser.statement.select.PlainSelect; +import net.sf.jsqlparser.util.SelectUtils; public class Drop implements Statement { @@ -111,7 +111,7 @@ public String toString() { } if (parameters != null && !parameters.isEmpty()) { - sql += " " + PlainSelect.getStringList(parameters, false, false); + sql += " " + SelectUtils.getStringList(parameters, false, false); } return sql; @@ -121,7 +121,7 @@ public static String formatFuncParams(List params) { if (params == null) { return ""; } - return params.isEmpty() ? "()" : PlainSelect.getStringList(params, true, true); + return params.isEmpty() ? "()" : SelectUtils.getStringList(params, true, true); } public List getParamsByType(String type) { diff --git a/src/main/java/net/sf/jsqlparser/statement/execute/Execute.java b/src/main/java/net/sf/jsqlparser/statement/execute/Execute.java index 366a982e6..3d8b0f3e9 100644 --- a/src/main/java/net/sf/jsqlparser/statement/execute/Execute.java +++ b/src/main/java/net/sf/jsqlparser/statement/execute/Execute.java @@ -13,7 +13,7 @@ import net.sf.jsqlparser.expression.operators.relational.ParenthesedExpressionList; import net.sf.jsqlparser.statement.Statement; import net.sf.jsqlparser.statement.StatementVisitor; -import net.sf.jsqlparser.statement.select.PlainSelect; +import net.sf.jsqlparser.util.SelectUtils; import java.util.List; @@ -71,7 +71,7 @@ public void accept(StatementVisitor statementVisitor) { public String toString() { return execType.name() + " " + name + (exprList != null - ? " " + PlainSelect.getStringList(exprList, true, + ? " " + SelectUtils.getStringList(exprList, true, exprList instanceof ParenthesedExpressionList) : ""); } diff --git a/src/main/java/net/sf/jsqlparser/statement/select/Distinct.java b/src/main/java/net/sf/jsqlparser/statement/select/Distinct.java index 37f64ad81..2aac01d12 100644 --- a/src/main/java/net/sf/jsqlparser/statement/select/Distinct.java +++ b/src/main/java/net/sf/jsqlparser/statement/select/Distinct.java @@ -9,6 +9,8 @@ */ package net.sf.jsqlparser.statement.select; +import net.sf.jsqlparser.util.SelectUtils; + import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; @@ -48,7 +50,7 @@ public String toString() { String sql = useUnique ? "UNIQUE" : "DISTINCT"; if (onSelectItems != null && !onSelectItems.isEmpty()) { - sql += " ON (" + PlainSelect.getStringList(onSelectItems) + ")"; + sql += " ON (" + SelectUtils.getStringList(onSelectItems) + ")"; } return sql; diff --git a/src/main/java/net/sf/jsqlparser/statement/select/GroupByElement.java b/src/main/java/net/sf/jsqlparser/statement/select/GroupByElement.java index d052ad465..30f89c629 100644 --- a/src/main/java/net/sf/jsqlparser/statement/select/GroupByElement.java +++ b/src/main/java/net/sf/jsqlparser/statement/select/GroupByElement.java @@ -19,6 +19,7 @@ import net.sf.jsqlparser.expression.Expression; import net.sf.jsqlparser.expression.operators.relational.ExpressionList; import net.sf.jsqlparser.expression.operators.relational.ParenthesedExpressionList; +import net.sf.jsqlparser.util.SelectUtils; public class GroupByElement implements Serializable { private ExpressionList groupByExpressions = new ExpressionList(); @@ -84,7 +85,7 @@ public String toString() { } b.append("GROUPING SETS ("); for (ExpressionList expressionList : groupingSets) { - b.append(i++ > 0 ? ", " : "").append(Select.getStringList( + b.append(i++ > 0 ? ", " : "").append(SelectUtils.getStringList( expressionList, true, expressionList instanceof ParenthesedExpressionList)); } diff --git a/src/main/java/net/sf/jsqlparser/statement/select/Join.java b/src/main/java/net/sf/jsqlparser/statement/select/Join.java index d057a5381..9b218d979 100644 --- a/src/main/java/net/sf/jsqlparser/statement/select/Join.java +++ b/src/main/java/net/sf/jsqlparser/statement/select/Join.java @@ -12,6 +12,7 @@ import net.sf.jsqlparser.expression.Expression; import net.sf.jsqlparser.parser.ASTNodeAccessImpl; import net.sf.jsqlparser.schema.Column; +import net.sf.jsqlparser.util.SelectUtils; import java.util.ArrayList; import java.util.Collection; @@ -443,7 +444,7 @@ public String toString() { builder.append(" ON ").append(onExpression); } if (usingColumns.size() > 0) { - builder.append(PlainSelect.getFormattedList(usingColumns, "USING", true, true)); + builder.append(SelectUtils.getFormattedList(usingColumns, "USING", true, true)); } return builder.toString(); diff --git a/src/main/java/net/sf/jsqlparser/statement/select/Pivot.java b/src/main/java/net/sf/jsqlparser/statement/select/Pivot.java index fd6f43035..08883e3e6 100755 --- a/src/main/java/net/sf/jsqlparser/statement/select/Pivot.java +++ b/src/main/java/net/sf/jsqlparser/statement/select/Pivot.java @@ -13,6 +13,7 @@ import net.sf.jsqlparser.expression.Function; import net.sf.jsqlparser.expression.operators.relational.ExpressionList; import net.sf.jsqlparser.schema.Column; +import net.sf.jsqlparser.util.SelectUtils; import java.io.Serializable; import java.util.ArrayList; @@ -81,11 +82,11 @@ public void setAlias(Alias alias) { @Override public String toString() { return "PIVOT (" - + PlainSelect.getStringList(functionItems) + + SelectUtils.getStringList(functionItems) + " FOR " - + PlainSelect.getStringList(forColumns, true, + + SelectUtils.getStringList(forColumns, true, forColumns != null && forColumns.size() > 1) - + " IN " + PlainSelect.getStringList(getInItems(), true, true) + ")" + + " IN " + SelectUtils.getStringList(getInItems(), true, true) + ")" + (alias != null ? alias.toString() : ""); } diff --git a/src/main/java/net/sf/jsqlparser/statement/select/PivotXml.java b/src/main/java/net/sf/jsqlparser/statement/select/PivotXml.java index 0c6929c40..9cc85fa20 100644 --- a/src/main/java/net/sf/jsqlparser/statement/select/PivotXml.java +++ b/src/main/java/net/sf/jsqlparser/statement/select/PivotXml.java @@ -13,6 +13,7 @@ import net.sf.jsqlparser.expression.Function; import net.sf.jsqlparser.expression.operators.relational.ExpressionList; import net.sf.jsqlparser.schema.Column; +import net.sf.jsqlparser.util.SelectUtils; import java.util.Collection; import java.util.List; @@ -47,11 +48,11 @@ public void setInAny(boolean inAny) { public String toString() { List forColumns = getForColumns(); String in = inAny ? "ANY" - : inSelect == null ? PlainSelect.getStringList(getInItems()) : inSelect.toString(); + : inSelect == null ? SelectUtils.getStringList(getInItems()) : inSelect.toString(); return "PIVOT XML (" - + PlainSelect.getStringList(getFunctionItems()) + + SelectUtils.getStringList(getFunctionItems()) + " FOR " - + PlainSelect.getStringList(forColumns, true, + + SelectUtils.getStringList(forColumns, true, forColumns != null && forColumns.size() > 1) + " IN (" + in + "))"; } diff --git a/src/main/java/net/sf/jsqlparser/statement/select/PlainSelect.java b/src/main/java/net/sf/jsqlparser/statement/select/PlainSelect.java index 72648eb8d..2b8f5c529 100644 --- a/src/main/java/net/sf/jsqlparser/statement/select/PlainSelect.java +++ b/src/main/java/net/sf/jsqlparser/statement/select/PlainSelect.java @@ -24,6 +24,7 @@ import net.sf.jsqlparser.expression.OracleHint; import net.sf.jsqlparser.expression.WindowDefinition; import net.sf.jsqlparser.schema.Table; +import net.sf.jsqlparser.util.SelectUtils; @SuppressWarnings({"PMD.CyclomaticComplexity"}) public class PlainSelect extends Select { @@ -475,7 +476,7 @@ public StringBuilder appendSelectBodyTo(StringBuilder builder) { if (mySqlSqlCalcFoundRows) { builder.append("SQL_CALC_FOUND_ROWS").append(" "); } - builder.append(getStringList(selectItems)); + builder.append(SelectUtils.getStringList(selectItems)); if (intoTables != null) { builder.append(" INTO "); diff --git a/src/main/java/net/sf/jsqlparser/statement/select/Select.java b/src/main/java/net/sf/jsqlparser/statement/select/Select.java index 2216fada9..6891b989a 100644 --- a/src/main/java/net/sf/jsqlparser/statement/select/Select.java +++ b/src/main/java/net/sf/jsqlparser/statement/select/Select.java @@ -14,6 +14,7 @@ import net.sf.jsqlparser.parser.ASTNodeAccessImpl; import net.sf.jsqlparser.statement.Statement; import net.sf.jsqlparser.statement.StatementVisitor; +import net.sf.jsqlparser.util.SelectUtils; import java.util.ArrayList; import java.util.Arrays; @@ -41,83 +42,7 @@ public static String orderByToString(List orderByElements) { public static String orderByToString(boolean oracleSiblings, List orderByElements) { - return getFormattedList(orderByElements, oracleSiblings ? "ORDER SIBLINGS BY" : "ORDER BY"); - } - - public static String getFormattedList(List list, String expression) { - return getFormattedList(list, expression, true, false); - } - - public static String getFormattedList(List list, String expression, boolean useComma, - boolean useBrackets) { - String sql = getStringList(list, useComma, useBrackets); - - if (sql.length() > 0) { - if (expression.length() > 0) { - sql = " " + expression + " " + sql; - } else { - sql = " " + sql; - } - } - - return sql; - } - - /** - * List the toString out put of the objects in the List comma separated. If the List is null or - * empty an empty string is returned. - *

- * The same as getStringList(list, true, false) - * - * @see #getStringList(List, boolean, boolean) - * @param list list of objects with toString methods - * @return comma separated list of the elements in the list - */ - public static String getStringList(List list) { - return getStringList(list, true, false); - } - - /** - * List the toString out put of the objects in the List that can be comma separated. If the List - * is null or empty an empty string is returned. - * - * @param list list of objects with toString methods - * @param useComma true if the list has to be comma separated - * @param useBrackets true if the list has to be enclosed in brackets - * @return comma separated list of the elements in the list - */ - public static String getStringList(List list, boolean useComma, boolean useBrackets) { - return appendStringListTo(new StringBuilder(), list, useComma, useBrackets).toString(); - } - - /** - * Append the toString out put of the objects in the List (that can be comma separated). If the - * List is null or empty an empty string is returned. - * - * @param list list of objects with toString methods - * @param useComma true if the list has to be comma separated - * @param useBrackets true if the list has to be enclosed in brackets - * @return comma separated list of the elements in the list - */ - public static StringBuilder appendStringListTo(StringBuilder builder, List list, - boolean useComma, boolean useBrackets) { - if (list != null) { - String comma = useComma ? ", " : " "; - - if (useBrackets) { - builder.append("("); - } - - int size = list.size(); - for (int i = 0; i < size; i++) { - builder.append(list.get(i)).append(i < size - 1 ? comma : ""); - } - - if (useBrackets) { - builder.append(")"); - } - } - return builder; + return SelectUtils.getFormattedList(orderByElements, oracleSiblings ? "ORDER SIBLINGS BY" : "ORDER BY"); } public List getWithItemsList() { diff --git a/src/main/java/net/sf/jsqlparser/statement/select/UnPivot.java b/src/main/java/net/sf/jsqlparser/statement/select/UnPivot.java index 8d39f831e..6f286254b 100644 --- a/src/main/java/net/sf/jsqlparser/statement/select/UnPivot.java +++ b/src/main/java/net/sf/jsqlparser/statement/select/UnPivot.java @@ -12,6 +12,7 @@ import net.sf.jsqlparser.expression.Alias; import net.sf.jsqlparser.expression.operators.relational.ExpressionList; import net.sf.jsqlparser.schema.Column; +import net.sf.jsqlparser.util.SelectUtils; import java.io.Serializable; import java.util.List; @@ -75,7 +76,7 @@ public String toString() { + unpivotClause.toString() + " FOR " + unpivotForClause.toString() - + " IN " + PlainSelect.getStringList(unpivotInClause, true, true) + ")" + + " IN " + SelectUtils.getStringList(unpivotInClause, true, true) + ")" + (alias != null ? alias.toString() : ""); } diff --git a/src/main/java/net/sf/jsqlparser/statement/select/WithItem.java b/src/main/java/net/sf/jsqlparser/statement/select/WithItem.java index de673f491..e2820b34f 100644 --- a/src/main/java/net/sf/jsqlparser/statement/select/WithItem.java +++ b/src/main/java/net/sf/jsqlparser/statement/select/WithItem.java @@ -9,6 +9,8 @@ */ package net.sf.jsqlparser.statement.select; +import net.sf.jsqlparser.util.SelectUtils; + import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -49,7 +51,7 @@ public StringBuilder appendSelectBodyTo(StringBuilder builder) { builder.append(recursive ? "RECURSIVE " : ""); builder.append(alias.getName()); builder.append( - (withItemList != null) ? " " + PlainSelect.getStringList(withItemList, true, true) + (withItemList != null) ? " " + SelectUtils.getStringList(withItemList, true, true) : ""); builder.append(" AS "); diff --git a/src/main/java/net/sf/jsqlparser/statement/update/UpdateSet.java b/src/main/java/net/sf/jsqlparser/statement/update/UpdateSet.java index 84299c0fb..2e3bec210 100644 --- a/src/main/java/net/sf/jsqlparser/statement/update/UpdateSet.java +++ b/src/main/java/net/sf/jsqlparser/statement/update/UpdateSet.java @@ -13,7 +13,7 @@ import net.sf.jsqlparser.expression.operators.relational.ExpressionList; import net.sf.jsqlparser.expression.operators.relational.ParenthesedExpressionList; import net.sf.jsqlparser.schema.Column; -import net.sf.jsqlparser.statement.select.Select; +import net.sf.jsqlparser.util.SelectUtils; import java.io.Serializable; import java.util.Collection; @@ -111,10 +111,10 @@ StringBuilder appendTo(StringBuilder builder, int j) { builder.append(", "); } builder.append( - Select.getStringList(columns, true, columns instanceof ParenthesedExpressionList)); + SelectUtils.getStringList(columns, true, columns instanceof ParenthesedExpressionList)); builder.append(" = "); builder.append( - Select.getStringList(values, true, values instanceof ParenthesedExpressionList)); + SelectUtils.getStringList(values, true, values instanceof ParenthesedExpressionList)); return builder; } diff --git a/src/main/java/net/sf/jsqlparser/util/SelectUtils.java b/src/main/java/net/sf/jsqlparser/util/SelectUtils.java index 88c641fdb..0ebe85a27 100644 --- a/src/main/java/net/sf/jsqlparser/util/SelectUtils.java +++ b/src/main/java/net/sf/jsqlparser/util/SelectUtils.java @@ -19,6 +19,8 @@ import net.sf.jsqlparser.statement.select.Select; import net.sf.jsqlparser.statement.select.SelectItem; +import java.util.List; + public final class SelectUtils { private static final String NOT_SUPPORTED_YET = "Not supported yet."; @@ -104,4 +106,80 @@ public static void addGroupBy(Select select, final Expression expr) { throw new UnsupportedOperationException(NOT_SUPPORTED_YET); } } + + public static String getFormattedList(List list, String expression) { + return getFormattedList(list, expression, true, false); + } + + public static String getFormattedList(List list, String expression, boolean useComma, + boolean useBrackets) { + String sql = getStringList(list, useComma, useBrackets); + + if (sql.length() > 0) { + if (expression.length() > 0) { + sql = " " + expression + " " + sql; + } else { + sql = " " + sql; + } + } + + return sql; + } + + /** + * List the toString out put of the objects in the List comma separated. If the List is null or + * empty an empty string is returned. + *

+ * The same as getStringList(list, true, false) + * + * @see #getStringList(List, boolean, boolean) + * @param list list of objects with toString methods + * @return comma separated list of the elements in the list + */ + public static String getStringList(List list) { + return getStringList(list, true, false); + } + + /** + * List the toString out put of the objects in the List that can be comma separated. If the List + * is null or empty an empty string is returned. + * + * @param list list of objects with toString methods + * @param useComma true if the list has to be comma separated + * @param useBrackets true if the list has to be enclosed in brackets + * @return comma separated list of the elements in the list + */ + public static String getStringList(List list, boolean useComma, boolean useBrackets) { + return appendStringListTo(new StringBuilder(), list, useComma, useBrackets).toString(); + } + + /** + * Append the toString out put of the objects in the List (that can be comma separated). If the + * List is null or empty an empty string is returned. + * + * @param list list of objects with toString methods + * @param useComma true if the list has to be comma separated + * @param useBrackets true if the list has to be enclosed in brackets + * @return comma separated list of the elements in the list + */ + public static StringBuilder appendStringListTo(StringBuilder builder, List list, + boolean useComma, boolean useBrackets) { + if (list != null) { + String comma = useComma ? ", " : " "; + + if (useBrackets) { + builder.append("("); + } + + int size = list.size(); + for (int i = 0; i < size; i++) { + builder.append(list.get(i)).append(i < size - 1 ? comma : ""); + } + + if (useBrackets) { + builder.append(")"); + } + } + return builder; + } } diff --git a/src/main/java/net/sf/jsqlparser/util/cnfexpression/MultiAndExpression.java b/src/main/java/net/sf/jsqlparser/util/cnfexpression/MultiAndExpression.java index a33c81009..6612f99b7 100644 --- a/src/main/java/net/sf/jsqlparser/util/cnfexpression/MultiAndExpression.java +++ b/src/main/java/net/sf/jsqlparser/util/cnfexpression/MultiAndExpression.java @@ -25,9 +25,5 @@ public MultiAndExpression(List childlist) { super(childlist); } - @Override - public String getStringExpression() { - return "AND"; - } } diff --git a/src/main/java/net/sf/jsqlparser/util/cnfexpression/MultiOrExpression.java b/src/main/java/net/sf/jsqlparser/util/cnfexpression/MultiOrExpression.java index 8cc6f56df..538590669 100644 --- a/src/main/java/net/sf/jsqlparser/util/cnfexpression/MultiOrExpression.java +++ b/src/main/java/net/sf/jsqlparser/util/cnfexpression/MultiOrExpression.java @@ -19,9 +19,4 @@ public MultiOrExpression(List childlist) { super(childlist); } - @Override - public String getStringExpression() { - return "OR"; - } - } diff --git a/src/main/java/net/sf/jsqlparser/util/cnfexpression/MultipleExpression.java b/src/main/java/net/sf/jsqlparser/util/cnfexpression/MultipleExpression.java index f37e823cd..97706d5c0 100644 --- a/src/main/java/net/sf/jsqlparser/util/cnfexpression/MultipleExpression.java +++ b/src/main/java/net/sf/jsqlparser/util/cnfexpression/MultipleExpression.java @@ -62,8 +62,6 @@ public void addChild(int index, Expression express) { childlist.add(index, express); } - public abstract String getStringExpression(); - @Override public String toString() { StringBuilder sb = new StringBuilder(); @@ -78,4 +76,14 @@ public String toString() { return sb.toString(); } + public String getStringExpression(){ + + if (this instanceof MultiAndExpression){ + return "AND"; + } + + return "OR"; + } + + } diff --git a/src/main/java/net/sf/jsqlparser/util/deparser/AlterViewDeParser.java b/src/main/java/net/sf/jsqlparser/util/deparser/AlterViewDeParser.java index 99c310941..d4ce83127 100644 --- a/src/main/java/net/sf/jsqlparser/util/deparser/AlterViewDeParser.java +++ b/src/main/java/net/sf/jsqlparser/util/deparser/AlterViewDeParser.java @@ -10,8 +10,8 @@ package net.sf.jsqlparser.util.deparser; import net.sf.jsqlparser.statement.create.view.AlterView; -import net.sf.jsqlparser.statement.select.PlainSelect; import net.sf.jsqlparser.statement.select.SelectVisitor; +import net.sf.jsqlparser.util.SelectUtils; public class AlterViewDeParser extends AbstractDeParser { @@ -39,7 +39,7 @@ public void deParse(AlterView alterView) { } buffer.append("VIEW ").append(alterView.getView().getFullyQualifiedName()); if (alterView.getColumnNames() != null) { - buffer.append(PlainSelect.getStringList(alterView.getColumnNames(), true, true)); + buffer.append(SelectUtils.getStringList(alterView.getColumnNames(), true, true)); } buffer.append(" AS "); diff --git a/src/main/java/net/sf/jsqlparser/util/deparser/CreateTableDeParser.java b/src/main/java/net/sf/jsqlparser/util/deparser/CreateTableDeParser.java index d930e944c..26495173b 100644 --- a/src/main/java/net/sf/jsqlparser/util/deparser/CreateTableDeParser.java +++ b/src/main/java/net/sf/jsqlparser/util/deparser/CreateTableDeParser.java @@ -15,8 +15,8 @@ import net.sf.jsqlparser.statement.create.table.ColumnDefinition; import net.sf.jsqlparser.statement.create.table.CreateTable; import net.sf.jsqlparser.statement.create.table.Index; -import net.sf.jsqlparser.statement.select.PlainSelect; import net.sf.jsqlparser.statement.select.Select; +import net.sf.jsqlparser.util.SelectUtils; public class CreateTableDeParser extends AbstractDeParser { @@ -41,7 +41,7 @@ public void deParse(CreateTable createTable) { if (createTable.isUnlogged()) { buffer.append("UNLOGGED "); } - String params = PlainSelect.getStringList(createTable.getCreateOptionsStrings(), false, false); + String params = SelectUtils.getStringList(createTable.getCreateOptionsStrings(), false, false); if (!"".equals(params)) { buffer.append(params).append(' '); } @@ -90,7 +90,7 @@ public void deParse(CreateTable createTable) { buffer.append(")"); } - params = PlainSelect.getStringList(createTable.getTableOptionsStrings(), false, false); + params = SelectUtils.getStringList(createTable.getTableOptionsStrings(), false, false); if (!"".equals(params)) { buffer.append(' ').append(params); } diff --git a/src/main/java/net/sf/jsqlparser/util/deparser/CreateViewDeParser.java b/src/main/java/net/sf/jsqlparser/util/deparser/CreateViewDeParser.java index c0afab53e..781567cce 100644 --- a/src/main/java/net/sf/jsqlparser/util/deparser/CreateViewDeParser.java +++ b/src/main/java/net/sf/jsqlparser/util/deparser/CreateViewDeParser.java @@ -12,9 +12,9 @@ import net.sf.jsqlparser.statement.create.view.AutoRefreshOption; import net.sf.jsqlparser.statement.create.view.CreateView; import net.sf.jsqlparser.statement.create.view.TemporaryOption; -import net.sf.jsqlparser.statement.select.PlainSelect; import net.sf.jsqlparser.statement.select.Select; import net.sf.jsqlparser.statement.select.SelectVisitor; +import net.sf.jsqlparser.util.SelectUtils; public class CreateViewDeParser extends AbstractDeParser { @@ -76,7 +76,7 @@ public void deParse(CreateView createView) { } if (createView.getViewCommentOptions() != null) { buffer.append( - PlainSelect.getStringList(createView.getViewCommentOptions(), false, false)); + SelectUtils.getStringList(createView.getViewCommentOptions(), false, false)); } buffer.append(" AS "); diff --git a/src/main/java/net/sf/jsqlparser/util/deparser/DropDeParser.java b/src/main/java/net/sf/jsqlparser/util/deparser/DropDeParser.java index 090a2cad1..515e79be5 100644 --- a/src/main/java/net/sf/jsqlparser/util/deparser/DropDeParser.java +++ b/src/main/java/net/sf/jsqlparser/util/deparser/DropDeParser.java @@ -10,7 +10,7 @@ package net.sf.jsqlparser.util.deparser; import net.sf.jsqlparser.statement.drop.Drop; -import net.sf.jsqlparser.statement.select.PlainSelect; +import net.sf.jsqlparser.util.SelectUtils; public class DropDeParser extends AbstractDeParser { @@ -39,7 +39,7 @@ public void deParse(Drop drop) { } if (drop.getParameters() != null && !drop.getParameters().isEmpty()) { - buffer.append(" ").append(PlainSelect.getStringList(drop.getParameters(), false, false)); + buffer.append(" ").append(SelectUtils.getStringList(drop.getParameters(), false, false)); } } diff --git a/src/main/java/net/sf/jsqlparser/util/deparser/ExpressionDeParser.java b/src/main/java/net/sf/jsqlparser/util/deparser/ExpressionDeParser.java index d44104dce..a59008252 100644 --- a/src/main/java/net/sf/jsqlparser/util/deparser/ExpressionDeParser.java +++ b/src/main/java/net/sf/jsqlparser/util/deparser/ExpressionDeParser.java @@ -120,6 +120,7 @@ import net.sf.jsqlparser.statement.select.SelectItem; import net.sf.jsqlparser.statement.select.SelectVisitor; import net.sf.jsqlparser.statement.select.WithItem; +import net.sf.jsqlparser.util.SelectUtils; import java.util.Iterator; import java.util.List; @@ -729,7 +730,7 @@ public void visit(CastExpression cast) { buffer.append(" AS "); buffer.append( cast.getColumnDefinitions().size() > 1 - ? "ROW(" + Select.getStringList(cast.getColumnDefinitions()) + ")" + ? "ROW(" + SelectUtils.getStringList(cast.getColumnDefinitions()) + ")" : cast.getColDataType().toString()); buffer.append(formatStr); buffer.append(")"); diff --git a/src/main/java/net/sf/jsqlparser/util/deparser/SelectDeParser.java b/src/main/java/net/sf/jsqlparser/util/deparser/SelectDeParser.java index 59a613dff..ddac23cc1 100644 --- a/src/main/java/net/sf/jsqlparser/util/deparser/SelectDeParser.java +++ b/src/main/java/net/sf/jsqlparser/util/deparser/SelectDeParser.java @@ -49,6 +49,7 @@ import net.sf.jsqlparser.statement.select.UnPivot; import net.sf.jsqlparser.statement.select.Values; import net.sf.jsqlparser.statement.select.WithItem; +import net.sf.jsqlparser.util.SelectUtils; @SuppressWarnings({"PMD.CyclomaticComplexity", "PMD.NPathComplexity"}) public class SelectDeParser extends AbstractDeParser implements SelectVisitor, @@ -370,13 +371,13 @@ public void visit(Table tableName) { @Override public void visit(Pivot pivot) { // @todo: implement this as Visitor - buffer.append(" PIVOT (").append(PlainSelect.getStringList(pivot.getFunctionItems())); + buffer.append(" PIVOT (").append(SelectUtils.getStringList(pivot.getFunctionItems())); buffer.append(" FOR "); pivot.getForColumns().accept(expressionVisitor); // @todo: implement this as Visitor - buffer.append(" IN ").append(PlainSelect.getStringList(pivot.getInItems(), true, true)); + buffer.append(" IN ").append(SelectUtils.getStringList(pivot.getInItems(), true, true)); buffer.append(")"); if (pivot.getAlias() != null) { @@ -392,13 +393,13 @@ public void visit(UnPivot unpivot) { List unpivotForClause = unpivot.getUnPivotForClause(); buffer.append(" UNPIVOT").append(showOptions && includeNulls ? " INCLUDE NULLS" : "") .append(showOptions && !includeNulls ? " EXCLUDE NULLS" : "").append(" (") - .append(PlainSelect.getStringList(unPivotClause, true, + .append(SelectUtils.getStringList(unPivotClause, true, unPivotClause != null && unPivotClause.size() > 1)) .append(" FOR ") - .append(PlainSelect.getStringList(unpivotForClause, true, + .append(SelectUtils.getStringList(unpivotForClause, true, unpivotForClause != null && unpivotForClause.size() > 1)) .append(" IN ") - .append(PlainSelect.getStringList(unpivot.getUnPivotInClause(), true, true)) + .append(SelectUtils.getStringList(unpivot.getUnPivotInClause(), true, true)) .append(")"); if (unpivot.getAlias() != null) { buffer.append(unpivot.getAlias().toString()); @@ -408,8 +409,8 @@ public void visit(UnPivot unpivot) { @Override public void visit(PivotXml pivot) { List forColumns = pivot.getForColumns(); - buffer.append(" PIVOT XML (").append(PlainSelect.getStringList(pivot.getFunctionItems())) - .append(" FOR ").append(PlainSelect.getStringList(forColumns, true, + buffer.append(" PIVOT XML (").append(SelectUtils.getStringList(pivot.getFunctionItems())) + .append(" FOR ").append(SelectUtils.getStringList(forColumns, true, forColumns != null && forColumns.size() > 1)) .append(" IN ("); if (pivot.isInAny()) { @@ -417,7 +418,7 @@ public void visit(PivotXml pivot) { } else if (pivot.getInSelect() != null) { buffer.append(pivot.getInSelect()); } else { - buffer.append(PlainSelect.getStringList(pivot.getInItems())); + buffer.append(SelectUtils.getStringList(pivot.getInItems())); } buffer.append("))"); } @@ -592,7 +593,7 @@ public void visit(WithItem withItem) { buffer.append(withItem.getAlias().getName()); if (withItem.getWithItemList() != null) { buffer.append(" ") - .append(PlainSelect.getStringList(withItem.getWithItemList(), true, true)); + .append(SelectUtils.getStringList(withItem.getWithItemList(), true, true)); } buffer.append(" AS "); withItem.getSelect().accept(this);