0003-... patch does not apply cleanly. It has some conflicts in pg_dump.c.
I have tried fixing the conflict in attached patch.

On Mon, May 23, 2016 at 3:35 PM, Amit Langote <langote_amit...@lab.ntt.co.jp
> wrote:

>
> Hi Ildar,
>
> On 2016/05/21 0:29, Ildar Musin wrote:
> > On 20.05.2016 11:37, Amit Langote wrote:
> >> Moreover, instead of pruning partitions in planner prep phase, might it
> >> not be better to do that when considering paths for the (partitioned)
> rel?
> >>   IOW, instead of looking at parse->jointree, we should rather be
> working
> >> with rel->baserestrictinfo.  Although, that would require some revisions
> >> to how append_rel_list, simple_rel_list, etc. are constructed and
> >> manipulated in a given planner invocation.  Maybe it's time for that...
> >> Again, you may have already considered these things.
> >>
> > Yes, you're right, this is how we did it in pg_pathman extension. But for
> > this patch it requires further consideration and I'll do it in future!
>
> OK, sure.
>
> >> Could you try with the attached updated set of patches?  I changed
> >> partition descriptor relcache code to eliminate excessive copying in
> >> previous versions.
>
> [...]
>
> > However I've encountered a problem which is that postgres crashes
> > occasionally while creating partitions. Here is function that reproduces
> > this behaviour:
> >
> > CREATE OR REPLACE FUNCTION fail()
> >  RETURNS void
> >  LANGUAGE plpgsql
> > AS $$
> > BEGIN
> > DROP TABLE IF EXISTS abc CASCADE;
> > CREATE TABLE abc (id SERIAL NOT NULL, a INT, dt TIMESTAMP) PARTITION BY
> > RANGE (a);
> > CREATE INDEX ON abc (a);
> > CREATE TABLE abc_0 PARTITION OF abc FOR VALUES START (0) END (1000);
> > CREATE TABLE abc_1 PARTITION OF abc FOR VALUES START (1000) END (2000);
> > END
> > $$;
> >
> > SELECT fail();
> >
> > It happens not every time but quite often. It doesn't happen if I execute
> > this commands one by one in psql. Backtrace:
> >
> > #0  range_overlaps_existing_partition (key=0x7f1097504410,
> > range_spec=0x1d0f400, pdesc=0x1d32200, with=0x7ffe437ead00) at
> > partition.c:747
>
> [...]
>
> I made a mistake in the last version of the patch which caused a relcache
> field to be pfree'd unexpectedly.  Attached updated patches.
>
> Thanks,
> Amit
>
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>
>


-- 
Best Wishes,
Ashutosh Bapat
EnterpriseDB Corporation
The Postgres Database Company
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index ea3bfd6..22c3a36 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -5296,7 +5296,7 @@ getTables(Archive *fout, int *numTables)
 						  "(c.oid = pip.objoid "
 						  "AND pip.classoid = 'pg_class'::regclass "
 						  "AND pip.objsubid = 0) "
-				   "WHERE c.relkind in ('%c', '%c', '%c', '%c', '%c', '%c') "
+				   "WHERE c.relkind in ('%c', '%c', '%c', '%c', '%c', '%c', '%c') "
 						  "ORDER BY c.oid",
 						  acl_subquery->data,
 						  racl_subquery->data,
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to