1 /*
2  * *** Do not change this file by hand. It is automatically
3  * *** generated from the DocBook documentation.
4  *
5  * generated by src/bin/psql/create_help.pl
6  *
7  */
8 
9 #define N_(x) (x)				/* gettext noop */
10 
11 #include "postgres_fe.h"
12 #include "sql_help.h"
13 
14 static void
sql_help_ABORT(PQExpBuffer buf)15 sql_help_ABORT(PQExpBuffer buf)
16 {
17 	appendPQExpBuffer(buf,
18 					  "ABORT [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]");
19 }
20 
21 static void
sql_help_ALTER_AGGREGATE(PQExpBuffer buf)22 sql_help_ALTER_AGGREGATE(PQExpBuffer buf)
23 {
24 	appendPQExpBuffer(buf,
25 					  "ALTER AGGREGATE %s ( %s ) RENAME TO %s\n"
26 					  "ALTER AGGREGATE %s ( %s )\n"
27 					  "                OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
28 					  "ALTER AGGREGATE %s ( %s ) SET SCHEMA %s\n"
29 					  "\n"
30 					  "%s\n"
31 					  "\n"
32 					  "* |\n"
33 					  "[ %s ] [ %s ] %s [ , ... ] |\n"
34 					  "[ [ %s ] [ %s ] %s [ , ... ] ] ORDER BY [ %s ] [ %s ] %s [ , ... ]",
35 					  _("name"),
36 					  _("aggregate_signature"),
37 					  _("new_name"),
38 					  _("name"),
39 					  _("aggregate_signature"),
40 					  _("new_owner"),
41 					  _("name"),
42 					  _("aggregate_signature"),
43 					  _("new_schema"),
44 					  _("where aggregate_signature is:"),
45 					  _("argmode"),
46 					  _("argname"),
47 					  _("argtype"),
48 					  _("argmode"),
49 					  _("argname"),
50 					  _("argtype"),
51 					  _("argmode"),
52 					  _("argname"),
53 					  _("argtype"));
54 }
55 
56 static void
sql_help_ALTER_COLLATION(PQExpBuffer buf)57 sql_help_ALTER_COLLATION(PQExpBuffer buf)
58 {
59 	appendPQExpBuffer(buf,
60 					  "ALTER COLLATION %s REFRESH VERSION\n"
61 					  "\n"
62 					  "ALTER COLLATION %s RENAME TO %s\n"
63 					  "ALTER COLLATION %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
64 					  "ALTER COLLATION %s SET SCHEMA %s",
65 					  _("name"),
66 					  _("name"),
67 					  _("new_name"),
68 					  _("name"),
69 					  _("new_owner"),
70 					  _("name"),
71 					  _("new_schema"));
72 }
73 
74 static void
sql_help_ALTER_CONVERSION(PQExpBuffer buf)75 sql_help_ALTER_CONVERSION(PQExpBuffer buf)
76 {
77 	appendPQExpBuffer(buf,
78 					  "ALTER CONVERSION %s RENAME TO %s\n"
79 					  "ALTER CONVERSION %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
80 					  "ALTER CONVERSION %s SET SCHEMA %s",
81 					  _("name"),
82 					  _("new_name"),
83 					  _("name"),
84 					  _("new_owner"),
85 					  _("name"),
86 					  _("new_schema"));
87 }
88 
89 static void
sql_help_ALTER_DATABASE(PQExpBuffer buf)90 sql_help_ALTER_DATABASE(PQExpBuffer buf)
91 {
92 	appendPQExpBuffer(buf,
93 					  "ALTER DATABASE %s [ [ WITH ] %s [ ... ] ]\n"
94 					  "\n"
95 					  "%s\n"
96 					  "\n"
97 					  "    ALLOW_CONNECTIONS %s\n"
98 					  "    CONNECTION LIMIT %s\n"
99 					  "    IS_TEMPLATE %s\n"
100 					  "\n"
101 					  "ALTER DATABASE %s RENAME TO %s\n"
102 					  "\n"
103 					  "ALTER DATABASE %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
104 					  "\n"
105 					  "ALTER DATABASE %s SET TABLESPACE %s\n"
106 					  "\n"
107 					  "ALTER DATABASE %s SET %s { TO | = } { %s | DEFAULT }\n"
108 					  "ALTER DATABASE %s SET %s FROM CURRENT\n"
109 					  "ALTER DATABASE %s RESET %s\n"
110 					  "ALTER DATABASE %s RESET ALL",
111 					  _("name"),
112 					  _("option"),
113 					  _("where option can be:"),
114 					  _("allowconn"),
115 					  _("connlimit"),
116 					  _("istemplate"),
117 					  _("name"),
118 					  _("new_name"),
119 					  _("name"),
120 					  _("new_owner"),
121 					  _("name"),
122 					  _("new_tablespace"),
123 					  _("name"),
124 					  _("configuration_parameter"),
125 					  _("value"),
126 					  _("name"),
127 					  _("configuration_parameter"),
128 					  _("name"),
129 					  _("configuration_parameter"),
130 					  _("name"));
131 }
132 
133 static void
sql_help_ALTER_DEFAULT_PRIVILEGES(PQExpBuffer buf)134 sql_help_ALTER_DEFAULT_PRIVILEGES(PQExpBuffer buf)
135 {
136 	appendPQExpBuffer(buf,
137 					  "ALTER DEFAULT PRIVILEGES\n"
138 					  "    [ FOR { ROLE | USER } %s [, ...] ]\n"
139 					  "    [ IN SCHEMA %s [, ...] ]\n"
140 					  "    %s\n"
141 					  "\n"
142 					  "%s\n"
143 					  "\n"
144 					  "GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }\n"
145 					  "    [, ...] | ALL [ PRIVILEGES ] }\n"
146 					  "    ON TABLES\n"
147 					  "    TO { [ GROUP ] %s | PUBLIC } [, ...] [ WITH GRANT OPTION ]\n"
148 					  "\n"
149 					  "GRANT { { USAGE | SELECT | UPDATE }\n"
150 					  "    [, ...] | ALL [ PRIVILEGES ] }\n"
151 					  "    ON SEQUENCES\n"
152 					  "    TO { [ GROUP ] %s | PUBLIC } [, ...] [ WITH GRANT OPTION ]\n"
153 					  "\n"
154 					  "GRANT { EXECUTE | ALL [ PRIVILEGES ] }\n"
155 					  "    ON { FUNCTIONS | ROUTINES }\n"
156 					  "    TO { [ GROUP ] %s | PUBLIC } [, ...] [ WITH GRANT OPTION ]\n"
157 					  "\n"
158 					  "GRANT { USAGE | ALL [ PRIVILEGES ] }\n"
159 					  "    ON TYPES\n"
160 					  "    TO { [ GROUP ] %s | PUBLIC } [, ...] [ WITH GRANT OPTION ]\n"
161 					  "\n"
162 					  "GRANT { USAGE | CREATE | ALL [ PRIVILEGES ] }\n"
163 					  "    ON SCHEMAS\n"
164 					  "    TO { [ GROUP ] %s | PUBLIC } [, ...] [ WITH GRANT OPTION ]\n"
165 					  "\n"
166 					  "REVOKE [ GRANT OPTION FOR ]\n"
167 					  "    { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }\n"
168 					  "    [, ...] | ALL [ PRIVILEGES ] }\n"
169 					  "    ON TABLES\n"
170 					  "    FROM { [ GROUP ] %s | PUBLIC } [, ...]\n"
171 					  "    [ CASCADE | RESTRICT ]\n"
172 					  "\n"
173 					  "REVOKE [ GRANT OPTION FOR ]\n"
174 					  "    { { USAGE | SELECT | UPDATE }\n"
175 					  "    [, ...] | ALL [ PRIVILEGES ] }\n"
176 					  "    ON SEQUENCES\n"
177 					  "    FROM { [ GROUP ] %s | PUBLIC } [, ...]\n"
178 					  "    [ CASCADE | RESTRICT ]\n"
179 					  "\n"
180 					  "REVOKE [ GRANT OPTION FOR ]\n"
181 					  "    { EXECUTE | ALL [ PRIVILEGES ] }\n"
182 					  "    ON { FUNCTIONS | ROUTINES }\n"
183 					  "    FROM { [ GROUP ] %s | PUBLIC } [, ...]\n"
184 					  "    [ CASCADE | RESTRICT ]\n"
185 					  "\n"
186 					  "REVOKE [ GRANT OPTION FOR ]\n"
187 					  "    { USAGE | ALL [ PRIVILEGES ] }\n"
188 					  "    ON TYPES\n"
189 					  "    FROM { [ GROUP ] %s | PUBLIC } [, ...]\n"
190 					  "    [ CASCADE | RESTRICT ]\n"
191 					  "\n"
192 					  "REVOKE [ GRANT OPTION FOR ]\n"
193 					  "    { USAGE | CREATE | ALL [ PRIVILEGES ] }\n"
194 					  "    ON SCHEMAS\n"
195 					  "    FROM { [ GROUP ] %s | PUBLIC } [, ...]\n"
196 					  "    [ CASCADE | RESTRICT ]",
197 					  _("target_role"),
198 					  _("schema_name"),
199 					  _("abbreviated_grant_or_revoke"),
200 					  _("where abbreviated_grant_or_revoke is one of:"),
201 					  _("role_name"),
202 					  _("role_name"),
203 					  _("role_name"),
204 					  _("role_name"),
205 					  _("role_name"),
206 					  _("role_name"),
207 					  _("role_name"),
208 					  _("role_name"),
209 					  _("role_name"),
210 					  _("role_name"));
211 }
212 
213 static void
sql_help_ALTER_DOMAIN(PQExpBuffer buf)214 sql_help_ALTER_DOMAIN(PQExpBuffer buf)
215 {
216 	appendPQExpBuffer(buf,
217 					  "ALTER DOMAIN %s\n"
218 					  "    { SET DEFAULT %s | DROP DEFAULT }\n"
219 					  "ALTER DOMAIN %s\n"
220 					  "    { SET | DROP } NOT NULL\n"
221 					  "ALTER DOMAIN %s\n"
222 					  "    ADD %s [ NOT VALID ]\n"
223 					  "ALTER DOMAIN %s\n"
224 					  "    DROP CONSTRAINT [ IF EXISTS ] %s [ RESTRICT | CASCADE ]\n"
225 					  "ALTER DOMAIN %s\n"
226 					  "     RENAME CONSTRAINT %s TO %s\n"
227 					  "ALTER DOMAIN %s\n"
228 					  "    VALIDATE CONSTRAINT %s\n"
229 					  "ALTER DOMAIN %s\n"
230 					  "    OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
231 					  "ALTER DOMAIN %s\n"
232 					  "    RENAME TO %s\n"
233 					  "ALTER DOMAIN %s\n"
234 					  "    SET SCHEMA %s",
235 					  _("name"),
236 					  _("expression"),
237 					  _("name"),
238 					  _("name"),
239 					  _("domain_constraint"),
240 					  _("name"),
241 					  _("constraint_name"),
242 					  _("name"),
243 					  _("constraint_name"),
244 					  _("new_constraint_name"),
245 					  _("name"),
246 					  _("constraint_name"),
247 					  _("name"),
248 					  _("new_owner"),
249 					  _("name"),
250 					  _("new_name"),
251 					  _("name"),
252 					  _("new_schema"));
253 }
254 
255 static void
sql_help_ALTER_EVENT_TRIGGER(PQExpBuffer buf)256 sql_help_ALTER_EVENT_TRIGGER(PQExpBuffer buf)
257 {
258 	appendPQExpBuffer(buf,
259 					  "ALTER EVENT TRIGGER %s DISABLE\n"
260 					  "ALTER EVENT TRIGGER %s ENABLE [ REPLICA | ALWAYS ]\n"
261 					  "ALTER EVENT TRIGGER %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
262 					  "ALTER EVENT TRIGGER %s RENAME TO %s",
263 					  _("name"),
264 					  _("name"),
265 					  _("name"),
266 					  _("new_owner"),
267 					  _("name"),
268 					  _("new_name"));
269 }
270 
271 static void
sql_help_ALTER_EXTENSION(PQExpBuffer buf)272 sql_help_ALTER_EXTENSION(PQExpBuffer buf)
273 {
274 	appendPQExpBuffer(buf,
275 					  "ALTER EXTENSION %s UPDATE [ TO %s ]\n"
276 					  "ALTER EXTENSION %s SET SCHEMA %s\n"
277 					  "ALTER EXTENSION %s ADD %s\n"
278 					  "ALTER EXTENSION %s DROP %s\n"
279 					  "\n"
280 					  "%s\n"
281 					  "\n"
282 					  "  ACCESS METHOD %s |\n"
283 					  "  AGGREGATE %s ( %s ) |\n"
284 					  "  CAST (%s AS %s) |\n"
285 					  "  COLLATION %s |\n"
286 					  "  CONVERSION %s |\n"
287 					  "  DOMAIN %s |\n"
288 					  "  EVENT TRIGGER %s |\n"
289 					  "  FOREIGN DATA WRAPPER %s |\n"
290 					  "  FOREIGN TABLE %s |\n"
291 					  "  FUNCTION %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ] |\n"
292 					  "  MATERIALIZED VIEW %s |\n"
293 					  "  OPERATOR %s (%s, %s) |\n"
294 					  "  OPERATOR CLASS %s USING %s |\n"
295 					  "  OPERATOR FAMILY %s USING %s |\n"
296 					  "  [ PROCEDURAL ] LANGUAGE %s |\n"
297 					  "  PROCEDURE %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ] |\n"
298 					  "  ROUTINE %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ] |\n"
299 					  "  SCHEMA %s |\n"
300 					  "  SEQUENCE %s |\n"
301 					  "  SERVER %s |\n"
302 					  "  TABLE %s |\n"
303 					  "  TEXT SEARCH CONFIGURATION %s |\n"
304 					  "  TEXT SEARCH DICTIONARY %s |\n"
305 					  "  TEXT SEARCH PARSER %s |\n"
306 					  "  TEXT SEARCH TEMPLATE %s |\n"
307 					  "  TRANSFORM FOR %s LANGUAGE %s |\n"
308 					  "  TYPE %s |\n"
309 					  "  VIEW %s\n"
310 					  "\n"
311 					  "%s\n"
312 					  "\n"
313 					  "* |\n"
314 					  "[ %s ] [ %s ] %s [ , ... ] |\n"
315 					  "[ [ %s ] [ %s ] %s [ , ... ] ] ORDER BY [ %s ] [ %s ] %s [ , ... ]",
316 					  _("name"),
317 					  _("new_version"),
318 					  _("name"),
319 					  _("new_schema"),
320 					  _("name"),
321 					  _("member_object"),
322 					  _("name"),
323 					  _("member_object"),
324 					  _("where member_object is:"),
325 					  _("object_name"),
326 					  _("aggregate_name"),
327 					  _("aggregate_signature"),
328 					  _("source_type"),
329 					  _("target_type"),
330 					  _("object_name"),
331 					  _("object_name"),
332 					  _("object_name"),
333 					  _("object_name"),
334 					  _("object_name"),
335 					  _("object_name"),
336 					  _("function_name"),
337 					  _("argmode"),
338 					  _("argname"),
339 					  _("argtype"),
340 					  _("object_name"),
341 					  _("operator_name"),
342 					  _("left_type"),
343 					  _("right_type"),
344 					  _("object_name"),
345 					  _("index_method"),
346 					  _("object_name"),
347 					  _("index_method"),
348 					  _("object_name"),
349 					  _("procedure_name"),
350 					  _("argmode"),
351 					  _("argname"),
352 					  _("argtype"),
353 					  _("routine_name"),
354 					  _("argmode"),
355 					  _("argname"),
356 					  _("argtype"),
357 					  _("object_name"),
358 					  _("object_name"),
359 					  _("object_name"),
360 					  _("object_name"),
361 					  _("object_name"),
362 					  _("object_name"),
363 					  _("object_name"),
364 					  _("object_name"),
365 					  _("type_name"),
366 					  _("lang_name"),
367 					  _("object_name"),
368 					  _("object_name"),
369 					  _("and aggregate_signature is:"),
370 					  _("argmode"),
371 					  _("argname"),
372 					  _("argtype"),
373 					  _("argmode"),
374 					  _("argname"),
375 					  _("argtype"),
376 					  _("argmode"),
377 					  _("argname"),
378 					  _("argtype"));
379 }
380 
381 static void
sql_help_ALTER_FOREIGN_DATA_WRAPPER(PQExpBuffer buf)382 sql_help_ALTER_FOREIGN_DATA_WRAPPER(PQExpBuffer buf)
383 {
384 	appendPQExpBuffer(buf,
385 					  "ALTER FOREIGN DATA WRAPPER %s\n"
386 					  "    [ HANDLER %s | NO HANDLER ]\n"
387 					  "    [ VALIDATOR %s | NO VALIDATOR ]\n"
388 					  "    [ OPTIONS ( [ ADD | SET | DROP ] %s ['%s'] [, ... ]) ]\n"
389 					  "ALTER FOREIGN DATA WRAPPER %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
390 					  "ALTER FOREIGN DATA WRAPPER %s RENAME TO %s",
391 					  _("name"),
392 					  _("handler_function"),
393 					  _("validator_function"),
394 					  _("option"),
395 					  _("value"),
396 					  _("name"),
397 					  _("new_owner"),
398 					  _("name"),
399 					  _("new_name"));
400 }
401 
402 static void
sql_help_ALTER_FOREIGN_TABLE(PQExpBuffer buf)403 sql_help_ALTER_FOREIGN_TABLE(PQExpBuffer buf)
404 {
405 	appendPQExpBuffer(buf,
406 					  "ALTER FOREIGN TABLE [ IF EXISTS ] [ ONLY ] %s [ * ]\n"
407 					  "    %s [, ... ]\n"
408 					  "ALTER FOREIGN TABLE [ IF EXISTS ] [ ONLY ] %s [ * ]\n"
409 					  "    RENAME [ COLUMN ] %s TO %s\n"
410 					  "ALTER FOREIGN TABLE [ IF EXISTS ] %s\n"
411 					  "    RENAME TO %s\n"
412 					  "ALTER FOREIGN TABLE [ IF EXISTS ] %s\n"
413 					  "    SET SCHEMA %s\n"
414 					  "\n"
415 					  "%s\n"
416 					  "\n"
417 					  "    ADD [ COLUMN ] %s %s [ COLLATE %s ] [ %s [ ... ] ]\n"
418 					  "    DROP [ COLUMN ] [ IF EXISTS ] %s [ RESTRICT | CASCADE ]\n"
419 					  "    ALTER [ COLUMN ] %s [ SET DATA ] TYPE %s [ COLLATE %s ]\n"
420 					  "    ALTER [ COLUMN ] %s SET DEFAULT %s\n"
421 					  "    ALTER [ COLUMN ] %s DROP DEFAULT\n"
422 					  "    ALTER [ COLUMN ] %s { SET | DROP } NOT NULL\n"
423 					  "    ALTER [ COLUMN ] %s SET STATISTICS %s\n"
424 					  "    ALTER [ COLUMN ] %s SET ( %s = %s [, ... ] )\n"
425 					  "    ALTER [ COLUMN ] %s RESET ( %s [, ... ] )\n"
426 					  "    ALTER [ COLUMN ] %s SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }\n"
427 					  "    ALTER [ COLUMN ] %s OPTIONS ( [ ADD | SET | DROP ] %s ['%s'] [, ... ])\n"
428 					  "    ADD %s [ NOT VALID ]\n"
429 					  "    VALIDATE CONSTRAINT %s\n"
430 					  "    DROP CONSTRAINT [ IF EXISTS ]  %s [ RESTRICT | CASCADE ]\n"
431 					  "    DISABLE TRIGGER [ %s | ALL | USER ]\n"
432 					  "    ENABLE TRIGGER [ %s | ALL | USER ]\n"
433 					  "    ENABLE REPLICA TRIGGER %s\n"
434 					  "    ENABLE ALWAYS TRIGGER %s\n"
435 					  "    SET WITHOUT OIDS\n"
436 					  "    INHERIT %s\n"
437 					  "    NO INHERIT %s\n"
438 					  "    OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
439 					  "    OPTIONS ( [ ADD | SET | DROP ] %s ['%s'] [, ... ])",
440 					  _("name"),
441 					  _("action"),
442 					  _("name"),
443 					  _("column_name"),
444 					  _("new_column_name"),
445 					  _("name"),
446 					  _("new_name"),
447 					  _("name"),
448 					  _("new_schema"),
449 					  _("where action is one of:"),
450 					  _("column_name"),
451 					  _("data_type"),
452 					  _("collation"),
453 					  _("column_constraint"),
454 					  _("column_name"),
455 					  _("column_name"),
456 					  _("data_type"),
457 					  _("collation"),
458 					  _("column_name"),
459 					  _("expression"),
460 					  _("column_name"),
461 					  _("column_name"),
462 					  _("column_name"),
463 					  _("integer"),
464 					  _("column_name"),
465 					  _("attribute_option"),
466 					  _("value"),
467 					  _("column_name"),
468 					  _("attribute_option"),
469 					  _("column_name"),
470 					  _("column_name"),
471 					  _("option"),
472 					  _("value"),
473 					  _("table_constraint"),
474 					  _("constraint_name"),
475 					  _("constraint_name"),
476 					  _("trigger_name"),
477 					  _("trigger_name"),
478 					  _("trigger_name"),
479 					  _("trigger_name"),
480 					  _("parent_table"),
481 					  _("parent_table"),
482 					  _("new_owner"),
483 					  _("option"),
484 					  _("value"));
485 }
486 
487 static void
sql_help_ALTER_FUNCTION(PQExpBuffer buf)488 sql_help_ALTER_FUNCTION(PQExpBuffer buf)
489 {
490 	appendPQExpBuffer(buf,
491 					  "ALTER FUNCTION %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ]\n"
492 					  "    %s [ ... ] [ RESTRICT ]\n"
493 					  "ALTER FUNCTION %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ]\n"
494 					  "    RENAME TO %s\n"
495 					  "ALTER FUNCTION %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ]\n"
496 					  "    OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
497 					  "ALTER FUNCTION %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ]\n"
498 					  "    SET SCHEMA %s\n"
499 					  "ALTER FUNCTION %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ]\n"
500 					  "    [ NO ] DEPENDS ON EXTENSION %s\n"
501 					  "\n"
502 					  "%s\n"
503 					  "\n"
504 					  "    CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT\n"
505 					  "    IMMUTABLE | STABLE | VOLATILE\n"
506 					  "    [ NOT ] LEAKPROOF\n"
507 					  "    [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER\n"
508 					  "    PARALLEL { UNSAFE | RESTRICTED | SAFE }\n"
509 					  "    COST %s\n"
510 					  "    ROWS %s\n"
511 					  "    SUPPORT %s\n"
512 					  "    SET %s { TO | = } { %s | DEFAULT }\n"
513 					  "    SET %s FROM CURRENT\n"
514 					  "    RESET %s\n"
515 					  "    RESET ALL",
516 					  _("name"),
517 					  _("argmode"),
518 					  _("argname"),
519 					  _("argtype"),
520 					  _("action"),
521 					  _("name"),
522 					  _("argmode"),
523 					  _("argname"),
524 					  _("argtype"),
525 					  _("new_name"),
526 					  _("name"),
527 					  _("argmode"),
528 					  _("argname"),
529 					  _("argtype"),
530 					  _("new_owner"),
531 					  _("name"),
532 					  _("argmode"),
533 					  _("argname"),
534 					  _("argtype"),
535 					  _("new_schema"),
536 					  _("name"),
537 					  _("argmode"),
538 					  _("argname"),
539 					  _("argtype"),
540 					  _("extension_name"),
541 					  _("where action is one of:"),
542 					  _("execution_cost"),
543 					  _("result_rows"),
544 					  _("support_function"),
545 					  _("configuration_parameter"),
546 					  _("value"),
547 					  _("configuration_parameter"),
548 					  _("configuration_parameter"));
549 }
550 
551 static void
sql_help_ALTER_GROUP(PQExpBuffer buf)552 sql_help_ALTER_GROUP(PQExpBuffer buf)
553 {
554 	appendPQExpBuffer(buf,
555 					  "ALTER GROUP %s ADD USER %s [, ... ]\n"
556 					  "ALTER GROUP %s DROP USER %s [, ... ]\n"
557 					  "\n"
558 					  "%s\n"
559 					  "\n"
560 					  "    %s\n"
561 					  "  | CURRENT_ROLE\n"
562 					  "  | CURRENT_USER\n"
563 					  "  | SESSION_USER\n"
564 					  "\n"
565 					  "ALTER GROUP %s RENAME TO %s",
566 					  _("role_specification"),
567 					  _("user_name"),
568 					  _("role_specification"),
569 					  _("user_name"),
570 					  _("where role_specification can be:"),
571 					  _("role_name"),
572 					  _("group_name"),
573 					  _("new_name"));
574 }
575 
576 static void
sql_help_ALTER_INDEX(PQExpBuffer buf)577 sql_help_ALTER_INDEX(PQExpBuffer buf)
578 {
579 	appendPQExpBuffer(buf,
580 					  "ALTER INDEX [ IF EXISTS ] %s RENAME TO %s\n"
581 					  "ALTER INDEX [ IF EXISTS ] %s SET TABLESPACE %s\n"
582 					  "ALTER INDEX %s ATTACH PARTITION %s\n"
583 					  "ALTER INDEX %s [ NO ] DEPENDS ON EXTENSION %s\n"
584 					  "ALTER INDEX [ IF EXISTS ] %s SET ( %s [= %s] [, ... ] )\n"
585 					  "ALTER INDEX [ IF EXISTS ] %s RESET ( %s [, ... ] )\n"
586 					  "ALTER INDEX [ IF EXISTS ] %s ALTER [ COLUMN ] %s\n"
587 					  "    SET STATISTICS %s\n"
588 					  "ALTER INDEX ALL IN TABLESPACE %s [ OWNED BY %s [, ... ] ]\n"
589 					  "    SET TABLESPACE %s [ NOWAIT ]",
590 					  _("name"),
591 					  _("new_name"),
592 					  _("name"),
593 					  _("tablespace_name"),
594 					  _("name"),
595 					  _("index_name"),
596 					  _("name"),
597 					  _("extension_name"),
598 					  _("name"),
599 					  _("storage_parameter"),
600 					  _("value"),
601 					  _("name"),
602 					  _("storage_parameter"),
603 					  _("name"),
604 					  _("column_number"),
605 					  _("integer"),
606 					  _("name"),
607 					  _("role_name"),
608 					  _("new_tablespace"));
609 }
610 
611 static void
sql_help_ALTER_LANGUAGE(PQExpBuffer buf)612 sql_help_ALTER_LANGUAGE(PQExpBuffer buf)
613 {
614 	appendPQExpBuffer(buf,
615 					  "ALTER [ PROCEDURAL ] LANGUAGE %s RENAME TO %s\n"
616 					  "ALTER [ PROCEDURAL ] LANGUAGE %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }",
617 					  _("name"),
618 					  _("new_name"),
619 					  _("name"),
620 					  _("new_owner"));
621 }
622 
623 static void
sql_help_ALTER_LARGE_OBJECT(PQExpBuffer buf)624 sql_help_ALTER_LARGE_OBJECT(PQExpBuffer buf)
625 {
626 	appendPQExpBuffer(buf,
627 					  "ALTER LARGE OBJECT %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }",
628 					  _("large_object_oid"),
629 					  _("new_owner"));
630 }
631 
632 static void
sql_help_ALTER_MATERIALIZED_VIEW(PQExpBuffer buf)633 sql_help_ALTER_MATERIALIZED_VIEW(PQExpBuffer buf)
634 {
635 	appendPQExpBuffer(buf,
636 					  "ALTER MATERIALIZED VIEW [ IF EXISTS ] %s\n"
637 					  "    %s [, ... ]\n"
638 					  "ALTER MATERIALIZED VIEW %s\n"
639 					  "    [ NO ] DEPENDS ON EXTENSION %s\n"
640 					  "ALTER MATERIALIZED VIEW [ IF EXISTS ] %s\n"
641 					  "    RENAME [ COLUMN ] %s TO %s\n"
642 					  "ALTER MATERIALIZED VIEW [ IF EXISTS ] %s\n"
643 					  "    RENAME TO %s\n"
644 					  "ALTER MATERIALIZED VIEW [ IF EXISTS ] %s\n"
645 					  "    SET SCHEMA %s\n"
646 					  "ALTER MATERIALIZED VIEW ALL IN TABLESPACE %s [ OWNED BY %s [, ... ] ]\n"
647 					  "    SET TABLESPACE %s [ NOWAIT ]\n"
648 					  "\n"
649 					  "%s\n"
650 					  "\n"
651 					  "    ALTER [ COLUMN ] %s SET STATISTICS %s\n"
652 					  "    ALTER [ COLUMN ] %s SET ( %s = %s [, ... ] )\n"
653 					  "    ALTER [ COLUMN ] %s RESET ( %s [, ... ] )\n"
654 					  "    ALTER [ COLUMN ] %s SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }\n"
655 					  "    ALTER [ COLUMN ] %s SET COMPRESSION %s\n"
656 					  "    CLUSTER ON %s\n"
657 					  "    SET WITHOUT CLUSTER\n"
658 					  "    SET ( %s [= %s] [, ... ] )\n"
659 					  "    RESET ( %s [, ... ] )\n"
660 					  "    OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }",
661 					  _("name"),
662 					  _("action"),
663 					  _("name"),
664 					  _("extension_name"),
665 					  _("name"),
666 					  _("column_name"),
667 					  _("new_column_name"),
668 					  _("name"),
669 					  _("new_name"),
670 					  _("name"),
671 					  _("new_schema"),
672 					  _("name"),
673 					  _("role_name"),
674 					  _("new_tablespace"),
675 					  _("where action is one of:"),
676 					  _("column_name"),
677 					  _("integer"),
678 					  _("column_name"),
679 					  _("attribute_option"),
680 					  _("value"),
681 					  _("column_name"),
682 					  _("attribute_option"),
683 					  _("column_name"),
684 					  _("column_name"),
685 					  _("compression_method"),
686 					  _("index_name"),
687 					  _("storage_parameter"),
688 					  _("value"),
689 					  _("storage_parameter"),
690 					  _("new_owner"));
691 }
692 
693 static void
sql_help_ALTER_OPERATOR(PQExpBuffer buf)694 sql_help_ALTER_OPERATOR(PQExpBuffer buf)
695 {
696 	appendPQExpBuffer(buf,
697 					  "ALTER OPERATOR %s ( { %s | NONE } , %s )\n"
698 					  "    OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
699 					  "\n"
700 					  "ALTER OPERATOR %s ( { %s | NONE } , %s )\n"
701 					  "    SET SCHEMA %s\n"
702 					  "\n"
703 					  "ALTER OPERATOR %s ( { %s | NONE } , %s )\n"
704 					  "    SET ( {  RESTRICT = { %s | NONE }\n"
705 					  "           | JOIN = { %s | NONE }\n"
706 					  "         } [, ... ] )",
707 					  _("name"),
708 					  _("left_type"),
709 					  _("right_type"),
710 					  _("new_owner"),
711 					  _("name"),
712 					  _("left_type"),
713 					  _("right_type"),
714 					  _("new_schema"),
715 					  _("name"),
716 					  _("left_type"),
717 					  _("right_type"),
718 					  _("res_proc"),
719 					  _("join_proc"));
720 }
721 
722 static void
sql_help_ALTER_OPERATOR_CLASS(PQExpBuffer buf)723 sql_help_ALTER_OPERATOR_CLASS(PQExpBuffer buf)
724 {
725 	appendPQExpBuffer(buf,
726 					  "ALTER OPERATOR CLASS %s USING %s\n"
727 					  "    RENAME TO %s\n"
728 					  "\n"
729 					  "ALTER OPERATOR CLASS %s USING %s\n"
730 					  "    OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
731 					  "\n"
732 					  "ALTER OPERATOR CLASS %s USING %s\n"
733 					  "    SET SCHEMA %s",
734 					  _("name"),
735 					  _("index_method"),
736 					  _("new_name"),
737 					  _("name"),
738 					  _("index_method"),
739 					  _("new_owner"),
740 					  _("name"),
741 					  _("index_method"),
742 					  _("new_schema"));
743 }
744 
745 static void
sql_help_ALTER_OPERATOR_FAMILY(PQExpBuffer buf)746 sql_help_ALTER_OPERATOR_FAMILY(PQExpBuffer buf)
747 {
748 	appendPQExpBuffer(buf,
749 					  "ALTER OPERATOR FAMILY %s USING %s ADD\n"
750 					  "  {  OPERATOR %s %s ( %s, %s )\n"
751 					  "              [ FOR SEARCH | FOR ORDER BY %s ]\n"
752 					  "   | FUNCTION %s [ ( %s [ , %s ] ) ]\n"
753 					  "              %s [ ( %s [, ...] ) ]\n"
754 					  "  } [, ... ]\n"
755 					  "\n"
756 					  "ALTER OPERATOR FAMILY %s USING %s DROP\n"
757 					  "  {  OPERATOR %s ( %s [ , %s ] )\n"
758 					  "   | FUNCTION %s ( %s [ , %s ] )\n"
759 					  "  } [, ... ]\n"
760 					  "\n"
761 					  "ALTER OPERATOR FAMILY %s USING %s\n"
762 					  "    RENAME TO %s\n"
763 					  "\n"
764 					  "ALTER OPERATOR FAMILY %s USING %s\n"
765 					  "    OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
766 					  "\n"
767 					  "ALTER OPERATOR FAMILY %s USING %s\n"
768 					  "    SET SCHEMA %s",
769 					  _("name"),
770 					  _("index_method"),
771 					  _("strategy_number"),
772 					  _("operator_name"),
773 					  _("op_type"),
774 					  _("op_type"),
775 					  _("sort_family_name"),
776 					  _("support_number"),
777 					  _("op_type"),
778 					  _("op_type"),
779 					  _("function_name"),
780 					  _("argument_type"),
781 					  _("name"),
782 					  _("index_method"),
783 					  _("strategy_number"),
784 					  _("op_type"),
785 					  _("op_type"),
786 					  _("support_number"),
787 					  _("op_type"),
788 					  _("op_type"),
789 					  _("name"),
790 					  _("index_method"),
791 					  _("new_name"),
792 					  _("name"),
793 					  _("index_method"),
794 					  _("new_owner"),
795 					  _("name"),
796 					  _("index_method"),
797 					  _("new_schema"));
798 }
799 
800 static void
sql_help_ALTER_POLICY(PQExpBuffer buf)801 sql_help_ALTER_POLICY(PQExpBuffer buf)
802 {
803 	appendPQExpBuffer(buf,
804 					  "ALTER POLICY %s ON %s RENAME TO %s\n"
805 					  "\n"
806 					  "ALTER POLICY %s ON %s\n"
807 					  "    [ TO { %s | PUBLIC | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] ]\n"
808 					  "    [ USING ( %s ) ]\n"
809 					  "    [ WITH CHECK ( %s ) ]",
810 					  _("name"),
811 					  _("table_name"),
812 					  _("new_name"),
813 					  _("name"),
814 					  _("table_name"),
815 					  _("role_name"),
816 					  _("using_expression"),
817 					  _("check_expression"));
818 }
819 
820 static void
sql_help_ALTER_PROCEDURE(PQExpBuffer buf)821 sql_help_ALTER_PROCEDURE(PQExpBuffer buf)
822 {
823 	appendPQExpBuffer(buf,
824 					  "ALTER PROCEDURE %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ]\n"
825 					  "    %s [ ... ] [ RESTRICT ]\n"
826 					  "ALTER PROCEDURE %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ]\n"
827 					  "    RENAME TO %s\n"
828 					  "ALTER PROCEDURE %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ]\n"
829 					  "    OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
830 					  "ALTER PROCEDURE %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ]\n"
831 					  "    SET SCHEMA %s\n"
832 					  "ALTER PROCEDURE %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ]\n"
833 					  "    [ NO ] DEPENDS ON EXTENSION %s\n"
834 					  "\n"
835 					  "%s\n"
836 					  "\n"
837 					  "    [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER\n"
838 					  "    SET %s { TO | = } { %s | DEFAULT }\n"
839 					  "    SET %s FROM CURRENT\n"
840 					  "    RESET %s\n"
841 					  "    RESET ALL",
842 					  _("name"),
843 					  _("argmode"),
844 					  _("argname"),
845 					  _("argtype"),
846 					  _("action"),
847 					  _("name"),
848 					  _("argmode"),
849 					  _("argname"),
850 					  _("argtype"),
851 					  _("new_name"),
852 					  _("name"),
853 					  _("argmode"),
854 					  _("argname"),
855 					  _("argtype"),
856 					  _("new_owner"),
857 					  _("name"),
858 					  _("argmode"),
859 					  _("argname"),
860 					  _("argtype"),
861 					  _("new_schema"),
862 					  _("name"),
863 					  _("argmode"),
864 					  _("argname"),
865 					  _("argtype"),
866 					  _("extension_name"),
867 					  _("where action is one of:"),
868 					  _("configuration_parameter"),
869 					  _("value"),
870 					  _("configuration_parameter"),
871 					  _("configuration_parameter"));
872 }
873 
874 static void
sql_help_ALTER_PUBLICATION(PQExpBuffer buf)875 sql_help_ALTER_PUBLICATION(PQExpBuffer buf)
876 {
877 	appendPQExpBuffer(buf,
878 					  "ALTER PUBLICATION %s ADD TABLE [ ONLY ] %s [ * ] [, ...]\n"
879 					  "ALTER PUBLICATION %s SET TABLE [ ONLY ] %s [ * ] [, ...]\n"
880 					  "ALTER PUBLICATION %s DROP TABLE [ ONLY ] %s [ * ] [, ...]\n"
881 					  "ALTER PUBLICATION %s SET ( %s [= %s] [, ... ] )\n"
882 					  "ALTER PUBLICATION %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
883 					  "ALTER PUBLICATION %s RENAME TO %s",
884 					  _("name"),
885 					  _("table_name"),
886 					  _("name"),
887 					  _("table_name"),
888 					  _("name"),
889 					  _("table_name"),
890 					  _("name"),
891 					  _("publication_parameter"),
892 					  _("value"),
893 					  _("name"),
894 					  _("new_owner"),
895 					  _("name"),
896 					  _("new_name"));
897 }
898 
899 static void
sql_help_ALTER_ROLE(PQExpBuffer buf)900 sql_help_ALTER_ROLE(PQExpBuffer buf)
901 {
902 	appendPQExpBuffer(buf,
903 					  "ALTER ROLE %s [ WITH ] %s [ ... ]\n"
904 					  "\n"
905 					  "%s\n"
906 					  "\n"
907 					  "      SUPERUSER | NOSUPERUSER\n"
908 					  "    | CREATEDB | NOCREATEDB\n"
909 					  "    | CREATEROLE | NOCREATEROLE\n"
910 					  "    | INHERIT | NOINHERIT\n"
911 					  "    | LOGIN | NOLOGIN\n"
912 					  "    | REPLICATION | NOREPLICATION\n"
913 					  "    | BYPASSRLS | NOBYPASSRLS\n"
914 					  "    | CONNECTION LIMIT %s\n"
915 					  "    | [ ENCRYPTED ] PASSWORD '%s' | PASSWORD NULL\n"
916 					  "    | VALID UNTIL '%s'\n"
917 					  "\n"
918 					  "ALTER ROLE %s RENAME TO %s\n"
919 					  "\n"
920 					  "ALTER ROLE { %s | ALL } [ IN DATABASE %s ] SET %s { TO | = } { %s | DEFAULT }\n"
921 					  "ALTER ROLE { %s | ALL } [ IN DATABASE %s ] SET %s FROM CURRENT\n"
922 					  "ALTER ROLE { %s | ALL } [ IN DATABASE %s ] RESET %s\n"
923 					  "ALTER ROLE { %s | ALL } [ IN DATABASE %s ] RESET ALL\n"
924 					  "\n"
925 					  "%s\n"
926 					  "\n"
927 					  "    %s\n"
928 					  "  | CURRENT_ROLE\n"
929 					  "  | CURRENT_USER\n"
930 					  "  | SESSION_USER",
931 					  _("role_specification"),
932 					  _("option"),
933 					  _("where option can be:"),
934 					  _("connlimit"),
935 					  _("password"),
936 					  _("timestamp"),
937 					  _("name"),
938 					  _("new_name"),
939 					  _("role_specification"),
940 					  _("database_name"),
941 					  _("configuration_parameter"),
942 					  _("value"),
943 					  _("role_specification"),
944 					  _("database_name"),
945 					  _("configuration_parameter"),
946 					  _("role_specification"),
947 					  _("database_name"),
948 					  _("configuration_parameter"),
949 					  _("role_specification"),
950 					  _("database_name"),
951 					  _("where role_specification can be:"),
952 					  _("role_name"));
953 }
954 
955 static void
sql_help_ALTER_ROUTINE(PQExpBuffer buf)956 sql_help_ALTER_ROUTINE(PQExpBuffer buf)
957 {
958 	appendPQExpBuffer(buf,
959 					  "ALTER ROUTINE %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ]\n"
960 					  "    %s [ ... ] [ RESTRICT ]\n"
961 					  "ALTER ROUTINE %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ]\n"
962 					  "    RENAME TO %s\n"
963 					  "ALTER ROUTINE %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ]\n"
964 					  "    OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
965 					  "ALTER ROUTINE %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ]\n"
966 					  "    SET SCHEMA %s\n"
967 					  "ALTER ROUTINE %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ]\n"
968 					  "    [ NO ] DEPENDS ON EXTENSION %s\n"
969 					  "\n"
970 					  "%s\n"
971 					  "\n"
972 					  "    IMMUTABLE | STABLE | VOLATILE\n"
973 					  "    [ NOT ] LEAKPROOF\n"
974 					  "    [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER\n"
975 					  "    PARALLEL { UNSAFE | RESTRICTED | SAFE }\n"
976 					  "    COST %s\n"
977 					  "    ROWS %s\n"
978 					  "    SET %s { TO | = } { %s | DEFAULT }\n"
979 					  "    SET %s FROM CURRENT\n"
980 					  "    RESET %s\n"
981 					  "    RESET ALL",
982 					  _("name"),
983 					  _("argmode"),
984 					  _("argname"),
985 					  _("argtype"),
986 					  _("action"),
987 					  _("name"),
988 					  _("argmode"),
989 					  _("argname"),
990 					  _("argtype"),
991 					  _("new_name"),
992 					  _("name"),
993 					  _("argmode"),
994 					  _("argname"),
995 					  _("argtype"),
996 					  _("new_owner"),
997 					  _("name"),
998 					  _("argmode"),
999 					  _("argname"),
1000 					  _("argtype"),
1001 					  _("new_schema"),
1002 					  _("name"),
1003 					  _("argmode"),
1004 					  _("argname"),
1005 					  _("argtype"),
1006 					  _("extension_name"),
1007 					  _("where action is one of:"),
1008 					  _("execution_cost"),
1009 					  _("result_rows"),
1010 					  _("configuration_parameter"),
1011 					  _("value"),
1012 					  _("configuration_parameter"),
1013 					  _("configuration_parameter"));
1014 }
1015 
1016 static void
sql_help_ALTER_RULE(PQExpBuffer buf)1017 sql_help_ALTER_RULE(PQExpBuffer buf)
1018 {
1019 	appendPQExpBuffer(buf,
1020 					  "ALTER RULE %s ON %s RENAME TO %s",
1021 					  _("name"),
1022 					  _("table_name"),
1023 					  _("new_name"));
1024 }
1025 
1026 static void
sql_help_ALTER_SCHEMA(PQExpBuffer buf)1027 sql_help_ALTER_SCHEMA(PQExpBuffer buf)
1028 {
1029 	appendPQExpBuffer(buf,
1030 					  "ALTER SCHEMA %s RENAME TO %s\n"
1031 					  "ALTER SCHEMA %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }",
1032 					  _("name"),
1033 					  _("new_name"),
1034 					  _("name"),
1035 					  _("new_owner"));
1036 }
1037 
1038 static void
sql_help_ALTER_SEQUENCE(PQExpBuffer buf)1039 sql_help_ALTER_SEQUENCE(PQExpBuffer buf)
1040 {
1041 	appendPQExpBuffer(buf,
1042 					  "ALTER SEQUENCE [ IF EXISTS ] %s\n"
1043 					  "    [ AS %s ]\n"
1044 					  "    [ INCREMENT [ BY ] %s ]\n"
1045 					  "    [ MINVALUE %s | NO MINVALUE ] [ MAXVALUE %s | NO MAXVALUE ]\n"
1046 					  "    [ START [ WITH ] %s ]\n"
1047 					  "    [ RESTART [ [ WITH ] %s ] ]\n"
1048 					  "    [ CACHE %s ] [ [ NO ] CYCLE ]\n"
1049 					  "    [ OWNED BY { %s.%s | NONE } ]\n"
1050 					  "ALTER SEQUENCE [ IF EXISTS ] %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
1051 					  "ALTER SEQUENCE [ IF EXISTS ] %s RENAME TO %s\n"
1052 					  "ALTER SEQUENCE [ IF EXISTS ] %s SET SCHEMA %s",
1053 					  _("name"),
1054 					  _("data_type"),
1055 					  _("increment"),
1056 					  _("minvalue"),
1057 					  _("maxvalue"),
1058 					  _("start"),
1059 					  _("restart"),
1060 					  _("cache"),
1061 					  _("table_name"),
1062 					  _("column_name"),
1063 					  _("name"),
1064 					  _("new_owner"),
1065 					  _("name"),
1066 					  _("new_name"),
1067 					  _("name"),
1068 					  _("new_schema"));
1069 }
1070 
1071 static void
sql_help_ALTER_SERVER(PQExpBuffer buf)1072 sql_help_ALTER_SERVER(PQExpBuffer buf)
1073 {
1074 	appendPQExpBuffer(buf,
1075 					  "ALTER SERVER %s [ VERSION '%s' ]\n"
1076 					  "    [ OPTIONS ( [ ADD | SET | DROP ] %s ['%s'] [, ... ] ) ]\n"
1077 					  "ALTER SERVER %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
1078 					  "ALTER SERVER %s RENAME TO %s",
1079 					  _("name"),
1080 					  _("new_version"),
1081 					  _("option"),
1082 					  _("value"),
1083 					  _("name"),
1084 					  _("new_owner"),
1085 					  _("name"),
1086 					  _("new_name"));
1087 }
1088 
1089 static void
sql_help_ALTER_STATISTICS(PQExpBuffer buf)1090 sql_help_ALTER_STATISTICS(PQExpBuffer buf)
1091 {
1092 	appendPQExpBuffer(buf,
1093 					  "ALTER STATISTICS %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
1094 					  "ALTER STATISTICS %s RENAME TO %s\n"
1095 					  "ALTER STATISTICS %s SET SCHEMA %s\n"
1096 					  "ALTER STATISTICS %s SET STATISTICS %s",
1097 					  _("name"),
1098 					  _("new_owner"),
1099 					  _("name"),
1100 					  _("new_name"),
1101 					  _("name"),
1102 					  _("new_schema"),
1103 					  _("name"),
1104 					  _("new_target"));
1105 }
1106 
1107 static void
sql_help_ALTER_SUBSCRIPTION(PQExpBuffer buf)1108 sql_help_ALTER_SUBSCRIPTION(PQExpBuffer buf)
1109 {
1110 	appendPQExpBuffer(buf,
1111 					  "ALTER SUBSCRIPTION %s CONNECTION '%s'\n"
1112 					  "ALTER SUBSCRIPTION %s SET PUBLICATION %s [, ...] [ WITH ( %s [= %s] [, ... ] ) ]\n"
1113 					  "ALTER SUBSCRIPTION %s ADD PUBLICATION %s [, ...] [ WITH ( %s [= %s] [, ... ] ) ]\n"
1114 					  "ALTER SUBSCRIPTION %s DROP PUBLICATION %s [, ...] [ WITH ( %s [= %s] [, ... ] ) ]\n"
1115 					  "ALTER SUBSCRIPTION %s REFRESH PUBLICATION [ WITH ( %s [= %s] [, ... ] ) ]\n"
1116 					  "ALTER SUBSCRIPTION %s ENABLE\n"
1117 					  "ALTER SUBSCRIPTION %s DISABLE\n"
1118 					  "ALTER SUBSCRIPTION %s SET ( %s [= %s] [, ... ] )\n"
1119 					  "ALTER SUBSCRIPTION %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
1120 					  "ALTER SUBSCRIPTION %s RENAME TO %s",
1121 					  _("name"),
1122 					  _("conninfo"),
1123 					  _("name"),
1124 					  _("publication_name"),
1125 					  _("publication_option"),
1126 					  _("value"),
1127 					  _("name"),
1128 					  _("publication_name"),
1129 					  _("publication_option"),
1130 					  _("value"),
1131 					  _("name"),
1132 					  _("publication_name"),
1133 					  _("publication_option"),
1134 					  _("value"),
1135 					  _("name"),
1136 					  _("refresh_option"),
1137 					  _("value"),
1138 					  _("name"),
1139 					  _("name"),
1140 					  _("name"),
1141 					  _("subscription_parameter"),
1142 					  _("value"),
1143 					  _("name"),
1144 					  _("new_owner"),
1145 					  _("name"),
1146 					  _("new_name"));
1147 }
1148 
1149 static void
sql_help_ALTER_SYSTEM(PQExpBuffer buf)1150 sql_help_ALTER_SYSTEM(PQExpBuffer buf)
1151 {
1152 	appendPQExpBuffer(buf,
1153 					  "ALTER SYSTEM SET %s { TO | = } { %s | '%s' | DEFAULT }\n"
1154 					  "\n"
1155 					  "ALTER SYSTEM RESET %s\n"
1156 					  "ALTER SYSTEM RESET ALL",
1157 					  _("configuration_parameter"),
1158 					  _("value"),
1159 					  _("value"),
1160 					  _("configuration_parameter"));
1161 }
1162 
1163 static void
sql_help_ALTER_TABLE(PQExpBuffer buf)1164 sql_help_ALTER_TABLE(PQExpBuffer buf)
1165 {
1166 	appendPQExpBuffer(buf,
1167 					  "ALTER TABLE [ IF EXISTS ] [ ONLY ] %s [ * ]\n"
1168 					  "    %s [, ... ]\n"
1169 					  "ALTER TABLE [ IF EXISTS ] [ ONLY ] %s [ * ]\n"
1170 					  "    RENAME [ COLUMN ] %s TO %s\n"
1171 					  "ALTER TABLE [ IF EXISTS ] [ ONLY ] %s [ * ]\n"
1172 					  "    RENAME CONSTRAINT %s TO %s\n"
1173 					  "ALTER TABLE [ IF EXISTS ] %s\n"
1174 					  "    RENAME TO %s\n"
1175 					  "ALTER TABLE [ IF EXISTS ] %s\n"
1176 					  "    SET SCHEMA %s\n"
1177 					  "ALTER TABLE ALL IN TABLESPACE %s [ OWNED BY %s [, ... ] ]\n"
1178 					  "    SET TABLESPACE %s [ NOWAIT ]\n"
1179 					  "ALTER TABLE [ IF EXISTS ] %s\n"
1180 					  "    ATTACH PARTITION %s { FOR VALUES %s | DEFAULT }\n"
1181 					  "ALTER TABLE [ IF EXISTS ] %s\n"
1182 					  "    DETACH PARTITION %s [ CONCURRENTLY | FINALIZE ]\n"
1183 					  "\n"
1184 					  "%s\n"
1185 					  "\n"
1186 					  "    ADD [ COLUMN ] [ IF NOT EXISTS ] %s %s [ COLLATE %s ] [ %s [ ... ] ]\n"
1187 					  "    DROP [ COLUMN ] [ IF EXISTS ] %s [ RESTRICT | CASCADE ]\n"
1188 					  "    ALTER [ COLUMN ] %s [ SET DATA ] TYPE %s [ COLLATE %s ] [ USING %s ]\n"
1189 					  "    ALTER [ COLUMN ] %s SET DEFAULT %s\n"
1190 					  "    ALTER [ COLUMN ] %s DROP DEFAULT\n"
1191 					  "    ALTER [ COLUMN ] %s { SET | DROP } NOT NULL\n"
1192 					  "    ALTER [ COLUMN ] %s DROP EXPRESSION [ IF EXISTS ]\n"
1193 					  "    ALTER [ COLUMN ] %s ADD GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( %s ) ]\n"
1194 					  "    ALTER [ COLUMN ] %s { SET GENERATED { ALWAYS | BY DEFAULT } | SET %s | RESTART [ [ WITH ] %s ] } [...]\n"
1195 					  "    ALTER [ COLUMN ] %s DROP IDENTITY [ IF EXISTS ]\n"
1196 					  "    ALTER [ COLUMN ] %s SET STATISTICS %s\n"
1197 					  "    ALTER [ COLUMN ] %s SET ( %s = %s [, ... ] )\n"
1198 					  "    ALTER [ COLUMN ] %s RESET ( %s [, ... ] )\n"
1199 					  "    ALTER [ COLUMN ] %s SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }\n"
1200 					  "    ALTER [ COLUMN ] %s SET COMPRESSION %s\n"
1201 					  "    ADD %s [ NOT VALID ]\n"
1202 					  "    ADD %s\n"
1203 					  "    ALTER CONSTRAINT %s [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]\n"
1204 					  "    VALIDATE CONSTRAINT %s\n"
1205 					  "    DROP CONSTRAINT [ IF EXISTS ]  %s [ RESTRICT | CASCADE ]\n"
1206 					  "    DISABLE TRIGGER [ %s | ALL | USER ]\n"
1207 					  "    ENABLE TRIGGER [ %s | ALL | USER ]\n"
1208 					  "    ENABLE REPLICA TRIGGER %s\n"
1209 					  "    ENABLE ALWAYS TRIGGER %s\n"
1210 					  "    DISABLE RULE %s\n"
1211 					  "    ENABLE RULE %s\n"
1212 					  "    ENABLE REPLICA RULE %s\n"
1213 					  "    ENABLE ALWAYS RULE %s\n"
1214 					  "    DISABLE ROW LEVEL SECURITY\n"
1215 					  "    ENABLE ROW LEVEL SECURITY\n"
1216 					  "    FORCE ROW LEVEL SECURITY\n"
1217 					  "    NO FORCE ROW LEVEL SECURITY\n"
1218 					  "    CLUSTER ON %s\n"
1219 					  "    SET WITHOUT CLUSTER\n"
1220 					  "    SET WITHOUT OIDS\n"
1221 					  "    SET TABLESPACE %s\n"
1222 					  "    SET { LOGGED | UNLOGGED }\n"
1223 					  "    SET ( %s [= %s] [, ... ] )\n"
1224 					  "    RESET ( %s [, ... ] )\n"
1225 					  "    INHERIT %s\n"
1226 					  "    NO INHERIT %s\n"
1227 					  "    OF %s\n"
1228 					  "    NOT OF\n"
1229 					  "    OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
1230 					  "    REPLICA IDENTITY { DEFAULT | USING INDEX %s | FULL | NOTHING }\n"
1231 					  "\n"
1232 					  "%s\n"
1233 					  "\n"
1234 					  "IN ( %s [, ...] ) |\n"
1235 					  "FROM ( { %s | MINVALUE | MAXVALUE } [, ...] )\n"
1236 					  "  TO ( { %s | MINVALUE | MAXVALUE } [, ...] ) |\n"
1237 					  "WITH ( MODULUS %s, REMAINDER %s )\n"
1238 					  "\n"
1239 					  "%s\n"
1240 					  "\n"
1241 					  "[ CONSTRAINT %s ]\n"
1242 					  "{ NOT NULL |\n"
1243 					  "  NULL |\n"
1244 					  "  CHECK ( %s ) [ NO INHERIT ] |\n"
1245 					  "  DEFAULT %s |\n"
1246 					  "  GENERATED ALWAYS AS ( %s ) STORED |\n"
1247 					  "  GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( %s ) ] |\n"
1248 					  "  UNIQUE %s |\n"
1249 					  "  PRIMARY KEY %s |\n"
1250 					  "  REFERENCES %s [ ( %s ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]\n"
1251 					  "    [ ON DELETE %s ] [ ON UPDATE %s ] }\n"
1252 					  "[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]\n"
1253 					  "\n"
1254 					  "%s\n"
1255 					  "\n"
1256 					  "[ CONSTRAINT %s ]\n"
1257 					  "{ CHECK ( %s ) [ NO INHERIT ] |\n"
1258 					  "  UNIQUE ( %s [, ... ] ) %s |\n"
1259 					  "  PRIMARY KEY ( %s [, ... ] ) %s |\n"
1260 					  "  EXCLUDE [ USING %s ] ( %s WITH %s [, ... ] ) %s [ WHERE ( %s ) ] |\n"
1261 					  "  FOREIGN KEY ( %s [, ... ] ) REFERENCES %s [ ( %s [, ... ] ) ]\n"
1262 					  "    [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE %s ] [ ON UPDATE %s ] }\n"
1263 					  "[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]\n"
1264 					  "\n"
1265 					  "%s\n"
1266 					  "\n"
1267 					  "    [ CONSTRAINT %s ]\n"
1268 					  "    { UNIQUE | PRIMARY KEY } USING INDEX %s\n"
1269 					  "    [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]\n"
1270 					  "\n"
1271 					  "%s\n"
1272 					  "\n"
1273 					  "[ INCLUDE ( %s [, ... ] ) ]\n"
1274 					  "[ WITH ( %s [= %s] [, ... ] ) ]\n"
1275 					  "[ USING INDEX TABLESPACE %s ]\n"
1276 					  "\n"
1277 					  "%s\n"
1278 					  "\n"
1279 					  "{ %s | ( %s ) } [ %s ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ]",
1280 					  _("name"),
1281 					  _("action"),
1282 					  _("name"),
1283 					  _("column_name"),
1284 					  _("new_column_name"),
1285 					  _("name"),
1286 					  _("constraint_name"),
1287 					  _("new_constraint_name"),
1288 					  _("name"),
1289 					  _("new_name"),
1290 					  _("name"),
1291 					  _("new_schema"),
1292 					  _("name"),
1293 					  _("role_name"),
1294 					  _("new_tablespace"),
1295 					  _("name"),
1296 					  _("partition_name"),
1297 					  _("partition_bound_spec"),
1298 					  _("name"),
1299 					  _("partition_name"),
1300 					  _("where action is one of:"),
1301 					  _("column_name"),
1302 					  _("data_type"),
1303 					  _("collation"),
1304 					  _("column_constraint"),
1305 					  _("column_name"),
1306 					  _("column_name"),
1307 					  _("data_type"),
1308 					  _("collation"),
1309 					  _("expression"),
1310 					  _("column_name"),
1311 					  _("expression"),
1312 					  _("column_name"),
1313 					  _("column_name"),
1314 					  _("column_name"),
1315 					  _("column_name"),
1316 					  _("sequence_options"),
1317 					  _("column_name"),
1318 					  _("sequence_option"),
1319 					  _("restart"),
1320 					  _("column_name"),
1321 					  _("column_name"),
1322 					  _("integer"),
1323 					  _("column_name"),
1324 					  _("attribute_option"),
1325 					  _("value"),
1326 					  _("column_name"),
1327 					  _("attribute_option"),
1328 					  _("column_name"),
1329 					  _("column_name"),
1330 					  _("compression_method"),
1331 					  _("table_constraint"),
1332 					  _("table_constraint_using_index"),
1333 					  _("constraint_name"),
1334 					  _("constraint_name"),
1335 					  _("constraint_name"),
1336 					  _("trigger_name"),
1337 					  _("trigger_name"),
1338 					  _("trigger_name"),
1339 					  _("trigger_name"),
1340 					  _("rewrite_rule_name"),
1341 					  _("rewrite_rule_name"),
1342 					  _("rewrite_rule_name"),
1343 					  _("rewrite_rule_name"),
1344 					  _("index_name"),
1345 					  _("new_tablespace"),
1346 					  _("storage_parameter"),
1347 					  _("value"),
1348 					  _("storage_parameter"),
1349 					  _("parent_table"),
1350 					  _("parent_table"),
1351 					  _("type_name"),
1352 					  _("new_owner"),
1353 					  _("index_name"),
1354 					  _("and partition_bound_spec is:"),
1355 					  _("partition_bound_expr"),
1356 					  _("partition_bound_expr"),
1357 					  _("partition_bound_expr"),
1358 					  _("numeric_literal"),
1359 					  _("numeric_literal"),
1360 					  _("and column_constraint is:"),
1361 					  _("constraint_name"),
1362 					  _("expression"),
1363 					  _("default_expr"),
1364 					  _("generation_expr"),
1365 					  _("sequence_options"),
1366 					  _("index_parameters"),
1367 					  _("index_parameters"),
1368 					  _("reftable"),
1369 					  _("refcolumn"),
1370 					  _("referential_action"),
1371 					  _("referential_action"),
1372 					  _("and table_constraint is:"),
1373 					  _("constraint_name"),
1374 					  _("expression"),
1375 					  _("column_name"),
1376 					  _("index_parameters"),
1377 					  _("column_name"),
1378 					  _("index_parameters"),
1379 					  _("index_method"),
1380 					  _("exclude_element"),
1381 					  _("operator"),
1382 					  _("index_parameters"),
1383 					  _("predicate"),
1384 					  _("column_name"),
1385 					  _("reftable"),
1386 					  _("refcolumn"),
1387 					  _("referential_action"),
1388 					  _("referential_action"),
1389 					  _("and table_constraint_using_index is:"),
1390 					  _("constraint_name"),
1391 					  _("index_name"),
1392 					  _("index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:"),
1393 					  _("column_name"),
1394 					  _("storage_parameter"),
1395 					  _("value"),
1396 					  _("tablespace_name"),
1397 					  _("exclude_element in an EXCLUDE constraint is:"),
1398 					  _("column_name"),
1399 					  _("expression"),
1400 					  _("opclass"));
1401 }
1402 
1403 static void
sql_help_ALTER_TABLESPACE(PQExpBuffer buf)1404 sql_help_ALTER_TABLESPACE(PQExpBuffer buf)
1405 {
1406 	appendPQExpBuffer(buf,
1407 					  "ALTER TABLESPACE %s RENAME TO %s\n"
1408 					  "ALTER TABLESPACE %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
1409 					  "ALTER TABLESPACE %s SET ( %s = %s [, ... ] )\n"
1410 					  "ALTER TABLESPACE %s RESET ( %s [, ... ] )",
1411 					  _("name"),
1412 					  _("new_name"),
1413 					  _("name"),
1414 					  _("new_owner"),
1415 					  _("name"),
1416 					  _("tablespace_option"),
1417 					  _("value"),
1418 					  _("name"),
1419 					  _("tablespace_option"));
1420 }
1421 
1422 static void
sql_help_ALTER_TEXT_SEARCH_CONFIGURATION(PQExpBuffer buf)1423 sql_help_ALTER_TEXT_SEARCH_CONFIGURATION(PQExpBuffer buf)
1424 {
1425 	appendPQExpBuffer(buf,
1426 					  "ALTER TEXT SEARCH CONFIGURATION %s\n"
1427 					  "    ADD MAPPING FOR %s [, ... ] WITH %s [, ... ]\n"
1428 					  "ALTER TEXT SEARCH CONFIGURATION %s\n"
1429 					  "    ALTER MAPPING FOR %s [, ... ] WITH %s [, ... ]\n"
1430 					  "ALTER TEXT SEARCH CONFIGURATION %s\n"
1431 					  "    ALTER MAPPING REPLACE %s WITH %s\n"
1432 					  "ALTER TEXT SEARCH CONFIGURATION %s\n"
1433 					  "    ALTER MAPPING FOR %s [, ... ] REPLACE %s WITH %s\n"
1434 					  "ALTER TEXT SEARCH CONFIGURATION %s\n"
1435 					  "    DROP MAPPING [ IF EXISTS ] FOR %s [, ... ]\n"
1436 					  "ALTER TEXT SEARCH CONFIGURATION %s RENAME TO %s\n"
1437 					  "ALTER TEXT SEARCH CONFIGURATION %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
1438 					  "ALTER TEXT SEARCH CONFIGURATION %s SET SCHEMA %s",
1439 					  _("name"),
1440 					  _("token_type"),
1441 					  _("dictionary_name"),
1442 					  _("name"),
1443 					  _("token_type"),
1444 					  _("dictionary_name"),
1445 					  _("name"),
1446 					  _("old_dictionary"),
1447 					  _("new_dictionary"),
1448 					  _("name"),
1449 					  _("token_type"),
1450 					  _("old_dictionary"),
1451 					  _("new_dictionary"),
1452 					  _("name"),
1453 					  _("token_type"),
1454 					  _("name"),
1455 					  _("new_name"),
1456 					  _("name"),
1457 					  _("new_owner"),
1458 					  _("name"),
1459 					  _("new_schema"));
1460 }
1461 
1462 static void
sql_help_ALTER_TEXT_SEARCH_DICTIONARY(PQExpBuffer buf)1463 sql_help_ALTER_TEXT_SEARCH_DICTIONARY(PQExpBuffer buf)
1464 {
1465 	appendPQExpBuffer(buf,
1466 					  "ALTER TEXT SEARCH DICTIONARY %s (\n"
1467 					  "    %s [ = %s ] [, ... ]\n"
1468 					  ")\n"
1469 					  "ALTER TEXT SEARCH DICTIONARY %s RENAME TO %s\n"
1470 					  "ALTER TEXT SEARCH DICTIONARY %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
1471 					  "ALTER TEXT SEARCH DICTIONARY %s SET SCHEMA %s",
1472 					  _("name"),
1473 					  _("option"),
1474 					  _("value"),
1475 					  _("name"),
1476 					  _("new_name"),
1477 					  _("name"),
1478 					  _("new_owner"),
1479 					  _("name"),
1480 					  _("new_schema"));
1481 }
1482 
1483 static void
sql_help_ALTER_TEXT_SEARCH_PARSER(PQExpBuffer buf)1484 sql_help_ALTER_TEXT_SEARCH_PARSER(PQExpBuffer buf)
1485 {
1486 	appendPQExpBuffer(buf,
1487 					  "ALTER TEXT SEARCH PARSER %s RENAME TO %s\n"
1488 					  "ALTER TEXT SEARCH PARSER %s SET SCHEMA %s",
1489 					  _("name"),
1490 					  _("new_name"),
1491 					  _("name"),
1492 					  _("new_schema"));
1493 }
1494 
1495 static void
sql_help_ALTER_TEXT_SEARCH_TEMPLATE(PQExpBuffer buf)1496 sql_help_ALTER_TEXT_SEARCH_TEMPLATE(PQExpBuffer buf)
1497 {
1498 	appendPQExpBuffer(buf,
1499 					  "ALTER TEXT SEARCH TEMPLATE %s RENAME TO %s\n"
1500 					  "ALTER TEXT SEARCH TEMPLATE %s SET SCHEMA %s",
1501 					  _("name"),
1502 					  _("new_name"),
1503 					  _("name"),
1504 					  _("new_schema"));
1505 }
1506 
1507 static void
sql_help_ALTER_TRIGGER(PQExpBuffer buf)1508 sql_help_ALTER_TRIGGER(PQExpBuffer buf)
1509 {
1510 	appendPQExpBuffer(buf,
1511 					  "ALTER TRIGGER %s ON %s RENAME TO %s\n"
1512 					  "ALTER TRIGGER %s ON %s [ NO ] DEPENDS ON EXTENSION %s",
1513 					  _("name"),
1514 					  _("table_name"),
1515 					  _("new_name"),
1516 					  _("name"),
1517 					  _("table_name"),
1518 					  _("extension_name"));
1519 }
1520 
1521 static void
sql_help_ALTER_TYPE(PQExpBuffer buf)1522 sql_help_ALTER_TYPE(PQExpBuffer buf)
1523 {
1524 	appendPQExpBuffer(buf,
1525 					  "ALTER TYPE %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
1526 					  "ALTER TYPE %s RENAME TO %s\n"
1527 					  "ALTER TYPE %s SET SCHEMA %s\n"
1528 					  "ALTER TYPE %s RENAME ATTRIBUTE %s TO %s [ CASCADE | RESTRICT ]\n"
1529 					  "ALTER TYPE %s %s [, ... ]\n"
1530 					  "ALTER TYPE %s ADD VALUE [ IF NOT EXISTS ] %s [ { BEFORE | AFTER } %s ]\n"
1531 					  "ALTER TYPE %s RENAME VALUE %s TO %s\n"
1532 					  "ALTER TYPE %s SET ( %s = %s [, ... ] )\n"
1533 					  "\n"
1534 					  "%s\n"
1535 					  "\n"
1536 					  "    ADD ATTRIBUTE %s %s [ COLLATE %s ] [ CASCADE | RESTRICT ]\n"
1537 					  "    DROP ATTRIBUTE [ IF EXISTS ] %s [ CASCADE | RESTRICT ]\n"
1538 					  "    ALTER ATTRIBUTE %s [ SET DATA ] TYPE %s [ COLLATE %s ] [ CASCADE | RESTRICT ]",
1539 					  _("name"),
1540 					  _("new_owner"),
1541 					  _("name"),
1542 					  _("new_name"),
1543 					  _("name"),
1544 					  _("new_schema"),
1545 					  _("name"),
1546 					  _("attribute_name"),
1547 					  _("new_attribute_name"),
1548 					  _("name"),
1549 					  _("action"),
1550 					  _("name"),
1551 					  _("new_enum_value"),
1552 					  _("neighbor_enum_value"),
1553 					  _("name"),
1554 					  _("existing_enum_value"),
1555 					  _("new_enum_value"),
1556 					  _("name"),
1557 					  _("property"),
1558 					  _("value"),
1559 					  _("where action is one of:"),
1560 					  _("attribute_name"),
1561 					  _("data_type"),
1562 					  _("collation"),
1563 					  _("attribute_name"),
1564 					  _("attribute_name"),
1565 					  _("data_type"),
1566 					  _("collation"));
1567 }
1568 
1569 static void
sql_help_ALTER_USER(PQExpBuffer buf)1570 sql_help_ALTER_USER(PQExpBuffer buf)
1571 {
1572 	appendPQExpBuffer(buf,
1573 					  "ALTER USER %s [ WITH ] %s [ ... ]\n"
1574 					  "\n"
1575 					  "%s\n"
1576 					  "\n"
1577 					  "      SUPERUSER | NOSUPERUSER\n"
1578 					  "    | CREATEDB | NOCREATEDB\n"
1579 					  "    | CREATEROLE | NOCREATEROLE\n"
1580 					  "    | INHERIT | NOINHERIT\n"
1581 					  "    | LOGIN | NOLOGIN\n"
1582 					  "    | REPLICATION | NOREPLICATION\n"
1583 					  "    | BYPASSRLS | NOBYPASSRLS\n"
1584 					  "    | CONNECTION LIMIT %s\n"
1585 					  "    | [ ENCRYPTED ] PASSWORD '%s' | PASSWORD NULL\n"
1586 					  "    | VALID UNTIL '%s'\n"
1587 					  "\n"
1588 					  "ALTER USER %s RENAME TO %s\n"
1589 					  "\n"
1590 					  "ALTER USER { %s | ALL } [ IN DATABASE %s ] SET %s { TO | = } { %s | DEFAULT }\n"
1591 					  "ALTER USER { %s | ALL } [ IN DATABASE %s ] SET %s FROM CURRENT\n"
1592 					  "ALTER USER { %s | ALL } [ IN DATABASE %s ] RESET %s\n"
1593 					  "ALTER USER { %s | ALL } [ IN DATABASE %s ] RESET ALL\n"
1594 					  "\n"
1595 					  "%s\n"
1596 					  "\n"
1597 					  "    %s\n"
1598 					  "  | CURRENT_ROLE\n"
1599 					  "  | CURRENT_USER\n"
1600 					  "  | SESSION_USER",
1601 					  _("role_specification"),
1602 					  _("option"),
1603 					  _("where option can be:"),
1604 					  _("connlimit"),
1605 					  _("password"),
1606 					  _("timestamp"),
1607 					  _("name"),
1608 					  _("new_name"),
1609 					  _("role_specification"),
1610 					  _("database_name"),
1611 					  _("configuration_parameter"),
1612 					  _("value"),
1613 					  _("role_specification"),
1614 					  _("database_name"),
1615 					  _("configuration_parameter"),
1616 					  _("role_specification"),
1617 					  _("database_name"),
1618 					  _("configuration_parameter"),
1619 					  _("role_specification"),
1620 					  _("database_name"),
1621 					  _("where role_specification can be:"),
1622 					  _("role_name"));
1623 }
1624 
1625 static void
sql_help_ALTER_USER_MAPPING(PQExpBuffer buf)1626 sql_help_ALTER_USER_MAPPING(PQExpBuffer buf)
1627 {
1628 	appendPQExpBuffer(buf,
1629 					  "ALTER USER MAPPING FOR { %s | USER | CURRENT_ROLE | CURRENT_USER | SESSION_USER | PUBLIC }\n"
1630 					  "    SERVER %s\n"
1631 					  "    OPTIONS ( [ ADD | SET | DROP ] %s ['%s'] [, ... ] )",
1632 					  _("user_name"),
1633 					  _("server_name"),
1634 					  _("option"),
1635 					  _("value"));
1636 }
1637 
1638 static void
sql_help_ALTER_VIEW(PQExpBuffer buf)1639 sql_help_ALTER_VIEW(PQExpBuffer buf)
1640 {
1641 	appendPQExpBuffer(buf,
1642 					  "ALTER VIEW [ IF EXISTS ] %s ALTER [ COLUMN ] %s SET DEFAULT %s\n"
1643 					  "ALTER VIEW [ IF EXISTS ] %s ALTER [ COLUMN ] %s DROP DEFAULT\n"
1644 					  "ALTER VIEW [ IF EXISTS ] %s OWNER TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }\n"
1645 					  "ALTER VIEW [ IF EXISTS ] %s RENAME [ COLUMN ] %s TO %s\n"
1646 					  "ALTER VIEW [ IF EXISTS ] %s RENAME TO %s\n"
1647 					  "ALTER VIEW [ IF EXISTS ] %s SET SCHEMA %s\n"
1648 					  "ALTER VIEW [ IF EXISTS ] %s SET ( %s [= %s] [, ... ] )\n"
1649 					  "ALTER VIEW [ IF EXISTS ] %s RESET ( %s [, ... ] )",
1650 					  _("name"),
1651 					  _("column_name"),
1652 					  _("expression"),
1653 					  _("name"),
1654 					  _("column_name"),
1655 					  _("name"),
1656 					  _("new_owner"),
1657 					  _("name"),
1658 					  _("column_name"),
1659 					  _("new_column_name"),
1660 					  _("name"),
1661 					  _("new_name"),
1662 					  _("name"),
1663 					  _("new_schema"),
1664 					  _("name"),
1665 					  _("view_option_name"),
1666 					  _("view_option_value"),
1667 					  _("name"),
1668 					  _("view_option_name"));
1669 }
1670 
1671 static void
sql_help_ANALYZE(PQExpBuffer buf)1672 sql_help_ANALYZE(PQExpBuffer buf)
1673 {
1674 	appendPQExpBuffer(buf,
1675 					  "ANALYZE [ ( %s [, ...] ) ] [ %s [, ...] ]\n"
1676 					  "ANALYZE [ VERBOSE ] [ %s [, ...] ]\n"
1677 					  "\n"
1678 					  "%s\n"
1679 					  "\n"
1680 					  "    VERBOSE [ %s ]\n"
1681 					  "    SKIP_LOCKED [ %s ]\n"
1682 					  "\n"
1683 					  "%s\n"
1684 					  "\n"
1685 					  "    %s [ ( %s [, ...] ) ]",
1686 					  _("option"),
1687 					  _("table_and_columns"),
1688 					  _("table_and_columns"),
1689 					  _("where option can be one of:"),
1690 					  _("boolean"),
1691 					  _("boolean"),
1692 					  _("and table_and_columns is:"),
1693 					  _("table_name"),
1694 					  _("column_name"));
1695 }
1696 
1697 static void
sql_help_BEGIN(PQExpBuffer buf)1698 sql_help_BEGIN(PQExpBuffer buf)
1699 {
1700 	appendPQExpBuffer(buf,
1701 					  "BEGIN [ WORK | TRANSACTION ] [ %s [, ...] ]\n"
1702 					  "\n"
1703 					  "%s\n"
1704 					  "\n"
1705 					  "    ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }\n"
1706 					  "    READ WRITE | READ ONLY\n"
1707 					  "    [ NOT ] DEFERRABLE",
1708 					  _("transaction_mode"),
1709 					  _("where transaction_mode is one of:"));
1710 }
1711 
1712 static void
sql_help_CALL(PQExpBuffer buf)1713 sql_help_CALL(PQExpBuffer buf)
1714 {
1715 	appendPQExpBuffer(buf,
1716 					  "CALL %s ( [ %s ] [, ...] )",
1717 					  _("name"),
1718 					  _("argument"));
1719 }
1720 
1721 static void
sql_help_CHECKPOINT(PQExpBuffer buf)1722 sql_help_CHECKPOINT(PQExpBuffer buf)
1723 {
1724 	appendPQExpBuffer(buf,
1725 					  "CHECKPOINT");
1726 }
1727 
1728 static void
sql_help_CLOSE(PQExpBuffer buf)1729 sql_help_CLOSE(PQExpBuffer buf)
1730 {
1731 	appendPQExpBuffer(buf,
1732 					  "CLOSE { %s | ALL }",
1733 					  _("name"));
1734 }
1735 
1736 static void
sql_help_CLUSTER(PQExpBuffer buf)1737 sql_help_CLUSTER(PQExpBuffer buf)
1738 {
1739 	appendPQExpBuffer(buf,
1740 					  "CLUSTER [VERBOSE] %s [ USING %s ]\n"
1741 					  "CLUSTER ( %s [, ...] ) %s [ USING %s ]\n"
1742 					  "CLUSTER [VERBOSE]\n"
1743 					  "\n"
1744 					  "%s\n"
1745 					  "\n"
1746 					  "    VERBOSE [ %s ]",
1747 					  _("table_name"),
1748 					  _("index_name"),
1749 					  _("option"),
1750 					  _("table_name"),
1751 					  _("index_name"),
1752 					  _("where option can be one of:"),
1753 					  _("boolean"));
1754 }
1755 
1756 static void
sql_help_COMMENT(PQExpBuffer buf)1757 sql_help_COMMENT(PQExpBuffer buf)
1758 {
1759 	appendPQExpBuffer(buf,
1760 					  "COMMENT ON\n"
1761 					  "{\n"
1762 					  "  ACCESS METHOD %s |\n"
1763 					  "  AGGREGATE %s ( %s ) |\n"
1764 					  "  CAST (%s AS %s) |\n"
1765 					  "  COLLATION %s |\n"
1766 					  "  COLUMN %s.%s |\n"
1767 					  "  CONSTRAINT %s ON %s |\n"
1768 					  "  CONSTRAINT %s ON DOMAIN %s |\n"
1769 					  "  CONVERSION %s |\n"
1770 					  "  DATABASE %s |\n"
1771 					  "  DOMAIN %s |\n"
1772 					  "  EXTENSION %s |\n"
1773 					  "  EVENT TRIGGER %s |\n"
1774 					  "  FOREIGN DATA WRAPPER %s |\n"
1775 					  "  FOREIGN TABLE %s |\n"
1776 					  "  FUNCTION %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ] |\n"
1777 					  "  INDEX %s |\n"
1778 					  "  LARGE OBJECT %s |\n"
1779 					  "  MATERIALIZED VIEW %s |\n"
1780 					  "  OPERATOR %s (%s, %s) |\n"
1781 					  "  OPERATOR CLASS %s USING %s |\n"
1782 					  "  OPERATOR FAMILY %s USING %s |\n"
1783 					  "  POLICY %s ON %s |\n"
1784 					  "  [ PROCEDURAL ] LANGUAGE %s |\n"
1785 					  "  PROCEDURE %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ] |\n"
1786 					  "  PUBLICATION %s |\n"
1787 					  "  ROLE %s |\n"
1788 					  "  ROUTINE %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ] |\n"
1789 					  "  RULE %s ON %s |\n"
1790 					  "  SCHEMA %s |\n"
1791 					  "  SEQUENCE %s |\n"
1792 					  "  SERVER %s |\n"
1793 					  "  STATISTICS %s |\n"
1794 					  "  SUBSCRIPTION %s |\n"
1795 					  "  TABLE %s |\n"
1796 					  "  TABLESPACE %s |\n"
1797 					  "  TEXT SEARCH CONFIGURATION %s |\n"
1798 					  "  TEXT SEARCH DICTIONARY %s |\n"
1799 					  "  TEXT SEARCH PARSER %s |\n"
1800 					  "  TEXT SEARCH TEMPLATE %s |\n"
1801 					  "  TRANSFORM FOR %s LANGUAGE %s |\n"
1802 					  "  TRIGGER %s ON %s |\n"
1803 					  "  TYPE %s |\n"
1804 					  "  VIEW %s\n"
1805 					  "} IS '%s'\n"
1806 					  "\n"
1807 					  "%s\n"
1808 					  "\n"
1809 					  "* |\n"
1810 					  "[ %s ] [ %s ] %s [ , ... ] |\n"
1811 					  "[ [ %s ] [ %s ] %s [ , ... ] ] ORDER BY [ %s ] [ %s ] %s [ , ... ]",
1812 					  _("object_name"),
1813 					  _("aggregate_name"),
1814 					  _("aggregate_signature"),
1815 					  _("source_type"),
1816 					  _("target_type"),
1817 					  _("object_name"),
1818 					  _("relation_name"),
1819 					  _("column_name"),
1820 					  _("constraint_name"),
1821 					  _("table_name"),
1822 					  _("constraint_name"),
1823 					  _("domain_name"),
1824 					  _("object_name"),
1825 					  _("object_name"),
1826 					  _("object_name"),
1827 					  _("object_name"),
1828 					  _("object_name"),
1829 					  _("object_name"),
1830 					  _("object_name"),
1831 					  _("function_name"),
1832 					  _("argmode"),
1833 					  _("argname"),
1834 					  _("argtype"),
1835 					  _("object_name"),
1836 					  _("large_object_oid"),
1837 					  _("object_name"),
1838 					  _("operator_name"),
1839 					  _("left_type"),
1840 					  _("right_type"),
1841 					  _("object_name"),
1842 					  _("index_method"),
1843 					  _("object_name"),
1844 					  _("index_method"),
1845 					  _("policy_name"),
1846 					  _("table_name"),
1847 					  _("object_name"),
1848 					  _("procedure_name"),
1849 					  _("argmode"),
1850 					  _("argname"),
1851 					  _("argtype"),
1852 					  _("object_name"),
1853 					  _("object_name"),
1854 					  _("routine_name"),
1855 					  _("argmode"),
1856 					  _("argname"),
1857 					  _("argtype"),
1858 					  _("rule_name"),
1859 					  _("table_name"),
1860 					  _("object_name"),
1861 					  _("object_name"),
1862 					  _("object_name"),
1863 					  _("object_name"),
1864 					  _("object_name"),
1865 					  _("object_name"),
1866 					  _("object_name"),
1867 					  _("object_name"),
1868 					  _("object_name"),
1869 					  _("object_name"),
1870 					  _("object_name"),
1871 					  _("type_name"),
1872 					  _("lang_name"),
1873 					  _("trigger_name"),
1874 					  _("table_name"),
1875 					  _("object_name"),
1876 					  _("object_name"),
1877 					  _("text"),
1878 					  _("where aggregate_signature is:"),
1879 					  _("argmode"),
1880 					  _("argname"),
1881 					  _("argtype"),
1882 					  _("argmode"),
1883 					  _("argname"),
1884 					  _("argtype"),
1885 					  _("argmode"),
1886 					  _("argname"),
1887 					  _("argtype"));
1888 }
1889 
1890 static void
sql_help_COMMIT(PQExpBuffer buf)1891 sql_help_COMMIT(PQExpBuffer buf)
1892 {
1893 	appendPQExpBuffer(buf,
1894 					  "COMMIT [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]");
1895 }
1896 
1897 static void
sql_help_COMMIT_PREPARED(PQExpBuffer buf)1898 sql_help_COMMIT_PREPARED(PQExpBuffer buf)
1899 {
1900 	appendPQExpBuffer(buf,
1901 					  "COMMIT PREPARED %s",
1902 					  _("transaction_id"));
1903 }
1904 
1905 static void
sql_help_COPY(PQExpBuffer buf)1906 sql_help_COPY(PQExpBuffer buf)
1907 {
1908 	appendPQExpBuffer(buf,
1909 					  "COPY %s [ ( %s [, ...] ) ]\n"
1910 					  "    FROM { '%s' | PROGRAM '%s' | STDIN }\n"
1911 					  "    [ [ WITH ] ( %s [, ...] ) ]\n"
1912 					  "    [ WHERE %s ]\n"
1913 					  "\n"
1914 					  "COPY { %s [ ( %s [, ...] ) ] | ( %s ) }\n"
1915 					  "    TO { '%s' | PROGRAM '%s' | STDOUT }\n"
1916 					  "    [ [ WITH ] ( %s [, ...] ) ]\n"
1917 					  "\n"
1918 					  "%s\n"
1919 					  "\n"
1920 					  "    FORMAT %s\n"
1921 					  "    FREEZE [ %s ]\n"
1922 					  "    DELIMITER '%s'\n"
1923 					  "    NULL '%s'\n"
1924 					  "    HEADER [ %s ]\n"
1925 					  "    QUOTE '%s'\n"
1926 					  "    ESCAPE '%s'\n"
1927 					  "    FORCE_QUOTE { ( %s [, ...] ) | * }\n"
1928 					  "    FORCE_NOT_NULL ( %s [, ...] )\n"
1929 					  "    FORCE_NULL ( %s [, ...] )\n"
1930 					  "    ENCODING '%s'",
1931 					  _("table_name"),
1932 					  _("column_name"),
1933 					  _("filename"),
1934 					  _("command"),
1935 					  _("option"),
1936 					  _("condition"),
1937 					  _("table_name"),
1938 					  _("column_name"),
1939 					  _("query"),
1940 					  _("filename"),
1941 					  _("command"),
1942 					  _("option"),
1943 					  _("where option can be one of:"),
1944 					  _("format_name"),
1945 					  _("boolean"),
1946 					  _("delimiter_character"),
1947 					  _("null_string"),
1948 					  _("boolean"),
1949 					  _("quote_character"),
1950 					  _("escape_character"),
1951 					  _("column_name"),
1952 					  _("column_name"),
1953 					  _("column_name"),
1954 					  _("encoding_name"));
1955 }
1956 
1957 static void
sql_help_CREATE_ACCESS_METHOD(PQExpBuffer buf)1958 sql_help_CREATE_ACCESS_METHOD(PQExpBuffer buf)
1959 {
1960 	appendPQExpBuffer(buf,
1961 					  "CREATE ACCESS METHOD %s\n"
1962 					  "    TYPE %s\n"
1963 					  "    HANDLER %s",
1964 					  _("name"),
1965 					  _("access_method_type"),
1966 					  _("handler_function"));
1967 }
1968 
1969 static void
sql_help_CREATE_AGGREGATE(PQExpBuffer buf)1970 sql_help_CREATE_AGGREGATE(PQExpBuffer buf)
1971 {
1972 	appendPQExpBuffer(buf,
1973 					  "CREATE [ OR REPLACE ] AGGREGATE %s ( [ %s ] [ %s ] %s [ , ... ] ) (\n"
1974 					  "    SFUNC = %s,\n"
1975 					  "    STYPE = %s\n"
1976 					  "    [ , SSPACE = %s ]\n"
1977 					  "    [ , FINALFUNC = %s ]\n"
1978 					  "    [ , FINALFUNC_EXTRA ]\n"
1979 					  "    [ , FINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]\n"
1980 					  "    [ , COMBINEFUNC = %s ]\n"
1981 					  "    [ , SERIALFUNC = %s ]\n"
1982 					  "    [ , DESERIALFUNC = %s ]\n"
1983 					  "    [ , INITCOND = %s ]\n"
1984 					  "    [ , MSFUNC = %s ]\n"
1985 					  "    [ , MINVFUNC = %s ]\n"
1986 					  "    [ , MSTYPE = %s ]\n"
1987 					  "    [ , MSSPACE = %s ]\n"
1988 					  "    [ , MFINALFUNC = %s ]\n"
1989 					  "    [ , MFINALFUNC_EXTRA ]\n"
1990 					  "    [ , MFINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]\n"
1991 					  "    [ , MINITCOND = %s ]\n"
1992 					  "    [ , SORTOP = %s ]\n"
1993 					  "    [ , PARALLEL = { SAFE | RESTRICTED | UNSAFE } ]\n"
1994 					  ")\n"
1995 					  "\n"
1996 					  "CREATE [ OR REPLACE ] AGGREGATE %s ( [ [ %s ] [ %s ] %s [ , ... ] ]\n"
1997 					  "                        ORDER BY [ %s ] [ %s ] %s [ , ... ] ) (\n"
1998 					  "    SFUNC = %s,\n"
1999 					  "    STYPE = %s\n"
2000 					  "    [ , SSPACE = %s ]\n"
2001 					  "    [ , FINALFUNC = %s ]\n"
2002 					  "    [ , FINALFUNC_EXTRA ]\n"
2003 					  "    [ , FINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]\n"
2004 					  "    [ , INITCOND = %s ]\n"
2005 					  "    [ , PARALLEL = { SAFE | RESTRICTED | UNSAFE } ]\n"
2006 					  "    [ , HYPOTHETICAL ]\n"
2007 					  ")\n"
2008 					  "\n"
2009 					  "%s\n"
2010 					  "\n"
2011 					  "CREATE [ OR REPLACE ] AGGREGATE %s (\n"
2012 					  "    BASETYPE = %s,\n"
2013 					  "    SFUNC = %s,\n"
2014 					  "    STYPE = %s\n"
2015 					  "    [ , SSPACE = %s ]\n"
2016 					  "    [ , FINALFUNC = %s ]\n"
2017 					  "    [ , FINALFUNC_EXTRA ]\n"
2018 					  "    [ , FINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]\n"
2019 					  "    [ , COMBINEFUNC = %s ]\n"
2020 					  "    [ , SERIALFUNC = %s ]\n"
2021 					  "    [ , DESERIALFUNC = %s ]\n"
2022 					  "    [ , INITCOND = %s ]\n"
2023 					  "    [ , MSFUNC = %s ]\n"
2024 					  "    [ , MINVFUNC = %s ]\n"
2025 					  "    [ , MSTYPE = %s ]\n"
2026 					  "    [ , MSSPACE = %s ]\n"
2027 					  "    [ , MFINALFUNC = %s ]\n"
2028 					  "    [ , MFINALFUNC_EXTRA ]\n"
2029 					  "    [ , MFINALFUNC_MODIFY = { READ_ONLY | SHAREABLE | READ_WRITE } ]\n"
2030 					  "    [ , MINITCOND = %s ]\n"
2031 					  "    [ , SORTOP = %s ]\n"
2032 					  ")",
2033 					  _("name"),
2034 					  _("argmode"),
2035 					  _("argname"),
2036 					  _("arg_data_type"),
2037 					  _("sfunc"),
2038 					  _("state_data_type"),
2039 					  _("state_data_size"),
2040 					  _("ffunc"),
2041 					  _("combinefunc"),
2042 					  _("serialfunc"),
2043 					  _("deserialfunc"),
2044 					  _("initial_condition"),
2045 					  _("msfunc"),
2046 					  _("minvfunc"),
2047 					  _("mstate_data_type"),
2048 					  _("mstate_data_size"),
2049 					  _("mffunc"),
2050 					  _("minitial_condition"),
2051 					  _("sort_operator"),
2052 					  _("name"),
2053 					  _("argmode"),
2054 					  _("argname"),
2055 					  _("arg_data_type"),
2056 					  _("argmode"),
2057 					  _("argname"),
2058 					  _("arg_data_type"),
2059 					  _("sfunc"),
2060 					  _("state_data_type"),
2061 					  _("state_data_size"),
2062 					  _("ffunc"),
2063 					  _("initial_condition"),
2064 					  _("or the old syntax"),
2065 					  _("name"),
2066 					  _("base_type"),
2067 					  _("sfunc"),
2068 					  _("state_data_type"),
2069 					  _("state_data_size"),
2070 					  _("ffunc"),
2071 					  _("combinefunc"),
2072 					  _("serialfunc"),
2073 					  _("deserialfunc"),
2074 					  _("initial_condition"),
2075 					  _("msfunc"),
2076 					  _("minvfunc"),
2077 					  _("mstate_data_type"),
2078 					  _("mstate_data_size"),
2079 					  _("mffunc"),
2080 					  _("minitial_condition"),
2081 					  _("sort_operator"));
2082 }
2083 
2084 static void
sql_help_CREATE_CAST(PQExpBuffer buf)2085 sql_help_CREATE_CAST(PQExpBuffer buf)
2086 {
2087 	appendPQExpBuffer(buf,
2088 					  "CREATE CAST (%s AS %s)\n"
2089 					  "    WITH FUNCTION %s [ (%s [, ...]) ]\n"
2090 					  "    [ AS ASSIGNMENT | AS IMPLICIT ]\n"
2091 					  "\n"
2092 					  "CREATE CAST (%s AS %s)\n"
2093 					  "    WITHOUT FUNCTION\n"
2094 					  "    [ AS ASSIGNMENT | AS IMPLICIT ]\n"
2095 					  "\n"
2096 					  "CREATE CAST (%s AS %s)\n"
2097 					  "    WITH INOUT\n"
2098 					  "    [ AS ASSIGNMENT | AS IMPLICIT ]",
2099 					  _("source_type"),
2100 					  _("target_type"),
2101 					  _("function_name"),
2102 					  _("argument_type"),
2103 					  _("source_type"),
2104 					  _("target_type"),
2105 					  _("source_type"),
2106 					  _("target_type"));
2107 }
2108 
2109 static void
sql_help_CREATE_COLLATION(PQExpBuffer buf)2110 sql_help_CREATE_COLLATION(PQExpBuffer buf)
2111 {
2112 	appendPQExpBuffer(buf,
2113 					  "CREATE COLLATION [ IF NOT EXISTS ] %s (\n"
2114 					  "    [ LOCALE = %s, ]\n"
2115 					  "    [ LC_COLLATE = %s, ]\n"
2116 					  "    [ LC_CTYPE = %s, ]\n"
2117 					  "    [ PROVIDER = %s, ]\n"
2118 					  "    [ DETERMINISTIC = %s, ]\n"
2119 					  "    [ VERSION = %s ]\n"
2120 					  ")\n"
2121 					  "CREATE COLLATION [ IF NOT EXISTS ] %s FROM %s",
2122 					  _("name"),
2123 					  _("locale"),
2124 					  _("lc_collate"),
2125 					  _("lc_ctype"),
2126 					  _("provider"),
2127 					  _("boolean"),
2128 					  _("version"),
2129 					  _("name"),
2130 					  _("existing_collation"));
2131 }
2132 
2133 static void
sql_help_CREATE_CONVERSION(PQExpBuffer buf)2134 sql_help_CREATE_CONVERSION(PQExpBuffer buf)
2135 {
2136 	appendPQExpBuffer(buf,
2137 					  "CREATE [ DEFAULT ] CONVERSION %s\n"
2138 					  "    FOR %s TO %s FROM %s",
2139 					  _("name"),
2140 					  _("source_encoding"),
2141 					  _("dest_encoding"),
2142 					  _("function_name"));
2143 }
2144 
2145 static void
sql_help_CREATE_DATABASE(PQExpBuffer buf)2146 sql_help_CREATE_DATABASE(PQExpBuffer buf)
2147 {
2148 	appendPQExpBuffer(buf,
2149 					  "CREATE DATABASE %s\n"
2150 					  "    [ [ WITH ] [ OWNER [=] %s ]\n"
2151 					  "           [ TEMPLATE [=] %s ]\n"
2152 					  "           [ ENCODING [=] %s ]\n"
2153 					  "           [ LOCALE [=] %s ]\n"
2154 					  "           [ LC_COLLATE [=] %s ]\n"
2155 					  "           [ LC_CTYPE [=] %s ]\n"
2156 					  "           [ TABLESPACE [=] %s ]\n"
2157 					  "           [ ALLOW_CONNECTIONS [=] %s ]\n"
2158 					  "           [ CONNECTION LIMIT [=] %s ]\n"
2159 					  "           [ IS_TEMPLATE [=] %s ] ]",
2160 					  _("name"),
2161 					  _("user_name"),
2162 					  _("template"),
2163 					  _("encoding"),
2164 					  _("locale"),
2165 					  _("lc_collate"),
2166 					  _("lc_ctype"),
2167 					  _("tablespace_name"),
2168 					  _("allowconn"),
2169 					  _("connlimit"),
2170 					  _("istemplate"));
2171 }
2172 
2173 static void
sql_help_CREATE_DOMAIN(PQExpBuffer buf)2174 sql_help_CREATE_DOMAIN(PQExpBuffer buf)
2175 {
2176 	appendPQExpBuffer(buf,
2177 					  "CREATE DOMAIN %s [ AS ] %s\n"
2178 					  "    [ COLLATE %s ]\n"
2179 					  "    [ DEFAULT %s ]\n"
2180 					  "    [ %s [ ... ] ]\n"
2181 					  "\n"
2182 					  "%s\n"
2183 					  "\n"
2184 					  "[ CONSTRAINT %s ]\n"
2185 					  "{ NOT NULL | NULL | CHECK (%s) }",
2186 					  _("name"),
2187 					  _("data_type"),
2188 					  _("collation"),
2189 					  _("expression"),
2190 					  _("constraint"),
2191 					  _("where constraint is:"),
2192 					  _("constraint_name"),
2193 					  _("expression"));
2194 }
2195 
2196 static void
sql_help_CREATE_EVENT_TRIGGER(PQExpBuffer buf)2197 sql_help_CREATE_EVENT_TRIGGER(PQExpBuffer buf)
2198 {
2199 	appendPQExpBuffer(buf,
2200 					  "CREATE EVENT TRIGGER %s\n"
2201 					  "    ON %s\n"
2202 					  "    [ WHEN %s IN (%s [, ... ]) [ AND ... ] ]\n"
2203 					  "    EXECUTE { FUNCTION | PROCEDURE } %s()",
2204 					  _("name"),
2205 					  _("event"),
2206 					  _("filter_variable"),
2207 					  _("filter_value"),
2208 					  _("function_name"));
2209 }
2210 
2211 static void
sql_help_CREATE_EXTENSION(PQExpBuffer buf)2212 sql_help_CREATE_EXTENSION(PQExpBuffer buf)
2213 {
2214 	appendPQExpBuffer(buf,
2215 					  "CREATE EXTENSION [ IF NOT EXISTS ] %s\n"
2216 					  "    [ WITH ] [ SCHEMA %s ]\n"
2217 					  "             [ VERSION %s ]\n"
2218 					  "             [ CASCADE ]",
2219 					  _("extension_name"),
2220 					  _("schema_name"),
2221 					  _("version"));
2222 }
2223 
2224 static void
sql_help_CREATE_FOREIGN_DATA_WRAPPER(PQExpBuffer buf)2225 sql_help_CREATE_FOREIGN_DATA_WRAPPER(PQExpBuffer buf)
2226 {
2227 	appendPQExpBuffer(buf,
2228 					  "CREATE FOREIGN DATA WRAPPER %s\n"
2229 					  "    [ HANDLER %s | NO HANDLER ]\n"
2230 					  "    [ VALIDATOR %s | NO VALIDATOR ]\n"
2231 					  "    [ OPTIONS ( %s '%s' [, ... ] ) ]",
2232 					  _("name"),
2233 					  _("handler_function"),
2234 					  _("validator_function"),
2235 					  _("option"),
2236 					  _("value"));
2237 }
2238 
2239 static void
sql_help_CREATE_FOREIGN_TABLE(PQExpBuffer buf)2240 sql_help_CREATE_FOREIGN_TABLE(PQExpBuffer buf)
2241 {
2242 	appendPQExpBuffer(buf,
2243 					  "CREATE FOREIGN TABLE [ IF NOT EXISTS ] %s ( [\n"
2244 					  "  { %s %s [ OPTIONS ( %s '%s' [, ... ] ) ] [ COLLATE %s ] [ %s [ ... ] ]\n"
2245 					  "    | %s }\n"
2246 					  "    [, ... ]\n"
2247 					  "] )\n"
2248 					  "[ INHERITS ( %s [, ... ] ) ]\n"
2249 					  "  SERVER %s\n"
2250 					  "[ OPTIONS ( %s '%s' [, ... ] ) ]\n"
2251 					  "\n"
2252 					  "CREATE FOREIGN TABLE [ IF NOT EXISTS ] %s\n"
2253 					  "  PARTITION OF %s [ (\n"
2254 					  "  { %s [ WITH OPTIONS ] [ %s [ ... ] ]\n"
2255 					  "    | %s }\n"
2256 					  "    [, ... ]\n"
2257 					  ") ] %s\n"
2258 					  "  SERVER %s\n"
2259 					  "[ OPTIONS ( %s '%s' [, ... ] ) ]\n"
2260 					  "\n"
2261 					  "%s\n"
2262 					  "\n"
2263 					  "[ CONSTRAINT %s ]\n"
2264 					  "{ NOT NULL |\n"
2265 					  "  NULL |\n"
2266 					  "  CHECK ( %s ) [ NO INHERIT ] |\n"
2267 					  "  DEFAULT %s |\n"
2268 					  "  GENERATED ALWAYS AS ( %s ) STORED }\n"
2269 					  "\n"
2270 					  "%s\n"
2271 					  "\n"
2272 					  "[ CONSTRAINT %s ]\n"
2273 					  "CHECK ( %s ) [ NO INHERIT ]",
2274 					  _("table_name"),
2275 					  _("column_name"),
2276 					  _("data_type"),
2277 					  _("option"),
2278 					  _("value"),
2279 					  _("collation"),
2280 					  _("column_constraint"),
2281 					  _("table_constraint"),
2282 					  _("parent_table"),
2283 					  _("server_name"),
2284 					  _("option"),
2285 					  _("value"),
2286 					  _("table_name"),
2287 					  _("parent_table"),
2288 					  _("column_name"),
2289 					  _("column_constraint"),
2290 					  _("table_constraint"),
2291 					  _("partition_bound_spec"),
2292 					  _("server_name"),
2293 					  _("option"),
2294 					  _("value"),
2295 					  _("where column_constraint is:"),
2296 					  _("constraint_name"),
2297 					  _("expression"),
2298 					  _("default_expr"),
2299 					  _("generation_expr"),
2300 					  _("and table_constraint is:"),
2301 					  _("constraint_name"),
2302 					  _("expression"));
2303 }
2304 
2305 static void
sql_help_CREATE_FUNCTION(PQExpBuffer buf)2306 sql_help_CREATE_FUNCTION(PQExpBuffer buf)
2307 {
2308 	appendPQExpBuffer(buf,
2309 					  "CREATE [ OR REPLACE ] FUNCTION\n"
2310 					  "    %s ( [ [ %s ] [ %s ] %s [ { DEFAULT | = } %s ] [, ...] ] )\n"
2311 					  "    [ RETURNS %s\n"
2312 					  "      | RETURNS TABLE ( %s %s [, ...] ) ]\n"
2313 					  "  { LANGUAGE %s\n"
2314 					  "    | TRANSFORM { FOR TYPE %s } [, ... ]\n"
2315 					  "    | WINDOW\n"
2316 					  "    | { IMMUTABLE | STABLE | VOLATILE }\n"
2317 					  "    | [ NOT ] LEAKPROOF\n"
2318 					  "    | { CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT }\n"
2319 					  "    | { [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER }\n"
2320 					  "    | PARALLEL { UNSAFE | RESTRICTED | SAFE }\n"
2321 					  "    | COST %s\n"
2322 					  "    | ROWS %s\n"
2323 					  "    | SUPPORT %s\n"
2324 					  "    | SET %s { TO %s | = %s | FROM CURRENT }\n"
2325 					  "    | AS '%s'\n"
2326 					  "    | AS '%s', '%s'\n"
2327 					  "    | %s\n"
2328 					  "  } ...",
2329 					  _("name"),
2330 					  _("argmode"),
2331 					  _("argname"),
2332 					  _("argtype"),
2333 					  _("default_expr"),
2334 					  _("rettype"),
2335 					  _("column_name"),
2336 					  _("column_type"),
2337 					  _("lang_name"),
2338 					  _("type_name"),
2339 					  _("execution_cost"),
2340 					  _("result_rows"),
2341 					  _("support_function"),
2342 					  _("configuration_parameter"),
2343 					  _("value"),
2344 					  _("value"),
2345 					  _("definition"),
2346 					  _("obj_file"),
2347 					  _("link_symbol"),
2348 					  _("sql_body"));
2349 }
2350 
2351 static void
sql_help_CREATE_GROUP(PQExpBuffer buf)2352 sql_help_CREATE_GROUP(PQExpBuffer buf)
2353 {
2354 	appendPQExpBuffer(buf,
2355 					  "CREATE GROUP %s [ [ WITH ] %s [ ... ] ]\n"
2356 					  "\n"
2357 					  "%s\n"
2358 					  "\n"
2359 					  "      SUPERUSER | NOSUPERUSER\n"
2360 					  "    | CREATEDB | NOCREATEDB\n"
2361 					  "    | CREATEROLE | NOCREATEROLE\n"
2362 					  "    | INHERIT | NOINHERIT\n"
2363 					  "    | LOGIN | NOLOGIN\n"
2364 					  "    | REPLICATION | NOREPLICATION\n"
2365 					  "    | BYPASSRLS | NOBYPASSRLS\n"
2366 					  "    | CONNECTION LIMIT %s\n"
2367 					  "    | [ ENCRYPTED ] PASSWORD '%s' | PASSWORD NULL\n"
2368 					  "    | VALID UNTIL '%s'\n"
2369 					  "    | IN ROLE %s [, ...]\n"
2370 					  "    | IN GROUP %s [, ...]\n"
2371 					  "    | ROLE %s [, ...]\n"
2372 					  "    | ADMIN %s [, ...]\n"
2373 					  "    | USER %s [, ...]\n"
2374 					  "    | SYSID %s",
2375 					  _("name"),
2376 					  _("option"),
2377 					  _("where option can be:"),
2378 					  _("connlimit"),
2379 					  _("password"),
2380 					  _("timestamp"),
2381 					  _("role_name"),
2382 					  _("role_name"),
2383 					  _("role_name"),
2384 					  _("role_name"),
2385 					  _("role_name"),
2386 					  _("uid"));
2387 }
2388 
2389 static void
sql_help_CREATE_INDEX(PQExpBuffer buf)2390 sql_help_CREATE_INDEX(PQExpBuffer buf)
2391 {
2392 	appendPQExpBuffer(buf,
2393 					  "CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] %s ] ON [ ONLY ] %s [ USING %s ]\n"
2394 					  "    ( { %s | ( %s ) } [ COLLATE %s ] [ %s [ ( %s = %s [, ... ] ) ] ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...] )\n"
2395 					  "    [ INCLUDE ( %s [, ...] ) ]\n"
2396 					  "    [ WITH ( %s [= %s] [, ... ] ) ]\n"
2397 					  "    [ TABLESPACE %s ]\n"
2398 					  "    [ WHERE %s ]",
2399 					  _("name"),
2400 					  _("table_name"),
2401 					  _("method"),
2402 					  _("column_name"),
2403 					  _("expression"),
2404 					  _("collation"),
2405 					  _("opclass"),
2406 					  _("opclass_parameter"),
2407 					  _("value"),
2408 					  _("column_name"),
2409 					  _("storage_parameter"),
2410 					  _("value"),
2411 					  _("tablespace_name"),
2412 					  _("predicate"));
2413 }
2414 
2415 static void
sql_help_CREATE_LANGUAGE(PQExpBuffer buf)2416 sql_help_CREATE_LANGUAGE(PQExpBuffer buf)
2417 {
2418 	appendPQExpBuffer(buf,
2419 					  "CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE %s\n"
2420 					  "    HANDLER %s [ INLINE %s ] [ VALIDATOR %s ]\n"
2421 					  "CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE %s",
2422 					  _("name"),
2423 					  _("call_handler"),
2424 					  _("inline_handler"),
2425 					  _("valfunction"),
2426 					  _("name"));
2427 }
2428 
2429 static void
sql_help_CREATE_MATERIALIZED_VIEW(PQExpBuffer buf)2430 sql_help_CREATE_MATERIALIZED_VIEW(PQExpBuffer buf)
2431 {
2432 	appendPQExpBuffer(buf,
2433 					  "CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] %s\n"
2434 					  "    [ (%s [, ...] ) ]\n"
2435 					  "    [ USING %s ]\n"
2436 					  "    [ WITH ( %s [= %s] [, ... ] ) ]\n"
2437 					  "    [ TABLESPACE %s ]\n"
2438 					  "    AS %s\n"
2439 					  "    [ WITH [ NO ] DATA ]",
2440 					  _("table_name"),
2441 					  _("column_name"),
2442 					  _("method"),
2443 					  _("storage_parameter"),
2444 					  _("value"),
2445 					  _("tablespace_name"),
2446 					  _("query"));
2447 }
2448 
2449 static void
sql_help_CREATE_OPERATOR(PQExpBuffer buf)2450 sql_help_CREATE_OPERATOR(PQExpBuffer buf)
2451 {
2452 	appendPQExpBuffer(buf,
2453 					  "CREATE OPERATOR %s (\n"
2454 					  "    {FUNCTION|PROCEDURE} = %s\n"
2455 					  "    [, LEFTARG = %s ] [, RIGHTARG = %s ]\n"
2456 					  "    [, COMMUTATOR = %s ] [, NEGATOR = %s ]\n"
2457 					  "    [, RESTRICT = %s ] [, JOIN = %s ]\n"
2458 					  "    [, HASHES ] [, MERGES ]\n"
2459 					  ")",
2460 					  _("name"),
2461 					  _("function_name"),
2462 					  _("left_type"),
2463 					  _("right_type"),
2464 					  _("com_op"),
2465 					  _("neg_op"),
2466 					  _("res_proc"),
2467 					  _("join_proc"));
2468 }
2469 
2470 static void
sql_help_CREATE_OPERATOR_CLASS(PQExpBuffer buf)2471 sql_help_CREATE_OPERATOR_CLASS(PQExpBuffer buf)
2472 {
2473 	appendPQExpBuffer(buf,
2474 					  "CREATE OPERATOR CLASS %s [ DEFAULT ] FOR TYPE %s\n"
2475 					  "  USING %s [ FAMILY %s ] AS\n"
2476 					  "  {  OPERATOR %s %s [ ( %s, %s ) ] [ FOR SEARCH | FOR ORDER BY %s ]\n"
2477 					  "   | FUNCTION %s [ ( %s [ , %s ] ) ] %s ( %s [, ...] )\n"
2478 					  "   | STORAGE %s\n"
2479 					  "  } [, ... ]",
2480 					  _("name"),
2481 					  _("data_type"),
2482 					  _("index_method"),
2483 					  _("family_name"),
2484 					  _("strategy_number"),
2485 					  _("operator_name"),
2486 					  _("op_type"),
2487 					  _("op_type"),
2488 					  _("sort_family_name"),
2489 					  _("support_number"),
2490 					  _("op_type"),
2491 					  _("op_type"),
2492 					  _("function_name"),
2493 					  _("argument_type"),
2494 					  _("storage_type"));
2495 }
2496 
2497 static void
sql_help_CREATE_OPERATOR_FAMILY(PQExpBuffer buf)2498 sql_help_CREATE_OPERATOR_FAMILY(PQExpBuffer buf)
2499 {
2500 	appendPQExpBuffer(buf,
2501 					  "CREATE OPERATOR FAMILY %s USING %s",
2502 					  _("name"),
2503 					  _("index_method"));
2504 }
2505 
2506 static void
sql_help_CREATE_POLICY(PQExpBuffer buf)2507 sql_help_CREATE_POLICY(PQExpBuffer buf)
2508 {
2509 	appendPQExpBuffer(buf,
2510 					  "CREATE POLICY %s ON %s\n"
2511 					  "    [ AS { PERMISSIVE | RESTRICTIVE } ]\n"
2512 					  "    [ FOR { ALL | SELECT | INSERT | UPDATE | DELETE } ]\n"
2513 					  "    [ TO { %s | PUBLIC | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] ]\n"
2514 					  "    [ USING ( %s ) ]\n"
2515 					  "    [ WITH CHECK ( %s ) ]",
2516 					  _("name"),
2517 					  _("table_name"),
2518 					  _("role_name"),
2519 					  _("using_expression"),
2520 					  _("check_expression"));
2521 }
2522 
2523 static void
sql_help_CREATE_PROCEDURE(PQExpBuffer buf)2524 sql_help_CREATE_PROCEDURE(PQExpBuffer buf)
2525 {
2526 	appendPQExpBuffer(buf,
2527 					  "CREATE [ OR REPLACE ] PROCEDURE\n"
2528 					  "    %s ( [ [ %s ] [ %s ] %s [ { DEFAULT | = } %s ] [, ...] ] )\n"
2529 					  "  { LANGUAGE %s\n"
2530 					  "    | TRANSFORM { FOR TYPE %s } [, ... ]\n"
2531 					  "    | [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER\n"
2532 					  "    | SET %s { TO %s | = %s | FROM CURRENT }\n"
2533 					  "    | AS '%s'\n"
2534 					  "    | AS '%s', '%s'\n"
2535 					  "    | %s\n"
2536 					  "  } ...",
2537 					  _("name"),
2538 					  _("argmode"),
2539 					  _("argname"),
2540 					  _("argtype"),
2541 					  _("default_expr"),
2542 					  _("lang_name"),
2543 					  _("type_name"),
2544 					  _("configuration_parameter"),
2545 					  _("value"),
2546 					  _("value"),
2547 					  _("definition"),
2548 					  _("obj_file"),
2549 					  _("link_symbol"),
2550 					  _("sql_body"));
2551 }
2552 
2553 static void
sql_help_CREATE_PUBLICATION(PQExpBuffer buf)2554 sql_help_CREATE_PUBLICATION(PQExpBuffer buf)
2555 {
2556 	appendPQExpBuffer(buf,
2557 					  "CREATE PUBLICATION %s\n"
2558 					  "    [ FOR TABLE [ ONLY ] %s [ * ] [, ...]\n"
2559 					  "      | FOR ALL TABLES ]\n"
2560 					  "    [ WITH ( %s [= %s] [, ... ] ) ]",
2561 					  _("name"),
2562 					  _("table_name"),
2563 					  _("publication_parameter"),
2564 					  _("value"));
2565 }
2566 
2567 static void
sql_help_CREATE_ROLE(PQExpBuffer buf)2568 sql_help_CREATE_ROLE(PQExpBuffer buf)
2569 {
2570 	appendPQExpBuffer(buf,
2571 					  "CREATE ROLE %s [ [ WITH ] %s [ ... ] ]\n"
2572 					  "\n"
2573 					  "%s\n"
2574 					  "\n"
2575 					  "      SUPERUSER | NOSUPERUSER\n"
2576 					  "    | CREATEDB | NOCREATEDB\n"
2577 					  "    | CREATEROLE | NOCREATEROLE\n"
2578 					  "    | INHERIT | NOINHERIT\n"
2579 					  "    | LOGIN | NOLOGIN\n"
2580 					  "    | REPLICATION | NOREPLICATION\n"
2581 					  "    | BYPASSRLS | NOBYPASSRLS\n"
2582 					  "    | CONNECTION LIMIT %s\n"
2583 					  "    | [ ENCRYPTED ] PASSWORD '%s' | PASSWORD NULL\n"
2584 					  "    | VALID UNTIL '%s'\n"
2585 					  "    | IN ROLE %s [, ...]\n"
2586 					  "    | IN GROUP %s [, ...]\n"
2587 					  "    | ROLE %s [, ...]\n"
2588 					  "    | ADMIN %s [, ...]\n"
2589 					  "    | USER %s [, ...]\n"
2590 					  "    | SYSID %s",
2591 					  _("name"),
2592 					  _("option"),
2593 					  _("where option can be:"),
2594 					  _("connlimit"),
2595 					  _("password"),
2596 					  _("timestamp"),
2597 					  _("role_name"),
2598 					  _("role_name"),
2599 					  _("role_name"),
2600 					  _("role_name"),
2601 					  _("role_name"),
2602 					  _("uid"));
2603 }
2604 
2605 static void
sql_help_CREATE_RULE(PQExpBuffer buf)2606 sql_help_CREATE_RULE(PQExpBuffer buf)
2607 {
2608 	appendPQExpBuffer(buf,
2609 					  "CREATE [ OR REPLACE ] RULE %s AS ON %s\n"
2610 					  "    TO %s [ WHERE %s ]\n"
2611 					  "    DO [ ALSO | INSTEAD ] { NOTHING | %s | ( %s ; %s ... ) }\n"
2612 					  "\n"
2613 					  "%s\n"
2614 					  "\n"
2615 					  "    SELECT | INSERT | UPDATE | DELETE",
2616 					  _("name"),
2617 					  _("event"),
2618 					  _("table_name"),
2619 					  _("condition"),
2620 					  _("command"),
2621 					  _("command"),
2622 					  _("command"),
2623 					  _("where event can be one of:"));
2624 }
2625 
2626 static void
sql_help_CREATE_SCHEMA(PQExpBuffer buf)2627 sql_help_CREATE_SCHEMA(PQExpBuffer buf)
2628 {
2629 	appendPQExpBuffer(buf,
2630 					  "CREATE SCHEMA %s [ AUTHORIZATION %s ] [ %s [ ... ] ]\n"
2631 					  "CREATE SCHEMA AUTHORIZATION %s [ %s [ ... ] ]\n"
2632 					  "CREATE SCHEMA IF NOT EXISTS %s [ AUTHORIZATION %s ]\n"
2633 					  "CREATE SCHEMA IF NOT EXISTS AUTHORIZATION %s\n"
2634 					  "\n"
2635 					  "%s\n"
2636 					  "\n"
2637 					  "    %s\n"
2638 					  "  | CURRENT_ROLE\n"
2639 					  "  | CURRENT_USER\n"
2640 					  "  | SESSION_USER",
2641 					  _("schema_name"),
2642 					  _("role_specification"),
2643 					  _("schema_element"),
2644 					  _("role_specification"),
2645 					  _("schema_element"),
2646 					  _("schema_name"),
2647 					  _("role_specification"),
2648 					  _("role_specification"),
2649 					  _("where role_specification can be:"),
2650 					  _("user_name"));
2651 }
2652 
2653 static void
sql_help_CREATE_SEQUENCE(PQExpBuffer buf)2654 sql_help_CREATE_SEQUENCE(PQExpBuffer buf)
2655 {
2656 	appendPQExpBuffer(buf,
2657 					  "CREATE [ TEMPORARY | TEMP ] SEQUENCE [ IF NOT EXISTS ] %s\n"
2658 					  "    [ AS %s ]\n"
2659 					  "    [ INCREMENT [ BY ] %s ]\n"
2660 					  "    [ MINVALUE %s | NO MINVALUE ] [ MAXVALUE %s | NO MAXVALUE ]\n"
2661 					  "    [ START [ WITH ] %s ] [ CACHE %s ] [ [ NO ] CYCLE ]\n"
2662 					  "    [ OWNED BY { %s.%s | NONE } ]",
2663 					  _("name"),
2664 					  _("data_type"),
2665 					  _("increment"),
2666 					  _("minvalue"),
2667 					  _("maxvalue"),
2668 					  _("start"),
2669 					  _("cache"),
2670 					  _("table_name"),
2671 					  _("column_name"));
2672 }
2673 
2674 static void
sql_help_CREATE_SERVER(PQExpBuffer buf)2675 sql_help_CREATE_SERVER(PQExpBuffer buf)
2676 {
2677 	appendPQExpBuffer(buf,
2678 					  "CREATE SERVER [ IF NOT EXISTS ] %s [ TYPE '%s' ] [ VERSION '%s' ]\n"
2679 					  "    FOREIGN DATA WRAPPER %s\n"
2680 					  "    [ OPTIONS ( %s '%s' [, ... ] ) ]",
2681 					  _("server_name"),
2682 					  _("server_type"),
2683 					  _("server_version"),
2684 					  _("fdw_name"),
2685 					  _("option"),
2686 					  _("value"));
2687 }
2688 
2689 static void
sql_help_CREATE_STATISTICS(PQExpBuffer buf)2690 sql_help_CREATE_STATISTICS(PQExpBuffer buf)
2691 {
2692 	appendPQExpBuffer(buf,
2693 					  "CREATE STATISTICS [ IF NOT EXISTS ] %s\n"
2694 					  "    ON ( %s )\n"
2695 					  "    FROM %s\n"
2696 					  "\n"
2697 					  "CREATE STATISTICS [ IF NOT EXISTS ] %s\n"
2698 					  "    [ ( %s [, ... ] ) ]\n"
2699 					  "    ON { %s | ( %s ) }, { %s | ( %s ) } [, ...]\n"
2700 					  "    FROM %s",
2701 					  _("statistics_name"),
2702 					  _("expression"),
2703 					  _("table_name"),
2704 					  _("statistics_name"),
2705 					  _("statistics_kind"),
2706 					  _("column_name"),
2707 					  _("expression"),
2708 					  _("column_name"),
2709 					  _("expression"),
2710 					  _("table_name"));
2711 }
2712 
2713 static void
sql_help_CREATE_SUBSCRIPTION(PQExpBuffer buf)2714 sql_help_CREATE_SUBSCRIPTION(PQExpBuffer buf)
2715 {
2716 	appendPQExpBuffer(buf,
2717 					  "CREATE SUBSCRIPTION %s\n"
2718 					  "    CONNECTION '%s'\n"
2719 					  "    PUBLICATION %s [, ...]\n"
2720 					  "    [ WITH ( %s [= %s] [, ... ] ) ]",
2721 					  _("subscription_name"),
2722 					  _("conninfo"),
2723 					  _("publication_name"),
2724 					  _("subscription_parameter"),
2725 					  _("value"));
2726 }
2727 
2728 static void
sql_help_CREATE_TABLE(PQExpBuffer buf)2729 sql_help_CREATE_TABLE(PQExpBuffer buf)
2730 {
2731 	appendPQExpBuffer(buf,
2732 					  "CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] %s ( [\n"
2733 					  "  { %s %s [ COMPRESSION %s ] [ COLLATE %s ] [ %s [ ... ] ]\n"
2734 					  "    | %s\n"
2735 					  "    | LIKE %s [ %s ... ] }\n"
2736 					  "    [, ... ]\n"
2737 					  "] )\n"
2738 					  "[ INHERITS ( %s [, ... ] ) ]\n"
2739 					  "[ PARTITION BY { RANGE | LIST | HASH } ( { %s | ( %s ) } [ COLLATE %s ] [ %s ] [, ... ] ) ]\n"
2740 					  "[ USING %s ]\n"
2741 					  "[ WITH ( %s [= %s] [, ... ] ) | WITHOUT OIDS ]\n"
2742 					  "[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]\n"
2743 					  "[ TABLESPACE %s ]\n"
2744 					  "\n"
2745 					  "CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] %s\n"
2746 					  "    OF %s [ (\n"
2747 					  "  { %s [ WITH OPTIONS ] [ %s [ ... ] ]\n"
2748 					  "    | %s }\n"
2749 					  "    [, ... ]\n"
2750 					  ") ]\n"
2751 					  "[ PARTITION BY { RANGE | LIST | HASH } ( { %s | ( %s ) } [ COLLATE %s ] [ %s ] [, ... ] ) ]\n"
2752 					  "[ USING %s ]\n"
2753 					  "[ WITH ( %s [= %s] [, ... ] ) | WITHOUT OIDS ]\n"
2754 					  "[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]\n"
2755 					  "[ TABLESPACE %s ]\n"
2756 					  "\n"
2757 					  "CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] %s\n"
2758 					  "    PARTITION OF %s [ (\n"
2759 					  "  { %s [ WITH OPTIONS ] [ %s [ ... ] ]\n"
2760 					  "    | %s }\n"
2761 					  "    [, ... ]\n"
2762 					  ") ] { FOR VALUES %s | DEFAULT }\n"
2763 					  "[ PARTITION BY { RANGE | LIST | HASH } ( { %s | ( %s ) } [ COLLATE %s ] [ %s ] [, ... ] ) ]\n"
2764 					  "[ USING %s ]\n"
2765 					  "[ WITH ( %s [= %s] [, ... ] ) | WITHOUT OIDS ]\n"
2766 					  "[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]\n"
2767 					  "[ TABLESPACE %s ]\n"
2768 					  "\n"
2769 					  "%s\n"
2770 					  "\n"
2771 					  "[ CONSTRAINT %s ]\n"
2772 					  "{ NOT NULL |\n"
2773 					  "  NULL |\n"
2774 					  "  CHECK ( %s ) [ NO INHERIT ] |\n"
2775 					  "  DEFAULT %s |\n"
2776 					  "  GENERATED ALWAYS AS ( %s ) STORED |\n"
2777 					  "  GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( %s ) ] |\n"
2778 					  "  UNIQUE %s |\n"
2779 					  "  PRIMARY KEY %s |\n"
2780 					  "  REFERENCES %s [ ( %s ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]\n"
2781 					  "    [ ON DELETE %s ] [ ON UPDATE %s ] }\n"
2782 					  "[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]\n"
2783 					  "\n"
2784 					  "%s\n"
2785 					  "\n"
2786 					  "[ CONSTRAINT %s ]\n"
2787 					  "{ CHECK ( %s ) [ NO INHERIT ] |\n"
2788 					  "  UNIQUE ( %s [, ... ] ) %s |\n"
2789 					  "  PRIMARY KEY ( %s [, ... ] ) %s |\n"
2790 					  "  EXCLUDE [ USING %s ] ( %s WITH %s [, ... ] ) %s [ WHERE ( %s ) ] |\n"
2791 					  "  FOREIGN KEY ( %s [, ... ] ) REFERENCES %s [ ( %s [, ... ] ) ]\n"
2792 					  "    [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE %s ] [ ON UPDATE %s ] }\n"
2793 					  "[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]\n"
2794 					  "\n"
2795 					  "%s\n"
2796 					  "\n"
2797 					  "{ INCLUDING | EXCLUDING } { COMMENTS | COMPRESSION | CONSTRAINTS | DEFAULTS | GENERATED | IDENTITY | INDEXES | STATISTICS | STORAGE | ALL }\n"
2798 					  "\n"
2799 					  "%s\n"
2800 					  "\n"
2801 					  "IN ( %s [, ...] ) |\n"
2802 					  "FROM ( { %s | MINVALUE | MAXVALUE } [, ...] )\n"
2803 					  "  TO ( { %s | MINVALUE | MAXVALUE } [, ...] ) |\n"
2804 					  "WITH ( MODULUS %s, REMAINDER %s )\n"
2805 					  "\n"
2806 					  "%s\n"
2807 					  "\n"
2808 					  "[ INCLUDE ( %s [, ... ] ) ]\n"
2809 					  "[ WITH ( %s [= %s] [, ... ] ) ]\n"
2810 					  "[ USING INDEX TABLESPACE %s ]\n"
2811 					  "\n"
2812 					  "%s\n"
2813 					  "\n"
2814 					  "{ %s | ( %s ) } [ %s ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ]",
2815 					  _("table_name"),
2816 					  _("column_name"),
2817 					  _("data_type"),
2818 					  _("compression_method"),
2819 					  _("collation"),
2820 					  _("column_constraint"),
2821 					  _("table_constraint"),
2822 					  _("source_table"),
2823 					  _("like_option"),
2824 					  _("parent_table"),
2825 					  _("column_name"),
2826 					  _("expression"),
2827 					  _("collation"),
2828 					  _("opclass"),
2829 					  _("method"),
2830 					  _("storage_parameter"),
2831 					  _("value"),
2832 					  _("tablespace_name"),
2833 					  _("table_name"),
2834 					  _("type_name"),
2835 					  _("column_name"),
2836 					  _("column_constraint"),
2837 					  _("table_constraint"),
2838 					  _("column_name"),
2839 					  _("expression"),
2840 					  _("collation"),
2841 					  _("opclass"),
2842 					  _("method"),
2843 					  _("storage_parameter"),
2844 					  _("value"),
2845 					  _("tablespace_name"),
2846 					  _("table_name"),
2847 					  _("parent_table"),
2848 					  _("column_name"),
2849 					  _("column_constraint"),
2850 					  _("table_constraint"),
2851 					  _("partition_bound_spec"),
2852 					  _("column_name"),
2853 					  _("expression"),
2854 					  _("collation"),
2855 					  _("opclass"),
2856 					  _("method"),
2857 					  _("storage_parameter"),
2858 					  _("value"),
2859 					  _("tablespace_name"),
2860 					  _("where column_constraint is:"),
2861 					  _("constraint_name"),
2862 					  _("expression"),
2863 					  _("default_expr"),
2864 					  _("generation_expr"),
2865 					  _("sequence_options"),
2866 					  _("index_parameters"),
2867 					  _("index_parameters"),
2868 					  _("reftable"),
2869 					  _("refcolumn"),
2870 					  _("referential_action"),
2871 					  _("referential_action"),
2872 					  _("and table_constraint is:"),
2873 					  _("constraint_name"),
2874 					  _("expression"),
2875 					  _("column_name"),
2876 					  _("index_parameters"),
2877 					  _("column_name"),
2878 					  _("index_parameters"),
2879 					  _("index_method"),
2880 					  _("exclude_element"),
2881 					  _("operator"),
2882 					  _("index_parameters"),
2883 					  _("predicate"),
2884 					  _("column_name"),
2885 					  _("reftable"),
2886 					  _("refcolumn"),
2887 					  _("referential_action"),
2888 					  _("referential_action"),
2889 					  _("and like_option is:"),
2890 					  _("and partition_bound_spec is:"),
2891 					  _("partition_bound_expr"),
2892 					  _("partition_bound_expr"),
2893 					  _("partition_bound_expr"),
2894 					  _("numeric_literal"),
2895 					  _("numeric_literal"),
2896 					  _("index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:"),
2897 					  _("column_name"),
2898 					  _("storage_parameter"),
2899 					  _("value"),
2900 					  _("tablespace_name"),
2901 					  _("exclude_element in an EXCLUDE constraint is:"),
2902 					  _("column_name"),
2903 					  _("expression"),
2904 					  _("opclass"));
2905 }
2906 
2907 static void
sql_help_CREATE_TABLE_AS(PQExpBuffer buf)2908 sql_help_CREATE_TABLE_AS(PQExpBuffer buf)
2909 {
2910 	appendPQExpBuffer(buf,
2911 					  "CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] %s\n"
2912 					  "    [ (%s [, ...] ) ]\n"
2913 					  "    [ USING %s ]\n"
2914 					  "    [ WITH ( %s [= %s] [, ... ] ) | WITHOUT OIDS ]\n"
2915 					  "    [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]\n"
2916 					  "    [ TABLESPACE %s ]\n"
2917 					  "    AS %s\n"
2918 					  "    [ WITH [ NO ] DATA ]",
2919 					  _("table_name"),
2920 					  _("column_name"),
2921 					  _("method"),
2922 					  _("storage_parameter"),
2923 					  _("value"),
2924 					  _("tablespace_name"),
2925 					  _("query"));
2926 }
2927 
2928 static void
sql_help_CREATE_TABLESPACE(PQExpBuffer buf)2929 sql_help_CREATE_TABLESPACE(PQExpBuffer buf)
2930 {
2931 	appendPQExpBuffer(buf,
2932 					  "CREATE TABLESPACE %s\n"
2933 					  "    [ OWNER { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ]\n"
2934 					  "    LOCATION '%s'\n"
2935 					  "    [ WITH ( %s = %s [, ... ] ) ]",
2936 					  _("tablespace_name"),
2937 					  _("new_owner"),
2938 					  _("directory"),
2939 					  _("tablespace_option"),
2940 					  _("value"));
2941 }
2942 
2943 static void
sql_help_CREATE_TEXT_SEARCH_CONFIGURATION(PQExpBuffer buf)2944 sql_help_CREATE_TEXT_SEARCH_CONFIGURATION(PQExpBuffer buf)
2945 {
2946 	appendPQExpBuffer(buf,
2947 					  "CREATE TEXT SEARCH CONFIGURATION %s (\n"
2948 					  "    PARSER = %s |\n"
2949 					  "    COPY = %s\n"
2950 					  ")",
2951 					  _("name"),
2952 					  _("parser_name"),
2953 					  _("source_config"));
2954 }
2955 
2956 static void
sql_help_CREATE_TEXT_SEARCH_DICTIONARY(PQExpBuffer buf)2957 sql_help_CREATE_TEXT_SEARCH_DICTIONARY(PQExpBuffer buf)
2958 {
2959 	appendPQExpBuffer(buf,
2960 					  "CREATE TEXT SEARCH DICTIONARY %s (\n"
2961 					  "    TEMPLATE = %s\n"
2962 					  "    [, %s = %s [, ... ]]\n"
2963 					  ")",
2964 					  _("name"),
2965 					  _("template"),
2966 					  _("option"),
2967 					  _("value"));
2968 }
2969 
2970 static void
sql_help_CREATE_TEXT_SEARCH_PARSER(PQExpBuffer buf)2971 sql_help_CREATE_TEXT_SEARCH_PARSER(PQExpBuffer buf)
2972 {
2973 	appendPQExpBuffer(buf,
2974 					  "CREATE TEXT SEARCH PARSER %s (\n"
2975 					  "    START = %s ,\n"
2976 					  "    GETTOKEN = %s ,\n"
2977 					  "    END = %s ,\n"
2978 					  "    LEXTYPES = %s\n"
2979 					  "    [, HEADLINE = %s ]\n"
2980 					  ")",
2981 					  _("name"),
2982 					  _("start_function"),
2983 					  _("gettoken_function"),
2984 					  _("end_function"),
2985 					  _("lextypes_function"),
2986 					  _("headline_function"));
2987 }
2988 
2989 static void
sql_help_CREATE_TEXT_SEARCH_TEMPLATE(PQExpBuffer buf)2990 sql_help_CREATE_TEXT_SEARCH_TEMPLATE(PQExpBuffer buf)
2991 {
2992 	appendPQExpBuffer(buf,
2993 					  "CREATE TEXT SEARCH TEMPLATE %s (\n"
2994 					  "    [ INIT = %s , ]\n"
2995 					  "    LEXIZE = %s\n"
2996 					  ")",
2997 					  _("name"),
2998 					  _("init_function"),
2999 					  _("lexize_function"));
3000 }
3001 
3002 static void
sql_help_CREATE_TRANSFORM(PQExpBuffer buf)3003 sql_help_CREATE_TRANSFORM(PQExpBuffer buf)
3004 {
3005 	appendPQExpBuffer(buf,
3006 					  "CREATE [ OR REPLACE ] TRANSFORM FOR %s LANGUAGE %s (\n"
3007 					  "    FROM SQL WITH FUNCTION %s [ (%s [, ...]) ],\n"
3008 					  "    TO SQL WITH FUNCTION %s [ (%s [, ...]) ]\n"
3009 					  ");",
3010 					  _("type_name"),
3011 					  _("lang_name"),
3012 					  _("from_sql_function_name"),
3013 					  _("argument_type"),
3014 					  _("to_sql_function_name"),
3015 					  _("argument_type"));
3016 }
3017 
3018 static void
sql_help_CREATE_TRIGGER(PQExpBuffer buf)3019 sql_help_CREATE_TRIGGER(PQExpBuffer buf)
3020 {
3021 	appendPQExpBuffer(buf,
3022 					  "CREATE [ OR REPLACE ] [ CONSTRAINT ] TRIGGER %s { BEFORE | AFTER | INSTEAD OF } { %s [ OR ... ] }\n"
3023 					  "    ON %s\n"
3024 					  "    [ FROM %s ]\n"
3025 					  "    [ NOT DEFERRABLE | [ DEFERRABLE ] [ INITIALLY IMMEDIATE | INITIALLY DEFERRED ] ]\n"
3026 					  "    [ REFERENCING { { OLD | NEW } TABLE [ AS ] %s } [ ... ] ]\n"
3027 					  "    [ FOR [ EACH ] { ROW | STATEMENT } ]\n"
3028 					  "    [ WHEN ( %s ) ]\n"
3029 					  "    EXECUTE { FUNCTION | PROCEDURE } %s ( %s )\n"
3030 					  "\n"
3031 					  "%s\n"
3032 					  "\n"
3033 					  "    INSERT\n"
3034 					  "    UPDATE [ OF %s [, ... ] ]\n"
3035 					  "    DELETE\n"
3036 					  "    TRUNCATE",
3037 					  _("name"),
3038 					  _("event"),
3039 					  _("table_name"),
3040 					  _("referenced_table_name"),
3041 					  _("transition_relation_name"),
3042 					  _("condition"),
3043 					  _("function_name"),
3044 					  _("arguments"),
3045 					  _("where event can be one of:"),
3046 					  _("column_name"));
3047 }
3048 
3049 static void
sql_help_CREATE_TYPE(PQExpBuffer buf)3050 sql_help_CREATE_TYPE(PQExpBuffer buf)
3051 {
3052 	appendPQExpBuffer(buf,
3053 					  "CREATE TYPE %s AS\n"
3054 					  "    ( [ %s %s [ COLLATE %s ] [, ... ] ] )\n"
3055 					  "\n"
3056 					  "CREATE TYPE %s AS ENUM\n"
3057 					  "    ( [ '%s' [, ... ] ] )\n"
3058 					  "\n"
3059 					  "CREATE TYPE %s AS RANGE (\n"
3060 					  "    SUBTYPE = %s\n"
3061 					  "    [ , SUBTYPE_OPCLASS = %s ]\n"
3062 					  "    [ , COLLATION = %s ]\n"
3063 					  "    [ , CANONICAL = %s ]\n"
3064 					  "    [ , SUBTYPE_DIFF = %s ]\n"
3065 					  "    [ , MULTIRANGE_TYPE_NAME = %s ]\n"
3066 					  ")\n"
3067 					  "\n"
3068 					  "CREATE TYPE %s (\n"
3069 					  "    INPUT = %s,\n"
3070 					  "    OUTPUT = %s\n"
3071 					  "    [ , RECEIVE = %s ]\n"
3072 					  "    [ , SEND = %s ]\n"
3073 					  "    [ , TYPMOD_IN = %s ]\n"
3074 					  "    [ , TYPMOD_OUT = %s ]\n"
3075 					  "    [ , ANALYZE = %s ]\n"
3076 					  "    [ , SUBSCRIPT = %s ]\n"
3077 					  "    [ , INTERNALLENGTH = { %s | VARIABLE } ]\n"
3078 					  "    [ , PASSEDBYVALUE ]\n"
3079 					  "    [ , ALIGNMENT = %s ]\n"
3080 					  "    [ , STORAGE = %s ]\n"
3081 					  "    [ , LIKE = %s ]\n"
3082 					  "    [ , CATEGORY = %s ]\n"
3083 					  "    [ , PREFERRED = %s ]\n"
3084 					  "    [ , DEFAULT = %s ]\n"
3085 					  "    [ , ELEMENT = %s ]\n"
3086 					  "    [ , DELIMITER = %s ]\n"
3087 					  "    [ , COLLATABLE = %s ]\n"
3088 					  ")\n"
3089 					  "\n"
3090 					  "CREATE TYPE %s",
3091 					  _("name"),
3092 					  _("attribute_name"),
3093 					  _("data_type"),
3094 					  _("collation"),
3095 					  _("name"),
3096 					  _("label"),
3097 					  _("name"),
3098 					  _("subtype"),
3099 					  _("subtype_operator_class"),
3100 					  _("collation"),
3101 					  _("canonical_function"),
3102 					  _("subtype_diff_function"),
3103 					  _("multirange_type_name"),
3104 					  _("name"),
3105 					  _("input_function"),
3106 					  _("output_function"),
3107 					  _("receive_function"),
3108 					  _("send_function"),
3109 					  _("type_modifier_input_function"),
3110 					  _("type_modifier_output_function"),
3111 					  _("analyze_function"),
3112 					  _("subscript_function"),
3113 					  _("internallength"),
3114 					  _("alignment"),
3115 					  _("storage"),
3116 					  _("like_type"),
3117 					  _("category"),
3118 					  _("preferred"),
3119 					  _("default"),
3120 					  _("element"),
3121 					  _("delimiter"),
3122 					  _("collatable"),
3123 					  _("name"));
3124 }
3125 
3126 static void
sql_help_CREATE_USER(PQExpBuffer buf)3127 sql_help_CREATE_USER(PQExpBuffer buf)
3128 {
3129 	appendPQExpBuffer(buf,
3130 					  "CREATE USER %s [ [ WITH ] %s [ ... ] ]\n"
3131 					  "\n"
3132 					  "%s\n"
3133 					  "\n"
3134 					  "      SUPERUSER | NOSUPERUSER\n"
3135 					  "    | CREATEDB | NOCREATEDB\n"
3136 					  "    | CREATEROLE | NOCREATEROLE\n"
3137 					  "    | INHERIT | NOINHERIT\n"
3138 					  "    | LOGIN | NOLOGIN\n"
3139 					  "    | REPLICATION | NOREPLICATION\n"
3140 					  "    | BYPASSRLS | NOBYPASSRLS\n"
3141 					  "    | CONNECTION LIMIT %s\n"
3142 					  "    | [ ENCRYPTED ] PASSWORD '%s' | PASSWORD NULL\n"
3143 					  "    | VALID UNTIL '%s'\n"
3144 					  "    | IN ROLE %s [, ...]\n"
3145 					  "    | IN GROUP %s [, ...]\n"
3146 					  "    | ROLE %s [, ...]\n"
3147 					  "    | ADMIN %s [, ...]\n"
3148 					  "    | USER %s [, ...]\n"
3149 					  "    | SYSID %s",
3150 					  _("name"),
3151 					  _("option"),
3152 					  _("where option can be:"),
3153 					  _("connlimit"),
3154 					  _("password"),
3155 					  _("timestamp"),
3156 					  _("role_name"),
3157 					  _("role_name"),
3158 					  _("role_name"),
3159 					  _("role_name"),
3160 					  _("role_name"),
3161 					  _("uid"));
3162 }
3163 
3164 static void
sql_help_CREATE_USER_MAPPING(PQExpBuffer buf)3165 sql_help_CREATE_USER_MAPPING(PQExpBuffer buf)
3166 {
3167 	appendPQExpBuffer(buf,
3168 					  "CREATE USER MAPPING [ IF NOT EXISTS ] FOR { %s | USER | CURRENT_ROLE | CURRENT_USER | PUBLIC }\n"
3169 					  "    SERVER %s\n"
3170 					  "    [ OPTIONS ( %s '%s' [ , ... ] ) ]",
3171 					  _("user_name"),
3172 					  _("server_name"),
3173 					  _("option"),
3174 					  _("value"));
3175 }
3176 
3177 static void
sql_help_CREATE_VIEW(PQExpBuffer buf)3178 sql_help_CREATE_VIEW(PQExpBuffer buf)
3179 {
3180 	appendPQExpBuffer(buf,
3181 					  "CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] [ RECURSIVE ] VIEW %s [ ( %s [, ...] ) ]\n"
3182 					  "    [ WITH ( %s [= %s] [, ... ] ) ]\n"
3183 					  "    AS %s\n"
3184 					  "    [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]",
3185 					  _("name"),
3186 					  _("column_name"),
3187 					  _("view_option_name"),
3188 					  _("view_option_value"),
3189 					  _("query"));
3190 }
3191 
3192 static void
sql_help_DEALLOCATE(PQExpBuffer buf)3193 sql_help_DEALLOCATE(PQExpBuffer buf)
3194 {
3195 	appendPQExpBuffer(buf,
3196 					  "DEALLOCATE [ PREPARE ] { %s | ALL }",
3197 					  _("name"));
3198 }
3199 
3200 static void
sql_help_DECLARE(PQExpBuffer buf)3201 sql_help_DECLARE(PQExpBuffer buf)
3202 {
3203 	appendPQExpBuffer(buf,
3204 					  "DECLARE %s [ BINARY ] [ ASENSITIVE | INSENSITIVE ] [ [ NO ] SCROLL ]\n"
3205 					  "    CURSOR [ { WITH | WITHOUT } HOLD ] FOR %s",
3206 					  _("name"),
3207 					  _("query"));
3208 }
3209 
3210 static void
sql_help_DELETE(PQExpBuffer buf)3211 sql_help_DELETE(PQExpBuffer buf)
3212 {
3213 	appendPQExpBuffer(buf,
3214 					  "[ WITH [ RECURSIVE ] %s [, ...] ]\n"
3215 					  "DELETE FROM [ ONLY ] %s [ * ] [ [ AS ] %s ]\n"
3216 					  "    [ USING %s [, ...] ]\n"
3217 					  "    [ WHERE %s | WHERE CURRENT OF %s ]\n"
3218 					  "    [ RETURNING * | %s [ [ AS ] %s ] [, ...] ]",
3219 					  _("with_query"),
3220 					  _("table_name"),
3221 					  _("alias"),
3222 					  _("from_item"),
3223 					  _("condition"),
3224 					  _("cursor_name"),
3225 					  _("output_expression"),
3226 					  _("output_name"));
3227 }
3228 
3229 static void
sql_help_DISCARD(PQExpBuffer buf)3230 sql_help_DISCARD(PQExpBuffer buf)
3231 {
3232 	appendPQExpBuffer(buf,
3233 					  "DISCARD { ALL | PLANS | SEQUENCES | TEMPORARY | TEMP }");
3234 }
3235 
3236 static void
sql_help_DO(PQExpBuffer buf)3237 sql_help_DO(PQExpBuffer buf)
3238 {
3239 	appendPQExpBuffer(buf,
3240 					  "DO [ LANGUAGE %s ] %s",
3241 					  _("lang_name"),
3242 					  _("code"));
3243 }
3244 
3245 static void
sql_help_DROP_ACCESS_METHOD(PQExpBuffer buf)3246 sql_help_DROP_ACCESS_METHOD(PQExpBuffer buf)
3247 {
3248 	appendPQExpBuffer(buf,
3249 					  "DROP ACCESS METHOD [ IF EXISTS ] %s [ CASCADE | RESTRICT ]",
3250 					  _("name"));
3251 }
3252 
3253 static void
sql_help_DROP_AGGREGATE(PQExpBuffer buf)3254 sql_help_DROP_AGGREGATE(PQExpBuffer buf)
3255 {
3256 	appendPQExpBuffer(buf,
3257 					  "DROP AGGREGATE [ IF EXISTS ] %s ( %s ) [, ...] [ CASCADE | RESTRICT ]\n"
3258 					  "\n"
3259 					  "%s\n"
3260 					  "\n"
3261 					  "* |\n"
3262 					  "[ %s ] [ %s ] %s [ , ... ] |\n"
3263 					  "[ [ %s ] [ %s ] %s [ , ... ] ] ORDER BY [ %s ] [ %s ] %s [ , ... ]",
3264 					  _("name"),
3265 					  _("aggregate_signature"),
3266 					  _("where aggregate_signature is:"),
3267 					  _("argmode"),
3268 					  _("argname"),
3269 					  _("argtype"),
3270 					  _("argmode"),
3271 					  _("argname"),
3272 					  _("argtype"),
3273 					  _("argmode"),
3274 					  _("argname"),
3275 					  _("argtype"));
3276 }
3277 
3278 static void
sql_help_DROP_CAST(PQExpBuffer buf)3279 sql_help_DROP_CAST(PQExpBuffer buf)
3280 {
3281 	appendPQExpBuffer(buf,
3282 					  "DROP CAST [ IF EXISTS ] (%s AS %s) [ CASCADE | RESTRICT ]",
3283 					  _("source_type"),
3284 					  _("target_type"));
3285 }
3286 
3287 static void
sql_help_DROP_COLLATION(PQExpBuffer buf)3288 sql_help_DROP_COLLATION(PQExpBuffer buf)
3289 {
3290 	appendPQExpBuffer(buf,
3291 					  "DROP COLLATION [ IF EXISTS ] %s [ CASCADE | RESTRICT ]",
3292 					  _("name"));
3293 }
3294 
3295 static void
sql_help_DROP_CONVERSION(PQExpBuffer buf)3296 sql_help_DROP_CONVERSION(PQExpBuffer buf)
3297 {
3298 	appendPQExpBuffer(buf,
3299 					  "DROP CONVERSION [ IF EXISTS ] %s [ CASCADE | RESTRICT ]",
3300 					  _("name"));
3301 }
3302 
3303 static void
sql_help_DROP_DATABASE(PQExpBuffer buf)3304 sql_help_DROP_DATABASE(PQExpBuffer buf)
3305 {
3306 	appendPQExpBuffer(buf,
3307 					  "DROP DATABASE [ IF EXISTS ] %s [ [ WITH ] ( %s [, ...] ) ]\n"
3308 					  "\n"
3309 					  "%s\n"
3310 					  "\n"
3311 					  "    FORCE",
3312 					  _("name"),
3313 					  _("option"),
3314 					  _("where option can be:"));
3315 }
3316 
3317 static void
sql_help_DROP_DOMAIN(PQExpBuffer buf)3318 sql_help_DROP_DOMAIN(PQExpBuffer buf)
3319 {
3320 	appendPQExpBuffer(buf,
3321 					  "DROP DOMAIN [ IF EXISTS ] %s [, ...] [ CASCADE | RESTRICT ]",
3322 					  _("name"));
3323 }
3324 
3325 static void
sql_help_DROP_EVENT_TRIGGER(PQExpBuffer buf)3326 sql_help_DROP_EVENT_TRIGGER(PQExpBuffer buf)
3327 {
3328 	appendPQExpBuffer(buf,
3329 					  "DROP EVENT TRIGGER [ IF EXISTS ] %s [ CASCADE | RESTRICT ]",
3330 					  _("name"));
3331 }
3332 
3333 static void
sql_help_DROP_EXTENSION(PQExpBuffer buf)3334 sql_help_DROP_EXTENSION(PQExpBuffer buf)
3335 {
3336 	appendPQExpBuffer(buf,
3337 					  "DROP EXTENSION [ IF EXISTS ] %s [, ...] [ CASCADE | RESTRICT ]",
3338 					  _("name"));
3339 }
3340 
3341 static void
sql_help_DROP_FOREIGN_DATA_WRAPPER(PQExpBuffer buf)3342 sql_help_DROP_FOREIGN_DATA_WRAPPER(PQExpBuffer buf)
3343 {
3344 	appendPQExpBuffer(buf,
3345 					  "DROP FOREIGN DATA WRAPPER [ IF EXISTS ] %s [, ...] [ CASCADE | RESTRICT ]",
3346 					  _("name"));
3347 }
3348 
3349 static void
sql_help_DROP_FOREIGN_TABLE(PQExpBuffer buf)3350 sql_help_DROP_FOREIGN_TABLE(PQExpBuffer buf)
3351 {
3352 	appendPQExpBuffer(buf,
3353 					  "DROP FOREIGN TABLE [ IF EXISTS ] %s [, ...] [ CASCADE | RESTRICT ]",
3354 					  _("name"));
3355 }
3356 
3357 static void
sql_help_DROP_FUNCTION(PQExpBuffer buf)3358 sql_help_DROP_FUNCTION(PQExpBuffer buf)
3359 {
3360 	appendPQExpBuffer(buf,
3361 					  "DROP FUNCTION [ IF EXISTS ] %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ] [, ...]\n"
3362 					  "    [ CASCADE | RESTRICT ]",
3363 					  _("name"),
3364 					  _("argmode"),
3365 					  _("argname"),
3366 					  _("argtype"));
3367 }
3368 
3369 static void
sql_help_DROP_GROUP(PQExpBuffer buf)3370 sql_help_DROP_GROUP(PQExpBuffer buf)
3371 {
3372 	appendPQExpBuffer(buf,
3373 					  "DROP GROUP [ IF EXISTS ] %s [, ...]",
3374 					  _("name"));
3375 }
3376 
3377 static void
sql_help_DROP_INDEX(PQExpBuffer buf)3378 sql_help_DROP_INDEX(PQExpBuffer buf)
3379 {
3380 	appendPQExpBuffer(buf,
3381 					  "DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] %s [, ...] [ CASCADE | RESTRICT ]",
3382 					  _("name"));
3383 }
3384 
3385 static void
sql_help_DROP_LANGUAGE(PQExpBuffer buf)3386 sql_help_DROP_LANGUAGE(PQExpBuffer buf)
3387 {
3388 	appendPQExpBuffer(buf,
3389 					  "DROP [ PROCEDURAL ] LANGUAGE [ IF EXISTS ] %s [ CASCADE | RESTRICT ]",
3390 					  _("name"));
3391 }
3392 
3393 static void
sql_help_DROP_MATERIALIZED_VIEW(PQExpBuffer buf)3394 sql_help_DROP_MATERIALIZED_VIEW(PQExpBuffer buf)
3395 {
3396 	appendPQExpBuffer(buf,
3397 					  "DROP MATERIALIZED VIEW [ IF EXISTS ] %s [, ...] [ CASCADE | RESTRICT ]",
3398 					  _("name"));
3399 }
3400 
3401 static void
sql_help_DROP_OPERATOR(PQExpBuffer buf)3402 sql_help_DROP_OPERATOR(PQExpBuffer buf)
3403 {
3404 	appendPQExpBuffer(buf,
3405 					  "DROP OPERATOR [ IF EXISTS ] %s ( { %s | NONE } , %s ) [, ...] [ CASCADE | RESTRICT ]",
3406 					  _("name"),
3407 					  _("left_type"),
3408 					  _("right_type"));
3409 }
3410 
3411 static void
sql_help_DROP_OPERATOR_CLASS(PQExpBuffer buf)3412 sql_help_DROP_OPERATOR_CLASS(PQExpBuffer buf)
3413 {
3414 	appendPQExpBuffer(buf,
3415 					  "DROP OPERATOR CLASS [ IF EXISTS ] %s USING %s [ CASCADE | RESTRICT ]",
3416 					  _("name"),
3417 					  _("index_method"));
3418 }
3419 
3420 static void
sql_help_DROP_OPERATOR_FAMILY(PQExpBuffer buf)3421 sql_help_DROP_OPERATOR_FAMILY(PQExpBuffer buf)
3422 {
3423 	appendPQExpBuffer(buf,
3424 					  "DROP OPERATOR FAMILY [ IF EXISTS ] %s USING %s [ CASCADE | RESTRICT ]",
3425 					  _("name"),
3426 					  _("index_method"));
3427 }
3428 
3429 static void
sql_help_DROP_OWNED(PQExpBuffer buf)3430 sql_help_DROP_OWNED(PQExpBuffer buf)
3431 {
3432 	appendPQExpBuffer(buf,
3433 					  "DROP OWNED BY { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] [ CASCADE | RESTRICT ]",
3434 					  _("name"));
3435 }
3436 
3437 static void
sql_help_DROP_POLICY(PQExpBuffer buf)3438 sql_help_DROP_POLICY(PQExpBuffer buf)
3439 {
3440 	appendPQExpBuffer(buf,
3441 					  "DROP POLICY [ IF EXISTS ] %s ON %s [ CASCADE | RESTRICT ]",
3442 					  _("name"),
3443 					  _("table_name"));
3444 }
3445 
3446 static void
sql_help_DROP_PROCEDURE(PQExpBuffer buf)3447 sql_help_DROP_PROCEDURE(PQExpBuffer buf)
3448 {
3449 	appendPQExpBuffer(buf,
3450 					  "DROP PROCEDURE [ IF EXISTS ] %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ] [, ...]\n"
3451 					  "    [ CASCADE | RESTRICT ]",
3452 					  _("name"),
3453 					  _("argmode"),
3454 					  _("argname"),
3455 					  _("argtype"));
3456 }
3457 
3458 static void
sql_help_DROP_PUBLICATION(PQExpBuffer buf)3459 sql_help_DROP_PUBLICATION(PQExpBuffer buf)
3460 {
3461 	appendPQExpBuffer(buf,
3462 					  "DROP PUBLICATION [ IF EXISTS ] %s [, ...] [ CASCADE | RESTRICT ]",
3463 					  _("name"));
3464 }
3465 
3466 static void
sql_help_DROP_ROLE(PQExpBuffer buf)3467 sql_help_DROP_ROLE(PQExpBuffer buf)
3468 {
3469 	appendPQExpBuffer(buf,
3470 					  "DROP ROLE [ IF EXISTS ] %s [, ...]",
3471 					  _("name"));
3472 }
3473 
3474 static void
sql_help_DROP_ROUTINE(PQExpBuffer buf)3475 sql_help_DROP_ROUTINE(PQExpBuffer buf)
3476 {
3477 	appendPQExpBuffer(buf,
3478 					  "DROP ROUTINE [ IF EXISTS ] %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ] [, ...]\n"
3479 					  "    [ CASCADE | RESTRICT ]",
3480 					  _("name"),
3481 					  _("argmode"),
3482 					  _("argname"),
3483 					  _("argtype"));
3484 }
3485 
3486 static void
sql_help_DROP_RULE(PQExpBuffer buf)3487 sql_help_DROP_RULE(PQExpBuffer buf)
3488 {
3489 	appendPQExpBuffer(buf,
3490 					  "DROP RULE [ IF EXISTS ] %s ON %s [ CASCADE | RESTRICT ]",
3491 					  _("name"),
3492 					  _("table_name"));
3493 }
3494 
3495 static void
sql_help_DROP_SCHEMA(PQExpBuffer buf)3496 sql_help_DROP_SCHEMA(PQExpBuffer buf)
3497 {
3498 	appendPQExpBuffer(buf,
3499 					  "DROP SCHEMA [ IF EXISTS ] %s [, ...] [ CASCADE | RESTRICT ]",
3500 					  _("name"));
3501 }
3502 
3503 static void
sql_help_DROP_SEQUENCE(PQExpBuffer buf)3504 sql_help_DROP_SEQUENCE(PQExpBuffer buf)
3505 {
3506 	appendPQExpBuffer(buf,
3507 					  "DROP SEQUENCE [ IF EXISTS ] %s [, ...] [ CASCADE | RESTRICT ]",
3508 					  _("name"));
3509 }
3510 
3511 static void
sql_help_DROP_SERVER(PQExpBuffer buf)3512 sql_help_DROP_SERVER(PQExpBuffer buf)
3513 {
3514 	appendPQExpBuffer(buf,
3515 					  "DROP SERVER [ IF EXISTS ] %s [, ...] [ CASCADE | RESTRICT ]",
3516 					  _("name"));
3517 }
3518 
3519 static void
sql_help_DROP_STATISTICS(PQExpBuffer buf)3520 sql_help_DROP_STATISTICS(PQExpBuffer buf)
3521 {
3522 	appendPQExpBuffer(buf,
3523 					  "DROP STATISTICS [ IF EXISTS ] %s [, ...] [ CASCADE | RESTRICT ]",
3524 					  _("name"));
3525 }
3526 
3527 static void
sql_help_DROP_SUBSCRIPTION(PQExpBuffer buf)3528 sql_help_DROP_SUBSCRIPTION(PQExpBuffer buf)
3529 {
3530 	appendPQExpBuffer(buf,
3531 					  "DROP SUBSCRIPTION [ IF EXISTS ] %s [ CASCADE | RESTRICT ]",
3532 					  _("name"));
3533 }
3534 
3535 static void
sql_help_DROP_TABLE(PQExpBuffer buf)3536 sql_help_DROP_TABLE(PQExpBuffer buf)
3537 {
3538 	appendPQExpBuffer(buf,
3539 					  "DROP TABLE [ IF EXISTS ] %s [, ...] [ CASCADE | RESTRICT ]",
3540 					  _("name"));
3541 }
3542 
3543 static void
sql_help_DROP_TABLESPACE(PQExpBuffer buf)3544 sql_help_DROP_TABLESPACE(PQExpBuffer buf)
3545 {
3546 	appendPQExpBuffer(buf,
3547 					  "DROP TABLESPACE [ IF EXISTS ] %s",
3548 					  _("name"));
3549 }
3550 
3551 static void
sql_help_DROP_TEXT_SEARCH_CONFIGURATION(PQExpBuffer buf)3552 sql_help_DROP_TEXT_SEARCH_CONFIGURATION(PQExpBuffer buf)
3553 {
3554 	appendPQExpBuffer(buf,
3555 					  "DROP TEXT SEARCH CONFIGURATION [ IF EXISTS ] %s [ CASCADE | RESTRICT ]",
3556 					  _("name"));
3557 }
3558 
3559 static void
sql_help_DROP_TEXT_SEARCH_DICTIONARY(PQExpBuffer buf)3560 sql_help_DROP_TEXT_SEARCH_DICTIONARY(PQExpBuffer buf)
3561 {
3562 	appendPQExpBuffer(buf,
3563 					  "DROP TEXT SEARCH DICTIONARY [ IF EXISTS ] %s [ CASCADE | RESTRICT ]",
3564 					  _("name"));
3565 }
3566 
3567 static void
sql_help_DROP_TEXT_SEARCH_PARSER(PQExpBuffer buf)3568 sql_help_DROP_TEXT_SEARCH_PARSER(PQExpBuffer buf)
3569 {
3570 	appendPQExpBuffer(buf,
3571 					  "DROP TEXT SEARCH PARSER [ IF EXISTS ] %s [ CASCADE | RESTRICT ]",
3572 					  _("name"));
3573 }
3574 
3575 static void
sql_help_DROP_TEXT_SEARCH_TEMPLATE(PQExpBuffer buf)3576 sql_help_DROP_TEXT_SEARCH_TEMPLATE(PQExpBuffer buf)
3577 {
3578 	appendPQExpBuffer(buf,
3579 					  "DROP TEXT SEARCH TEMPLATE [ IF EXISTS ] %s [ CASCADE | RESTRICT ]",
3580 					  _("name"));
3581 }
3582 
3583 static void
sql_help_DROP_TRANSFORM(PQExpBuffer buf)3584 sql_help_DROP_TRANSFORM(PQExpBuffer buf)
3585 {
3586 	appendPQExpBuffer(buf,
3587 					  "DROP TRANSFORM [ IF EXISTS ] FOR %s LANGUAGE %s [ CASCADE | RESTRICT ]",
3588 					  _("type_name"),
3589 					  _("lang_name"));
3590 }
3591 
3592 static void
sql_help_DROP_TRIGGER(PQExpBuffer buf)3593 sql_help_DROP_TRIGGER(PQExpBuffer buf)
3594 {
3595 	appendPQExpBuffer(buf,
3596 					  "DROP TRIGGER [ IF EXISTS ] %s ON %s [ CASCADE | RESTRICT ]",
3597 					  _("name"),
3598 					  _("table_name"));
3599 }
3600 
3601 static void
sql_help_DROP_TYPE(PQExpBuffer buf)3602 sql_help_DROP_TYPE(PQExpBuffer buf)
3603 {
3604 	appendPQExpBuffer(buf,
3605 					  "DROP TYPE [ IF EXISTS ] %s [, ...] [ CASCADE | RESTRICT ]",
3606 					  _("name"));
3607 }
3608 
3609 static void
sql_help_DROP_USER(PQExpBuffer buf)3610 sql_help_DROP_USER(PQExpBuffer buf)
3611 {
3612 	appendPQExpBuffer(buf,
3613 					  "DROP USER [ IF EXISTS ] %s [, ...]",
3614 					  _("name"));
3615 }
3616 
3617 static void
sql_help_DROP_USER_MAPPING(PQExpBuffer buf)3618 sql_help_DROP_USER_MAPPING(PQExpBuffer buf)
3619 {
3620 	appendPQExpBuffer(buf,
3621 					  "DROP USER MAPPING [ IF EXISTS ] FOR { %s | USER | CURRENT_ROLE | CURRENT_USER | PUBLIC } SERVER %s",
3622 					  _("user_name"),
3623 					  _("server_name"));
3624 }
3625 
3626 static void
sql_help_DROP_VIEW(PQExpBuffer buf)3627 sql_help_DROP_VIEW(PQExpBuffer buf)
3628 {
3629 	appendPQExpBuffer(buf,
3630 					  "DROP VIEW [ IF EXISTS ] %s [, ...] [ CASCADE | RESTRICT ]",
3631 					  _("name"));
3632 }
3633 
3634 static void
sql_help_END(PQExpBuffer buf)3635 sql_help_END(PQExpBuffer buf)
3636 {
3637 	appendPQExpBuffer(buf,
3638 					  "END [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]");
3639 }
3640 
3641 static void
sql_help_EXECUTE(PQExpBuffer buf)3642 sql_help_EXECUTE(PQExpBuffer buf)
3643 {
3644 	appendPQExpBuffer(buf,
3645 					  "EXECUTE %s [ ( %s [, ...] ) ]",
3646 					  _("name"),
3647 					  _("parameter"));
3648 }
3649 
3650 static void
sql_help_EXPLAIN(PQExpBuffer buf)3651 sql_help_EXPLAIN(PQExpBuffer buf)
3652 {
3653 	appendPQExpBuffer(buf,
3654 					  "EXPLAIN [ ( %s [, ...] ) ] %s\n"
3655 					  "EXPLAIN [ ANALYZE ] [ VERBOSE ] %s\n"
3656 					  "\n"
3657 					  "%s\n"
3658 					  "\n"
3659 					  "    ANALYZE [ %s ]\n"
3660 					  "    VERBOSE [ %s ]\n"
3661 					  "    COSTS [ %s ]\n"
3662 					  "    SETTINGS [ %s ]\n"
3663 					  "    BUFFERS [ %s ]\n"
3664 					  "    WAL [ %s ]\n"
3665 					  "    TIMING [ %s ]\n"
3666 					  "    SUMMARY [ %s ]\n"
3667 					  "    FORMAT { TEXT | XML | JSON | YAML }",
3668 					  _("option"),
3669 					  _("statement"),
3670 					  _("statement"),
3671 					  _("where option can be one of:"),
3672 					  _("boolean"),
3673 					  _("boolean"),
3674 					  _("boolean"),
3675 					  _("boolean"),
3676 					  _("boolean"),
3677 					  _("boolean"),
3678 					  _("boolean"),
3679 					  _("boolean"));
3680 }
3681 
3682 static void
sql_help_FETCH(PQExpBuffer buf)3683 sql_help_FETCH(PQExpBuffer buf)
3684 {
3685 	appendPQExpBuffer(buf,
3686 					  "FETCH [ %s [ FROM | IN ] ] %s\n"
3687 					  "\n"
3688 					  "%s\n"
3689 					  "\n"
3690 					  "    NEXT\n"
3691 					  "    PRIOR\n"
3692 					  "    FIRST\n"
3693 					  "    LAST\n"
3694 					  "    ABSOLUTE %s\n"
3695 					  "    RELATIVE %s\n"
3696 					  "    %s\n"
3697 					  "    ALL\n"
3698 					  "    FORWARD\n"
3699 					  "    FORWARD %s\n"
3700 					  "    FORWARD ALL\n"
3701 					  "    BACKWARD\n"
3702 					  "    BACKWARD %s\n"
3703 					  "    BACKWARD ALL",
3704 					  _("direction"),
3705 					  _("cursor_name"),
3706 					  _("where direction can be empty or one of:"),
3707 					  _("count"),
3708 					  _("count"),
3709 					  _("count"),
3710 					  _("count"),
3711 					  _("count"));
3712 }
3713 
3714 static void
sql_help_GRANT(PQExpBuffer buf)3715 sql_help_GRANT(PQExpBuffer buf)
3716 {
3717 	appendPQExpBuffer(buf,
3718 					  "GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }\n"
3719 					  "    [, ...] | ALL [ PRIVILEGES ] }\n"
3720 					  "    ON { [ TABLE ] %s [, ...]\n"
3721 					  "         | ALL TABLES IN SCHEMA %s [, ...] }\n"
3722 					  "    TO %s [, ...] [ WITH GRANT OPTION ]\n"
3723 					  "    [ GRANTED BY %s ]\n"
3724 					  "\n"
3725 					  "GRANT { { SELECT | INSERT | UPDATE | REFERENCES } ( %s [, ...] )\n"
3726 					  "    [, ...] | ALL [ PRIVILEGES ] ( %s [, ...] ) }\n"
3727 					  "    ON [ TABLE ] %s [, ...]\n"
3728 					  "    TO %s [, ...] [ WITH GRANT OPTION ]\n"
3729 					  "    [ GRANTED BY %s ]\n"
3730 					  "\n"
3731 					  "GRANT { { USAGE | SELECT | UPDATE }\n"
3732 					  "    [, ...] | ALL [ PRIVILEGES ] }\n"
3733 					  "    ON { SEQUENCE %s [, ...]\n"
3734 					  "         | ALL SEQUENCES IN SCHEMA %s [, ...] }\n"
3735 					  "    TO %s [, ...] [ WITH GRANT OPTION ]\n"
3736 					  "    [ GRANTED BY %s ]\n"
3737 					  "\n"
3738 					  "GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] }\n"
3739 					  "    ON DATABASE %s [, ...]\n"
3740 					  "    TO %s [, ...] [ WITH GRANT OPTION ]\n"
3741 					  "    [ GRANTED BY %s ]\n"
3742 					  "\n"
3743 					  "GRANT { USAGE | ALL [ PRIVILEGES ] }\n"
3744 					  "    ON DOMAIN %s [, ...]\n"
3745 					  "    TO %s [, ...] [ WITH GRANT OPTION ]\n"
3746 					  "    [ GRANTED BY %s ]\n"
3747 					  "\n"
3748 					  "GRANT { USAGE | ALL [ PRIVILEGES ] }\n"
3749 					  "    ON FOREIGN DATA WRAPPER %s [, ...]\n"
3750 					  "    TO %s [, ...] [ WITH GRANT OPTION ]\n"
3751 					  "    [ GRANTED BY %s ]\n"
3752 					  "\n"
3753 					  "GRANT { USAGE | ALL [ PRIVILEGES ] }\n"
3754 					  "    ON FOREIGN SERVER %s [, ...]\n"
3755 					  "    TO %s [, ...] [ WITH GRANT OPTION ]\n"
3756 					  "    [ GRANTED BY %s ]\n"
3757 					  "\n"
3758 					  "GRANT { EXECUTE | ALL [ PRIVILEGES ] }\n"
3759 					  "    ON { { FUNCTION | PROCEDURE | ROUTINE } %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ] [, ...]\n"
3760 					  "         | ALL { FUNCTIONS | PROCEDURES | ROUTINES } IN SCHEMA %s [, ...] }\n"
3761 					  "    TO %s [, ...] [ WITH GRANT OPTION ]\n"
3762 					  "    [ GRANTED BY %s ]\n"
3763 					  "\n"
3764 					  "GRANT { USAGE | ALL [ PRIVILEGES ] }\n"
3765 					  "    ON LANGUAGE %s [, ...]\n"
3766 					  "    TO %s [, ...] [ WITH GRANT OPTION ]\n"
3767 					  "    [ GRANTED BY %s ]\n"
3768 					  "\n"
3769 					  "GRANT { { SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] }\n"
3770 					  "    ON LARGE OBJECT %s [, ...]\n"
3771 					  "    TO %s [, ...] [ WITH GRANT OPTION ]\n"
3772 					  "    [ GRANTED BY %s ]\n"
3773 					  "\n"
3774 					  "GRANT { { CREATE | USAGE } [, ...] | ALL [ PRIVILEGES ] }\n"
3775 					  "    ON SCHEMA %s [, ...]\n"
3776 					  "    TO %s [, ...] [ WITH GRANT OPTION ]\n"
3777 					  "    [ GRANTED BY %s ]\n"
3778 					  "\n"
3779 					  "GRANT { CREATE | ALL [ PRIVILEGES ] }\n"
3780 					  "    ON TABLESPACE %s [, ...]\n"
3781 					  "    TO %s [, ...] [ WITH GRANT OPTION ]\n"
3782 					  "    [ GRANTED BY %s ]\n"
3783 					  "\n"
3784 					  "GRANT { USAGE | ALL [ PRIVILEGES ] }\n"
3785 					  "    ON TYPE %s [, ...]\n"
3786 					  "    TO %s [, ...] [ WITH GRANT OPTION ]\n"
3787 					  "    [ GRANTED BY %s ]\n"
3788 					  "\n"
3789 					  "GRANT %s [, ...] TO %s [, ...]\n"
3790 					  "    [ WITH ADMIN OPTION ]\n"
3791 					  "    [ GRANTED BY %s ]\n"
3792 					  "\n"
3793 					  "%s\n"
3794 					  "\n"
3795 					  "    [ GROUP ] %s\n"
3796 					  "  | PUBLIC\n"
3797 					  "  | CURRENT_ROLE\n"
3798 					  "  | CURRENT_USER\n"
3799 					  "  | SESSION_USER",
3800 					  _("table_name"),
3801 					  _("schema_name"),
3802 					  _("role_specification"),
3803 					  _("role_specification"),
3804 					  _("column_name"),
3805 					  _("column_name"),
3806 					  _("table_name"),
3807 					  _("role_specification"),
3808 					  _("role_specification"),
3809 					  _("sequence_name"),
3810 					  _("schema_name"),
3811 					  _("role_specification"),
3812 					  _("role_specification"),
3813 					  _("database_name"),
3814 					  _("role_specification"),
3815 					  _("role_specification"),
3816 					  _("domain_name"),
3817 					  _("role_specification"),
3818 					  _("role_specification"),
3819 					  _("fdw_name"),
3820 					  _("role_specification"),
3821 					  _("role_specification"),
3822 					  _("server_name"),
3823 					  _("role_specification"),
3824 					  _("role_specification"),
3825 					  _("routine_name"),
3826 					  _("argmode"),
3827 					  _("arg_name"),
3828 					  _("arg_type"),
3829 					  _("schema_name"),
3830 					  _("role_specification"),
3831 					  _("role_specification"),
3832 					  _("lang_name"),
3833 					  _("role_specification"),
3834 					  _("role_specification"),
3835 					  _("loid"),
3836 					  _("role_specification"),
3837 					  _("role_specification"),
3838 					  _("schema_name"),
3839 					  _("role_specification"),
3840 					  _("role_specification"),
3841 					  _("tablespace_name"),
3842 					  _("role_specification"),
3843 					  _("role_specification"),
3844 					  _("type_name"),
3845 					  _("role_specification"),
3846 					  _("role_specification"),
3847 					  _("role_name"),
3848 					  _("role_specification"),
3849 					  _("role_specification"),
3850 					  _("where role_specification can be:"),
3851 					  _("role_name"));
3852 }
3853 
3854 static void
sql_help_IMPORT_FOREIGN_SCHEMA(PQExpBuffer buf)3855 sql_help_IMPORT_FOREIGN_SCHEMA(PQExpBuffer buf)
3856 {
3857 	appendPQExpBuffer(buf,
3858 					  "IMPORT FOREIGN SCHEMA %s\n"
3859 					  "    [ { LIMIT TO | EXCEPT } ( %s [, ...] ) ]\n"
3860 					  "    FROM SERVER %s\n"
3861 					  "    INTO %s\n"
3862 					  "    [ OPTIONS ( %s '%s' [, ... ] ) ]",
3863 					  _("remote_schema"),
3864 					  _("table_name"),
3865 					  _("server_name"),
3866 					  _("local_schema"),
3867 					  _("option"),
3868 					  _("value"));
3869 }
3870 
3871 static void
sql_help_INSERT(PQExpBuffer buf)3872 sql_help_INSERT(PQExpBuffer buf)
3873 {
3874 	appendPQExpBuffer(buf,
3875 					  "[ WITH [ RECURSIVE ] %s [, ...] ]\n"
3876 					  "INSERT INTO %s [ AS %s ] [ ( %s [, ...] ) ]\n"
3877 					  "    [ OVERRIDING { SYSTEM | USER } VALUE ]\n"
3878 					  "    { DEFAULT VALUES | VALUES ( { %s | DEFAULT } [, ...] ) [, ...] | %s }\n"
3879 					  "    [ ON CONFLICT [ %s ] %s ]\n"
3880 					  "    [ RETURNING * | %s [ [ AS ] %s ] [, ...] ]\n"
3881 					  "\n"
3882 					  "%s\n"
3883 					  "\n"
3884 					  "    ( { %s | ( %s ) } [ COLLATE %s ] [ %s ] [, ...] ) [ WHERE %s ]\n"
3885 					  "    ON CONSTRAINT %s\n"
3886 					  "\n"
3887 					  "%s\n"
3888 					  "\n"
3889 					  "    DO NOTHING\n"
3890 					  "    DO UPDATE SET { %s = { %s | DEFAULT } |\n"
3891 					  "                    ( %s [, ...] ) = [ ROW ] ( { %s | DEFAULT } [, ...] ) |\n"
3892 					  "                    ( %s [, ...] ) = ( %s )\n"
3893 					  "                  } [, ...]\n"
3894 					  "              [ WHERE %s ]",
3895 					  _("with_query"),
3896 					  _("table_name"),
3897 					  _("alias"),
3898 					  _("column_name"),
3899 					  _("expression"),
3900 					  _("query"),
3901 					  _("conflict_target"),
3902 					  _("conflict_action"),
3903 					  _("output_expression"),
3904 					  _("output_name"),
3905 					  _("where conflict_target can be one of:"),
3906 					  _("index_column_name"),
3907 					  _("index_expression"),
3908 					  _("collation"),
3909 					  _("opclass"),
3910 					  _("index_predicate"),
3911 					  _("constraint_name"),
3912 					  _("and conflict_action is one of:"),
3913 					  _("column_name"),
3914 					  _("expression"),
3915 					  _("column_name"),
3916 					  _("expression"),
3917 					  _("column_name"),
3918 					  _("sub-SELECT"),
3919 					  _("condition"));
3920 }
3921 
3922 static void
sql_help_LISTEN(PQExpBuffer buf)3923 sql_help_LISTEN(PQExpBuffer buf)
3924 {
3925 	appendPQExpBuffer(buf,
3926 					  "LISTEN %s",
3927 					  _("channel"));
3928 }
3929 
3930 static void
sql_help_LOAD(PQExpBuffer buf)3931 sql_help_LOAD(PQExpBuffer buf)
3932 {
3933 	appendPQExpBuffer(buf,
3934 					  "LOAD '%s'",
3935 					  _("filename"));
3936 }
3937 
3938 static void
sql_help_LOCK(PQExpBuffer buf)3939 sql_help_LOCK(PQExpBuffer buf)
3940 {
3941 	appendPQExpBuffer(buf,
3942 					  "LOCK [ TABLE ] [ ONLY ] %s [ * ] [, ...] [ IN %s MODE ] [ NOWAIT ]\n"
3943 					  "\n"
3944 					  "%s\n"
3945 					  "\n"
3946 					  "    ACCESS SHARE | ROW SHARE | ROW EXCLUSIVE | SHARE UPDATE EXCLUSIVE\n"
3947 					  "    | SHARE | SHARE ROW EXCLUSIVE | EXCLUSIVE | ACCESS EXCLUSIVE",
3948 					  _("name"),
3949 					  _("lockmode"),
3950 					  _("where lockmode is one of:"));
3951 }
3952 
3953 static void
sql_help_MOVE(PQExpBuffer buf)3954 sql_help_MOVE(PQExpBuffer buf)
3955 {
3956 	appendPQExpBuffer(buf,
3957 					  "MOVE [ %s [ FROM | IN ] ] %s\n"
3958 					  "\n"
3959 					  "%s\n"
3960 					  "\n"
3961 					  "    NEXT\n"
3962 					  "    PRIOR\n"
3963 					  "    FIRST\n"
3964 					  "    LAST\n"
3965 					  "    ABSOLUTE %s\n"
3966 					  "    RELATIVE %s\n"
3967 					  "    %s\n"
3968 					  "    ALL\n"
3969 					  "    FORWARD\n"
3970 					  "    FORWARD %s\n"
3971 					  "    FORWARD ALL\n"
3972 					  "    BACKWARD\n"
3973 					  "    BACKWARD %s\n"
3974 					  "    BACKWARD ALL",
3975 					  _("direction"),
3976 					  _("cursor_name"),
3977 					  _("where direction can be empty or one of:"),
3978 					  _("count"),
3979 					  _("count"),
3980 					  _("count"),
3981 					  _("count"),
3982 					  _("count"));
3983 }
3984 
3985 static void
sql_help_NOTIFY(PQExpBuffer buf)3986 sql_help_NOTIFY(PQExpBuffer buf)
3987 {
3988 	appendPQExpBuffer(buf,
3989 					  "NOTIFY %s [ , %s ]",
3990 					  _("channel"),
3991 					  _("payload"));
3992 }
3993 
3994 static void
sql_help_PREPARE(PQExpBuffer buf)3995 sql_help_PREPARE(PQExpBuffer buf)
3996 {
3997 	appendPQExpBuffer(buf,
3998 					  "PREPARE %s [ ( %s [, ...] ) ] AS %s",
3999 					  _("name"),
4000 					  _("data_type"),
4001 					  _("statement"));
4002 }
4003 
4004 static void
sql_help_PREPARE_TRANSACTION(PQExpBuffer buf)4005 sql_help_PREPARE_TRANSACTION(PQExpBuffer buf)
4006 {
4007 	appendPQExpBuffer(buf,
4008 					  "PREPARE TRANSACTION %s",
4009 					  _("transaction_id"));
4010 }
4011 
4012 static void
sql_help_REASSIGN_OWNED(PQExpBuffer buf)4013 sql_help_REASSIGN_OWNED(PQExpBuffer buf)
4014 {
4015 	appendPQExpBuffer(buf,
4016 					  "REASSIGN OWNED BY { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...]\n"
4017 					  "               TO { %s | CURRENT_ROLE | CURRENT_USER | SESSION_USER }",
4018 					  _("old_role"),
4019 					  _("new_role"));
4020 }
4021 
4022 static void
sql_help_REFRESH_MATERIALIZED_VIEW(PQExpBuffer buf)4023 sql_help_REFRESH_MATERIALIZED_VIEW(PQExpBuffer buf)
4024 {
4025 	appendPQExpBuffer(buf,
4026 					  "REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] %s\n"
4027 					  "    [ WITH [ NO ] DATA ]",
4028 					  _("name"));
4029 }
4030 
4031 static void
sql_help_REINDEX(PQExpBuffer buf)4032 sql_help_REINDEX(PQExpBuffer buf)
4033 {
4034 	appendPQExpBuffer(buf,
4035 					  "REINDEX [ ( %s [, ...] ) ] { INDEX | TABLE | SCHEMA | DATABASE | SYSTEM } [ CONCURRENTLY ] %s\n"
4036 					  "\n"
4037 					  "%s\n"
4038 					  "\n"
4039 					  "    CONCURRENTLY [ %s ]\n"
4040 					  "    TABLESPACE %s\n"
4041 					  "    VERBOSE [ %s ]",
4042 					  _("option"),
4043 					  _("name"),
4044 					  _("where option can be one of:"),
4045 					  _("boolean"),
4046 					  _("new_tablespace"),
4047 					  _("boolean"));
4048 }
4049 
4050 static void
sql_help_RELEASE_SAVEPOINT(PQExpBuffer buf)4051 sql_help_RELEASE_SAVEPOINT(PQExpBuffer buf)
4052 {
4053 	appendPQExpBuffer(buf,
4054 					  "RELEASE [ SAVEPOINT ] %s",
4055 					  _("savepoint_name"));
4056 }
4057 
4058 static void
sql_help_RESET(PQExpBuffer buf)4059 sql_help_RESET(PQExpBuffer buf)
4060 {
4061 	appendPQExpBuffer(buf,
4062 					  "RESET %s\n"
4063 					  "RESET ALL",
4064 					  _("configuration_parameter"));
4065 }
4066 
4067 static void
sql_help_REVOKE(PQExpBuffer buf)4068 sql_help_REVOKE(PQExpBuffer buf)
4069 {
4070 	appendPQExpBuffer(buf,
4071 					  "REVOKE [ GRANT OPTION FOR ]\n"
4072 					  "    { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }\n"
4073 					  "    [, ...] | ALL [ PRIVILEGES ] }\n"
4074 					  "    ON { [ TABLE ] %s [, ...]\n"
4075 					  "         | ALL TABLES IN SCHEMA %s [, ...] }\n"
4076 					  "    FROM %s [, ...]\n"
4077 					  "    [ GRANTED BY %s ]\n"
4078 					  "    [ CASCADE | RESTRICT ]\n"
4079 					  "\n"
4080 					  "REVOKE [ GRANT OPTION FOR ]\n"
4081 					  "    { { SELECT | INSERT | UPDATE | REFERENCES } ( %s [, ...] )\n"
4082 					  "    [, ...] | ALL [ PRIVILEGES ] ( %s [, ...] ) }\n"
4083 					  "    ON [ TABLE ] %s [, ...]\n"
4084 					  "    FROM %s [, ...]\n"
4085 					  "    [ GRANTED BY %s ]\n"
4086 					  "    [ CASCADE | RESTRICT ]\n"
4087 					  "\n"
4088 					  "REVOKE [ GRANT OPTION FOR ]\n"
4089 					  "    { { USAGE | SELECT | UPDATE }\n"
4090 					  "    [, ...] | ALL [ PRIVILEGES ] }\n"
4091 					  "    ON { SEQUENCE %s [, ...]\n"
4092 					  "         | ALL SEQUENCES IN SCHEMA %s [, ...] }\n"
4093 					  "    FROM %s [, ...]\n"
4094 					  "    [ GRANTED BY %s ]\n"
4095 					  "    [ CASCADE | RESTRICT ]\n"
4096 					  "\n"
4097 					  "REVOKE [ GRANT OPTION FOR ]\n"
4098 					  "    { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] }\n"
4099 					  "    ON DATABASE %s [, ...]\n"
4100 					  "    FROM %s [, ...]\n"
4101 					  "    [ GRANTED BY %s ]\n"
4102 					  "    [ CASCADE | RESTRICT ]\n"
4103 					  "\n"
4104 					  "REVOKE [ GRANT OPTION FOR ]\n"
4105 					  "    { USAGE | ALL [ PRIVILEGES ] }\n"
4106 					  "    ON DOMAIN %s [, ...]\n"
4107 					  "    FROM %s [, ...]\n"
4108 					  "    [ GRANTED BY %s ]\n"
4109 					  "    [ CASCADE | RESTRICT ]\n"
4110 					  "\n"
4111 					  "REVOKE [ GRANT OPTION FOR ]\n"
4112 					  "    { USAGE | ALL [ PRIVILEGES ] }\n"
4113 					  "    ON FOREIGN DATA WRAPPER %s [, ...]\n"
4114 					  "    FROM %s [, ...]\n"
4115 					  "    [ GRANTED BY %s ]\n"
4116 					  "    [ CASCADE | RESTRICT ]\n"
4117 					  "\n"
4118 					  "REVOKE [ GRANT OPTION FOR ]\n"
4119 					  "    { USAGE | ALL [ PRIVILEGES ] }\n"
4120 					  "    ON FOREIGN SERVER %s [, ...]\n"
4121 					  "    FROM %s [, ...]\n"
4122 					  "    [ GRANTED BY %s ]\n"
4123 					  "    [ CASCADE | RESTRICT ]\n"
4124 					  "\n"
4125 					  "REVOKE [ GRANT OPTION FOR ]\n"
4126 					  "    { EXECUTE | ALL [ PRIVILEGES ] }\n"
4127 					  "    ON { { FUNCTION | PROCEDURE | ROUTINE } %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ] [, ...]\n"
4128 					  "         | ALL { FUNCTIONS | PROCEDURES | ROUTINES } IN SCHEMA %s [, ...] }\n"
4129 					  "    FROM %s [, ...]\n"
4130 					  "    [ GRANTED BY %s ]\n"
4131 					  "    [ CASCADE | RESTRICT ]\n"
4132 					  "\n"
4133 					  "REVOKE [ GRANT OPTION FOR ]\n"
4134 					  "    { USAGE | ALL [ PRIVILEGES ] }\n"
4135 					  "    ON LANGUAGE %s [, ...]\n"
4136 					  "    FROM %s [, ...]\n"
4137 					  "    [ GRANTED BY %s ]\n"
4138 					  "    [ CASCADE | RESTRICT ]\n"
4139 					  "\n"
4140 					  "REVOKE [ GRANT OPTION FOR ]\n"
4141 					  "    { { SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] }\n"
4142 					  "    ON LARGE OBJECT %s [, ...]\n"
4143 					  "    FROM %s [, ...]\n"
4144 					  "    [ GRANTED BY %s ]\n"
4145 					  "    [ CASCADE | RESTRICT ]\n"
4146 					  "\n"
4147 					  "REVOKE [ GRANT OPTION FOR ]\n"
4148 					  "    { { CREATE | USAGE } [, ...] | ALL [ PRIVILEGES ] }\n"
4149 					  "    ON SCHEMA %s [, ...]\n"
4150 					  "    FROM %s [, ...]\n"
4151 					  "    [ GRANTED BY %s ]\n"
4152 					  "    [ CASCADE | RESTRICT ]\n"
4153 					  "\n"
4154 					  "REVOKE [ GRANT OPTION FOR ]\n"
4155 					  "    { CREATE | ALL [ PRIVILEGES ] }\n"
4156 					  "    ON TABLESPACE %s [, ...]\n"
4157 					  "    FROM %s [, ...]\n"
4158 					  "    [ GRANTED BY %s ]\n"
4159 					  "    [ CASCADE | RESTRICT ]\n"
4160 					  "\n"
4161 					  "REVOKE [ GRANT OPTION FOR ]\n"
4162 					  "    { USAGE | ALL [ PRIVILEGES ] }\n"
4163 					  "    ON TYPE %s [, ...]\n"
4164 					  "    FROM %s [, ...]\n"
4165 					  "    [ GRANTED BY %s ]\n"
4166 					  "    [ CASCADE | RESTRICT ]\n"
4167 					  "\n"
4168 					  "REVOKE [ ADMIN OPTION FOR ]\n"
4169 					  "    %s [, ...] FROM %s [, ...]\n"
4170 					  "    [ GRANTED BY %s ]\n"
4171 					  "    [ CASCADE | RESTRICT ]\n"
4172 					  "\n"
4173 					  "%s\n"
4174 					  "\n"
4175 					  "    [ GROUP ] %s\n"
4176 					  "  | PUBLIC\n"
4177 					  "  | CURRENT_ROLE\n"
4178 					  "  | CURRENT_USER\n"
4179 					  "  | SESSION_USER",
4180 					  _("table_name"),
4181 					  _("schema_name"),
4182 					  _("role_specification"),
4183 					  _("role_specification"),
4184 					  _("column_name"),
4185 					  _("column_name"),
4186 					  _("table_name"),
4187 					  _("role_specification"),
4188 					  _("role_specification"),
4189 					  _("sequence_name"),
4190 					  _("schema_name"),
4191 					  _("role_specification"),
4192 					  _("role_specification"),
4193 					  _("database_name"),
4194 					  _("role_specification"),
4195 					  _("role_specification"),
4196 					  _("domain_name"),
4197 					  _("role_specification"),
4198 					  _("role_specification"),
4199 					  _("fdw_name"),
4200 					  _("role_specification"),
4201 					  _("role_specification"),
4202 					  _("server_name"),
4203 					  _("role_specification"),
4204 					  _("role_specification"),
4205 					  _("function_name"),
4206 					  _("argmode"),
4207 					  _("arg_name"),
4208 					  _("arg_type"),
4209 					  _("schema_name"),
4210 					  _("role_specification"),
4211 					  _("role_specification"),
4212 					  _("lang_name"),
4213 					  _("role_specification"),
4214 					  _("role_specification"),
4215 					  _("loid"),
4216 					  _("role_specification"),
4217 					  _("role_specification"),
4218 					  _("schema_name"),
4219 					  _("role_specification"),
4220 					  _("role_specification"),
4221 					  _("tablespace_name"),
4222 					  _("role_specification"),
4223 					  _("role_specification"),
4224 					  _("type_name"),
4225 					  _("role_specification"),
4226 					  _("role_specification"),
4227 					  _("role_name"),
4228 					  _("role_specification"),
4229 					  _("role_specification"),
4230 					  _("where role_specification can be:"),
4231 					  _("role_name"));
4232 }
4233 
4234 static void
sql_help_ROLLBACK(PQExpBuffer buf)4235 sql_help_ROLLBACK(PQExpBuffer buf)
4236 {
4237 	appendPQExpBuffer(buf,
4238 					  "ROLLBACK [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]");
4239 }
4240 
4241 static void
sql_help_ROLLBACK_PREPARED(PQExpBuffer buf)4242 sql_help_ROLLBACK_PREPARED(PQExpBuffer buf)
4243 {
4244 	appendPQExpBuffer(buf,
4245 					  "ROLLBACK PREPARED %s",
4246 					  _("transaction_id"));
4247 }
4248 
4249 static void
sql_help_ROLLBACK_TO_SAVEPOINT(PQExpBuffer buf)4250 sql_help_ROLLBACK_TO_SAVEPOINT(PQExpBuffer buf)
4251 {
4252 	appendPQExpBuffer(buf,
4253 					  "ROLLBACK [ WORK | TRANSACTION ] TO [ SAVEPOINT ] %s",
4254 					  _("savepoint_name"));
4255 }
4256 
4257 static void
sql_help_SAVEPOINT(PQExpBuffer buf)4258 sql_help_SAVEPOINT(PQExpBuffer buf)
4259 {
4260 	appendPQExpBuffer(buf,
4261 					  "SAVEPOINT %s",
4262 					  _("savepoint_name"));
4263 }
4264 
4265 static void
sql_help_SECURITY_LABEL(PQExpBuffer buf)4266 sql_help_SECURITY_LABEL(PQExpBuffer buf)
4267 {
4268 	appendPQExpBuffer(buf,
4269 					  "SECURITY LABEL [ FOR %s ] ON\n"
4270 					  "{\n"
4271 					  "  TABLE %s |\n"
4272 					  "  COLUMN %s.%s |\n"
4273 					  "  AGGREGATE %s ( %s ) |\n"
4274 					  "  DATABASE %s |\n"
4275 					  "  DOMAIN %s |\n"
4276 					  "  EVENT TRIGGER %s |\n"
4277 					  "  FOREIGN TABLE %s\n"
4278 					  "  FUNCTION %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ] |\n"
4279 					  "  LARGE OBJECT %s |\n"
4280 					  "  MATERIALIZED VIEW %s |\n"
4281 					  "  [ PROCEDURAL ] LANGUAGE %s |\n"
4282 					  "  PROCEDURE %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ] |\n"
4283 					  "  PUBLICATION %s |\n"
4284 					  "  ROLE %s |\n"
4285 					  "  ROUTINE %s [ ( [ [ %s ] [ %s ] %s [, ...] ] ) ] |\n"
4286 					  "  SCHEMA %s |\n"
4287 					  "  SEQUENCE %s |\n"
4288 					  "  SUBSCRIPTION %s |\n"
4289 					  "  TABLESPACE %s |\n"
4290 					  "  TYPE %s |\n"
4291 					  "  VIEW %s\n"
4292 					  "} IS '%s'\n"
4293 					  "\n"
4294 					  "%s\n"
4295 					  "\n"
4296 					  "* |\n"
4297 					  "[ %s ] [ %s ] %s [ , ... ] |\n"
4298 					  "[ [ %s ] [ %s ] %s [ , ... ] ] ORDER BY [ %s ] [ %s ] %s [ , ... ]",
4299 					  _("provider"),
4300 					  _("object_name"),
4301 					  _("table_name"),
4302 					  _("column_name"),
4303 					  _("aggregate_name"),
4304 					  _("aggregate_signature"),
4305 					  _("object_name"),
4306 					  _("object_name"),
4307 					  _("object_name"),
4308 					  _("object_name"),
4309 					  _("function_name"),
4310 					  _("argmode"),
4311 					  _("argname"),
4312 					  _("argtype"),
4313 					  _("large_object_oid"),
4314 					  _("object_name"),
4315 					  _("object_name"),
4316 					  _("procedure_name"),
4317 					  _("argmode"),
4318 					  _("argname"),
4319 					  _("argtype"),
4320 					  _("object_name"),
4321 					  _("object_name"),
4322 					  _("routine_name"),
4323 					  _("argmode"),
4324 					  _("argname"),
4325 					  _("argtype"),
4326 					  _("object_name"),
4327 					  _("object_name"),
4328 					  _("object_name"),
4329 					  _("object_name"),
4330 					  _("object_name"),
4331 					  _("object_name"),
4332 					  _("label"),
4333 					  _("where aggregate_signature is:"),
4334 					  _("argmode"),
4335 					  _("argname"),
4336 					  _("argtype"),
4337 					  _("argmode"),
4338 					  _("argname"),
4339 					  _("argtype"),
4340 					  _("argmode"),
4341 					  _("argname"),
4342 					  _("argtype"));
4343 }
4344 
4345 static void
sql_help_SELECT(PQExpBuffer buf)4346 sql_help_SELECT(PQExpBuffer buf)
4347 {
4348 	appendPQExpBuffer(buf,
4349 					  "[ WITH [ RECURSIVE ] %s [, ...] ]\n"
4350 					  "SELECT [ ALL | DISTINCT [ ON ( %s [, ...] ) ] ]\n"
4351 					  "    [ * | %s [ [ AS ] %s ] [, ...] ]\n"
4352 					  "    [ FROM %s [, ...] ]\n"
4353 					  "    [ WHERE %s ]\n"
4354 					  "    [ GROUP BY [ ALL | DISTINCT ] %s [, ...] ]\n"
4355 					  "    [ HAVING %s ]\n"
4356 					  "    [ WINDOW %s AS ( %s ) [, ...] ]\n"
4357 					  "    [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] %s ]\n"
4358 					  "    [ ORDER BY %s [ ASC | DESC | USING %s ] [ NULLS { FIRST | LAST } ] [, ...] ]\n"
4359 					  "    [ LIMIT { %s | ALL } ]\n"
4360 					  "    [ OFFSET %s [ ROW | ROWS ] ]\n"
4361 					  "    [ FETCH { FIRST | NEXT } [ %s ] { ROW | ROWS } { ONLY | WITH TIES } ]\n"
4362 					  "    [ FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF %s [, ...] ] [ NOWAIT | SKIP LOCKED ] [...] ]\n"
4363 					  "\n"
4364 					  "%s\n"
4365 					  "\n"
4366 					  "    [ ONLY ] %s [ * ] [ [ AS ] %s [ ( %s [, ...] ) ] ]\n"
4367 					  "                [ TABLESAMPLE %s ( %s [, ...] ) [ REPEATABLE ( %s ) ] ]\n"
4368 					  "    [ LATERAL ] ( %s ) [ AS ] %s [ ( %s [, ...] ) ]\n"
4369 					  "    %s [ [ AS ] %s [ ( %s [, ...] ) ] ]\n"
4370 					  "    [ LATERAL ] %s ( [ %s [, ...] ] )\n"
4371 					  "                [ WITH ORDINALITY ] [ [ AS ] %s [ ( %s [, ...] ) ] ]\n"
4372 					  "    [ LATERAL ] %s ( [ %s [, ...] ] ) [ AS ] %s ( %s [, ...] )\n"
4373 					  "    [ LATERAL ] %s ( [ %s [, ...] ] ) AS ( %s [, ...] )\n"
4374 					  "    [ LATERAL ] ROWS FROM( %s ( [ %s [, ...] ] ) [ AS ( %s [, ...] ) ] [, ...] )\n"
4375 					  "                [ WITH ORDINALITY ] [ [ AS ] %s [ ( %s [, ...] ) ] ]\n"
4376 					  "    %s [ NATURAL ] %s %s [ ON %s | USING ( %s [, ...] ) [ AS %s ] ]\n"
4377 					  "\n"
4378 					  "%s\n"
4379 					  "\n"
4380 					  "    ( )\n"
4381 					  "    %s\n"
4382 					  "    ( %s [, ...] )\n"
4383 					  "    ROLLUP ( { %s | ( %s [, ...] ) } [, ...] )\n"
4384 					  "    CUBE ( { %s | ( %s [, ...] ) } [, ...] )\n"
4385 					  "    GROUPING SETS ( %s [, ...] )\n"
4386 					  "\n"
4387 					  "%s\n"
4388 					  "\n"
4389 					  "    %s [ ( %s [, ...] ) ] AS [ [ NOT ] MATERIALIZED ] ( %s | %s | %s | %s | %s )\n"
4390 					  "        [ SEARCH { BREADTH | DEPTH } FIRST BY %s [, ...] SET %s ]\n"
4391 					  "        [ CYCLE %s [, ...] SET %s [ TO %s DEFAULT %s ] USING %s ]\n"
4392 					  "\n"
4393 					  "TABLE [ ONLY ] %s [ * ]",
4394 					  _("with_query"),
4395 					  _("expression"),
4396 					  _("expression"),
4397 					  _("output_name"),
4398 					  _("from_item"),
4399 					  _("condition"),
4400 					  _("grouping_element"),
4401 					  _("condition"),
4402 					  _("window_name"),
4403 					  _("window_definition"),
4404 					  _("select"),
4405 					  _("expression"),
4406 					  _("operator"),
4407 					  _("count"),
4408 					  _("start"),
4409 					  _("count"),
4410 					  _("table_name"),
4411 					  _("where from_item can be one of:"),
4412 					  _("table_name"),
4413 					  _("alias"),
4414 					  _("column_alias"),
4415 					  _("sampling_method"),
4416 					  _("argument"),
4417 					  _("seed"),
4418 					  _("select"),
4419 					  _("alias"),
4420 					  _("column_alias"),
4421 					  _("with_query_name"),
4422 					  _("alias"),
4423 					  _("column_alias"),
4424 					  _("function_name"),
4425 					  _("argument"),
4426 					  _("alias"),
4427 					  _("column_alias"),
4428 					  _("function_name"),
4429 					  _("argument"),
4430 					  _("alias"),
4431 					  _("column_definition"),
4432 					  _("function_name"),
4433 					  _("argument"),
4434 					  _("column_definition"),
4435 					  _("function_name"),
4436 					  _("argument"),
4437 					  _("column_definition"),
4438 					  _("alias"),
4439 					  _("column_alias"),
4440 					  _("from_item"),
4441 					  _("join_type"),
4442 					  _("from_item"),
4443 					  _("join_condition"),
4444 					  _("join_column"),
4445 					  _("join_using_alias"),
4446 					  _("and grouping_element can be one of:"),
4447 					  _("expression"),
4448 					  _("expression"),
4449 					  _("expression"),
4450 					  _("expression"),
4451 					  _("expression"),
4452 					  _("expression"),
4453 					  _("grouping_element"),
4454 					  _("and with_query is:"),
4455 					  _("with_query_name"),
4456 					  _("column_name"),
4457 					  _("select"),
4458 					  _("values"),
4459 					  _("insert"),
4460 					  _("update"),
4461 					  _("delete"),
4462 					  _("column_name"),
4463 					  _("search_seq_col_name"),
4464 					  _("column_name"),
4465 					  _("cycle_mark_col_name"),
4466 					  _("cycle_mark_value"),
4467 					  _("cycle_mark_default"),
4468 					  _("cycle_path_col_name"),
4469 					  _("table_name"));
4470 }
4471 
4472 static void
sql_help_SELECT_INTO(PQExpBuffer buf)4473 sql_help_SELECT_INTO(PQExpBuffer buf)
4474 {
4475 	appendPQExpBuffer(buf,
4476 					  "[ WITH [ RECURSIVE ] %s [, ...] ]\n"
4477 					  "SELECT [ ALL | DISTINCT [ ON ( %s [, ...] ) ] ]\n"
4478 					  "    * | %s [ [ AS ] %s ] [, ...]\n"
4479 					  "    INTO [ TEMPORARY | TEMP | UNLOGGED ] [ TABLE ] %s\n"
4480 					  "    [ FROM %s [, ...] ]\n"
4481 					  "    [ WHERE %s ]\n"
4482 					  "    [ GROUP BY %s [, ...] ]\n"
4483 					  "    [ HAVING %s ]\n"
4484 					  "    [ WINDOW %s AS ( %s ) [, ...] ]\n"
4485 					  "    [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] %s ]\n"
4486 					  "    [ ORDER BY %s [ ASC | DESC | USING %s ] [ NULLS { FIRST | LAST } ] [, ...] ]\n"
4487 					  "    [ LIMIT { %s | ALL } ]\n"
4488 					  "    [ OFFSET %s [ ROW | ROWS ] ]\n"
4489 					  "    [ FETCH { FIRST | NEXT } [ %s ] { ROW | ROWS } ONLY ]\n"
4490 					  "    [ FOR { UPDATE | SHARE } [ OF %s [, ...] ] [ NOWAIT ] [...] ]",
4491 					  _("with_query"),
4492 					  _("expression"),
4493 					  _("expression"),
4494 					  _("output_name"),
4495 					  _("new_table"),
4496 					  _("from_item"),
4497 					  _("condition"),
4498 					  _("expression"),
4499 					  _("condition"),
4500 					  _("window_name"),
4501 					  _("window_definition"),
4502 					  _("select"),
4503 					  _("expression"),
4504 					  _("operator"),
4505 					  _("count"),
4506 					  _("start"),
4507 					  _("count"),
4508 					  _("table_name"));
4509 }
4510 
4511 static void
sql_help_SET(PQExpBuffer buf)4512 sql_help_SET(PQExpBuffer buf)
4513 {
4514 	appendPQExpBuffer(buf,
4515 					  "SET [ SESSION | LOCAL ] %s { TO | = } { %s | '%s' | DEFAULT }\n"
4516 					  "SET [ SESSION | LOCAL ] TIME ZONE { %s | LOCAL | DEFAULT }",
4517 					  _("configuration_parameter"),
4518 					  _("value"),
4519 					  _("value"),
4520 					  _("timezone"));
4521 }
4522 
4523 static void
sql_help_SET_CONSTRAINTS(PQExpBuffer buf)4524 sql_help_SET_CONSTRAINTS(PQExpBuffer buf)
4525 {
4526 	appendPQExpBuffer(buf,
4527 					  "SET CONSTRAINTS { ALL | %s [, ...] } { DEFERRED | IMMEDIATE }",
4528 					  _("name"));
4529 }
4530 
4531 static void
sql_help_SET_ROLE(PQExpBuffer buf)4532 sql_help_SET_ROLE(PQExpBuffer buf)
4533 {
4534 	appendPQExpBuffer(buf,
4535 					  "SET [ SESSION | LOCAL ] ROLE %s\n"
4536 					  "SET [ SESSION | LOCAL ] ROLE NONE\n"
4537 					  "RESET ROLE",
4538 					  _("role_name"));
4539 }
4540 
4541 static void
sql_help_SET_SESSION_AUTHORIZATION(PQExpBuffer buf)4542 sql_help_SET_SESSION_AUTHORIZATION(PQExpBuffer buf)
4543 {
4544 	appendPQExpBuffer(buf,
4545 					  "SET [ SESSION | LOCAL ] SESSION AUTHORIZATION %s\n"
4546 					  "SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT\n"
4547 					  "RESET SESSION AUTHORIZATION",
4548 					  _("user_name"));
4549 }
4550 
4551 static void
sql_help_SET_TRANSACTION(PQExpBuffer buf)4552 sql_help_SET_TRANSACTION(PQExpBuffer buf)
4553 {
4554 	appendPQExpBuffer(buf,
4555 					  "SET TRANSACTION %s [, ...]\n"
4556 					  "SET TRANSACTION SNAPSHOT %s\n"
4557 					  "SET SESSION CHARACTERISTICS AS TRANSACTION %s [, ...]\n"
4558 					  "\n"
4559 					  "%s\n"
4560 					  "\n"
4561 					  "    ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }\n"
4562 					  "    READ WRITE | READ ONLY\n"
4563 					  "    [ NOT ] DEFERRABLE",
4564 					  _("transaction_mode"),
4565 					  _("snapshot_id"),
4566 					  _("transaction_mode"),
4567 					  _("where transaction_mode is one of:"));
4568 }
4569 
4570 static void
sql_help_SHOW(PQExpBuffer buf)4571 sql_help_SHOW(PQExpBuffer buf)
4572 {
4573 	appendPQExpBuffer(buf,
4574 					  "SHOW %s\n"
4575 					  "SHOW ALL",
4576 					  _("name"));
4577 }
4578 
4579 static void
sql_help_START_TRANSACTION(PQExpBuffer buf)4580 sql_help_START_TRANSACTION(PQExpBuffer buf)
4581 {
4582 	appendPQExpBuffer(buf,
4583 					  "START TRANSACTION [ %s [, ...] ]\n"
4584 					  "\n"
4585 					  "%s\n"
4586 					  "\n"
4587 					  "    ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }\n"
4588 					  "    READ WRITE | READ ONLY\n"
4589 					  "    [ NOT ] DEFERRABLE",
4590 					  _("transaction_mode"),
4591 					  _("where transaction_mode is one of:"));
4592 }
4593 
4594 static void
sql_help_TABLE(PQExpBuffer buf)4595 sql_help_TABLE(PQExpBuffer buf)
4596 {
4597 	appendPQExpBuffer(buf,
4598 					  "[ WITH [ RECURSIVE ] %s [, ...] ]\n"
4599 					  "SELECT [ ALL | DISTINCT [ ON ( %s [, ...] ) ] ]\n"
4600 					  "    [ * | %s [ [ AS ] %s ] [, ...] ]\n"
4601 					  "    [ FROM %s [, ...] ]\n"
4602 					  "    [ WHERE %s ]\n"
4603 					  "    [ GROUP BY [ ALL | DISTINCT ] %s [, ...] ]\n"
4604 					  "    [ HAVING %s ]\n"
4605 					  "    [ WINDOW %s AS ( %s ) [, ...] ]\n"
4606 					  "    [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] %s ]\n"
4607 					  "    [ ORDER BY %s [ ASC | DESC | USING %s ] [ NULLS { FIRST | LAST } ] [, ...] ]\n"
4608 					  "    [ LIMIT { %s | ALL } ]\n"
4609 					  "    [ OFFSET %s [ ROW | ROWS ] ]\n"
4610 					  "    [ FETCH { FIRST | NEXT } [ %s ] { ROW | ROWS } { ONLY | WITH TIES } ]\n"
4611 					  "    [ FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF %s [, ...] ] [ NOWAIT | SKIP LOCKED ] [...] ]\n"
4612 					  "\n"
4613 					  "%s\n"
4614 					  "\n"
4615 					  "    [ ONLY ] %s [ * ] [ [ AS ] %s [ ( %s [, ...] ) ] ]\n"
4616 					  "                [ TABLESAMPLE %s ( %s [, ...] ) [ REPEATABLE ( %s ) ] ]\n"
4617 					  "    [ LATERAL ] ( %s ) [ AS ] %s [ ( %s [, ...] ) ]\n"
4618 					  "    %s [ [ AS ] %s [ ( %s [, ...] ) ] ]\n"
4619 					  "    [ LATERAL ] %s ( [ %s [, ...] ] )\n"
4620 					  "                [ WITH ORDINALITY ] [ [ AS ] %s [ ( %s [, ...] ) ] ]\n"
4621 					  "    [ LATERAL ] %s ( [ %s [, ...] ] ) [ AS ] %s ( %s [, ...] )\n"
4622 					  "    [ LATERAL ] %s ( [ %s [, ...] ] ) AS ( %s [, ...] )\n"
4623 					  "    [ LATERAL ] ROWS FROM( %s ( [ %s [, ...] ] ) [ AS ( %s [, ...] ) ] [, ...] )\n"
4624 					  "                [ WITH ORDINALITY ] [ [ AS ] %s [ ( %s [, ...] ) ] ]\n"
4625 					  "    %s [ NATURAL ] %s %s [ ON %s | USING ( %s [, ...] ) [ AS %s ] ]\n"
4626 					  "\n"
4627 					  "%s\n"
4628 					  "\n"
4629 					  "    ( )\n"
4630 					  "    %s\n"
4631 					  "    ( %s [, ...] )\n"
4632 					  "    ROLLUP ( { %s | ( %s [, ...] ) } [, ...] )\n"
4633 					  "    CUBE ( { %s | ( %s [, ...] ) } [, ...] )\n"
4634 					  "    GROUPING SETS ( %s [, ...] )\n"
4635 					  "\n"
4636 					  "%s\n"
4637 					  "\n"
4638 					  "    %s [ ( %s [, ...] ) ] AS [ [ NOT ] MATERIALIZED ] ( %s | %s | %s | %s | %s )\n"
4639 					  "        [ SEARCH { BREADTH | DEPTH } FIRST BY %s [, ...] SET %s ]\n"
4640 					  "        [ CYCLE %s [, ...] SET %s [ TO %s DEFAULT %s ] USING %s ]\n"
4641 					  "\n"
4642 					  "TABLE [ ONLY ] %s [ * ]",
4643 					  _("with_query"),
4644 					  _("expression"),
4645 					  _("expression"),
4646 					  _("output_name"),
4647 					  _("from_item"),
4648 					  _("condition"),
4649 					  _("grouping_element"),
4650 					  _("condition"),
4651 					  _("window_name"),
4652 					  _("window_definition"),
4653 					  _("select"),
4654 					  _("expression"),
4655 					  _("operator"),
4656 					  _("count"),
4657 					  _("start"),
4658 					  _("count"),
4659 					  _("table_name"),
4660 					  _("where from_item can be one of:"),
4661 					  _("table_name"),
4662 					  _("alias"),
4663 					  _("column_alias"),
4664 					  _("sampling_method"),
4665 					  _("argument"),
4666 					  _("seed"),
4667 					  _("select"),
4668 					  _("alias"),
4669 					  _("column_alias"),
4670 					  _("with_query_name"),
4671 					  _("alias"),
4672 					  _("column_alias"),
4673 					  _("function_name"),
4674 					  _("argument"),
4675 					  _("alias"),
4676 					  _("column_alias"),
4677 					  _("function_name"),
4678 					  _("argument"),
4679 					  _("alias"),
4680 					  _("column_definition"),
4681 					  _("function_name"),
4682 					  _("argument"),
4683 					  _("column_definition"),
4684 					  _("function_name"),
4685 					  _("argument"),
4686 					  _("column_definition"),
4687 					  _("alias"),
4688 					  _("column_alias"),
4689 					  _("from_item"),
4690 					  _("join_type"),
4691 					  _("from_item"),
4692 					  _("join_condition"),
4693 					  _("join_column"),
4694 					  _("join_using_alias"),
4695 					  _("and grouping_element can be one of:"),
4696 					  _("expression"),
4697 					  _("expression"),
4698 					  _("expression"),
4699 					  _("expression"),
4700 					  _("expression"),
4701 					  _("expression"),
4702 					  _("grouping_element"),
4703 					  _("and with_query is:"),
4704 					  _("with_query_name"),
4705 					  _("column_name"),
4706 					  _("select"),
4707 					  _("values"),
4708 					  _("insert"),
4709 					  _("update"),
4710 					  _("delete"),
4711 					  _("column_name"),
4712 					  _("search_seq_col_name"),
4713 					  _("column_name"),
4714 					  _("cycle_mark_col_name"),
4715 					  _("cycle_mark_value"),
4716 					  _("cycle_mark_default"),
4717 					  _("cycle_path_col_name"),
4718 					  _("table_name"));
4719 }
4720 
4721 static void
sql_help_TRUNCATE(PQExpBuffer buf)4722 sql_help_TRUNCATE(PQExpBuffer buf)
4723 {
4724 	appendPQExpBuffer(buf,
4725 					  "TRUNCATE [ TABLE ] [ ONLY ] %s [ * ] [, ... ]\n"
4726 					  "    [ RESTART IDENTITY | CONTINUE IDENTITY ] [ CASCADE | RESTRICT ]",
4727 					  _("name"));
4728 }
4729 
4730 static void
sql_help_UNLISTEN(PQExpBuffer buf)4731 sql_help_UNLISTEN(PQExpBuffer buf)
4732 {
4733 	appendPQExpBuffer(buf,
4734 					  "UNLISTEN { %s | * }",
4735 					  _("channel"));
4736 }
4737 
4738 static void
sql_help_UPDATE(PQExpBuffer buf)4739 sql_help_UPDATE(PQExpBuffer buf)
4740 {
4741 	appendPQExpBuffer(buf,
4742 					  "[ WITH [ RECURSIVE ] %s [, ...] ]\n"
4743 					  "UPDATE [ ONLY ] %s [ * ] [ [ AS ] %s ]\n"
4744 					  "    SET { %s = { %s | DEFAULT } |\n"
4745 					  "          ( %s [, ...] ) = [ ROW ] ( { %s | DEFAULT } [, ...] ) |\n"
4746 					  "          ( %s [, ...] ) = ( %s )\n"
4747 					  "        } [, ...]\n"
4748 					  "    [ FROM %s [, ...] ]\n"
4749 					  "    [ WHERE %s | WHERE CURRENT OF %s ]\n"
4750 					  "    [ RETURNING * | %s [ [ AS ] %s ] [, ...] ]",
4751 					  _("with_query"),
4752 					  _("table_name"),
4753 					  _("alias"),
4754 					  _("column_name"),
4755 					  _("expression"),
4756 					  _("column_name"),
4757 					  _("expression"),
4758 					  _("column_name"),
4759 					  _("sub-SELECT"),
4760 					  _("from_item"),
4761 					  _("condition"),
4762 					  _("cursor_name"),
4763 					  _("output_expression"),
4764 					  _("output_name"));
4765 }
4766 
4767 static void
sql_help_VACUUM(PQExpBuffer buf)4768 sql_help_VACUUM(PQExpBuffer buf)
4769 {
4770 	appendPQExpBuffer(buf,
4771 					  "VACUUM [ ( %s [, ...] ) ] [ %s [, ...] ]\n"
4772 					  "VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ %s [, ...] ]\n"
4773 					  "\n"
4774 					  "%s\n"
4775 					  "\n"
4776 					  "    FULL [ %s ]\n"
4777 					  "    FREEZE [ %s ]\n"
4778 					  "    VERBOSE [ %s ]\n"
4779 					  "    ANALYZE [ %s ]\n"
4780 					  "    DISABLE_PAGE_SKIPPING [ %s ]\n"
4781 					  "    SKIP_LOCKED [ %s ]\n"
4782 					  "    INDEX_CLEANUP { AUTO | ON | OFF }\n"
4783 					  "    PROCESS_TOAST [ %s ]\n"
4784 					  "    TRUNCATE [ %s ]\n"
4785 					  "    PARALLEL %s\n"
4786 					  "\n"
4787 					  "%s\n"
4788 					  "\n"
4789 					  "    %s [ ( %s [, ...] ) ]",
4790 					  _("option"),
4791 					  _("table_and_columns"),
4792 					  _("table_and_columns"),
4793 					  _("where option can be one of:"),
4794 					  _("boolean"),
4795 					  _("boolean"),
4796 					  _("boolean"),
4797 					  _("boolean"),
4798 					  _("boolean"),
4799 					  _("boolean"),
4800 					  _("boolean"),
4801 					  _("boolean"),
4802 					  _("integer"),
4803 					  _("and table_and_columns is:"),
4804 					  _("table_name"),
4805 					  _("column_name"));
4806 }
4807 
4808 static void
sql_help_VALUES(PQExpBuffer buf)4809 sql_help_VALUES(PQExpBuffer buf)
4810 {
4811 	appendPQExpBuffer(buf,
4812 					  "VALUES ( %s [, ...] ) [, ...]\n"
4813 					  "    [ ORDER BY %s [ ASC | DESC | USING %s ] [, ...] ]\n"
4814 					  "    [ LIMIT { %s | ALL } ]\n"
4815 					  "    [ OFFSET %s [ ROW | ROWS ] ]\n"
4816 					  "    [ FETCH { FIRST | NEXT } [ %s ] { ROW | ROWS } ONLY ]",
4817 					  _("expression"),
4818 					  _("sort_expression"),
4819 					  _("operator"),
4820 					  _("count"),
4821 					  _("start"),
4822 					  _("count"));
4823 }
4824 
4825 static void
sql_help_WITH(PQExpBuffer buf)4826 sql_help_WITH(PQExpBuffer buf)
4827 {
4828 	appendPQExpBuffer(buf,
4829 					  "[ WITH [ RECURSIVE ] %s [, ...] ]\n"
4830 					  "SELECT [ ALL | DISTINCT [ ON ( %s [, ...] ) ] ]\n"
4831 					  "    [ * | %s [ [ AS ] %s ] [, ...] ]\n"
4832 					  "    [ FROM %s [, ...] ]\n"
4833 					  "    [ WHERE %s ]\n"
4834 					  "    [ GROUP BY [ ALL | DISTINCT ] %s [, ...] ]\n"
4835 					  "    [ HAVING %s ]\n"
4836 					  "    [ WINDOW %s AS ( %s ) [, ...] ]\n"
4837 					  "    [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] %s ]\n"
4838 					  "    [ ORDER BY %s [ ASC | DESC | USING %s ] [ NULLS { FIRST | LAST } ] [, ...] ]\n"
4839 					  "    [ LIMIT { %s | ALL } ]\n"
4840 					  "    [ OFFSET %s [ ROW | ROWS ] ]\n"
4841 					  "    [ FETCH { FIRST | NEXT } [ %s ] { ROW | ROWS } { ONLY | WITH TIES } ]\n"
4842 					  "    [ FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF %s [, ...] ] [ NOWAIT | SKIP LOCKED ] [...] ]\n"
4843 					  "\n"
4844 					  "%s\n"
4845 					  "\n"
4846 					  "    [ ONLY ] %s [ * ] [ [ AS ] %s [ ( %s [, ...] ) ] ]\n"
4847 					  "                [ TABLESAMPLE %s ( %s [, ...] ) [ REPEATABLE ( %s ) ] ]\n"
4848 					  "    [ LATERAL ] ( %s ) [ AS ] %s [ ( %s [, ...] ) ]\n"
4849 					  "    %s [ [ AS ] %s [ ( %s [, ...] ) ] ]\n"
4850 					  "    [ LATERAL ] %s ( [ %s [, ...] ] )\n"
4851 					  "                [ WITH ORDINALITY ] [ [ AS ] %s [ ( %s [, ...] ) ] ]\n"
4852 					  "    [ LATERAL ] %s ( [ %s [, ...] ] ) [ AS ] %s ( %s [, ...] )\n"
4853 					  "    [ LATERAL ] %s ( [ %s [, ...] ] ) AS ( %s [, ...] )\n"
4854 					  "    [ LATERAL ] ROWS FROM( %s ( [ %s [, ...] ] ) [ AS ( %s [, ...] ) ] [, ...] )\n"
4855 					  "                [ WITH ORDINALITY ] [ [ AS ] %s [ ( %s [, ...] ) ] ]\n"
4856 					  "    %s [ NATURAL ] %s %s [ ON %s | USING ( %s [, ...] ) [ AS %s ] ]\n"
4857 					  "\n"
4858 					  "%s\n"
4859 					  "\n"
4860 					  "    ( )\n"
4861 					  "    %s\n"
4862 					  "    ( %s [, ...] )\n"
4863 					  "    ROLLUP ( { %s | ( %s [, ...] ) } [, ...] )\n"
4864 					  "    CUBE ( { %s | ( %s [, ...] ) } [, ...] )\n"
4865 					  "    GROUPING SETS ( %s [, ...] )\n"
4866 					  "\n"
4867 					  "%s\n"
4868 					  "\n"
4869 					  "    %s [ ( %s [, ...] ) ] AS [ [ NOT ] MATERIALIZED ] ( %s | %s | %s | %s | %s )\n"
4870 					  "        [ SEARCH { BREADTH | DEPTH } FIRST BY %s [, ...] SET %s ]\n"
4871 					  "        [ CYCLE %s [, ...] SET %s [ TO %s DEFAULT %s ] USING %s ]\n"
4872 					  "\n"
4873 					  "TABLE [ ONLY ] %s [ * ]",
4874 					  _("with_query"),
4875 					  _("expression"),
4876 					  _("expression"),
4877 					  _("output_name"),
4878 					  _("from_item"),
4879 					  _("condition"),
4880 					  _("grouping_element"),
4881 					  _("condition"),
4882 					  _("window_name"),
4883 					  _("window_definition"),
4884 					  _("select"),
4885 					  _("expression"),
4886 					  _("operator"),
4887 					  _("count"),
4888 					  _("start"),
4889 					  _("count"),
4890 					  _("table_name"),
4891 					  _("where from_item can be one of:"),
4892 					  _("table_name"),
4893 					  _("alias"),
4894 					  _("column_alias"),
4895 					  _("sampling_method"),
4896 					  _("argument"),
4897 					  _("seed"),
4898 					  _("select"),
4899 					  _("alias"),
4900 					  _("column_alias"),
4901 					  _("with_query_name"),
4902 					  _("alias"),
4903 					  _("column_alias"),
4904 					  _("function_name"),
4905 					  _("argument"),
4906 					  _("alias"),
4907 					  _("column_alias"),
4908 					  _("function_name"),
4909 					  _("argument"),
4910 					  _("alias"),
4911 					  _("column_definition"),
4912 					  _("function_name"),
4913 					  _("argument"),
4914 					  _("column_definition"),
4915 					  _("function_name"),
4916 					  _("argument"),
4917 					  _("column_definition"),
4918 					  _("alias"),
4919 					  _("column_alias"),
4920 					  _("from_item"),
4921 					  _("join_type"),
4922 					  _("from_item"),
4923 					  _("join_condition"),
4924 					  _("join_column"),
4925 					  _("join_using_alias"),
4926 					  _("and grouping_element can be one of:"),
4927 					  _("expression"),
4928 					  _("expression"),
4929 					  _("expression"),
4930 					  _("expression"),
4931 					  _("expression"),
4932 					  _("expression"),
4933 					  _("grouping_element"),
4934 					  _("and with_query is:"),
4935 					  _("with_query_name"),
4936 					  _("column_name"),
4937 					  _("select"),
4938 					  _("values"),
4939 					  _("insert"),
4940 					  _("update"),
4941 					  _("delete"),
4942 					  _("column_name"),
4943 					  _("search_seq_col_name"),
4944 					  _("column_name"),
4945 					  _("cycle_mark_col_name"),
4946 					  _("cycle_mark_value"),
4947 					  _("cycle_mark_default"),
4948 					  _("cycle_path_col_name"),
4949 					  _("table_name"));
4950 }
4951 
4952 
4953 const struct _helpStruct QL_HELP[] = {
4954 	{"ABORT",
4955 		N_("abort the current transaction"),
4956 		"sql-abort",
4957 		sql_help_ABORT,
4958 	0},
4959 
4960 	{"ALTER AGGREGATE",
4961 		N_("change the definition of an aggregate function"),
4962 		"sql-alteraggregate",
4963 		sql_help_ALTER_AGGREGATE,
4964 	9},
4965 
4966 	{"ALTER COLLATION",
4967 		N_("change the definition of a collation"),
4968 		"sql-altercollation",
4969 		sql_help_ALTER_COLLATION,
4970 	4},
4971 
4972 	{"ALTER CONVERSION",
4973 		N_("change the definition of a conversion"),
4974 		"sql-alterconversion",
4975 		sql_help_ALTER_CONVERSION,
4976 	2},
4977 
4978 	{"ALTER DATABASE",
4979 		N_("change a database"),
4980 		"sql-alterdatabase",
4981 		sql_help_ALTER_DATABASE,
4982 	17},
4983 
4984 	{"ALTER DEFAULT PRIVILEGES",
4985 		N_("define default access privileges"),
4986 		"sql-alterdefaultprivileges",
4987 		sql_help_ALTER_DEFAULT_PRIVILEGES,
4988 	59},
4989 
4990 	{"ALTER DOMAIN",
4991 		N_("change the definition of a domain"),
4992 		"sql-alterdomain",
4993 		sql_help_ALTER_DOMAIN,
4994 	17},
4995 
4996 	{"ALTER EVENT TRIGGER",
4997 		N_("change the definition of an event trigger"),
4998 		"sql-altereventtrigger",
4999 		sql_help_ALTER_EVENT_TRIGGER,
5000 	3},
5001 
5002 	{"ALTER EXTENSION",
5003 		N_("change the definition of an extension"),
5004 		"sql-alterextension",
5005 		sql_help_ALTER_EXTENSION,
5006 	40},
5007 
5008 	{"ALTER FOREIGN DATA WRAPPER",
5009 		N_("change the definition of a foreign-data wrapper"),
5010 		"sql-alterforeigndatawrapper",
5011 		sql_help_ALTER_FOREIGN_DATA_WRAPPER,
5012 	5},
5013 
5014 	{"ALTER FOREIGN TABLE",
5015 		N_("change the definition of a foreign table"),
5016 		"sql-alterforeigntable",
5017 		sql_help_ALTER_FOREIGN_TABLE,
5018 	33},
5019 
5020 	{"ALTER FUNCTION",
5021 		N_("change the definition of a function"),
5022 		"sql-alterfunction",
5023 		sql_help_ALTER_FUNCTION,
5024 	24},
5025 
5026 	{"ALTER GROUP",
5027 		N_("change role name or membership"),
5028 		"sql-altergroup",
5029 		sql_help_ALTER_GROUP,
5030 	10},
5031 
5032 	{"ALTER INDEX",
5033 		N_("change the definition of an index"),
5034 		"sql-alterindex",
5035 		sql_help_ALTER_INDEX,
5036 	9},
5037 
5038 	{"ALTER LANGUAGE",
5039 		N_("change the definition of a procedural language"),
5040 		"sql-alterlanguage",
5041 		sql_help_ALTER_LANGUAGE,
5042 	1},
5043 
5044 	{"ALTER LARGE OBJECT",
5045 		N_("change the definition of a large object"),
5046 		"sql-alterlargeobject",
5047 		sql_help_ALTER_LARGE_OBJECT,
5048 	0},
5049 
5050 	{"ALTER MATERIALIZED VIEW",
5051 		N_("change the definition of a materialized view"),
5052 		"sql-altermaterializedview",
5053 		sql_help_ALTER_MATERIALIZED_VIEW,
5054 	24},
5055 
5056 	{"ALTER OPERATOR",
5057 		N_("change the definition of an operator"),
5058 		"sql-alteroperator",
5059 		sql_help_ALTER_OPERATOR,
5060 	9},
5061 
5062 	{"ALTER OPERATOR CLASS",
5063 		N_("change the definition of an operator class"),
5064 		"sql-alteropclass",
5065 		sql_help_ALTER_OPERATOR_CLASS,
5066 	7},
5067 
5068 	{"ALTER OPERATOR FAMILY",
5069 		N_("change the definition of an operator family"),
5070 		"sql-alteropfamily",
5071 		sql_help_ALTER_OPERATOR_FAMILY,
5072 	19},
5073 
5074 	{"ALTER POLICY",
5075 		N_("change the definition of a row-level security policy"),
5076 		"sql-alterpolicy",
5077 		sql_help_ALTER_POLICY,
5078 	5},
5079 
5080 	{"ALTER PROCEDURE",
5081 		N_("change the definition of a procedure"),
5082 		"sql-alterprocedure",
5083 		sql_help_ALTER_PROCEDURE,
5084 	17},
5085 
5086 	{"ALTER PUBLICATION",
5087 		N_("change the definition of a publication"),
5088 		"sql-alterpublication",
5089 		sql_help_ALTER_PUBLICATION,
5090 	5},
5091 
5092 	{"ALTER ROLE",
5093 		N_("change a database role"),
5094 		"sql-alterrole",
5095 		sql_help_ALTER_ROLE,
5096 	27},
5097 
5098 	{"ALTER ROUTINE",
5099 		N_("change the definition of a routine"),
5100 		"sql-alterroutine",
5101 		sql_help_ALTER_ROUTINE,
5102 	22},
5103 
5104 	{"ALTER RULE",
5105 		N_("change the definition of a rule"),
5106 		"sql-alterrule",
5107 		sql_help_ALTER_RULE,
5108 	0},
5109 
5110 	{"ALTER SCHEMA",
5111 		N_("change the definition of a schema"),
5112 		"sql-alterschema",
5113 		sql_help_ALTER_SCHEMA,
5114 	1},
5115 
5116 	{"ALTER SEQUENCE",
5117 		N_("change the definition of a sequence generator"),
5118 		"sql-altersequence",
5119 		sql_help_ALTER_SEQUENCE,
5120 	10},
5121 
5122 	{"ALTER SERVER",
5123 		N_("change the definition of a foreign server"),
5124 		"sql-alterserver",
5125 		sql_help_ALTER_SERVER,
5126 	3},
5127 
5128 	{"ALTER STATISTICS",
5129 		N_("change the definition of an extended statistics object"),
5130 		"sql-alterstatistics",
5131 		sql_help_ALTER_STATISTICS,
5132 	3},
5133 
5134 	{"ALTER SUBSCRIPTION",
5135 		N_("change the definition of a subscription"),
5136 		"sql-altersubscription",
5137 		sql_help_ALTER_SUBSCRIPTION,
5138 	9},
5139 
5140 	{"ALTER SYSTEM",
5141 		N_("change a server configuration parameter"),
5142 		"sql-altersystem",
5143 		sql_help_ALTER_SYSTEM,
5144 	3},
5145 
5146 	{"ALTER TABLE",
5147 		N_("change the definition of a table"),
5148 		"sql-altertable",
5149 		sql_help_ALTER_TABLE,
5150 	112},
5151 
5152 	{"ALTER TABLESPACE",
5153 		N_("change the definition of a tablespace"),
5154 		"sql-altertablespace",
5155 		sql_help_ALTER_TABLESPACE,
5156 	3},
5157 
5158 	{"ALTER TEXT SEARCH CONFIGURATION",
5159 		N_("change the definition of a text search configuration"),
5160 		"sql-altertsconfig",
5161 		sql_help_ALTER_TEXT_SEARCH_CONFIGURATION,
5162 	12},
5163 
5164 	{"ALTER TEXT SEARCH DICTIONARY",
5165 		N_("change the definition of a text search dictionary"),
5166 		"sql-altertsdictionary",
5167 		sql_help_ALTER_TEXT_SEARCH_DICTIONARY,
5168 	5},
5169 
5170 	{"ALTER TEXT SEARCH PARSER",
5171 		N_("change the definition of a text search parser"),
5172 		"sql-altertsparser",
5173 		sql_help_ALTER_TEXT_SEARCH_PARSER,
5174 	1},
5175 
5176 	{"ALTER TEXT SEARCH TEMPLATE",
5177 		N_("change the definition of a text search template"),
5178 		"sql-altertstemplate",
5179 		sql_help_ALTER_TEXT_SEARCH_TEMPLATE,
5180 	1},
5181 
5182 	{"ALTER TRIGGER",
5183 		N_("change the definition of a trigger"),
5184 		"sql-altertrigger",
5185 		sql_help_ALTER_TRIGGER,
5186 	1},
5187 
5188 	{"ALTER TYPE",
5189 		N_("change the definition of a type"),
5190 		"sql-altertype",
5191 		sql_help_ALTER_TYPE,
5192 	13},
5193 
5194 	{"ALTER USER",
5195 		N_("change a database role"),
5196 		"sql-alteruser",
5197 		sql_help_ALTER_USER,
5198 	27},
5199 
5200 	{"ALTER USER MAPPING",
5201 		N_("change the definition of a user mapping"),
5202 		"sql-alterusermapping",
5203 		sql_help_ALTER_USER_MAPPING,
5204 	2},
5205 
5206 	{"ALTER VIEW",
5207 		N_("change the definition of a view"),
5208 		"sql-alterview",
5209 		sql_help_ALTER_VIEW,
5210 	7},
5211 
5212 	{"ANALYZE",
5213 		N_("collect statistics about a database"),
5214 		"sql-analyze",
5215 		sql_help_ANALYZE,
5216 	10},
5217 
5218 	{"BEGIN",
5219 		N_("start a transaction block"),
5220 		"sql-begin",
5221 		sql_help_BEGIN,
5222 	6},
5223 
5224 	{"CALL",
5225 		N_("invoke a procedure"),
5226 		"sql-call",
5227 		sql_help_CALL,
5228 	0},
5229 
5230 	{"CHECKPOINT",
5231 		N_("force a write-ahead log checkpoint"),
5232 		"sql-checkpoint",
5233 		sql_help_CHECKPOINT,
5234 	0},
5235 
5236 	{"CLOSE",
5237 		N_("close a cursor"),
5238 		"sql-close",
5239 		sql_help_CLOSE,
5240 	0},
5241 
5242 	{"CLUSTER",
5243 		N_("cluster a table according to an index"),
5244 		"sql-cluster",
5245 		sql_help_CLUSTER,
5246 	6},
5247 
5248 	{"COMMENT",
5249 		N_("define or change the comment of an object"),
5250 		"sql-comment",
5251 		sql_help_COMMENT,
5252 	51},
5253 
5254 	{"COMMIT",
5255 		N_("commit the current transaction"),
5256 		"sql-commit",
5257 		sql_help_COMMIT,
5258 	0},
5259 
5260 	{"COMMIT PREPARED",
5261 		N_("commit a transaction that was earlier prepared for two-phase commit"),
5262 		"sql-commit-prepared",
5263 		sql_help_COMMIT_PREPARED,
5264 	0},
5265 
5266 	{"COPY",
5267 		N_("copy data between a file and a table"),
5268 		"sql-copy",
5269 		sql_help_COPY,
5270 	21},
5271 
5272 	{"CREATE ACCESS METHOD",
5273 		N_("define a new access method"),
5274 		"sql-create-access-method",
5275 		sql_help_CREATE_ACCESS_METHOD,
5276 	2},
5277 
5278 	{"CREATE AGGREGATE",
5279 		N_("define a new aggregate function"),
5280 		"sql-createaggregate",
5281 		sql_help_CREATE_AGGREGATE,
5282 	59},
5283 
5284 	{"CREATE CAST",
5285 		N_("define a new cast"),
5286 		"sql-createcast",
5287 		sql_help_CREATE_CAST,
5288 	10},
5289 
5290 	{"CREATE COLLATION",
5291 		N_("define a new collation"),
5292 		"sql-createcollation",
5293 		sql_help_CREATE_COLLATION,
5294 	8},
5295 
5296 	{"CREATE CONVERSION",
5297 		N_("define a new encoding conversion"),
5298 		"sql-createconversion",
5299 		sql_help_CREATE_CONVERSION,
5300 	1},
5301 
5302 	{"CREATE DATABASE",
5303 		N_("create a new database"),
5304 		"sql-createdatabase",
5305 		sql_help_CREATE_DATABASE,
5306 	10},
5307 
5308 	{"CREATE DOMAIN",
5309 		N_("define a new domain"),
5310 		"sql-createdomain",
5311 		sql_help_CREATE_DOMAIN,
5312 	8},
5313 
5314 	{"CREATE EVENT TRIGGER",
5315 		N_("define a new event trigger"),
5316 		"sql-createeventtrigger",
5317 		sql_help_CREATE_EVENT_TRIGGER,
5318 	3},
5319 
5320 	{"CREATE EXTENSION",
5321 		N_("install an extension"),
5322 		"sql-createextension",
5323 		sql_help_CREATE_EXTENSION,
5324 	3},
5325 
5326 	{"CREATE FOREIGN DATA WRAPPER",
5327 		N_("define a new foreign-data wrapper"),
5328 		"sql-createforeigndatawrapper",
5329 		sql_help_CREATE_FOREIGN_DATA_WRAPPER,
5330 	3},
5331 
5332 	{"CREATE FOREIGN TABLE",
5333 		N_("define a new foreign table"),
5334 		"sql-createforeigntable",
5335 		sql_help_CREATE_FOREIGN_TABLE,
5336 	30},
5337 
5338 	{"CREATE FUNCTION",
5339 		N_("define a new function"),
5340 		"sql-createfunction",
5341 		sql_help_CREATE_FUNCTION,
5342 	19},
5343 
5344 	{"CREATE GROUP",
5345 		N_("define a new database role"),
5346 		"sql-creategroup",
5347 		sql_help_CREATE_GROUP,
5348 	19},
5349 
5350 	{"CREATE INDEX",
5351 		N_("define a new index"),
5352 		"sql-createindex",
5353 		sql_help_CREATE_INDEX,
5354 	5},
5355 
5356 	{"CREATE LANGUAGE",
5357 		N_("define a new procedural language"),
5358 		"sql-createlanguage",
5359 		sql_help_CREATE_LANGUAGE,
5360 	2},
5361 
5362 	{"CREATE MATERIALIZED VIEW",
5363 		N_("define a new materialized view"),
5364 		"sql-creatematerializedview",
5365 		sql_help_CREATE_MATERIALIZED_VIEW,
5366 	6},
5367 
5368 	{"CREATE OPERATOR",
5369 		N_("define a new operator"),
5370 		"sql-createoperator",
5371 		sql_help_CREATE_OPERATOR,
5372 	6},
5373 
5374 	{"CREATE OPERATOR CLASS",
5375 		N_("define a new operator class"),
5376 		"sql-createopclass",
5377 		sql_help_CREATE_OPERATOR_CLASS,
5378 	5},
5379 
5380 	{"CREATE OPERATOR FAMILY",
5381 		N_("define a new operator family"),
5382 		"sql-createopfamily",
5383 		sql_help_CREATE_OPERATOR_FAMILY,
5384 	0},
5385 
5386 	{"CREATE POLICY",
5387 		N_("define a new row-level security policy for a table"),
5388 		"sql-createpolicy",
5389 		sql_help_CREATE_POLICY,
5390 	5},
5391 
5392 	{"CREATE PROCEDURE",
5393 		N_("define a new procedure"),
5394 		"sql-createprocedure",
5395 		sql_help_CREATE_PROCEDURE,
5396 	9},
5397 
5398 	{"CREATE PUBLICATION",
5399 		N_("define a new publication"),
5400 		"sql-createpublication",
5401 		sql_help_CREATE_PUBLICATION,
5402 	3},
5403 
5404 	{"CREATE ROLE",
5405 		N_("define a new database role"),
5406 		"sql-createrole",
5407 		sql_help_CREATE_ROLE,
5408 	19},
5409 
5410 	{"CREATE RULE",
5411 		N_("define a new rewrite rule"),
5412 		"sql-createrule",
5413 		sql_help_CREATE_RULE,
5414 	6},
5415 
5416 	{"CREATE SCHEMA",
5417 		N_("define a new schema"),
5418 		"sql-createschema",
5419 		sql_help_CREATE_SCHEMA,
5420 	10},
5421 
5422 	{"CREATE SEQUENCE",
5423 		N_("define a new sequence generator"),
5424 		"sql-createsequence",
5425 		sql_help_CREATE_SEQUENCE,
5426 	5},
5427 
5428 	{"CREATE SERVER",
5429 		N_("define a new foreign server"),
5430 		"sql-createserver",
5431 		sql_help_CREATE_SERVER,
5432 	2},
5433 
5434 	{"CREATE STATISTICS",
5435 		N_("define extended statistics"),
5436 		"sql-createstatistics",
5437 		sql_help_CREATE_STATISTICS,
5438 	7},
5439 
5440 	{"CREATE SUBSCRIPTION",
5441 		N_("define a new subscription"),
5442 		"sql-createsubscription",
5443 		sql_help_CREATE_SUBSCRIPTION,
5444 	3},
5445 
5446 	{"CREATE TABLE",
5447 		N_("define a new table"),
5448 		"sql-createtable",
5449 		sql_help_CREATE_TABLE,
5450 	83},
5451 
5452 	{"CREATE TABLE AS",
5453 		N_("define a new table from the results of a query"),
5454 		"sql-createtableas",
5455 		sql_help_CREATE_TABLE_AS,
5456 	7},
5457 
5458 	{"CREATE TABLESPACE",
5459 		N_("define a new tablespace"),
5460 		"sql-createtablespace",
5461 		sql_help_CREATE_TABLESPACE,
5462 	3},
5463 
5464 	{"CREATE TEXT SEARCH CONFIGURATION",
5465 		N_("define a new text search configuration"),
5466 		"sql-createtsconfig",
5467 		sql_help_CREATE_TEXT_SEARCH_CONFIGURATION,
5468 	3},
5469 
5470 	{"CREATE TEXT SEARCH DICTIONARY",
5471 		N_("define a new text search dictionary"),
5472 		"sql-createtsdictionary",
5473 		sql_help_CREATE_TEXT_SEARCH_DICTIONARY,
5474 	3},
5475 
5476 	{"CREATE TEXT SEARCH PARSER",
5477 		N_("define a new text search parser"),
5478 		"sql-createtsparser",
5479 		sql_help_CREATE_TEXT_SEARCH_PARSER,
5480 	6},
5481 
5482 	{"CREATE TEXT SEARCH TEMPLATE",
5483 		N_("define a new text search template"),
5484 		"sql-createtstemplate",
5485 		sql_help_CREATE_TEXT_SEARCH_TEMPLATE,
5486 	3},
5487 
5488 	{"CREATE TRANSFORM",
5489 		N_("define a new transform"),
5490 		"sql-createtransform",
5491 		sql_help_CREATE_TRANSFORM,
5492 	3},
5493 
5494 	{"CREATE TRIGGER",
5495 		N_("define a new trigger"),
5496 		"sql-createtrigger",
5497 		sql_help_CREATE_TRIGGER,
5498 	14},
5499 
5500 	{"CREATE TYPE",
5501 		N_("define a new data type"),
5502 		"sql-createtype",
5503 		sql_help_CREATE_TYPE,
5504 	37},
5505 
5506 	{"CREATE USER",
5507 		N_("define a new database role"),
5508 		"sql-createuser",
5509 		sql_help_CREATE_USER,
5510 	19},
5511 
5512 	{"CREATE USER MAPPING",
5513 		N_("define a new mapping of a user to a foreign server"),
5514 		"sql-createusermapping",
5515 		sql_help_CREATE_USER_MAPPING,
5516 	2},
5517 
5518 	{"CREATE VIEW",
5519 		N_("define a new view"),
5520 		"sql-createview",
5521 		sql_help_CREATE_VIEW,
5522 	3},
5523 
5524 	{"DEALLOCATE",
5525 		N_("deallocate a prepared statement"),
5526 		"sql-deallocate",
5527 		sql_help_DEALLOCATE,
5528 	0},
5529 
5530 	{"DECLARE",
5531 		N_("define a cursor"),
5532 		"sql-declare",
5533 		sql_help_DECLARE,
5534 	1},
5535 
5536 	{"DELETE",
5537 		N_("delete rows of a table"),
5538 		"sql-delete",
5539 		sql_help_DELETE,
5540 	4},
5541 
5542 	{"DISCARD",
5543 		N_("discard session state"),
5544 		"sql-discard",
5545 		sql_help_DISCARD,
5546 	0},
5547 
5548 	{"DO",
5549 		N_("execute an anonymous code block"),
5550 		"sql-do",
5551 		sql_help_DO,
5552 	0},
5553 
5554 	{"DROP ACCESS METHOD",
5555 		N_("remove an access method"),
5556 		"sql-drop-access-method",
5557 		sql_help_DROP_ACCESS_METHOD,
5558 	0},
5559 
5560 	{"DROP AGGREGATE",
5561 		N_("remove an aggregate function"),
5562 		"sql-dropaggregate",
5563 		sql_help_DROP_AGGREGATE,
5564 	6},
5565 
5566 	{"DROP CAST",
5567 		N_("remove a cast"),
5568 		"sql-dropcast",
5569 		sql_help_DROP_CAST,
5570 	0},
5571 
5572 	{"DROP COLLATION",
5573 		N_("remove a collation"),
5574 		"sql-dropcollation",
5575 		sql_help_DROP_COLLATION,
5576 	0},
5577 
5578 	{"DROP CONVERSION",
5579 		N_("remove a conversion"),
5580 		"sql-dropconversion",
5581 		sql_help_DROP_CONVERSION,
5582 	0},
5583 
5584 	{"DROP DATABASE",
5585 		N_("remove a database"),
5586 		"sql-dropdatabase",
5587 		sql_help_DROP_DATABASE,
5588 	4},
5589 
5590 	{"DROP DOMAIN",
5591 		N_("remove a domain"),
5592 		"sql-dropdomain",
5593 		sql_help_DROP_DOMAIN,
5594 	0},
5595 
5596 	{"DROP EVENT TRIGGER",
5597 		N_("remove an event trigger"),
5598 		"sql-dropeventtrigger",
5599 		sql_help_DROP_EVENT_TRIGGER,
5600 	0},
5601 
5602 	{"DROP EXTENSION",
5603 		N_("remove an extension"),
5604 		"sql-dropextension",
5605 		sql_help_DROP_EXTENSION,
5606 	0},
5607 
5608 	{"DROP FOREIGN DATA WRAPPER",
5609 		N_("remove a foreign-data wrapper"),
5610 		"sql-dropforeigndatawrapper",
5611 		sql_help_DROP_FOREIGN_DATA_WRAPPER,
5612 	0},
5613 
5614 	{"DROP FOREIGN TABLE",
5615 		N_("remove a foreign table"),
5616 		"sql-dropforeigntable",
5617 		sql_help_DROP_FOREIGN_TABLE,
5618 	0},
5619 
5620 	{"DROP FUNCTION",
5621 		N_("remove a function"),
5622 		"sql-dropfunction",
5623 		sql_help_DROP_FUNCTION,
5624 	1},
5625 
5626 	{"DROP GROUP",
5627 		N_("remove a database role"),
5628 		"sql-dropgroup",
5629 		sql_help_DROP_GROUP,
5630 	0},
5631 
5632 	{"DROP INDEX",
5633 		N_("remove an index"),
5634 		"sql-dropindex",
5635 		sql_help_DROP_INDEX,
5636 	0},
5637 
5638 	{"DROP LANGUAGE",
5639 		N_("remove a procedural language"),
5640 		"sql-droplanguage",
5641 		sql_help_DROP_LANGUAGE,
5642 	0},
5643 
5644 	{"DROP MATERIALIZED VIEW",
5645 		N_("remove a materialized view"),
5646 		"sql-dropmaterializedview",
5647 		sql_help_DROP_MATERIALIZED_VIEW,
5648 	0},
5649 
5650 	{"DROP OPERATOR",
5651 		N_("remove an operator"),
5652 		"sql-dropoperator",
5653 		sql_help_DROP_OPERATOR,
5654 	0},
5655 
5656 	{"DROP OPERATOR CLASS",
5657 		N_("remove an operator class"),
5658 		"sql-dropopclass",
5659 		sql_help_DROP_OPERATOR_CLASS,
5660 	0},
5661 
5662 	{"DROP OPERATOR FAMILY",
5663 		N_("remove an operator family"),
5664 		"sql-dropopfamily",
5665 		sql_help_DROP_OPERATOR_FAMILY,
5666 	0},
5667 
5668 	{"DROP OWNED",
5669 		N_("remove database objects owned by a database role"),
5670 		"sql-drop-owned",
5671 		sql_help_DROP_OWNED,
5672 	0},
5673 
5674 	{"DROP POLICY",
5675 		N_("remove a row-level security policy from a table"),
5676 		"sql-droppolicy",
5677 		sql_help_DROP_POLICY,
5678 	0},
5679 
5680 	{"DROP PROCEDURE",
5681 		N_("remove a procedure"),
5682 		"sql-dropprocedure",
5683 		sql_help_DROP_PROCEDURE,
5684 	1},
5685 
5686 	{"DROP PUBLICATION",
5687 		N_("remove a publication"),
5688 		"sql-droppublication",
5689 		sql_help_DROP_PUBLICATION,
5690 	0},
5691 
5692 	{"DROP ROLE",
5693 		N_("remove a database role"),
5694 		"sql-droprole",
5695 		sql_help_DROP_ROLE,
5696 	0},
5697 
5698 	{"DROP ROUTINE",
5699 		N_("remove a routine"),
5700 		"sql-droproutine",
5701 		sql_help_DROP_ROUTINE,
5702 	1},
5703 
5704 	{"DROP RULE",
5705 		N_("remove a rewrite rule"),
5706 		"sql-droprule",
5707 		sql_help_DROP_RULE,
5708 	0},
5709 
5710 	{"DROP SCHEMA",
5711 		N_("remove a schema"),
5712 		"sql-dropschema",
5713 		sql_help_DROP_SCHEMA,
5714 	0},
5715 
5716 	{"DROP SEQUENCE",
5717 		N_("remove a sequence"),
5718 		"sql-dropsequence",
5719 		sql_help_DROP_SEQUENCE,
5720 	0},
5721 
5722 	{"DROP SERVER",
5723 		N_("remove a foreign server descriptor"),
5724 		"sql-dropserver",
5725 		sql_help_DROP_SERVER,
5726 	0},
5727 
5728 	{"DROP STATISTICS",
5729 		N_("remove extended statistics"),
5730 		"sql-dropstatistics",
5731 		sql_help_DROP_STATISTICS,
5732 	0},
5733 
5734 	{"DROP SUBSCRIPTION",
5735 		N_("remove a subscription"),
5736 		"sql-dropsubscription",
5737 		sql_help_DROP_SUBSCRIPTION,
5738 	0},
5739 
5740 	{"DROP TABLE",
5741 		N_("remove a table"),
5742 		"sql-droptable",
5743 		sql_help_DROP_TABLE,
5744 	0},
5745 
5746 	{"DROP TABLESPACE",
5747 		N_("remove a tablespace"),
5748 		"sql-droptablespace",
5749 		sql_help_DROP_TABLESPACE,
5750 	0},
5751 
5752 	{"DROP TEXT SEARCH CONFIGURATION",
5753 		N_("remove a text search configuration"),
5754 		"sql-droptsconfig",
5755 		sql_help_DROP_TEXT_SEARCH_CONFIGURATION,
5756 	0},
5757 
5758 	{"DROP TEXT SEARCH DICTIONARY",
5759 		N_("remove a text search dictionary"),
5760 		"sql-droptsdictionary",
5761 		sql_help_DROP_TEXT_SEARCH_DICTIONARY,
5762 	0},
5763 
5764 	{"DROP TEXT SEARCH PARSER",
5765 		N_("remove a text search parser"),
5766 		"sql-droptsparser",
5767 		sql_help_DROP_TEXT_SEARCH_PARSER,
5768 	0},
5769 
5770 	{"DROP TEXT SEARCH TEMPLATE",
5771 		N_("remove a text search template"),
5772 		"sql-droptstemplate",
5773 		sql_help_DROP_TEXT_SEARCH_TEMPLATE,
5774 	0},
5775 
5776 	{"DROP TRANSFORM",
5777 		N_("remove a transform"),
5778 		"sql-droptransform",
5779 		sql_help_DROP_TRANSFORM,
5780 	0},
5781 
5782 	{"DROP TRIGGER",
5783 		N_("remove a trigger"),
5784 		"sql-droptrigger",
5785 		sql_help_DROP_TRIGGER,
5786 	0},
5787 
5788 	{"DROP TYPE",
5789 		N_("remove a data type"),
5790 		"sql-droptype",
5791 		sql_help_DROP_TYPE,
5792 	0},
5793 
5794 	{"DROP USER",
5795 		N_("remove a database role"),
5796 		"sql-dropuser",
5797 		sql_help_DROP_USER,
5798 	0},
5799 
5800 	{"DROP USER MAPPING",
5801 		N_("remove a user mapping for a foreign server"),
5802 		"sql-dropusermapping",
5803 		sql_help_DROP_USER_MAPPING,
5804 	0},
5805 
5806 	{"DROP VIEW",
5807 		N_("remove a view"),
5808 		"sql-dropview",
5809 		sql_help_DROP_VIEW,
5810 	0},
5811 
5812 	{"END",
5813 		N_("commit the current transaction"),
5814 		"sql-end",
5815 		sql_help_END,
5816 	0},
5817 
5818 	{"EXECUTE",
5819 		N_("execute a prepared statement"),
5820 		"sql-execute",
5821 		sql_help_EXECUTE,
5822 	0},
5823 
5824 	{"EXPLAIN",
5825 		N_("show the execution plan of a statement"),
5826 		"sql-explain",
5827 		sql_help_EXPLAIN,
5828 	13},
5829 
5830 	{"FETCH",
5831 		N_("retrieve rows from a query using a cursor"),
5832 		"sql-fetch",
5833 		sql_help_FETCH,
5834 	17},
5835 
5836 	{"GRANT",
5837 		N_("define access privileges"),
5838 		"sql-grant",
5839 		sql_help_GRANT,
5840 	81},
5841 
5842 	{"IMPORT FOREIGN SCHEMA",
5843 		N_("import table definitions from a foreign server"),
5844 		"sql-importforeignschema",
5845 		sql_help_IMPORT_FOREIGN_SCHEMA,
5846 	4},
5847 
5848 	{"INSERT",
5849 		N_("create new rows in a table"),
5850 		"sql-insert",
5851 		sql_help_INSERT,
5852 	19},
5853 
5854 	{"LISTEN",
5855 		N_("listen for a notification"),
5856 		"sql-listen",
5857 		sql_help_LISTEN,
5858 	0},
5859 
5860 	{"LOAD",
5861 		N_("load a shared library file"),
5862 		"sql-load",
5863 		sql_help_LOAD,
5864 	0},
5865 
5866 	{"LOCK",
5867 		N_("lock a table"),
5868 		"sql-lock",
5869 		sql_help_LOCK,
5870 	5},
5871 
5872 	{"MOVE",
5873 		N_("position a cursor"),
5874 		"sql-move",
5875 		sql_help_MOVE,
5876 	17},
5877 
5878 	{"NOTIFY",
5879 		N_("generate a notification"),
5880 		"sql-notify",
5881 		sql_help_NOTIFY,
5882 	0},
5883 
5884 	{"PREPARE",
5885 		N_("prepare a statement for execution"),
5886 		"sql-prepare",
5887 		sql_help_PREPARE,
5888 	0},
5889 
5890 	{"PREPARE TRANSACTION",
5891 		N_("prepare the current transaction for two-phase commit"),
5892 		"sql-prepare-transaction",
5893 		sql_help_PREPARE_TRANSACTION,
5894 	0},
5895 
5896 	{"REASSIGN OWNED",
5897 		N_("change the ownership of database objects owned by a database role"),
5898 		"sql-reassign-owned",
5899 		sql_help_REASSIGN_OWNED,
5900 	1},
5901 
5902 	{"REFRESH MATERIALIZED VIEW",
5903 		N_("replace the contents of a materialized view"),
5904 		"sql-refreshmaterializedview",
5905 		sql_help_REFRESH_MATERIALIZED_VIEW,
5906 	1},
5907 
5908 	{"REINDEX",
5909 		N_("rebuild indexes"),
5910 		"sql-reindex",
5911 		sql_help_REINDEX,
5912 	6},
5913 
5914 	{"RELEASE SAVEPOINT",
5915 		N_("destroy a previously defined savepoint"),
5916 		"sql-release-savepoint",
5917 		sql_help_RELEASE_SAVEPOINT,
5918 	0},
5919 
5920 	{"RESET",
5921 		N_("restore the value of a run-time parameter to the default value"),
5922 		"sql-reset",
5923 		sql_help_RESET,
5924 	1},
5925 
5926 	{"REVOKE",
5927 		N_("remove access privileges"),
5928 		"sql-revoke",
5929 		sql_help_REVOKE,
5930 	108},
5931 
5932 	{"ROLLBACK",
5933 		N_("abort the current transaction"),
5934 		"sql-rollback",
5935 		sql_help_ROLLBACK,
5936 	0},
5937 
5938 	{"ROLLBACK PREPARED",
5939 		N_("cancel a transaction that was earlier prepared for two-phase commit"),
5940 		"sql-rollback-prepared",
5941 		sql_help_ROLLBACK_PREPARED,
5942 	0},
5943 
5944 	{"ROLLBACK TO SAVEPOINT",
5945 		N_("roll back to a savepoint"),
5946 		"sql-rollback-to",
5947 		sql_help_ROLLBACK_TO_SAVEPOINT,
5948 	0},
5949 
5950 	{"SAVEPOINT",
5951 		N_("define a new savepoint within the current transaction"),
5952 		"sql-savepoint",
5953 		sql_help_SAVEPOINT,
5954 	0},
5955 
5956 	{"SECURITY LABEL",
5957 		N_("define or change a security label applied to an object"),
5958 		"sql-security-label",
5959 		sql_help_SECURITY_LABEL,
5960 	29},
5961 
5962 	{"SELECT",
5963 		N_("retrieve rows from a table or view"),
5964 		"sql-select",
5965 		sql_help_SELECT,
5966 	44},
5967 
5968 	{"SELECT INTO",
5969 		N_("define a new table from the results of a query"),
5970 		"sql-selectinto",
5971 		sql_help_SELECT_INTO,
5972 	14},
5973 
5974 	{"SET",
5975 		N_("change a run-time parameter"),
5976 		"sql-set",
5977 		sql_help_SET,
5978 	1},
5979 
5980 	{"SET CONSTRAINTS",
5981 		N_("set constraint check timing for the current transaction"),
5982 		"sql-set-constraints",
5983 		sql_help_SET_CONSTRAINTS,
5984 	0},
5985 
5986 	{"SET ROLE",
5987 		N_("set the current user identifier of the current session"),
5988 		"sql-set-role",
5989 		sql_help_SET_ROLE,
5990 	2},
5991 
5992 	{"SET SESSION AUTHORIZATION",
5993 		N_("set the session user identifier and the current user identifier of the current session"),
5994 		"sql-set-session-authorization",
5995 		sql_help_SET_SESSION_AUTHORIZATION,
5996 	2},
5997 
5998 	{"SET TRANSACTION",
5999 		N_("set the characteristics of the current transaction"),
6000 		"sql-set-transaction",
6001 		sql_help_SET_TRANSACTION,
6002 	8},
6003 
6004 	{"SHOW",
6005 		N_("show the value of a run-time parameter"),
6006 		"sql-show",
6007 		sql_help_SHOW,
6008 	1},
6009 
6010 	{"START TRANSACTION",
6011 		N_("start a transaction block"),
6012 		"sql-start-transaction",
6013 		sql_help_START_TRANSACTION,
6014 	6},
6015 
6016 	{"TABLE",
6017 		N_("retrieve rows from a table or view"),
6018 		"sql-select",
6019 		sql_help_TABLE,
6020 	44},
6021 
6022 	{"TRUNCATE",
6023 		N_("empty a table or set of tables"),
6024 		"sql-truncate",
6025 		sql_help_TRUNCATE,
6026 	1},
6027 
6028 	{"UNLISTEN",
6029 		N_("stop listening for a notification"),
6030 		"sql-unlisten",
6031 		sql_help_UNLISTEN,
6032 	0},
6033 
6034 	{"UPDATE",
6035 		N_("update rows of a table"),
6036 		"sql-update",
6037 		sql_help_UPDATE,
6038 	8},
6039 
6040 	{"VACUUM",
6041 		N_("garbage-collect and optionally analyze a database"),
6042 		"sql-vacuum",
6043 		sql_help_VACUUM,
6044 	18},
6045 
6046 	{"VALUES",
6047 		N_("compute a set of rows"),
6048 		"sql-values",
6049 		sql_help_VALUES,
6050 	4},
6051 
6052 	{"WITH",
6053 		N_("retrieve rows from a table or view"),
6054 		"sql-select",
6055 		sql_help_WITH,
6056 	44},
6057 
6058 
6059 	{NULL, NULL, NULL}			/* End of list marker */
6060 };
6061