Check SELECT permissions in subqueries.
authorVadim B. Mikheev
Fri, 27 Feb 1998 08:43:53 +0000 (08:43 +0000)
committerVadim B. Mikheev
Fri, 27 Feb 1998 08:43:53 +0000 (08:43 +0000)
src/backend/executor/execMain.c
src/backend/executor/nodeSubplan.c

index 6326ab215d92eeed2e2bd29cc4a66db45d43b3b2..35107c8af20e08c5acfcb08e8d72c4f01e0de204 100644 (file)
@@ -26,7 +26,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.44 1998/02/26 04:31:09 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.45 1998/02/27 08:43:52 vadim Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "catalog/heap.h"
 #include "commands/trigger.h"
 
+void
+ExecCheckPerms(CmdType operation, int resultRelation, List *rangeTable,
+              Query *parseTree);
 
 
 /* decls for local routines only used within this module */
-static void
-ExecCheckPerms(CmdType operation, int resultRelation, List *rangeTable,
-              Query *parseTree);
 static TupleDesc
 InitPlan(CmdType operation, Query *parseTree,
         Plan *plan, EState *estate);
@@ -273,14 +273,7 @@ ExecutorEnd(QueryDesc *queryDesc, EState *estate)
    BufferRefCountRestore(estate->es_refcount);
 }
 
-/* ===============================================================
- * ===============================================================
-                        static routines follow
- * ===============================================================
- * ===============================================================
- */
-
-static void
+void
 ExecCheckPerms(CmdType operation,
               int resultRelation,
               List *rangeTable,
@@ -376,6 +369,13 @@ ExecCheckPerms(CmdType operation,
    }
 }
 
+/* ===============================================================
+ * ===============================================================
+                        static routines follow
+ * ===============================================================
+ * ===============================================================
+ */
+
 
 /* ----------------------------------------------------------------
  *     InitPlan
index edd1908fc3749c366d5e57b00ce17ed381a333dd..cba1e04c884e502fb95d35fd3c7b722572a21ad6 100644 (file)
@@ -106,11 +106,14 @@ ExecSubPlan(SubPlan *node, List *pvar, ExprContext *econtext)
  *
  * ----------------------------------------------------------------
  */
+extern void ExecCheckPerms(CmdType op, int resRel, List *rtable, Query *q);
 bool
 ExecInitSubPlan(SubPlan *node, EState *estate, Plan *parent)
 {
    EState     *sp_estate = CreateExecutorState();
 
+   ExecCheckPerms (CMD_SELECT, 0, node->rtable, (Query*) NULL);
+   
    sp_estate->es_range_table = node->rtable;
    sp_estate->es_param_list_info = estate->es_param_list_info;
    sp_estate->es_param_exec_vals = estate->es_param_exec_vals;