Skip to content

Commit 37b247a

Browse files
committed
Handle mixed-case names properly in plpgsql_parse_tripwordtype.
From Neil Conway.
1 parent 0de771d commit 37b247a

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/pl/plpgsql/src/pl_comp.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* procedural language
44
*
55
* IDENTIFICATION
6-
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.53 2002/09/21 18:39:26 tgl Exp $
6+
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.54 2003/01/31 00:31:53 tgl Exp $
77
*
88
* This software is copyrighted by Jan Wieck - Hamburg.
99
*
@@ -1109,6 +1109,7 @@ plpgsql_parse_tripwordtype(char *word)
11091109
Form_pg_type typeStruct;
11101110
PLpgSQL_type *typ;
11111111
char *cp[2];
1112+
char *colname[1];
11121113
int qualified_att_len;
11131114
int numdots = 0;
11141115
int i;
@@ -1135,7 +1136,7 @@ plpgsql_parse_tripwordtype(char *word)
11351136
}
11361137
}
11371138

1138-
relvar = makeRangeVarFromNameList(stringToQualifiedNameList(cp[0], "plpgsql_parse_dblwordtype"));
1139+
relvar = makeRangeVarFromNameList(stringToQualifiedNameList(cp[0], "plpgsql_parse_tripwordtype"));
11391140
classOid = RangeVarGetRelid(relvar, true);
11401141
if (!OidIsValid(classOid))
11411142
{
@@ -1171,7 +1172,10 @@ plpgsql_parse_tripwordtype(char *word)
11711172
/*
11721173
* Fetch the named table field and it's type
11731174
*/
1174-
attrtup = SearchSysCacheAttName(classOid, cp[1]);
1175+
plpgsql_convert_ident(cp[1], colname, 1);
1176+
attrtup = SearchSysCacheAttName(classOid, colname[0]);
1177+
pfree(colname[0]);
1178+
11751179
if (!HeapTupleIsValid(attrtup))
11761180
{
11771181
ReleaseSysCache(classtup);
@@ -1273,7 +1277,7 @@ plpgsql_parse_dblwordrowtype(char *word)
12731277
memcpy(cp, word, i * sizeof(char));
12741278

12751279
/* Lookup the relation */
1276-
relvar = makeRangeVarFromNameList(stringToQualifiedNameList(cp, "plpgsql_parse_dblwordtype"));
1280+
relvar = makeRangeVarFromNameList(stringToQualifiedNameList(cp, "plpgsql_parse_dblwordrowtype"));
12771281
classOid = RangeVarGetRelid(relvar, true);
12781282
if (!OidIsValid(classOid))
12791283
elog(ERROR, "%s: no such class", cp);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy