Grammar Reference
This section describes grammar elements that are common to multiple SQL functions (DDL, Distribution Zones, etc.).
assign
Diagram( NonTerminal('identifier '), Terminal('='), NonTerminal('expression') )
column_definition
Diagram( Sequence( NonTerminal('column_name'), NonTerminal('DATA TYPE', {href:'./data-types'}), Optional(Sequence(Optional('NOT'),Terminal('NULL'))) ), End({type:'complex'}) )
Diagram( Start({type:'complex'}), Sequence( Optional(Sequence(Terminal('DEFAULT'), Choice(1,NonTerminal('identifier'), NonTerminal('literal_value'), Sequence(Terminal('CURRENT TIMESTAMP'), Optional(Sequence(Terminal('+'),Terminal('INTERVAL'), NonTerminal('interval'))) ) ),)), Optional(Terminal('PRIMARY KEY')), ))
Keywords and parameters:
-
column_name
- a column name. -
DATA TYPE
- the data type allowed in the column. -
identifier
- the random identifier for the row. Can be generated by using the [rand_uuid] function. -
literal_value
- a value to be assigned as default. -
CURRENT TIMESTAMP
- the function that returns current time. Can only be used forTIMESTAMP
columns. -
interval
- the time interval by which the timestamp should be offset.
Referenced by:
column_definition_or_list
Diagram( Choice(0, Sequence( Choice(0, Sequence( Choice(0,Sequence( NonTerminal('column_name'), NonTerminal('data_type')) )), Sequence( Terminal('('), OneOrMore(Sequence( NonTerminal('column_name'), NonTerminal('data_type')), Terminal(',') ),Terminal(')') )))))
Keywords and parameters:
-
column_name
- a column name. -
data_type
- a valid data type.
Referenced by:
column_list
Diagram( Terminal('('), OneOrMore(Sequence( NonTerminal('column_name')), Terminal(',') ),Terminal(')') )
Keywords and parameters:
-
column_name
- a column name.
Referenced by:
column_name_or_list
Diagram( Choice(0, Sequence( Choice(0, Sequence( Choice(0,Sequence( NonTerminal('column_name')) )), Sequence( Terminal('('), OneOrMore(Sequence( NonTerminal('column_name')), Terminal(',') ),Terminal(')') )))))
Keywords and parameters:
-
column_name
- a column name.
Referenced by:
constraint
Diagram(Sequence( Optional(Sequence(Terminal('CONSTRAINT'),NonTerminal('constraint_name') )), Terminal('PRIMARY KEY'), Optional( Choice(0, Sequence( Terminal('USING'), Choice (0, Sequence(Terminal('SORTED'), NonTerminal('sorted_column_list', {href:'./grammar-reference/#sorted_column_list'}) ), Sequence('HASH', NonTerminal('column_list', {href:'./grammar-reference/#column_list'}))) )) )))
Keywords and parameters:
-
constraint_name
- a name of the constraint.
Referenced by:
group_item
Diagram( Choice(0, NonTerminal('expression'), Sequence( Terminal('('), Terminal(')'), ), Sequence( Terminal('('), Sequence(OneOrMore(NonTerminal('expression'), Terminal(',')), ), Terminal(')'), ), ))
Parameters
-
expression
- a valid SQL expression that returns the values that must be assigned to theidentifier
.
Referenced by:
join_condition
Diagram( Choice(0, Sequence( Terminal('ON'), NonTerminal('boolean_expression'), ), Sequence(Terminal('USING'), NonTerminal('column_list', {href:'./grammar-reference/#column_list'})), ))
Parameters
-
boolean_expression
- an SQL expression that returns a boolean value. Only the records for whichTRUE
was returned will be returned. If not specified, all matching records are returned.
Referenced by:
order_item
Diagram( NonTerminal('expression'), Optional(Choice(0, Terminal('ASC'), Terminal('DESC') )), Optional(Choice(0, Terminal('NULLS FIRST'), Terminal('NULLS LAST') )), )
Parameters
-
expression
- a valid SQL expression that denotes the specific item in the SELECT clause.
Referenced by:
parameter
Diagram( NonTerminal('parameter_name'), Terminal('='), NonTerminal('parameter_value'))
Parameters:
-
parameter_name
- the name of the parameter. -
parameter_value
- the value of the parameter.
When a parameter is specified, you can provide it as a literal value or as an identifier. For example:
CREATE ZONE test_zone; CREATE TABLE test_table (id INT PRIMARY KEY, val INT) WITH PRIMARY_ZONE=test_zone;
In this case, test_zone
is the identifier, and is used as an identifier. When used like this, the parameters are not case-sensitive.
CREATE ZONE "test_zone"; CREATE TABLE test_table (id INT PRIMARY KEY, val INT) WITH PRIMARY_ZONE='test_zone';
In this case, test_zone
is created as a literal value, and is used as a literal. When used like this, the parameter is case-sensitive.
CREATE ZONE test_zone; CREATE TABLE test_table (id INT PRIMARY KEY, val INT) WITH PRIMARY_ZONE=`TEST_ZONE`;
In this case, test_zone
is created as an identifier, and is case-insensitive. As such, when TEST_ZONE
is used as a literal, it still matches the identifier.
Referenced by:
project_item
Diagram( Choice(0,Sequence( NonTerminal('expression'), Optional('AS'), NonTerminal('column_definition', {href:'./grammar-reference/#column_definition'}) ), Sequence(NonTerminal('table_alias'), Terminal('.'), Terminal('*')), Terminal('*') ) )
Parameters
-
expression
- a valid SQL expression that denotes the specific item in the SELECT clause. -
table_alias
- a qualified table alias to use.
Referenced by:
qualified_table_name
Diagram(Sequence( Optional(Sequence(NonTerminal('schema'),NonTerminal('.') ),), NonTerminal('table_name') ), )
Keywords and parameters:
-
schema
- a name of the table schema. -
table_name
- a name of the table.
Referenced by:
query
Diagram( Choice(0, Sequence(Terminal('WITH'), OneOrMore( NonTerminal('with_item', {href:'./grammar-reference/#with_item'}), Terminal(',')), NonTerminal('query', {href:'./grammar-reference/#query'})), Sequence( Choice(1, Terminal('SELECT', {href:'./operational-commands/#select'}), Terminal('select_without_from', {href:'./grammar-reference/#select_without_from'}), Sequence(NonTerminal('query', {href:'./grammar-reference/#query'}), Choice(0, Terminal('UNION'), Terminal('EXCEPT'),Terminal('MINUS'), Terminal('INTERSECT')), Optional(Choice(0, Terminal('ALL'), Terminal('DISTINCT'))),NonTerminal('query', {href:'./grammar-reference/#query'})) ), Optional(Sequence( Terminal('ORDER BY'), OneOrMore(NonTerminal('order_item', {href:'./grammar-reference/#order_item'}), Terminal(',')), )), Optional(Sequence( Terminal('LIMIT'), Optional(NonTerminal('start')), Choice(0, NonTerminal('count'), Terminal('ALL')) )), Optional(Sequence( Terminal('OFFSET'), NonTerminal('start'), Choice(0, Terminal('ROW'), Terminal('ROWS')) )), Optional(Sequence( Terminal('FETCH'), Choice(0, Terminal('FIRST'), Terminal('NEXT')), Optional(NonTerminal('count')), Choice(0, Terminal('ROW'), Terminal('ROWS')), Terminal('ONLY')) ) ), ), End({type:'complex'}) )
Parameters
-
expression
- a valid SQL expression. -
start
- the number of result to start the query from. -
count
- the number of values to fetch.
Referenced by:
select_without_from
Diagram( Terminal('SELECT', {href:'./operational-commands/#select'}), Optional( Choice(0, Terminal('ALL'), Terminal('DISTINCT'), )), OneOrMore(Sequence( NonTerminal('project_item', {href:'./grammar-reference/#project_item'})), Terminal(',') ), )
Referenced by:
sorted_column_list
Diagram( Sequence('(', OneOrMore(Sequence(NonTerminal('column_name'), Optional(Choice(0, Terminal('ASC'), Terminal('DESC')))), ','), ')') )
Keywords and parameters:
-
column_name
- a column name.
Referenced by:
table_expression
Diagram( Choice(0, Sequence( Choice(0, Sequence( Choice(0,Sequence( NonTerminal('table_expression', {href:'./grammar-reference/#table_expression'}), Optional('NATURAL'), Optional(Sequence(Choice(0, Terminal('LEFT'), Terminal('RIGHT'), Terminal('FULL') ), Optional('OUTER') )), Terminal('JOIN'), NonTerminal('table_expression', {href:'./grammar-reference/#table_expression'}), Optional(NonTerminal('join_condition', {href:'./grammar-reference/#join_condition'})) ), )), Sequence( Choice(0,Sequence( NonTerminal('table_expression', {href:'./grammar-reference/#table_expression'}), Terminal('CROSS JOIN'), NonTerminal('table_expression', {href:'./grammar-reference/#table_expression'})) )), Sequence( OneOrMore(Sequence( NonTerminal('table_reference', {href:'./grammar-reference/#table_reference'})), Terminal(',') ) )))))
table_primary
Diagram( NonTerminal('qualified_table_name', {href:'./grammar-reference/#qualified_table_name'}), Terminal('('), Terminal('TABLE'), NonTerminal('qualified_table_name', {href:'./grammar-reference/#qualified_table_name'}), Terminal(')') , End({type:'complex'}) )
Diagram( Start({type:'complex'}), Choice(0, Sequence( NonTerminal('table_primary', {href:'./grammar-reference/#table_primary'}), Optional(NonTerminal('hint_comment'))), Sequence( Terminal('('), NonTerminal('query', {href:'./grammar-reference/#query'}), Terminal(')') ), Sequence( Terminal('TABLE'), Terminal('('), NonTerminal('function_name'), Terminal('('), OneOrMore('expression', Terminal(',')), Terminal(')'), Terminal(')') )) )
Parameters
-
hint_comment
- an sql optimizer hint. -
expression
- a valid SQL expression. -
function_name
- the name of the SQL function to use.
Referenced by:
table_reference
Diagram( NonTerminal('table_primary', {href:'./grammar-reference/#table_primary'}), Optional(Sequence( Optional('AS'), NonTerminal('alias'), Optional(Sequence(Terminal('('), OneOrMore('column_alias', Terminal(',')), Terminal(')'))) )) )
Parameters
-
alias
- the alias that will be used for the table. -
column_alias
- the alias used for column.
Referenced by:
with_item
Diagram( NonTerminal('item_name'), Optional(NonTerminal('column_list', {href:'./grammar-reference/#column_list'})), Terminal('AS'), Terminal('('), NonTerminal('query', {href:'./grammar-reference/#query'}), Terminal(')'), )
Referenced by:
© 2025 GridGain Systems, Inc. All Rights Reserved. Privacy Policy | Legal Notices. GridGain® is a registered trademark of GridGain Systems, Inc.
Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation.