neon 2.47.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/README.md +54 -0
  2. package/dist/_shared/auth_selection.js +76 -79
  3. package/dist/_shared/credentials.js +166 -187
  4. package/dist/_shared/env-core/env.js +395 -0
  5. package/dist/_shared/env-core/reuse-secrets.js +179 -0
  6. package/dist/_shared/paths.js +129 -126
  7. package/dist/_shared/profiles.js +192 -242
  8. package/dist/_shared/secure_file.js +36 -38
  9. package/dist/_virtual/_rolldown/runtime.js +13 -0
  10. package/dist/analytics.js +163 -207
  11. package/dist/api.js +815 -758
  12. package/dist/auth.js +121 -141
  13. package/dist/auth_context.js +39 -53
  14. package/dist/cli.js +4 -7
  15. package/dist/commands/api.js +220 -250
  16. package/dist/commands/api_keys.js +251 -314
  17. package/dist/commands/auth.js +283 -328
  18. package/dist/commands/bootstrap.js +372 -437
  19. package/dist/commands/branches.js +304 -455
  20. package/dist/commands/bucket.js +374 -514
  21. package/dist/commands/checkout.js +213 -298
  22. package/dist/commands/config.js +575 -658
  23. package/dist/commands/connection_string.js +137 -165
  24. package/dist/commands/data_api.js +238 -260
  25. package/dist/commands/databases.js +67 -76
  26. package/dist/commands/deploy.js +31 -25
  27. package/dist/commands/dev.js +642 -681
  28. package/dist/commands/diff.js +156 -200
  29. package/dist/commands/env.js +243 -303
  30. package/dist/commands/functions.js +275 -341
  31. package/dist/commands/index.js +70 -65
  32. package/dist/commands/init.js +84 -119
  33. package/dist/commands/inspect.js +55 -55
  34. package/dist/commands/ip_allow.js +88 -120
  35. package/dist/commands/link.js +874 -1019
  36. package/dist/commands/logs.js +291 -0
  37. package/dist/commands/neon_auth.js +725 -933
  38. package/dist/commands/operations.js +34 -25
  39. package/dist/commands/orgs.js +28 -18
  40. package/dist/commands/profile.js +614 -845
  41. package/dist/commands/projects.js +313 -373
  42. package/dist/commands/psql.js +60 -58
  43. package/dist/commands/roles.js +55 -58
  44. package/dist/commands/schema_diff.js +87 -131
  45. package/dist/commands/set_context.js +34 -26
  46. package/dist/commands/snapshots.js +288 -413
  47. package/dist/commands/status.js +41 -37
  48. package/dist/commands/user.js +21 -10
  49. package/dist/commands/vpc_endpoints.js +85 -113
  50. package/dist/config.js +7 -6
  51. package/dist/config_format.js +50 -66
  52. package/dist/config_template.js +128 -157
  53. package/dist/context.js +183 -235
  54. package/dist/current_branch_fast_path.js +40 -49
  55. package/dist/dev/env.js +313 -394
  56. package/dist/dev/functions.js +54 -64
  57. package/dist/dev/inputs.js +46 -58
  58. package/dist/dev/runtime.js +135 -164
  59. package/dist/dev/websocket.js +766 -959
  60. package/dist/env.js +27 -33
  61. package/dist/env_file.js +118 -132
  62. package/dist/env_services.js +36 -38
  63. package/dist/errors.js +57 -68
  64. package/dist/functions_api.js +45 -43
  65. package/dist/help.js +189 -140
  66. package/dist/index.js +182 -257
  67. package/dist/init/agents.js +137 -118
  68. package/dist/init/auth.js +58 -68
  69. package/dist/init/bootstrap.js +325 -396
  70. package/dist/init/build_config.js +4 -2
  71. package/dist/init/detect_agent.js +56 -101
  72. package/dist/init/editors.js +35 -52
  73. package/dist/init/enrich_output.js +51 -66
  74. package/dist/init/extension.js +134 -171
  75. package/dist/init/inspect.js +179 -266
  76. package/dist/init/interactive.js +510 -622
  77. package/dist/init/neonctl.js +117 -168
  78. package/dist/init/orchestrate.js +157 -173
  79. package/dist/init/phases/auth.js +188 -202
  80. package/dist/init/phases/cleanup.js +23 -23
  81. package/dist/init/phases/db.js +251 -277
  82. package/dist/init/phases/getting_started.js +213 -223
  83. package/dist/init/phases/mcp.js +174 -224
  84. package/dist/init/phases/migrations.js +247 -248
  85. package/dist/init/phases/neon_auth.js +114 -133
  86. package/dist/init/phases/setup.js +546 -703
  87. package/dist/init/phases/skills.js +75 -86
  88. package/dist/init/phases/status.js +72 -67
  89. package/dist/init/resolve_context.js +102 -99
  90. package/dist/init/route_command.js +91 -98
  91. package/dist/init/skills.js +174 -218
  92. package/dist/init/vsix.js +77 -99
  93. package/dist/log.js +17 -16
  94. package/dist/neon_services.js +104 -129
  95. package/dist/parameters.gen.js +481 -471
  96. package/dist/pkg.js +17 -19
  97. package/dist/profile_keys.js +44 -47
  98. package/dist/psql/cli.js +44 -47
  99. package/dist/psql/command/cmd_cond.js +231 -406
  100. package/dist/psql/command/cmd_connect.js +557 -764
  101. package/dist/psql/command/cmd_copy.js +727 -983
  102. package/dist/psql/command/cmd_describe.js +1499 -1688
  103. package/dist/psql/command/cmd_format.js +733 -905
  104. package/dist/psql/command/cmd_io.js +1293 -2082
  105. package/dist/psql/command/cmd_lo.js +297 -359
  106. package/dist/psql/command/cmd_meta.js +727 -878
  107. package/dist/psql/command/cmd_misc.js +138 -172
  108. package/dist/psql/command/cmd_pipeline.js +547 -1099
  109. package/dist/psql/command/cmd_restrict.js +119 -155
  110. package/dist/psql/command/cmd_show.js +529 -688
  111. package/dist/psql/command/dispatch.js +261 -325
  112. package/dist/psql/command/inputQueue.js +35 -33
  113. package/dist/psql/command/shared.js +49 -63
  114. package/dist/psql/complete/filenames.js +90 -133
  115. package/dist/psql/complete/index.js +59 -97
  116. package/dist/psql/complete/matcher.js +236 -300
  117. package/dist/psql/complete/psqlVars.js +218 -223
  118. package/dist/psql/complete/queries.js +159 -177
  119. package/dist/psql/complete/rules.js +1493 -2299
  120. package/dist/psql/core/common.js +762 -1180
  121. package/dist/psql/core/help.js +456 -546
  122. package/dist/psql/core/mainloop.js +692 -1302
  123. package/dist/psql/core/prompt.js +391 -408
  124. package/dist/psql/core/settings.js +429 -644
  125. package/dist/psql/core/sqlHelp.js +480 -554
  126. package/dist/psql/core/startup.js +626 -815
  127. package/dist/psql/core/syncVars.js +67 -110
  128. package/dist/psql/core/variables.js +156 -278
  129. package/dist/psql/describe/formatters.js +884 -1285
  130. package/dist/psql/describe/processNamePattern.js +173 -260
  131. package/dist/psql/describe/queries.js +1368 -2403
  132. package/dist/psql/describe/versionGate.js +32 -41
  133. package/dist/psql/index.js +1414 -1927
  134. package/dist/psql/io/history.js +232 -271
  135. package/dist/psql/io/input.js +103 -108
  136. package/dist/psql/io/lineEditor/buffer.js +238 -319
  137. package/dist/psql/io/lineEditor/complete.js +135 -213
  138. package/dist/psql/io/lineEditor/filename.js +139 -148
  139. package/dist/psql/io/lineEditor/index.js +653 -870
  140. package/dist/psql/io/lineEditor/keymap.js +544 -702
  141. package/dist/psql/io/lineEditor/vt100.js +294 -341
  142. package/dist/psql/io/pgpass.js +158 -187
  143. package/dist/psql/io/pgservice.js +146 -183
  144. package/dist/psql/io/psqlrc.js +328 -403
  145. package/dist/psql/print/aligned.js +1020 -1683
  146. package/dist/psql/print/asciidoc.js +180 -214
  147. package/dist/psql/print/crosstab.js +281 -442
  148. package/dist/psql/print/csv.js +48 -70
  149. package/dist/psql/print/html.js +195 -226
  150. package/dist/psql/print/json.js +75 -88
  151. package/dist/psql/print/latex.js +291 -364
  152. package/dist/psql/print/pager.js +171 -242
  153. package/dist/psql/print/troff.js +194 -226
  154. package/dist/psql/print/unaligned.js +69 -95
  155. package/dist/psql/print/units.js +167 -169
  156. package/dist/psql/scanner/slash.js +428 -483
  157. package/dist/psql/scanner/sql.js +445 -889
  158. package/dist/psql/scanner/stringutils.js +309 -379
  159. package/dist/psql/types/index.js +2 -7
  160. package/dist/psql/types/scanner.js +25 -22
  161. package/dist/psql/wire/connection.js +2042 -2803
  162. package/dist/psql/wire/copy.js +84 -100
  163. package/dist/psql/wire/notify.js +39 -59
  164. package/dist/psql/wire/pipeline.js +305 -518
  165. package/dist/psql/wire/protocol.js +349 -417
  166. package/dist/psql/wire/sasl.js +180 -265
  167. package/dist/psql/wire/tls.js +400 -561
  168. package/dist/storage_api.js +115 -129
  169. package/dist/test_utils/fixtures.js +94 -113
  170. package/dist/test_utils/oauth_server.js +10 -7
  171. package/dist/test_utils/project_dir.js +33 -0
  172. package/dist/utils/ai_gateway_notice.js +131 -162
  173. package/dist/utils/api_enums.js +21 -28
  174. package/dist/utils/auth.js +10 -4
  175. package/dist/utils/branch_notice.js +20 -19
  176. package/dist/utils/branch_picker.js +83 -89
  177. package/dist/utils/cli_name.js +15 -12
  178. package/dist/utils/compute_units.js +20 -27
  179. package/dist/utils/config_diff.js +127 -158
  180. package/dist/utils/enrichers.js +95 -148
  181. package/dist/utils/esbuild.js +133 -147
  182. package/dist/utils/flags.js +35 -47
  183. package/dist/utils/formats.js +8 -15
  184. package/dist/utils/git_diff.js +69 -80
  185. package/dist/utils/inspect_db.js +101 -143
  186. package/dist/utils/inspect_queries.js +179 -142
  187. package/dist/utils/middlewares.js +37 -44
  188. package/dist/utils/openapi.js +87 -99
  189. package/dist/utils/package_manager.js +312 -110
  190. package/dist/utils/point_in_time.js +49 -53
  191. package/dist/utils/psql.js +89 -106
  192. package/dist/utils/service_picker.js +55 -58
  193. package/dist/utils/string.js +5 -5
  194. package/dist/utils/ui.js +38 -55
  195. package/dist/utils/write_sync.js +26 -35
  196. package/dist/utils/zip.js +4 -3
  197. package/dist/writer.js +67 -87
  198. package/package.json +9 -7
@@ -1,32 +1,10 @@
1
- /**
2
- * SQL command help data for `\h` (helpSQL).
3
- *
4
- * This is a minimum-viable subset of upstream PostgreSQL's `sql_help.h`, which
5
- * is auto-generated from the SGML documentation at psql build time and covers
6
- * roughly 600 commands. Here we ship concise syntax skeletons for the ~70 SQL
7
- * commands that account for the vast majority of interactive `\h` lookups.
8
- * Each entry mirrors the shape of upstream `\h` output:
9
- *
10
- * Command: <cmd>
11
- * Description: <one-line description>
12
- * Syntax:
13
- * <multi-line synopsis>
14
- *
15
- * URL: <docs page>
16
- *
17
- * Drill-down on rarer commands is delegated to the URL — accuracy on the
18
- * skeleton is what matters here; the docs page is the source of truth for
19
- * details like reloption catalogs and per-storage-engine quirks.
20
- */
1
+ //#region src/psql/core/sqlHelp.ts
21
2
  const PG_DOCS = "https://www.postgresql.org/docs/current/sql-";
22
- export const SQL_HELP = [
23
- // ---------------------------------------------------------------------------
24
- // DML
25
- // ---------------------------------------------------------------------------
26
- {
27
- cmd: "SELECT",
28
- description: "retrieve rows from a table or view",
29
- syntax: `[ WITH [ RECURSIVE ] with_query [, ...] ]
3
+ const SQL_HELP = [
4
+ {
5
+ cmd: "SELECT",
6
+ description: "retrieve rows from a table or view",
7
+ syntax: `[ WITH [ RECURSIVE ] with_query [, ...] ]
30
8
  SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
31
9
  [ * | expression [ [ AS ] output_name ] [, ...] ]
32
10
  [ FROM from_item [, ...] ]
@@ -39,12 +17,12 @@ SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
39
17
  [ LIMIT { count | ALL } ]
40
18
  [ OFFSET start [ ROW | ROWS ] ]
41
19
  [ FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF from_reference [, ...] ] [ NOWAIT | SKIP LOCKED ] [...] ]`,
42
- docUrl: `${PG_DOCS}select.html`,
43
- },
44
- {
45
- cmd: "INSERT",
46
- description: "create new rows in a table",
47
- syntax: `[ WITH [ RECURSIVE ] with_query [, ...] ]
20
+ docUrl: `${PG_DOCS}select.html`
21
+ },
22
+ {
23
+ cmd: "INSERT",
24
+ description: "create new rows in a table",
25
+ syntax: `[ WITH [ RECURSIVE ] with_query [, ...] ]
48
26
  INSERT INTO table_name [ AS alias ] [ ( column_name [, ...] ) ]
49
27
  [ OVERRIDING { SYSTEM | USER } VALUE ]
50
28
  { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }
@@ -56,12 +34,12 @@ where conflict_action is one of:
56
34
  DO UPDATE SET { column_name = { expression | DEFAULT } |
57
35
  ( column_name [, ...] ) = ( { expression | DEFAULT } [, ...] ) } [, ...]
58
36
  [ WHERE condition ]`,
59
- docUrl: `${PG_DOCS}insert.html`,
60
- },
61
- {
62
- cmd: "UPDATE",
63
- description: "update rows of a table",
64
- syntax: `[ WITH [ RECURSIVE ] with_query [, ...] ]
37
+ docUrl: `${PG_DOCS}insert.html`
38
+ },
39
+ {
40
+ cmd: "UPDATE",
41
+ description: "update rows of a table",
42
+ syntax: `[ WITH [ RECURSIVE ] with_query [, ...] ]
65
43
  UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]
66
44
  SET { column_name = { expression | DEFAULT } |
67
45
  ( column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] ) |
@@ -70,22 +48,22 @@ UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]
70
48
  [ FROM from_item [, ...] ]
71
49
  [ WHERE condition | WHERE CURRENT OF cursor_name ]
72
50
  [ RETURNING { * | output_expression [ [ AS ] output_name ] } [, ...] ]`,
73
- docUrl: `${PG_DOCS}update.html`,
74
- },
75
- {
76
- cmd: "DELETE",
77
- description: "delete rows of a table",
78
- syntax: `[ WITH [ RECURSIVE ] with_query [, ...] ]
51
+ docUrl: `${PG_DOCS}update.html`
52
+ },
53
+ {
54
+ cmd: "DELETE",
55
+ description: "delete rows of a table",
56
+ syntax: `[ WITH [ RECURSIVE ] with_query [, ...] ]
79
57
  DELETE FROM [ ONLY ] table_name [ * ] [ [ AS ] alias ]
80
58
  [ USING from_item [, ...] ]
81
59
  [ WHERE condition | WHERE CURRENT OF cursor_name ]
82
60
  [ RETURNING { * | output_expression [ [ AS ] output_name ] } [, ...] ]`,
83
- docUrl: `${PG_DOCS}delete.html`,
84
- },
85
- {
86
- cmd: "MERGE",
87
- description: "conditionally insert, update, or delete rows of a table",
88
- syntax: `[ WITH with_query [, ...] ]
61
+ docUrl: `${PG_DOCS}delete.html`
62
+ },
63
+ {
64
+ cmd: "MERGE",
65
+ description: "conditionally insert, update, or delete rows of a table",
66
+ syntax: `[ WITH with_query [, ...] ]
89
67
  MERGE INTO [ ONLY ] target_table_name [ * ] [ [ AS ] target_alias ]
90
68
  USING data_source ON join_condition
91
69
  when_clause [...]
@@ -95,12 +73,12 @@ where when_clause is one of:
95
73
  WHEN MATCHED [ AND condition ] THEN { merge_update | merge_delete | DO NOTHING }
96
74
  WHEN NOT MATCHED BY SOURCE [ AND condition ] THEN { merge_update | merge_delete | DO NOTHING }
97
75
  WHEN NOT MATCHED [ BY TARGET ] [ AND condition ] THEN { merge_insert | DO NOTHING }`,
98
- docUrl: `${PG_DOCS}merge.html`,
99
- },
100
- {
101
- cmd: "COPY",
102
- description: "copy data between a file and a table",
103
- syntax: `COPY table_name [ ( column_name [, ...] ) ]
76
+ docUrl: `${PG_DOCS}merge.html`
77
+ },
78
+ {
79
+ cmd: "COPY",
80
+ description: "copy data between a file and a table",
81
+ syntax: `COPY table_name [ ( column_name [, ...] ) ]
104
82
  FROM { 'filename' | PROGRAM 'command' | STDIN }
105
83
  [ [ WITH ] ( option [, ...] ) ]
106
84
  [ WHERE condition ]
@@ -108,12 +86,12 @@ where when_clause is one of:
108
86
  COPY { table_name [ ( column_name [, ...] ) ] | ( query ) }
109
87
  TO { 'filename' | PROGRAM 'command' | STDOUT }
110
88
  [ [ WITH ] ( option [, ...] ) ]`,
111
- docUrl: `${PG_DOCS}copy.html`,
112
- },
113
- {
114
- cmd: "EXPLAIN",
115
- description: "show the execution plan of a statement",
116
- syntax: `EXPLAIN [ ( option [, ...] ) ] statement
89
+ docUrl: `${PG_DOCS}copy.html`
90
+ },
91
+ {
92
+ cmd: "EXPLAIN",
93
+ description: "show the execution plan of a statement",
94
+ syntax: `EXPLAIN [ ( option [, ...] ) ] statement
117
95
  EXPLAIN [ ANALYZE ] [ VERBOSE ] statement
118
96
 
119
97
  where option can be one of:
@@ -129,12 +107,12 @@ where option can be one of:
129
107
  SUMMARY [ boolean ]
130
108
  MEMORY [ boolean ]
131
109
  FORMAT { TEXT | XML | JSON | YAML }`,
132
- docUrl: `${PG_DOCS}explain.html`,
133
- },
134
- {
135
- cmd: "ANALYZE",
136
- description: "collect statistics about a database",
137
- syntax: `ANALYZE [ ( option [, ...] ) ] [ table_and_columns [, ...] ]
110
+ docUrl: `${PG_DOCS}explain.html`
111
+ },
112
+ {
113
+ cmd: "ANALYZE",
114
+ description: "collect statistics about a database",
115
+ syntax: `ANALYZE [ ( option [, ...] ) ] [ table_and_columns [, ...] ]
138
116
  ANALYZE [ VERBOSE ] [ table_and_columns [, ...] ]
139
117
 
140
118
  where option can be one of:
@@ -144,12 +122,12 @@ where option can be one of:
144
122
 
145
123
  and table_and_columns is:
146
124
  table_name [ ( column_name [, ...] ) ]`,
147
- docUrl: `${PG_DOCS}analyze.html`,
148
- },
149
- {
150
- cmd: "VACUUM",
151
- description: "garbage-collect and optionally analyze a database",
152
- syntax: `VACUUM [ ( option [, ...] ) ] [ table_and_columns [, ...] ]
125
+ docUrl: `${PG_DOCS}analyze.html`
126
+ },
127
+ {
128
+ cmd: "VACUUM",
129
+ description: "garbage-collect and optionally analyze a database",
130
+ syntax: `VACUUM [ ( option [, ...] ) ] [ table_and_columns [, ...] ]
153
131
  VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ table_and_columns [, ...] ]
154
132
 
155
133
  where option can be one of:
@@ -166,34 +144,31 @@ where option can be one of:
166
144
  SKIP_DATABASE_STATS [ boolean ]
167
145
  ONLY_DATABASE_STATS [ boolean ]
168
146
  BUFFER_USAGE_LIMIT size`,
169
- docUrl: `${PG_DOCS}vacuum.html`,
170
- },
171
- {
172
- cmd: "REINDEX",
173
- description: "rebuild indexes",
174
- syntax: `REINDEX [ ( option [, ...] ) ] { INDEX | TABLE | SCHEMA } [ CONCURRENTLY ] name
147
+ docUrl: `${PG_DOCS}vacuum.html`
148
+ },
149
+ {
150
+ cmd: "REINDEX",
151
+ description: "rebuild indexes",
152
+ syntax: `REINDEX [ ( option [, ...] ) ] { INDEX | TABLE | SCHEMA } [ CONCURRENTLY ] name
175
153
  REINDEX [ ( option [, ...] ) ] { DATABASE | SYSTEM } [ CONCURRENTLY ] [ name ]
176
154
 
177
155
  where option can be one of:
178
156
  CONCURRENTLY [ boolean ]
179
157
  TABLESPACE new_tablespace
180
158
  VERBOSE [ boolean ]`,
181
- docUrl: `${PG_DOCS}reindex.html`,
182
- },
183
- {
184
- cmd: "TRUNCATE",
185
- description: "empty a table or set of tables",
186
- syntax: `TRUNCATE [ TABLE ] [ ONLY ] name [ * ] [, ... ]
159
+ docUrl: `${PG_DOCS}reindex.html`
160
+ },
161
+ {
162
+ cmd: "TRUNCATE",
163
+ description: "empty a table or set of tables",
164
+ syntax: `TRUNCATE [ TABLE ] [ ONLY ] name [ * ] [, ... ]
187
165
  [ RESTART IDENTITY | CONTINUE IDENTITY ] [ CASCADE | RESTRICT ]`,
188
- docUrl: `${PG_DOCS}truncate.html`,
189
- },
190
- // ---------------------------------------------------------------------------
191
- // CREATE
192
- // ---------------------------------------------------------------------------
193
- {
194
- cmd: "CREATE TABLE",
195
- description: "define a new table",
196
- syntax: `CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name ( [
166
+ docUrl: `${PG_DOCS}truncate.html`
167
+ },
168
+ {
169
+ cmd: "CREATE TABLE",
170
+ description: "define a new table",
171
+ syntax: `CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name ( [
197
172
  { column_name data_type [ STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT } ] [ COMPRESSION compression_method ] [ COLLATE collation ] [ column_constraint [ ... ] ]
198
173
  | table_constraint
199
174
  | LIKE source_table [ like_option ... ] }
@@ -211,45 +186,45 @@ CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXI
211
186
 
212
187
  CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name
213
188
  PARTITION OF parent_table [ ( ... ) ] { FOR VALUES partition_bound_spec | DEFAULT } [...]`,
214
- docUrl: `${PG_DOCS}createtable.html`,
215
- },
216
- {
217
- cmd: "CREATE INDEX",
218
- description: "define a new index",
219
- syntax: `CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON [ ONLY ] table_name [ USING method ]
189
+ docUrl: `${PG_DOCS}createtable.html`
190
+ },
191
+ {
192
+ cmd: "CREATE INDEX",
193
+ description: "define a new index",
194
+ syntax: `CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON [ ONLY ] table_name [ USING method ]
220
195
  ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass [ ( opclass_parameter = value [, ... ] ) ] ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...] )
221
196
  [ INCLUDE ( column_name [, ...] ) ]
222
197
  [ NULLS [ NOT ] DISTINCT ]
223
198
  [ WITH ( storage_parameter [= value] [, ... ] ) ]
224
199
  [ TABLESPACE tablespace_name ]
225
200
  [ WHERE predicate ]`,
226
- docUrl: `${PG_DOCS}createindex.html`,
227
- },
228
- {
229
- cmd: "CREATE VIEW",
230
- description: "define a new view",
231
- syntax: `CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] [ RECURSIVE ] VIEW name [ ( column_name [, ...] ) ]
201
+ docUrl: `${PG_DOCS}createindex.html`
202
+ },
203
+ {
204
+ cmd: "CREATE VIEW",
205
+ description: "define a new view",
206
+ syntax: `CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] [ RECURSIVE ] VIEW name [ ( column_name [, ...] ) ]
232
207
  [ WITH ( view_option_name [= view_option_value] [, ... ] ) ]
233
208
  AS query
234
209
  [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]`,
235
- docUrl: `${PG_DOCS}createview.html`,
236
- },
237
- {
238
- cmd: "CREATE MATERIALIZED VIEW",
239
- description: "define a new materialized view",
240
- syntax: `CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] table_name
210
+ docUrl: `${PG_DOCS}createview.html`
211
+ },
212
+ {
213
+ cmd: "CREATE MATERIALIZED VIEW",
214
+ description: "define a new materialized view",
215
+ syntax: `CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] table_name
241
216
  [ (column_name [, ...] ) ]
242
217
  [ USING method ]
243
218
  [ WITH ( storage_parameter [= value] [, ... ] ) ]
244
219
  [ TABLESPACE tablespace_name ]
245
220
  AS query
246
221
  [ WITH [ NO ] DATA ]`,
247
- docUrl: `${PG_DOCS}creatematerializedview.html`,
248
- },
249
- {
250
- cmd: "CREATE FUNCTION",
251
- description: "define a new function",
252
- syntax: `CREATE [ OR REPLACE ] FUNCTION
222
+ docUrl: `${PG_DOCS}creatematerializedview.html`
223
+ },
224
+ {
225
+ cmd: "CREATE FUNCTION",
226
+ description: "define a new function",
227
+ syntax: `CREATE [ OR REPLACE ] FUNCTION
253
228
  name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } default_expr ] [, ...] ] )
254
229
  [ RETURNS rettype
255
230
  | RETURNS TABLE ( column_name column_type [, ...] ) ]
@@ -269,12 +244,12 @@ CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXI
269
244
  | AS 'obj_file', 'link_symbol'
270
245
  | sql_body
271
246
  } ...`,
272
- docUrl: `${PG_DOCS}createfunction.html`,
273
- },
274
- {
275
- cmd: "CREATE PROCEDURE",
276
- description: "define a new procedure",
277
- syntax: `CREATE [ OR REPLACE ] PROCEDURE
247
+ docUrl: `${PG_DOCS}createfunction.html`
248
+ },
249
+ {
250
+ cmd: "CREATE PROCEDURE",
251
+ description: "define a new procedure",
252
+ syntax: `CREATE [ OR REPLACE ] PROCEDURE
278
253
  name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } default_expr ] [, ...] ] )
279
254
  { LANGUAGE lang_name
280
255
  | TRANSFORM { FOR TYPE type_name } [, ... ]
@@ -284,21 +259,21 @@ CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXI
284
259
  | AS 'obj_file', 'link_symbol'
285
260
  | sql_body
286
261
  } ...`,
287
- docUrl: `${PG_DOCS}createprocedure.html`,
288
- },
289
- {
290
- cmd: "CREATE EXTENSION",
291
- description: "install an extension",
292
- syntax: `CREATE EXTENSION [ IF NOT EXISTS ] extension_name
262
+ docUrl: `${PG_DOCS}createprocedure.html`
263
+ },
264
+ {
265
+ cmd: "CREATE EXTENSION",
266
+ description: "install an extension",
267
+ syntax: `CREATE EXTENSION [ IF NOT EXISTS ] extension_name
293
268
  [ WITH ] [ SCHEMA schema_name ]
294
269
  [ VERSION version ]
295
270
  [ CASCADE ]`,
296
- docUrl: `${PG_DOCS}createextension.html`,
297
- },
298
- {
299
- cmd: "CREATE SCHEMA",
300
- description: "define a new schema",
301
- syntax: `CREATE SCHEMA [ IF NOT EXISTS ] schema_name [ AUTHORIZATION role_specification ] [ schema_element [ ... ] ]
271
+ docUrl: `${PG_DOCS}createextension.html`
272
+ },
273
+ {
274
+ cmd: "CREATE SCHEMA",
275
+ description: "define a new schema",
276
+ syntax: `CREATE SCHEMA [ IF NOT EXISTS ] schema_name [ AUTHORIZATION role_specification ] [ schema_element [ ... ] ]
302
277
  CREATE SCHEMA [ IF NOT EXISTS ] AUTHORIZATION role_specification [ schema_element [ ... ] ]
303
278
 
304
279
  where role_specification can be:
@@ -306,12 +281,12 @@ where role_specification can be:
306
281
  | CURRENT_ROLE
307
282
  | CURRENT_USER
308
283
  | SESSION_USER`,
309
- docUrl: `${PG_DOCS}createschema.html`,
310
- },
311
- {
312
- cmd: "CREATE DATABASE",
313
- description: "create a new database",
314
- syntax: `CREATE DATABASE name
284
+ docUrl: `${PG_DOCS}createschema.html`
285
+ },
286
+ {
287
+ cmd: "CREATE DATABASE",
288
+ description: "create a new database",
289
+ syntax: `CREATE DATABASE name
315
290
  [ WITH ] [ OWNER [=] user_name ]
316
291
  [ TEMPLATE [=] template ]
317
292
  [ ENCODING [=] encoding ]
@@ -329,12 +304,12 @@ where role_specification can be:
329
304
  [ CONNECTION LIMIT [=] connlimit ]
330
305
  [ IS_TEMPLATE [=] istemplate ]
331
306
  [ OID [=] oid ]`,
332
- docUrl: `${PG_DOCS}createdatabase.html`,
333
- },
334
- {
335
- cmd: "CREATE ROLE",
336
- description: "define a new database role",
337
- syntax: `CREATE ROLE name [ [ WITH ] option [ ... ] ]
307
+ docUrl: `${PG_DOCS}createdatabase.html`
308
+ },
309
+ {
310
+ cmd: "CREATE ROLE",
311
+ description: "define a new database role",
312
+ syntax: `CREATE ROLE name [ [ WITH ] option [ ... ] ]
338
313
 
339
314
  where option can be:
340
315
 
@@ -352,12 +327,12 @@ where option can be:
352
327
  | ROLE role_name [, ...]
353
328
  | ADMIN role_name [, ...]
354
329
  | SYSID uid`,
355
- docUrl: `${PG_DOCS}createrole.html`,
356
- },
357
- {
358
- cmd: "CREATE USER",
359
- description: "define a new database role (alias for CREATE ROLE ... LOGIN)",
360
- syntax: `CREATE USER name [ [ WITH ] option [ ... ] ]
330
+ docUrl: `${PG_DOCS}createrole.html`
331
+ },
332
+ {
333
+ cmd: "CREATE USER",
334
+ description: "define a new database role (alias for CREATE ROLE ... LOGIN)",
335
+ syntax: `CREATE USER name [ [ WITH ] option [ ... ] ]
361
336
 
362
337
  where option can be:
363
338
 
@@ -374,12 +349,12 @@ where option can be:
374
349
  | IN ROLE role_name [, ...]
375
350
  | ROLE role_name [, ...]
376
351
  | ADMIN role_name [, ...]`,
377
- docUrl: `${PG_DOCS}createuser.html`,
378
- },
379
- {
380
- cmd: "CREATE TYPE",
381
- description: "define a new data type",
382
- syntax: `CREATE TYPE name AS
352
+ docUrl: `${PG_DOCS}createuser.html`
353
+ },
354
+ {
355
+ cmd: "CREATE TYPE",
356
+ description: "define a new data type",
357
+ syntax: `CREATE TYPE name AS
383
358
  ( [ attribute_name data_type [ COLLATE collation ] [, ... ] ] )
384
359
 
385
360
  CREATE TYPE name AS ENUM
@@ -403,12 +378,12 @@ CREATE TYPE name (
403
378
  )
404
379
 
405
380
  CREATE TYPE name`,
406
- docUrl: `${PG_DOCS}createtype.html`,
407
- },
408
- {
409
- cmd: "CREATE TRIGGER",
410
- description: "define a new trigger",
411
- syntax: `CREATE [ OR REPLACE ] [ CONSTRAINT ] TRIGGER name { BEFORE | AFTER | INSTEAD OF } { event [ OR ... ] }
381
+ docUrl: `${PG_DOCS}createtype.html`
382
+ },
383
+ {
384
+ cmd: "CREATE TRIGGER",
385
+ description: "define a new trigger",
386
+ syntax: `CREATE [ OR REPLACE ] [ CONSTRAINT ] TRIGGER name { BEFORE | AFTER | INSTEAD OF } { event [ OR ... ] }
412
387
  ON table_name
413
388
  [ FROM referenced_table_name ]
414
389
  [ NOT DEFERRABLE | [ DEFERRABLE ] [ INITIALLY IMMEDIATE | INITIALLY DEFERRED ] ]
@@ -422,23 +397,23 @@ where event can be one of:
422
397
  UPDATE [ OF column_name [, ... ] ]
423
398
  DELETE
424
399
  TRUNCATE`,
425
- docUrl: `${PG_DOCS}createtrigger.html`,
426
- },
427
- {
428
- cmd: "CREATE POLICY",
429
- description: "define a new row-level security policy for a table",
430
- syntax: `CREATE POLICY name ON table_name
400
+ docUrl: `${PG_DOCS}createtrigger.html`
401
+ },
402
+ {
403
+ cmd: "CREATE POLICY",
404
+ description: "define a new row-level security policy for a table",
405
+ syntax: `CREATE POLICY name ON table_name
431
406
  [ AS { PERMISSIVE | RESTRICTIVE } ]
432
407
  [ FOR { ALL | SELECT | INSERT | UPDATE | DELETE } ]
433
408
  [ TO { role_name | PUBLIC | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] ]
434
409
  [ USING ( using_expression ) ]
435
410
  [ WITH CHECK ( check_expression ) ]`,
436
- docUrl: `${PG_DOCS}createpolicy.html`,
437
- },
438
- {
439
- cmd: "CREATE PUBLICATION",
440
- description: "define a new publication",
441
- syntax: `CREATE PUBLICATION name
411
+ docUrl: `${PG_DOCS}createpolicy.html`
412
+ },
413
+ {
414
+ cmd: "CREATE PUBLICATION",
415
+ description: "define a new publication",
416
+ syntax: `CREATE PUBLICATION name
442
417
  [ FOR ALL TABLES
443
418
  | FOR publication_object [, ... ] ]
444
419
  [ WITH ( publication_parameter [= value] [, ... ] ) ]
@@ -447,24 +422,21 @@ where publication_object is one of:
447
422
 
448
423
  TABLE [ ONLY ] table_name [ * ] [ ( column_name [, ... ] ) ] [ WHERE ( expression ) ] [, ... ]
449
424
  TABLES IN SCHEMA { schema_name | CURRENT_SCHEMA } [, ... ]`,
450
- docUrl: `${PG_DOCS}createpublication.html`,
451
- },
452
- {
453
- cmd: "CREATE SUBSCRIPTION",
454
- description: "define a new subscription",
455
- syntax: `CREATE SUBSCRIPTION subscription_name
425
+ docUrl: `${PG_DOCS}createpublication.html`
426
+ },
427
+ {
428
+ cmd: "CREATE SUBSCRIPTION",
429
+ description: "define a new subscription",
430
+ syntax: `CREATE SUBSCRIPTION subscription_name
456
431
  CONNECTION 'conninfo'
457
432
  PUBLICATION publication_name [, ...]
458
433
  [ WITH ( subscription_parameter [= value] [, ... ] ) ]`,
459
- docUrl: `${PG_DOCS}createsubscription.html`,
460
- },
461
- // ---------------------------------------------------------------------------
462
- // ALTER
463
- // ---------------------------------------------------------------------------
464
- {
465
- cmd: "ALTER TABLE",
466
- description: "change the definition of a table",
467
- syntax: `ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
434
+ docUrl: `${PG_DOCS}createsubscription.html`
435
+ },
436
+ {
437
+ cmd: "ALTER TABLE",
438
+ description: "change the definition of a table",
439
+ syntax: `ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
468
440
  action [, ... ]
469
441
  ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
470
442
  RENAME [ COLUMN ] column_name TO new_column_name
@@ -493,12 +465,12 @@ where action is one of:
493
465
  ENABLE | DISABLE ROW LEVEL SECURITY
494
466
  OWNER TO new_owner
495
467
  SET TABLESPACE new_tablespace`,
496
- docUrl: `${PG_DOCS}altertable.html`,
497
- },
498
- {
499
- cmd: "ALTER INDEX",
500
- description: "change the definition of an index",
501
- syntax: `ALTER INDEX [ IF EXISTS ] name RENAME TO new_name
468
+ docUrl: `${PG_DOCS}altertable.html`
469
+ },
470
+ {
471
+ cmd: "ALTER INDEX",
472
+ description: "change the definition of an index",
473
+ syntax: `ALTER INDEX [ IF EXISTS ] name RENAME TO new_name
502
474
  ALTER INDEX [ IF EXISTS ] name SET TABLESPACE tablespace_name
503
475
  ALTER INDEX name ATTACH PARTITION index_name
504
476
  ALTER INDEX name [ NO ] DEPENDS ON EXTENSION extension_name
@@ -508,12 +480,12 @@ ALTER INDEX [ IF EXISTS ] name ALTER [ COLUMN ] column_number
508
480
  SET STATISTICS integer
509
481
  ALTER INDEX ALL IN TABLESPACE name [ OWNED BY role_name [, ... ] ]
510
482
  SET TABLESPACE new_tablespace [ NOWAIT ]`,
511
- docUrl: `${PG_DOCS}alterindex.html`,
512
- },
513
- {
514
- cmd: "ALTER VIEW",
515
- description: "change the definition of a view",
516
- syntax: `ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name SET DEFAULT expression
483
+ docUrl: `${PG_DOCS}alterindex.html`
484
+ },
485
+ {
486
+ cmd: "ALTER VIEW",
487
+ description: "change the definition of a view",
488
+ syntax: `ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name SET DEFAULT expression
517
489
  ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name DROP DEFAULT
518
490
  ALTER VIEW [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
519
491
  ALTER VIEW [ IF EXISTS ] name RENAME [ COLUMN ] column_name TO new_column_name
@@ -521,12 +493,12 @@ ALTER VIEW [ IF EXISTS ] name RENAME TO new_name
521
493
  ALTER VIEW [ IF EXISTS ] name SET SCHEMA new_schema
522
494
  ALTER VIEW [ IF EXISTS ] name SET ( view_option_name [= view_option_value] [, ... ] )
523
495
  ALTER VIEW [ IF EXISTS ] name RESET ( view_option_name [, ... ] )`,
524
- docUrl: `${PG_DOCS}alterview.html`,
525
- },
526
- {
527
- cmd: "ALTER MATERIALIZED VIEW",
528
- description: "change the definition of a materialized view",
529
- syntax: `ALTER MATERIALIZED VIEW [ IF EXISTS ] name action [, ... ]
496
+ docUrl: `${PG_DOCS}alterview.html`
497
+ },
498
+ {
499
+ cmd: "ALTER MATERIALIZED VIEW",
500
+ description: "change the definition of a materialized view",
501
+ syntax: `ALTER MATERIALIZED VIEW [ IF EXISTS ] name action [, ... ]
530
502
  ALTER MATERIALIZED VIEW name
531
503
  [ NO ] DEPENDS ON EXTENSION extension_name
532
504
  ALTER MATERIALIZED VIEW [ IF EXISTS ] name
@@ -535,12 +507,12 @@ ALTER MATERIALIZED VIEW [ IF EXISTS ] name RENAME TO new_name
535
507
  ALTER MATERIALIZED VIEW [ IF EXISTS ] name SET SCHEMA new_schema
536
508
  ALTER MATERIALIZED VIEW ALL IN TABLESPACE name [ OWNED BY role_name [, ... ] ]
537
509
  SET TABLESPACE new_tablespace [ NOWAIT ]`,
538
- docUrl: `${PG_DOCS}altermaterializedview.html`,
539
- },
540
- {
541
- cmd: "ALTER FUNCTION",
542
- description: "change the definition of a function",
543
- syntax: `ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
510
+ docUrl: `${PG_DOCS}altermaterializedview.html`
511
+ },
512
+ {
513
+ cmd: "ALTER FUNCTION",
514
+ description: "change the definition of a function",
515
+ syntax: `ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
544
516
  action [ ... ] [ RESTRICT ]
545
517
  ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
546
518
  RENAME TO new_name
@@ -550,12 +522,12 @@ ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
550
522
  SET SCHEMA new_schema
551
523
  ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
552
524
  [ NO ] DEPENDS ON EXTENSION extension_name`,
553
- docUrl: `${PG_DOCS}alterfunction.html`,
554
- },
555
- {
556
- cmd: "ALTER EXTENSION",
557
- description: "change the definition of an extension",
558
- syntax: `ALTER EXTENSION name UPDATE [ TO new_version ]
525
+ docUrl: `${PG_DOCS}alterfunction.html`
526
+ },
527
+ {
528
+ cmd: "ALTER EXTENSION",
529
+ description: "change the definition of an extension",
530
+ syntax: `ALTER EXTENSION name UPDATE [ TO new_version ]
559
531
  ALTER EXTENSION name SET SCHEMA new_schema
560
532
  ALTER EXTENSION name ADD member_object
561
533
  ALTER EXTENSION name DROP member_object
@@ -573,19 +545,19 @@ where member_object is one of:
573
545
  TABLE object_name |
574
546
  TYPE object_name |
575
547
  VIEW object_name`,
576
- docUrl: `${PG_DOCS}alterextension.html`,
577
- },
578
- {
579
- cmd: "ALTER SCHEMA",
580
- description: "change the definition of a schema",
581
- syntax: `ALTER SCHEMA name RENAME TO new_name
548
+ docUrl: `${PG_DOCS}alterextension.html`
549
+ },
550
+ {
551
+ cmd: "ALTER SCHEMA",
552
+ description: "change the definition of a schema",
553
+ syntax: `ALTER SCHEMA name RENAME TO new_name
582
554
  ALTER SCHEMA name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }`,
583
- docUrl: `${PG_DOCS}alterschema.html`,
584
- },
585
- {
586
- cmd: "ALTER DATABASE",
587
- description: "change a database",
588
- syntax: `ALTER DATABASE name [ [ WITH ] option [ ... ] ]
555
+ docUrl: `${PG_DOCS}alterschema.html`
556
+ },
557
+ {
558
+ cmd: "ALTER DATABASE",
559
+ description: "change a database",
560
+ syntax: `ALTER DATABASE name [ [ WITH ] option [ ... ] ]
589
561
 
590
562
  where option can be:
591
563
 
@@ -601,12 +573,12 @@ ALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }
601
573
  ALTER DATABASE name SET configuration_parameter FROM CURRENT
602
574
  ALTER DATABASE name RESET configuration_parameter
603
575
  ALTER DATABASE name RESET ALL`,
604
- docUrl: `${PG_DOCS}alterdatabase.html`,
605
- },
606
- {
607
- cmd: "ALTER ROLE",
608
- description: "change a database role",
609
- syntax: `ALTER ROLE role_specification [ WITH ] option [ ... ]
576
+ docUrl: `${PG_DOCS}alterdatabase.html`
577
+ },
578
+ {
579
+ cmd: "ALTER ROLE",
580
+ description: "change a database role",
581
+ syntax: `ALTER ROLE role_specification [ WITH ] option [ ... ]
610
582
 
611
583
  where option can be:
612
584
 
@@ -626,12 +598,12 @@ ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET config
626
598
  ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT
627
599
  ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET configuration_parameter
628
600
  ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET ALL`,
629
- docUrl: `${PG_DOCS}alterrole.html`,
630
- },
631
- {
632
- cmd: "ALTER USER",
633
- description: "change a database role (alias for ALTER ROLE)",
634
- syntax: `ALTER USER role_specification [ WITH ] option [ ... ]
601
+ docUrl: `${PG_DOCS}alterrole.html`
602
+ },
603
+ {
604
+ cmd: "ALTER USER",
605
+ description: "change a database role (alias for ALTER ROLE)",
606
+ syntax: `ALTER USER role_specification [ WITH ] option [ ... ]
635
607
 
636
608
  where option can be:
637
609
 
@@ -647,12 +619,12 @@ where option can be:
647
619
  | VALID UNTIL 'timestamp'
648
620
 
649
621
  ALTER USER name RENAME TO new_name`,
650
- docUrl: `${PG_DOCS}alteruser.html`,
651
- },
652
- {
653
- cmd: "ALTER TYPE",
654
- description: "change the definition of a type",
655
- syntax: `ALTER TYPE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
622
+ docUrl: `${PG_DOCS}alteruser.html`
623
+ },
624
+ {
625
+ cmd: "ALTER TYPE",
626
+ description: "change the definition of a type",
627
+ syntax: `ALTER TYPE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
656
628
  ALTER TYPE name RENAME ATTRIBUTE attribute_name TO new_attribute_name [ CASCADE | RESTRICT ]
657
629
  ALTER TYPE name RENAME TO new_name
658
630
  ALTER TYPE name SET SCHEMA new_schema
@@ -664,95 +636,89 @@ where action is one of:
664
636
  ADD ATTRIBUTE attribute_name data_type [ COLLATE collation ] [ CASCADE | RESTRICT ]
665
637
  DROP ATTRIBUTE [ IF EXISTS ] attribute_name [ CASCADE | RESTRICT ]
666
638
  ALTER ATTRIBUTE attribute_name [ SET DATA ] TYPE data_type [ COLLATE collation ] [ CASCADE | RESTRICT ]`,
667
- docUrl: `${PG_DOCS}altertype.html`,
668
- },
669
- {
670
- cmd: "ALTER TRIGGER",
671
- description: "change the definition of a trigger",
672
- syntax: `ALTER TRIGGER name ON table_name RENAME TO new_name
639
+ docUrl: `${PG_DOCS}altertype.html`
640
+ },
641
+ {
642
+ cmd: "ALTER TRIGGER",
643
+ description: "change the definition of a trigger",
644
+ syntax: `ALTER TRIGGER name ON table_name RENAME TO new_name
673
645
  ALTER TRIGGER name ON table_name [ NO ] DEPENDS ON EXTENSION extension_name`,
674
- docUrl: `${PG_DOCS}altertrigger.html`,
675
- },
676
- {
677
- cmd: "ALTER POLICY",
678
- description: "change the definition of a row-level security policy",
679
- syntax: `ALTER POLICY name ON table_name RENAME TO new_name
646
+ docUrl: `${PG_DOCS}altertrigger.html`
647
+ },
648
+ {
649
+ cmd: "ALTER POLICY",
650
+ description: "change the definition of a row-level security policy",
651
+ syntax: `ALTER POLICY name ON table_name RENAME TO new_name
680
652
 
681
653
  ALTER POLICY name ON table_name
682
654
  [ TO { role_name | PUBLIC | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] ]
683
655
  [ USING ( using_expression ) ]
684
656
  [ WITH CHECK ( check_expression ) ]`,
685
- docUrl: `${PG_DOCS}alterpolicy.html`,
686
- },
687
- // ---------------------------------------------------------------------------
688
- // DROP
689
- // ---------------------------------------------------------------------------
690
- {
691
- cmd: "DROP TABLE",
692
- description: "remove a table",
693
- syntax: `DROP TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]`,
694
- docUrl: `${PG_DOCS}droptable.html`,
695
- },
696
- {
697
- cmd: "DROP INDEX",
698
- description: "remove an index",
699
- syntax: `DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]`,
700
- docUrl: `${PG_DOCS}dropindex.html`,
701
- },
702
- {
703
- cmd: "DROP VIEW",
704
- description: "remove a view",
705
- syntax: `DROP VIEW [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]`,
706
- docUrl: `${PG_DOCS}dropview.html`,
707
- },
708
- {
709
- cmd: "DROP MATERIALIZED VIEW",
710
- description: "remove a materialized view",
711
- syntax: `DROP MATERIALIZED VIEW [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]`,
712
- docUrl: `${PG_DOCS}dropmaterializedview.html`,
713
- },
714
- {
715
- cmd: "DROP FUNCTION",
716
- description: "remove a function",
717
- syntax: `DROP FUNCTION [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
657
+ docUrl: `${PG_DOCS}alterpolicy.html`
658
+ },
659
+ {
660
+ cmd: "DROP TABLE",
661
+ description: "remove a table",
662
+ syntax: `DROP TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]`,
663
+ docUrl: `${PG_DOCS}droptable.html`
664
+ },
665
+ {
666
+ cmd: "DROP INDEX",
667
+ description: "remove an index",
668
+ syntax: `DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]`,
669
+ docUrl: `${PG_DOCS}dropindex.html`
670
+ },
671
+ {
672
+ cmd: "DROP VIEW",
673
+ description: "remove a view",
674
+ syntax: `DROP VIEW [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]`,
675
+ docUrl: `${PG_DOCS}dropview.html`
676
+ },
677
+ {
678
+ cmd: "DROP MATERIALIZED VIEW",
679
+ description: "remove a materialized view",
680
+ syntax: `DROP MATERIALIZED VIEW [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]`,
681
+ docUrl: `${PG_DOCS}dropmaterializedview.html`
682
+ },
683
+ {
684
+ cmd: "DROP FUNCTION",
685
+ description: "remove a function",
686
+ syntax: `DROP FUNCTION [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
718
687
  [ CASCADE | RESTRICT ]`,
719
- docUrl: `${PG_DOCS}dropfunction.html`,
720
- },
721
- {
722
- cmd: "DROP EXTENSION",
723
- description: "remove an extension",
724
- syntax: `DROP EXTENSION [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]`,
725
- docUrl: `${PG_DOCS}dropextension.html`,
726
- },
727
- {
728
- cmd: "DROP SCHEMA",
729
- description: "remove a schema",
730
- syntax: `DROP SCHEMA [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]`,
731
- docUrl: `${PG_DOCS}dropschema.html`,
732
- },
733
- {
734
- cmd: "DROP DATABASE",
735
- description: "remove a database",
736
- syntax: `DROP DATABASE [ IF EXISTS ] name [ [ WITH ] ( option [, ...] ) ]
688
+ docUrl: `${PG_DOCS}dropfunction.html`
689
+ },
690
+ {
691
+ cmd: "DROP EXTENSION",
692
+ description: "remove an extension",
693
+ syntax: `DROP EXTENSION [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]`,
694
+ docUrl: `${PG_DOCS}dropextension.html`
695
+ },
696
+ {
697
+ cmd: "DROP SCHEMA",
698
+ description: "remove a schema",
699
+ syntax: `DROP SCHEMA [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]`,
700
+ docUrl: `${PG_DOCS}dropschema.html`
701
+ },
702
+ {
703
+ cmd: "DROP DATABASE",
704
+ description: "remove a database",
705
+ syntax: `DROP DATABASE [ IF EXISTS ] name [ [ WITH ] ( option [, ...] ) ]
737
706
 
738
707
  where option can be:
739
708
 
740
709
  FORCE`,
741
- docUrl: `${PG_DOCS}dropdatabase.html`,
742
- },
743
- {
744
- cmd: "DROP ROLE",
745
- description: "remove a database role",
746
- syntax: `DROP ROLE [ IF EXISTS ] name [, ...]`,
747
- docUrl: `${PG_DOCS}droprole.html`,
748
- },
749
- // ---------------------------------------------------------------------------
750
- // Privileges
751
- // ---------------------------------------------------------------------------
752
- {
753
- cmd: "GRANT",
754
- description: "define access privileges",
755
- syntax: `GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER | MAINTAIN }
710
+ docUrl: `${PG_DOCS}dropdatabase.html`
711
+ },
712
+ {
713
+ cmd: "DROP ROLE",
714
+ description: "remove a database role",
715
+ syntax: `DROP ROLE [ IF EXISTS ] name [, ...]`,
716
+ docUrl: `${PG_DOCS}droprole.html`
717
+ },
718
+ {
719
+ cmd: "GRANT",
720
+ description: "define access privileges",
721
+ syntax: `GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER | MAINTAIN }
756
722
  [, ...] | ALL [ PRIVILEGES ] }
757
723
  ON { [ TABLE ] table_name [, ...]
758
724
  | ALL TABLES IN SCHEMA schema_name [, ...] }
@@ -776,12 +742,12 @@ GRANT { EXECUTE | ALL [ PRIVILEGES ] }
776
742
  GRANT role_name [, ...] TO role_specification [, ...]
777
743
  [ WITH { ADMIN | INHERIT | SET } { OPTION | TRUE | FALSE } ]
778
744
  [ GRANTED BY role_specification ]`,
779
- docUrl: `${PG_DOCS}grant.html`,
780
- },
781
- {
782
- cmd: "REVOKE",
783
- description: "remove access privileges",
784
- syntax: `REVOKE [ GRANT OPTION FOR ]
745
+ docUrl: `${PG_DOCS}grant.html`
746
+ },
747
+ {
748
+ cmd: "REVOKE",
749
+ description: "remove access privileges",
750
+ syntax: `REVOKE [ GRANT OPTION FOR ]
785
751
  { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER | MAINTAIN }
786
752
  [, ...] | ALL [ PRIVILEGES ] }
787
753
  ON { [ TABLE ] table_name [, ...]
@@ -794,161 +760,143 @@ REVOKE [ ADMIN OPTION FOR ]
794
760
  role_name [, ...] FROM role_specification [, ...]
795
761
  [ GRANTED BY role_specification ]
796
762
  [ CASCADE | RESTRICT ]`,
797
- docUrl: `${PG_DOCS}revoke.html`,
798
- },
799
- // ---------------------------------------------------------------------------
800
- // Transaction control
801
- // ---------------------------------------------------------------------------
802
- {
803
- cmd: "BEGIN",
804
- description: "start a transaction block",
805
- syntax: `BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ]
763
+ docUrl: `${PG_DOCS}revoke.html`
764
+ },
765
+ {
766
+ cmd: "BEGIN",
767
+ description: "start a transaction block",
768
+ syntax: `BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ]
806
769
 
807
770
  where transaction_mode is one of:
808
771
 
809
772
  ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }
810
773
  READ WRITE | READ ONLY
811
774
  [ NOT ] DEFERRABLE`,
812
- docUrl: `${PG_DOCS}begin.html`,
813
- },
814
- {
815
- cmd: "COMMIT",
816
- description: "commit the current transaction",
817
- syntax: `COMMIT [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]`,
818
- docUrl: `${PG_DOCS}commit.html`,
819
- },
820
- {
821
- cmd: "ROLLBACK",
822
- description: "abort the current transaction",
823
- syntax: `ROLLBACK [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]`,
824
- docUrl: `${PG_DOCS}rollback.html`,
825
- },
826
- {
827
- cmd: "SAVEPOINT",
828
- description: "define a new savepoint within the current transaction",
829
- syntax: `SAVEPOINT savepoint_name`,
830
- docUrl: `${PG_DOCS}savepoint.html`,
831
- },
832
- {
833
- cmd: "RELEASE SAVEPOINT",
834
- description: "destroy a previously defined savepoint",
835
- syntax: `RELEASE [ SAVEPOINT ] savepoint_name`,
836
- docUrl: `${PG_DOCS}release-savepoint.html`,
837
- },
838
- {
839
- cmd: "START TRANSACTION",
840
- description: "start a transaction block",
841
- syntax: `START TRANSACTION [ transaction_mode [, ...] ]
775
+ docUrl: `${PG_DOCS}begin.html`
776
+ },
777
+ {
778
+ cmd: "COMMIT",
779
+ description: "commit the current transaction",
780
+ syntax: `COMMIT [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]`,
781
+ docUrl: `${PG_DOCS}commit.html`
782
+ },
783
+ {
784
+ cmd: "ROLLBACK",
785
+ description: "abort the current transaction",
786
+ syntax: `ROLLBACK [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]`,
787
+ docUrl: `${PG_DOCS}rollback.html`
788
+ },
789
+ {
790
+ cmd: "SAVEPOINT",
791
+ description: "define a new savepoint within the current transaction",
792
+ syntax: `SAVEPOINT savepoint_name`,
793
+ docUrl: `${PG_DOCS}savepoint.html`
794
+ },
795
+ {
796
+ cmd: "RELEASE SAVEPOINT",
797
+ description: "destroy a previously defined savepoint",
798
+ syntax: `RELEASE [ SAVEPOINT ] savepoint_name`,
799
+ docUrl: `${PG_DOCS}release-savepoint.html`
800
+ },
801
+ {
802
+ cmd: "START TRANSACTION",
803
+ description: "start a transaction block",
804
+ syntax: `START TRANSACTION [ transaction_mode [, ...] ]
842
805
 
843
806
  where transaction_mode is one of:
844
807
 
845
808
  ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }
846
809
  READ WRITE | READ ONLY
847
810
  [ NOT ] DEFERRABLE`,
848
- docUrl: `${PG_DOCS}start-transaction.html`,
849
- },
850
- // ---------------------------------------------------------------------------
851
- // Session / runtime configuration
852
- // ---------------------------------------------------------------------------
853
- {
854
- cmd: "SET",
855
- description: "change a run-time parameter",
856
- syntax: `SET [ SESSION | LOCAL ] configuration_parameter { TO | = } { value | 'value' | DEFAULT }
811
+ docUrl: `${PG_DOCS}start-transaction.html`
812
+ },
813
+ {
814
+ cmd: "SET",
815
+ description: "change a run-time parameter",
816
+ syntax: `SET [ SESSION | LOCAL ] configuration_parameter { TO | = } { value | 'value' | DEFAULT }
857
817
  SET [ SESSION | LOCAL ] TIME ZONE { value | 'value' | LOCAL | DEFAULT }`,
858
- docUrl: `${PG_DOCS}set.html`,
859
- },
860
- {
861
- cmd: "SET ROLE",
862
- description: "set the current user identifier of the current session",
863
- syntax: `SET [ SESSION | LOCAL ] ROLE role_name
818
+ docUrl: `${PG_DOCS}set.html`
819
+ },
820
+ {
821
+ cmd: "SET ROLE",
822
+ description: "set the current user identifier of the current session",
823
+ syntax: `SET [ SESSION | LOCAL ] ROLE role_name
864
824
  SET [ SESSION | LOCAL ] ROLE NONE
865
825
  RESET ROLE`,
866
- docUrl: `${PG_DOCS}set-role.html`,
867
- },
868
- {
869
- cmd: "RESET",
870
- description: "restore the value of a run-time parameter to the default value",
871
- syntax: `RESET configuration_parameter
826
+ docUrl: `${PG_DOCS}set-role.html`
827
+ },
828
+ {
829
+ cmd: "RESET",
830
+ description: "restore the value of a run-time parameter to the default value",
831
+ syntax: `RESET configuration_parameter
872
832
  RESET ALL`,
873
- docUrl: `${PG_DOCS}reset.html`,
874
- },
875
- {
876
- cmd: "SHOW",
877
- description: "show the value of a run-time parameter",
878
- syntax: `SHOW name
833
+ docUrl: `${PG_DOCS}reset.html`
834
+ },
835
+ {
836
+ cmd: "SHOW",
837
+ description: "show the value of a run-time parameter",
838
+ syntax: `SHOW name
879
839
  SHOW ALL`,
880
- docUrl: `${PG_DOCS}show.html`,
881
- },
882
- // ---------------------------------------------------------------------------
883
- // Async notification
884
- // ---------------------------------------------------------------------------
885
- {
886
- cmd: "LISTEN",
887
- description: "listen for a notification",
888
- syntax: `LISTEN channel`,
889
- docUrl: `${PG_DOCS}listen.html`,
890
- },
891
- {
892
- cmd: "NOTIFY",
893
- description: "generate a notification",
894
- syntax: `NOTIFY channel [ , payload ]`,
895
- docUrl: `${PG_DOCS}notify.html`,
896
- },
897
- {
898
- cmd: "UNLISTEN",
899
- description: "stop listening for a notification",
900
- syntax: `UNLISTEN { channel | * }`,
901
- docUrl: `${PG_DOCS}unlisten.html`,
902
- },
903
- // ---------------------------------------------------------------------------
904
- // Locking
905
- // ---------------------------------------------------------------------------
906
- {
907
- cmd: "LOCK",
908
- description: "lock a table",
909
- syntax: `LOCK [ TABLE ] [ ONLY ] name [ * ] [, ...] [ IN lockmode MODE ] [ NOWAIT ]
840
+ docUrl: `${PG_DOCS}show.html`
841
+ },
842
+ {
843
+ cmd: "LISTEN",
844
+ description: "listen for a notification",
845
+ syntax: `LISTEN channel`,
846
+ docUrl: `${PG_DOCS}listen.html`
847
+ },
848
+ {
849
+ cmd: "NOTIFY",
850
+ description: "generate a notification",
851
+ syntax: `NOTIFY channel [ , payload ]`,
852
+ docUrl: `${PG_DOCS}notify.html`
853
+ },
854
+ {
855
+ cmd: "UNLISTEN",
856
+ description: "stop listening for a notification",
857
+ syntax: `UNLISTEN { channel | * }`,
858
+ docUrl: `${PG_DOCS}unlisten.html`
859
+ },
860
+ {
861
+ cmd: "LOCK",
862
+ description: "lock a table",
863
+ syntax: `LOCK [ TABLE ] [ ONLY ] name [ * ] [, ...] [ IN lockmode MODE ] [ NOWAIT ]
910
864
 
911
865
  where lockmode is one of:
912
866
 
913
867
  ACCESS SHARE | ROW SHARE | ROW EXCLUSIVE | SHARE UPDATE EXCLUSIVE
914
868
  | SHARE | SHARE ROW EXCLUSIVE | EXCLUSIVE | ACCESS EXCLUSIVE`,
915
- docUrl: `${PG_DOCS}lock.html`,
916
- },
917
- // ---------------------------------------------------------------------------
918
- // Prepared statements
919
- // ---------------------------------------------------------------------------
920
- {
921
- cmd: "PREPARE",
922
- description: "prepare a statement for execution",
923
- syntax: `PREPARE name [ ( data_type [, ...] ) ] AS statement`,
924
- docUrl: `${PG_DOCS}prepare.html`,
925
- },
926
- {
927
- cmd: "EXECUTE",
928
- description: "execute a prepared statement",
929
- syntax: `EXECUTE name [ ( parameter [, ...] ) ]`,
930
- docUrl: `${PG_DOCS}execute.html`,
931
- },
932
- {
933
- cmd: "DEALLOCATE",
934
- description: "deallocate a prepared statement",
935
- syntax: `DEALLOCATE [ PREPARE ] { name | ALL }`,
936
- docUrl: `${PG_DOCS}deallocate.html`,
937
- },
938
- // ---------------------------------------------------------------------------
939
- // Cursors
940
- // ---------------------------------------------------------------------------
941
- {
942
- cmd: "DECLARE",
943
- description: "define a cursor",
944
- syntax: `DECLARE name [ BINARY ] [ ASENSITIVE | INSENSITIVE ] [ [ NO ] SCROLL ]
869
+ docUrl: `${PG_DOCS}lock.html`
870
+ },
871
+ {
872
+ cmd: "PREPARE",
873
+ description: "prepare a statement for execution",
874
+ syntax: `PREPARE name [ ( data_type [, ...] ) ] AS statement`,
875
+ docUrl: `${PG_DOCS}prepare.html`
876
+ },
877
+ {
878
+ cmd: "EXECUTE",
879
+ description: "execute a prepared statement",
880
+ syntax: `EXECUTE name [ ( parameter [, ...] ) ]`,
881
+ docUrl: `${PG_DOCS}execute.html`
882
+ },
883
+ {
884
+ cmd: "DEALLOCATE",
885
+ description: "deallocate a prepared statement",
886
+ syntax: `DEALLOCATE [ PREPARE ] { name | ALL }`,
887
+ docUrl: `${PG_DOCS}deallocate.html`
888
+ },
889
+ {
890
+ cmd: "DECLARE",
891
+ description: "define a cursor",
892
+ syntax: `DECLARE name [ BINARY ] [ ASENSITIVE | INSENSITIVE ] [ [ NO ] SCROLL ]
945
893
  CURSOR [ { WITH | WITHOUT } HOLD ] FOR query`,
946
- docUrl: `${PG_DOCS}declare.html`,
947
- },
948
- {
949
- cmd: "FETCH",
950
- description: "retrieve rows from a query using a cursor",
951
- syntax: `FETCH [ direction ] [ FROM | IN ] cursor_name
894
+ docUrl: `${PG_DOCS}declare.html`
895
+ },
896
+ {
897
+ cmd: "FETCH",
898
+ description: "retrieve rows from a query using a cursor",
899
+ syntax: `FETCH [ direction ] [ FROM | IN ] cursor_name
952
900
 
953
901
  where direction can be empty or one of:
954
902
 
@@ -966,12 +914,12 @@ where direction can be empty or one of:
966
914
  BACKWARD
967
915
  BACKWARD count
968
916
  BACKWARD ALL`,
969
- docUrl: `${PG_DOCS}fetch.html`,
970
- },
971
- {
972
- cmd: "MOVE",
973
- description: "position a cursor",
974
- syntax: `MOVE [ direction ] [ FROM | IN ] cursor_name
917
+ docUrl: `${PG_DOCS}fetch.html`
918
+ },
919
+ {
920
+ cmd: "MOVE",
921
+ description: "position a cursor",
922
+ syntax: `MOVE [ direction ] [ FROM | IN ] cursor_name
975
923
 
976
924
  where direction can be empty or one of:
977
925
 
@@ -979,88 +927,66 @@ where direction can be empty or one of:
979
927
  | ABSOLUTE count | RELATIVE count | count | ALL
980
928
  | FORWARD | FORWARD count | FORWARD ALL
981
929
  | BACKWARD | BACKWARD count | BACKWARD ALL`,
982
- docUrl: `${PG_DOCS}move.html`,
983
- },
984
- {
985
- cmd: "CLOSE",
986
- description: "close a cursor",
987
- syntax: `CLOSE { name | ALL }`,
988
- docUrl: `${PG_DOCS}close.html`,
989
- },
990
- // ---------------------------------------------------------------------------
991
- // Procedural / misc
992
- // ---------------------------------------------------------------------------
993
- {
994
- cmd: "CALL",
995
- description: "invoke a procedure",
996
- syntax: `CALL name ( [ argument ] [, ...] )`,
997
- docUrl: `${PG_DOCS}call.html`,
998
- },
999
- {
1000
- cmd: "DO",
1001
- description: "execute an anonymous code block",
1002
- syntax: `DO [ LANGUAGE lang_name ] code`,
1003
- docUrl: `${PG_DOCS}do.html`,
1004
- },
930
+ docUrl: `${PG_DOCS}move.html`
931
+ },
932
+ {
933
+ cmd: "CLOSE",
934
+ description: "close a cursor",
935
+ syntax: `CLOSE { name | ALL }`,
936
+ docUrl: `${PG_DOCS}close.html`
937
+ },
938
+ {
939
+ cmd: "CALL",
940
+ description: "invoke a procedure",
941
+ syntax: `CALL name ( [ argument ] [, ...] )`,
942
+ docUrl: `${PG_DOCS}call.html`
943
+ },
944
+ {
945
+ cmd: "DO",
946
+ description: "execute an anonymous code block",
947
+ syntax: `DO [ LANGUAGE lang_name ] code`,
948
+ docUrl: `${PG_DOCS}do.html`
949
+ }
1005
950
  ];
1006
- // ---------------------------------------------------------------------------
1007
- // Lookup helpers.
1008
- //
1009
- // Upstream's matcher is case-insensitive and matches by whitespace-tokenised
1010
- // prefix: "create t" matches CREATE TABLE, CREATE TRIGGER, CREATE TYPE; the
1011
- // full command name is also accepted. If the input matches an entry exactly
1012
- // (case-insensitively), we treat that as a single match even if it's a prefix
1013
- // of others — so `\h CREATE` lists everything starting with CREATE rather
1014
- // than failing on ambiguity (which matches the spec's "prefix match" wording).
1015
- // We additionally accept a single trailing space.
1016
- // ---------------------------------------------------------------------------
1017
951
  /** Normalise a topic string for matching. */
1018
952
  const normalize = (s) => s.trim().replace(/\s+/gu, " ").toUpperCase();
1019
953
  /** Tokenise on whitespace, dropping empties. */
1020
954
  const tokens = (s) => s.split(/\s+/u).filter((t) => t.length > 0);
1021
955
  /**
1022
- * Return entries whose `cmd` matches the topic by whitespace-tokenised prefix.
1023
- *
1024
- * Semantics:
1025
- * - "select" → [SELECT]
1026
- * - "CREATE T" → all CREATE entries starting with "T" (TABLE, TRIGGER, TYPE)
1027
- * - "CREATE" → all CREATE entries
1028
- * - "CREATE TABLE"→ exactly [CREATE TABLE]
1029
- *
1030
- * Each topic token must be a prefix of the entry's token at the same index;
1031
- * the entry must have at least as many tokens as the topic.
1032
- */
1033
- export const findMatches = (topic) => {
1034
- const needle = normalize(topic);
1035
- if (needle.length === 0)
1036
- return [];
1037
- const needleToks = tokens(needle);
1038
- return SQL_HELP.filter((entry) => {
1039
- const cmdToks = tokens(entry.cmd.toUpperCase());
1040
- if (cmdToks.length < needleToks.length)
1041
- return false;
1042
- for (let i = 0; i < needleToks.length; i++) {
1043
- if (!cmdToks[i].startsWith(needleToks[i]))
1044
- return false;
1045
- }
1046
- return true;
1047
- });
956
+ * Return entries whose `cmd` matches the topic by whitespace-tokenised prefix.
957
+ *
958
+ * Semantics:
959
+ * - "select" → [SELECT]
960
+ * - "CREATE T" → all CREATE entries starting with "T" (TABLE, TRIGGER, TYPE)
961
+ * - "CREATE" → all CREATE entries
962
+ * - "CREATE TABLE"→ exactly [CREATE TABLE]
963
+ *
964
+ * Each topic token must be a prefix of the entry's token at the same index;
965
+ * the entry must have at least as many tokens as the topic.
966
+ */
967
+ const findMatches = (topic) => {
968
+ const needle = normalize(topic);
969
+ if (needle.length === 0) return [];
970
+ const needleToks = tokens(needle);
971
+ return SQL_HELP.filter((entry) => {
972
+ const cmdToks = tokens(entry.cmd.toUpperCase());
973
+ if (cmdToks.length < needleToks.length) return false;
974
+ for (let i = 0; i < needleToks.length; i++) if (!cmdToks[i].startsWith(needleToks[i])) return false;
975
+ return true;
976
+ });
1048
977
  };
1049
978
  /**
1050
- * Format a single entry the way upstream `\h` does:
1051
- *
1052
- * Command: CMD
1053
- * Description: DESC
1054
- * Syntax:
1055
- * <syntax body>
1056
- *
1057
- * URL: <docs>
1058
- */
1059
- export const formatEntry = (entry) => {
1060
- return (`Command: ${entry.cmd}\n` +
1061
- `Description: ${entry.description}\n` +
1062
- `Syntax:\n` +
1063
- `${entry.syntax}\n` +
1064
- `\n` +
1065
- `URL: ${entry.docUrl}\n`);
979
+ * Format a single entry the way upstream `\h` does:
980
+ *
981
+ * Command: CMD
982
+ * Description: DESC
983
+ * Syntax:
984
+ * <syntax body>
985
+ *
986
+ * URL: <docs>
987
+ */
988
+ const formatEntry = (entry) => {
989
+ return `Command: ${entry.cmd}\nDescription: ${entry.description}\nSyntax:\n${entry.syntax}\n\nURL: ${entry.docUrl}\n`;
1066
990
  };
991
+ //#endregion
992
+ export { SQL_HELP, findMatches, formatEntry };