Re: Re: BUG #8633: Assigning to a variable named "current_time" gives wrong output

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: David Johnston <polobo(at)yahoo(dot)com>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: Re: BUG #8633: Assigning to a variable named "current_time" gives wrong output
Date: 2013-11-27 18:13:51
Message-ID: 19673.1385576031@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

David Johnston <polobo(at)yahoo(dot)com> writes:
> bricklen wrote
>> I don't think this is a bug, "current_time" is a reserved word. See
>> http://www.postgresql.org/docs/current/static/sql-keywords-appendix.html

> Agreed; though I am curious why this does not throw an error during the
> declaration or assignment. A spurious parser error would be welcomed
> compared to silently ignoring the requested action.

Well, it's not "ignoring the action", it's just that the keyword meaning
now takes precedence in expressions. We changed that in 9.0 I believe.

We could possibly throw an error if you use a SQL reserved word in a
declaration without double-quoting it. That wouldn't be a complete fix,
because if you did that and then forgot to double-quote the name in
expressions, it'd still do the wrong thing. But this might at least
help you remember you need to do that.

I think though that at one time it was considered a feature that we
didn't insist on double-quoting plpgsql variable names unnecessarily.
Don't know if changing this would be a net improvement for everyone.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message David Johnston 2013-11-27 18:26:15 Re: BUG #8633: Assigning to a variable named "current_time" gives wrong output
Previous Message jjeffman 2013-11-27 17:45:02 BUG #8639: installation failure