* the others, providing protection against malicious user-defined security
   * barriers.  The first security barrier qual in the list will be used in the
   * innermost subquery.
 + *
 + * In practice, the only RTEs that will have security barrier quals are those
 + * that refer to tables with row-level security, or which are the target
 + * relation of an update to an auto-updatable security barrier view.  RTEs
 + * that read from a security barrier view will have already been expanded by
 + * the rewriter.
   */
  void
  expand_security_quals(PlannerInfo *root, List *tlist)
               * Replace any variables in the outer query that refer to the
              * original relation RTE with references to columns that we will
              * expose in the new subquery, building the subquery's targetlist
 -            * as we go.
 +            * as we go.  Also replace any references in the translated_vars
 +            * lists of any appendrels.
              */
             context.rt_index = rt_index;
             context.sublevels_up = 0;
   
             security_barrier_replace_vars((Node *) parse, &context);
             security_barrier_replace_vars((Node *) tlist, &context);
 +           security_barrier_replace_vars((Node *) root->append_rel_list,
 +                                         &context);
  
             heap_close(context.rel, NoLock);
  
                                           Filter: ((a % 2) = 0)
  (12 rows)
  
 +-- union all query
 +SELECT a, b, oid FROM t2 UNION ALL SELECT a, b, oid FROM t3;
 + a |  b  | oid 
 +---+-----+-----
 + 1 | abc | 201
 + 3 | cde | 203
 + 1 | xxx | 301
 + 2 | yyy | 302
 + 3 | zzz | 303
 +(5 rows)
 +
 +EXPLAIN (COSTS OFF) SELECT a, b, oid FROM t2 UNION ALL SELECT a, b, oid FROM t3;
 +          QUERY PLAN           
 +-------------------------------
 + Append
 +   ->  Seq Scan on t2
 +         Filter: ((a % 2) = 1)
 +   ->  Seq Scan on t3
 +(4 rows)
 +
  -- superuser is allowed to bypass RLS checks
  RESET SESSION AUTHORIZATION;
  SET row_security TO OFF;
          SELECT * FROM t1 WHERE f_leak(b) FOR SHARE;
  EXPLAIN (COSTS OFF) SELECT * FROM t1 WHERE f_leak(b) FOR SHARE;
  
 +-- union all query
 +SELECT a, b, oid FROM t2 UNION ALL SELECT a, b, oid FROM t3;
 +EXPLAIN (COSTS OFF) SELECT a, b, oid FROM t2 UNION ALL SELECT a, b, oid FROM t3;
 +
  -- superuser is allowed to bypass RLS checks
  RESET SESSION AUTHORIZATION;
  SET row_security TO OFF;