public static PlainSelect parseSqlQuery(String selectStatement) throws IOException { CCJSqlParserManager pm = new CCJSqlParserManager(); Reader reader = new StringReader(selectStatement); Statement statement; try { statement = pm.parse(reader); } catch (Exception e) { throw new DataSourceException( "parsing select statement: " + e.getCause().getMessage(), e); } if (!(statement instanceof Select)) { // either PlainSelect or Union throw new IllegalArgumentException("expected select or union statement: " + statement); } SelectBody selectBody = ((Select) statement).getSelectBody(); if (selectBody instanceof Union) { // dataStore.registerView(typeName, (Union) selectBody); throw new UnsupportedOperationException( "ArcSDEDataStore does not supports registering Union queries"); } else if (selectBody instanceof PlainSelect) { return (PlainSelect) selectBody; } else { throw new IllegalStateException(selectBody.getClass().getName()); } } }
public static PlainSelect parseQuery(CCJSqlParserManager parserManager, String query) throws JSQLParserException { PlainSelect parsedQueryString; if(!query.toLowerCase().trim().startsWith("select")) { query = FAKE_SELECT_PREFIX + query; } parsedQueryString = (PlainSelect) ((Select) parserManager.parse(new StringReader(query))) .getSelectBody(); return parsedQueryString; }
public static PlainSelect parseQuery(CCJSqlParserManager parserManager, String query) throws JSQLParserException { PlainSelect parsedQueryString; if(!query.toLowerCase().trim().startsWith("select")) { query = FAKE_SELECT_PREFIX + query; } parsedQueryString = (PlainSelect) ((Select) parserManager.parse(new StringReader(query))) .getSelectBody(); return parsedQueryString; }
/** * Parse a SQL/ADQL string using JSqlParser, return the result Statement. * * @param query * @return * @throws JSQLParserException SQL syntax error */ public static Statement receiveQuery(String query) throws JSQLParserException { log.debug(query); Statement statement = null; StringReader sr = new StringReader(query); CCJSqlParserManager sqlParser = new CCJSqlParserManager(); statement = sqlParser.parse(sr); return statement; }
public static String name_select_where(String sql) throws JSQLParserException { CCJSqlParserManager parserManager = new CCJSqlParserManager(); Select select = (Select) parserManager.parse(new StringReader(sql)); PlainSelect plain = (PlainSelect) select.getSelectBody(); Expression where_expression = plain.getWhere(); if (where_expression == null) return ""; String str = where_expression.toString(); return str; }
public static SelectBody parse(String selectStatement)throws IOException{ CCJSqlParserManager pm = new CCJSqlParserManager(); Reader reader = new StringReader(selectStatement); Statement statement; try { statement = pm.parse(reader); } catch (Exception e) { throw new DataSourceException("parsing select statement: " + e.getCause().getMessage(), e); } if(!(statement instanceof Select)){ //either PlainSelect or Union throw new IllegalArgumentException("expected select or union statement: " + statement); } SelectBody selectBody = ((Select)statement).getSelectBody(); return selectBody; } }
public static PlainSelect parseSqlQuery(String selectStatement) throws IOException { CCJSqlParserManager pm = new CCJSqlParserManager(); Reader reader = new StringReader(selectStatement); Statement statement; try { statement = pm.parse(reader); } catch (Exception e) { throw new DataSourceException("parsing select statement: " + e.getCause().getMessage(), e); } if (!(statement instanceof Select)) { // either PlainSelect or Union throw new IllegalArgumentException("expected select or union statement: " + statement); } SelectBody selectBody = ((Select) statement).getSelectBody(); if (selectBody instanceof Union) { // dataStore.registerView(typeName, (Union) selectBody); throw new UnsupportedOperationException( "ArcSDEDataStore does not supports registering Union queries"); } else if (selectBody instanceof PlainSelect) { return (PlainSelect) selectBody; } else { throw new IllegalStateException(selectBody.getClass().getName()); } } }
public Statement testFullURISingle(String sqlcmd) throws Exception { Statement statement = parser.parse(new StringReader(sqlcmd)); TableNameReplacer tableNameReplacer = new TableNameReplacer(manager); return null; // return tableNameReplacer.run(statement); }
Statement statement = pm.parse(new StringReader(sqlStatement));
import java.io.StringReader; import net.sf.jsqlparser.JSQLParserException; import net.sf.jsqlparser.expression.Function; import net.sf.jsqlparser.parser.CCJSqlParserManager; import net.sf.jsqlparser.statement.select.PlainSelect; import net.sf.jsqlparser.statement.select.Select; import net.sf.jsqlparser.statement.select.SelectExpressionItem; public class MySQLParser { CCJSqlParserManager parserManager = new CCJSqlParserManager(); public MySQLParser() throws JSQLParserException { String statement = "SELECT COUNT(*) FROM db.table1"; PlainSelect plainSelect = (PlainSelect) ((Select) parserManager.parse(new StringReader(statement))).getSelectBody(); System.out.format("%s is function call? %s", plainSelect.getSelectItems().get(0), ((Function)((SelectExpressionItem) plainSelect.getSelectItems().get(0)).getExpression()).isAllColumns()); } public static void main(String[] args) throws JSQLParserException { new MySQLParser(); } }
/** * @param aQuery * @return True if query is select query. * @throws Exception */ public boolean putTableFieldsMetadata(SqlQuery aQuery) throws Exception { CCJSqlParserManager parserManager = new CCJSqlParserManager(); try { Statement parsedQuery = parserManager.parse(new StringReader(aQuery.getSqlText())); if (parsedQuery instanceof Select) { Select select = (Select) parsedQuery; resolveOutputFieldsFromTables(aQuery, select.getSelectBody()); return true; } } catch (JSQLParserException ex) { if (aQuery.isProcedure()) { Logger.getLogger(StoredQueryFactory.class.getName()).log(Level.WARNING, ex.getMessage()); } else { throw ex; } } return false; }
protected String generateCountQuery(String queryString) throws JSQLParserException { CCJSqlParserManager parserManager = new CCJSqlParserManager(); try { PlainSelect plainSelect = (PlainSelect) ((Select) parserManager.parse(new StringReader(queryString))).getSelectBody(); logger.debug("Query string {} contains select"); List items = plainSelect.getSelectItems(); if(items.size() != 1) { logger.error("I don't know how to generate a count query for {}", queryString); return null; } SelectExpressionItem item = (SelectExpressionItem) items.get(0); Function function = new Function(); function.setName("count"); function.setParameters(new ExpressionList(Arrays.asList(item.getExpression()))); item.setExpression(function); plainSelect.setOrderByElements(null); return plainSelect.toString(); } catch(Exception e) { logger.debug("Query string {} does not contain select", e); queryString = "SELECT count(*) " + queryString; PlainSelect plainSelect = (PlainSelect) ((Select) parserManager.parse(new StringReader(queryString))).getSelectBody(); plainSelect.setOrderByElements(null); return plainSelect.toString(); } }
protected String generateCountQuery(String queryString) throws JSQLParserException { CCJSqlParserManager parserManager = new CCJSqlParserManager(); try { PlainSelect plainSelect = (PlainSelect) ((Select) parserManager.parse(new StringReader(queryString))).getSelectBody(); logger.debug("Query string {} contains select"); List items = plainSelect.getSelectItems(); if(items.size() != 1) { logger.error("I don't know how to generate a count query for {}", queryString); return null; } SelectExpressionItem item = (SelectExpressionItem) items.get(0); Function function = new Function(); function.setName("count"); function.setParameters(new ExpressionList(Arrays.asList(item.getExpression()))); item.setExpression(function); plainSelect.setOrderByElements(null); return plainSelect.toString(); } catch(Exception e) { logger.debug("Query string {} does not contain select", e); queryString = "SELECT count(*) " + queryString; PlainSelect plainSelect = (PlainSelect) ((Select) parserManager.parse(new StringReader(queryString))).getSelectBody(); plainSelect.setOrderByElements(null); return plainSelect.toString(); } }
@Test public void testAlias() { TableNameReplacer tableNameReplacer = new TableNameReplacer(manager); String sqlcmd = "select T0.id from (select tmp.id from ddf://adatao/a" + " " + "tmp) T0"; try { Statement statement = parser.parse(new StringReader(sqlcmd)); // statement = tableNameReplacer.run(statement); // System.out.println(statement.toString()); } catch (JSQLParserException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } }
StringReader reader = new StringReader(command); try { Statement statement = parserManager.parse(reader); if (!(statement instanceof Select)) { throw new DDFException("ERROR: Only select is allowed in this sql2ddf");
@Test public void testUnion() { TableNameReplacer tableNameReplacer = new TableNameReplacer(manager); String sqlcmd = "select * from ddf://adatao/a union select * from " + "ddf://adatao/b"; try { Statement statement = parser.parse(new StringReader(sqlcmd)); // System.out.println(statement.toString()); int a = 2; } catch (JSQLParserException e) { e.printStackTrace(); } }
/** * @brief Test sql with namespace specified. * @throws DDFException */ @Test public void testNamespace() throws DDFException { TableNameReplacer tableNameReplacer = new TableNameReplacer(manager); // TableNameReplacer tableNameReplacer = new TableNameReplacer // (manager, "adatao"); String sqlcmd = "select a.b from a"; Statement statement = null; try { statement = parser.parse(new StringReader(sqlcmd)); } catch (JSQLParserException e) { e.printStackTrace(); assert(false); } try { // tableNameReplacer.run(statement); } catch (Exception e) { e.printStackTrace(); assert(false); } assert(statement.toString().equals("SELECT tablename1.b FROM tablename1")); }
/** * @brief Test full uri replacement. * @throws DDFException */ @Test public void testFullURI() throws DDFException { TableNameReplacer tableNameReplacer = new TableNameReplacer(manager); String sqlcmd = "select SUM(ddf://adatao/a.b) from ddf://adatao/a group by ddf://adatao/a.a"; Statement statement = null; try { statement = parser.parse(new StringReader(sqlcmd)); } catch (JSQLParserException e) { e.printStackTrace(); assert(false); } try { // statement = tableNameReplacer.run(statement); } catch (Exception e) { e.printStackTrace(); assert(false); } assert(statement.toString().equals("SELECT SUM(tablename1.b) FROM tablename1 GROUP BY tablename1.a")); }
/** * @brief Test sql with list. * @throws DDFException */ @Test public void testList() throws DDFException { String[] uris={"ddf://adatao/a", "ddf://adatao/b"}; // TableNameReplacer tableNameReplacer = new TableNameReplacer(manager, // Arrays.asList(uris)); TableNameReplacer tableNameReplacer = new TableNameReplacer(manager, null); String sqlcmd = "select {1}.a,{2}.b from {1}"; Statement statement = null; try { statement = parser.parse(new StringReader(sqlcmd)); } catch (JSQLParserException e) { e.printStackTrace(); assert(false); } try { // tableNameReplacer.run(statement); } catch (Exception e) { e.printStackTrace(); assert(false); } assert(statement.toString().equals("SELECT tablename1.a, tablename2.b FROM tablename1")); }
Statement statement = null; try { statement = parser.parse(new StringReader(sqlcmd)); } catch (JSQLParserException e) { e.printStackTrace();