Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1XuOZ1-0003tP-CL for pgsql-hackers@arkaria.postgresql.org; Fri, 28 Nov 2014 16:38:35 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1XuOZ0-0004EQ-2b for pgsql-hackers@arkaria.postgresql.org; Fri, 28 Nov 2014 16:38:34 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1XuOYy-0004EK-EL for pgsql-hackers@postgresql.org; Fri, 28 Nov 2014 16:38:32 +0000 Received: from lists.commandprompt.com ([69.168.55.30]) by magus.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1XuOYo-00044D-6p for pgsql-hackers@postgresql.org; Fri, 28 Nov 2014 16:38:26 +0000 Received: from titan (spinlock.commandprompt.com [69.168.55.30]) by lists.commandprompt.com (Postfix) with ESMTPA id 5A3A3215; Fri, 28 Nov 2014 08:38:13 -0800 (PST) Received: from titan ([195.216.213.70] helo=titan) by assp.commandprompt.com with ESMTPS(AES128-SHA) (2.1.1); 28 Nov 2014 08:38:10 -0800 From: Alex Shulgin To: Julien Tachoires Cc: Alvaro Herrera , Jaime Casanova , Robert Haas , Pg Hackers Subject: Re: patch : Allow toast tables to be moved to a different tablespace References: <4E8F1666.2060409@gmail.com> <1323956011-sup-9589@alvh.no-ip.org> Date: Fri, 28 Nov 2014 19:38:09 +0300 In-Reply-To: (Julien Tachoires's message of "Sun, 22 Jan 2012 17:04:25 +0100") Message-ID: <87r3wn5lhq.fsf@commandprompt.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Assp-Version: 2.1.1(11364) on assp.commandprompt.com X-Assp-Client-TLS: yes X-Assp-ID: assp.commandprompt.com m1-92693-07939 X-Assp-Envelope-From: ash@commandprompt.com X-Assp-Intended-For: pgsql-hackers@postgresql.org X-Assp-Original-Subject: Re: patch : Allow toast tables to be moved to a different tablespace X-Pg-Spam-Score: -1.9 (-) 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 --=-=-= Content-Type: text/plain Julien Tachoires writes: > > 2011/12/15 Alvaro Herrera : >> >> Uhm, surely you could compare the original toast tablespace to the heap >> tablespace, and if they differ, handle appropriately when creating the >> new toast table? =A0Just pass down the toast tablespace into >> AlterTableCreateToastTable, instead of having it assume that >> rel->rd_rel->relnamespace is sufficient. =A0This should be done in all >> cases where a toast tablespace is created, which shouldn't be more than >> a handful of them. > > Thank you, that way seems right. > Now, I distinguish before each creation of a TOAST table with > AlterTableCreateToastTable() : if it will create a new one or recreate > an existing one. > Thus, in create_toast_table() when toastTableSpace is equal to > InvalidOid, we are able : > - to fallback to the main table tablespace in case of new TOAST table creat= > ion > - to keep it previous tablespace in case of recreation. > > Here's a new version rebased against HEAD. Almost 3 years later, here's a version rebased against current HEAD. :-) It compiles and even passes the included regression test. There were doubts originally if this is actually a useful feature, but there is at least one plausible use case (main table on SSD, TOAST on HDD): http://www.postgresql.org/message-id/4F3267EE.80405@deltasoft.no I didn't add anything on top of the latest version, but I notice we've added mat. views since then, so it looks like we now also need this: ALTER MATERIALIZED VIEW SET [VIEW | TOAST] TABLESPACE Should I add this patch to the next CommitFest? -- Alex --=-=-= Content-Type: application/gzip Content-Disposition: attachment; filename=set_toast_tablespace_v0.11.patch.gz Content-Transfer-Encoding: base64 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 MGCflYThI30g6/8BITuyPEQHAQA= --=-=-= Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --=-=-=--