Re: PL/pgSQL 'i = i + 1' Syntax

From: Douglas McNaught <doug(at)mcnaught(dot)org>
To: Mark Dilger <pgsql(at)markdilger(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: PL/pgSQL 'i = i + 1' Syntax
Date: 2006-05-19 00:40:04
Message-ID: 87hd3mj197.fsf@suzuka.mcnaught.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Mark Dilger <pgsql(at)markdilger(dot)com> writes:

> Tom Lane wrote:
>> No it isn't. The plpgsql scanner treats := and = as *the same token*.
>> They can be interchanged freely. This has nothing to do with the case
>> of modifying a loop variable in particular.
>
> I disagree. If the scanner treated them the same, then
>
> if i := 1 then ...
>
> would work, but it doesn't. The := is rejected in a conditional. Try the
> following code if you don't believe me:

That's because (AIUI) all expressions to be evaluated are handed off
to the SQL parser (why re-implement all that logic and have subtle and
annoying differences?) plpgsql only handles the statements, loops, etc.
So it doesn't care about the difference but SQL does...

Not that I claim that makes sense. :)

-Doug

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Mark Dilger 2006-05-19 00:44:47 Re: PL/pgSQL 'i = i + 1' Syntax
Previous Message Marc Munro 2006-05-19 00:39:02 New feature proposal