neon 3.0.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.
- package/README.md +54 -0
- package/dist/_shared/auth_selection.js +76 -79
- package/dist/_shared/credentials.js +166 -187
- package/dist/_shared/env-core/env.js +354 -517
- package/dist/_shared/env-core/reuse-secrets.js +159 -203
- package/dist/_shared/paths.js +129 -126
- package/dist/_shared/profiles.js +192 -242
- package/dist/_shared/secure_file.js +36 -38
- package/dist/_virtual/_rolldown/runtime.js +13 -0
- package/dist/analytics.js +163 -207
- package/dist/api.js +815 -758
- package/dist/auth.js +121 -141
- package/dist/auth_context.js +39 -53
- package/dist/cli.js +4 -7
- package/dist/commands/api.js +220 -250
- package/dist/commands/api_keys.js +251 -314
- package/dist/commands/auth.js +283 -328
- package/dist/commands/bootstrap.js +372 -437
- package/dist/commands/branches.js +304 -455
- package/dist/commands/bucket.js +374 -514
- package/dist/commands/checkout.js +213 -298
- package/dist/commands/config.js +573 -690
- package/dist/commands/connection_string.js +137 -165
- package/dist/commands/data_api.js +238 -260
- package/dist/commands/databases.js +67 -76
- package/dist/commands/deploy.js +31 -25
- package/dist/commands/dev.js +639 -719
- package/dist/commands/diff.js +156 -200
- package/dist/commands/env.js +243 -303
- package/dist/commands/functions.js +275 -355
- package/dist/commands/index.js +70 -65
- package/dist/commands/init.js +84 -119
- package/dist/commands/inspect.js +55 -55
- package/dist/commands/ip_allow.js +88 -120
- package/dist/commands/link.js +874 -1019
- package/dist/commands/logs.js +291 -0
- package/dist/commands/neon_auth.js +725 -933
- package/dist/commands/operations.js +34 -25
- package/dist/commands/orgs.js +28 -18
- package/dist/commands/profile.js +614 -845
- package/dist/commands/projects.js +313 -373
- package/dist/commands/psql.js +60 -58
- package/dist/commands/roles.js +55 -58
- package/dist/commands/schema_diff.js +87 -131
- package/dist/commands/set_context.js +34 -26
- package/dist/commands/snapshots.js +288 -413
- package/dist/commands/status.js +41 -37
- package/dist/commands/user.js +21 -10
- package/dist/commands/vpc_endpoints.js +85 -113
- package/dist/config.js +7 -6
- package/dist/config_format.js +50 -66
- package/dist/config_template.js +128 -157
- package/dist/context.js +183 -235
- package/dist/current_branch_fast_path.js +40 -49
- package/dist/dev/env.js +313 -394
- package/dist/dev/functions.js +54 -68
- package/dist/dev/inputs.js +46 -58
- package/dist/dev/runtime.js +135 -164
- package/dist/dev/websocket.js +766 -959
- package/dist/env.js +27 -33
- package/dist/env_file.js +118 -132
- package/dist/env_services.js +36 -38
- package/dist/errors.js +57 -68
- package/dist/functions_api.js +45 -43
- package/dist/help.js +189 -140
- package/dist/index.js +182 -257
- package/dist/init/agents.js +137 -118
- package/dist/init/auth.js +58 -68
- package/dist/init/bootstrap.js +325 -396
- package/dist/init/build_config.js +4 -2
- package/dist/init/detect_agent.js +56 -101
- package/dist/init/editors.js +35 -52
- package/dist/init/enrich_output.js +51 -66
- package/dist/init/extension.js +134 -171
- package/dist/init/inspect.js +179 -266
- package/dist/init/interactive.js +510 -622
- package/dist/init/neonctl.js +117 -168
- package/dist/init/orchestrate.js +157 -173
- package/dist/init/phases/auth.js +188 -202
- package/dist/init/phases/cleanup.js +23 -23
- package/dist/init/phases/db.js +251 -277
- package/dist/init/phases/getting_started.js +213 -223
- package/dist/init/phases/mcp.js +174 -224
- package/dist/init/phases/migrations.js +247 -248
- package/dist/init/phases/neon_auth.js +114 -133
- package/dist/init/phases/setup.js +546 -703
- package/dist/init/phases/skills.js +75 -86
- package/dist/init/phases/status.js +72 -67
- package/dist/init/resolve_context.js +102 -99
- package/dist/init/route_command.js +91 -98
- package/dist/init/skills.js +174 -218
- package/dist/init/vsix.js +77 -99
- package/dist/log.js +17 -16
- package/dist/neon_services.js +104 -129
- package/dist/parameters.gen.js +481 -471
- package/dist/pkg.js +17 -19
- package/dist/profile_keys.js +44 -47
- package/dist/psql/cli.js +44 -47
- package/dist/psql/command/cmd_cond.js +231 -406
- package/dist/psql/command/cmd_connect.js +557 -764
- package/dist/psql/command/cmd_copy.js +727 -983
- package/dist/psql/command/cmd_describe.js +1499 -1688
- package/dist/psql/command/cmd_format.js +733 -905
- package/dist/psql/command/cmd_io.js +1293 -2082
- package/dist/psql/command/cmd_lo.js +297 -359
- package/dist/psql/command/cmd_meta.js +727 -878
- package/dist/psql/command/cmd_misc.js +138 -172
- package/dist/psql/command/cmd_pipeline.js +547 -1099
- package/dist/psql/command/cmd_restrict.js +119 -155
- package/dist/psql/command/cmd_show.js +529 -688
- package/dist/psql/command/dispatch.js +261 -325
- package/dist/psql/command/inputQueue.js +35 -33
- package/dist/psql/command/shared.js +49 -63
- package/dist/psql/complete/filenames.js +90 -133
- package/dist/psql/complete/index.js +59 -97
- package/dist/psql/complete/matcher.js +236 -300
- package/dist/psql/complete/psqlVars.js +218 -223
- package/dist/psql/complete/queries.js +159 -177
- package/dist/psql/complete/rules.js +1493 -2299
- package/dist/psql/core/common.js +762 -1180
- package/dist/psql/core/help.js +456 -546
- package/dist/psql/core/mainloop.js +692 -1302
- package/dist/psql/core/prompt.js +391 -408
- package/dist/psql/core/settings.js +429 -644
- package/dist/psql/core/sqlHelp.js +480 -554
- package/dist/psql/core/startup.js +626 -815
- package/dist/psql/core/syncVars.js +67 -110
- package/dist/psql/core/variables.js +156 -278
- package/dist/psql/describe/formatters.js +884 -1285
- package/dist/psql/describe/processNamePattern.js +173 -260
- package/dist/psql/describe/queries.js +1368 -2403
- package/dist/psql/describe/versionGate.js +32 -41
- package/dist/psql/index.js +1414 -1927
- package/dist/psql/io/history.js +232 -271
- package/dist/psql/io/input.js +103 -108
- package/dist/psql/io/lineEditor/buffer.js +238 -319
- package/dist/psql/io/lineEditor/complete.js +135 -213
- package/dist/psql/io/lineEditor/filename.js +139 -148
- package/dist/psql/io/lineEditor/index.js +653 -870
- package/dist/psql/io/lineEditor/keymap.js +544 -702
- package/dist/psql/io/lineEditor/vt100.js +294 -341
- package/dist/psql/io/pgpass.js +158 -187
- package/dist/psql/io/pgservice.js +146 -183
- package/dist/psql/io/psqlrc.js +328 -403
- package/dist/psql/print/aligned.js +1020 -1683
- package/dist/psql/print/asciidoc.js +180 -214
- package/dist/psql/print/crosstab.js +281 -442
- package/dist/psql/print/csv.js +48 -70
- package/dist/psql/print/html.js +195 -226
- package/dist/psql/print/json.js +75 -88
- package/dist/psql/print/latex.js +291 -364
- package/dist/psql/print/pager.js +171 -242
- package/dist/psql/print/troff.js +194 -226
- package/dist/psql/print/unaligned.js +69 -95
- package/dist/psql/print/units.js +167 -169
- package/dist/psql/scanner/slash.js +428 -483
- package/dist/psql/scanner/sql.js +445 -889
- package/dist/psql/scanner/stringutils.js +309 -379
- package/dist/psql/types/index.js +2 -7
- package/dist/psql/types/scanner.js +25 -22
- package/dist/psql/wire/connection.js +2042 -2803
- package/dist/psql/wire/copy.js +84 -100
- package/dist/psql/wire/notify.js +39 -59
- package/dist/psql/wire/pipeline.js +305 -518
- package/dist/psql/wire/protocol.js +349 -417
- package/dist/psql/wire/sasl.js +180 -265
- package/dist/psql/wire/tls.js +400 -561
- package/dist/storage_api.js +115 -129
- package/dist/test_utils/fixtures.js +94 -113
- package/dist/test_utils/oauth_server.js +10 -7
- package/dist/test_utils/project_dir.js +33 -0
- package/dist/utils/ai_gateway_notice.js +131 -162
- package/dist/utils/api_enums.js +21 -28
- package/dist/utils/auth.js +10 -4
- package/dist/utils/branch_notice.js +20 -19
- package/dist/utils/branch_picker.js +83 -89
- package/dist/utils/cli_name.js +15 -12
- package/dist/utils/compute_units.js +20 -27
- package/dist/utils/config_diff.js +127 -158
- package/dist/utils/enrichers.js +95 -148
- package/dist/utils/esbuild.js +130 -189
- package/dist/utils/flags.js +35 -47
- package/dist/utils/formats.js +8 -15
- package/dist/utils/git_diff.js +69 -80
- package/dist/utils/inspect_db.js +101 -143
- package/dist/utils/inspect_queries.js +179 -142
- package/dist/utils/middlewares.js +37 -44
- package/dist/utils/openapi.js +87 -99
- package/dist/utils/package_manager.js +312 -110
- package/dist/utils/point_in_time.js +49 -53
- package/dist/utils/psql.js +89 -106
- package/dist/utils/service_picker.js +55 -58
- package/dist/utils/string.js +5 -5
- package/dist/utils/ui.js +38 -55
- package/dist/utils/write_sync.js +26 -35
- package/dist/utils/zip.js +4 -3
- package/dist/writer.js +67 -87
- package/package.json +7 -5
|
@@ -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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
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
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
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
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
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
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
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
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
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
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
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
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
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
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
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
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
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
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
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
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
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
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
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
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
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
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
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
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
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
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
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
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
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
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
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
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
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
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
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
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
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
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
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
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
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
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
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
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
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
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
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
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
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
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
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
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
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
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
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
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
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
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
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
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
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
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
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
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
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
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
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
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
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
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
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
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
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
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
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
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
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
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
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
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
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
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
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
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
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
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
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
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
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 };
|