add tab-complete for memory, serialize option and other minor issues.
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.
Attachments:
v1-0001-add-Tab-complete-for-EXPLAIN-MEMORY-EXPLAIN-SERIA.patchapplication/x-patch; name=v1-0001-add-Tab-complete-for-EXPLAIN-MEMORY-EXPLAIN-SERIA.patchDownload
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
jian he <jian.universality@gmail.com> writes:
to make tab-complete work, comma, must be followed with a white space,
not sure why.
/messages/by-id/3870833.1712696581@sss.pgh.pa.us
Post-feature-freeze is no time to be messing with behavior as basic
as WORD_BREAKS, though.
regards, tom lane
On Sat, Apr 27, 2024 at 11:15:47AM -0400, Tom Lane wrote:
/messages/by-id/3870833.1712696581@sss.pgh.pa.us
Post-feature-freeze is no time to be messing with behavior as basic
as WORD_BREAKS, though.
Indeed.
By the way, that psql completion patch has fallen through the cracks
and I don't see a point in waiting for that, so I have applied it.
Note that the patch did not order the options according to the docs,
which was consistent on HEAD but not anymore with the patch.
--
Michael