Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
lockoptions.h62 linesDownload Raw Back to nodes
1/*-------------------------------------------------------------------------2 *3 * lockoptions.h4 *	  Common header for some locking-related declarations.5 *6 *7 * Copyright (c) 2014-2023, PostgreSQL Global Development Group8 *9 * src/include/nodes/lockoptions.h10 *11 *-------------------------------------------------------------------------12 */13#ifndef LOCKOPTIONS_H14#define LOCKOPTIONS_H15 16/*17 * This enum represents the different strengths of FOR UPDATE/SHARE clauses.18 * The ordering here is important, because the highest numerical value takes19 * precedence when a RTE is specified multiple ways.  See applyLockingClause.20 */21typedef enum LockClauseStrength22{23	LCS_NONE,					/* no such clause - only used in PlanRowMark */24	LCS_FORKEYSHARE,			/* FOR KEY SHARE */25	LCS_FORSHARE,				/* FOR SHARE */26	LCS_FORNOKEYUPDATE,			/* FOR NO KEY UPDATE */27	LCS_FORUPDATE				/* FOR UPDATE */28} LockClauseStrength;29 30/*31 * This enum controls how to deal with rows being locked by FOR UPDATE/SHARE32 * clauses (i.e., it represents the NOWAIT and SKIP LOCKED options).33 * The ordering here is important, because the highest numerical value takes34 * precedence when a RTE is specified multiple ways.  See applyLockingClause.35 */36typedef enum LockWaitPolicy37{38	/* Wait for the lock to become available (default behavior) */39	LockWaitBlock,40	/* Skip rows that can't be locked (SKIP LOCKED) */41	LockWaitSkip,42	/* Raise an error if a row cannot be locked (NOWAIT) */43	LockWaitError44} LockWaitPolicy;45 46/*47 * Possible lock modes for a tuple.48 */49typedef enum LockTupleMode50{51	/* SELECT FOR KEY SHARE */52	LockTupleKeyShare,53	/* SELECT FOR SHARE */54	LockTupleShare,55	/* SELECT FOR NO KEY UPDATE, and UPDATEs that don't modify key columns */56	LockTupleNoKeyExclusive,57	/* SELECT FOR UPDATE, UPDATEs that modify key columns, and DELETE */58	LockTupleExclusive59} LockTupleMode;60 61#endif							/* LOCKOPTIONS_H */62 
codekingpro/portable-devtools · Team Ai