106 if (tableoid != erm->
relid)
128 bool updated =
false;
134 (
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
135 errmsg(
"cannot lock rows in foreign table \"%s\"",
228 errmsg(
"could not serialize access due to concurrent update")));
229 elog(
ERROR,
"unexpected table_tuple_lock status: %u",
237 errmsg(
"could not serialize access due to concurrent update")));
242 elog(
ERROR,
"attempted to lock invisible tuple");
246 elog(
ERROR,
"unrecognized table_tuple_lock status: %u",
367 epq_arowmarks =
lappend(epq_arowmarks, aerm);
#define Assert(condition)
#define OidIsValid(objectId)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
void ExecReScan(PlanState *node)
void EvalPlanQualBegin(EPQState *epqstate)
TupleTableSlot * EvalPlanQualNext(EPQState *epqstate)
void EvalPlanQualInit(EPQState *epqstate, EState *parentestate, Plan *subplan, List *auxrowmarks, int epqParam, List *resultRelations)
ExecAuxRowMark * ExecBuildAuxRowMark(ExecRowMark *erm, List *targetlist)
void EvalPlanQualEnd(EPQState *epqstate)
ExecRowMark * ExecFindRowMark(EState *estate, Index rti, bool missing_ok)
TupleTableSlot * EvalPlanQualSlot(EPQState *epqstate, Relation relation, Index rti)
void ExecEndNode(PlanState *node)
PlanState * ExecInitNode(Plan *node, EState *estate, int eflags)
void ExecInitResultTypeTL(PlanState *planstate)
const TupleTableSlotOps * ExecGetResultSlotOps(PlanState *planstate, bool *isfixed)
#define outerPlanState(node)
#define EvalPlanQualSetSlot(epqstate, slot)
static Datum ExecGetJunkAttribute(TupleTableSlot *slot, AttrNumber attno, bool *isNull)
static TupleTableSlot * ExecProcNode(PlanState *node)
FdwRoutine * GetFdwRoutineForRelation(Relation relation, bool makecopy)
static void ItemPointerSetInvalid(ItemPointerData *pointer)
ItemPointerData * ItemPointer
List * lappend(List *list, void *datum)
@ LockTupleNoKeyExclusive
#define CHECK_FOR_INTERRUPTS()
void ExecReScanLockRows(LockRowsState *node)
void ExecEndLockRows(LockRowsState *node)
LockRowsState * ExecInitLockRows(LockRows *node, EState *estate, int eflags)
static TupleTableSlot * ExecLockRows(PlanState *pstate)
#define castNode(_type_, nodeptr)
#define lfirst_node(type, lc)
static ListCell * lnext(const List *l, const ListCell *c)
#define ERRCODE_T_R_SERIALIZATION_FAILURE
#define RowMarkRequiresRowShareLock(marktype)
@ ROW_MARK_NOKEYEXCLUSIVE
static Oid DatumGetObjectId(Datum X)
static Pointer DatumGetPointer(Datum X)
#define RelationGetRelationName(relation)
LockWaitPolicy waitPolicy
RefetchForeignRow_function RefetchForeignRow
const TupleTableSlotOps * resultops
ProjectionInfo * ps_ProjInfo
ExecProcNodeMtd ExecProcNode
static TM_Result table_tuple_lock(Relation rel, ItemPointer tid, Snapshot snapshot, TupleTableSlot *slot, CommandId cid, LockTupleMode mode, LockWaitPolicy wait_policy, uint8 flags, TM_FailureData *tmfd)
#define TUPLE_LOCK_FLAG_FIND_LAST_VERSION
#define TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS
static TupleTableSlot * ExecClearTuple(TupleTableSlot *slot)
#define IsolationUsesXactSnapshot()