program:

opt_stmt_list

no references


opt_stmt_list:

stmt ;

         ::= ( stmt ';' )*

referenced by:


stmt:

misc_attrs any_stmt

stmt     ::= misc_attrs any_stmt

referenced by:


any_stmt:

select_stmt explain_stmt create_trigger_stmt create_table_stmt create_virtual_table_stmt create_index_stmt create_view_stmt alter_table_add_column_stmt drop_table_stmt drop_view_stmt drop_index_stmt drop_trigger_stmt with_delete_stmt delete_stmt call_stmt with_insert_stmt insert_stmt with_update_stmt update_stmt update_cursor_stmt upsert_stmt with_upsert_stmt set_stmt create_proc_stmt declare_proc_stmt declare_func_stmt declare_stmt declare_enum_stmt fetch_stmt fetch_values_stmt fetch_call_stmt while_stmt loop_stmt LEAVE RETURN rollback_return_stmt commit_return_stmt CONTINUE if_stmt open_stmt close_stmt out_stmt out_union_stmt THROW trycatch_stmt begin_trans_stmt rollback_trans_stmt commit_trans_stmt proc_savepoint_stmt savepoint_stmt release_savepoint_stmt echo_stmt schema_upgrade_version_stmt @SCHEMA_UPGRADE_SCRIPT @PREVIOUS_SCHEMA enforce_strict_stmt enforce_normal_stmt @ENFORCE_RESET @ENFORCE_PUSH @ENFORCE_POP declare_schema_region_stmt declare_deployable_region_stmt begin_schema_region_stmt @END_SCHEMA_REGION schema_ad_hoc_migration_stmt emit_enums_stmt

           | explain_stmt
           | create_trigger_stmt
           | create_table_stmt
           | create_virtual_table_stmt
           | create_index_stmt
           | create_view_stmt
           | alter_table_add_column_stmt
           | drop_table_stmt
           | drop_view_stmt
           | drop_index_stmt
           | drop_trigger_stmt
           | with_delete_stmt
           | delete_stmt
           | call_stmt
           | with_insert_stmt
           | insert_stmt
           | with_update_stmt
           | update_stmt
           | update_cursor_stmt
           | upsert_stmt
           | with_upsert_stmt
           | set_stmt
           | create_proc_stmt
           | declare_proc_stmt
           | declare_func_stmt
           | declare_stmt
           | declare_enum_stmt
           | fetch_stmt
           | fetch_values_stmt
           | fetch_call_stmt
           | while_stmt
           | loop_stmt
           | 'LEAVE'
           | 'RETURN'
           | rollback_return_stmt
           | commit_return_stmt
           | 'CONTINUE'
           | if_stmt
           | open_stmt
           | close_stmt
           | out_stmt
           | out_union_stmt
           | 'THROW'
           | trycatch_stmt
           | begin_trans_stmt
           | rollback_trans_stmt
           | commit_trans_stmt
           | proc_savepoint_stmt
           | savepoint_stmt
           | release_savepoint_stmt
           | echo_stmt
           | schema_upgrade_version_stmt
           | '@SCHEMA_UPGRADE_SCRIPT'
           | '@PREVIOUS_SCHEMA'
           | enforce_strict_stmt
           | enforce_normal_stmt
           | '@ENFORCE_RESET'
           | '@ENFORCE_PUSH'
           | '@ENFORCE_POP'
           | declare_schema_region_stmt
           | declare_deployable_region_stmt
           | begin_schema_region_stmt
           | '@END_SCHEMA_REGION'
           | schema_ad_hoc_migration_stmt
           | emit_enums_stmt

referenced by:


explain_stmt:

EXPLAIN opt_query_plan explain_target

         ::= 'EXPLAIN' opt_query_plan explain_target

referenced by:


opt_query_plan:

QUERY PLAN

         ::= 'QUERY PLAN'?

referenced by:


explain_target:

select_stmt update_stmt delete_stmt with_delete_stmt with_insert_stmt insert_stmt upsert_stmt drop_table_stmt drop_view_stmt drop_index_stmt drop_trigger_stmt begin_trans_stmt commit_trans_stmt

         ::= select_stmt
           | update_stmt
           | delete_stmt
           | with_delete_stmt
           | with_insert_stmt
           | insert_stmt
           | upsert_stmt
           | drop_table_stmt
           | drop_view_stmt
           | drop_index_stmt
           | drop_trigger_stmt
           | begin_trans_stmt
           | commit_trans_stmt

referenced by:


schema_upgrade_version_stmt:

@SCHEMA_UPGRADE_VERSION ( integer-literal )

         ::= '@SCHEMA_UPGRADE_VERSION' '(' 'integer-literal' ')'

referenced by:


set_stmt:

SET name := expr FROM CURSOR name

set_stmt ::= 'SET' name ( ':=' expr | 'FROM' 'CURSOR' name )

referenced by:


version_attrs_opt_recreate:

@RECREATE ( name ) version_attrs

         ::= ( '@RECREATE' ( '(' name ')' )? | version_attrs )?

referenced by:


opt_version_attrs:

version_attrs

         ::= version_attrs?

referenced by:


version_attrs:

@CREATE @DELETE version_annotation opt_version_attrs

         ::= ( '@CREATE' | '@DELETE' ) version_annotation opt_version_attrs

referenced by:


opt_delete_version_attr:

@DELETE version_annotation

         ::= ( '@DELETE' version_annotation )?

referenced by:


drop_table_stmt:

DROP TABLE IF EXISTS name

         ::= 'DROP' 'TABLE' ( 'IF' 'EXISTS' )? name

referenced by:


drop_view_stmt:

DROP VIEW IF EXISTS name

         ::= 'DROP' 'VIEW' ( 'IF' 'EXISTS' )? name

referenced by:


drop_index_stmt:

DROP INDEX IF EXISTS name

         ::= 'DROP' 'INDEX' ( 'IF' 'EXISTS' )? name

referenced by:


drop_trigger_stmt:

DROP TRIGGER IF EXISTS name

         ::= 'DROP' 'TRIGGER' ( 'IF' 'EXISTS' )? name

referenced by:


create_virtual_table_stmt:

CREATE VIRTUAL TABLE opt_if_not_exists name USING name opt_module_args AS ( col_key_list ) opt_delete_version_attr

         ::= 'CREATE' 'VIRTUAL' 'TABLE' opt_if_not_exists name 'USING' name opt_module_args 'AS' '(' col_key_list ')' opt_delete_version_attr

referenced by:


opt_module_args:

( misc_attr_value_list ARGUMENTS FOLLOWING )

         ::= ( '(' ( misc_attr_value_list | 'ARGUMENTS' 'FOLLOWING' ) ')' )?

referenced by:


create_table_stmt:

CREATE opt_temp TABLE opt_if_not_exists name ( col_key_list ) opt_no_rowid version_attrs_opt_recreate

referenced by:


opt_temp:

TEMP

opt_temp ::= 'TEMP'?

referenced by:


opt_if_not_exists:

IF NOT EXISTS

         ::= ( 'IF' 'NOT' 'EXISTS' )?

referenced by:


opt_no_rowid:

WITHOUT ROWID

         ::= ( 'WITHOUT' 'ROWID' )?

referenced by:


col_key_list:

col_key_def ,

         ::= col_key_def ( ',' col_key_def )*

referenced by:


col_key_def:

col_def pk_def fk_def unq_def check_def shape_def

         ::= col_def
           | pk_def
           | fk_def
           | unq_def
           | check_def
           | shape_def

referenced by:


check_def:

CONSTRAINT name CHECK ( expr )

         ::= ( 'CONSTRAINT' name )? 'CHECK' '(' expr ')'

referenced by:


shape_def:

LIKE name ARGUMENTS

         ::= 'LIKE' name 'ARGUMENTS'?

referenced by:


col_name:

name

referenced by:


misc_attr_key:

name : name

         ::= name ( ':' name )?

referenced by:


misc_attr_value_list:

misc_attr_value ,

         ::= misc_attr_value ( ',' misc_attr_value )*

referenced by:


misc_attr_value:

name any_literal const_expr ( misc_attr_value_list ) - num_literal

         ::= name
           | any_literal
           | const_expr
           | '(' misc_attr_value_list ')'
           | '-' num_literal

referenced by:


misc_attr:

@ATTRIBUTE ( misc_attr_key = misc_attr_value )

         ::= '@ATTRIBUTE' '(' misc_attr_key ( '=' misc_attr_value )? ')'

referenced by:


misc_attrs:

misc_attr

         ::= misc_attr*

referenced by:


col_def:

misc_attrs col_name data_type_any NOT NULL PRIMARY KEY AUTOINCREMENT DEFAULT - num_literal const_expr str_literal COLLATE name CHECK ( expr ) UNIQUE HIDDEN @SENSITIVE @CREATE @DELETE version_annotation fk_target_options

col_def  ::= misc_attrs col_name data_type_any ( 'NOT' 'NULL' | 'PRIMARY' 'KEY' 'AUTOINCREMENT'? | 'DEFAULT' ( '-'? num_literal | const_expr | str_literal ) | 'COLLATE' name | 'CHECK' '(' expr ')' | 'UNIQUE' | 'HIDDEN' | '@SENSITIVE' | ( '@CREATE' | '@DELETE' ) version_annotation | fk_target_options )*

referenced by:


pk_def:

CONSTRAINT name PRIMARY KEY ( name_list )

pk_def   ::= ( 'CONSTRAINT' name )? 'PRIMARY' 'KEY' '(' name_list ')'

referenced by:


opt_fk_options:

fk_options

         ::= fk_options?

referenced by:


fk_options:

fk_on_options fk_deferred_options fk_deferred_options

         ::= fk_on_options fk_deferred_options?
           | fk_deferred_options

referenced by:


fk_on_options:

ON DELETE fk_action ON UPDATE UPDATE fk_action ON DELETE fk_action

         ::= 'ON' ( 'DELETE' ( fk_action 'ON' 'UPDATE' )? | 'UPDATE' ( fk_action 'ON' 'DELETE' )? ) fk_action

referenced by:


fk_action:

SET NULL DEFAULT CASCADE RESTRICT NO ACTION

         ::= 'SET' ( 'NULL' | 'DEFAULT' )
           | 'CASCADE'
           | 'RESTRICT'
           | 'NO' 'ACTION'

referenced by:


fk_deferred_options:

DEFERRABLE NOT DEFERRABLE fk_initial_state

         ::= ( 'DEFERRABLE' | 'NOT DEFERRABLE' ) fk_initial_state

referenced by:


fk_initial_state:

INITIALLY DEFERRED IMMEDIATE

         ::= ( 'INITIALLY' ( 'DEFERRED' | 'IMMEDIATE' ) )?

referenced by:


fk_def:

CONSTRAINT name FOREIGN KEY ( name_list ) fk_target_options

fk_def   ::= ( 'CONSTRAINT' name )? 'FOREIGN' 'KEY' '(' name_list ')' fk_target_options

referenced by:


fk_target_options:

REFERENCES name ( name_list ) opt_fk_options

         ::= 'REFERENCES' name '(' name_list ')' opt_fk_options

referenced by:


unq_def:

CONSTRAINT name UNIQUE ( name_list )

unq_def  ::= ( 'CONSTRAINT' name )? 'UNIQUE' '(' name_list ')'

referenced by:


opt_unique:

UNIQUE

         ::= 'UNIQUE'?

referenced by:


indexed_column:

name opt_asc_desc

         ::= name opt_asc_desc

referenced by:


indexed_columns:

indexed_column ,

         ::= indexed_column ( ',' indexed_column )*

referenced by:


create_index_stmt:

CREATE opt_unique INDEX opt_if_not_exists name ON name ( indexed_columns ) opt_delete_version_attr

referenced by:


name:

ID TEXT TRIGGER ROWID KEY VIRTUAL TYPE HIDDEN PRIVATE

name     ::= 'ID'
           | 'TEXT'
           | 'TRIGGER'
           | 'ROWID'
           | 'KEY'
           | 'VIRTUAL'
           | 'TYPE'
           | 'HIDDEN'
           | 'PRIVATE'

referenced by:


opt_name:

name

referenced by:


name_list:

name ,

         ::= name ( ',' name )*

referenced by:


opt_name_list:

name_list

         ::= name_list?

referenced by:


version_annotation:

( integer-literal , name )

         ::= '(' 'integer-literal' ( ',' name )? ')'

referenced by:


opt_kind:

< name >

opt_kind ::= ( '<' name '>' )?

referenced by:


data_type_numeric:

INT INTEGER REAL BOOL LONG_INT LONG_INTEGER LONG INTEGER INT opt_kind

         ::= ( 'INT' | 'INTEGER' | 'REAL' | 'BOOL' | 'LONG_INT' | 'LONG_INTEGER' | 'LONG' ( 'INTEGER' | 'INT' )? ) opt_kind

referenced by:


data_type_any:

data_type_numeric TEXT BLOB opt_kind OBJECT opt_kind < name CURSOR > ID

         ::= data_type_numeric
           | ( 'TEXT' | 'BLOB' ) opt_kind
           | 'OBJECT' ( opt_kind | '<' name 'CURSOR' '>' )
           | 'ID'

referenced by:


data_type_with_options:

data_type_any NOT NULL @SENSITIVE @SENSITIVE NOT NULL

         ::= data_type_any ( 'NOT' 'NULL' '@SENSITIVE'? | '@SENSITIVE' ( 'NOT' 'NULL' )? )?

referenced by:


str_literal:

sql-string-literal c-string-literal

         ::= 'sql-string-literal'
           | 'c-string-literal'

referenced by:


num_literal:

integer-literal long-literal real-literal

         ::= 'integer-literal'
           | 'long-literal'
           | 'real-literal'

referenced by:


const_expr:

CONST ( expr )

         ::= 'CONST' '(' expr ')'

referenced by:


any_literal:

str_literal num_literal NULL @FILE ( str_literal ) @PROC sql-blob-literal

         ::= str_literal
           | num_literal
           | 'NULL'
           | '@FILE' '(' str_literal ')'
           | '@PROC'
           | 'sql-blob-literal'

referenced by:


raise_expr:

RAISE ( IGNORE ROLLBACK ABORT FAIL , expr )

         ::= 'RAISE' '(' ( 'IGNORE' | ( 'ROLLBACK' | 'ABORT' | 'FAIL' ) ',' expr ) ')'

referenced by:


call:

name ( DISTINCT arg_list ) opt_filter_clause

call     ::= name '(' 'DISTINCT'? arg_list ')' opt_filter_clause

referenced by:


basic_expr:

name . name @RC any_literal const_expr ( expr select_stmt IF NOTHING OR NULL expr THROW EXISTS ( select_stmt ) call window_func_inv raise_expr

         ::= name ( '.' name )?
           | '@RC'
           | any_literal
           | const_expr
           | ( '(' ( expr | select_stmt ( 'IF' 'NOTHING' ( ( 'OR' 'NULL' )? expr | 'THROW' ) )? ) | 'EXISTS' '(' select_stmt ) ')'
           | call
           | window_func_inv
           | raise_expr

referenced by:


math_expr:

basic_expr math_expr & | << >> + - * / % || - math_expr

         ::= basic_expr
           | ( math_expr ( '&' | '|' | '<<' | '>>' | '+' | '-' | '*' | '/' | '%' | '||' ) | '-' ) math_expr

referenced by:


expr:

basic_expr expr & | << >> + - * / % AND OR = == < > <> != >= <= LIKE NOT LIKE MATCH REGEXP GLOB IS NOT IS || expr COLLATE name NOT IN ( expr_list select_stmt ) BETWEEN math_expr AND math_expr - NOT ~ expr CASE expr WHEN expr THEN expr ELSE expr END CAST ( expr AS data_type_any )

expr     ::= basic_expr
           | expr ( ( '&' | '|' | '<<' | '>>' | '+' | '-' | '*' | '/' | '%' | 'AND' | 'OR' | '=' | '==' | '<' | '>' | '<>' | '!=' | '>=' | '<=' | 'LIKE' | 'NOT LIKE' | 'MATCH' | 'REGEXP' | 'GLOB' | 'IS NOT' | 'IS' | '||' ) expr | 'COLLATE' name | 'NOT'? ( 'IN' '(' ( expr_list | select_stmt ) ')' | 'BETWEEN' math_expr 'AND' math_expr ) )
           | ( '-' | 'NOT' | '~' ) expr
           | 'CASE' expr? ( 'WHEN' expr 'THEN' expr )+ ( 'ELSE' expr )? 'END'
           | 'CAST' '(' expr 'AS' data_type_any ')'

referenced by:


arg_expr:

* expr shape_arguments

arg_expr ::= '*'
           | expr
           | shape_arguments

referenced by:


arg_list:

arg_expr , arg_expr

arg_list ::= ( arg_expr ',' )* arg_expr?

referenced by:


expr_list:

expr ,

         ::= expr ( ',' expr )*

referenced by:


shape_arguments:

FROM name ARGUMENTS shape_def

         ::= 'FROM' ( name | 'ARGUMENTS' ) shape_def?

referenced by:


call_expr:

expr shape_arguments

         ::= expr
           | shape_arguments

referenced by:


cte_table:

name ( name_list * ) AS ( select_stmt_no_with )

         ::= name '(' ( name_list | '*' ) ')' 'AS' '(' select_stmt_no_with ')'

referenced by:


with_prefix:

WITH RECURSIVE cte_table ,

         ::= 'WITH' 'RECURSIVE'? cte_table ( ',' cte_table )*

referenced by:


with_select_stmt:

with_prefix select_stmt_no_with

referenced by:


select_stmt:

with_select_stmt select_stmt_no_with

         ::= with_select_stmt
           | select_stmt_no_with

referenced by:


select_stmt_no_with:

select_core compound_operator opt_orderby opt_limit opt_offset

referenced by:


select_core:

SELECT select_opts select_expr , select_expr * opt_from_query_parts opt_where opt_groupby opt_having opt_select_window VALUES ( insert_list ) ,

           | 'VALUES' '(' insert_list ')' ( ',' '(' insert_list ')' )*

referenced by:


compound_operator:

UNION UNION ALL INTERSECT EXCEPT

         ::= 'UNION'
           | 'UNION ALL'
           | 'INTERSECT'
           | 'EXCEPT'

referenced by:


window_func_inv:

name ( arg_list ) opt_filter_clause OVER window_name_or_defn

         ::= name '(' arg_list ')' opt_filter_clause 'OVER' window_name_or_defn

referenced by:


opt_filter_clause:

FILTER ( opt_where )

         ::= ( 'FILTER' '(' opt_where ')' )?

referenced by:


window_name_or_defn:

window_defn name

         ::= window_defn
           | name

referenced by:


window_defn:

( opt_partition_by opt_orderby opt_frame_spec )

referenced by:


opt_frame_spec:

frame_type frame_boundary_opts frame_exclude

referenced by:


frame_type:

RANGE ROWS GROUPS

         ::= 'RANGE'
           | 'ROWS'
           | 'GROUPS'

referenced by:


frame_exclude:

EXCLUDE NO OTHERS EXCLUDE CURRENT ROW EXCLUDE GROUP EXCLUDE TIES

         ::= ( 'EXCLUDE NO OTHERS' | 'EXCLUDE CURRENT ROW' | 'EXCLUDE GROUP' | 'EXCLUDE TIES' )?

referenced by:


frame_boundary_opts:

frame_boundary BETWEEN frame_boundary_start AND frame_boundary_end

         ::= frame_boundary
           | 'BETWEEN' frame_boundary_start 'AND' frame_boundary_end

referenced by:


frame_boundary_start:

UNBOUNDED PRECEDING expr PRECEDING FOLLOWING CURRENT ROW

         ::= 'UNBOUNDED' 'PRECEDING'
           | expr ( 'PRECEDING' | 'FOLLOWING' )
           | 'CURRENT ROW'

referenced by:


frame_boundary_end:

expr PRECEDING FOLLOWING CURRENT ROW UNBOUNDED FOLLOWING

         ::= expr ( 'PRECEDING' | 'FOLLOWING' )
           | 'CURRENT ROW'
           | 'UNBOUNDED' 'FOLLOWING'

referenced by:


frame_boundary:

UNBOUNDED expr PRECEDING CURRENT ROW

         ::= ( 'UNBOUNDED' | expr ) 'PRECEDING'
           | 'CURRENT ROW'

referenced by:


opt_partition_by:

PARTITION BY expr_list

         ::= ( 'PARTITION' 'BY' expr_list )?

referenced by:


opt_select_window:

window_clause

         ::= window_clause?

referenced by:


window_clause:

WINDOW window_name_defn ,

         ::= 'WINDOW' window_name_defn ( ',' window_name_defn )*

referenced by:


window_name_defn:

name AS window_defn

         ::= name 'AS' window_defn

referenced by:


region_spec:

name PRIVATE

         ::= name 'PRIVATE'?

referenced by:


region_list:

region_spec ,

         ::= region_spec ( ',' region_spec )*

referenced by:


declare_schema_region_stmt:

@DECLARE_SCHEMA_REGION name USING region_list

         ::= '@DECLARE_SCHEMA_REGION' name ( 'USING' region_list )?

referenced by:


declare_deployable_region_stmt:

@DECLARE_DEPLOYABLE_REGION name USING region_list

         ::= '@DECLARE_DEPLOYABLE_REGION' name ( 'USING' region_list )?

referenced by:


begin_schema_region_stmt:

@BEGIN_SCHEMA_REGION name

         ::= '@BEGIN_SCHEMA_REGION' name

referenced by:


schema_ad_hoc_migration_stmt:

@SCHEMA_AD_HOC_MIGRATION version_annotation

         ::= '@SCHEMA_AD_HOC_MIGRATION' version_annotation

referenced by:


emit_enums_stmt:

@EMIT_ENUMS opt_name_list

         ::= '@EMIT_ENUMS' opt_name_list

referenced by:


opt_from_query_parts:

FROM query_parts

         ::= ( 'FROM' query_parts )?

referenced by:


opt_where:

WHERE expr

         ::= ( 'WHERE' expr )?

referenced by:


opt_groupby:

GROUP BY groupby_list

         ::= ( 'GROUP' 'BY' groupby_list )?

referenced by:


groupby_list:

groupby_item ,

         ::= groupby_item ( ',' groupby_item )*

referenced by:


groupby_item:

expr opt_asc_desc

         ::= expr opt_asc_desc

referenced by:


opt_asc_desc:

ASC DESC

         ::= ( 'ASC' | 'DESC' )?

referenced by:


opt_having:

HAVING expr

         ::= ( 'HAVING' expr )?

referenced by:


opt_orderby:

ORDER BY groupby_list

         ::= ( 'ORDER' 'BY' groupby_list )?

referenced by:


opt_limit:

LIMIT expr

         ::= ( 'LIMIT' expr )?

referenced by:


opt_offset:

OFFSET expr

         ::= ( 'OFFSET' expr )?

referenced by:


select_opts:

ALL DISTINCT DISTINCTROW

         ::= ( 'ALL' | 'DISTINCT' | 'DISTINCTROW' )?

referenced by:


select_expr:

expr opt_as_alias name . *

         ::= expr opt_as_alias
           | name '.' '*'

referenced by:


opt_as_alias:

as_alias

         ::= as_alias?

referenced by:


as_alias:

AS name

as_alias ::= 'AS'? name

referenced by:


query_parts:

table_or_subquery , join_clause

         ::= table_or_subquery ( ',' table_or_subquery )*
           | join_clause

referenced by:


join_clause:

table_or_subquery join_target

         ::= table_or_subquery join_target+

referenced by:


table_or_subquery:

name table_function opt_as_alias ( select_stmt ) opt_as_alias query_parts )

         ::= ( name | table_function ) opt_as_alias
           | '(' ( select_stmt ')' opt_as_alias | query_parts ')' )

referenced by:


join_type:

LEFT RIGHT OUTER INNER CROSS

         ::= ( ( 'LEFT' | 'RIGHT' ) 'OUTER'? | 'INNER' | 'CROSS' )?

referenced by:


join_target:

join_type JOIN table_or_subquery opt_join_cond

referenced by:


opt_join_cond:

join_cond

         ::= join_cond?

referenced by:


join_cond:

ON expr USING ( name_list )

         ::= 'ON' expr
           | 'USING' '(' name_list ')'

referenced by:


table_function:

name ( arg_list )

         ::= name '(' arg_list ')'

referenced by:


create_view_stmt:

CREATE opt_temp VIEW opt_if_not_exists name AS select_stmt opt_delete_version_attr

referenced by:


with_delete_stmt:

with_prefix delete_stmt

referenced by:


delete_stmt:

DELETE FROM name opt_where

         ::= 'DELETE' 'FROM' name opt_where

referenced by:


opt_insert_dummy_spec:

@DUMMY_SEED ( expr ) dummy_modifier

         ::= ( '@DUMMY_SEED' '(' expr ')' dummy_modifier )?

referenced by:


dummy_modifier:

@DUMMY_NULLABLES @DUMMY_DEFAULTS @DUMMY_DEFAULTS @DUMMY_NULLABLES

         ::= ( '@DUMMY_NULLABLES' '@DUMMY_DEFAULTS'? | '@DUMMY_DEFAULTS' '@DUMMY_NULLABLES'? )?

referenced by:


insert_stmt_type:

INSERT OR REPLACE IGNORE ROLLBACK ABORT FAIL REPLACE INTO

         ::= ( 'INSERT' ( 'OR' ( 'REPLACE' | 'IGNORE' | 'ROLLBACK' | 'ABORT' | 'FAIL' ) )? | 'REPLACE' ) 'INTO'

referenced by:


with_insert_stmt:

with_prefix insert_stmt

referenced by:


opt_column_spec:

( opt_name_list shape_def )

         ::= ( '(' ( opt_name_list | shape_def ) ')' )?

referenced by:


from_shape:

FROM CURSOR name ARGUMENTS opt_column_spec

         ::= 'FROM' ( 'CURSOR'? name | 'ARGUMENTS' ) opt_column_spec

referenced by:


insert_stmt:

insert_stmt_type name opt_column_spec select_stmt from_shape USING expr_names opt_insert_dummy_spec DEFAULT VALUES

         ::= insert_stmt_type name ( ( opt_column_spec ( select_stmt | from_shape ) | 'USING' expr_names ) opt_insert_dummy_spec | 'DEFAULT' 'VALUES' )

referenced by:


insert_list:

expr , expr

         ::= ( expr ',' )* expr?

referenced by:


basic_update_stmt:

UPDATE opt_name SET update_list opt_where

         ::= 'UPDATE' opt_name 'SET' update_list opt_where

referenced by:


with_update_stmt:

with_prefix update_stmt

referenced by:


update_stmt:

UPDATE name SET update_list opt_where opt_orderby opt_limit

         ::= 'UPDATE' name 'SET' update_list opt_where opt_orderby opt_limit

referenced by:


update_entry:

name = expr

         ::= name '=' expr

referenced by:


update_list:

update_entry ,

         ::= update_entry ( ',' update_entry )*

referenced by:


with_upsert_stmt:

with_prefix upsert_stmt

referenced by:


upsert_stmt:

insert_stmt ON CONFLICT conflict_target DO NOTHING basic_update_stmt

         ::= insert_stmt 'ON CONFLICT' conflict_target 'DO' ( 'NOTHING' | basic_update_stmt )

referenced by:


update_cursor_stmt:

UPDATE CURSOR name opt_column_spec FROM VALUES ( insert_list ) from_shape USING expr_names

         ::= 'UPDATE' 'CURSOR' name ( opt_column_spec ( 'FROM' 'VALUES' '(' insert_list ')' | from_shape ) | 'USING' expr_names )

referenced by:


conflict_target:

( indexed_columns ) opt_where

         ::= ( '(' indexed_columns ')' opt_where )?

referenced by:


function:

FUNC FUNCTION

function ::= 'FUNC'
           | 'FUNCTION'

referenced by:


declare_enum_stmt:

DECLARE ENUM name data_type_numeric ( enum_value , )

         ::= 'DECLARE' 'ENUM' name data_type_numeric '(' enum_value ( ',' enum_value )* ')'

referenced by:


enum_value:

name = expr

         ::= name ( '=' expr )?

referenced by:


declare_func_stmt:

DECLARE function name ( params ) CREATE data_type_with_options SELECT function name ( params ) data_type_with_options ( typed_names )

         ::= 'DECLARE' ( function name '(' params ')' 'CREATE'? data_type_with_options | 'SELECT' function name '(' params ')' ( data_type_with_options | '(' typed_names ')' ) )

referenced by:


procedure:

PROC PROCEDURE

         ::= 'PROC'
           | 'PROCEDURE'

referenced by:


declare_proc_stmt:

DECLARE procedure name ( params ) OUT UNION ( typed_names ) USING TRANSACTION ( typed_names )

         ::= 'DECLARE' procedure name '(' params ')' ( ( 'OUT' 'UNION'? '(' typed_names ')' )? ( 'USING' 'TRANSACTION' )? | '(' typed_names ')' )

referenced by:


create_proc_stmt:

CREATE procedure name ( params ) BEGIN opt_stmt_list END

         ::= 'CREATE' procedure name '(' params ')' 'BEGIN' opt_stmt_list 'END'

referenced by:


inout:

IN OUT INOUT

inout    ::= 'IN'
           | 'OUT'
           | 'INOUT'

referenced by:


typed_name:

name data_type_with_options shape_def shape_def

         ::= name ( data_type_with_options | shape_def )
           | shape_def

referenced by:


typed_names:

typed_name ,

         ::= typed_name ( ',' typed_name )*

referenced by:


param:

name data_type_with_options shape_def inout name data_type_with_options shape_def

           | inout name data_type_with_options
           | shape_def

referenced by:


params:

param , param

params   ::= ( param ',' )* param?

referenced by:


declare_stmt:

DECLARE name_list data_type_with_options name CURSOR FOR select_stmt explain_stmt call_stmt name FETCH FROM call_stmt shape_def LIKE select_stmt TYPE data_type_with_options

         ::= 'DECLARE' ( name_list data_type_with_options | name ( 'CURSOR' ( 'FOR' ( select_stmt | explain_stmt | call_stmt | name ) | 'FETCH' 'FROM' call_stmt | shape_def | 'LIKE' select_stmt ) | 'TYPE' data_type_with_options ) )

referenced by:


call_stmt:

CALL name ( call_expr , )

         ::= 'CALL' name '(' ( call_expr ( ',' call_expr )* )? ')'

referenced by:


while_stmt:

WHILE expr BEGIN opt_stmt_list END

         ::= 'WHILE' expr 'BEGIN' opt_stmt_list 'END'

referenced by:


loop_stmt:

LOOP fetch_stmt BEGIN opt_stmt_list END

         ::= 'LOOP' fetch_stmt 'BEGIN' opt_stmt_list 'END'

referenced by:


rollback_return_stmt:

ROLLBACK RETURN

         ::= 'ROLLBACK' 'RETURN'

referenced by:


commit_return_stmt:

COMMIT RETURN

         ::= 'COMMIT' 'RETURN'

referenced by:


trycatch_stmt:

BEGIN TRY opt_stmt_list END TRY ; BEGIN CATCH opt_stmt_list END CATCH

         ::= 'BEGIN' 'TRY' opt_stmt_list 'END' 'TRY' ';' 'BEGIN' 'CATCH' opt_stmt_list 'END' 'CATCH'

referenced by:


fetch_stmt:

FETCH name INTO name_list

         ::= 'FETCH' name ( 'INTO' name_list )?

referenced by:


fetch_values_stmt:

FETCH name opt_column_spec FROM VALUES ( insert_list ) from_shape USING expr_names opt_insert_dummy_spec

         ::= 'FETCH' name ( opt_column_spec ( 'FROM' 'VALUES' '(' insert_list ')' | from_shape ) | 'USING' expr_names ) opt_insert_dummy_spec

referenced by:


expr_names:

expr_name ,

         ::= expr_name ( ',' expr_name )*

referenced by:


expr_name:

expr as_alias

         ::= expr as_alias

referenced by:


fetch_call_stmt:

FETCH name opt_column_spec FROM call_stmt

         ::= 'FETCH' name opt_column_spec 'FROM' call_stmt

referenced by:


open_stmt:

OPEN name

         ::= 'OPEN' name

referenced by:


close_stmt:

CLOSE name

         ::= 'CLOSE' name

referenced by:


out_stmt:

OUT name

out_stmt ::= 'OUT' name

referenced by:


out_union_stmt:

OUT UNION name

         ::= 'OUT' 'UNION' name

referenced by:


if_stmt:

IF expr THEN opt_stmt_list opt_elseif_list opt_else END IF

if_stmt  ::= 'IF' expr 'THEN' opt_stmt_list opt_elseif_list opt_else 'END' 'IF'

referenced by:


opt_else:

ELSE opt_stmt_list

opt_else ::= ( 'ELSE' opt_stmt_list )?

referenced by:


elseif_item:

ELSE IF expr THEN opt_stmt_list

         ::= 'ELSE IF' expr 'THEN' opt_stmt_list

referenced by:


opt_elseif_list:

elseif_item

         ::= elseif_item*

referenced by:


transaction_mode:

DEFERRED IMMEDIATE EXCLUSIVE

         ::= ( 'DEFERRED' | 'IMMEDIATE' | 'EXCLUSIVE' )?

referenced by:


begin_trans_stmt:

BEGIN transaction_mode TRANSACTION

         ::= 'BEGIN' transaction_mode 'TRANSACTION'?

referenced by:


rollback_trans_stmt:

ROLLBACK TRANSACTION TO SAVEPOINT savepoint_name

         ::= 'ROLLBACK' 'TRANSACTION'? ( 'TO' 'SAVEPOINT'? savepoint_name )?

referenced by:


commit_trans_stmt:

COMMIT TRANSACTION

         ::= 'COMMIT' 'TRANSACTION'?

referenced by:


proc_savepoint_stmt:

procedure SAVEPOINT BEGIN opt_stmt_list END

         ::= procedure 'SAVEPOINT' 'BEGIN' opt_stmt_list 'END'

referenced by:


savepoint_name:

@PROC name

         ::= '@PROC'
           | name

referenced by:


savepoint_stmt:

SAVEPOINT savepoint_name

         ::= 'SAVEPOINT' savepoint_name

referenced by:


release_savepoint_stmt:

RELEASE SAVEPOINT savepoint_name

         ::= 'RELEASE' 'SAVEPOINT'? savepoint_name

referenced by:


echo_stmt:

@ECHO name , str_literal

         ::= '@ECHO' name ',' str_literal

referenced by:


alter_table_add_column_stmt:

ALTER TABLE name ADD COLUMN col_def

         ::= 'ALTER' 'TABLE' name 'ADD' 'COLUMN' col_def

referenced by:


create_trigger_stmt:

CREATE opt_temp TRIGGER opt_if_not_exists trigger_def opt_delete_version_attr

referenced by:


trigger_def:

name trigger_condition trigger_operation ON name trigger_action

referenced by:


trigger_condition:

BEFORE AFTER INSTEAD OF

         ::= ( 'BEFORE' | 'AFTER' | 'INSTEAD' 'OF' )?

referenced by:


trigger_operation:

DELETE INSERT UPDATE opt_of

         ::= 'DELETE'
           | 'INSERT'
           | 'UPDATE' opt_of

referenced by:


opt_of:

OF name_list

opt_of   ::= ( 'OF' name_list )?

referenced by:


trigger_action:

opt_foreachrow opt_when_expr BEGIN trigger_stmt END

         ::= opt_foreachrow opt_when_expr 'BEGIN' trigger_stmt+ 'END'

referenced by:


opt_foreachrow:

FOR EACH ROW

         ::= ( 'FOR' 'EACH' 'ROW' )?

referenced by:


opt_when_expr:

WHEN expr

         ::= ( 'WHEN' expr )?

referenced by:


trigger_stmt:

trigger_update_stmt trigger_insert_stmt trigger_delete_stmt trigger_select_stmt ;

referenced by:


trigger_select_stmt:

select_stmt_no_with

referenced by:


trigger_insert_stmt:

insert_stmt

         ::= insert_stmt

referenced by:


trigger_delete_stmt:

delete_stmt

         ::= delete_stmt

referenced by:


trigger_update_stmt:

basic_update_stmt

         ::= basic_update_stmt

referenced by:


enforcement_options:

FOREIGN KEY ON UPDATE DELETE JOIN UPSERT STATEMENT WINDOW function procedure WITHOUT ROWID TRANSACTION SELECT IF NOTHING

         ::= 'FOREIGN' 'KEY' 'ON' ( 'UPDATE' | 'DELETE' )
           | 'JOIN'
           | 'UPSERT' 'STATEMENT'
           | 'WINDOW' function
           | procedure
           | 'WITHOUT' 'ROWID'
           | 'TRANSACTION'
           | 'SELECT' 'IF' 'NOTHING'

referenced by:


enforce_strict_stmt:

@ENFORCE_STRICT enforcement_options

         ::= '@ENFORCE_STRICT' enforcement_options

referenced by:


enforce_normal_stmt:

@ENFORCE_NORMAL enforcement_options

         ::= '@ENFORCE_NORMAL' enforcement_options

referenced by:



  ... generated by RR - Railroad Diagram Generator R R