public inbox for [email protected]  
help / color / mirror / Atom feed
From: Dagfinn Ilmari Mannsåker <[email protected]>
To: px shi <[email protected]>
Cc: [email protected]
Subject: Re: CREATE MATERIALIZED VIEW
Date: Thu, 25 Jul 2024 15:09:09 +0100
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <CAAccyY+Wg1Z-9tNfSwLmuZVgGOwqU5u1OP-RWcoAr2UZGuvN_w@mail.gmail.com>
	<[email protected]>

Dagfinn Ilmari Mannsåker <[email protected]> writes:

> px shi <[email protected]> writes:
>
>> Hi, I see that materialized view cannot be unlogged now, but when I use
>> psql and type CREATE UNLOGGED, pressing the Tab key for auto-completion
>> suggests `TABLE` and MATERIALIZED VIEW.
>> Shouldn't `MATERIALIZED VIEW ` be suggested?
>
> That's my fault, I added it in commit c951e9042dd1, presumably because
> the grammar allows it, but it turns transformCreateTableAsStmt() rejects
> it.

Scratch that, I misread the diff. The tab completion has been there
since matviews were added in commit 3bf3ab8c5636, but the restriction on
unlogged matviews was added later in commit 3223b25ff73, which failed to
update the tab completion code to match.

Here's a updated patch with a corrected commit message.

- ilmari



Attachments:

  [text/x-diff] v2-0001-Don-t-tab-complete-MATERIALIZED-VIEW-after-CREATE.patch (1.5K, ../[email protected]/2-v2-0001-Don-t-tab-complete-MATERIALIZED-VIEW-after-CREATE.patch)
  download | inline diff:
From 58aebeda0c2161598b58f468d3c46b113651fb79 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= <[email protected]>
Date: Thu, 25 Jul 2024 14:33:14 +0100
Subject: [PATCH v2] Don't tab complete MATERIALIZED VIEW after CREATE UNLOGGED

When materialized views were originally added in commit 3bf3ab8c5636,
they could be unlogged, so the tab completion was added. However, when
commit 3223b25ff73 banned them, the tab completion was not updated to
match.
---
 src/bin/psql/tab-complete.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 891face1b6..024469474d 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -3267,15 +3267,9 @@ psql_completion(const char *text, int start, int end)
 	/* Complete "CREATE TEMP/TEMPORARY" with the possible temp objects */
 	else if (TailMatches("CREATE", "TEMP|TEMPORARY"))
 		COMPLETE_WITH("SEQUENCE", "TABLE", "VIEW");
-	/* Complete "CREATE UNLOGGED" with TABLE, SEQUENCE or MATVIEW */
+	/* Complete "CREATE UNLOGGED" with TABLE or SEQUENCE */
 	else if (TailMatches("CREATE", "UNLOGGED"))
-	{
-		/* but not MATVIEW in CREATE SCHEMA */
-		if (HeadMatches("CREATE", "SCHEMA"))
-			COMPLETE_WITH("TABLE", "SEQUENCE");
-		else
-			COMPLETE_WITH("TABLE", "SEQUENCE", "MATERIALIZED VIEW");
-	}
+		COMPLETE_WITH("TABLE", "SEQUENCE");
 	/* Complete PARTITION BY with RANGE ( or LIST ( or ... */
 	else if (TailMatches("PARTITION", "BY"))
 		COMPLETE_WITH("RANGE (", "LIST (", "HASH (");
-- 
2.39.2



view thread (9+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected]
  Subject: Re: CREATE MATERIALIZED VIEW
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox