diff --git a/doc/FAQ b/doc/FAQ index 2c4193a833..c888981949 100644 --- a/doc/FAQ +++ b/doc/FAQ @@ -1,7 +1,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL - Last updated: Fri Apr 26 23:03:46 EDT 2002 + Last updated: Mon Jun 10 15:47:38 EDT 2002 Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us) @@ -92,6 +92,8 @@ 4.23) How do I perform an outer join? 4.24) How do I perform queries using multiple databases? 4.25) How do I return multiple rows or columns from a function? + 4.26) Why can't I reliably create/drop temporary tables in PL/PgSQL + functions? Extending PostgreSQL @@ -1031,6 +1033,17 @@ SELECT * http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html, section 23.7.3.3. + 4.26) Why can't I reliably create/drop temporary tables in PL/PgSQL + functions? + + PL/PgSQL caches function contents, and an unfortunate side effect is + that if a PL/PgSQL function accesses a temporary table, and that table + is later dropped and recreated, and the function called again, the + function will fail because the cached function contents still point to + the old temporary table. The solution is to use EXECUTE for temporary + table access in PL/PgSQL. This will cause the query to be reparsed + every time. + Extending PostgreSQL 5.1) I wrote a user-defined function. When I run it in psql, why does it diff --git a/doc/src/FAQ/FAQ.html b/doc/src/FAQ/FAQ.html index 988aa3f968..8ca6cd9c45 100644 --- a/doc/src/FAQ/FAQ.html +++ b/doc/src/FAQ/FAQ.html @@ -14,7 +14,7 @@ alink="#0000ff">
Last updated: Fri Apr 26 23:03:46 EDT 2002
+Last updated: Mon Jun 10 15:47:38 EDT 2002
Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
@@ -138,7 +138,9 @@
4.24) How do I perform queries using multiple
databases?
4.25) How do I return multiple rows or columns
- from a function?
+ from a function?
+ 4.26) Why can't I reliably create/drop
+ temporary tables in PL/PgSQL functions?
You can also compile with profiling to see what functions are taking execution time. The backend profile files will be deposited in the pgsql/data/base/dbname directory. The client profile - file will be put in the client's current directory. Linux requires + file will be put in the client's current directory. Linux requires a compile with -DLINUX_PROFILE for proper profiling.
psql has a variety of backslash commands to show such - information. Use \? to see them. There are also system tables - beginning with pg_ that describe these too. Also, psql - -l will list all databases.
+ information. Use \? to see them. There are also system tables + beginning with pg_ that describe these too. Also, psql + -l will list all databases.Also try the file pgsql/src/tutorial/syscat.source. It illustrates many of the SELECTs needed to get @@ -1307,16 +1309,25 @@ BYTEA bytea variable-length byte array (null-byte safe) different databases and merge the information that way.
You can return result sets from PL/pgSQL functions using - refcursors. See - http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html, - section 23.7.3.3.
+You can return result sets from PL/pgSQL functions using + refcursors. See + http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html, + section 23.7.3.3.
+ +