| From: | Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org> | 
|---|---|
| To: | Michael Paquier <michael(at)paquier(dot)xyz> | 
| Cc: | Suraj Khamkar <khamkarsuraj(dot)b(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org | 
| Subject: | Re: Tab completion for CREATE SCHEMAAUTHORIZATION | 
| Date: | 2023-05-02 10:48:43 | 
| Message-ID: | 875y9buhys.fsf@wibble.ilmari.org | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
Michael Paquier <michael(at)paquier(dot)xyz> writes:
> On Sat, Apr 15, 2023 at 11:06:25AM +0900, Michael Paquier wrote:
>> Thanks, I'll look at it.
>
> +   else if (Matches("CREATE", "SCHEMA", "AUTHORIZATION", MatchAny) ||
> +            Matches("CREATE", "SCHEMA", MatchAny, "AUTHORIZATION", MatchAny))
> +       COMPLETE_WITH("CREATE", "GRANT");
> +   else if (Matches("CREATE", "SCHEMA", MatchAny))
> +       COMPLETE_WITH("AUTHORIZATION", "CREATE", "GRANT");
>
> I had this grammar under my eyes a few days ago for a different patch,
> and there are much more objects types that can be appended to a CREATE
> SCHEMA, like triggers, sequences, tables or views, so this is
> incomplete, isn't it?
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.
- ilmari
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Alvaro Herrera | 2023-05-02 10:55:18 | Re: [PoC] pg_upgrade: allow to upgrade publisher node | 
| Previous Message | Benoit Lobréau | 2023-05-02 10:44:58 | Re: Logging parallel worker draught |