use of net.sf.jsqlparser.schema.Column in project JSqlParser by JSQLParser.
the class StatementDeParserTest method shouldUseProvidedDeParsersWhenDeParsingUpdateNotUsingSelect.
@Test
@SuppressWarnings("PMD.JUnitTestsShouldIncludeAssert")
public void shouldUseProvidedDeParsersWhenDeParsingUpdateNotUsingSelect() {
Update update = new Update();
List<Column> columns = new ArrayList<Column>();
List<Expression> expressions = new ArrayList<Expression>();
Expression where = mock(Expression.class);
List<OrderByElement> orderByElements = new ArrayList<OrderByElement>();
Column column1 = new Column();
Column column2 = new Column();
Expression expression1 = mock(Expression.class);
Expression expression2 = mock(Expression.class);
OrderByElement orderByElement1 = new OrderByElement();
OrderByElement orderByElement2 = new OrderByElement();
Expression orderByElement1Expression = mock(Expression.class);
Expression orderByElement2Expression = mock(Expression.class);
update.setColumns(columns);
update.setExpressions(expressions);
update.setWhere(where);
update.setOrderByElements(orderByElements);
columns.add(column1);
columns.add(column2);
expressions.add(expression1);
expressions.add(expression2);
orderByElements.add(orderByElement1);
orderByElements.add(orderByElement2);
orderByElement1.setExpression(orderByElement1Expression);
orderByElement2.setExpression(orderByElement2Expression);
statementDeParser.visit(update);
then(expressionDeParser).should().visit(column1);
then(expressionDeParser).should().visit(column2);
then(expression1).should().accept(expressionDeParser);
then(expression2).should().accept(expressionDeParser);
then(where).should().accept(expressionDeParser);
then(orderByElement1Expression).should().accept(expressionDeParser);
then(orderByElement2Expression).should().accept(expressionDeParser);
}
use of net.sf.jsqlparser.schema.Column in project JSqlParser by JSQLParser.
the class StatementDeParserTest method shouldUseProvidedDeparsersWhenDeParsingUpsertWithExpressionList.
@Test
@SuppressWarnings("PMD.JUnitTestsShouldIncludeAssert")
public void shouldUseProvidedDeparsersWhenDeParsingUpsertWithExpressionList() throws JSQLParserException {
Upsert upsert = new Upsert();
Table table = new Table();
List<Column> duplicateUpdateColumns = new ArrayList<Column>();
List<Expression> duplicateUpdateExpressionList = new ArrayList<Expression>();
Column duplicateUpdateColumn1 = new Column();
Column duplicateUpdateColumn2 = new Column();
Expression duplicateUpdateExpression1 = mock(Expression.class);
Expression duplicateUpdateExpression2 = mock(Expression.class);
Select select = new Select();
List<WithItem> withItemsList = new ArrayList<WithItem>();
WithItem withItem1 = spy(new WithItem());
WithItem withItem2 = spy(new WithItem());
SelectBody withItem1SelectBody = mock(SelectBody.class);
SelectBody withItem2SelectBody = mock(SelectBody.class);
SelectBody selectBody = mock(SelectBody.class);
upsert.setSelect(select);
upsert.setTable(table);
upsert.setUseDuplicate(true);
upsert.setDuplicateUpdateColumns(duplicateUpdateColumns);
upsert.setDuplicateUpdateExpressionList(duplicateUpdateExpressionList);
duplicateUpdateColumns.add(duplicateUpdateColumn1);
duplicateUpdateColumns.add(duplicateUpdateColumn2);
duplicateUpdateExpressionList.add(duplicateUpdateExpression1);
duplicateUpdateExpressionList.add(duplicateUpdateExpression2);
upsert.setDuplicateUpdateExpressionList(duplicateUpdateExpressionList);
select.setWithItemsList(withItemsList);
select.setSelectBody(selectBody);
withItemsList.add(withItem1);
withItemsList.add(withItem2);
withItem1.setSelectBody(withItem1SelectBody);
withItem2.setSelectBody(withItem2SelectBody);
statementDeParser.visit(upsert);
then(withItem1).should().accept(selectDeParser);
then(withItem2).should().accept(selectDeParser);
then(selectBody).should().accept(selectDeParser);
then(duplicateUpdateExpression1).should().accept(expressionDeParser);
then(duplicateUpdateExpression1).should().accept(expressionDeParser);
}
use of net.sf.jsqlparser.schema.Column in project JSqlParser by JSQLParser.
the class SelectASTTest method testSelectASTColumn.
@Test
public void testSelectASTColumn() throws JSQLParserException {
String sql = "SELECT a, b FROM mytable order by b, c";
StringBuilder b = new StringBuilder(sql);
Statement stmt = CCJSqlParserUtil.parse(sql);
Select select = (Select) stmt;
PlainSelect ps = (PlainSelect) select.getSelectBody();
for (SelectItem item : ps.getSelectItems()) {
SelectExpressionItem sei = (SelectExpressionItem) item;
Column c = (Column) sei.getExpression();
SimpleNode astNode = c.getASTNode();
assertNotNull(astNode);
b.setCharAt(astNode.jjtGetFirstToken().beginColumn - 1, '*');
}
for (OrderByElement item : ps.getOrderByElements()) {
Column c = (Column) item.getExpression();
SimpleNode astNode = c.getASTNode();
assertNotNull(astNode);
b.setCharAt(astNode.jjtGetFirstToken().beginColumn - 1, '#');
}
assertEquals("SELECT *, * FROM mytable order by #, #", b.toString());
}
use of net.sf.jsqlparser.schema.Column in project JSqlParser by JSQLParser.
the class InsertDeParser method deParse.
public void deParse(Insert insert) {
buffer.append("INSERT ");
if (insert.getModifierPriority() != null) {
buffer.append(insert.getModifierPriority()).append(" ");
}
if (insert.isModifierIgnore()) {
buffer.append("IGNORE ");
}
buffer.append("INTO ");
buffer.append(insert.getTable().toString());
if (insert.getColumns() != null) {
buffer.append(" (");
for (Iterator<Column> iter = insert.getColumns().iterator(); iter.hasNext(); ) {
Column column = iter.next();
buffer.append(column.getColumnName());
if (iter.hasNext()) {
buffer.append(", ");
}
}
buffer.append(")");
}
if (insert.getItemsList() != null) {
insert.getItemsList().accept(this);
}
if (insert.getSelect() != null) {
buffer.append(" ");
if (insert.isUseSelectBrackets()) {
buffer.append("(");
}
if (insert.getSelect().getWithItemsList() != null) {
buffer.append("WITH ");
for (WithItem with : insert.getSelect().getWithItemsList()) {
with.accept(selectVisitor);
}
buffer.append(" ");
}
insert.getSelect().getSelectBody().accept(selectVisitor);
if (insert.isUseSelectBrackets()) {
buffer.append(")");
}
}
if (insert.isUseSet()) {
buffer.append(" SET ");
for (int i = 0; i < insert.getSetColumns().size(); i++) {
Column column = insert.getSetColumns().get(i);
column.accept(expressionVisitor);
buffer.append(" = ");
Expression expression = insert.getSetExpressionList().get(i);
expression.accept(expressionVisitor);
if (i < insert.getSetColumns().size() - 1) {
buffer.append(", ");
}
}
}
if (insert.isUseDuplicate()) {
buffer.append(" ON DUPLICATE KEY UPDATE ");
for (int i = 0; i < insert.getDuplicateUpdateColumns().size(); i++) {
Column column = insert.getDuplicateUpdateColumns().get(i);
buffer.append(column.getFullyQualifiedName()).append(" = ");
Expression expression = insert.getDuplicateUpdateExpressionList().get(i);
expression.accept(expressionVisitor);
if (i < insert.getDuplicateUpdateColumns().size() - 1) {
buffer.append(", ");
}
}
}
if (insert.isReturningAllColumns()) {
buffer.append(" RETURNING *");
} else if (insert.getReturningExpressionList() != null) {
buffer.append(" RETURNING ");
for (Iterator<SelectExpressionItem> iter = insert.getReturningExpressionList().iterator(); iter.hasNext(); ) {
buffer.append(iter.next().toString());
if (iter.hasNext()) {
buffer.append(", ");
}
}
}
}
use of net.sf.jsqlparser.schema.Column in project JSqlParser by JSQLParser.
the class UpsertDeParser method appendColumns.
private void appendColumns(Upsert upsert) {
buffer.append(" (");
for (Iterator<Column> iter = upsert.getColumns().iterator(); iter.hasNext(); ) {
Column column = iter.next();
buffer.append(column.getColumnName());
if (iter.hasNext()) {
buffer.append(", ");
}
}
buffer.append(")");
}
Aggregations