aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/include/access/heapam.h2
-rw-r--r--src/include/executor/executor.h1
-rw-r--r--src/include/nodes/lockoptions.h45
-rw-r--r--src/include/nodes/parsenodes.h11
-rw-r--r--src/include/nodes/plannodes.h2
-rw-r--r--src/include/utils/lockwaitpolicy.h31
6 files changed, 48 insertions, 44 deletions
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h
index 939d93d66be..888cce7a2d8 100644
--- a/src/include/access/heapam.h
+++ b/src/include/access/heapam.h
@@ -16,10 +16,10 @@
#include "access/sdir.h"
#include "access/skey.h"
+#include "nodes/lockoptions.h"
#include "nodes/primnodes.h"
#include "storage/bufpage.h"
#include "storage/lock.h"
-#include "utils/lockwaitpolicy.h"
#include "utils/relcache.h"
#include "utils/snapshot.h"
diff --git a/src/include/executor/executor.h b/src/include/executor/executor.h
index 40fde83a20b..c1e74779561 100644
--- a/src/include/executor/executor.h
+++ b/src/include/executor/executor.h
@@ -16,7 +16,6 @@
#include "executor/execdesc.h"
#include "nodes/parsenodes.h"
-#include "utils/lockwaitpolicy.h"
/*
diff --git a/src/include/nodes/lockoptions.h b/src/include/nodes/lockoptions.h
new file mode 100644
index 00000000000..55324baf40f
--- /dev/null
+++ b/src/include/nodes/lockoptions.h
@@ -0,0 +1,45 @@
+/*-------------------------------------------------------------------------
+ *
+ * lockoptions.h
+ * Common header for some locking-related declarations.
+ *
+ *
+ * Copyright (c) 2014-2015, 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_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 */
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h
index 38ed661122d..50e98291bda 100644
--- a/src/include/nodes/parsenodes.h
+++ b/src/include/nodes/parsenodes.h
@@ -21,9 +21,9 @@
#define PARSENODES_H
#include "nodes/bitmapset.h"
+#include "nodes/lockoptions.h"
#include "nodes/primnodes.h"
#include "nodes/value.h"
-#include "utils/lockwaitpolicy.h"
/* Possible sources of a Query */
typedef enum QuerySource
@@ -645,15 +645,6 @@ typedef struct DefElem
* a location field --- currently, parse analysis insists on unqualified
* names in LockingClause.)
*/
-typedef enum LockClauseStrength
-{
- /* order is important -- see applyLockingClause */
- LCS_FORKEYSHARE,
- LCS_FORSHARE,
- LCS_FORNOKEYUPDATE,
- LCS_FORUPDATE
-} LockClauseStrength;
-
typedef struct LockingClause
{
NodeTag type;
diff --git a/src/include/nodes/plannodes.h b/src/include/nodes/plannodes.h
index f6683f05e30..af44ddf5dc5 100644
--- a/src/include/nodes/plannodes.h
+++ b/src/include/nodes/plannodes.h
@@ -17,8 +17,8 @@
#include "access/sdir.h"
#include "lib/stringinfo.h"
#include "nodes/bitmapset.h"
+#include "nodes/lockoptions.h"
#include "nodes/primnodes.h"
-#include "utils/lockwaitpolicy.h"
/* ----------------------------------------------------------------
diff --git a/src/include/utils/lockwaitpolicy.h b/src/include/utils/lockwaitpolicy.h
deleted file mode 100644
index 92fc20fbfa8..00000000000
--- a/src/include/utils/lockwaitpolicy.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*-------------------------------------------------------------------------
- * lockwaitpolicy.h
- * Header file for LockWaitPolicy enum.
- *
- * Copyright (c) 2014-2015, PostgreSQL Global Development Group
- *
- * src/include/utils/lockwaitpolicy.h
- *-------------------------------------------------------------------------
- */
-#ifndef LOCKWAITPOLICY_H
-#define LOCKWAITPOLICY_H
-
-/*
- * This enum controls how to deal with rows being locked by FOR UPDATE/SHARE
- * clauses (i.e., NOWAIT and SKIP LOCKED clauses). The ordering here is
- * important, because the highest numerical value takes precedence when a
- * RTE is specified multiple ways. See applyLockingClause.
- */
-typedef enum
-{
- /* 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 /* LOCKWAITPOLICY_H */