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));
}
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));
}
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);
}
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());
}
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);
}
Aggregations