Re: BUG #11944: plpgsql if-case-then syntax error.
От | Pavel Stehule |
---|---|
Тема | Re: BUG #11944: plpgsql if-case-then syntax error. |
Дата | |
Msg-id | CAFj8pRD+Mabyt1A7QzV7pwNx44Wn66rM3mWWBN3S8RAbK2c_nQ@mail.gmail.com обсуждение исходный текст |
Ответ на | BUG #11944: plpgsql if-case-then syntax error. (jasen@treshna.com) |
Список | pgsql-bugs |
2014-11-12 5:46 GMT+01:00 <jasen@treshna.com>: > The following bug has been logged on the website: > > Bug reference: 11944 > Logged by: Jasen Betts > Email address: jasen@treshna.com > PostgreSQL version: 9.1.13 > Operating system: linux > Description: > > this does work > > create function fails( a int) returns int language plpgsql as $$ begin > if CASE when a = 1 then true else false END > then return 1; else return 0; end if ; > end $$; > > parentheses can make it work. > > create function fails_not( a int) returns int language plpgsql as $$ begin > if ( CASE when a = 1 then true else false END ) > then return 1; else return 0; end if ; > end $$; > > It seems to be the plpgsql parser not treating the CASE-END as atomic when > looking for the end of the IF xpression. > > yes, it is true. plpgsql parser doesn't understand to SQL and mechanically searching ending keywords in expected level of parentheses. There is a problem in fact, so SQL CASE, and PLpgSQL CASE uses same keyword. Regards Pavel > > -- > Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-bugs >
В списке pgsql-bugs по дате отправления: