Class SqlParser
java.lang.Object
com.loomcache.server.query.SqlParser
Calcite-backed SQL parser for basic SELECT queries and catalog DDL.
Supports: SELECT, FROM, WHERE, ORDER BY, LIMIT, CREATE [OR REPLACE] MAPPING/INDEX/VIEW/TYPE,
INSERT INTO, SINK INTO, UPDATE, DELETE, EXPLAIN, SHOW MAPPINGS/VIEWS/TYPES
Operators: =, !=, invalid input: '<', >, invalid input: '<'=, >=, LIKE, ILIKE, REGEX, PARTITIONPREDICATE, BETWEEN, IN, AND, OR, NOT
Aggregates: COUNT(*), SUM(col), AVG(col), MIN(col), MAX(col)
Features: Line/column error tracking, SQL comment support (-- and /* */), error recovery
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordParsed CREATE INDEX DDL statement.static final recordParsed CREATE MAPPING DDL statement.static final recordParsed CREATE TYPE DDL statement.static final recordParsed CREATE VIEW DDL statement.static final recordParsed DELETE DML statement.static final recordParsed EXPLAIN statement for a SELECT query.static final recordParsed INSERT INTO DML statement.static interfaceParse error with position information.static final recordParsed SHOW catalog statement.static final recordParsed SINK INTO DML statement.static final recordConcrete syntax error implementation.static final recordParsed UPDATE DML statement. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturns the list of errors collected during parsing.booleanReturns true if parsing completed without errors.static booleanstatic booleanstatic booleanstatic booleanstatic booleanisDeleteStatement(String sql) static booleanisExplainStatement(String sql) static booleanisInsertStatement(String sql) static booleanisShowStatement(String sql) static booleanisSinkStatement(String sql) static booleanisUpdateStatement(String sql) Parses a SQL query string and returns a QueryPlan.parseCreateIndex(String sql) parseCreateMapping(String sql) parseCreateType(String sql) parseCreateView(String sql) parseDelete(String sql) parseExplain(String sql) parseInsert(String sql) parseUpdate(String sql) parseWithErrorHandling(String sql, boolean strict) Parses a SQL query with configurable error handling.
-
Constructor Details
-
SqlParser
public SqlParser()
-
-
Method Details
-
parse
Parses a SQL query string and returns a QueryPlan. Uses strict error handling by default.- Parameters:
sql- the SQL query to parse- Returns:
- a QueryPlan representing the parsed query
- Throws:
IllegalArgumentException- if the SQL is invalid
-
parseWithErrorHandling
Parses a SQL query with configurable error handling.- Parameters:
sql- the SQL query to parsestrict- if true, throws on first error; if false, collects all errors- Returns:
- a QueryPlan representing the parsed query
- Throws:
IllegalArgumentException- if the SQL is invalid
-
parseCreateMapping
-
isCreateMappingStatement
-
parseCreateIndex
-
isCreateIndexStatement
-
parseCreateView
-
isCreateViewStatement
-
parseCreateType
-
isCreateTypeStatement
-
parseInsert
-
isInsertStatement
-
parseSink
-
isSinkStatement
-
parseUpdate
-
isUpdateStatement
-
parseDelete
-
isDeleteStatement
-
parseExplain
-
isExplainStatement
-
parseShow
-
isShowStatement
-
getErrors
Returns the list of errors collected during parsing. Only meaningful when using parseWithErrorHandling with strict=false. -
hasErrors
public boolean hasErrors()Returns true if parsing completed without errors.
-