Class SqlParser

java.lang.Object
com.loomcache.server.query.SqlParser

public class SqlParser extends Object
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
  • Constructor Details

    • SqlParser

      public SqlParser()
  • Method Details

    • parse

      public QueryPlan parse(String sql)
      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

      public QueryPlan parseWithErrorHandling(String sql, boolean strict)
      Parses a SQL query with configurable error handling.
      Parameters:
      sql - the SQL query to parse
      strict - 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

      public SqlParser.CreateMappingStatement parseCreateMapping(String sql)
    • isCreateMappingStatement

      public static boolean isCreateMappingStatement(String sql)
    • parseCreateIndex

      public SqlParser.CreateIndexStatement parseCreateIndex(String sql)
    • isCreateIndexStatement

      public static boolean isCreateIndexStatement(String sql)
    • parseCreateView

      public SqlParser.CreateViewStatement parseCreateView(String sql)
    • isCreateViewStatement

      public static boolean isCreateViewStatement(String sql)
    • parseCreateType

      public SqlParser.CreateTypeStatement parseCreateType(String sql)
    • isCreateTypeStatement

      public static boolean isCreateTypeStatement(String sql)
    • parseInsert

      public SqlParser.InsertStatement parseInsert(String sql)
    • isInsertStatement

      public static boolean isInsertStatement(String sql)
    • parseSink

      public SqlParser.SinkStatement parseSink(String sql)
    • isSinkStatement

      public static boolean isSinkStatement(String sql)
    • parseUpdate

      public SqlParser.UpdateStatement parseUpdate(String sql)
    • isUpdateStatement

      public static boolean isUpdateStatement(String sql)
    • parseDelete

      public SqlParser.DeleteStatement parseDelete(String sql)
    • isDeleteStatement

      public static boolean isDeleteStatement(String sql)
    • parseExplain

      public SqlParser.ExplainStatement parseExplain(String sql)
    • isExplainStatement

      public static boolean isExplainStatement(String sql)
    • parseShow

      public SqlParser.ShowStatement parseShow(String sql)
    • isShowStatement

      public static boolean isShowStatement(String sql)
    • getErrors

      public List<SqlParser.ParseError> 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.