*** a/src/bin/pg_dump/pg_backup_archiver.c
--- b/src/bin/pg_dump/pg_backup_archiver.c
***************
*** 2341,2354 **** _tocEntryRequired(TocEntry *te, RestoreOptions *ropt, bool include_acls)
  	if (!ropt->createDB && strcmp(te->desc, "DATABASE") == 0)
  		return 0;
  
! 	/* skip (all but) post data section as required */
! 	/* table data is filtered if necessary lower down */
  	if (ropt->dumpSections != DUMP_UNSECTIONED)
  	{
! 		if (!(ropt->dumpSections & DUMP_POST_DATA) && te->inPostData)
! 			return 0;
! 		if (!(ropt->dumpSections & DUMP_PRE_DATA) && ! te->inPostData && strcmp(te->desc, "TABLE DATA") != 0)
  			return 0;
  	}
  
  
--- 2341,2365 ----
  	if (!ropt->createDB && strcmp(te->desc, "DATABASE") == 0)
  		return 0;
  
! 	/* 
! 	 * Skip pre and post data section as required 
! 	 * Data is filtered if necessary lower down 
! 	 * Sequence set operations are in the pre data section for parallel
! 	 * processing purposes, but part of the data section for sectioning
! 	 * purposes.
! 	 * SECTION_NONE items are filtered according to where they are 
! 	 * positioned in the list of TOC entries.
! 	 */
  	if (ropt->dumpSections != DUMP_UNSECTIONED)
  	{
! 		if (!(ropt->dumpSections & DUMP_POST_DATA) &&  /* post data skip */
! 			((te->section == SECTION_NONE && te->inPostData) || 
! 			  te->section == SECTION_POST_DATA))
  			return 0;
+ 		if (!(ropt->dumpSections & DUMP_PRE_DATA) &&  /* pre data skip */
+ 			((te->section == SECTION_NONE && ! te->inPostData) || 
+ 			 (te->section == SECTION_PRE_DATA && strcmp(te->desc, "SEQUENCE SET") != 0)))
+ 			return 0;			
  	}
  
  
*** a/src/bin/pg_dump/pg_dump.c
--- b/src/bin/pg_dump/pg_dump.c
***************
*** 7096,7101 **** dumpDumpableObject(Archive *fout, DumpableObject *dobj)
--- 7096,7103 ----
  
  	switch (dobj->objType)
  	{
+ 		case DO_TABLE:
+ 			break; /* has its own controls */
  		case DO_INDEX:
  		case DO_TRIGGER:
  		case DO_CONSTRAINT:
***************
*** 12075,12081 **** dumpTable(Archive *fout, TableInfo *tbinfo)
  
  		if (tbinfo->relkind == RELKIND_SEQUENCE)
  			dumpSequence(fout, tbinfo);
! 		else if (!dataOnly)
  			dumpTableSchema(fout, tbinfo);
  
  		/* Handle the ACL here */
--- 12077,12083 ----
  
  		if (tbinfo->relkind == RELKIND_SEQUENCE)
  			dumpSequence(fout, tbinfo);
! 		else if (dumpSections & DUMP_PRE_DATA)
  			dumpTableSchema(fout, tbinfo);
  
  		/* Handle the ACL here */
***************
*** 13291,13297 **** dumpSequence(Archive *fout, TableInfo *tbinfo)
  	 *
  	 * Add a 'SETVAL(seq, last_val, iscalled)' as part of a "data" dump.
  	 */
! 	if (!dataOnly)
  	{
  		/*
  		 * DROP must be fully qualified in case same name appears in
--- 13293,13299 ----
  	 *
  	 * Add a 'SETVAL(seq, last_val, iscalled)' as part of a "data" dump.
  	 */
! 	if (dumpSections & DUMP_PRE_DATA)
  	{
  		/*
  		 * DROP must be fully qualified in case same name appears in
***************
*** 13412,13418 **** dumpSequence(Archive *fout, TableInfo *tbinfo)
  					 tbinfo->dobj.catId, 0, tbinfo->dobj.dumpId);
  	}
  
! 	if (!schemaOnly)
  	{
  		resetPQExpBuffer(query);
  		appendPQExpBuffer(query, "SELECT pg_catalog.setval(");
--- 13414,13420 ----
  					 tbinfo->dobj.catId, 0, tbinfo->dobj.dumpId);
  	}
  
! 	if (dumpSections & DUMP_DATA)
  	{
  		resetPQExpBuffer(query);
  		appendPQExpBuffer(query, "SELECT pg_catalog.setval(");
