Package org.h2.command
Class Parser
- java.lang.Object
-
- org.h2.command.Parser
-
public class Parser extends java.lang.Object
The parser is used to convert a SQL statement string to an command object.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
Parser.NullConstraintType
Enumeration describing null constraints
-
Field Summary
Fields Modifier and Type Field Description private CreateView
createView
private java.util.List<TableView>
cteCleanups
private Prepared
currentPrepared
private Select
currentSelect
private java.lang.String
currentToken
private int
currentTokenType
private Database
database
private java.util.ArrayList<java.lang.String>
expectedList
private boolean
identifiersToLower
private boolean
identifiersToUpper
private boolean
literalsChecked
private java.util.BitSet
nonKeywords
private int
orderInFrom
private java.util.ArrayList<Parameter>
parameters
private boolean
parseDomainConstraint
private boolean
recompileAlways
private boolean
rightsChecked
private java.lang.String
schemaName
private SessionLocal
session
private java.lang.String
sqlCommand
private java.util.ArrayList<Parameter>
suppliedParameters
(package private) Token
token
(package private) int
tokenIndex
(package private) java.util.ArrayList<Token>
tokens
private boolean
variableBinary
private static java.lang.String
WITH_STATEMENT_SUPPORTS_LIMITED_SUB_STATEMENTS
-
Constructor Summary
Constructors Constructor Description Parser()
Creates a new instance of parser for special use cases.Parser(SessionLocal session)
Creates a new instance of parser.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addExpected(int tokenType)
private void
addExpected(java.lang.String token)
private void
addJoin(TableFilter top, TableFilter join, boolean outer, Expression on)
Add one join to another.private Expression
addJoinColumn(Expression on, TableFilter filter1, TableFilter filter2, Column column1, Column column2, boolean rightJoin)
private void
addMultipleExpected(int... tokenTypes)
private boolean
addRoleOrRight(GrantRevoke command)
private TableFilter
buildTableFilter(Table table, java.lang.String alias, java.util.ArrayList<java.lang.String> derivedColumnNames, IndexHints indexHints)
private void
checkDatabaseName(java.lang.String databaseName)
private void
checkLiterals()
private void
checkSchema(Schema old)
private Column
columnIfTableExists(Schema schema, java.lang.String tableName, java.lang.String columnName, boolean ifTableExists, boolean ifExists)
private Prepared
commandIfTableExists(Schema schema, java.lang.String tableName, boolean ifTableExists, Prepared commandIfTableExists)
private TableView
createCTEView(java.lang.String cteViewName, java.lang.String querySQL, java.util.List<Column> columnTemplateList, boolean allowRecursiveQueryDetection, boolean addViewToSession, boolean isTemporary)
private SimpleCase.SimpleWhen
decodeToWhen(Expression caseOperand, boolean canOptimize, Expression whenOperand, Expression result)
private void
discardTableHint()
private void
discardWithTableHints()
private boolean
equalsToken(java.lang.String a, java.lang.String b)
private Schema
findSchema(java.lang.String schemaName)
private Sequence
findSequence(java.lang.String schema, java.lang.String sequenceName)
private void
findTableNameCandidates(java.lang.String schemaName, java.lang.String tableName, java.util.Set<java.lang.String> candidates)
private UserDefinedFunction
findUserDefinedFunctionWithinPath(Schema schema, java.lang.String name)
static java.lang.String
formatNonKeywords(java.util.BitSet nonKeywords)
Formats a comma-separated list of keywords.private Prepared
getAlterTableAlterColumnDropDefaultExpression(Schema schema, java.lang.String tableName, boolean ifTableExists, Column column, int type)
private static Column
getColumnWithDomain(java.lang.String columnName, Domain domain)
private static int
getCompareType(int tokenType)
private Prepared
getCurrentPrepared()
private FunctionAlias
getFunctionAliasWithinPath(java.lang.String name, Schema schema)
private static DbException
getInvalidNumericPrecisionException(long precision)
private static DbException
getInvalidPrecisionException(DataType dataType, long precision)
int
getLastParseIndex()
Returns the last parse index.private java.util.ArrayList<Token>
getRemainingTokens(int offset)
private Schema
getSchema()
private Schema
getSchema(java.lang.String schemaName)
private Schema
getSchemaWithDefault()
private DbException
getSyntaxError()
private DbException
getTableOrViewNotFoundDbException(java.lang.String tableName)
private DbException
getTableOrViewNotFoundDbException(java.lang.String schemaName, java.lang.String tableName)
private DbException
getTableOrViewNotFoundDbException(java.util.Set<java.lang.String> schemaNames, java.lang.String tableName)
private void
initialize(java.lang.String sql, java.util.ArrayList<Token> tokens, boolean stopOnCloseParen)
private DbException
intervalDayError()
private DbException
intervalHourError()
private DbException
intervalQualifierError()
private boolean
isDerivedTable()
private boolean
isDirectQuery(int offset)
private boolean
isDualTable(java.lang.String tableName)
Is this the Oracle DUAL table or the IBM/DB2 SYSIBM table?private boolean
isIdentifier()
private static boolean
isKeyword(int tokenType)
private boolean
isKeyword(java.lang.String s)
private boolean
isOrdinaryGroupingSet()
Checks whether current opening parenthesis can be a start of ordinary grouping set.private boolean
isQuery()
private boolean
isQueryQuick()
private boolean
isReservedFunctionName(java.lang.String name)
private boolean
isToken(int tokenType)
private boolean
isToken(java.lang.String tokenName)
static AlterTableAddConstraint
newPrimaryKeyConstraintCommand(SessionLocal session, Schema schema, java.lang.String tableName, Column column)
Create a new alter table command.private Prepared
parse(java.lang.String sql, boolean withExpectedList)
(package private) Prepared
parse(java.lang.String sql, java.util.ArrayList<Token> tokens)
Parse the statement, but don't prepare it for execution.private ConstraintActionType
parseAction()
private Prepared
parseAlter()
private void
parseAlterColumnUsingIf(AlterTableAlterColumn command)
private DefineCommand
parseAlterDomain()
private AlterIndexRename
parseAlterIndex()
private Prepared
parseAlterSchema()
private AlterSequence
parseAlterSequence()
private Prepared
parseAlterTable()
private AlterTableAlterColumn
parseAlterTableAddColumn(java.lang.String tableName, Schema schema, boolean ifTableExists)
private Prepared
parseAlterTableAlter(Schema schema, java.lang.String tableName, boolean ifTableExists)
private AlterTableAlterColumn
parseAlterTableAlterColumnDataType(Schema schema, java.lang.String tableName, java.lang.String columnName, boolean ifTableExists, boolean ifExists)
private Prepared
parseAlterTableAlterColumnIdentity(Schema schema, java.lang.String tableName, boolean ifTableExists, Column column)
private Prepared
parseAlterTableAlterColumnSet(Schema schema, java.lang.String tableName, boolean ifTableExists, boolean ifExists, java.lang.String columnName, Column column)
private AlterTableAlterColumn
parseAlterTableAlterColumnType(Schema schema, java.lang.String tableName, java.lang.String columnName, boolean ifTableExists, boolean ifExists, boolean preserveNotNull)
private Prepared
parseAlterTableCompatibility(Schema schema, java.lang.String tableName, boolean ifTableExists, Mode mode)
private Prepared
parseAlterTableDrop(Schema schema, java.lang.String tableName, boolean ifTableExists)
private Prepared
parseAlterTableDropCompatibility(Schema schema, java.lang.String tableName, boolean ifTableExists)
private Prepared
parseAlterTableRename(Schema schema, java.lang.String tableName, boolean ifTableExists)
private Prepared
parseAlterTableSet(Schema schema, java.lang.String tableName, boolean ifTableExists)
private AlterUser
parseAlterUser()
private DefineCommand
parseAlterView()
private Prepared
parseAnalyze()
private TypeInfo
parseArrayType(TypeInfo componentType)
private Prepared
parseBackup()
private boolean
parseBasicSequenceOption(SequenceOptions options)
private TransactionCommand
parseBegin()
private Call
parseCall()
private ConstraintActionType
parseCascadeOrRestrict()
private TransactionCommand
parseCheckpoint()
private Column
parseColumn(Table table)
private Column
parseColumnForTable(java.lang.String columnName, boolean defaultNullable)
private java.lang.String[]
parseColumnList()
java.lang.Object
parseColumnList(java.lang.String sql, int offset)
Parses a list of column names or numbers in parentheses.private Column[]
parseColumnList(Table table)
private Column
parseColumnWithType(java.lang.String columnName)
private Prepared
parseComment()
private TransactionCommand
parseCommit()
private boolean
parseCompatibilityIdentity(Column column, Mode mode)
private void
parseCompatibilityIdentityOptions(Column column)
private Prepared
parseCreate()
private CreateAggregate
parseCreateAggregate(boolean force)
private CreateConstant
parseCreateConstant()
private CreateDomain
parseCreateDomain()
private CreateFunctionAlias
parseCreateFunctionAlias(boolean force)
private CreateLinkedTable
parseCreateLinkedTable(boolean temp, boolean globalTemp, boolean force)
private CreateRole
parseCreateRole()
private CreateSchema
parseCreateSchema()
private CreateSequence
parseCreateSequence()
private boolean
parseCreateSequenceOption(CreateSequence command)
private CreateSynonym
parseCreateSynonym(boolean orReplace)
private CreateTable
parseCreateTable(boolean temp, boolean globalTemp, boolean persistIndexes)
private void
parseCreateTableMySQLTableOptions(CreateTable command)
private CreateTrigger
parseCreateTrigger(boolean force)
private CreateUser
parseCreateUser()
private CreateView
parseCreateView(boolean force, boolean orReplace)
private TypeInfo
parseDataType()
private TypeInfo
parseDateTimeType(boolean smallDateTime)
private Expression
parseDB2SpecialRegisters(java.lang.String name)
private DeallocateProcedure
parseDeallocate()
private TypeInfo
parseDecfloatType()
private Delete
parseDelete(int start)
Expression
parseDomainConstraintExpression(java.lang.String sql)
Parse a SQL code snippet that represents an expression for a domain constraint.private Prepared
parseDrop()
private DropAggregate
parseDropAggregate()
private DropDomain
parseDropDomain()
private void
parseEndOfQuery(Query command)
private TypeInfo
parseEnumType()
private Prepared
parseExecutePostgre()
private Prepared
parseExecuteSQLServer()
private Explain
parseExplain()
private Query
parseExplicitTable(int start)
Expression
parseExpression(java.lang.String sql)
Parse a SQL code snippet that represents an expression.private TypeInfo
parseFloatType()
private TypeInfo
parseGeometryType()
private GrantRevoke
parseGrantRevoke(int operationType)
private Prepared
parseHelp()
private IndexColumn[]
parseIndexColumnList()
private IndexHints
parseIndexHints(Table table)
private Insert
parseInsert(int start)
private void
parseInsertCompatibility(Insert command, Table table, Mode mode)
private void
parseInsertSet(Insert command, Table table, Column[] columns)
private void
parseIsolationClause()
DB2 isolation clauseprivate Prepared
parseMerge(int start)
private Prepared
parseMergeInto(TableFilter targetTableFilter, int start)
private MergeUsing
parseMergeUsing(TableFilter targetTableFilter, int start)
static java.util.BitSet
parseNonKeywords(java.lang.String[] nonKeywords)
Parses the specified collection of non-keywords.private Parser.NullConstraintType
parseNotNullCompatibility(Parser.NullConstraintType nullConstraint)
private Parser.NullConstraintType
parseNotNullConstraint()
private Parser.NullConstraintType
parseNotNullConstraint(Parser.NullConstraintType nullConstraint)
private TypeInfo
parseNumericType(boolean decimal)
private Prepared
parsePrepare()
private Prepared
parsePrepared()
private Prepared
parsePrepareProcedure()
private Query
parseQuery()
private Query
parseQueryExpression()
private Query
parseQueryExpressionBody()
private Query
parseQueryExpressionBodyAndEndOfQuery()
private Query
parseQueryPrimary()
private Query
parseQueryTerm()
private void
parseReferences(AlterTableAddConstraint command, Schema schema, java.lang.String tableName)
private Prepared
parseReleaseSavepoint()
private Merge
parseReplace(int start)
MySQL compatibility.private TransactionCommand
parseRollback()
private TypeInfo
parseRowType()
private RunScriptCommand
parseRunScript()
private TransactionCommand
parseSavepoint()
private ScriptCommand
parseScript()
private Select
parseSelect(int start)
private void
parseSelectExpressions(Select command)
private void
parseSelectFromPart(Select command)
private boolean
parseSequenceOptions(SequenceOptions options, CreateSequence command, boolean allowDataType, boolean forAlterColumn)
private Prepared
parseSet()
private Set
parseSetCollation()
private Prepared
parseSetTransactionMode()
private Prepared
parseShow()
private TransactionCommand
parseShutdown()
private TableView
parseSingleCommonTableExpression(boolean isTemporary)
private QueryOrderBy
parseSortSpecification()
private java.util.ArrayList<QueryOrderBy>
parseSortSpecificationList()
private int
parseSortType()
private void
parseTableColumnDefinition(CommandWithColumns command, Schema schema, java.lang.String tableName, boolean forCreateTable)
private DefineCommand
parseTableConstraintIf(java.lang.String tableName, Schema schema, boolean ifTableExists)
Table
parseTableName(java.lang.String sql)
Parse a SQL code snippet that represents a table name.private TypeInfo
parseTimestampType()
private TypeInfo
parseTimeType()
private Prepared
parseTruncate()
private Update
parseUpdate(int start)
private Prepared
parseUse()
private TableValueConstructor
parseValues()
private void
parseValuesForCommand(CommandWithValues command)
private java.util.ArrayList<Expression>
parseValuesRow(java.util.ArrayList<Expression> row)
private void
parseWhenMatched(MergeUsing command)
private void
parseWhenNotMatched(MergeUsing command)
private Wildcard
parseWildcard(java.lang.String schema, java.lang.String objectName)
private Prepared
parseWith()
private Prepared
parseWith1(java.util.List<TableView> viewsCreated)
private Prepared
parseWithQuery()
private Prepared
parseWithStatementOrQuery(int start)
Prepared
prepare(java.lang.String sql)
Parse the statement and prepare it for execution.private static Prepared
prepare(SessionLocal s, java.lang.String sql, java.util.ArrayList<Value> paramValues)
Command
prepareCommand(java.lang.String sql)
Parse a statement or a list of statements, and prepare it for execution.private CommandList
prepareCommandList(CommandContainer command, Prepared p, java.lang.String sql, java.lang.String remainingSql, java.util.ArrayList<Token> remainingTokens)
static java.lang.String
quoteIdentifier(java.lang.String s, int sqlFlags)
Add double quotes around an identifier if required.private void
read()
private void
read(int tokenType)
private void
read(java.lang.String expected)
private Expression
readAggregate(AggregateType aggregateType, java.lang.String aggregateName)
private void
readAggregateOrder(Aggregate r, Expression expr, boolean parseSortType)
private Expression
readAnd(Expression r)
private boolean
readBooleanSetting()
private Expression
readBuiltinFunctionIf(java.lang.String upperName)
private Expression
readCase()
private Expression
readCoalesceFunction(int function)
private void
readColumnConstraints(CommandWithColumns command, Schema schema, java.lang.String tableName, Column column)
private Expression
readColumnIfNotFunction()
private java.lang.String
readCommentIf()
private Expression
readComparison(Expression left, int compareType, boolean whenOperand)
private Expression
readCompatibilityCase(Expression when)
private Expression
readCompatibilityFunction(java.lang.String name)
private Expression
readCompatibilitySequenceValueFunction(boolean current)
private Expression
readConcat()
private Expression
readConcatFunction(int function)
private Expression
readCondition()
private Expression
readConditionIs(Expression left, boolean whenOperand)
private Expression
readConditionRightHandSide(Expression r, boolean not, boolean whenOperand)
private TableFilter
readCorrelation(TableFilter tableFilter)
private Expression
readCurrentDateTimeValueFunction(int function, boolean hasParen, java.lang.String name)
private Expression
readCurrentGeneralValueSpecification(int specification)
private Table
readDataChangeDeltaTable(java.lang.String resultOptionName, int backupIndex)
private int
readDateTimeField()
private Expression
readDateTimeFormatFunction(int function)
private java.util.ArrayList<java.lang.String>
readDerivedColumnNames()
private TableFilter
readDerivedTableWithCorrelation()
private boolean
readDistinctAgg()
private Expression
readExpression()
private Expression
readExpressionOrDefault()
private Expression
readExpressionOrIdentifier()
private Expression
readExpressionPart2(Expression r1)
private Expression
readExpressionWithGlobalConditions()
private Expression
readFactor()
private Expression
readFetchOrLimit()
private void
readFilterAndOver(AbstractAggregate aggregate)
private java.lang.String
readFromAlias(java.lang.String alias)
private void
readFromFirstOrLast(WindowFunction function)
private Expression
readFunction(Schema schema, java.lang.String name)
private Expression
readFunctionWithSchema(Schema schema, java.lang.String name, java.lang.String upperName)
private java.lang.String
readIdentifier()
private java.lang.String
readIdentifierWithSchema()
private java.lang.String
readIdentifierWithSchema(java.lang.String defaultSchemaName)
private java.lang.String
readIdentifierWithSchema2(java.lang.String s)
private boolean
readIf(int tokenType)
private boolean
readIf(java.lang.String tokenName)
private Expression
readIfArgument()
private TypeInfo
readIfDataType()
private TypeInfo
readIfDataType1()
private void
readIfEqualOrTo()
private boolean
readIfExists(boolean ifExists)
private boolean
readIfMore()
Read comma or closing brace.private boolean
readIfNotExists()
private java.util.ArrayList<QueryOrderBy>
readIfOrderBy()
private java.lang.Boolean
readIfOverriding()
private SequenceValue
readIfSequencePseudoColumn(java.lang.String schema, java.lang.String objectName)
private Expression
readIfSingleArgument()
private boolean
readIfUseIndex()
private Expression
readIfWildcardRowidOrSequencePseudoColumn(java.lang.String schema, java.lang.String objectName)
private Expression
readInPredicate(Expression left, boolean not, boolean whenOperand)
private int
readInt()
private Expression
readInterval()
private TypeInfo
readIntervalQualifier()
private Expression
readJoinSpecification(TableFilter filter1, TableFilter filter2, boolean rightJoin)
private boolean
readJsonObjectFunctionFlags(ExpressionWithFlags function, boolean forArray)
private IsJsonPredicate
readJsonPredicate(Expression left, boolean not, boolean whenOperand)
private Expression
readKeywordCompatibilityFunctionOrColumn()
private Expression
readLastArgument()
private Expression
readLikePredicate(Expression left, CompareLike.LikeType likeType, boolean not, boolean whenOperand)
private long
readLong()
private void
readMySQLCharset()
private Expression
readNextArgument()
private int
readNonNegativeInt()
private Expression
readOnDuplicateKeyValues(Table table, Update update)
private void
readOver(DataAnalysisOperation operation)
private Parameter
readParameter()
private <T extends ExpressionWithVariableParameters>
TreadParameters(T expression)
private long
readPositiveLong()
private long
readPrecision(int valueType)
private void
readRespectOrIgnoreNulls(WindowFunction function)
private Sequence
readSequence()
private Prepared
readSetCompatibility(Mode.ModeEnum modeEnum)
private Expression
readSetFunction()
private TableFilter
readSimpleTableFilter()
private SimpleCase.SimpleWhen
readSimpleWhenClause(Expression caseOperand)
private Expression
readSingleArgument()
private java.lang.String
readString()
private java.lang.String
readStringOrIdentifier()
private Expression
readSubstringFunction()
private Expression
readSum()
private Column
readTableColumn(TableFilter filter)
private java.lang.String
readTableColumn(TableFilter filter, java.lang.String tableAlias)
private java.util.ArrayList<java.lang.String>
readTableEngineParams()
private ArrayTableFunction
readTableFunction(int functionType)
private TableFunction
readTableFunction(java.lang.String name, Schema schema)
private Table
readTableOrView()
private Table
readTableOrView(java.lang.String tableName)
private TableFilter
readTablePrimary()
private TableFilter
readTableReference()
private Expression
readTerm()
private Expression
readTermObjectDot(java.lang.String objectName)
private Expression
readTermWithIdentifier(java.lang.String name, boolean quoted)
private Expression
readTildeCondition(Expression r, boolean not)
private Expression
readTrimFunction()
private TypePredicate
readTypePredicate(Expression left, boolean not, boolean whenOperand)
private ArrayTableFunction
readUnnestFunction()
private SetClauseList
readUpdateSetClause(TableFilter filter)
private Expression
readUserDefinedFunctionIf(Schema schema, java.lang.String functionName)
private Expression
readWhenOperand(Expression caseOperand)
private WindowFrame
readWindowFrame()
private WindowFrameBound
readWindowFrameRange()
private WindowFrameBound
readWindowFrameStarting()
private WindowFunction
readWindowFunction(java.lang.String name)
private Window
readWindowNameOrSpecification()
private Window
readWindowSpecification()
private Aggregate
readWithinGroup(AggregateType aggregateType, Expression[] args, boolean distinct, java.lang.Object extraArguments, boolean forHypotheticalSet, boolean simple)
private void
resetTokenIndex()
private int
scanToCloseParen(int offset)
void
setLiteralsChecked(boolean literalsChecked)
void
setRightsChecked(boolean rightsChecked)
private void
setSQL(Prepared command, int start)
void
setSuppliedParameters(java.util.ArrayList<Parameter> suppliedParameters)
(package private) void
setTokenIndex(int index)
private Table
tableIfTableExists(Schema schema, java.lang.String tableName, boolean ifTableExists)
java.lang.String
toString()
private java.lang.String
upperName(java.lang.String name)
-
-
-
Field Detail
-
WITH_STATEMENT_SUPPORTS_LIMITED_SUB_STATEMENTS
private static final java.lang.String WITH_STATEMENT_SUPPORTS_LIMITED_SUB_STATEMENTS
- See Also:
- Constant Field Values
-
database
private final Database database
-
session
private final SessionLocal session
-
identifiersToLower
private final boolean identifiersToLower
- See Also:
DbSettings.databaseToLower
-
identifiersToUpper
private final boolean identifiersToUpper
- See Also:
DbSettings.databaseToUpper
-
variableBinary
private final boolean variableBinary
- See Also:
SessionLocal.isVariableBinary()
-
nonKeywords
private final java.util.BitSet nonKeywords
-
tokens
java.util.ArrayList<Token> tokens
-
tokenIndex
int tokenIndex
-
token
Token token
-
currentTokenType
private int currentTokenType
-
currentToken
private java.lang.String currentToken
-
sqlCommand
private java.lang.String sqlCommand
-
createView
private CreateView createView
-
currentPrepared
private Prepared currentPrepared
-
currentSelect
private Select currentSelect
-
cteCleanups
private java.util.List<TableView> cteCleanups
-
parameters
private java.util.ArrayList<Parameter> parameters
-
suppliedParameters
private java.util.ArrayList<Parameter> suppliedParameters
-
schemaName
private java.lang.String schemaName
-
expectedList
private java.util.ArrayList<java.lang.String> expectedList
-
rightsChecked
private boolean rightsChecked
-
recompileAlways
private boolean recompileAlways
-
literalsChecked
private boolean literalsChecked
-
orderInFrom
private int orderInFrom
-
parseDomainConstraint
private boolean parseDomainConstraint
-
-
Constructor Detail
-
Parser
public Parser(SessionLocal session)
Creates a new instance of parser.- Parameters:
session
- the session
-
Parser
public Parser()
Creates a new instance of parser for special use cases.
-
-
Method Detail
-
parseNonKeywords
public static java.util.BitSet parseNonKeywords(java.lang.String[] nonKeywords)
Parses the specified collection of non-keywords.- Parameters:
nonKeywords
- array of non-keywords in upper case- Returns:
- bit set of non-keywords, or
null
-
formatNonKeywords
public static java.lang.String formatNonKeywords(java.util.BitSet nonKeywords)
Formats a comma-separated list of keywords.- Parameters:
nonKeywords
- bit set of non-keywords, ornull
- Returns:
- comma-separated list of non-keywords
-
prepare
public Prepared prepare(java.lang.String sql)
Parse the statement and prepare it for execution.- Parameters:
sql
- the SQL statement to parse- Returns:
- the prepared object
-
prepareCommand
public Command prepareCommand(java.lang.String sql)
Parse a statement or a list of statements, and prepare it for execution.- Parameters:
sql
- the SQL statement to parse- Returns:
- the command object
-
prepareCommandList
private CommandList prepareCommandList(CommandContainer command, Prepared p, java.lang.String sql, java.lang.String remainingSql, java.util.ArrayList<Token> remainingTokens)
-
getRemainingTokens
private java.util.ArrayList<Token> getRemainingTokens(int offset)
-
parse
Prepared parse(java.lang.String sql, java.util.ArrayList<Token> tokens)
Parse the statement, but don't prepare it for execution.- Parameters:
sql
- the SQL statement to parsetokens
- tokens, or null- Returns:
- the prepared object
-
parse
private Prepared parse(java.lang.String sql, boolean withExpectedList)
-
parsePrepared
private Prepared parsePrepared()
-
getSyntaxError
private DbException getSyntaxError()
-
parseBackup
private Prepared parseBackup()
-
parseAnalyze
private Prepared parseAnalyze()
-
parseBegin
private TransactionCommand parseBegin()
-
parseCommit
private TransactionCommand parseCommit()
-
parseShutdown
private TransactionCommand parseShutdown()
-
parseRollback
private TransactionCommand parseRollback()
-
parsePrepare
private Prepared parsePrepare()
-
parsePrepareProcedure
private Prepared parsePrepareProcedure()
-
parseSavepoint
private TransactionCommand parseSavepoint()
-
parseReleaseSavepoint
private Prepared parseReleaseSavepoint()
-
findSchema
private Schema findSchema(java.lang.String schemaName)
-
getSchema
private Schema getSchema(java.lang.String schemaName)
-
getSchema
private Schema getSchema()
-
getSchemaWithDefault
private Schema getSchemaWithDefault()
-
readTableColumn
private Column readTableColumn(TableFilter filter)
-
readTableColumn
private java.lang.String readTableColumn(TableFilter filter, java.lang.String tableAlias)
-
parseUpdate
private Update parseUpdate(int start)
-
readUpdateSetClause
private SetClauseList readUpdateSetClause(TableFilter filter)
-
readSimpleTableFilter
private TableFilter readSimpleTableFilter()
-
parseDelete
private Delete parseDelete(int start)
-
readFetchOrLimit
private Expression readFetchOrLimit()
-
parseIndexColumnList
private IndexColumn[] parseIndexColumnList()
-
parseSortType
private int parseSortType()
-
parseColumnList
private java.lang.String[] parseColumnList()
-
readIfMore
private boolean readIfMore()
Read comma or closing brace.- Returns:
true
if comma is read,false
if brace is read
-
parseHelp
private Prepared parseHelp()
-
parseShow
private Prepared parseShow()
-
prepare
private static Prepared prepare(SessionLocal s, java.lang.String sql, java.util.ArrayList<Value> paramValues)
-
isDerivedTable
private boolean isDerivedTable()
-
isQuery
private boolean isQuery()
-
scanToCloseParen
private int scanToCloseParen(int offset)
-
isQueryQuick
private boolean isQueryQuick()
-
isDirectQuery
private boolean isDirectQuery(int offset)
-
parseMerge
private Prepared parseMerge(int start)
-
parseMergeInto
private Prepared parseMergeInto(TableFilter targetTableFilter, int start)
-
parseMergeUsing
private MergeUsing parseMergeUsing(TableFilter targetTableFilter, int start)
-
parseWhenMatched
private void parseWhenMatched(MergeUsing command)
-
parseWhenNotMatched
private void parseWhenNotMatched(MergeUsing command)
-
parseInsert
private Insert parseInsert(int start)
-
readIfOverriding
private java.lang.Boolean readIfOverriding()
-
parseInsertCompatibility
private void parseInsertCompatibility(Insert command, Table table, Mode mode)
-
parseReplace
private Merge parseReplace(int start)
MySQL compatibility. REPLACE is similar to MERGE.
-
parseValuesForCommand
private void parseValuesForCommand(CommandWithValues command)
-
readTablePrimary
private TableFilter readTablePrimary()
-
readCorrelation
private TableFilter readCorrelation(TableFilter tableFilter)
-
readDerivedTableWithCorrelation
private TableFilter readDerivedTableWithCorrelation()
-
buildTableFilter
private TableFilter buildTableFilter(Table table, java.lang.String alias, java.util.ArrayList<java.lang.String> derivedColumnNames, IndexHints indexHints)
-
readDataChangeDeltaTable
private Table readDataChangeDeltaTable(java.lang.String resultOptionName, int backupIndex)
-
readTableFunction
private TableFunction readTableFunction(java.lang.String name, Schema schema)
-
readIfUseIndex
private boolean readIfUseIndex()
-
parseIndexHints
private IndexHints parseIndexHints(Table table)
-
readFromAlias
private java.lang.String readFromAlias(java.lang.String alias)
-
readDerivedColumnNames
private java.util.ArrayList<java.lang.String> readDerivedColumnNames()
-
discardWithTableHints
private void discardWithTableHints()
-
discardTableHint
private void discardTableHint()
-
parseTruncate
private Prepared parseTruncate()
-
readIfExists
private boolean readIfExists(boolean ifExists)
-
parseComment
private Prepared parseComment()
-
parseDrop
private Prepared parseDrop()
-
parseDropDomain
private DropDomain parseDropDomain()
-
parseDropAggregate
private DropAggregate parseDropAggregate()
-
readTableReference
private TableFilter readTableReference()
-
readJoinSpecification
private Expression readJoinSpecification(TableFilter filter1, TableFilter filter2, boolean rightJoin)
-
addJoinColumn
private Expression addJoinColumn(Expression on, TableFilter filter1, TableFilter filter2, Column column1, Column column2, boolean rightJoin)
-
addJoin
private void addJoin(TableFilter top, TableFilter join, boolean outer, Expression on)
Add one join to another. This method creates nested join between them if required.- Parameters:
top
- parent joinjoin
- child joinouter
- if child join is an outer joinon
- the join condition- See Also:
TableFilter.addJoin(TableFilter, boolean, Expression)
-
parseExecutePostgre
private Prepared parseExecutePostgre()
-
parseExecuteSQLServer
private Prepared parseExecuteSQLServer()
-
getFunctionAliasWithinPath
private FunctionAlias getFunctionAliasWithinPath(java.lang.String name, Schema schema)
-
parseDeallocate
private DeallocateProcedure parseDeallocate()
-
parseExplain
private Explain parseExplain()
-
parseQuery
private Query parseQuery()
-
parseWithStatementOrQuery
private Prepared parseWithStatementOrQuery(int start)
-
parseQueryExpression
private Query parseQueryExpression()
-
parseQueryExpressionBodyAndEndOfQuery
private Query parseQueryExpressionBodyAndEndOfQuery()
-
parseQueryExpressionBody
private Query parseQueryExpressionBody()
-
parseQueryTerm
private Query parseQueryTerm()
-
parseEndOfQuery
private void parseEndOfQuery(Query command)
-
parseIsolationClause
private void parseIsolationClause()
DB2 isolation clause
-
parseQueryPrimary
private Query parseQueryPrimary()
-
parseSelectFromPart
private void parseSelectFromPart(Select command)
-
parseSelectExpressions
private void parseSelectExpressions(Select command)
-
parseSelect
private Select parseSelect(int start)
-
isOrdinaryGroupingSet
private boolean isOrdinaryGroupingSet()
Checks whether current opening parenthesis can be a start of ordinary grouping set. This method reads this parenthesis if it is.- Returns:
- whether current opening parenthesis can be a start of ordinary grouping set
-
parseExplicitTable
private Query parseExplicitTable(int start)
-
setSQL
private void setSQL(Prepared command, int start)
-
readExpressionOrDefault
private Expression readExpressionOrDefault()
-
readExpressionWithGlobalConditions
private Expression readExpressionWithGlobalConditions()
-
readExpression
private Expression readExpression()
-
readExpressionPart2
private Expression readExpressionPart2(Expression r1)
-
readAnd
private Expression readAnd(Expression r)
-
readCondition
private Expression readCondition()
-
readConditionRightHandSide
private Expression readConditionRightHandSide(Expression r, boolean not, boolean whenOperand)
-
readConditionIs
private Expression readConditionIs(Expression left, boolean whenOperand)
-
readTypePredicate
private TypePredicate readTypePredicate(Expression left, boolean not, boolean whenOperand)
-
readInPredicate
private Expression readInPredicate(Expression left, boolean not, boolean whenOperand)
-
readJsonPredicate
private IsJsonPredicate readJsonPredicate(Expression left, boolean not, boolean whenOperand)
-
readLikePredicate
private Expression readLikePredicate(Expression left, CompareLike.LikeType likeType, boolean not, boolean whenOperand)
-
readComparison
private Expression readComparison(Expression left, int compareType, boolean whenOperand)
-
readConcat
private Expression readConcat()
-
readSum
private Expression readSum()
-
readFactor
private Expression readFactor()
-
readTildeCondition
private Expression readTildeCondition(Expression r, boolean not)
-
readAggregate
private Expression readAggregate(AggregateType aggregateType, java.lang.String aggregateName)
-
readWithinGroup
private Aggregate readWithinGroup(AggregateType aggregateType, Expression[] args, boolean distinct, java.lang.Object extraArguments, boolean forHypotheticalSet, boolean simple)
-
readAggregateOrder
private void readAggregateOrder(Aggregate r, Expression expr, boolean parseSortType)
-
readIfOrderBy
private java.util.ArrayList<QueryOrderBy> readIfOrderBy()
-
parseSortSpecificationList
private java.util.ArrayList<QueryOrderBy> parseSortSpecificationList()
-
parseSortSpecification
private QueryOrderBy parseSortSpecification()
-
readUserDefinedFunctionIf
private Expression readUserDefinedFunctionIf(Schema schema, java.lang.String functionName)
-
readDistinctAgg
private boolean readDistinctAgg()
-
readFilterAndOver
private void readFilterAndOver(AbstractAggregate aggregate)
-
readOver
private void readOver(DataAnalysisOperation operation)
-
readWindowNameOrSpecification
private Window readWindowNameOrSpecification()
-
readWindowSpecification
private Window readWindowSpecification()
-
readWindowFrame
private WindowFrame readWindowFrame()
-
readWindowFrameStarting
private WindowFrameBound readWindowFrameStarting()
-
readWindowFrameRange
private WindowFrameBound readWindowFrameRange()
-
readFunction
private Expression readFunction(Schema schema, java.lang.String name)
-
readFunctionWithSchema
private Expression readFunctionWithSchema(Schema schema, java.lang.String name, java.lang.String upperName)
-
readCompatibilityFunction
private Expression readCompatibilityFunction(java.lang.String name)
-
readParameters
private <T extends ExpressionWithVariableParameters> T readParameters(T expression)
-
decodeToWhen
private SimpleCase.SimpleWhen decodeToWhen(Expression caseOperand, boolean canOptimize, Expression whenOperand, Expression result)
-
readCompatibilityCase
private Expression readCompatibilityCase(Expression when)
-
readCompatibilitySequenceValueFunction
private Expression readCompatibilitySequenceValueFunction(boolean current)
-
readBuiltinFunctionIf
private Expression readBuiltinFunctionIf(java.lang.String upperName)
-
readDateTimeFormatFunction
private Expression readDateTimeFormatFunction(int function)
-
readTrimFunction
private Expression readTrimFunction()
-
readUnnestFunction
private ArrayTableFunction readUnnestFunction()
-
readTableFunction
private ArrayTableFunction readTableFunction(int functionType)
-
readSingleArgument
private Expression readSingleArgument()
-
readNextArgument
private Expression readNextArgument()
-
readLastArgument
private Expression readLastArgument()
-
readIfSingleArgument
private Expression readIfSingleArgument()
-
readIfArgument
private Expression readIfArgument()
-
readCoalesceFunction
private Expression readCoalesceFunction(int function)
-
readConcatFunction
private Expression readConcatFunction(int function)
-
readSubstringFunction
private Expression readSubstringFunction()
-
readDateTimeField
private int readDateTimeField()
-
readWindowFunction
private WindowFunction readWindowFunction(java.lang.String name)
-
readFromFirstOrLast
private void readFromFirstOrLast(WindowFunction function)
-
readRespectOrIgnoreNulls
private void readRespectOrIgnoreNulls(WindowFunction function)
-
readJsonObjectFunctionFlags
private boolean readJsonObjectFunctionFlags(ExpressionWithFlags function, boolean forArray)
-
readKeywordCompatibilityFunctionOrColumn
private Expression readKeywordCompatibilityFunctionOrColumn()
-
readCurrentDateTimeValueFunction
private Expression readCurrentDateTimeValueFunction(int function, boolean hasParen, java.lang.String name)
-
readIfWildcardRowidOrSequencePseudoColumn
private Expression readIfWildcardRowidOrSequencePseudoColumn(java.lang.String schema, java.lang.String objectName)
-
parseWildcard
private Wildcard parseWildcard(java.lang.String schema, java.lang.String objectName)
-
readIfSequencePseudoColumn
private SequenceValue readIfSequencePseudoColumn(java.lang.String schema, java.lang.String objectName)
-
readTermObjectDot
private Expression readTermObjectDot(java.lang.String objectName)
-
checkDatabaseName
private void checkDatabaseName(java.lang.String databaseName)
-
readParameter
private Parameter readParameter()
-
readTerm
private Expression readTerm()
-
readCurrentGeneralValueSpecification
private Expression readCurrentGeneralValueSpecification(int specification)
-
readColumnIfNotFunction
private Expression readColumnIfNotFunction()
-
readSetFunction
private Expression readSetFunction()
-
readOnDuplicateKeyValues
private Expression readOnDuplicateKeyValues(Table table, Update update)
-
readTermWithIdentifier
private Expression readTermWithIdentifier(java.lang.String name, boolean quoted)
-
getCurrentPrepared
private Prepared getCurrentPrepared()
-
readInterval
private Expression readInterval()
-
parseDB2SpecialRegisters
private Expression parseDB2SpecialRegisters(java.lang.String name)
-
readCase
private Expression readCase()
-
readSimpleWhenClause
private SimpleCase.SimpleWhen readSimpleWhenClause(Expression caseOperand)
-
readWhenOperand
private Expression readWhenOperand(Expression caseOperand)
-
readNonNegativeInt
private int readNonNegativeInt()
-
readInt
private int readInt()
-
readPositiveLong
private long readPositiveLong()
-
readLong
private long readLong()
-
readBooleanSetting
private boolean readBooleanSetting()
-
readString
private java.lang.String readString()
-
readIdentifierWithSchema
private java.lang.String readIdentifierWithSchema(java.lang.String defaultSchemaName)
-
readIdentifierWithSchema2
private java.lang.String readIdentifierWithSchema2(java.lang.String s)
-
readIdentifierWithSchema
private java.lang.String readIdentifierWithSchema()
-
readIdentifier
private java.lang.String readIdentifier()
-
read
private void read(java.lang.String expected)
-
read
private void read(int tokenType)
-
readIf
private boolean readIf(java.lang.String tokenName)
-
readIf
private boolean readIf(int tokenType)
-
isToken
private boolean isToken(java.lang.String tokenName)
-
isToken
private boolean isToken(int tokenType)
-
equalsToken
private boolean equalsToken(java.lang.String a, java.lang.String b)
-
isIdentifier
private boolean isIdentifier()
-
addExpected
private void addExpected(java.lang.String token)
-
addExpected
private void addExpected(int tokenType)
-
addMultipleExpected
private void addMultipleExpected(int... tokenTypes)
-
read
private void read()
-
checkLiterals
private void checkLiterals()
-
initialize
private void initialize(java.lang.String sql, java.util.ArrayList<Token> tokens, boolean stopOnCloseParen)
-
resetTokenIndex
private void resetTokenIndex()
-
setTokenIndex
void setTokenIndex(int index)
-
isKeyword
private static boolean isKeyword(int tokenType)
-
isKeyword
private boolean isKeyword(java.lang.String s)
-
upperName
private java.lang.String upperName(java.lang.String name)
-
parseColumnForTable
private Column parseColumnForTable(java.lang.String columnName, boolean defaultNullable)
-
parseCompatibilityIdentityOptions
private void parseCompatibilityIdentityOptions(Column column)
-
readCommentIf
private java.lang.String readCommentIf()
-
parseColumnWithType
private Column parseColumnWithType(java.lang.String columnName)
-
parseDataType
private TypeInfo parseDataType()
-
readIfDataType
private TypeInfo readIfDataType()
-
readIfDataType1
private TypeInfo readIfDataType1()
-
getInvalidPrecisionException
private static DbException getInvalidPrecisionException(DataType dataType, long precision)
-
getColumnWithDomain
private static Column getColumnWithDomain(java.lang.String columnName, Domain domain)
-
parseFloatType
private TypeInfo parseFloatType()
-
parseNumericType
private TypeInfo parseNumericType(boolean decimal)
-
parseDecfloatType
private TypeInfo parseDecfloatType()
-
getInvalidNumericPrecisionException
private static DbException getInvalidNumericPrecisionException(long precision)
-
parseTimeType
private TypeInfo parseTimeType()
-
parseTimestampType
private TypeInfo parseTimestampType()
-
parseDateTimeType
private TypeInfo parseDateTimeType(boolean smallDateTime)
-
readIntervalQualifier
private TypeInfo readIntervalQualifier()
-
intervalQualifierError
private DbException intervalQualifierError()
-
intervalDayError
private DbException intervalDayError()
-
intervalHourError
private DbException intervalHourError()
-
parseEnumType
private TypeInfo parseEnumType()
-
parseGeometryType
private TypeInfo parseGeometryType()
-
parseRowType
private TypeInfo parseRowType()
-
readPrecision
private long readPrecision(int valueType)
-
parseCreate
private Prepared parseCreate()
-
addRoleOrRight
private boolean addRoleOrRight(GrantRevoke command)
- Returns:
- true if we expect to see a TABLE clause
-
parseGrantRevoke
private GrantRevoke parseGrantRevoke(int operationType)
-
parseValues
private TableValueConstructor parseValues()
-
parseValuesRow
private java.util.ArrayList<Expression> parseValuesRow(java.util.ArrayList<Expression> row)
-
parseCall
private Call parseCall()
-
parseCreateRole
private CreateRole parseCreateRole()
-
parseCreateSchema
private CreateSchema parseCreateSchema()
-
readTableEngineParams
private java.util.ArrayList<java.lang.String> readTableEngineParams()
-
parseCreateSequence
private CreateSequence parseCreateSequence()
-
readIfNotExists
private boolean readIfNotExists()
-
parseCreateConstant
private CreateConstant parseCreateConstant()
-
parseCreateAggregate
private CreateAggregate parseCreateAggregate(boolean force)
-
parseCreateDomain
private CreateDomain parseCreateDomain()
-
parseCreateTrigger
private CreateTrigger parseCreateTrigger(boolean force)
-
parseCreateUser
private CreateUser parseCreateUser()
-
parseCreateFunctionAlias
private CreateFunctionAlias parseCreateFunctionAlias(boolean force)
-
readStringOrIdentifier
private java.lang.String readStringOrIdentifier()
-
isReservedFunctionName
private boolean isReservedFunctionName(java.lang.String name)
-
parseWith
private Prepared parseWith()
-
parseWithQuery
private Prepared parseWithQuery()
-
parseSingleCommonTableExpression
private TableView parseSingleCommonTableExpression(boolean isTemporary)
-
createCTEView
private TableView createCTEView(java.lang.String cteViewName, java.lang.String querySQL, java.util.List<Column> columnTemplateList, boolean allowRecursiveQueryDetection, boolean addViewToSession, boolean isTemporary)
-
parseCreateView
private CreateView parseCreateView(boolean force, boolean orReplace)
-
parseCheckpoint
private TransactionCommand parseCheckpoint()
-
parseAlter
private Prepared parseAlter()
-
checkSchema
private void checkSchema(Schema old)
-
parseAlterIndex
private AlterIndexRename parseAlterIndex()
-
parseAlterDomain
private DefineCommand parseAlterDomain()
-
parseAlterView
private DefineCommand parseAlterView()
-
parseAlterSchema
private Prepared parseAlterSchema()
-
parseAlterSequence
private AlterSequence parseAlterSequence()
-
parseSequenceOptions
private boolean parseSequenceOptions(SequenceOptions options, CreateSequence command, boolean allowDataType, boolean forAlterColumn)
-
parseCreateSequenceOption
private boolean parseCreateSequenceOption(CreateSequence command)
-
parseBasicSequenceOption
private boolean parseBasicSequenceOption(SequenceOptions options)
-
parseAlterUser
private AlterUser parseAlterUser()
-
readIfEqualOrTo
private void readIfEqualOrTo()
-
parseSet
private Prepared parseSet()
-
parseSetTransactionMode
private Prepared parseSetTransactionMode()
-
readExpressionOrIdentifier
private Expression readExpressionOrIdentifier()
-
parseUse
private Prepared parseUse()
-
parseSetCollation
private Set parseSetCollation()
-
readSetCompatibility
private Prepared readSetCompatibility(Mode.ModeEnum modeEnum)
-
parseRunScript
private RunScriptCommand parseRunScript()
-
parseScript
private ScriptCommand parseScript()
-
isDualTable
private boolean isDualTable(java.lang.String tableName)
Is this the Oracle DUAL table or the IBM/DB2 SYSIBM table?- Parameters:
tableName
- table name.- Returns:
true
if the table is DUAL special table. Otherwise returnsfalse
.- See Also:
- Wikipedia: DUAL table
-
readTableOrView
private Table readTableOrView()
-
readTableOrView
private Table readTableOrView(java.lang.String tableName)
-
getTableOrViewNotFoundDbException
private DbException getTableOrViewNotFoundDbException(java.lang.String tableName)
-
getTableOrViewNotFoundDbException
private DbException getTableOrViewNotFoundDbException(java.lang.String schemaName, java.lang.String tableName)
-
getTableOrViewNotFoundDbException
private DbException getTableOrViewNotFoundDbException(java.util.Set<java.lang.String> schemaNames, java.lang.String tableName)
-
findTableNameCandidates
private void findTableNameCandidates(java.lang.String schemaName, java.lang.String tableName, java.util.Set<java.lang.String> candidates)
-
findUserDefinedFunctionWithinPath
private UserDefinedFunction findUserDefinedFunctionWithinPath(Schema schema, java.lang.String name)
-
findSequence
private Sequence findSequence(java.lang.String schema, java.lang.String sequenceName)
-
readSequence
private Sequence readSequence()
-
parseAlterTable
private Prepared parseAlterTable()
-
parseAlterTableAlter
private Prepared parseAlterTableAlter(Schema schema, java.lang.String tableName, boolean ifTableExists)
-
getAlterTableAlterColumnDropDefaultExpression
private Prepared getAlterTableAlterColumnDropDefaultExpression(Schema schema, java.lang.String tableName, boolean ifTableExists, Column column, int type)
-
parseAlterTableAlterColumnIdentity
private Prepared parseAlterTableAlterColumnIdentity(Schema schema, java.lang.String tableName, boolean ifTableExists, Column column)
-
parseAlterTableAlterColumnSet
private Prepared parseAlterTableAlterColumnSet(Schema schema, java.lang.String tableName, boolean ifTableExists, boolean ifExists, java.lang.String columnName, Column column)
-
parseAlterTableDrop
private Prepared parseAlterTableDrop(Schema schema, java.lang.String tableName, boolean ifTableExists)
-
parseAlterTableDropCompatibility
private Prepared parseAlterTableDropCompatibility(Schema schema, java.lang.String tableName, boolean ifTableExists)
-
parseAlterTableRename
private Prepared parseAlterTableRename(Schema schema, java.lang.String tableName, boolean ifTableExists)
-
parseAlterTableSet
private Prepared parseAlterTableSet(Schema schema, java.lang.String tableName, boolean ifTableExists)
-
parseAlterTableCompatibility
private Prepared parseAlterTableCompatibility(Schema schema, java.lang.String tableName, boolean ifTableExists, Mode mode)
-
tableIfTableExists
private Table tableIfTableExists(Schema schema, java.lang.String tableName, boolean ifTableExists)
-
columnIfTableExists
private Column columnIfTableExists(Schema schema, java.lang.String tableName, java.lang.String columnName, boolean ifTableExists, boolean ifExists)
-
commandIfTableExists
private Prepared commandIfTableExists(Schema schema, java.lang.String tableName, boolean ifTableExists, Prepared commandIfTableExists)
-
parseAlterTableAlterColumnType
private AlterTableAlterColumn parseAlterTableAlterColumnType(Schema schema, java.lang.String tableName, java.lang.String columnName, boolean ifTableExists, boolean ifExists, boolean preserveNotNull)
-
parseAlterTableAlterColumnDataType
private AlterTableAlterColumn parseAlterTableAlterColumnDataType(Schema schema, java.lang.String tableName, java.lang.String columnName, boolean ifTableExists, boolean ifExists)
-
parseAlterTableAddColumn
private AlterTableAlterColumn parseAlterTableAddColumn(java.lang.String tableName, Schema schema, boolean ifTableExists)
-
parseAlterColumnUsingIf
private void parseAlterColumnUsingIf(AlterTableAlterColumn command)
-
parseAction
private ConstraintActionType parseAction()
-
parseCascadeOrRestrict
private ConstraintActionType parseCascadeOrRestrict()
-
parseTableConstraintIf
private DefineCommand parseTableConstraintIf(java.lang.String tableName, Schema schema, boolean ifTableExists)
-
parseReferences
private void parseReferences(AlterTableAddConstraint command, Schema schema, java.lang.String tableName)
-
parseCreateLinkedTable
private CreateLinkedTable parseCreateLinkedTable(boolean temp, boolean globalTemp, boolean force)
-
parseCreateTable
private CreateTable parseCreateTable(boolean temp, boolean globalTemp, boolean persistIndexes)
-
parseTableColumnDefinition
private void parseTableColumnDefinition(CommandWithColumns command, Schema schema, java.lang.String tableName, boolean forCreateTable)
-
newPrimaryKeyConstraintCommand
public static AlterTableAddConstraint newPrimaryKeyConstraintCommand(SessionLocal session, Schema schema, java.lang.String tableName, Column column)
Create a new alter table command.- Parameters:
session
- the sessionschema
- the schematableName
- the tablecolumn
- the column- Returns:
- the command
-
readColumnConstraints
private void readColumnConstraints(CommandWithColumns command, Schema schema, java.lang.String tableName, Column column)
-
parseCreateTableMySQLTableOptions
private void parseCreateTableMySQLTableOptions(CreateTable command)
-
readMySQLCharset
private void readMySQLCharset()
-
parseNotNullConstraint
private Parser.NullConstraintType parseNotNullConstraint(Parser.NullConstraintType nullConstraint)
-
parseNotNullConstraint
private Parser.NullConstraintType parseNotNullConstraint()
-
parseNotNullCompatibility
private Parser.NullConstraintType parseNotNullCompatibility(Parser.NullConstraintType nullConstraint)
-
parseCreateSynonym
private CreateSynonym parseCreateSynonym(boolean orReplace)
-
getCompareType
private static int getCompareType(int tokenType)
-
quoteIdentifier
public static java.lang.String quoteIdentifier(java.lang.String s, int sqlFlags)
Add double quotes around an identifier if required.- Parameters:
s
- the identifiersqlFlags
- formatting flags- Returns:
- the quoted identifier
-
setLiteralsChecked
public void setLiteralsChecked(boolean literalsChecked)
-
setRightsChecked
public void setRightsChecked(boolean rightsChecked)
-
setSuppliedParameters
public void setSuppliedParameters(java.util.ArrayList<Parameter> suppliedParameters)
-
parseExpression
public Expression parseExpression(java.lang.String sql)
Parse a SQL code snippet that represents an expression.- Parameters:
sql
- the code snippet- Returns:
- the expression object
-
parseDomainConstraintExpression
public Expression parseDomainConstraintExpression(java.lang.String sql)
Parse a SQL code snippet that represents an expression for a domain constraint.- Parameters:
sql
- the code snippet- Returns:
- the expression object
-
parseTableName
public Table parseTableName(java.lang.String sql)
Parse a SQL code snippet that represents a table name.- Parameters:
sql
- the code snippet- Returns:
- the table object
-
parseColumnList
public java.lang.Object parseColumnList(java.lang.String sql, int offset)
Parses a list of column names or numbers in parentheses.- Parameters:
sql
- the source SQLoffset
- the initial offset- Returns:
- the array of column names (
String[]
) or numbers (int[]
) - Throws:
DbException
- on syntax error
-
getLastParseIndex
public int getLastParseIndex()
Returns the last parse index.- Returns:
- the last parse index
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-