diff options
author | Pavan Deolasee | 2017-06-15 07:41:07 +0000 |
---|---|---|
committer | Pavan Deolasee | 2017-06-15 07:41:07 +0000 |
commit | 0ffa504a17f58f2bc045b0039f40e4917ee50d20 (patch) | |
tree | c629c449bcfcc45de1d03b2586e89932d546e8ba /src/backend/rewrite/rewriteHandler.c | |
parent | 36ccc8d64e61fe9d77bb7ac62267945f7c146baa (diff) | |
parent | e800656d9a9b40b2f55afabe76354ab6d93353b3 (diff) |
Merge 'remotes/PGSQL/master' into xl10devel
Merge upstream master branch upto e800656d9a9b40b2f55afabe76354ab6d93353b3.
Code compiles and regression works ok (with lots and lots of failures though).
Diffstat (limited to 'src/backend/rewrite/rewriteHandler.c')
-rw-r--r-- | src/backend/rewrite/rewriteHandler.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c index 510f49fcc0..c5f6a93e80 100644 --- a/src/backend/rewrite/rewriteHandler.c +++ b/src/backend/rewrite/rewriteHandler.c @@ -1987,7 +1987,8 @@ fireRIRrules(Query *parsetree, List *activeRIRs, bool forUpdatePushedDown) /* Only normal relations can have RLS policies */ if (rte->rtekind != RTE_RELATION || - rte->relkind != RELKIND_RELATION) + (rte->relkind != RELKIND_RELATION && + rte->relkind != RELKIND_PARTITIONED_TABLE)) continue; rel = heap_open(rte->relid, NoLock); @@ -2605,7 +2606,8 @@ relation_is_updatable(Oid reloid, return 0; /* If the relation is a table, it is always updatable */ - if (rel->rd_rel->relkind == RELKIND_RELATION) + if (rel->rd_rel->relkind == RELKIND_RELATION || + rel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE) { relation_close(rel, AccessShareLock); return ALL_EVENTS; @@ -2719,7 +2721,8 @@ relation_is_updatable(Oid reloid, base_rte = rt_fetch(rtr->rtindex, viewquery->rtable); Assert(base_rte->rtekind == RTE_RELATION); - if (base_rte->relkind != RELKIND_RELATION) + if (base_rte->relkind != RELKIND_RELATION && + base_rte->relkind != RELKIND_PARTITIONED_TABLE) { baseoid = base_rte->relid; include_cols = adjust_view_column_set(updatable_cols, |