Re: [COMMITTERS] pgsql: Apply RLS policies to partitioned tables. - Mailing list pgsql-committers
From | Amit Langote |
---|---|
Subject | Re: [COMMITTERS] pgsql: Apply RLS policies to partitioned tables. |
Date | |
Msg-id | bea1642d-2791-fe5f-e9cf-df12ea5cf162@lab.ntt.co.jp Whole thread Raw |
In response to | Re: [COMMITTERS] pgsql: Apply RLS policies to partitioned tables. (Joe Conway <mail@joeconway.com>) |
Responses |
Re: [COMMITTERS] pgsql: Apply RLS policies to partitioned tables.
|
List | pgsql-committers |
On 2017/06/12 11:09, Joe Conway wrote: > On 06/11/2017 05:35 PM, Tom Lane wrote: >> Joe Conway <mail@joeconway.com> writes: >>> Apply RLS policies to partitioned tables. >> >> Buildfarm member skink has grown a "make check" failure with this commit. >> >> ==28150== VALGRINDERROR-BEGIN >> ==28150== Invalid read of size 8 >> ==28150== at 0x39A355: ExecInitModifyTable (nodeModifyTable.c:1862) >> ==28150== by 0x37F0F8: ExecInitNode (execProcnode.c:168) >> ==28150== by 0x37C219: InitPlan (execMain.c:1044) >> ==28150== by 0x37C3AF: standard_ExecutorStart (execMain.c:256) >> ==28150== by 0x37C4B8: ExecutorStart (execMain.c:151) >> ==28150== by 0x4CCCCE: ProcessQuery (pquery.c:157) >> ==28150== by 0x4CCEDF: PortalRunMulti (pquery.c:1287) >> ==28150== by 0x4CDE19: PortalRun (pquery.c:800) >> ==28150== by 0x4C9E85: exec_simple_query (postgres.c:1099) >> ==28150== by 0x4CBF20: PostgresMain (postgres.c:4087) >> ==28150== by 0x44DC04: BackendRun (postmaster.c:4331) >> ==28150== by 0x44FD9B: BackendStartup (postmaster.c:4003) >> ==28150== Address 0xbbdbec8 is 8,008 bytes inside a recently re-allocated block of size 8,192 alloc'd >> ==28150== at 0x4C2AB76: malloc (vg_replace_malloc.c:299) >> ==28150== by 0x6002D2: AllocSetAlloc (aset.c:760) >> ==28150== by 0x606EB5: MemoryContextAllocZeroAligned (mcxt.c:791) >> ==28150== by 0x3832B1: CreateExecutorState (execUtils.c:99) >> ==28150== by 0x37C2E6: standard_ExecutorStart (execMain.c:186) >> ==28150== by 0x37C4B8: ExecutorStart (execMain.c:151) >> ==28150== by 0x4CCCCE: ProcessQuery (pquery.c:157) >> ==28150== by 0x4CCEDF: PortalRunMulti (pquery.c:1287) >> ==28150== by 0x4CDE19: PortalRun (pquery.c:800) >> ==28150== by 0x4C9E85: exec_simple_query (postgres.c:1099) >> ==28150== by 0x4CBF20: PostgresMain (postgres.c:4087) >> ==28150== by 0x44DC04: BackendRun (postmaster.c:4331) >> ==28150== >> ==28150== VALGRINDERROR-END >> >> The cited line is the ExecInitQual call here: >> >> /* varno = node->nominalRelation */ >> mapped_wcoList = map_partition_varattnos(wcoList, >> node->nominalRelation, >> partrel, rel); >> foreach(ll, mapped_wcoList) >> { >> WithCheckOption *wco = (WithCheckOption *) lfirst(ll); >> ExprState *wcoExpr = ExecInitQual((List *) wco->qual, >> mtstate->mt_plans[i]); >> >> wcoExprs = lappend(wcoExprs, wcoExpr); >> } >> >> First guess is that map_partition_varattnos has forgotten to handle >> WithCheckOption.qual. If so, though, and if that's not resulting >> in visible misbehavior in the regression tests, then we are missing >> a case that the regression tests should be covering. >> >> BTW, it might be advisable to use castNode(WithCheckOption, ...) >> in the line before that. > > Drat. I'll take a look, but it would probably be good if someone > generally familiar with the partitioned tables patches have a look as well. I am looking too. Commit 587cda35ca3 which added that code did add a test in updatable_views.sql, but tests added by this commit have perhaps exposed something not previously covered. Thanks, Amit
pgsql-committers by date: