diff options
author | Tom Lane | 2008-12-13 02:29:22 +0000 |
---|---|---|
committer | Tom Lane | 2008-12-13 02:29:22 +0000 |
commit | a0f8bf0d77db3e254dc8f511106fd9202ad9273f (patch) | |
tree | 9bc5e4638c2c2424fffced370f33cbece4bc7df8 | |
parent | d5e7e5dd7c81440bb46f52872906633ee2b388c1 (diff) |
Remove pg_plan_queries()'s now-useless needSnapshot parameter. It's useless
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.
-rw-r--r-- | src/backend/commands/prepare.c | 4 | ||||
-rw-r--r-- | src/backend/executor/spi.c | 3 | ||||
-rw-r--r-- | src/backend/tcop/postgres.c | 30 | ||||
-rw-r--r-- | src/backend/utils/cache/plancache.c | 3 | ||||
-rw-r--r-- | src/include/tcop/tcopprot.h | 2 |
5 files changed, 10 insertions, 32 deletions
diff --git a/src/backend/commands/prepare.c b/src/backend/commands/prepare.c index df1c439de7..a6413b7227 100644 --- a/src/backend/commands/prepare.c +++ b/src/backend/commands/prepare.c @@ -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. diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c index 57288c122e..45dfe5713f 100644 --- a/src/backend/executor/spi.c +++ b/src/backend/executor/spi.c @@ -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)); diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 478c9d41b8..911386edef 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -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 ... */ diff --git a/src/backend/utils/cache/plancache.c b/src/backend/utils/cache/plancache.c index a24b8be884..3b3f4f529e 100644 --- a/src/backend/utils/cache/plancache.c +++ b/src/backend/utils/cache/plancache.c @@ -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); } /* diff --git a/src/include/tcop/tcopprot.h b/src/include/tcop/tcopprot.h index 9f41822755..962a120108 100644 --- a/src/include/tcop/tcopprot.h +++ b/src/include/tcop/tcopprot.h @@ -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); |