Re: BUG #6379: SQL Function Causes Back-end Crash
От | Paul Ramsey |
---|---|
Тема | Re: BUG #6379: SQL Function Causes Back-end Crash |
Дата | |
Msg-id | CACowWR1_Uvzog1PAx+EoKGzLcwkN7xfZ=hgF-4cu3PWptOv10Q@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: BUG #6379: SQL Function Causes Back-end Crash (hubert depesz lubaczewski <depesz@depesz.com>) |
Ответы |
Re: BUG #6379: SQL Function Causes Back-end Crash
Re: BUG #6379: SQL Function Causes Back-end Crash |
Список | pgsql-bugs |
One extra detail, my PostgreSQL is compiled with --enable-cassert. This seems to be what sets off the killer function. On Wed, Jan 4, 2012 at 11:25 AM, hubert depesz lubaczewski <depesz@depesz.com> wrote: > On Wed, Jan 04, 2012 at 07:17:17PM +0000, pramsey@cleverelephant.ca wrote: >> The following bug has been logged on the website: >> >> Bug reference: =A0 =A0 =A06379 >> Logged by: =A0 =A0 =A0 =A0 =A0Paul Ramsey >> Email address: =A0 =A0 =A0pramsey@cleverelephant.ca >> PostgreSQL version: 9.1.2 >> Operating system: =A0 OSX 10.6.8 >> Description: >> >> CREATE OR REPLACE FUNCTION kill_backend() >> RETURNS VOID >> AS $$ >> =A0 DROP TABLE if EXISTS foo; >> =A0 CREATE TABLE foo AS SELECT * FROM pg_class LIMIT 1; >> $$ LANGUAGE 'SQL'; > > Cannot replicate: > > (depesz@localhost:5910) 20:23:43 [depesz] > $ CREATE OR REPLACE FUNCTION kill_backend() >>> RETURNS VOID >>> AS $$ >>> =A0 DROP TABLE if EXISTS foo; >>> =A0 CREATE TABLE foo AS SELECT * FROM pg_class LIMIT 1; >>> $$ LANGUAGE 'SQL'; > CREATE FUNCTION > (depesz@localhost:5910) 20:23:49 [depesz] > $ select kill_backend(); > NOTICE: =A0table "foo" does not exist, skipping > CONTEXT: =A0SQL function "kill_backend" statement 1 > =A0kill_backend > -------------- > =A0[null] > (1 row) > > (depesz@localhost:5910) 20:23:55 [depesz] > $ select kill_backend(); > =A0kill_backend > -------------- > =A0[null] > (1 row) > > (depesz@localhost:5910) 20:23:56 [depesz] > $ select kill_backend(); > =A0kill_backend > -------------- > =A0[null] > (1 row) > > (depesz@localhost:5910) 20:23:58 [depesz] > $ select version(); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0 =A0 =A0 =A0version > -------------------------------------------------------------------------= ------------------------------ > =A0PostgreSQL 9.1.2 on x86_64-unknown-linux-gnu, compiled by gcc-4.6.real= (Debian 4.6.2-5) 4.6.2, 64-bit > (1 row) > > Side note - definition as is, doesn't work on 9.2: > $ CREATE OR REPLACE FUNCTION kill_backend() >>> RETURNS VOID >>> AS $$ >>> =A0 DROP TABLE if EXISTS foo; >>> =A0 CREATE TABLE foo AS SELECT * FROM pg_class LIMIT 1; >>> $$ LANGUAGE 'SQL'; > ERROR: =A0language "SQL" does not exist > > changing it to proper sql (not uppercase) fixed this problem. > > Best regards, > > depesz > > -- > The best thing about modern society is how easy it is to avoid contact wi= th it. > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 http://depesz.com/
В списке pgsql-bugs по дате отправления: