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