Re: Table AM modifications to accept column projection lists

From: Zhihong Yu <zyu(at)yugabyte(dot)com>
To: Jacob Champion <pchampion(at)vmware(dot)com>
Cc: "aleksander(at)timescale(dot)com" <aleksander(at)timescale(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>, "pryzby(at)telsasoft(dot)com" <pryzby(at)telsasoft(dot)com>, "sawada(dot)mshk(at)gmail(dot)com" <sawada(dot)mshk(at)gmail(dot)com>, "hlinnaka(at)iki(dot)fi" <hlinnaka(at)iki(dot)fi>, "soumyadeep2007(at)gmail(dot)com" <soumyadeep2007(at)gmail(dot)com>, Ashwin Agrawal <aashwin(at)vmware(dot)com>, "melanieplageman(at)gmail(dot)com" <melanieplageman(at)gmail(dot)com>
Subject: Re: Table AM modifications to accept column projection lists
Date: 2021-06-05 16:47:45
Message-ID: CALNJ-vQcJUu9qWECNDLd6an+K_Uhc2GJXDCSf5ejMv04=2ScJg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Jun 4, 2021 at 4:14 PM Jacob Champion <pchampion(at)vmware(dot)com> wrote:

> On Tue, 2021-06-01 at 15:38 +0300, Aleksander Alekseev wrote:
> > I came across this patch and noticed that it rotted a little,
> > especially after removing inheritance_planner() in 86dc9005. I
> > managed to resolve the conflicts on current `master` (eb89cb43), see
> > the attached patch. The code compiles but doesn't pass the tests. I'm
> > currently in the process of reviewing it and didn't figure out what
> > the issue is yet. Just wanted to let you know.
>
> Hi Alexsander, thanks!
>
> In your patch's transformInsertStmt(), I see what I think is an
> extraneous call to transformReturningList() right before the ON
> CONFLICT processing. That call is already done later in the function,
> during the RETURNING processing (this change came in with 6c0373ab77).
> Other than that, your rebased patch looks the same as mine.
>
> > I also believe changing the patch status to "Waiting on Author"
> > would be appropriate.
>
> Agreed. I'm going to double-check with Deep that the new calls
> to table_tuple_fetch_row_version() should be projecting the full row,
> then post an updated patch some time next week.
>
> Thanks again!
> --Jacob
>
Hi,

+ return
relation->rd_tableam->scan_begin_with_column_projection(relation, snapshot,
0, NULL,
+ parallel_scan, flags, proj);

scan_begin_with_column_projection() adds a parameter to scan_begin().
Can scan_begin() be enhanced with this projection parameter ?
Otherwise in the future we may
have scan_begin_with_column_projection_with_x_y ...

+ /* Make sure the the new slot is not dependent on the original tuple */

Double 'the' in the comment. More than one place with duplicate 'the' in
the patch.

+typedef struct neededColumnContext
+{
+ Bitmapset **mask;
+ int n;

Should field n be named ncol ? 'n' seems too general.

+ * TODO: Remove this hack!! This should be done once at the start
of the tid scan.

Would the above be addressed in the next patch ?

Toward the end of extract_scan_columns():

+ bms_free(rte->scanCols);
+ rte->scanCols = bms_make_singleton(0);
+ break;

Should 'goto outer;' be in place of 'break;' (since rte->scanCols has been
assigned for whole-row) ?

Cheers

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Noah Misch 2021-06-05 19:08:01 Re: A new function to wait for the backend exit after termination
Previous Message Alvaro Herrera 2021-06-05 15:02:49 Re: libpq debug log