Grammar Reference
This section describes grammar elements that are common to multiple SQL functions (DDL, Distribution Zones, etc.).
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:
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:
column_list
Diagram( Terminal('('), OneOrMore(Sequence( NonTerminal('column_name')), Terminal(',') ),Terminal(')') )
Keywords and parameters:
-
column_name
- a column name.
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:
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:
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:
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:
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:
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')) ), )), Sequence( Choice(0,Sequence( NonTerminal('table_expression', {href:'./grammar-reference/#table_expression'}), Terminal('CROSS JOIN'), NonTerminal('table_expression', {href:'./grammar-reference/#table_expression'})) )), Sequence( Choice(0,Sequence( NonTerminal('table_expression', {href:'./grammar-reference/#table_expression'}), Choice(0, Terminal('CROSS'), Terminal('OUTER'), ), Terminal('APPLY'), NonTerminal('table_expression', {href:'./grammar-reference/#table_expression'})) )), Sequence( OneOrMore(Sequence( NonTerminal('table_reference')), Terminal(',') ) )))))
query
Diagram( Choice(0, Sequence(Choice(0, Terminal('VALUES'), Terminal('VALUE') ), OneOrMore(NonTerminal('expression'), Terminal(',')) ), Sequence(Terminal('WITH'), OneOrMore( NonTerminal('with_item', {href:'./grammar-reference/#with_item'})), Terminal(',')), NonTerminal('query', {href:'./grammar-reference/#query'}) ), Sequence( Terminal('{'), Choice(0, Terminal('SELECT', {href:'./operational-commands/#select'}), Terminal('select_without_from', {href:'./grammar-reference/#select_without_from'}), Sequence(NonTerminal('query', {href:'./grammar-reference/#query'}), Terminal('UNION'), Optional(Choice(0, Terminal('ALL'), Terminal('DISTINCT'))),NonTerminal('query', {href:'./grammar-reference/#query'})), Sequence(NonTerminal('query', {href:'./grammar-reference/#query'}), Terminal('EXCEPT'), Optional(Choice(0, Terminal('ALL'), Terminal('DISTINCT'))),NonTerminal('query', {href:'./grammar-reference/#query'})), Sequence(NonTerminal('query', {href:'./grammar-reference/#query'}), Terminal('MINUS'), Optional(Choice(0, Terminal('ALL'), Terminal('DISTINCT'))),NonTerminal('query', {href:'./grammar-reference/#query'})), Sequence(NonTerminal('query', {href:'./grammar-reference/#query'}), Terminal('INTERSECT'), Optional(Choice(0, Terminal('ALL'), Terminal('DISTINCT'))),NonTerminal('query', {href:'./grammar-reference/#query'})) ), Terminal('}')), End({type:'complex'}) )
Diagram( Start({type:'complex'}), 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')), NonTerminal('count'), Choice(0, Terminal('ROW'), Terminal('ROWS')), Terminal('ONLY')) ))
with_item
Diagram( NonTerminal('item_name'), Optional(Sequence( Terminal('('), Choice(0, NonTerminal('column_definition_or_list', {href:'./grammar-reference/#column_definition_or_list'}),), Terminal(')'), )), Terminal('AS'), NonTerminal('query', {href:'./grammar-reference/#query'}) )
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:
project_item:
Diagram( Terminal('expression'), Choice(0, Optional(Sequence( Optional('AS'), NonTerminal('column_definition', {href:'./grammar-reference/#column_definition'}) )), NonTerminal('table_name') ) )
order_item:
Diagram( Terminal('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:
assign
Diagram( NonTerminal('identifier '), Terminal('='), NonTerminal('expression') )
© 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.