Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ptozB-0008Lb-SQ for pgsql-hackers@arkaria.postgresql.org; Tue, 02 May 2023 12:20:02 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1ptozA-000703-9a for pgsql-hackers@arkaria.postgresql.org; Tue, 02 May 2023 12:20:00 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ptoz9-0006zm-1s for pgsql-hackers@lists.postgresql.org; Tue, 02 May 2023 12:20:00 +0000 Received: from wout2-smtp.messagingengine.com ([64.147.123.25]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ptoz5-0007HO-Gn for pgsql-hackers@lists.postgresql.org; Tue, 02 May 2023 12:19:57 +0000 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 358493200923; Tue, 2 May 2023 08:19:52 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Tue, 02 May 2023 08:19:52 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ilmari.org; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm3; t= 1683029991; x=1683116391; bh=xJDyV0YCgVtgxIDSdGtMPLB28qhklrT3O7P 7qgt1Hfk=; b=f6jlaLukHp+TOcFinr1VxWoYJgJ02L+JKnCnuBCiHS6FBSbalyo cD0ysfli6h2nOYX0Gycla16Ye1tP68IUgVBJsp3kJ0MTt88tRuhL1Teai1KXmjbx rP+xXfH84Svkkdnis3nFNYNxLFuEKLUYZvFn/cgYsKZ/UU+hOc0hdGw/6Bd3J9Wk DHMC7cGCBRdRjkhgoX1VN8zXVmV+mbw+aFkJmCGJPapGPY7RZ6X51SqIiZOeRHg1 7TQ89dp133NODcdT3O9/4C6mN84p3GC0tLvn2XFRDgxUT312xDTsuGZTCyaYXlDp 5ynnKx9NyB+OsS7220s9RjDDMgxVfqhYmWw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1683029991; x=1683116391; bh=xJDyV0YCgVtgxIDSdGtMPLB28qhklrT3O7P 7qgt1Hfk=; b=a4swFh3JuuEueksvP+bLbAoXaeBvDXVVn4QPUBcM4iN8jPIPZfT CNbCLs8AbbuFikve6r6pmRPnPDNOUNhKXo+hNu2p/t6K+oBh5qJqE29Lr3ve71Nt zLAEQquNC1Ohg6LH+pUBkOSmHjhMcpokprZAasAps9mwkXSblMRBMDX/K2cS9PIA mQXDjBqDtr83vKGriZ1RqkrENWq/cfM1qd6kdmCBFv179/Z/IU9IgxjLqH87EGvr BcVI0iGtAy/Kj1ThIrahmuX+e17RrVia7EEFDzGEzOD9AU99QQz2qMaNV2z3asIv fC4EAW94hWNQK2bntO5dZos7IAf3oC4/S1A== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrfedviedghedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne gfrhhlucfvnfffucdlfeehmdenucfjughrpefhvfevufhfffgjkfgfgggtgfesthekredt tderjeenucfhrhhomhepffgrghhfihhnnhcukfhlmhgrrhhiucforghnnhhsnohkvghruc eoihhlmhgrrhhisehilhhmrghrihdrohhrgheqnecuggftrfgrthhtvghrnheptdejveeu jeegjedvffeuudejtefhhfehgfdthfeijeffkeevkefgtdffjefhtdeinecuvehluhhsth gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepihhlmhgrrhhisehilhhm rghrihdrohhrgh X-ME-Proxy: Feedback-ID: i1ff147bf:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 2 May 2023 08:19:50 -0400 (EDT) From: =?utf-8?Q?Dagfinn_Ilmari_Manns=C3=A5ker?= To: Michael Paquier Cc: Suraj Khamkar , pgsql-hackers@lists.postgresql.org Subject: Re: Tab completion for CREATE SCHEMAAUTHORIZATION References: <8735snihmz.fsf@wibble.ilmari.org> <87wnprhlsl.fsf@wibble.ilmari.org> <874kc1gdxc.fsf@wibble.ilmari.org> <87im0efqhp.fsf@wibble.ilmari.org> <87ildyqwks.fsf@wibble.ilmari.org> <875y9buhys.fsf@wibble.ilmari.org> Date: Tue, 02 May 2023 13:19:49 +0100 In-Reply-To: <875y9buhys.fsf@wibble.ilmari.org> ("Dagfinn Ilmari =?utf-8?Q?Manns=C3=A5ker=22's?= message of "Tue, 02 May 2023 11:48:43 +0100") Message-ID: <87354fudqy.fsf@wibble.ilmari.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Dagfinn Ilmari Mannsåker writes: > Michael Paquier 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 > [[] AUTHORIZATION] . 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. 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? - ilmari