Fix use of wrong datatype with sizeof().
authorRobert Haas <rhaas@postgresql.org>
Mon, 25 Mar 2019 15:23:52 +0000 (11:23 -0400)
committerRobert Haas <rhaas@postgresql.org>
Mon, 25 Mar 2019 15:28:06 +0000 (11:28 -0400)
OID and int are the same size, but they are not the same thing.

David Rowley

Discussion: http://postgr.es/m/CAKJS1f_MhS++XngkTvWL9X1v8M5t-0N0B-R465yHQY=TmNV0Ew@mail.gmail.com

src/backend/nodes/copyfuncs.c
src/backend/partitioning/partprune.c

index d97781e1cbe3d93c250bdeff66b4e96495b39971..04cc15606d2c649adf22def8549ef6046a01ed10 100644 (file)
@@ -1204,7 +1204,7 @@ _copyPartitionedRelPruneInfo(const PartitionedRelPruneInfo *from)
        COPY_SCALAR_FIELD(nexprs);
        COPY_POINTER_FIELD(subplan_map, from->nparts * sizeof(int));
        COPY_POINTER_FIELD(subpart_map, from->nparts * sizeof(int));
-       COPY_POINTER_FIELD(relid_map, from->nparts * sizeof(int));
+       COPY_POINTER_FIELD(relid_map, from->nparts * sizeof(Oid));
        COPY_POINTER_FIELD(hasexecparam, from->nexprs * sizeof(bool));
        COPY_SCALAR_FIELD(do_initial_prune);
        COPY_SCALAR_FIELD(do_exec_prune);
index c7f3ca2a2084883e1fbf7b1c39022b0e3b25ad18..af3f91133ed7bb54f910d308bb8279ad25127160 100644 (file)
@@ -475,7 +475,7 @@ make_partitionedrel_pruneinfo(PlannerInfo *root, RelOptInfo *parentrel,
                 */
                subplan_map = (int *) palloc(nparts * sizeof(int));
                subpart_map = (int *) palloc(nparts * sizeof(int));
-               relid_map = (Oid *) palloc(nparts * sizeof(int));
+               relid_map = (Oid *) palloc(nparts * sizeof(Oid));
                present_parts = NULL;
 
                for (i = 0; i < nparts; i++)