82 n = outdesc->
natts + 1;
85 n = indesc->
natts + 1;
107 int n = outdesc->
natts;
126 n = indesc->
natts + 1;
163 outvalues[
i] = invalues[
j];
164 outisnull[
i] = inisnull[
j];
207 for (
i = 0;
i < outnatts;
i++)
219 outvalues[
i] = invalues[
j];
220 outisnull[
i] = inisnull[
j];
252 out_attnum <= attrMap->
maplen;
260 in_attnum = out_attnum;
262 else if (out_attnum == 0)
267 in_attnum = attrMap->
attnums[out_attnum - 1];
AttrMap * build_attrmap_by_name_if_req(TupleDesc indesc, TupleDesc outdesc)
void free_attrmap(AttrMap *map)
AttrMap * build_attrmap_by_position(TupleDesc indesc, TupleDesc outdesc, const char *msg)
bool bms_is_member(int x, const Bitmapset *a)
Bitmapset * bms_add_member(Bitmapset *a, int x)
TupleTableSlot * ExecStoreVirtualTuple(TupleTableSlot *slot)
HeapTuple heap_form_tuple(TupleDesc tupleDescriptor, Datum *values, bool *isnull)
void heap_deform_tuple(HeapTuple tuple, TupleDesc tupleDesc, Datum *values, bool *isnull)
Assert(fmt[strlen(fmt) - 1] !='\n')
void pfree(void *pointer)
TupleDesc tts_tupleDescriptor
#define FirstLowInvalidHeapAttributeNumber
Bitmapset * execute_attr_map_cols(AttrMap *attrMap, Bitmapset *in_cols)
TupleConversionMap * convert_tuples_by_position(TupleDesc indesc, TupleDesc outdesc, const char *msg)
TupleTableSlot * execute_attr_map_slot(AttrMap *attrMap, TupleTableSlot *in_slot, TupleTableSlot *out_slot)
void free_conversion_map(TupleConversionMap *map)
TupleConversionMap * convert_tuples_by_name(TupleDesc indesc, TupleDesc outdesc)
HeapTuple execute_attr_map_tuple(HeapTuple tuple, TupleConversionMap *map)
static TupleTableSlot * ExecClearTuple(TupleTableSlot *slot)
static void slot_getallattrs(TupleTableSlot *slot)