Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bcQOP-0006tU-8S for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Aug 2016 05:06:25 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bcQOO-00084U-Qo for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Aug 2016 05:06:24 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1bcQN0-0005Nj-QF for pgsql-hackers@postgresql.org; Wed, 24 Aug 2016 05:04:58 +0000 Received: from smtprelay0005.b.hostedemail.com ([64.98.42.5] helo=smtprelay.b.hostedemail.com) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1bcQMt-0004hm-5y for pgsql-hackers@postgresql.org; Wed, 24 Aug 2016 05:04:58 +0000 Received: from filter.hostedemail.com (10.5.19.248.rfc1918.com [10.5.19.248]) by smtprelay05.b.hostedemail.com (Postfix) with ESMTP id F0FEB32AFD8; Wed, 24 Aug 2016 05:04:48 +0000 (UTC) X-Session-Marker: 616C76686572726540616C76682E6E6F2D69702E6F7267 X-Spam-Summary: 50,0,0,,d41d8cd98f00b204,alvherre@alvh.no-ip.org,:::::::::::,RULES_HIT:41:355:379:599:967:973:988:989:1260:1263:1277:1311:1312:1313:1314:1345:1359:1437:1515:1516:1518:1519:1534:1541:1593:1594:1595:1596:1711:1730:1747:1777:1792:2194:2199:2393:2525:2553:2560:2563:2682:2685:2828:2859:2914:2933:2937:2939:2942:2945:2947:2951:2954:3022:3138:3139:3140:3141:3142:3352:3865:3866:3867:3868:3870:3871:3872:3873:3874:3934:3936:3938:3941:3944:3947:3950:3953:3956:3959:4250:4605:4659:5007:6261:8957:9025:9121:10004:10400:10848:11232:11256:11257:11658:11914:12296:12438:12517:12519:13069:13255:13311:13357:13439:13894:13895:14764:21080:21324:30054:30070:30090,0,RBL:none,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fn,MSBL:0,DNSBL:none,Custom_rules:0:0:0,LFtime:3,LUA_SUMMARY:none X-HE-Tag: road75_cda993f2d45a X-Filterd-Recvd-Size: 2190 Received: from alvin.alvh.no-ip.org (unknown [181.43.101.173]) (Authenticated sender: alvherre@alvh.no-ip.org) by omf06.b.hostedemail.com (Postfix) with ESMTPA; Wed, 24 Aug 2016 05:04:48 +0000 (UTC) Received: by alvin.alvh.no-ip.org (Postfix, from userid 1000) id 9CD9278D; Wed, 24 Aug 2016 02:04:45 -0300 (CLST) Date: Wed, 24 Aug 2016 02:04:45 -0300 From: Alvaro Herrera To: Claudio Freire Cc: Tomas Vondra , Robert Haas , Jim Nasby , Aleksander Alekseev , PostgreSQL Hackers Subject: Re: [Patch] Temporary tables that do not bloat pg_catalog (a.k.a fast temp tables) Message-ID: <20160824050445.GA192014@alvherre.pgsql> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-Pg-Spam-Score: -0.4 (/) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org Claudio Freire wrote: > After looking at it from a birdseye view, I agree it's conceptually > complex (reading HeapTupleSatisfiesSelf already makes one dizzy). > > But other than that, the implementation seems rather simple. It seems > to me, if one figures out that it is safe to do so (a-priori, xmin not > committed, xmax is current transaction), it would simply be a matter > of chasing the HOT chain root, setting all LP except the first to > LP_UNUSED and the first one to LP_DEAD. > > Of course I may be missing a ton of stuff. What you seem to be missing is that rows corresponding to temp tables are not "visible to its own transaction only". The rows are valid after the transaction is gone; what makes the tables temporary is the fact that they are in a temporary schema. And what makes them invisible to one backend is the fact that they are in the temporary schema for another backend. Not that they are uncommitted. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers