diff options
Diffstat (limited to 'src/backend/executor')
-rw-r--r-- | src/backend/executor/execAmi.c | 28 | ||||
-rw-r--r-- | src/backend/executor/execMain.c | 9 | ||||
-rw-r--r-- | src/backend/executor/execUtils.c | 75 |
3 files changed, 4 insertions, 108 deletions
diff --git a/src/backend/executor/execAmi.c b/src/backend/executor/execAmi.c index 675a58d649f..2349f32411e 100644 --- a/src/backend/executor/execAmi.c +++ b/src/backend/executor/execAmi.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execAmi.c,v 1.15 1998/01/16 05:03:45 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execAmi.c,v 1.16 1998/01/16 23:19:47 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -42,7 +42,6 @@ #include "access/genam.h" #include "access/heapam.h" #include "catalog/heap.h" -#include "catalog/pg_type.h" static Pointer ExecBeginScan(Relation relation, int nkeys, ScanKey skeys, @@ -125,31 +124,6 @@ ExecOpenR(Oid relationOid, bool isindex) if (relation == NULL) elog(DEBUG, "ExecOpenR: relation == NULL, heap_open failed."); - { - int i; - Relation trel = palloc(sizeof(RelationData)); - TupleDesc tdesc = palloc(sizeof(struct tupleDesc)); - AttributeTupleForm *tatt = - palloc(sizeof(AttributeTupleForm*)*relation->rd_att->natts); - - memcpy(trel, relation, sizeof(RelationData)); - memcpy(tdesc, relation->rd_att, sizeof(struct tupleDesc)); - trel->rd_att = tdesc; - tdesc->attrs = tatt; - - for (i = 0; i < relation->rd_att->natts; i++) - { - if (relation->rd_att->attrs[i]->atttypid != VARCHAROID) - tdesc->attrs[i] = relation->rd_att->attrs[i]; - else - { - tdesc->attrs[i] = palloc(sizeof(FormData_pg_attribute)); - memcpy(tdesc->attrs[i], relation->rd_att->attrs[i], - sizeof(FormData_pg_attribute)); - tdesc->attrs[i]->attlen = -1; - } - } - } return relation; } diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c index b4716cc2bb5..ecfc4d9a952 100644 --- a/src/backend/executor/execMain.c +++ b/src/backend/executor/execMain.c @@ -26,7 +26,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.38 1998/01/14 15:48:09 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.39 1998/01/16 23:19:49 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -563,13 +563,8 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate) */ tupdesc = CreateTupleDescCopy(tupType); - /* fixup to prevent zero-length columns in create */ - setVarAttrLenForCreateTable(tupdesc, targetList, rangeTable); - intoRelationId = heap_create_with_catalog(intoName, tupdesc); -#ifdef NOT_USED /* it's copy ... */ - resetVarAttrLenForCreateTable(tupdesc); -#endif + FreeTupleDesc(tupdesc); /* ---------------- diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c index 75f44e865ea..8d93ecf9cc0 100644 --- a/src/backend/executor/execUtils.c +++ b/src/backend/executor/execUtils.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.23 1998/01/07 21:02:50 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.24 1998/01/16 23:19:52 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -1177,76 +1177,3 @@ ExecInsertIndexTuples(TupleTableSlot *slot, if (econtext != NULL) pfree(econtext); } - -/* ---------------------------------------------------------------- - * setVarAttrLenForCreateTable - - * called when we do a SELECT * INTO TABLE tab - * needed for attributes that have a defined length, like bpchar and - * varchar - * ---------------------------------------------------------------- - */ -void -setVarAttrLenForCreateTable(TupleDesc tupType, List *targetList, - List *rangeTable) -{ - List *tl; - TargetEntry *tle; - Node *expr; - int varno; - - tl = targetList; - - for (varno = 0; varno < tupType->natts; varno++) - { - tle = lfirst(tl); - - if (tupType->attrs[varno]->atttypid == BPCHAROID || - tupType->attrs[varno]->atttypid == VARCHAROID) - { - expr = tle->expr; - if (expr && IsA(expr, Var)) - { - Var *var; - RangeTblEntry *rtentry; - Relation rd; - - var = (Var *) expr; - rtentry = rt_fetch(var->varnoold, rangeTable); - rd = heap_open(rtentry->relid); - /* set length to that defined in relation */ - tupType->attrs[varno]->attlen = - (*rd->rd_att->attrs[var->varoattno - 1]).attlen; - heap_close(rd); - } - else - elog(ERROR, "setVarAttrLenForCreateTable: can't get length for variable-length field"); - } - tl = lnext(tl); - } -} - - -#ifdef NOT_USED /* look at execMain.c */ -/* ---------------------------------------------------------------- - * resetVarAttrLenForCreateTable - - * called when we do a SELECT * INTO TABLE tab - * needed for attributes that have a defined length, like bpchar and - * varchar - * resets length to -1 for those types - * ---------------------------------------------------------------- - */ -void -resetVarAttrLenForCreateTable(TupleDesc tupType) -{ - int varno; - - for (varno = 0; varno < tupType->natts; varno++) - { - if (tupType->attrs[varno]->atttypid == BPCHAROID || - tupType->attrs[varno]->atttypid == VARCHAROID) - /* set length to original -1 */ - tupType->attrs[varno]->attlen = -1; - } -} - -#endif |