Thread: Tab completion for CREATE TABLE ... AS
Hi, Look like the tab completion for CREATE TABLE ... AS is not proposed. gilles=# CREATE TABLE test ( OF PARTITION OF The attached patch fix that and also propose the further completion after the AS keyword. gilles=# CREATE TABLE test ( AS OF PARTITION OF gilles=# CREATE TABLE test AS SELECT WITH Adding the patch to current commitfest. Best regards, -- Gilles Darold http://www.darold.net/
Attachment
Hi On 02.11.23 17:27, Gilles Darold wrote: > Hi, > > > Look like the tab completion for CREATE TABLE ... AS is not proposed. > > > gilles=# CREATE TABLE test > ( OF PARTITION OF > > The attached patch fix that and also propose the further completion > after the AS keyword. > > > gilles=# CREATE TABLE test > ( AS OF PARTITION OF > gilles=# CREATE TABLE test AS > SELECT WITH > > Adding the patch to current commitfest. > > > Best regards, > Thanks for the patch! It applies and builds cleanly, and it works as expected "AS" is suggested after "CREATE TABLE t": postgres=# CREATE TABLE t <TAB><TAB> ( AS OF PARTITION OF -- Jim
On Thu, Nov 02, 2023 at 07:27:02PM +0300, Gilles Darold wrote: > Look like the tab completion for CREATE TABLE ... AS is not > proposed. > > + /* Complete CREATE TABLE <name> AS with list of keywords */ > + else if (TailMatches("CREATE", "TABLE", MatchAny, "AS") || > + TailMatches("CREATE", "TEMP|TEMPORARY|UNLOGGED", "TABLE", MatchAny, "AS")) > + COMPLETE_WITH("SELECT", "WITH"); There is a bit more than SELECT and WITH as possible query for a CTAS. How about VALUES, TABLE or even EXECUTE (itself able to handle a SELECT, TABLE or VALUES)? -- Michael
Attachment
Le 15/11/2023 à 03:58, Michael Paquier a écrit : > On Thu, Nov 02, 2023 at 07:27:02PM +0300, Gilles Darold wrote: >> Look like the tab completion for CREATE TABLE ... AS is not >> proposed. >> >> + /* Complete CREATE TABLE <name> AS with list of keywords */ >> + else if (TailMatches("CREATE", "TABLE", MatchAny, "AS") || >> + TailMatches("CREATE", "TEMP|TEMPORARY|UNLOGGED", "TABLE", MatchAny, "AS")) >> + COMPLETE_WITH("SELECT", "WITH"); > There is a bit more than SELECT and WITH as possible query for a CTAS. > How about VALUES, TABLE or even EXECUTE (itself able to handle a > SELECT, TABLE or VALUES)? > -- > Michael Right, I don't know how I have missed the sql-createtableas page in the documentation. Patched v2 fixes the keyword list, I have also sorted by alphabetical order the CREATE TABLE completion (AS was at the end of the list). It has also been re-based on current master. -- Gilles Darold http://www.darold.net/
Attachment
On Wed, Nov 15, 2023 at 05:26:58PM +0300, Gilles Darold wrote: > Right, I don't know how I have missed the sql-createtableas page in the > documentation. > > Patched v2 fixes the keyword list, I have also sorted by alphabetical order > the CREATE TABLE completion (AS was at the end of the list). > > It has also been re-based on current master. Fun. It has failed to apply here. Anyway, I can see that a comment update has been forgotten. A second thing is that it requires two more lines to add the query keywords for the case where a CTAS has a list of column names. I've added both changes, and applied the patch on HEAD. That's not all the patterns possible, but this covers the most useful ones. -- Michael