neon 3.0.0 → 3.1.1

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 (207) hide show
  1. package/README.md +70 -5
  2. package/dist/_chunks/auth_selection-DGgq6ifc.js +83 -0
  3. package/dist/_chunks/cmd_pipeline-CUbBO9U_.js +2818 -0
  4. package/dist/_chunks/credentials-MYdHdKah.js +188 -0
  5. package/dist/_chunks/env-NbA61JR3.js +585 -0
  6. package/dist/_chunks/env_services-Tz9G4JeT.js +531 -0
  7. package/dist/_chunks/paths-DMq0Lt7a.js +151 -0
  8. package/dist/_chunks/profiles-Ir29rqns.js +217 -0
  9. package/dist/_chunks/psql-DWH-kc69.js +2169 -0
  10. package/dist/_chunks/rolldown-runtime-D7D4PA-g.js +13 -0
  11. package/dist/_chunks/secure_file-BucZj4yQ.js +39 -0
  12. package/dist/analytics.js +163 -207
  13. package/dist/api.js +815 -758
  14. package/dist/auth.js +121 -141
  15. package/dist/auth_context.js +39 -53
  16. package/dist/cli.js +4 -7
  17. package/dist/commands/api.js +220 -250
  18. package/dist/commands/api_keys.js +251 -314
  19. package/dist/commands/auth.js +283 -328
  20. package/dist/commands/bootstrap.js +372 -437
  21. package/dist/commands/branches.js +304 -455
  22. package/dist/commands/bucket.js +374 -514
  23. package/dist/commands/checkout.js +213 -298
  24. package/dist/commands/config.js +573 -690
  25. package/dist/commands/connection_string.js +137 -165
  26. package/dist/commands/data_api.js +238 -260
  27. package/dist/commands/databases.js +67 -76
  28. package/dist/commands/deploy.js +31 -25
  29. package/dist/commands/dev.js +639 -719
  30. package/dist/commands/diff.js +156 -200
  31. package/dist/commands/env.js +255 -305
  32. package/dist/commands/functions.js +275 -355
  33. package/dist/commands/index.js +70 -65
  34. package/dist/commands/init.js +84 -119
  35. package/dist/commands/inspect.js +55 -55
  36. package/dist/commands/ip_allow.js +88 -120
  37. package/dist/commands/link.js +874 -1019
  38. package/dist/commands/logs.js +291 -0
  39. package/dist/commands/neon_auth.js +725 -933
  40. package/dist/commands/operations.js +34 -25
  41. package/dist/commands/orgs.js +28 -18
  42. package/dist/commands/profile.js +615 -846
  43. package/dist/commands/projects.js +313 -373
  44. package/dist/commands/psql.js +60 -58
  45. package/dist/commands/roles.js +55 -58
  46. package/dist/commands/schema_diff.js +87 -131
  47. package/dist/commands/set_context.js +34 -26
  48. package/dist/commands/snapshots.js +288 -413
  49. package/dist/commands/status.js +41 -37
  50. package/dist/commands/user.js +21 -10
  51. package/dist/commands/vpc_endpoints.js +85 -113
  52. package/dist/config.js +7 -6
  53. package/dist/config_format.js +50 -66
  54. package/dist/config_template.js +128 -157
  55. package/dist/context.js +183 -235
  56. package/dist/current_branch_fast_path.js +40 -49
  57. package/dist/dev/env.js +2 -446
  58. package/dist/dev/functions.js +54 -68
  59. package/dist/dev/inputs.js +46 -58
  60. package/dist/dev/runtime.js +135 -164
  61. package/dist/dev/websocket.js +766 -959
  62. package/dist/env.js +27 -33
  63. package/dist/env_file.js +118 -132
  64. package/dist/env_services.js +2 -51
  65. package/dist/errors.js +57 -68
  66. package/dist/functions_api.js +45 -43
  67. package/dist/help.js +189 -140
  68. package/dist/index.js +182 -257
  69. package/dist/init/agents.js +137 -118
  70. package/dist/init/auth.js +58 -68
  71. package/dist/init/bootstrap.js +325 -396
  72. package/dist/init/build_config.js +4 -2
  73. package/dist/init/detect_agent.js +56 -101
  74. package/dist/init/editors.js +35 -52
  75. package/dist/init/enrich_output.js +51 -66
  76. package/dist/init/extension.js +134 -171
  77. package/dist/init/inspect.js +179 -266
  78. package/dist/init/interactive.js +510 -622
  79. package/dist/init/neonctl.js +117 -168
  80. package/dist/init/orchestrate.js +157 -173
  81. package/dist/init/phases/auth.js +188 -202
  82. package/dist/init/phases/cleanup.js +23 -23
  83. package/dist/init/phases/db.js +251 -277
  84. package/dist/init/phases/getting_started.js +213 -223
  85. package/dist/init/phases/mcp.js +174 -224
  86. package/dist/init/phases/migrations.js +247 -248
  87. package/dist/init/phases/neon_auth.js +114 -133
  88. package/dist/init/phases/setup.js +546 -703
  89. package/dist/init/phases/skills.js +75 -86
  90. package/dist/init/phases/status.js +72 -67
  91. package/dist/init/resolve_context.js +102 -99
  92. package/dist/init/route_command.js +91 -98
  93. package/dist/init/skills.js +174 -218
  94. package/dist/init/vsix.js +77 -99
  95. package/dist/log.js +17 -16
  96. package/dist/neon_services.js +104 -129
  97. package/dist/parameters.gen.js +481 -471
  98. package/dist/pkg.js +17 -19
  99. package/dist/profile_keys.js +44 -47
  100. package/dist/psql/cli.js +44 -47
  101. package/dist/psql/command/cmd_cond.js +231 -406
  102. package/dist/psql/command/cmd_connect.js +557 -764
  103. package/dist/psql/command/cmd_copy.js +728 -984
  104. package/dist/psql/command/cmd_describe.js +1499 -1688
  105. package/dist/psql/command/cmd_format.js +733 -905
  106. package/dist/psql/command/cmd_io.js +2 -2193
  107. package/dist/psql/command/cmd_lo.js +297 -359
  108. package/dist/psql/command/cmd_meta.js +727 -878
  109. package/dist/psql/command/cmd_misc.js +138 -172
  110. package/dist/psql/command/cmd_pipeline.js +2 -1148
  111. package/dist/psql/command/cmd_restrict.js +119 -155
  112. package/dist/psql/command/cmd_show.js +529 -688
  113. package/dist/psql/command/dispatch.js +260 -325
  114. package/dist/psql/command/inputQueue.js +35 -33
  115. package/dist/psql/command/shared.js +49 -63
  116. package/dist/psql/complete/filenames.js +90 -133
  117. package/dist/psql/complete/index.js +59 -97
  118. package/dist/psql/complete/matcher.js +236 -300
  119. package/dist/psql/complete/psqlVars.js +218 -223
  120. package/dist/psql/complete/queries.js +159 -177
  121. package/dist/psql/complete/rules.js +1493 -2299
  122. package/dist/psql/core/common.js +2 -1253
  123. package/dist/psql/core/help.js +456 -546
  124. package/dist/psql/core/mainloop.js +692 -1303
  125. package/dist/psql/core/prompt.js +391 -408
  126. package/dist/psql/core/settings.js +429 -644
  127. package/dist/psql/core/sqlHelp.js +480 -554
  128. package/dist/psql/core/startup.js +2 -846
  129. package/dist/psql/core/syncVars.js +67 -110
  130. package/dist/psql/core/variables.js +156 -278
  131. package/dist/psql/describe/formatters.js +884 -1285
  132. package/dist/psql/describe/processNamePattern.js +173 -260
  133. package/dist/psql/describe/queries.js +1368 -2403
  134. package/dist/psql/describe/versionGate.js +32 -41
  135. package/dist/psql/index.js +2 -2030
  136. package/dist/psql/io/history.js +232 -271
  137. package/dist/psql/io/input.js +103 -108
  138. package/dist/psql/io/lineEditor/buffer.js +238 -319
  139. package/dist/psql/io/lineEditor/complete.js +135 -213
  140. package/dist/psql/io/lineEditor/filename.js +139 -148
  141. package/dist/psql/io/lineEditor/index.js +653 -870
  142. package/dist/psql/io/lineEditor/keymap.js +544 -702
  143. package/dist/psql/io/lineEditor/vt100.js +294 -341
  144. package/dist/psql/io/pgpass.js +158 -187
  145. package/dist/psql/io/pgservice.js +146 -183
  146. package/dist/psql/io/psqlrc.js +328 -403
  147. package/dist/psql/print/aligned.js +1020 -1683
  148. package/dist/psql/print/asciidoc.js +180 -214
  149. package/dist/psql/print/crosstab.js +281 -442
  150. package/dist/psql/print/csv.js +48 -70
  151. package/dist/psql/print/html.js +195 -226
  152. package/dist/psql/print/json.js +75 -88
  153. package/dist/psql/print/latex.js +291 -364
  154. package/dist/psql/print/pager.js +171 -242
  155. package/dist/psql/print/troff.js +194 -226
  156. package/dist/psql/print/unaligned.js +69 -95
  157. package/dist/psql/print/units.js +167 -169
  158. package/dist/psql/scanner/slash.js +428 -483
  159. package/dist/psql/scanner/sql.js +445 -889
  160. package/dist/psql/scanner/stringutils.js +309 -379
  161. package/dist/psql/types/index.js +8 -7
  162. package/dist/psql/types/scanner.js +25 -22
  163. package/dist/psql/wire/connection.js +2042 -2803
  164. package/dist/psql/wire/copy.js +84 -100
  165. package/dist/psql/wire/notify.js +39 -59
  166. package/dist/psql/wire/pipeline.js +305 -518
  167. package/dist/psql/wire/protocol.js +349 -417
  168. package/dist/psql/wire/sasl.js +180 -265
  169. package/dist/psql/wire/tls.js +400 -561
  170. package/dist/storage_api.js +115 -129
  171. package/dist/test_utils/fixtures.js +94 -113
  172. package/dist/test_utils/oauth_server.js +10 -7
  173. package/dist/test_utils/project_dir.js +33 -0
  174. package/dist/utils/ai_gateway_notice.js +131 -162
  175. package/dist/utils/api_enums.js +21 -28
  176. package/dist/utils/auth.js +10 -4
  177. package/dist/utils/branch_notice.js +20 -19
  178. package/dist/utils/branch_picker.js +83 -89
  179. package/dist/utils/cli_name.js +15 -12
  180. package/dist/utils/compute_units.js +20 -27
  181. package/dist/utils/config_diff.js +127 -158
  182. package/dist/utils/enrichers.js +95 -148
  183. package/dist/utils/esbuild.js +130 -189
  184. package/dist/utils/flags.js +35 -47
  185. package/dist/utils/formats.js +8 -15
  186. package/dist/utils/git_diff.js +69 -80
  187. package/dist/utils/inspect_db.js +101 -143
  188. package/dist/utils/inspect_queries.js +179 -142
  189. package/dist/utils/middlewares.js +39 -45
  190. package/dist/utils/openapi.js +87 -99
  191. package/dist/utils/package_manager.js +312 -110
  192. package/dist/utils/point_in_time.js +49 -53
  193. package/dist/utils/psql.js +89 -106
  194. package/dist/utils/service_picker.js +55 -58
  195. package/dist/utils/string.js +5 -5
  196. package/dist/utils/ui.js +38 -55
  197. package/dist/utils/write_sync.js +26 -35
  198. package/dist/utils/zip.js +4 -3
  199. package/dist/writer.js +67 -87
  200. package/package.json +11 -6
  201. package/dist/_shared/auth_selection.js +0 -86
  202. package/dist/_shared/credentials.js +0 -209
  203. package/dist/_shared/env-core/env.js +0 -558
  204. package/dist/_shared/env-core/reuse-secrets.js +0 -223
  205. package/dist/_shared/paths.js +0 -148
  206. package/dist/_shared/profiles.js +0 -276
  207. package/dist/_shared/secure_file.js +0 -43
@@ -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 };