This patch silences a GCC 4.0 warning about a potentially-uninitialized variable in pl_comp.c, and makes some minor associated cleanups. Barring any objections I'll apply this to HEAD tomorrow.

-Neil
Index: src/pl/plpgsql/src/pl_comp.c
===================================================================
RCS file: /var/lib/cvs/pgsql/src/pl/plpgsql/src/pl_comp.c,v
retrieving revision 1.91
diff -c -r1.91 pl_comp.c
*** src/pl/plpgsql/src/pl_comp.c	10 Jun 2005 16:23:11 -0000	1.91
--- src/pl/plpgsql/src/pl_comp.c	4 Jul 2005 07:48:09 -0000
***************
*** 1369,1375 ****
  	HeapTuple	attrtup = NULL;
  	Form_pg_attribute attrStruct;
  	HeapTuple	typetup = NULL;
! 	char	   *cp[2];
  	char	   *colname[1];
  	int			qualified_att_len;
  	int			numdots = 0;
--- 1369,1375 ----
  	HeapTuple	attrtup = NULL;
  	Form_pg_attribute attrStruct;
  	HeapTuple	typetup = NULL;
! 	char	   *cp[2] = {NULL, NULL};
  	char	   *colname[1];
  	int			qualified_att_len;
  	int			numdots = 0;
***************
*** 1389,1410 ****
  	{
  		if (word[i] == '.' && ++numdots == 2)
  		{
! 			cp[0] = (char *) palloc((i + 1) * sizeof(char));
! 			memset(cp[0], 0, (i + 1) * sizeof(char));
  			memcpy(cp[0], word, i * sizeof(char));
  
  			/*
  			 * qualified_att_len - one based position + 1 (null
  			 * terminator)
  			 */
! 			cp[1] = (char *) palloc((qualified_att_len - i) * sizeof(char));
! 			memset(cp[1], 0, (qualified_att_len - i) * sizeof(char));
  			memcpy(cp[1], &word[i + 1], (qualified_att_len - i - 1) * sizeof(char));
  
  			break;
  		}
  	}
  
  	relvar = makeRangeVarFromNameList(stringToQualifiedNameList(cp[0], "plpgsql_parse_tripwordtype"));
  	classOid = RangeVarGetRelid(relvar, true);
  	if (!OidIsValid(classOid))
--- 1389,1411 ----
  	{
  		if (word[i] == '.' && ++numdots == 2)
  		{
! 			cp[0] = (char *) palloc0((i + 1) * sizeof(char));
  			memcpy(cp[0], word, i * sizeof(char));
  
  			/*
  			 * qualified_att_len - one based position + 1 (null
  			 * terminator)
  			 */
! 			cp[1] = (char *) palloc0((qualified_att_len - i) * sizeof(char));
  			memcpy(cp[1], &word[i + 1], (qualified_att_len - i - 1) * sizeof(char));
  
  			break;
  		}
  	}
  
+ 	/* We must have found a match */
+ 	Assert(i < qualified_att_len);
+ 
  	relvar = makeRangeVarFromNameList(stringToQualifiedNameList(cp[0], "plpgsql_parse_tripwordtype"));
  	classOid = RangeVarGetRelid(relvar, true);
  	if (!OidIsValid(classOid))
---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to