private static Statement parseFormatted(SqlParser sqlParser, ParsingOptions parsingOptions, String sql, Node tree) { try { return sqlParser.createStatement(sql, parsingOptions); } catch (ParsingException e) { throw new AssertionError(format( "failed to parse formatted SQL: %s\nerror: %s\ntree: %s", sql, e.getMessage(), tree)); } }
/** * Consider using {@link #createStatement(String, ParsingOptions)} */ @Deprecated public Statement createStatement(String sql) { return createStatement(sql, new ParsingOptions()); }
/** * Consider using {@link #createStatement(String, ParsingOptions)} */ @Deprecated public Statement createStatement(String sql) { return createStatement(sql, new ParsingOptions()); }
private static Statement parseFormatted(SqlParser sqlParser, ParsingOptions parsingOptions, String sql, Node tree) { try { return sqlParser.createStatement(sql, parsingOptions); } catch (ParsingException e) { throw new AssertionError(format( "failed to parse formatted SQL: %s\nerror: %s\ntree: %s", sql, e.getMessage(), tree)); } }
static QueryType statementToQueryType(SqlParser parser, String sql) { try { return statementToQueryType(parser.createStatement(sql, new ParsingOptions(AS_DOUBLE /* anything */))); } catch (RuntimeException e) { throw new UnsupportedOperationException(); } }
public PreparedQuery prepareQuery(Session session, String query) throws ParsingException, PrestoException, SemanticException { Statement wrappedStatement = sqlParser.createStatement(query, createParsingOptions(session)); return prepareQuery(session, wrappedStatement); }
private static Statement unwrapExecuteStatement(Statement statement, SqlParser sqlParser, Session session) { if (!(statement instanceof Execute)) { return statement; } String sql = session.getPreparedStatementFromExecute((Execute) statement); return sqlParser.createStatement(sql, createParsingOptions(session)); }
private static Statement unwrapExecuteStatement(Statement statement, SqlParser sqlParser, Session session) { if (!(statement instanceof Execute)) { return statement; } String sql = session.getPreparedStatementFromExecute((Execute) statement); return sqlParser.createStatement(sql, createParsingOptions(session)); }
public PreparedQuery prepareQuery(Session session, String query) throws ParsingException, PrestoException, SemanticException { Statement wrappedStatement = sqlParser.createStatement(query, createParsingOptions(session)); return prepareQuery(session, wrappedStatement); }
private Query parseView(String view, QualifiedObjectName name, Node node) { try { Statement statement = sqlParser.createStatement(view, createParsingOptions(session)); return (Query) statement; } catch (ParsingException e) { throw new SemanticException(VIEW_PARSE_ERROR, node, "Failed parsing stored view '%s': %s", name, e.getMessage()); } }
private Query parseView(String view, QualifiedObjectName name, Node node) { try { Statement statement = sqlParser.createStatement(view, createParsingOptions(session)); return (Query) statement; } catch (ParsingException e) { throw new SemanticException(VIEW_PARSE_ERROR, node, "Failed parsing stored view '%s': %s", name, e.getMessage()); } }
@Test(dataProvider = "statements") public void testStatement(String sql, String error) { try { SQL_PARSER.createStatement(sql); fail("Expected parsing to fail"); } catch (ParsingException e) { assertEquals(e.getMessage(), error, "Error message mismatch for query:\n\n" + sql + "\n\n"); } }
private Query parseView(String view, QualifiedObjectName name, Node node) { try { return (Query) sqlParser.createStatement(view, createParsingOptions(session)); } catch (ParsingException e) { throw new SemanticException(VIEW_PARSE_ERROR, node, "Failed parsing stored view '%s': %s", name, e.getMessage()); } }
private Query parseView(String view, QualifiedObjectName name, Node node) { try { return (Query) sqlParser.createStatement(view, createParsingOptions(session)); } catch (ParsingException e) { throw new SemanticException(VIEW_PARSE_ERROR, node, "Failed parsing stored view '%s': %s", name, e.getMessage()); } }
private void assetQuery(String query) { SqlParser parser = new SqlParser(); Statement statement = parser.createStatement(query, new ParsingOptions()); String formattedQuery = getFormattedSql(statement, parser, Optional.empty()); assertEquals(formattedQuery, query); } }
private static void assertStatement(String query, Statement expected) { assertParsed(query, expected, SQL_PARSER.createStatement(query)); assertFormattedSql(SQL_PARSER, expected); }
public String getGraphvizExplainPlan(String query, ExplainType.Type planType) { QueryExplainer explainer = getQueryExplainer(); return transaction(queryRunner.getTransactionManager(), queryRunner.getAccessControl()) .singleStatement() .execute(queryRunner.getDefaultSession(), session -> { return explainer.getGraphvizPlan(session, sqlParser.createStatement(query, createParsingOptions(session)), planType, emptyList(), WarningCollector.NOOP); }); }
@Test public void testAllowIdentifierColon() { SqlParser sqlParser = new SqlParser(new SqlParserOptions().allowIdentifierSymbol(COLON)); sqlParser.createStatement("select * from foo:bar"); }
private void analyze(Session clientSession, @Language("SQL") String query) { transaction(transactionManager, accessControl) .singleStatement() .readUncommitted() .readOnly() .execute(clientSession, session -> { Analyzer analyzer = createAnalyzer(session, metadata); Statement statement = SQL_PARSER.createStatement(query); analyzer.analyze(statement); }); }
private void analyze(Session clientSession, @Language("SQL") String query) { transaction(transactionManager, accessControl) .singleStatement() .readUncommitted() .readOnly() .execute(clientSession, session -> { Analyzer analyzer = createAnalyzer(session, metadata); Statement statement = SQL_PARSER.createStatement(query); analyzer.analyze(statement); }); }