82 n = outdesc->
natts + 1;
85 n = indesc->
natts + 1;
128 int n = outdesc->
natts;
141 n = indesc->
natts + 1;
178 outvalues[
i] = invalues[
j];
179 outisnull[
i] = inisnull[
j];
222 for (
i = 0;
i < outnatts;
i++)
234 outvalues[
i] = invalues[
j];
235 outisnull[
i] = inisnull[
j];
267 out_attnum <= attrMap->
maplen;
275 in_attnum = out_attnum;
277 else if (out_attnum == 0)
282 in_attnum = attrMap->
attnums[out_attnum - 1];
void free_attrmap(AttrMap *map)
AttrMap * build_attrmap_by_position(TupleDesc indesc, TupleDesc outdesc, const char *msg)
AttrMap * build_attrmap_by_name_if_req(TupleDesc indesc, TupleDesc outdesc, bool missing_ok)
bool bms_is_member(int x, const Bitmapset *a)
Bitmapset * bms_add_member(Bitmapset *a, int x)
#define Assert(condition)
TupleTableSlot * ExecStoreVirtualTuple(TupleTableSlot *slot)
HeapTuple heap_form_tuple(TupleDesc tupleDescriptor, const Datum *values, const bool *isnull)
void heap_deform_tuple(HeapTuple tuple, TupleDesc tupleDesc, Datum *values, bool *isnull)
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_attrmap(TupleDesc indesc, TupleDesc outdesc, AttrMap *attrMap)
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)