Created
January 2, 2025 23:18
-
-
Save fractaledmind/4b81f42276c49e100a3627ee9d215d79 to your computer and use it in GitHub Desktop.
Skeleton of a Ruby SQLite parser that renders the syntax diagrams for all of the statements in plain text
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # âââââââ{ , }âââââââ | |
| # âŻââ´âŹââś[ sql-stmt ]ââŹâ´ââśâŻ | |
| # âââââââââśââââââââ | |
| def sql_stmt_list | |
| end | |
| # âŻââŹââââââââââââââŹâśââââââââââââââââââââââŹââŹââś[ alter-table-stmt ]âââââââââââśââŹâśâŻ | |
| # ââ{ EXPLAIN }ââ´ââś{ QUERY }ââś{ PLAN }ââ âââś[ analyze-stmt ]âââââââââââââââśâ⤠| |
| # âââś[ attach-stmt ]ââââââââââââââââśâ⤠| |
| # âââś[ begin-stmt ]âââââââââââââââââśâ⤠| |
| # âââś[ commit-stmt ]ââââââââââââââââśâ⤠| |
| # âââś[ create-index-stmt ]ââââââââââśâ⤠| |
| # âââś[ create-table-stmt ]ââââââââââśâ⤠| |
| # âââś[ create-trigger-stmt ]ââââââââśâ⤠| |
| # âââś[ create-view-stmt ]âââââââââââśâ⤠| |
| # âââś[ create-virtual-table-stmt ]ââśâ⤠| |
| # âââś[ delete-stmt ]ââââââââââââââââśâ⤠| |
| # âââś[ delete-stmt-limited ]ââââââââśâ⤠| |
| # âââś[ detach-stmt ]ââââââââââââââââśâ⤠| |
| # âââś[ drop-index-stmt ]ââââââââââââśâ⤠| |
| # âââś[ drop-table-stmt ]ââââââââââââśâ⤠| |
| # âââś[ drop-trigger-stmt ]ââââââââââśâ⤠| |
| # âââś[ drop-view-stmt ]âââââââââââââśâ⤠| |
| # âââś[ insert-stmt ]ââââââââââââââââśâ⤠| |
| # âââś[ pragma-stmt ]ââââââââââââââââśâ⤠| |
| # âââś[ reindex-stmt ]âââââââââââââââśâ⤠| |
| # âââś[ release-stmt ]âââââââââââââââśâ⤠| |
| # âââś[ rollback-stmt ]ââââââââââââââśâ⤠| |
| # âââś[ savepoint-stmt ]âââââââââââââśâ⤠| |
| # âââś[ select-stmt ]ââââââââââââââââśâ⤠| |
| # âââś[ update-stmt ]ââââââââââââââââśâ⤠| |
| # âââś[ update-stmt-limited ]ââââââââśâ⤠| |
| # âââś[ vacuum-stmt ]ââââââââââââââââśââ | |
| def sql_stmt | |
| end | |
| # ââââââââââââââââââââââââââ | |
| # âŻââśâ{ ALTER }ââś{ TABLE }ââśâ´âś{ schema-name }ââś{ . }ââ´âś{ table-name }ââ | |
| # âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ | |
| # âââś{ RENAME }ââś{ TO }ââś{ new-table-name }ââââââââââââââââââââââââââââââââââââŹâśâŻ | |
| # â{ RENAME }ââśâŹââś{ COLUMN }ââŹâś{ column-name }ââś{ TO }ââś{ new-column-name }ââśâ⤠| |
| # â ââââââââśâââââââ â | |
| # âââś{ ADD }ââśâŹââś{ COLUMN }ââŹâś{ column-def }âââââââââââââââââââââââââââââââââśâ⤠| |
| # â ââââââââśâââââââ â | |
| # âââś{ DROP }ââśâŹââś{ COLUMN }ââŹâś{ column-name }âââââââââââââââââââââââââââââââśââ | |
| # ââââââââśâââââââ | |
| def alter_table_stmt | |
| end | |
| # âŻââś{ ANALYZE }ââśâŹâââââââââââââââââââââââââśââââââââââââââââââââââââââââŹâśâŻ | |
| # ââś{ schema-name }âââââââââââââââââââââââââââââââââââśâ⤠| |
| # ââś{ index-or-table-name }âââââââââââââââââââââââââââśâ⤠| |
| # ââś{ schema-name }ââś{ . }ââś{ table-or-index-name }âââśââ | |
| def analyze_stmt | |
| end | |
| # âŻââś{ ATTACH }ââśâŹââś{ DATABASE }âŹâś[ expr ]ââś{ AS }ââś{ schema-name }ââśâŻ | |
| # âââââââââśâââââââ | |
| def attach_stmt | |
| end | |
| # âŻââś{ BEGIN }ââśâŹââââââââââââââââââŹâśâŹâś{ TRANSACTION }âŹââśâŻ | |
| # ââś{ DEFERRED }âââśâ⤠ââââââââââśââââââââ | |
| # ââś{ IMMEDIATE }ââśâ⤠| |
| # ââś{ EXCLUSIVE }ââśââ | |
| def begin_stmt | |
| end | |
| # âŻââśâŹâś{ COMMIT }âŹâśâŹâ{ TRANSACTION }âŹââśâŻ | |
| # ââś{ END }ââśââ ââââââââââśââââââââ | |
| def commit_stmt | |
| end | |
| # âŻââś{ CREATE }âŹââââââśââââââŹâś{ INDEX }âŹâś{ IF }ââś{ NOT }ââś{ EXISTS }ââ | |
| # ââś{ UNIQUE }â â â | |
| # âââââââââââââââââââââââââââââââââââââ´ââââââââââââââââââââââââââââââ | |
| # âââś{ schema-name }ââś{ . }ââŹâś{ index-name }ââś{ ON }ââś{ table-name }ââ | |
| # âââââââââââââââââââââââââââ â | |
| # ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ | |
| # âââś{ ( }ââŹâś[ indexed-column ]ââŹâś{ ) }ââ | |
| # ââââââââ{ , }âââââââââ â | |
| # ââââââââââââââââââââââââ⤠| |
| # âââś{ WHERE }ââś{ expr }âââ´ââśâ⯠| |
| def create_index_stmt | |
| end | |
| # âŻââś{ CREATE }âŹââââââââśâââââââŹâś{ TABLE }âŹâś{ IF }ââś{ NOT }ââś{ EXISTS }ââ | |
| # ââś{ TEMP }âââââ⤠â â | |
| # ââś{ TEMPORARY }â â â | |
| # ââââââââââââââââââââââââââââââââââââââââ´ââââââââââââââââââââââââââââââ | |
| # âââś{ schema-name }ââś{ . }ââŹâś{ table-name }âŹââââââââś{ AS }ââś[ select-stmt ]ââââśââââââ | |
| # ââââââââââśâââââââââââââââââ â â | |
| # âââââââââââââââââââââââââââââââââââââââââââ ââââââââââśââââââââââźâśâŻ | |
| # ââś{ ( }ââŹâś[ column-def ]ââŹâśâŹââââââââââââââââââââââââââââââŹâś{ ) }â´âś[ table-options ]â | |
| # ââââââ{ , }âââââââ â[ table-constraint ]ââ{ , }âââ | |
| def create_table_stmt | |
| end | |
| # âŻââś{ CREATE }âŹââââââââśâââââââŹâś{ TRIGGER }âŹâś{ IF }ââś{ NOT }ââś{ EXISTS }ââ | |
| # ââś{ TEMP }âââââ⤠â â | |
| # ââś{ TEMPORARY }â â â | |
| # ââââââââââââââââââââââââââââââââââââââââââ´ââââââââââââââââââââââââââââââ | |
| # âââś{ schema-name }ââś{ . }ââŹâś{ trigger-name }âŹâś{ BEFORE }âââââââââââśââ | |
| # ââââââââââśâââââââââââââââââ ââś{ AFTER }ââââââââââââśâ⤠| |
| # ââś{ INSTEAD }ââś{ OF }ââśâ⤠| |
| # âââââââââââââââââââââââââââââââââââââââââââââ´ââââââââââââââââââââââââ | |
| # ââś{ DELETE }ââââââââââââââââââââââââââââââââŹâś{ ON }âś{ table-name }ââ | |
| # ââś{ INSERT }ââââââââââââââââââââââââââââââśâ⤠â | |
| # ââś{ UPDATE }ââŹââââââââââââââââââââââââââââśâ⤠â | |
| # ââś{ OF }ââŹâś{ column-name }ââŹâśââ â | |
| # âââââââ{ , }âââââââ âź | |
| # âââââââââââââââââââââââââââââââââŹâââââââââââââââââââââââââââââââââââ | |
| # âââś{ FOR }ââś{ EACH }ââś{ ROW }ââŹââ´âś{ WHEN }ââś[ expr ]ââ | |
| # âââââââââââââââââââââââââââââââ´âââââââââââââââââââââââ | |
| # â âââââââââââââââââââââââââââââ | |
| # âââś{ BEGIN }â´âśâŹâś[ update-stmt ]âââŹâś{ ; }â´âś{ END }ââââââââââââââââââââââââââśâŻ | |
| # ââś[ insert-stmt ]ââśâ¤ | |
| # ââś[ delete-stmt ]ââśâ¤ | |
| # ââś[ select-stmt ]ââśâ | |
| def create_trigger_stmt | |
| end | |
| # âŻââś{ CREATE }âŹââââââââśâââââââŹâś{ VIEW }âŹâś{ IF }ââś{ NOT }ââś{ EXISTS }ââ | |
| # ââś{ TEMP }âââââ⤠â â | |
| # ââś{ TEMPORARY }â â â | |
| # âââââââââââââââââââââââââââââââââââââââ´ââââââââââââââââââââââââââââââ | |
| # âââś{ schema-name }ââś{ . }ââŹâś{ view-name }ââŹâââââââââââââââââââââââââââââââââââŹâś{ AS }ââś[ select-stmt ]ââśâŻ | |
| # ââââââââââśâââââââââââââââââ âââś{ ( }ââŹâś{ column-name }ââŹâś{ ) }ââ | |
| # âââââââ{ , }âââââââ | |
| def create_view_stmt | |
| end | |
| # âŻââś{ CREATE }ââś{ VIRTUAL }ââś{ TABLE }âŹâś{ IF }ââś{ NOT }ââś{ EXISTS }ââ | |
| # ââââââââââââââââââââââââââââââââââââââ´ââââââââââââââââââââââââââââââ | |
| # âââś{ schema-name }ââś{ . }ââŹâś{ table-name }ââ | |
| # ââââââââââśâââââââââââââââââ â | |
| # ââââââââââââââââââââââââââââââââââââââââââââ | |
| # â ââââââââââââââââââââââââââââââââââââ | |
| # âââś{ USING }ââś{ module-name }â´âś{ ( }âŹâś[ module-argument ]âŹâś{ ) }â´âââââśâŻ | |
| # âââââââââ{ , }ââââââââ | |
| def create_virtual_table_stmt | |
| end | |
| # âŻââśâŹâś{ WITH }âŹââââââââśâââââââŹââŹ[ common-table-expression ]ââ | |
| # â ââś{ RECURSIVE }â ââââââââââââ{ , }ââââââââââââ⤠| |
| # âââââââââââââââââââââââââââââââââââââââââââââââââââââââââ | |
| # âââś{ DELETE }ââś{ FROM }ââś{ qualified-table-name }ââ | |
| # âââââââââââââââââââââââââââââââââââ | |
| # âââś{ WHERE }ââś[ expr ]ââ ââś[ returning-clause ]â | |
| # ââââââââââââââââââââââââ´âśâ´ââââââââââââââââââââââ´ââśâŻ | |
| def delete_stmt | |
| end | |
| # âŻââśâŹâś{ WITH }âŹââââââââśâââââââŹââŹ[ common-table-expression ]ââ | |
| # â ââś{ RECURSIVE }â ââââââââââââ{ , }ââââââââââââ⤠| |
| # âââââââââââââââââââââââââââââââââââââââââââââââââââââââââ | |
| # âââś{ DELETE }ââś{ FROM }ââś[ qualified-table-name ]ââŹâââśââ | |
| # âââââââââââââââââââââââââââââââââââââââââââââââââââ â | |
| # âââś{ WHERE }ââś[ expr ]ââŹââââââââââââââââââââââââââââââśâ⤠| |
| # ââââââââââââââââââââââââ â | |
| # âââś[ returning-clause ]ââŹâââââââââââââââââââââââââââââśâ⤠| |
| # âââââââââââââââââââââââââ â | |
| # âââś{ ORDER }ââś{ BY }âŹâś[ ordering-term ]ââŹâââââââââââââśâ⤠| |
| # â ââââââââ{ , }âââââââ⤠â | |
| # âââââââââââââââââââââââââââââââââââââââââ â | |
| # âââś{ LIMIT }ââś[ expr ]ââŹâââââââââââââââââââââââââŹâśââââââ´ââśâŻ | |
| # âââś{ OFFSET }ââś[ expr ]ââśâ¤ | |
| # âââś{ , }ââś[ expr ]ââśââââââ | |
| def delete_stmt_limited | |
| end | |
| # âŻââś{ DETACH }âŹâś{ DATABASE }âŹâś{ schema-name }ââśâŻ | |
| # ââââââââśâââââââ | |
| def detach_stmt | |
| end | |
| # âŻââś{ DROP }ââś{ INDEX }âŹâś{ IF }ââś{ EXISTS }âŹâŹâś{ schema-name }ââś{ . }âŹâś{ index-name }ââśâŻ | |
| # âââââââââââśâââââââââââââââââââââââśââââââââââââ | |
| def drop_index_stmt | |
| end | |
| # âŻââś{ DROP }ââś{ TABLE }âŹâś{ IF }ââś{ EXISTS }âŹâŹâś{ schema-name }ââś{ . }âŹâś{ table-name }ââśâŻ | |
| # âââââââââââśâââââââââââââââââââââââśââââââââââââ | |
| def drop_table_stmt | |
| end | |
| # âŻââś{ DROP }ââś{ TRIGGER }âŹâś{ IF }ââś{ EXISTS }âŹâŹâś{ schema-name }ââś{ . }âŹâś{ trigger-name }ââśâŻ | |
| # âââââââââââśâââââââââââââââââââââââśââââââââââââ | |
| def drop_trigger_stmt | |
| end | |
| # âŻââś{ DROP }ââś{ VIEW }âŹâś{ IF }ââś{ EXISTS }âŹâŹâś{ schema-name }ââś{ . }âŹâś{ view-name }ââśâŻ | |
| # âââââââââââśâââââââââââââââââââââââśââââââââââââ | |
| def drop_view_stmt | |
| end | |
| # âŻâââŹâś{ WITH }âŹââââââââśââââââââŹââŹâś[ common-table-expression ]ââ | |
| # âź ââś{ RECURSIVE }âśâ ââââââââââââ{ , }âââââââââââââ⤠| |
| # âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ | |
| # âââś{ REPLACE }ââââââââââââââââââââââââââŹââś{ INTO }ââ | |
| # âââś{ INSERT }ââŹââââââââââââââââââââââââśâ¤ â | |
| # ââś{ OR }âŹââś{ ABORT }âââââśâ¤ â | |
| # âââś{ FAIL }ââââââśâ¤ â | |
| # âââś{ IGNORE }ââââśâ¤ â | |
| # âââś{ REPLACE }âââśâ¤ â | |
| # âââś{ ROLLBACK }ââśâ â | |
| # âââââââââââââââââââââââââââŹâââââââââââââââââââââââââ | |
| # âââś{ schema-name }ââś{ . }ââ´âś{ table-name }ââŹâś{ AS }ââś{ alias }ââ | |
| # ââââââââââââââââââââââââââââââââââââââââââââ´ââââââââââââââââââââ | |
| # âââś{ ( }ââŹâś{ column-name }ââŹââś{ ) }ââ | |
| # â ââââââ{ , }ââââââââ â | |
| # âââââââââââââââââââââââââââââââââââââ | |
| # âââś{ VALUES }âŹâś{ ( }ââŹâś[ expr ]ââŹââś{ ) }âŹââââââââââââââââââââśâ | |
| # â â âââ{ , }ââââ ââś[ upsert-clause ]ââśâ¤ | |
| # â âââââââââââ{ , }ââââââââââââ â | |
| # âââś[ select-stmt ]âââââââââââââââââââââââŹââââââââââââââââââââśâ¤ | |
| # â ââś[ upsert-clause ]ââśâ¤ | |
| # âââś{ DEFAULT }ââś{ VALUES }âââââââââââââââââââââââââââââââââââśâ¤ | |
| # ââââââââââââââââââââââââ⤠| |
| # âââś[ returning-clause ]ââ´ââââśâŻ | |
| def insert_stmt | |
| end | |
| # âŻââś{ PRAGMA }âŹâś{ schema-name }ââś{ . }âŹâś{ pragma-name }âŹââââââââââââââââââââââââââââââââââŹââśâŻ | |
| # âââââââââââââśââââââââââââ âââś{ = }ââś[ pragma-value ]âââââââśâ⤠| |
| # âââś{ ( }ââś[ pragma-value ]ââś{ ) }ââ | |
| def pragma_stmt | |
| end | |
| # âŻââś{ REINDEX }âŹââââââââââââââââââââââââââśâââââââââââââââââââââââââŹââśâŻ | |
| # âââś{ collation-name }âââââââââââââââââââââââââââââśâ⤠| |
| # âââś{ schema-name }ââś{ . }âŹâśâŹâś{ table-name }âââââââśâ⤠| |
| # ââââââââââśââââââââââââââââ ââś{ index-name }âââââââśââ | |
| def reindex_stmt | |
| end | |
| # âŻââś{ RELEASE }âŹâś{ SAVEPOINT }âŹâś{ savepoint-name }ââśâŻ | |
| # ââââââââśââââââââ | |
| def release_stmt | |
| end | |
| # ââââââââśââââââââ | |
| # âŻââś{ ROLLBACK }âŹâś{ TRANSACTION }âŹâŹâś{ TO }â´âś{ SAVEPOINT }â´âś{ savepoint-name }âŹââśâŻ | |
| # âââââââââśââââââââââââââââââââââââââââââââśâââââââââââââââââââââ | |
| def rollback_stmt | |
| end | |
| # âŻââś{ SAVEPOINT }ââś{ savepoint-name }ââśâŻ | |
| def savepoint_stmt | |
| end | |
| # âŻâââŹâś{ WITH }âŹââââââââśââââââââŹââŹâś[ common-table-expression ]ââ | |
| # âź ââś{ RECURSIVE }âśâ ââââââââââââ{ , }âââââââââââââ⤠| |
| # âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ | |
| # ââââ´âśâŹââââââś{ SELECT }ââŹââââââââśâââââââŹââŹâś[ result-column ]ââ | |
| # â â ââś{ DISTINCT }⤠ââââââ{ , }ââââââââââ⤠| |
| # Ⲡâ ââś{ ALL }âââââśâ â | |
| # â â âââââââââââââââââââââââââââââââââââââââââââââââââââ | |
| # â â âââś{ FROM }âŹââŹâś[ table-or-subquery ]ââŹââŹââśââââ | |
| # â â â â âââââââââ{ , }âââââââââââ Ⲡ⟠| |
| # â â â ââââś[ join-clause ]ââââââââââ â | |
| # â â ââââââââââââââââââââââââââââââââââââââââââââââ | |
| # â â âââś{ WHERE }ââś[ expr ]ââ | |
| # â â ââââââââââââââââââââââââ | |
| # â â ââââââââââââââśââââââââââââââââââ | |
| # â â âââś{ GROUP }ââś{ BY }âŹâś[ expr ]âŹâ´âśâŹââś{ HAVING }ââś[ expr ]ââŹââ | |
| # â â âź âââ{ , }âââ ââââââââââśâââââââââââââââ âź | |
| # â â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ | |
| # â â âââś{ WINDOW }âŹâś{ window-name }ââś{ AS }ââś[ window-defn ]ââ | |
| # Ⲡâ â ââââââââââââââââââââ{ , }ââââââââââââââââââ⤠| |
| # â â ââââââââââââââââââââââââśââââââââââââââââââââââââââââââśââ⤠| |
| # â â âââ{ , }âââ âź | |
| # â âââś{ VALUES }âŹâś{ ( }ââ´âś[ expr ]â´ââś{ ) }ââŹââââââââââââââââââśââ⤠| |
| # â âââââââââââ{ , }ââââââââââââ â | |
| # âââââââââââââââââââââ[ compound-operator ]ââââââââââââââââââââââââ⤠| |
| # âââââââââââââââââââââââââââââââââââââââââââââââââââââââ | |
| # âââś{ ORDER }ââś{ BY }âŹâś[ ordering-term ]ââŹâ | |
| # âź ââââââââ{ , }âââââââââ | |
| # ââââââââââââââââââââââââââââââââââââââââââ | |
| # âââś{ LIMIT }ââś[ expr ]ââśâŹââââââââââââââââââââââââśââ | |
| # â âââś{ OFFSET }ââś[ expr ]ââśâ⤠| |
| # â âââś{ , }ââś[ expr ]âââââââśâ⤠| |
| # âââââââââââââââââââââââââââââââââââââââââââââââââśââ´ââââââââśâŻ | |
| def select_stmt | |
| end | |
| # âŻââśâŹâś{ WITH }âŹââââââââśâââââââŹââŹ[ common-table-expression ]ââ | |
| # â ââś{ RECURSIVE }â ââââââââââââ{ , }ââââââââââââ⤠| |
| # âââââââââââââââââââââââââââââââââââââââââââââââââââââââââ | |
| # âââś{ UPDATE }ââŹââââââââââââââââââââââââŹâś[ qualified-table-name ]ââ | |
| # ââś{ OR }ââś{ ABORT }âââââśâ¤ â | |
| # ââś{ OR }ââś{ FAIL }ââââââśâ¤ â | |
| # ââś{ OR }ââś{ IGNORE }ââââśâ¤ â | |
| # ââś{ OR }ââś{ REPLACE }âââśâ¤ â | |
| # ââś{ OR }ââś{ ROLLBACK }ââśâ â | |
| # ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ | |
| # âââś{ SET }âŹâŹâś{ column-name }ââââââŹââś{ = }ââś[ expr ]âââ | |
| # âââś[ column-name-list ]â â | |
| # ââââââââââââââââââ{ , }ââââââââââââââââââââ⤠| |
| # ââââââââââââââââââââââââââââââââââââââââââââââââââââââ | |
| # âââś{ FROM }âŹââŹâś[ table-or-subquery ]ââŹââŹââśââââ | |
| # â â âââââââââ{ , }âââââââââââ â â | |
| # â ââââś[ join-clause ]ââââââââââ â | |
| # ââââââââââââââââââââââââââââââââââââââââââââââ | |
| # âââś{ WHERE }ââś[ expr ]ââ ââś[ returning-clause ]ââ | |
| # ââââââââââââââââââââââââ´ââśââ´âââââââââââââââââââââââ´ââśââââââââââââââââśâŻ | |
| def update_stmt | |
| end | |
| # âŻââśâŹâś{ WITH }âŹââââââââśâââââââŹââŹ[ common-table-expression ]ââ | |
| # â ââś{ RECURSIVE }â ââââââââââââ{ , }ââââââââââââ⤠| |
| # âââââââââââââââââââââââââââââââââââââââââââââââââââââââââ | |
| # âââś{ UPDATE }ââŹââââââââââââââââââââââââŹâś[ qualified-table-name ]ââ | |
| # ââś{ OR }ââś{ ABORT }âââââśâ¤ â | |
| # ââś{ OR }ââś{ FAIL }ââââââśâ¤ â | |
| # ââś{ OR }ââś{ IGNORE }ââââśâ¤ â | |
| # ââś{ OR }ââś{ REPLACE }âââśâ¤ â | |
| # ââś{ OR }ââś{ ROLLBACK }ââśâ â | |
| # ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ | |
| # âââś{ SET }âŹâŹâś{ column-name }ââââââŹââś{ = }ââś[ expr ]âââ | |
| # âââś[ column-name-list ]â â | |
| # ââââââââââââââââââ{ , }ââââââââââââââââââââ⤠| |
| # ââââââââââââââââââââââââââââââââââââââââââââââââââââââ | |
| # âââś{ FROM }âŹââŹâś[ table-or-subquery ]ââŹââŹââśââââ | |
| # â â âââââââââ{ , }âââââââââââ â â | |
| # â ââââś[ join-clause ]ââââââââââ â | |
| # ââââââââââââââââââââââââââââââââââââââââââââââ | |
| # âââś{ WHERE }ââś[ expr ]ââ | |
| # ââââââââââââââââââââââââ | |
| # âââś[ returning-clause ]ââ | |
| # âââââââââââââââââââââââââ | |
| # âââś{ ORDER }ââś{ BY }âŹâś[ ordering-term ]ââ | |
| # â ââââââââ{ , }âââââââ⤠| |
| # âââââââââââââââââââââââââââââââââââââââââ | |
| # âââś{ LIMIT }ââś[ expr ]ââŹââââââââââââââââââââââââśââ | |
| # â âââś{ OFFSET }ââś[ expr ]ââśâ⤠| |
| # â âââś{ , }ââś[ expr ]âââââââśâ⤠| |
| # âââââââââââââââââââââââśâââââââââââââââââââââââââââ´ââśââââââââââââââââśâŻ | |
| def update_stmt_limited | |
| end | |
| # âŻââś{ VACUUUM }âŹââââââââââââââââââŹâśâŹâââââââââââââââââââââââââŹââśâŻ | |
| # ââś{ schema-name }ââ ââś{ INTO }ââś{ filename }ââ | |
| def vacuum_stmt | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment