OSDN Git Service

Remove pg_plan_queries()'s now-useless needSnapshot parameter. It's useless
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 13 Dec 2008 02:29:22 +0000 (02:29 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 13 Dec 2008 02:29:22 +0000 (02:29 +0000)
in 8.3, too, but I'm not back-patching this change since it would break any
extension modules that might be calling that function.

src/backend/commands/prepare.c
src/backend/executor/spi.c
src/backend/tcop/postgres.c
src/backend/utils/cache/plancache.c
src/include/tcop/tcopprot.h

index 1d3bb13..920b328 100644 (file)
@@ -10,7 +10,7 @@
  * Copyright (c) 2002-2008, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/commands/prepare.c,v 1.92 2008/10/29 00:00:38 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/commands/prepare.c,v 1.93 2008/12/13 02:29:21 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -144,8 +144,8 @@ PrepareQuery(PrepareStmt *stmt, const char *queryString)
        /* Rewrite the query. The result could be 0, 1, or many queries. */
        query_list = QueryRewrite(query);
 
-       /* Generate plans for queries.  Snapshot is already set. */
-       plan_list = pg_plan_queries(query_list, 0, NULL, false);
+       /* Generate plans for queries. */
+       plan_list = pg_plan_queries(query_list, 0, NULL);
 
        /*
         * Save the results.
index af47589..9157e56 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/executor/spi.c,v 1.201 2008/11/30 20:51:25 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/executor/spi.c,v 1.202 2008/12/13 02:29:21 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1606,8 +1606,7 @@ _SPI_prepare_plan(const char *src, SPIPlanPtr plan, ParamListInfo boundParams)
                /* Need a copyObject here to keep parser from modifying raw tree */
                stmt_list = pg_analyze_and_rewrite(copyObject(parsetree),
                                                                                   src, argtypes, nargs);
-               stmt_list = pg_plan_queries(stmt_list, cursor_options,
-                                                                       boundParams, false);
+               stmt_list = pg_plan_queries(stmt_list, cursor_options, boundParams);
 
                plansource = (CachedPlanSource *) palloc0(sizeof(CachedPlanSource));
                cplan = (CachedPlan *) palloc0(sizeof(CachedPlan));
index 97b9b17..e43846e 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.561 2008/12/13 02:00:19 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.562 2008/12/13 02:29:21 tgl Exp $
  *
  * NOTES
  *       this is the "main" module of the postgres backend and
@@ -732,24 +732,14 @@ pg_plan_query(Query *querytree, int cursorOptions, ParamListInfo boundParams)
 /*
  * Generate plans for a list of already-rewritten queries.
  *
- * If needSnapshot is TRUE, we haven't yet set a snapshot for the current
- * query.  A snapshot must be set before invoking the planner, since it
- * might try to evaluate user-defined functions.  But we must not set a
- * snapshot if the list contains only utility statements, because some
- * utility statements depend on not having frozen the snapshot yet.
- * (We assume that such statements cannot appear together with plannable
- * statements in the rewriter's output.)
- *
  * Normal optimizable statements generate PlannedStmt entries in the result
  * list.  Utility statements are simply represented by their statement nodes.
  */
 List *
-pg_plan_queries(List *querytrees, int cursorOptions, ParamListInfo boundParams,
-                               bool needSnapshot)
+pg_plan_queries(List *querytrees, int cursorOptions, ParamListInfo boundParams)
 {
        List       *stmt_list = NIL;
        ListCell   *query_list;
-       bool            snapshot_set = false;
 
        foreach(query_list, querytrees)
        {
@@ -763,22 +753,12 @@ pg_plan_queries(List *querytrees, int cursorOptions, ParamListInfo boundParams,
                }
                else
                {
-                       if (needSnapshot && !snapshot_set)
-                       {
-                               PushActiveSnapshot(GetTransactionSnapshot());
-                               snapshot_set = true;
-                       }
-
-                       stmt = (Node *) pg_plan_query(query, cursorOptions,
-                                                                                 boundParams);
+                       stmt = (Node *) pg_plan_query(query, cursorOptions, boundParams);
                }
 
                stmt_list = lappend(stmt_list, stmt);
        }
 
-       if (snapshot_set)
-               PopActiveSnapshot();
-
        return stmt_list;
 }
 
@@ -937,7 +917,7 @@ exec_simple_query(const char *query_string)
                querytree_list = pg_analyze_and_rewrite(parsetree, query_string,
                                                                                                NULL, 0);
 
-               plantree_list = pg_plan_queries(querytree_list, 0, NULL, false);
+               plantree_list = pg_plan_queries(querytree_list, 0, NULL);
 
                /* Done with the snapshot used for parsing/planning */
                if (snapshot_set)
@@ -1276,7 +1256,7 @@ exec_parse_message(const char *query_string,      /* string to execute */
                }
                else
                {
-                       stmt_list = pg_plan_queries(querytree_list, 0, NULL, false);
+                       stmt_list = pg_plan_queries(querytree_list, 0, NULL);
                        fully_planned = true;
                }
 
@@ -1725,7 +1705,7 @@ exec_bind_message(StringInfo input_message)
                 */
                oldContext = MemoryContextSwitchTo(PortalGetHeapMemory(portal));
                query_list = copyObject(cplan->stmt_list);
-               plan_list = pg_plan_queries(query_list, 0, params, false);
+               plan_list = pg_plan_queries(query_list, 0, params);
                MemoryContextSwitchTo(oldContext);
 
                /* We no longer need the cached plan refcount ... */
index 88affe6..961d7c1 100644 (file)
@@ -35,7 +35,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/utils/cache/plancache.c,v 1.24 2008/12/13 02:00:20 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/utils/cache/plancache.c,v 1.25 2008/12/13 02:29:22 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -503,8 +503,7 @@ RevalidateCachedPlan(CachedPlanSource *plansource, bool useResOwner)
                        /*
                         * Generate plans for queries.
                         */
-                       slist = pg_plan_queries(slist, plansource->cursor_options,
-                                                                       NULL, false);
+                       slist = pg_plan_queries(slist, plansource->cursor_options, NULL);
                }
 
                /*
index bd458fa..deb3df1 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/tcop/tcopprot.h,v 1.95 2008/12/09 15:59:39 heikki Exp $
+ * $PostgreSQL: pgsql/src/include/tcop/tcopprot.h,v 1.96 2008/12/13 02:29:22 tgl Exp $
  *
  * OLD COMMENTS
  *       This file was created so that other c files could get the two
@@ -52,7 +52,7 @@ extern List *pg_analyze_and_rewrite(Node *parsetree, const char *query_string,
 extern PlannedStmt *pg_plan_query(Query *querytree, int cursorOptions,
                          ParamListInfo boundParams);
 extern List *pg_plan_queries(List *querytrees, int cursorOptions,
-                               ParamListInfo boundParams, bool needSnapshot);
+                               ParamListInfo boundParams);
 
 extern bool assign_max_stack_depth(int newval, bool doit, GucSource source);