Search in sources :

Example 31 with Column

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

the class ExpressionVisitorAdapterTest method testCurrentDateExpression.

@Test
public void testCurrentDateExpression() throws JSQLParserException {
    final List<String> columnList = new ArrayList<String>();
    Select select = (Select) CCJSqlParserUtil.parse("select * from foo where bar < CURRENT_DATE");
    PlainSelect plainSelect = (PlainSelect) select.getSelectBody();
    Expression where = plainSelect.getWhere();
    where.accept(new ExpressionVisitorAdapter() {

        @Override
        public void visit(Column column) {
            super.visit(column);
            columnList.add(column.getColumnName());
        }
    });
    assertEquals(1, columnList.size());
    assertEquals("bar", columnList.get(0));
}
Also used : InExpression(net.sf.jsqlparser.expression.operators.relational.InExpression) Column(net.sf.jsqlparser.schema.Column) ArrayList(java.util.ArrayList) PlainSelect(net.sf.jsqlparser.statement.select.PlainSelect) Select(net.sf.jsqlparser.statement.select.Select) PlainSelect(net.sf.jsqlparser.statement.select.PlainSelect) Test(org.junit.Test)

Example 32 with Column

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

the class ExpressionVisitorAdapterTest method testCurrentTimestampExpression.

@Test
public void testCurrentTimestampExpression() throws JSQLParserException {
    final List<String> columnList = new ArrayList<String>();
    Select select = (Select) CCJSqlParserUtil.parse("select * from foo where bar < CURRENT_TIMESTAMP");
    PlainSelect plainSelect = (PlainSelect) select.getSelectBody();
    Expression where = plainSelect.getWhere();
    where.accept(new ExpressionVisitorAdapter() {

        @Override
        public void visit(Column column) {
            super.visit(column);
            columnList.add(column.getColumnName());
        }
    });
    assertEquals(1, columnList.size());
    assertEquals("bar", columnList.get(0));
}
Also used : InExpression(net.sf.jsqlparser.expression.operators.relational.InExpression) Column(net.sf.jsqlparser.schema.Column) ArrayList(java.util.ArrayList) PlainSelect(net.sf.jsqlparser.statement.select.PlainSelect) Select(net.sf.jsqlparser.statement.select.Select) PlainSelect(net.sf.jsqlparser.statement.select.PlainSelect) Test(org.junit.Test)

Example 33 with Column

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

the class CCJSqlParserUtilTest method testParseExpression.

/**
 * Test of parseExpression method, of class CCJSqlParserUtil.
 */
@Test
public void testParseExpression() throws Exception {
    Expression result = CCJSqlParserUtil.parseExpression("a+b");
    assertEquals("a + b", result.toString());
    assertTrue(result instanceof Addition);
    Addition add = (Addition) result;
    assertTrue(add.getLeftExpression() instanceof Column);
    assertTrue(add.getRightExpression() instanceof Column);
}
Also used : Addition(net.sf.jsqlparser.expression.operators.arithmetic.Addition) Expression(net.sf.jsqlparser.expression.Expression) Column(net.sf.jsqlparser.schema.Column) Test(org.junit.Test)

Example 34 with Column

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

the class AdaptersTest method testAdapters.

/**
 * Test extracting JDBC named parameters using adapters
 */
@Test
public void testAdapters() throws JSQLParserException {
    String sql = "SELECT * FROM MYTABLE WHERE COLUMN_A = :paramA AND COLUMN_B <> :paramB";
    Statement stmnt = CCJSqlParserUtil.parse(sql);
    final Stack<Pair<String, String>> params = new Stack<Pair<String, String>>();
    stmnt.accept(new StatementVisitorAdapter() {

        @Override
        public void visit(Select select) {
            select.getSelectBody().accept(new SelectVisitorAdapter() {

                @Override
                public void visit(PlainSelect plainSelect) {
                    plainSelect.getWhere().accept(new ExpressionVisitorAdapter() {

                        @Override
                        protected void visitBinaryExpression(BinaryExpression expr) {
                            if (!(expr instanceof AndExpression)) {
                                params.push(new Pair<String, String>(null, null));
                            }
                            super.visitBinaryExpression(expr);
                        }

                        @Override
                        public void visit(Column column) {
                            params.push(new Pair<String, String>(column.getColumnName(), params.pop().getRight()));
                        }

                        @Override
                        public void visit(JdbcNamedParameter parameter) {
                            params.push(new Pair<String, String>(params.pop().getLeft(), parameter.getName()));
                        }
                    });
                }
            });
        }
    });
    assertEquals(2, params.size());
    Pair<String, String> param2 = params.pop();
    assertEquals("COLUMN_B", param2.getLeft());
    assertEquals("paramB", param2.getRight());
    Pair<String, String> param1 = params.pop();
    assertEquals("COLUMN_A", param1.getLeft());
    assertEquals("paramA", param1.getRight());
}
Also used : JdbcNamedParameter(net.sf.jsqlparser.expression.JdbcNamedParameter) PlainSelect(net.sf.jsqlparser.statement.select.PlainSelect) Stack(java.util.Stack) SelectVisitorAdapter(net.sf.jsqlparser.statement.select.SelectVisitorAdapter) AndExpression(net.sf.jsqlparser.expression.operators.conditional.AndExpression) BinaryExpression(net.sf.jsqlparser.expression.BinaryExpression) Column(net.sf.jsqlparser.schema.Column) PlainSelect(net.sf.jsqlparser.statement.select.PlainSelect) Select(net.sf.jsqlparser.statement.select.Select) ExpressionVisitorAdapter(net.sf.jsqlparser.expression.ExpressionVisitorAdapter) Test(org.junit.Test)

Example 35 with Column

use of net.sf.jsqlparser.schema.Column in project herddb by diennea.

the class ColumnReferencesDiscovery method accumulate.

private void accumulate(Column column) {
    String tableName;
    Table fromTable = column.getTable();
    if (fromTable == null || fromTable.getName() == null) {
        if (mainTableAlias == null) {
            throw new IllegalArgumentException("you have to full qualify column names, ambiguos column is " + column);
        }
        tableName = mainTableAlias;
    } else {
        tableName = fromTable.getName();
    }
    String tableAlias = tableName;
    if (fromTable.getAlias() != null && fromTable.getAlias().getName() != null) {
        tableAlias = fromTable.getAlias().getName();
    }
    if (mainTableAlias == null) {
        mainTableAlias = tableAlias;
    } else if (!mainTableAlias.equals(tableAlias)) {
        containsMixedAliases = true;
        mainTableAlias = null;
    }
    List<Column> columnsForTable = columnsByTable.get(tableAlias);
    if (columnsForTable == null) {
        columnsForTable = new ArrayList<>();
        columnsByTable.put(tableAlias, columnsForTable);
    }
    columnsForTable.add(column);
}
Also used : Table(net.sf.jsqlparser.schema.Table) Column(net.sf.jsqlparser.schema.Column)

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