]> granicus.if.org Git - postgresql/commitdiff
Move LockClauseStrength, LockWaitPolicy into new file nodes/lockoptions.h.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 15 Mar 2015 19:19:04 +0000 (15:19 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 15 Mar 2015 19:19:04 +0000 (15:19 -0400)
Commit df630b0dd5ea2de52972d456f5978a012436115e moved enum LockWaitPolicy
into its very own header file utils/lockwaitpolicy.h, which does not seem
like a great idea from here.  First, it's still a node-related declaration,
and second, a file named like that can never sensibly be used for anything
else.  I do not think we want to encourage a one-typedef-per-header-file
approach.  The upcoming foreign table inheritance patch was doubling down
on this bad idea by moving enum LockClauseStrength into its *own*
can-never-be-used-for-anything-else file.  Instead, let's put them both in
a file named nodes/lockoptions.h.  (They do seem to need a separate header
file because we need them in both parsenodes.h and plannodes.h, and we
don't want either of those including the other.  Past practice might
suggest adding them to nodes/nodes.h, but they don't seem sufficiently
globally useful to justify that.)

Committed separately since there's no functional change here, just some
header-file refactoring.

src/include/access/heapam.h
src/include/executor/executor.h
src/include/nodes/lockoptions.h [new file with mode: 0644]
src/include/nodes/parsenodes.h
src/include/nodes/plannodes.h
src/include/utils/lockwaitpolicy.h [deleted file]

index 939d93d66be10fb659cef5c4c37458a18f14b5a6..888cce7a2d841396258174d7e38e8b786ce7ec28 100644 (file)
 
 #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"
 
index 40fde83a20bd1d345d66b8d50ebcd0e9a8ef2cac..c1e747795619d1101692cfbb7c9c28bab72a0db3 100644 (file)
@@ -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 (file)
index 0000000..55324ba
--- /dev/null
@@ -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 */
index 38ed661122d6e1fbb1bce6441f8d4172757c0cb6..50e98291bda8452c815a8f7e4a827893eb4f2c03 100644 (file)
@@ -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;
index f6683f05e301fe3426297029f62cfdcc05605d26..af44ddf5dc552db88a8e32418003c08a6bd2aa9b 100644 (file)
@@ -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 (file)
index 92fc20f..0000000
+++ /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 */