|
10 | 10 | *
|
11 | 11 | *
|
12 | 12 | * IDENTIFICATION
|
13 |
| - * $PostgreSQL: pgsql/src/backend/postmaster/autovacuum.c,v 1.6 2005/11/22 18:17:17 momjian Exp $ |
| 13 | + * $PostgreSQL: pgsql/src/backend/postmaster/autovacuum.c,v 1.7 2005/11/28 13:35:09 alvherre Exp $ |
14 | 14 | *
|
15 | 15 | *-------------------------------------------------------------------------
|
16 | 16 | */
|
@@ -898,6 +898,14 @@ autovacuum_do_vac_analyze(List *relids, bool dovacuum, bool doanalyze,
|
898 | 898 | vacstmt->relation=NULL;/* all tables, or not used if relids != NIL */
|
899 | 899 | vacstmt->va_cols=NIL;
|
900 | 900 |
|
| 901 | +/* |
| 902 | + * Functions in indexes may want a snapshot set. Note we only need |
| 903 | + * to do this in limited cases, because it'll be done in vacuum() |
| 904 | + * otherwise. |
| 905 | + */ |
| 906 | +if (doanalyze&& !dovacuum&&relids!=NIL) |
| 907 | +ActiveSnapshot=CopySnapshot(GetTransactionSnapshot()); |
| 908 | + |
901 | 909 | vacuum(vacstmt,relids);
|
902 | 910 |
|
903 | 911 | pfree(vacstmt);
|
|