Freeze the inserted tuples during CTAS?

From: Paul Guo <guopa(at)vmware(dot)com>
To: "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Freeze the inserted tuples during CTAS?
Date: 2021-01-27 09:28:48
Message-ID: FB1F5E2D-CBD1-4645-B74C-E0A1BFAE4AC8@vmware.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Here is the simple patch,

diff --git a/src/backend/commands/createas.c b/src/backend/commands/createas.c
index dce882012e..0391699423 100644
--- a/src/backend/commands/createas.c
+++ b/src/backend/commands/createas.c
@@ -552,7 +552,7 @@ intorel_startup(DestReceiver *self, int operation, TupleDesc typeinfo)
myState->rel = intoRelationDesc;
myState->reladdr = intoRelationAddr;
myState->output_cid = GetCurrentCommandId(true);
- myState->ti_options = TABLE_INSERT_SKIP_FSM;
+ myState->ti_options = TABLE_INSERT_SKIP_FSM | TABLE_INSERT_FROZEN;

MatView code already does this and COPY does this if specified. I’m not sure how
does the community think about this. Actually personally I expect more about the
all-visible setting due to TABLE_INSERT_FROZEN since I could easier use index only scan
if we create an index and table use CTAS, else people have to use index only scan
after vacuum. If people do not expect freeze could we at least introduce a option to
specify the visibility during inserting?

Regards,
Paul

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Kapila 2021-01-27 09:30:56 Re: Support ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION ... syntax
Previous Message Bharath Rupireddy 2021-01-27 09:27:00 Re: Support ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION ... syntax