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 1ot0S2-0001TZ-ID for pgsql-hackers@arkaria.postgresql.org; Thu, 10 Nov 2022 05:50:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1ot0R1-0002Py-RR for pgsql-hackers@arkaria.postgresql.org; Thu, 10 Nov 2022 05:49:07 +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 1ot0R1-0002O6-Hq for pgsql-hackers@lists.postgresql.org; Thu, 10 Nov 2022 05:49:07 +0000 Received: from ml.sraoss.co.jp ([66.11.59.17] helo=osspc26.sraoss.co.jp) by makus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1ot0Qw-0006uK-9V for pgsql-hackers@postgresql.org; Thu, 10 Nov 2022 05:49:05 +0000 Received: from sranhm.sraoss.co.jp (unknown [192.168.174.164]) by osspc26.sraoss.co.jp (Postfix) with ESMTP id 8D1EE2F000CF; Thu, 10 Nov 2022 14:47:35 +0900 (JST) Received: from yugon-CFSV7-1 (unknown [192.168.176.24]) by sranhm.sraoss.co.jp (Postfix) with SMTP id C18333417CF; Thu, 10 Nov 2022 14:48:59 +0900 (JST) Date: Thu, 10 Nov 2022 14:48:59 +0900 From: Yugo NAGATA To: Tom Lane Cc: Peter Eisentraut , pgsql-hackers@postgresql.org, "David G. Johnston" , Bruce Momjian Subject: Re: BUG #17434: CREATE/DROP DATABASE can be executed in the same transaction with other commands Message-Id: <20221110144859.d9004fdd47396fe64fe032da@sraoss.co.jp> In-Reply-To: <3995893.1668011885@sss.pgh.pa.us> References: <17434-d9f7a064ce2a88a3@postgresql.org> <3190751.1657845414@sss.pgh.pa.us> <3498921.1657919211@sss.pgh.pa.us> <805866.1658175624@sss.pgh.pa.us> <2350990.1658848101@sss.pgh.pa.us> <2356216.1658849834@sss.pgh.pa.us> <2361330.1658851386@sss.pgh.pa.us> <2363212.1658852059@sss.pgh.pa.us> <20220728105134.d5ce51dd756b3149e9b9c52c@sraoss.co.jp> <3214515.1658976655@sss.pgh.pa.us> <20220809002102.b815cd4dad20fdc91dff5ce8@sraoss.co.jp> <65a899dd-aebc-f667-1d0a-abb89ff3abf8@enterprisedb.com> <3995893.1668011885@sss.pgh.pa.us> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.32; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Wed, 09 Nov 2022 11:38:05 -0500 Tom Lane wrote: > Peter Eisentraut writes: > > This has broken the following use: > > > parse: create temporary table t1 (a int) on commit drop > > bind > > execute > > parse: analyze t1 > > bind > > execute > > parse: select * from t1 > > bind > > execute > > sync > > > I think the behavior of IsInTransactionBlock() needs to be further > > refined to support this. > > Hmm. Maybe the right way to think about this is "if we have completed an > EXECUTE, and not yet received a following SYNC, then report that we are in > a transaction block"? But I'm not sure if that breaks any other cases. Or, in that case, regarding it as an implicit transaction if multiple commands are executed in a pipeline as proposed in [1] could be another solution, although I have once withdrawn this for not breaking backward compatibility. Attached is the same patch of [1]. [1] https://www.postgresql.org/message-id/20220728105134.d5ce51dd756b3149e9b9c52c%40sraoss.co.jp Regards, Yugo Nagata -- Yugo NAGATA