hi. I found some minor issues related to the EXPLAIN command.
cannot auto-complete with a white space. src8=# explain (analyze,b can auto-complete: src8=# explain (analyze, b to make tab-complete work, comma, must be followed with a white space, not sure why. -------------- explain (serialize binary) select 1; ERROR: EXPLAIN option SERIALIZE requires ANALYZE do you think it's better to rephrase it as: ERROR: EXPLAIN option SERIALIZE requires ANALYZE option since we have separate ANALYZE SQL commands. -------------- <para> Specify the output format, which can be TEXT, XML, JSON, or YAML. Non-text output contains the same information as the text output format, but is easier for programs to parse. This parameter defaults to <literal>TEXT</literal>. </para> should we add <literal> attribute for {TEXT, XML, JSON, YAML} in the above paragraph? -------------- i created a patch for tab-complete for memory, SERIALIZE option.
From bec2c92ef61bb8272608a49e6837141e7e8346b3 Mon Sep 17 00:00:00 2001 From: jian he <jian.universality@gmail.com> Date: Sat, 27 Apr 2024 10:33:16 +0800 Subject: [PATCH v1 1/1] add Tab-complete for EXPLAIN MEMORY, EXPLAIN SERIALIZE --- src/bin/psql/tab-complete.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index 6fee3160..08641565 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -3856,11 +3856,13 @@ psql_completion(const char *text, int start, int end) */ if (ends_with(prev_wd, '(') || ends_with(prev_wd, ',')) COMPLETE_WITH("ANALYZE", "VERBOSE", "COSTS", "SETTINGS", "GENERIC_PLAN", - "BUFFERS", "WAL", "TIMING", "SUMMARY", "FORMAT"); - else if (TailMatches("ANALYZE|VERBOSE|COSTS|SETTINGS|GENERIC_PLAN|BUFFERS|WAL|TIMING|SUMMARY")) + "BUFFERS", "WAL", "TIMING", "SUMMARY", "FORMAT", "SERIALIZE", "MEMORY"); + else if (TailMatches("ANALYZE|VERBOSE|COSTS|SETTINGS|GENERIC_PLAN|BUFFERS|WAL|TIMING|SUMMARY|MEMORY")) COMPLETE_WITH("ON", "OFF"); else if (TailMatches("FORMAT")) COMPLETE_WITH("TEXT", "XML", "JSON", "YAML"); + else if (TailMatches("SERIALIZE")) + COMPLETE_WITH("TEXT", "NONE", "BINARY"); } else if (Matches("EXPLAIN", "ANALYZE")) COMPLETE_WITH("SELECT", "INSERT INTO", "DELETE FROM", "UPDATE", "DECLARE", base-commit: 1713e3d6cd393fcc1d4873e75c7fa1f6c7023d75 -- 2.34.1