END is not a reserved word

Started by Vicky Vergara5 months ago3 messages
#1Vicky Vergara
vicky_vergara@hotmail.com

Hello all

A simplification of the problem I found:

Here is a function (taken from the postgres documentation)
```
CREATE FUNCTION add(integer, integer) RETURNS integer
AS 'select $1 + $2;'
LANGUAGE SQL
IMMUTABLE
RETURNS NULL ON NULL INPUT;
```

"Accidentally" did the following:
```
SELECT add(3,4) END;
```
On postgres 14 and over+ there is no problem:
```
end
-----
7
(1 row)
```
On Postgres 13 and under:
```
ERROR: syntax error at or near "END"
LINE 1: SELECT add(3,4) END;
```

On the list of reserved words, END is marked as reserved.
https://www.postgresql.org/docs/current/sql-keywords-appendix.html

Since postgres 14+ is not reserved and can be used, for example as a column name.
Unless I am mistaken that shouldn't happen.

Made a small CI test with the code above: (link will be unavailable when gihub removes the workflow)
Fails as expected as `end` is a reserved word (pg13)
https://github.com/cvvergara/pgrouting/actions/runs/17222387428/job/48860365813#step:8:32
But on the other test runs it has no problem (pg17)
https://github.com/cvvergara/pgrouting/actions/runs/17222387428/job/48860365870#step:8:27

Regards
Vicky Vergara
pgRouting developer

#2David G. Johnston
david.g.johnston@gmail.com
In reply to: Vicky Vergara (#1)
Re: END is not a reserved word

On Mon, Aug 25, 2025 at 3:49 PM Vicky Vergara <vicky_vergara@hotmail.com>
wrote:

On the list of reserved words, END is marked as reserved.
https://www.postgresql.org/docs/current/sql-keywords-appendix.html

The text on that page notes a couple of times that using reserved words as
column labels is accepted - with the only caveat being sometimes you have
to use 'AS'.

There may be some that do not get accepted for some reason or other but
it's always OK if they are accepted as column labels.

David J.

#3Vicky Vergara
vicky_vergara@hotmail.com
In reply to: David G. Johnston (#2)
Re: END is not a reserved word

Thanks,

Just found the note on

https://www.postgresql.org/docs/release/14.0/

Reduce the number of keywords that can't be used as column labels without AS (Mark Dilger) §<https://postgr.es/c/06a7c3154&gt;
*
There are now 90% fewer restricted keywords.
Next time I will read the releases changes before I post.

Thanks again

Vicky

________________________________
De: David G. Johnston <david.g.johnston@gmail.com>
Enviado: lunes, 25 de agosto de 2025 06:53 p. m.
Para: Vicky Vergara <vicky_vergara@hotmail.com>
Cc: pgsql-hackers@lists.postgresql.org <pgsql-hackers@lists.postgresql.org>
Asunto: Re: END is not a reserved word

On Mon, Aug 25, 2025 at 3:49 PM Vicky Vergara <vicky_vergara@hotmail.com<mailto:vicky_vergara@hotmail.com>> wrote:
On the list of reserved words, END is marked as reserved.
https://www.postgresql.org/docs/current/sql-keywords-appendix.html

The text on that page notes a couple of times that using reserved words as column labels is accepted - with the only caveat being sometimes you have to use 'AS'.

There may be some that do not get accepted for some reason or other but it's always OK if they are accepted as column labels.

David J.