public class SparksqlSqlParser extends AbstractSqlParser
This parser handles SparkSQL-specific SQL syntax including:
Design Notes:
AbstractSqlParser using the template method patternTLexerSparksql for tokenizationTParserSparksql for parsingSqlParser,
AbstractSqlParser,
TLexerSparksql,
TParserSparksqlAbstractSqlParser.PreparedSqlReader| Modifier and Type | Field and Description |
|---|---|
TLexerSparksql |
flexer
The SparkSQL lexer used for tokenization
|
defaultDelimiterStr, delimiterChar, frameStack, globalContext, globalFrame, lexer, parserContext, sourcetokenlist, sqlcmds, sqlEnv, sqlstatements, syntaxErrors, vendor| Constructor and Description |
|---|
SparksqlSqlParser()
Construct SparkSQL parser.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
extractVendorRawStatements(SqlParseResult.Builder builder)
Call SparkSQL-specific raw statement extraction logic.
|
protected TCustomLexer |
getLexer(ParserContext context)
Return the SparkSQL lexer instance.
|
protected TCustomParser |
getParser(ParserContext context,
TSourceTokenList tokens)
Return the SparkSQL parser instance with updated token list.
|
protected void |
performInterpreter(ParserContext context,
TStatementList statements)
Perform interpretation/evaluation on parsed statements.
|
protected TStatementList |
performParsing(ParserContext context,
TCustomParser parser,
TCustomParser secondaryParser,
TSourceTokenList tokens,
TStatementList rawStatements)
Perform full parsing of statements with syntax checking.
|
protected void |
performSemanticAnalysis(ParserContext context,
TStatementList statements)
Perform semantic analysis on parsed statements.
|
protected void |
setupVendorParsersForExtraction()
Setup SparkSQL parser for raw statement extraction.
|
protected void |
tokenizeVendorSql()
Call SparkSQL-specific tokenization logic.
|
afterStatementParsed, attemptErrorRecovery, copyErrorsFromStatement, doAfterTokenize, doExtractRawStatements, extractRawStatements, getanewsourcetoken, getDefaultDelimiterStr, getDelimiterChar, getErrorCount, getrawsqlstatements, getSecondaryParser, getSyntaxErrors, getVendor, handleStatementParsingException, initializeGlobalContext, isDollarFunctionDelimiter, onRawStatementComplete, onRawStatementCompleteVendorSpecific, parse, performTokenization, prepareSqlReader, processTokensBeforeParse, processTokensInTokenTable, setTokenHandle, tokenize, toString, towinlinebreakpublic TLexerSparksql flexer
public SparksqlSqlParser()
Configures the parser for Apache Spark SQL with default delimiter (;).
protected TCustomLexer getLexer(ParserContext context)
getLexer in class AbstractSqlParsercontext - the parser contextprotected TCustomParser getParser(ParserContext context, TSourceTokenList tokens)
getParser in class AbstractSqlParsercontext - the parser contexttokens - the source token listprotected void tokenizeVendorSql()
tokenizeVendorSql in class AbstractSqlParserprotected void setupVendorParsersForExtraction()
setupVendorParsersForExtraction in class AbstractSqlParserprotected void extractVendorRawStatements(SqlParseResult.Builder builder)
extractVendorRawStatements in class AbstractSqlParserbuilder - the result builder to populate with raw statementsprotected TStatementList performParsing(ParserContext context, TCustomParser parser, TCustomParser secondaryParser, TSourceTokenList tokens, TStatementList rawStatements)
performParsing in class AbstractSqlParsercontext - the parser contextparser - the main parser instancesecondaryParser - secondary parser (may be null)tokens - the source token listrawStatements - raw statements already extracted (never null)protected void performSemanticAnalysis(ParserContext context, TStatementList statements)
AbstractSqlParserHook Method: Default implementation does nothing. Override to provide vendor-specific semantic analysis.
Typical Implementation:
performSemanticAnalysis in class AbstractSqlParsercontext - the parser contextstatements - the parsed statements (mutable)protected void performInterpreter(ParserContext context, TStatementList statements)
AbstractSqlParserHook Method: Default implementation does nothing. Override to provide AST interpretation/evaluation.
Typical Implementation:
performInterpreter in class AbstractSqlParsercontext - the parser contextstatements - the parsed statements (mutable)