diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2000-09-12 21:07:18 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2000-09-12 21:07:18 +0000 |
commit | ed5003c58401e5727fcdd970505972394c95febb (patch) | |
tree | 53c25d5c65d6f7275f110503f51ab370e55af6ea /src/backend/executor/execUtils.c | |
parent | b5c0ab278bc67bc7f363da7d828a08ce7c4d28c2 (diff) | |
download | postgresql-ed5003c58401e5727fcdd970505972394c95febb.tar.gz postgresql-ed5003c58401e5727fcdd970505972394c95febb.zip |
First cut at full support for OUTER JOINs. There are still a few loose
ends to clean up (see my message of same date to pghackers), but mostly
it works. INITDB REQUIRED!
Diffstat (limited to 'src/backend/executor/execUtils.c')
-rw-r--r-- | src/backend/executor/execUtils.c | 46 |
1 files changed, 5 insertions, 41 deletions
diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c index 63c1e9e157f..39ae7dff10a 100644 --- a/src/backend/executor/execUtils.c +++ b/src/backend/executor/execUtils.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.65 2000/08/22 04:06:19 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.66 2000/09/12 21:06:48 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -275,53 +275,17 @@ void ExecAssignResultTypeFromTL(Plan *node, CommonState *commonstate) { List *targetList; - int i; + TupleDesc tupDesc; int len; - List *tl; - TargetEntry *tle; - List *fjtl; - TupleDesc origTupDesc; targetList = node->targetlist; - origTupDesc = ExecTypeFromTL(targetList); + tupDesc = ExecTypeFromTL(targetList); len = ExecTargetListLength(targetList); - fjtl = NIL; - tl = targetList; - i = 0; - while (tl != NIL || fjtl != NIL) - { - if (fjtl != NIL) - { - tle = lfirst(fjtl); - fjtl = lnext(fjtl); - } - else - { - tle = lfirst(tl); - tl = lnext(tl); - } -#ifdef SETS_FIXED - if (!tl_is_resdom(tle)) - { - Fjoin *fj = (Fjoin *) lfirst(tle); - - /* it is a FJoin */ - fjtl = lnext(tle); - tle = fj->fj_innerNode; - } -#endif - i++; - } - if (len > 0) - { - ExecAssignResultType(commonstate, - origTupDesc); - } + ExecAssignResultType(commonstate, tupDesc); else - ExecAssignResultType(commonstate, - (TupleDesc) NULL); + ExecAssignResultType(commonstate, (TupleDesc) NULL); } /* ---------------- |