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 df1c439de7f7d5fca4a892b10fc4bb135684b35d..a6413b7227e427ba28ea6b212e5476a0fcfe752a 100644 (file)
@@ -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 57288c122ed5214a3284848b9d27255ed883937d..45dfe5713fb9a2244e652724caf1935a24d15f7e 100644 (file)
@@ -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 478c9d41b8d0fb545064a384b7e933e413b31081..911386edefca9be667a9cd8fbc2fbd5f76e718a2 100644 (file)
@@ -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 a24b8be884b01544cab4c4c51b47918e92c7cd9e..3b3f4f529e6f4665cc2ffe9258c206dc059ef72c 100644 (file)
@@ -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 9f41822755f68665b93924c49c139e9308997470..962a120108132b709bed88699fb8f4ee8bdaf848 100644 (file)
@@ -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);