Skip to main content

program:

opt_stmt_list

no references


opt_stmt_list:

stmt_list

         ::= stmt_list?

referenced by:


stmt_list:

stmt ;

         ::= ( stmt ';' )+

referenced by:


stmt:

misc_attrs any_stmt

stmt     ::= misc_attrs any_stmt

referenced by:


any_stmt:

alter_table_add_column_stmt begin_schema_region_stmt begin_trans_stmt blob_get_key_type_stmt blob_get_val_type_stmt blob_get_key_stmt blob_get_val_stmt blob_create_key_stmt blob_create_val_stmt blob_update_key_stmt blob_update_val_stmt call_stmt close_stmt commit_return_stmt commit_trans_stmt CONTINUE create_index_stmt create_proc_stmt create_table_stmt create_trigger_stmt create_view_stmt create_virtual_table_stmt declare_deployable_region_stmt declare_enum_stmt declare_const_stmt declare_group_stmt declare_select_func_no_check_stmt declare_func_stmt declare_out_call_stmt declare_proc_no_check_stmt declare_proc_stmt declare_interface_stmt declare_schema_region_stmt declare_vars_stmt declare_forward_read_cursor_stmt declare_fetched_value_cursor_stmt declare_type_stmt delete_stmt drop_index_stmt drop_table_stmt drop_trigger_stmt drop_view_stmt echo_stmt emit_enums_stmt emit_group_stmt emit_constants_stmt @END_SCHEMA_REGION enforce_normal_stmt @ENFORCE_POP @ENFORCE_PUSH @ENFORCE_RESET enforce_strict_stmt explain_stmt select_nothing_stmt fetch_call_stmt fetch_stmt fetch_values_stmt fetch_cursor_from_blob_stmt guard_stmt if_stmt insert_stmt LEAVE let_stmt loop_stmt out_stmt out_union_stmt out_union_parent_child_stmt @PREVIOUS_SCHEMA proc_savepoint_stmt release_savepoint_stmt RETURN rollback_return_stmt rollback_trans_stmt savepoint_stmt select_stmt schema_ad_hoc_migration_stmt schema_unsub_stmt @SCHEMA_UPGRADE_SCRIPT schema_upgrade_version_stmt set_stmt switch_stmt THROW trycatch_stmt update_cursor_stmt update_stmt upsert_stmt while_stmt with_delete_stmt with_insert_stmt with_update_stmt with_upsert_stmt

           | begin_schema_region_stmt
           | begin_trans_stmt
           | blob_get_key_type_stmt
           | blob_get_val_type_stmt
           | blob_get_key_stmt
           | blob_get_val_stmt
           | blob_create_key_stmt
           | blob_create_val_stmt
           | blob_update_key_stmt
           | blob_update_val_stmt
           | call_stmt
           | close_stmt
           | commit_return_stmt
           | commit_trans_stmt
           | 'CONTINUE'
           | create_index_stmt
           | create_proc_stmt
           | create_table_stmt
           | create_trigger_stmt
           | create_view_stmt
           | create_virtual_table_stmt
           | declare_deployable_region_stmt
           | declare_enum_stmt
           | declare_const_stmt
           | declare_group_stmt
           | declare_select_func_no_check_stmt
           | declare_func_stmt
           | declare_out_call_stmt
           | declare_proc_no_check_stmt
           | declare_proc_stmt
           | declare_interface_stmt
           | declare_schema_region_stmt
           | declare_vars_stmt
           | declare_forward_read_cursor_stmt
           | declare_fetched_value_cursor_stmt
           | declare_type_stmt
           | delete_stmt
           | drop_index_stmt
           | drop_table_stmt
           | drop_trigger_stmt
           | drop_view_stmt
           | echo_stmt
           | emit_enums_stmt
           | emit_group_stmt
           | emit_constants_stmt
           | '@END_SCHEMA_REGION'
           | enforce_normal_stmt
           | '@ENFORCE_POP'
           | '@ENFORCE_PUSH'
           | '@ENFORCE_RESET'
           | enforce_strict_stmt
           | explain_stmt
           | select_nothing_stmt
           | fetch_call_stmt
           | fetch_stmt
           | fetch_values_stmt
           | fetch_cursor_from_blob_stmt
           | guard_stmt
           | if_stmt
           | insert_stmt
           | 'LEAVE'
           | let_stmt
           | loop_stmt
           | out_stmt
           | out_union_stmt
           | out_union_parent_child_stmt
           | '@PREVIOUS_SCHEMA'
           | proc_savepoint_stmt
           | release_savepoint_stmt
           | 'RETURN'
           | rollback_return_stmt
           | rollback_trans_stmt
           | savepoint_stmt
           | select_stmt
           | schema_ad_hoc_migration_stmt
           | schema_unsub_stmt
           | '@SCHEMA_UPGRADE_SCRIPT'
           | schema_upgrade_version_stmt
           | set_stmt
           | switch_stmt
           | 'THROW'
           | trycatch_stmt
           | update_cursor_stmt
           | update_stmt
           | upsert_stmt
           | while_stmt
           | with_delete_stmt
           | with_insert_stmt
           | with_update_stmt
           | with_upsert_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:


let_stmt:

LET name := expr

let_stmt ::= 'LET' name ':=' expr

referenced by:


version_attrs_opt_recreate:

@RECREATE ( name ) opt_delete_plain_attr version_attrs

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

referenced by:


opt_delete_plain_attr:

@DELETE

         ::= '@DELETE'?

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_vtab_flags name USING name opt_module_args AS ( col_key_list ) opt_delete_version_attr

         ::= 'CREATE' 'VIRTUAL' 'TABLE' opt_vtab_flags 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_prefix_opt_temp:

CREATE opt_temp TABLE

         ::= 'CREATE' opt_temp 'TABLE'

referenced by:


create_table_stmt:

create_table_prefix_opt_temp 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:


opt_vtab_flags:

IF NOT EXISTS @EPONYMOUS @EPONYMOUS IF NOT EXISTS

         ::= ( 'IF' 'NOT' 'EXISTS' '@EPONYMOUS'? | '@EPONYMOUS' ( 'IF' 'NOT' 'EXISTS' )? )?

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_expr:

- name

         ::= '-'? name

referenced by:


shape_def:

shape_def_base ( shape_expr , )

         ::= shape_def_base ( '(' shape_expr ( ',' shape_expr )* ')' )?

referenced by:


shape_def_base:

LIKE name ARGUMENTS

         ::= 'LIKE' name 'ARGUMENTS'?

referenced by:


col_name:

name

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 UNIQUE opt_conflict_clause PRIMARY KEY opt_conflict_clause AUTOINCREMENT DEFAULT - + num_literal const_expr str_literal COLLATE name CHECK ( expr ) HIDDEN @SENSITIVE @CREATE @DELETE version_annotation fk_target_options

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

referenced by:


pk_def:

CONSTRAINT name PRIMARY KEY ( indexed_columns ) opt_conflict_clause

pk_def   ::= ( 'CONSTRAINT' name )? 'PRIMARY' 'KEY' '(' indexed_columns ')' opt_conflict_clause

referenced by:


opt_conflict_clause:

conflict_clause

         ::= conflict_clause?

referenced by:


conflict_clause:

ON CONFLICT ROLLBACK ABORT FAIL IGNORE REPLACE

         ::= 'ON CONFLICT' ( 'ROLLBACK' | 'ABORT' | 'FAIL' | 'IGNORE' | 'REPLACE' )

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 ( indexed_columns ) opt_conflict_clause

unq_def  ::= ( 'CONSTRAINT' name )? 'UNIQUE' '(' indexed_columns ')' opt_conflict_clause

referenced by:


opt_unique:

UNIQUE

         ::= 'UNIQUE'?

referenced by:


indexed_column:

expr opt_asc_desc

         ::= expr 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_where opt_delete_version_attr

         ::= 'CREATE' opt_unique 'INDEX' opt_if_not_exists name 'ON' name '(' indexed_columns ')' opt_where opt_delete_version_attr

referenced by:


name:

ID TEXT TRIGGER ROWID REPLACE KEY VIRTUAL TYPE HIDDEN PRIVATE FIRST LAST

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

referenced by:


opt_name:

name

opt_name ::= name?

referenced by:


name_list:

name ,

         ::= name ( ',' name )*

referenced by:


opt_name_list:

name_list

         ::= name_list?

referenced by:


cte_binding_list:

cte_binding ,

         ::= cte_binding ( ',' cte_binding )*

referenced by:


cte_binding:

name AS name

         ::= name 'AS'? name

referenced by:


version_annotation:

( integer-literal , name : name )

         ::= '(' 'integer-literal' ( ',' name ( ':' 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 SET > ID

         ::= data_type_numeric
           | ( 'TEXT' | 'BLOB' ) opt_kind
           | 'OBJECT' ( opt_kind | '<' name ( 'CURSOR' | 'SET' ) '>' )
           | '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:

str_leaf

         ::= str_leaf+

referenced by:


str_leaf:

sql-string-literal c-string-literal

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

referenced by:


num_literal:

integer-literal long-literal real-literal TRUE FALSE

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

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 basic_expr : name ( arg_list )

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

referenced by:


basic_expr:

name . name @RC any_literal const_expr ( expr select_stmt IF NOTHING OR NULL expr THROW EXISTS ( select_stmt CAST ( expr AS data_type_any TYPE_CHECK ( expr AS data_type_with_options ) call window_func_inv raise_expr CASE expr WHEN expr THEN expr ELSE expr END

         ::= name ( '.' name )?
           | '@RC'
           | any_literal
           | const_expr
           | ( '(' ( expr | select_stmt ( 'IF' 'NOTHING' ( ( 'OR' 'NULL' )? expr | 'THROW' ) )? ) | 'EXISTS' '(' select_stmt | 'CAST' '(' expr 'AS' data_type_any | 'TYPE_CHECK' '(' expr 'AS' data_type_with_options ) ')'
           | call
           | window_func_inv
           | raise_expr
           | 'CASE' expr? ( 'WHEN' expr 'THEN' expr )+ ( 'ELSE' expr )? 'END'

referenced by:


math_expr:

basic_expr math_expr & | << >> + - * / % = == < > <> != >= <= LIKE MATCH REGEXP GLOB BETWEEN math_expr AND || math_expr IS NOT TRUE FALSE math_expr math_expr ISNULL NOTNULL IS TRUE IS FALSE NOT IN ( expr_list select_stmt ) LIKE MATCH REGEXP GLOB BETWEEN math_expr AND math_expr IN ( expr_list select_stmt ) COLLATE name - + ~ NOT math_expr

         ::= basic_expr
           | math_expr ( ( '&' | '|' | '<<' | '>>' | '+' | '-' | '*' | '/' | '%' | '=' | '==' | '<' | '>' | '<>' | '!=' | '>=' | '<=' | 'LIKE' | 'MATCH' | 'REGEXP' | 'GLOB' | 'BETWEEN' math_expr 'AND' | '||' ) math_expr | 'IS' ( 'NOT'? ( 'TRUE' | 'FALSE' | math_expr ) | math_expr ) | 'ISNULL' | 'NOTNULL' | 'IS TRUE' | 'IS FALSE' | 'NOT'? ( 'IN' '(' ( expr_list | select_stmt ) ')' | ( 'LIKE' | 'MATCH' | 'REGEXP' | 'GLOB' | 'BETWEEN' math_expr 'AND' ) math_expr ) | 'IN' '(' ( expr_list | select_stmt ) ')' | 'COLLATE' name )
           | ( '-' | '+' | '~' | 'NOT' ) math_expr

referenced by:


expr:

math_expr expr AND OR expr

expr     ::= math_expr
           | expr ( 'AND' | 'OR' ) expr

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:


column_calculation:

COLUMNS ( DISTINCT col_calc , )

         ::= 'COLUMNS' '(' 'DISTINCT'? col_calc ( ',' col_calc )* ')'

referenced by:


col_calc:

name shape_def . name shape_def

col_calc ::= name ( shape_def | '.' name )?
           | shape_def

referenced by:


call_expr:

expr shape_arguments

         ::= expr
           | shape_arguments

referenced by:


cte_decl:

name ( name_list * )

cte_decl ::= name '(' ( name_list | '*' ) ')'

referenced by:


shared_cte:

call_stmt USING cte_binding_list

         ::= call_stmt ( 'USING' cte_binding_list )?

referenced by:


cte_table:

cte_decl AS ( select_stmt shared_cte ) LIKE ( select_stmt ) name ( call_stmt USING cte_binding_list )

         ::= cte_decl ( 'AS' '(' ( select_stmt | shared_cte ) ')' | 'LIKE' ( '(' select_stmt ')' | name ) )
           | '(' call_stmt ( 'USING' cte_binding_list )? ')'

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

         ::= with_prefix select_stmt_no_with

referenced by:


select_nothing_stmt:

SELECT NOTHING

         ::= 'SELECT' 'NOTHING'

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 ) ,

         ::= 'SELECT' select_opts ( select_expr ',' )* ( select_expr | '*' ) opt_from_query_parts opt_where opt_groupby opt_having opt_select_window
           | '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 )

         ::= '(' opt_partition_by opt_orderby opt_frame_spec ')'

referenced by:


opt_frame_spec:

frame_type frame_boundary_opts frame_exclude

         ::= ( 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_unsub_stmt:

@UNSUB ( name )

         ::= '@UNSUB' '(' name ')'

referenced by:


schema_ad_hoc_migration_stmt:

@SCHEMA_AD_HOC_MIGRATION version_annotation FOR @RECREATE ( name , name )

         ::= '@SCHEMA_AD_HOC_MIGRATION' ( version_annotation | 'FOR' '@RECREATE' '(' name ',' name ')' )

referenced by:


emit_enums_stmt:

@EMIT_ENUMS opt_name_list

         ::= '@EMIT_ENUMS' opt_name_list

referenced by:


emit_group_stmt:

@EMIT_GROUP opt_name_list

         ::= '@EMIT_GROUP' opt_name_list

referenced by:


emit_constants_stmt:

@EMIT_CONSTANTS name_list

         ::= '@EMIT_CONSTANTS' 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_item ,

         ::= ( 'GROUP' 'BY' groupby_item ( ',' groupby_item )* )?

referenced by:


groupby_item:

expr

         ::= expr

referenced by:


opt_asc_desc:

ASC DESC opt_nullsfirst_nullslast

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

referenced by:


opt_nullsfirst_nullslast:

NULLS FIRST LAST

         ::= ( 'NULLS' ( 'FIRST' | 'LAST' ) )?

referenced by:


opt_having:

HAVING expr

         ::= ( 'HAVING' expr )?

referenced by:


opt_orderby:

ORDER BY orderby_item ,

         ::= ( 'ORDER' 'BY' orderby_item ( ',' orderby_item )* )?

referenced by:


orderby_item:

expr opt_asc_desc

         ::= expr opt_asc_desc

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 . * column_calculation

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

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 shared_cte ) opt_as_alias query_parts )

         ::= ( name | table_function ) opt_as_alias
           | '(' ( ( select_stmt | shared_cte ) ')' 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

         ::= 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

         ::= '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

         ::= 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

         ::= 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 opt_insert_dummy_spec DEFAULT VALUES USING select_stmt expr_names opt_insert_dummy_spec

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

referenced by:


insert_list_item:

expr shape_arguments

         ::= expr
           | shape_arguments

referenced by:


insert_list:

insert_list_item , insert_list_item

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

referenced by:


basic_update_stmt:

UPDATE opt_name SET update_list opt_from_query_parts opt_where

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

referenced by:


with_update_stmt:

with_prefix update_stmt

         ::= with_prefix update_stmt

referenced by:


update_stmt:

UPDATE name SET update_list opt_from_query_parts opt_where opt_orderby opt_limit

         ::= 'UPDATE' name 'SET' update_list opt_from_query_parts 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

         ::= 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_out_call_stmt:

DECLARE OUT call_stmt

         ::= 'DECLARE' 'OUT' call_stmt

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_const_stmt:

DECLARE CONST GROUP name ( const_value , )

         ::= 'DECLARE' 'CONST' 'GROUP' name '(' const_value ( ',' const_value )* ')'

referenced by:


declare_group_stmt:

DECLARE GROUP name BEGIN declare_vars_stmt ; END

         ::= 'DECLARE' 'GROUP' name 'BEGIN' ( declare_vars_stmt ';' )+ 'END'

referenced by:


const_value:

name = expr

         ::= name '=' expr

referenced by:


declare_select_func_no_check_stmt:

DECLARE SELECT function name NO CHECK data_type_with_options ( typed_names )

         ::= 'DECLARE' 'SELECT' function name 'NO' 'CHECK' ( data_type_with_options | '(' typed_names ')' )

referenced by:


declare_func_stmt:

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

         ::= 'DECLARE' ( function name '(' ( func_param ',' )* func_param? ')' '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_no_check_stmt:

DECLARE procedure name NO CHECK

         ::= 'DECLARE' procedure name 'NO' 'CHECK'

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:


declare_interface_stmt:

DECLARE INTERFACE name ( typed_names )

         ::= 'DECLARE'? 'INTERFACE' name '(' 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:


func_param:

param name CURSOR

         ::= param
           | name 'CURSOR'

referenced by:


param:

name data_type_with_options shape_def inout name data_type_with_options shape_def

param    ::= 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_value_cursor:

DECLARE name CURSOR CURSOR name shape_def LIKE select_stmt ( typed_names )

         ::= ( 'DECLARE' name 'CURSOR' | 'CURSOR' name ) ( shape_def | 'LIKE' ( select_stmt | '(' typed_names ')' ) )

referenced by:


declare_forward_read_cursor_stmt:

DECLARE name CURSOR CURSOR name FOR select_stmt explain_stmt call_stmt expr

         ::= ( 'DECLARE' name 'CURSOR' | 'CURSOR' name ) 'FOR' ( select_stmt | explain_stmt | call_stmt | expr )

referenced by:


declare_fetched_value_cursor_stmt:

DECLARE name CURSOR CURSOR name FETCH FROM call_stmt

         ::= ( 'DECLARE' name 'CURSOR' | 'CURSOR' name ) 'FETCH' 'FROM' call_stmt

referenced by:


declare_type_stmt:

DECLARE name TYPE TYPE name data_type_with_options

         ::= ( 'DECLARE' name 'TYPE' | 'TYPE' name ) data_type_with_options

referenced by:


declare_vars_stmt:

DECLARE VAR name_list data_type_with_options declare_value_cursor

         ::= ( 'DECLARE' | 'VAR' ) name_list data_type_with_options
           | declare_value_cursor

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:


switch_stmt:

SWITCH expr ALL VALUES switch_case ELSE stmt_list END

         ::= 'SWITCH' expr ( 'ALL' 'VALUES' )? switch_case+ ( 'ELSE' stmt_list )? 'END'

referenced by:


switch_case:

WHEN expr_list THEN stmt_list NOTHING

         ::= 'WHEN' expr_list 'THEN' ( stmt_list | 'NOTHING' )

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_cursor_from_blob_stmt:

FETCH name FROM BLOB expr

         ::= 'FETCH' name 'FROM BLOB' expr

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:


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:


out_union_parent_child_stmt:

OUT UNION call_stmt JOIN child_result AND

         ::= 'OUT' 'UNION' call_stmt 'JOIN' child_result ( 'AND' child_result )*

referenced by:


child_result:

call_stmt USING ( name_list ) AS name

         ::= call_stmt 'USING' '(' name_list ')' ( 'AS' 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:


control_stmt:

commit_return_stmt CONTINUE LEAVE RETURN rollback_return_stmt THROW

         ::= commit_return_stmt
           | 'CONTINUE'
           | 'LEAVE'
           | 'RETURN'
           | rollback_return_stmt
           | 'THROW'

referenced by:


guard_stmt:

IF expr control_stmt

         ::= 'IF' expr control_stmt

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

         ::= '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

         ::= 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 ;

         ::= ( trigger_update_stmt | trigger_insert_stmt | trigger_delete_stmt | trigger_select_stmt ) ';'

referenced by:


trigger_select_stmt:

select_stmt_no_with

         ::= 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 WITHOUT ROWID TRANSACTION SELECT IF NOTHING INSERT SELECT TABLE FUNCTION ENCODE CONTEXT COLUMN CONTEXT TYPE INTEGER LONG_INTEGER REAL BOOL TEXT BLOB IS TRUE CAST SIGN FUNCTION CURSOR HAS ROW UPDATE FROM

         ::= 'FOREIGN' 'KEY' 'ON' ( 'UPDATE' | 'DELETE' )
           | 'JOIN'
           | 'UPSERT' 'STATEMENT'
           | 'WINDOW' function
           | 'WITHOUT' 'ROWID'
           | 'TRANSACTION'
           | 'SELECT' 'IF' 'NOTHING'
           | 'INSERT' 'SELECT'
           | 'TABLE' 'FUNCTION'
           | 'ENCODE' ( 'CONTEXT COLUMN' | 'CONTEXT TYPE' ( 'INTEGER' | 'LONG_INTEGER' | 'REAL' | 'BOOL' | 'TEXT' | 'BLOB' ) )
           | 'IS TRUE'
           | 'CAST'
           | 'SIGN FUNCTION'
           | 'CURSOR HAS ROW'
           | 'UPDATE' 'FROM'

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:


opt_use_offset:

OFFSET

         ::= 'OFFSET'?

referenced by:


blob_get_key_type_stmt:

@BLOB_GET_KEY_TYPE name

         ::= '@BLOB_GET_KEY_TYPE' name

referenced by:


blob_get_val_type_stmt:

@BLOB_GET_VAL_TYPE name

         ::= '@BLOB_GET_VAL_TYPE' name

referenced by:


blob_get_key_stmt:

@BLOB_GET_KEY name opt_use_offset

         ::= '@BLOB_GET_KEY' name opt_use_offset

referenced by:


blob_get_val_stmt:

@BLOB_GET_VAL name opt_use_offset

         ::= '@BLOB_GET_VAL' name opt_use_offset

referenced by:


blob_create_key_stmt:

@BLOB_CREATE_KEY name opt_use_offset

         ::= '@BLOB_CREATE_KEY' name opt_use_offset

referenced by:


blob_create_val_stmt:

@BLOB_CREATE_VAL name opt_use_offset

         ::= '@BLOB_CREATE_VAL' name opt_use_offset

referenced by:


blob_update_key_stmt:

@BLOB_UPDATE_KEY name opt_use_offset

         ::= '@BLOB_UPDATE_KEY' name opt_use_offset

referenced by:


blob_update_val_stmt:

@BLOB_UPDATE_VAL name opt_use_offset

         ::= '@BLOB_UPDATE_VAL' name opt_use_offset

referenced by:



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