summaryrefslogtreecommitdiff
path: root/src/include/access
diff options
context:
space:
mode:
authorMichael Paquier2024-02-26 07:04:59 +0000
committerMichael Paquier2024-02-26 07:04:59 +0000
commit449e798c77ed9a03f8bb04e5d324d4e3cfbbae8e (patch)
tree91f643e47147d44a95fc707908549de2d539eb5d /src/include/access
parent025f0a6f9113efe89bb65b9efe0cb96a5d7c7ad1 (diff)
Introduce sequence_*() access functions
Similarly to tables and indexes, these functions are able to open relations with a sequence relkind, which is useful to make a distinction with the other relation kinds. Previously, commands/sequence.c used a mix of table_{close,open}() and relation_{close,open}() routines when manipulating sequence relations, so this clarifies the code. A direct effect of this change is to align the error messages produced when attempting DDLs for sequences on relations with an unexpected relkind, like a table or an index with ALTER SEQUENCE, providing an extra error detail about the relkind of the relation used in the DDL query. Author: Michael Paquier Reviewed-by: Tomas Vondra Discussion: https://postgr.es/m/ZWlohtKAs0uVVpZ3@paquier.xyz
Diffstat (limited to 'src/include/access')
-rw-r--r--src/include/access/sequence.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/include/access/sequence.h b/src/include/access/sequence.h
new file mode 100644
index 00000000000..fb8708861b5
--- /dev/null
+++ b/src/include/access/sequence.h
@@ -0,0 +1,23 @@
+/*-------------------------------------------------------------------------
+ *
+ * sequence.h
+ * Generic routines for sequence-related code.
+ *
+ *
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
+ *
+ * src/include/access/sequence.h
+ *
+ *-------------------------------------------------------------------------
+ */
+#ifndef ACCESS_SEQUENCE_H
+#define ACCESS_SEQUENCE_H
+
+#include "storage/lockdefs.h"
+#include "utils/relcache.h"
+
+extern Relation sequence_open(Oid relationId, LOCKMODE lockmode);
+extern void sequence_close(Relation relation, LOCKMODE lockmode);
+
+#endif /* ACCESS_SEQUENCE_H */