Joe Conway <m...@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. regards, tom lane -- Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-committers