Re: Re: BUG #8633: Assigning to a variable named "current_time" gives wrong output - Mailing list pgsql-bugs

From Tom Lane
Subject Re: Re: BUG #8633: Assigning to a variable named "current_time" gives wrong output
Date
Msg-id 19673.1385576031@sss.pgh.pa.us
Whole thread Raw
In response to Re: BUG #8633: Assigning to a variable named "current_time" gives wrong output  (David Johnston <polobo@yahoo.com>)
Responses Re: BUG #8633: Assigning to a variable named "current_time" gives wrong output  (David Johnston <polobo@yahoo.com>)
List pgsql-bugs
David Johnston <polobo@yahoo.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

pgsql-bugs by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: BUG #8434: Why does dead lock occur many times ?
Next
From: David Johnston
Date:
Subject: Re: BUG #8633: Assigning to a variable named "current_time" gives wrong output