From: | "raf" <raf(at)raf(dot)org> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | BUG #6165: documentation bug in plpgsql-declarations.html and plpgsql-statements.html (or plpgsql parser bug) |
Date: | 2011-08-17 05:21:01 |
Message-ID: | 201108170521.p7H5L1LY084474@wwwmaster.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
The following bug has been logged online:
Bug reference: 6165
Logged by: raf
Email address: raf(at)raf(dot)org
PostgreSQL version: 9.0.4
Operating system: N/A
Description: documentation bug in plpgsql-declarations.html and
plpgsql-statements.html (or plpgsql parser bug)
Details:
the documentation available at:
http://www.postgresql.org/docs/current/static/plpgsql-declarations.html
states that the general syntax of a variable declaration is:
name [ CONSTANT ] type [ NOT NULL ] [ { DEFAULT | := } expression ];
when it is really:
name [ CONSTANT ] type [ NOT NULL ] [ { DEFAULT | := | = } expression ];
i.e. an sql equality operator ("=") is accepted and acts as if it were
a plpgsql assignment operator (":=").
similarly, the documentation available at:
http://www.postgresql.org/docs/current/static/plpgsql-statements.html
states that an assignment of a value to a PL/pgSQL variable is written as:
variable := expression;
even though the sql equality operator works too:
variable = expression;
so, there is either a plpgsql parser bug that treats the sql equality
operator as the plpgsql assignment operator, or "=" is an undocumented
alternative to the documented plpgsql assignment operator (":=").
the only mention i have found of "=" being an assignment operator is in
the documentation that shows:
GET DIAGNOSTICS variable = item [ , ... ];
but i think that might be a special case.
example demonstration:
do $$
declare
i integer = 5;
begin
raise notice '%', i;
i = 6;
raise notice %', i;
end
$$;
will output 5 and then 6 (as expected by someone who doesn't know that
they should be using ":=" according to the documentation).
From | Date | Subject | |
---|---|---|---|
Next Message | Rainer Pruy | 2011-08-17 10:21:01 | PG8.4.7: updating rows leaves duplicate rows violating PK |
Previous Message | Dave Page | 2011-08-16 19:45:05 | Re: BUG #6164: Flashing dialog |