On Wed, Jan 04, 2012 at 07:17:17PM +0000, pram...@cleverelephant.ca wrote:
> The following bug has been logged on the website:
> 
> Bug reference:      6379
> Logged by:          Paul Ramsey
> Email address:      pram...@cleverelephant.ca
> PostgreSQL version: 9.1.2
> Operating system:   OSX 10.6.8
> Description:        
> 
> CREATE OR REPLACE FUNCTION kill_backend()
> RETURNS VOID
> AS $$
>   DROP TABLE if EXISTS foo;
>   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 $$
>>   DROP TABLE if EXISTS foo;
>>   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:  table "foo" does not exist, skipping
CONTEXT:  SQL function "kill_backend" statement 1
 kill_backend 
--------------
 [null]
(1 row)

(depesz@localhost:5910) 20:23:55 [depesz] 
$ select kill_backend();
 kill_backend 
--------------
 [null]
(1 row)

(depesz@localhost:5910) 20:23:56 [depesz] 
$ select kill_backend();
 kill_backend 
--------------
 [null]
(1 row)

(depesz@localhost:5910) 20:23:58 [depesz] 
$ select version();
                                                version                         
                       
-------------------------------------------------------------------------------------------------------
 PostgreSQL 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 $$                                                                        
>>                                                                              
>>                                      
>>   DROP TABLE if EXISTS foo;                                                  
>>                                                                              
>>                                      
>>   CREATE TABLE foo AS SELECT * FROM pg_class LIMIT 1;                        
>>                                                                              
>>                                      
>> $$ LANGUAGE 'SQL';                                                           
>>                                                                              
>>                                      
ERROR:  language "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 with it.
                                                             http://depesz.com/

-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to