diff options
| author | Michael Paquier | 2024-02-26 07:04:59 +0000 |
|---|---|---|
| committer | Michael Paquier | 2024-02-26 07:04:59 +0000 |
| commit | 449e798c77ed9a03f8bb04e5d324d4e3cfbbae8e (patch) | |
| tree | 91f643e47147d44a95fc707908549de2d539eb5d /src/include/access | |
| parent | 025f0a6f9113efe89bb65b9efe0cb96a5d7c7ad1 (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.h | 23 |
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 */ |
