*** ./src/bin/pg_dump/pg_dump.c.orig	Mon Feb 18 20:17:59 2002
--- ./src/bin/pg_dump/pg_dump.c	Mon Feb 18 23:05:19 2002
***************
*** 4251,4257 ****
  
  
  
! 				/* put the CONSTRAINTS inside the table def */
  				for (k = 0; k < tblinfo[i].ncheck; k++)
  				{
  					if (actual_atts + k > 0)
--- 4251,4257 ----
  
  
  
! 				/* Put the CONSTRAINTS inside the table def */
  				for (k = 0; k < tblinfo[i].ncheck; k++)
  				{
  					if (actual_atts + k > 0)
***************
*** 4261,4296 ****
  									  tblinfo[i].check_expr[k]);
  				}
  
! 				/* Primary Key */
! 				if (tblinfo[i].pkIndexOid != NULL)
! 				{
! 					PQExpBuffer consDef;
! 
! 					/* Find the corresponding index */
! 					for (k = 0; k < numIndexes; k++)
! 					{
! 						if (strcmp(indinfo[k].indexreloid,
! 								   tblinfo[i].pkIndexOid) == 0)
! 							break;
! 					}
! 
! 					if (k >= numIndexes)
! 					{
! 						write_msg(NULL, "dumpTables(): failed sanity check, could not find index (%s) for primary key constraint\n",
! 								  tblinfo[i].pkIndexOid);
! 						exit_nicely();
! 					}
! 
! 					consDef = getPKconstraint(&tblinfo[i], &indinfo[k]);
! 
! 					if ((actual_atts + tblinfo[i].ncheck) > 0)
! 						appendPQExpBuffer(q, ",\n\t");
! 
! 					appendPQExpBuffer(q, "%s", consDef->data);
! 
! 					destroyPQExpBuffer(consDef);
! 				}
! 
  
  				appendPQExpBuffer(q, "\n)");
  
--- 4261,4275 ----
  									  tblinfo[i].check_expr[k]);
  				}
  
! 				/*
! 				 * Primary Key: In versions of PostgreSQL prior to 7.2, we
! 				 * needed to include the primary key in the table definition.
! 				 * However, this is not ideal because it creates an index
! 				 * on the table, which makes COPY slower. As of release 7.2,
! 				 * we can add primary keys to a table after is has been created,
! 				 * using ALTER TABLE ; see dumpIndexes() for more information.
! 				 * Therefore, we ignore primary keys in this function.
! 				 */
  
  				appendPQExpBuffer(q, "\n)");
  
***************
*** 4446,4472 ****
  		/* Handle PK indexes */
  		if (strcmp(indinfo[i].indisprimary, "t") == 0)
  		{
- #if 0
- 
- 			/*
- 			 * PK: Enable this code when ALTER TABLE supports PK
- 			 * constraints.
- 			 */
- 
  			PQExpBuffer consDef = getPKconstraint(&tblinfo[tableInd], &indinfo[i]);
  
  			resetPQExpBuffer(q);
  
  			appendPQExpBuffer(q, "Alter Table %s Add %s;",
! 						  fmtId(tblinfo[tableInd].relname, force_quotes),
  							  consDef->data);
  
! 			ArchiveEntry(fout, indinfo[i].oid, tblinfo[tableInd].primary_key_name,
  						 "CONSTRAINT", NULL, q->data, "",
  						 "", tblinfo[tableInd].usename, NULL, NULL);
  
  			destroyPQExpBuffer(consDef);
- #endif
  
  			/*
  			 * Don't need to do anything else for this system-generated
--- 4425,4443 ----
  		/* Handle PK indexes */
  		if (strcmp(indinfo[i].indisprimary, "t") == 0)
  		{
  			PQExpBuffer consDef = getPKconstraint(&tblinfo[tableInd], &indinfo[i]);
  
  			resetPQExpBuffer(q);
  
  			appendPQExpBuffer(q, "Alter Table %s Add %s;",
! 							  fmtId(tblinfo[tableInd].relname, force_quotes),
  							  consDef->data);
  
! 			ArchiveEntry(fout, indinfo[i].indexreloid, tblinfo[tableInd].primary_key_name,
  						 "CONSTRAINT", NULL, q->data, "",
  						 "", tblinfo[tableInd].usename, NULL, NULL);
  
  			destroyPQExpBuffer(consDef);
  
  			/*
  			 * Don't need to do anything else for this system-generated
