mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*-------------------------------------------------------------------------
 | 
						|
 *
 | 
						|
 * lockoptions.h
 | 
						|
 *	  Common header for some locking-related declarations.
 | 
						|
 *
 | 
						|
 *
 | 
						|
 * Copyright (c) 2014-2018, PostgreSQL Global Development Group
 | 
						|
 *
 | 
						|
 * src/include/nodes/lockoptions.h
 | 
						|
 *
 | 
						|
 *-------------------------------------------------------------------------
 | 
						|
 */
 | 
						|
#ifndef LOCKOPTIONS_H
 | 
						|
#define LOCKOPTIONS_H
 | 
						|
 | 
						|
/*
 | 
						|
 * This enum represents the different strengths of FOR UPDATE/SHARE clauses.
 | 
						|
 * The ordering here is important, because the highest numerical value takes
 | 
						|
 * precedence when a RTE is specified multiple ways.  See applyLockingClause.
 | 
						|
 */
 | 
						|
typedef enum LockClauseStrength
 | 
						|
{
 | 
						|
	LCS_NONE,					/* no such clause - only used in PlanRowMark */
 | 
						|
	LCS_FORKEYSHARE,			/* FOR KEY SHARE */
 | 
						|
	LCS_FORSHARE,				/* FOR SHARE */
 | 
						|
	LCS_FORNOKEYUPDATE,			/* FOR NO KEY UPDATE */
 | 
						|
	LCS_FORUPDATE				/* FOR UPDATE */
 | 
						|
} LockClauseStrength;
 | 
						|
 | 
						|
/*
 | 
						|
 * This enum controls how to deal with rows being locked by FOR UPDATE/SHARE
 | 
						|
 * clauses (i.e., it represents the NOWAIT and SKIP LOCKED options).
 | 
						|
 * The ordering here is important, because the highest numerical value takes
 | 
						|
 * precedence when a RTE is specified multiple ways.  See applyLockingClause.
 | 
						|
 */
 | 
						|
typedef enum LockWaitPolicy
 | 
						|
{
 | 
						|
	/* Wait for the lock to become available (default behavior) */
 | 
						|
	LockWaitBlock,
 | 
						|
	/* Skip rows that can't be locked (SKIP LOCKED) */
 | 
						|
	LockWaitSkip,
 | 
						|
	/* Raise an error if a row cannot be locked (NOWAIT) */
 | 
						|
	LockWaitError
 | 
						|
} LockWaitPolicy;
 | 
						|
 | 
						|
#endif							/* LOCKOPTIONS_H */
 |