Search in sources :

Example 26 with Column

use of net.sf.jsqlparser.schema.Column in project JSqlParser by JSQLParser.

the class SelectASTTest method testSelectASTColumnLF.

@Test
public void testSelectASTColumnLF() throws JSQLParserException {
    String sql = "SELECT  a,  b FROM  mytable \n 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().absoluteBegin - 1, '*');
    }
    for (OrderByElement item : ps.getOrderByElements()) {
        Column c = (Column) item.getExpression();
        SimpleNode astNode = c.getASTNode();
        assertNotNull(astNode);
        b.setCharAt(astNode.jjtGetFirstToken().absoluteBegin - 1, '#');
    }
    assertEquals("SELECT  *,  * FROM  mytable \n order by   #,  #", b.toString());
}
Also used : Column(net.sf.jsqlparser.schema.Column) Statement(net.sf.jsqlparser.statement.Statement) SelectItem(net.sf.jsqlparser.statement.select.SelectItem) SelectExpressionItem(net.sf.jsqlparser.statement.select.SelectExpressionItem) PlainSelect(net.sf.jsqlparser.statement.select.PlainSelect) Select(net.sf.jsqlparser.statement.select.Select) PlainSelect(net.sf.jsqlparser.statement.select.PlainSelect) OrderByElement(net.sf.jsqlparser.statement.select.OrderByElement) SimpleNode(net.sf.jsqlparser.parser.SimpleNode) Test(org.junit.Test)

Example 27 with Column

use of net.sf.jsqlparser.schema.Column in project JSqlParser by JSQLParser.

the class SelectASTTest method testSelectASTCommentCRLF.

@Test
public void testSelectASTCommentCRLF() throws JSQLParserException {
    String sql = "SELECT  /* testcomment */ \r\n a,  b FROM  -- testcomment2 \r\n mytable \r\n 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().absoluteBegin - 1, '*');
    }
    for (OrderByElement item : ps.getOrderByElements()) {
        Column c = (Column) item.getExpression();
        SimpleNode astNode = c.getASTNode();
        assertNotNull(astNode);
        b.setCharAt(astNode.jjtGetFirstToken().absoluteBegin - 1, '#');
    }
    assertEquals("SELECT  /* testcomment */ \r\n *,  * FROM  -- testcomment2 \r\n mytable \r\n order by   #,  #", b.toString());
}
Also used : Column(net.sf.jsqlparser.schema.Column) Statement(net.sf.jsqlparser.statement.Statement) SelectItem(net.sf.jsqlparser.statement.select.SelectItem) SelectExpressionItem(net.sf.jsqlparser.statement.select.SelectExpressionItem) PlainSelect(net.sf.jsqlparser.statement.select.PlainSelect) Select(net.sf.jsqlparser.statement.select.Select) PlainSelect(net.sf.jsqlparser.statement.select.PlainSelect) OrderByElement(net.sf.jsqlparser.statement.select.OrderByElement) SimpleNode(net.sf.jsqlparser.parser.SimpleNode) Test(org.junit.Test)

Example 28 with Column

use of net.sf.jsqlparser.schema.Column in project JSqlParser by JSQLParser.

the class SelectASTTest method testSelectASTCommentLF.

@Test
public void testSelectASTCommentLF() throws JSQLParserException {
    String sql = "SELECT  /* testcomment */ \n a,  b FROM  -- testcomment2 \n mytable \n 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().absoluteBegin - 1, '*');
    }
    for (OrderByElement item : ps.getOrderByElements()) {
        Column c = (Column) item.getExpression();
        SimpleNode astNode = c.getASTNode();
        assertNotNull(astNode);
        b.setCharAt(astNode.jjtGetFirstToken().absoluteBegin - 1, '#');
    }
    assertEquals("SELECT  /* testcomment */ \n *,  * FROM  -- testcomment2 \n mytable \n order by   #,  #", b.toString());
}
Also used : Column(net.sf.jsqlparser.schema.Column) Statement(net.sf.jsqlparser.statement.Statement) SelectItem(net.sf.jsqlparser.statement.select.SelectItem) SelectExpressionItem(net.sf.jsqlparser.statement.select.SelectExpressionItem) PlainSelect(net.sf.jsqlparser.statement.select.PlainSelect) Select(net.sf.jsqlparser.statement.select.Select) PlainSelect(net.sf.jsqlparser.statement.select.PlainSelect) OrderByElement(net.sf.jsqlparser.statement.select.OrderByElement) SimpleNode(net.sf.jsqlparser.parser.SimpleNode) Test(org.junit.Test)

Example 29 with Column

use of net.sf.jsqlparser.schema.Column in project JSqlParser by JSQLParser.

the class ReplaceDeParser method deParse.

public void deParse(Replace replace) {
    buffer.append("REPLACE ");
    if (replace.isUseIntoTables()) {
        buffer.append("INTO ");
    }
    buffer.append(replace.getTable().getFullyQualifiedName());
    if (replace.getItemsList() != null) {
        if (replace.getColumns() != null) {
            buffer.append(" (");
            for (int i = 0; i < replace.getColumns().size(); i++) {
                Column column = replace.getColumns().get(i);
                buffer.append(column.getFullyQualifiedName());
                if (i < replace.getColumns().size() - 1) {
                    buffer.append(", ");
                }
            }
            buffer.append(") ");
        } else {
            buffer.append(" ");
        }
    } else {
        buffer.append(" SET ");
        for (int i = 0; i < replace.getColumns().size(); i++) {
            Column column = replace.getColumns().get(i);
            buffer.append(column.getFullyQualifiedName()).append("=");
            Expression expression = replace.getExpressions().get(i);
            expression.accept(expressionVisitor);
            if (i < replace.getColumns().size() - 1) {
                buffer.append(", ");
            }
        }
    }
    if (replace.getItemsList() != null) {
        // REPLACE mytab SELECT * FROM mytab2
        // or VALUES ('as', ?, 565)
        replace.getItemsList().accept(this);
    }
}
Also used : Column(net.sf.jsqlparser.schema.Column) Expression(net.sf.jsqlparser.expression.Expression)

Example 30 with Column

use of net.sf.jsqlparser.schema.Column in project JSqlParser by JSQLParser.

the class UpdateDeParser method deParse.

public void deParse(Update update) {
    buffer.append("UPDATE ").append(PlainSelect.getStringList(update.getTables(), true, false)).append(" SET ");
    if (!update.isUseSelect()) {
        for (int i = 0; i < update.getColumns().size(); i++) {
            Column column = update.getColumns().get(i);
            column.accept(expressionVisitor);
            buffer.append(" = ");
            Expression expression = update.getExpressions().get(i);
            expression.accept(expressionVisitor);
            if (i < update.getColumns().size() - 1) {
                buffer.append(", ");
            }
        }
    } else {
        if (update.isUseColumnsBrackets()) {
            buffer.append("(");
        }
        for (int i = 0; i < update.getColumns().size(); i++) {
            if (i != 0) {
                buffer.append(", ");
            }
            Column column = update.getColumns().get(i);
            column.accept(expressionVisitor);
        }
        if (update.isUseColumnsBrackets()) {
            buffer.append(")");
        }
        buffer.append(" = ");
        buffer.append("(");
        Select select = update.getSelect();
        select.getSelectBody().accept(selectVisitor);
        buffer.append(")");
    }
    if (update.getFromItem() != null) {
        buffer.append(" FROM ").append(update.getFromItem());
        if (update.getJoins() != null) {
            for (Join join : update.getJoins()) {
                if (join.isSimple()) {
                    buffer.append(", ").append(join);
                } else {
                    buffer.append(" ").append(join);
                }
            }
        }
    }
    if (update.getWhere() != null) {
        buffer.append(" WHERE ");
        update.getWhere().accept(expressionVisitor);
    }
    if (update.getOrderByElements() != null) {
        new OrderByDeParser(expressionVisitor, buffer).deParse(update.getOrderByElements());
    }
    if (update.getLimit() != null) {
        new LimitDeparser(buffer).deParse(update.getLimit());
    }
    if (update.isReturningAllColumns()) {
        buffer.append(" RETURNING *");
    } else if (update.getReturningExpressionList() != null) {
        buffer.append(" RETURNING ");
        for (Iterator<SelectExpressionItem> iter = update.getReturningExpressionList().iterator(); iter.hasNext(); ) {
            buffer.append(iter.next().toString());
            if (iter.hasNext()) {
                buffer.append(", ");
            }
        }
    }
}
Also used : Column(net.sf.jsqlparser.schema.Column) Expression(net.sf.jsqlparser.expression.Expression) PlainSelect(net.sf.jsqlparser.statement.select.PlainSelect) Select(net.sf.jsqlparser.statement.select.Select) Iterator(java.util.Iterator) Join(net.sf.jsqlparser.statement.select.Join)

Aggregations

Column (net.sf.jsqlparser.schema.Column)43 Expression (net.sf.jsqlparser.expression.Expression)19 Test (org.junit.Test)19 Table (net.sf.jsqlparser.schema.Table)18 PlainSelect (net.sf.jsqlparser.statement.select.PlainSelect)18 Select (net.sf.jsqlparser.statement.select.Select)18 ArrayList (java.util.ArrayList)9 SelectExpressionItem (net.sf.jsqlparser.statement.select.SelectExpressionItem)8 SelectItem (net.sf.jsqlparser.statement.select.SelectItem)8 OrderByElement (net.sf.jsqlparser.statement.select.OrderByElement)6 LongValue (net.sf.jsqlparser.expression.LongValue)5 AndExpression (net.sf.jsqlparser.expression.operators.conditional.AndExpression)5 Statement (net.sf.jsqlparser.statement.Statement)5 SelectBody (net.sf.jsqlparser.statement.select.SelectBody)5 SimpleNode (net.sf.jsqlparser.parser.SimpleNode)4 SelectVisitorAdapter (net.sf.jsqlparser.statement.select.SelectVisitorAdapter)4 WriteBuilder (com.google.cloud.spanner.Mutation.WriteBuilder)3 ExpressionVisitorAdapter (net.sf.jsqlparser.expression.ExpressionVisitorAdapter)3 CloudSpannerSQLException (nl.topicus.jdbc.exception.CloudSpannerSQLException)3 SQLException (java.sql.SQLException)2