BUG #2678: Create or replace function with OUT args - Mailing list pgsql-bugs
From | Jeff Trout |
---|---|
Subject | BUG #2678: Create or replace function with OUT args |
Date | |
Msg-id | 200610051642.k95Ggg9l002690@wwwmaster.postgresql.org Whole thread Raw |
List | pgsql-bugs |
The following bug has been logged online: Bug reference: 2678 Logged by: Jeff Trout Email address: threshar@torgo.978.org PostgreSQL version: 8.1.4 Operating system: OSX 10.4.8 (Also occurs on FC4 w/kernel 2.6.16 Description: Create or replace function with OUT args Details: it seems there may be some bug with cache coherency when replacing functions that use OUT arguments. This happens on Linux (2.6.16 ) - same version of PG. (I didn't test across the pg restart as others are using that system). I've created and replaced hundreds of "normal" functions. so I think it has to do with OUT params. Here's a transcript: skittlebrau:/tmp postgres$ cat broken2.sql create or replace function cachebroken(p_id int, out o_val1 int, out o_val2 int) as $$ BEGIN o_val1 := 12; o_val2 := 45; END $$ language 'plpgsql'; skittlebrau:/tmp postgres$ psql indie Welcome to psql 8.1.4, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit indie=# \i broken2.sql CREATE FUNCTION indie=# \i broken2.sql CREATE FUNCTION indie=# \i broken2.sql CREATE FUNCTION indie=# \i broken2.sql CREATE FUNCTION indie=# \q skittlebrau:/tmp postgres$ psql indie Welcome to psql 8.1.4, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit indie=# \i broken2.sql psql:broken2.sql:10: ERROR: missing cache data for cache id 27 indie=# \i broken2.sql psql:broken2.sql:10: ERROR: missing cache data for cache id 27 indie=# \q skittlebrau:/tmp postgres$ pg_ctl -D /usr/local/pgsql/data/ -m fast restart waiting for postmaster to shut down....LOG: logger shutting down done postmaster stopped postmaster starting skittlebrau:/tmp postgres$ psql indie Welcome to psql 8.1.4, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit indie=# \i broken2.sql psql:broken2.sql:10: ERROR: missing cache data for cache id 27 indie=# drop function cachebroken (int); DROP FUNCTION indie=# \i broken2.sql CREATE FUNCTION indie=# \q Occurs on: indie=# select version(); version ---------------------------------------------------------------------------- ------------------------------------------------------------------ PostgreSQL 8.1.4 on powerpc-apple-darwin8.8.0, compiled by GCC powerpc-apple-darwin8-gcc-4.0.0 (GCC) 4.0.0 (Apple Computer, Inc. build 5026) (1 row) indie=# select version(); version ---------------------------------------------------------------------------- ----------------------- PostgreSQL 8.1.4 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 4.0.1 20050727 (Red Hat 4.0.1-5) (1 row)
pgsql-bugs by date: