Обсуждение: Bug report: PL/pgSQL and mixed case table/field names.
============================================================================ POSTGRESQL BUG
REPORTTEMPLATE
============================================================================
Your name : Billy G. Allie
Your email address : Bill.Allie@mug.org
System Configuration
--------------------- Architecture (example: Intel Pentium) : Intel i486DX2
Operating System (example: Linux 2.0.26 ELF) : UnixWare 7.0.1
PostgreSQL version (example: PostgreSQL-6.4) : PostgreSQL-6.4
Compiler used (example: gcc 2.8.0) : Optimizing C Compilation Sys.
(CCS) 3.2 08/18/98 (u701)
Please enter a FULL description of your problem:
------------------------------------------------
PL/pgSQL functions will fail to run if a table with a mixed case name is
used/referenced.
Please describe a way to repeat the problem. Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------
$ psql mug <test.func
CREATE FUNCTION "In_Committees" ("int4" ) RETURNS "text" AS '
DECLARE committee_rec "Committees"%ROWTYPE;
BEGIN SELECT * INTO committee_rec FROM Committees WHERE CommitteeID = $1; IF NOT FOUND THEN RETURN ''FALSE'';
END IF; RETURN ''TRUE'';
END;' LANGUAGE 'plpgsql';
CREATE
select "In_Committees" (2);
NOTICE: plpgsql: ERROR during compile of In_Committees near line 2
ERROR: parse error at or near """
EOF
$
If you know how this problem might be fixed, list the solution below:
---------------------------------------------------------------------
--
____ | Billy G. Allie | Domain....: Bill.Allie@mug.org
| /| | 7436 Hartwell | Compuserve: 76337,2061
|-/-|----- | Dearborn, MI 48126| MSN.......: B_G_Allie@email.msn.com
|/ |LLIE | (313) 582-1540 |
--
____ | Billy G. Allie | Domain....: Bill.Allie@mug.org
| /| | 7436 Hartwell | Compuserve: 76337,2061
|-/-|----- | Dearborn, MI 48126| MSN.......: B_G_Allie@email.msn.com
|/ |LLIE | (313) 582-1540 |
Can someone comment on this?
> ============================================================================
> POSTGRESQL BUG REPORT TEMPLATE
> ============================================================================
>
>
> Your name : Billy G. Allie
> Your email address : Bill.Allie@mug.org
>
>
> System Configuration
> ---------------------
> Architecture (example: Intel Pentium) : Intel i486DX2
>
> Operating System (example: Linux 2.0.26 ELF) : UnixWare 7.0.1
>
> PostgreSQL version (example: PostgreSQL-6.4) : PostgreSQL-6.4
>
> Compiler used (example: gcc 2.8.0) : Optimizing C Compilation Sys.
> (CCS) 3.2 08/18/98 (u701)
>
>
> Please enter a FULL description of your problem:
> ------------------------------------------------
> PL/pgSQL functions will fail to run if a table with a mixed case name is
> used/referenced.
>
>
> Please describe a way to repeat the problem. Please try to provide a
> concise reproducible example, if at all possible:
> ----------------------------------------------------------------------
> $ psql mug <test.func
> CREATE FUNCTION "In_Committees" ("int4" ) RETURNS "text" AS '
> DECLARE
> committee_rec "Committees"%ROWTYPE;
> BEGIN
> SELECT * INTO committee_rec FROM Committees WHERE CommitteeID = $1;
> IF NOT FOUND THEN
> RETURN ''FALSE'';
> END IF;
> RETURN ''TRUE'';
> END;' LANGUAGE 'plpgsql';
> CREATE
>
> select "In_Committees" (2);
> NOTICE: plpgsql: ERROR during compile of In_Committees near line 2
> ERROR: parse error at or near """
> EOF
> $
>
>
> If you know how this problem might be fixed, list the solution below:
> ---------------------------------------------------------------------
>
>
>
> --
> ____ | Billy G. Allie | Domain....: Bill.Allie@mug.org
> | /| | 7436 Hartwell | Compuserve: 76337,2061
> |-/-|----- | Dearborn, MI 48126| MSN.......: B_G_Allie@email.msn.com
> |/ |LLIE | (313) 582-1540 |
>
>
>
> --
> ____ | Billy G. Allie | Domain....: Bill.Allie@mug.org
> | /| | 7436 Hartwell | Compuserve: 76337,2061
> |-/-|----- | Dearborn, MI 48126| MSN.......: B_G_Allie@email.msn.com
> |/ |LLIE | (313) 582-1540 |
>
>
[application/pgp-signature is not supported, skipping...]
-- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026
Re: [HACKERS] Bug report: PL/pgSQL and mixed case table/field names.
От
jwieck@debis.com (Jan Wieck)
Дата:
Bruce Momjian wrote:
> Can someone comment on this?
>
> > ============================================================================
> > POSTGRESQL BUG REPORT TEMPLATE
> > ============================================================================
> >
> >
> > Your name : Billy G. Allie
> > Your email address : Bill.Allie@mug.org
> > [...]
> >
> > Please enter a FULL description of your problem:
> > ------------------------------------------------
> > PL/pgSQL functions will fail to run if a table with a mixed case name is
> > used/referenced.
> >
> >
> > Please describe a way to repeat the problem. Please try to provide a
> > concise reproducible example, if at all possible:
> > ----------------------------------------------------------------------
> > $ psql mug <test.func
> > CREATE FUNCTION "In_Committees" ("int4" ) RETURNS "text" AS '
> > DECLARE
> > committee_rec "Committees"%ROWTYPE;
> > BEGIN
> > SELECT * INTO committee_rec FROM Committees WHERE CommitteeID = $1;
> > IF NOT FOUND THEN
> > RETURN ''FALSE'';
> > END IF;
> > RETURN ''TRUE'';
> > END;' LANGUAGE 'plpgsql';
> > CREATE
> >
> > select "In_Committees" (2);
> > NOTICE: plpgsql: ERROR during compile of In_Committees near line 2
> > ERROR: parse error at or near """
> > EOF
> > $
Sure :-(
PL/pgSQL's scanner/parser does not handle double quoted
syntax for case mixed object names. Not a real bug, just a
lack. Please add to TODO.
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#======================================== jwieck@debis.com (Jan Wieck) #
> PL/pgSQL's scanner/parser does not handle double quoted > syntax for case mixed object names. Not a real bug, just a > lack. Please add to TODO. Added to TODO:* plpgsql does not handle quoted mixed-case identifiers -- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026