plpgsql, double quoted column names containing spaces/hyphens - Mailing list pgsql-sql

From Knut P. Lehre
Subject plpgsql, double quoted column names containing spaces/hyphens
Date
Msg-id 5.1.0.14.2.20030620214454.00c200e0@uio-pop.uio.no
Whole thread Raw
Responses Re: plpgsql, double quoted column names containing spaces/hyphens
List pgsql-sql
Using pgsql 7.2.1 (PeerDirect beta4) on WinXP Prof SP1. Client: MS 
VStudio2003 C++ -> ADO -> ODBC 7.03.01.00.

In plpgsql, I can access columns with a name containing capital letters by 
enclosing the name in double quotes: tbl."ColName"
However, if the quoted name contains spaces or hyphens I get an error 
message. It is surprising that this does not work in plpgsql when it does 
with sql.

Thus, the following line produces an error (unterminated ") in plpgsql:
IF OLD."-person-initials" ... THEN

However, I discovered that rewriting using EXECUTE does work:
DECLARE curs1 refcursor; personinitials int4;
...
OPEN curs1 FOR EXECUTE ''SELECT "-person-initials" AS pers FROM 
"''||TG_RELNAME||''" WHERE id=''||OLD.id;
FETCH curs1 INTO personinitials;
CLOSE curs1;
IF personinitials ... THEN


Could I have solved this problem in an easier way, by using some kind of 
escape codes in the example producing the error (IF OLD."-person-initials" 
... THEN)?

Thanks, KP



pgsql-sql by date:

Previous
From: javier garcia - CEBAS
Date:
Subject: Re: date question
Next
From: Tom Lane
Date:
Subject: Re: plpgsql, double quoted column names containing spaces/hyphens