Re: Tab completion for CREATE SCHEMAAUTHORIZATION
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Cc: Suraj Khamkar <khamkarsuraj.b@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2023-05-06T02:58:43Z
Lists: pgsql-hackers
On Tue, May 02, 2023 at 01:19:49PM +0100, Dagfinn Ilmari Mannsåker wrote:
> Dagfinn Ilmari Mannsåker <ilmari@ilmari.org> writes:
>> This is for completing the word CREATE itself after CREATE SCHEMA
>> [[<name>] AUTHORIZATION] <name>. The things that can come after that
>> are already handled generically earlier in the function:
>>
>> /* CREATE */
>> /* complete with something you can create */
>> else if (TailMatches("CREATE"))
>> matches = rl_completion_matches(text, create_command_generator);
>>
>> create_command_generator uses the words_after_create array, which lists
>> all the things that can be created.
You are right. I have completely forgotten that this code path would
append everything that supports CREATE for a CREATE SCHEMA command :)
> But, looking closer at the docs, only tables, views, indexes, sequences
> and triggers can be created as part of a CREATE SCHEMA statement. Maybe
> we should add a HeadMatches("CREATE", "SCHEMA") exception in the above?
Yes, it looks like we are going to need an exception and append only
the keywords that are supported, or we will end up recommending mostly
things that are not accepted by the parser.
--
Michael
Commits
-
Add tab completion for CREATE SCHEMA in psql
- c951e9042dd1 17.0 landed
-
psql: improve tab-complete's handling of variant SQL names.
- 02b8048ba5dc 15.0 cited