*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/functions.c,v 1.1.1.1 1996/07/09 06:21:25 scrappy Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/functions.c,v 1.2 1996/09/16 05:36:15 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
static TupleDesc
postquel_start(execution_state *es)
{
+#ifdef FUNC_UTIL_PATCH
+ /*
+ * Do nothing for utility commands. (create, destroy...) DZ - 30-8-1996
+ */
+ if (es->qd->operation == CMD_UTILITY) {
+ return (TupleDesc) NULL;
+ }
+#endif
return ExecutorStart(es->qd, es->estate);
}
{
int feature;
+#ifdef FUNC_UTIL_PATCH
+ if (es->qd->operation == CMD_UTILITY) {
+ /*
+ * Process an utility command. (create, destroy...) DZ - 30-8-1996
+ */
+ ProcessUtility(es->qd->parsetree->utilityStmt, es->qd->dest);
+ if (!LAST_POSTQUEL_COMMAND(es)) CommandCounterIncrement();
+ return (TupleTableSlot*) NULL;
+ }
+#endif
+
feature = (LAST_POSTQUEL_COMMAND(es)) ? EXEC_RETONE : EXEC_RUN;
return ExecutorRun(es->qd, es->estate, feature, 0);
static void
postquel_end(execution_state *es)
{
+#ifdef FUNC_UTIL_PATCH
+ /*
+ * Do nothing for utility commands. (create, destroy...) DZ - 30-8-1996
+ */
+ if (es->qd->operation == CMD_UTILITY) {
+ return;
+ }
+#endif
ExecutorEnd(es->qd, es->estate);
}
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.7 1996/09/10 06:48:52 scrappy Exp $
+ * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.8 1996/09/16 05:36:38 scrappy Exp $
*
* NOTES
* this is the "main" module of the postgres backend and
}
#endif
}
+#ifdef FUNC_UTIL_PATCH
+ /*
+ * If the command is an utility append a null plan. This is
+ * needed to keep the plan_list aligned with the querytree_list
+ * or the function executor will crash. DZ - 30-8-1996
+ */
+ else {
+ plan_list = lappend(plan_list, NULL);
+ }
+#endif
}
if (queryListP)
for (i=0;i<querytree_list->len;i++) {
querytree = querytree_list->qtrees[i];
+#ifdef FUNC_UTIL_PATCH
+ /*
+ * Advance on the plan_list in every case. Now the plan_list
+ * has the same length of the querytree_list. DZ - 30-8-1996
+ */
+ plan = (Plan *) lfirst(plan_list);
+ plan_list = lnext(plan_list);
+#endif
if (querytree->commandType == CMD_UTILITY) {
/* ----------------
* process utility functions (create, destroy, etc..)
ProcessUtility(querytree->utilityStmt, dest);
} else {
+#ifndef FUNC_UTIL_PATCH
+ /*
+ * Moved before the if. DZ - 30-8-1996
+ */
plan = (Plan *) lfirst(plan_list);
plan_list = lnext(plan_list);
+#endif
#ifdef INDEXSCAN_PATCH
/*
*/
if (IsUnderPostmaster == false) {
puts("\nPOSTGRES backend interactive interface");
- puts("$Revision: 1.7 $ $Date: 1996/09/10 06:48:52 $");
+ puts("$Revision: 1.8 $ $Date: 1996/09/16 05:36:38 $");
}
/* ----------------