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.

### Constructor Summary

Constructors
Constructor and 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
`static java.lang.String` `formatNonKeywords(java.util.BitSet nonKeywords)` Formats a comma-separated list of keywords.
`int` `getLastParseIndex()` Returns the last parse index.
`static AlterTableAddConstraint` `newPrimaryKeyConstraintCommand(SessionLocal session, Schema schema, java.lang.String tableName, Column column)` Create a new alter table command.
`java.lang.Object` `parseColumnList(java.lang.String sql, int offset)` Parses a list of column names or numbers in parentheses.
`Expression` `parseDomainConstraintExpression(java.lang.String sql)` Parse a SQL code snippet that represents an expression for a domain constraint.
`Expression` `parseExpression(java.lang.String sql)` Parse a SQL code snippet that represents an expression.
`static java.util.BitSet` `parseNonKeywords(java.lang.String[] nonKeywords)` Parses the specified collection of non-keywords.
`Table` `parseTableName(java.lang.String sql)` Parse a SQL code snippet that represents a table name.
`Prepared` `prepare(java.lang.String sql)` Parse the statement and prepare it for execution.
`Command` `prepareCommand(java.lang.String sql)` Parse a statement or a list of statements, and prepare it for execution.
`static java.lang.String` `quoteIdentifier(java.lang.String s, int sqlFlags)` Add double quotes around an identifier if required.
`void` `setLiteralsChecked(boolean literalsChecked)`
`void` `setRightsChecked(boolean rightsChecked)`
`void` `setSuppliedParameters(java.util.ArrayList<Parameter> suppliedParameters)`
`java.lang.String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### 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, or `null`
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

#### newPrimaryKeyConstraintCommand

    public static AlterTableAddConstraint newPrimaryKeyConstraintCommand(SessionLocal session,
                                                                         Schema schema,
                                                                         java.lang.String tableName,
                                                                         Column column)

Create a new alter table command.

Parameters:
  `session` - the session
  `schema` - the schema
  `tableName` - the table
  `column` - the column
Returns:
  the command

#### quoteIdentifier

    public static java.lang.String quoteIdentifier(java.lang.String s,
                                                   int sqlFlags)

Add double quotes around an identifier if required.

Parameters:
  `s` - the identifier
  `sqlFlags` - 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 SQL
  `offset` - 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 class `java.lang.Object`