OSDN Git Service

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

index 6326ab2..35107c8 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 edd1908..cba1e04 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;