END is not a reserved word

Поиск
Список
Период
Сортировка
От Vicky Vergara
Тема END is not a reserved word
Дата
Msg-id DM8P220MB0390E641335AE886D0FF8CE68A3EA@DM8P220MB0390.NAMP220.PROD.OUTLOOK.COM
обсуждение исходный текст
Ответы Re: END is not a reserved word
Список pgsql-hackers
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)

Regards
Vicky Vergara
pgRouting developer

В списке pgsql-hackers по дате отправления: