mirror of
https://github.com/postgres/postgres.git
synced 2025-10-25 13:17:41 +03:00
Modify sequence state storage to eliminate dangling-pointer problem
exemplified by bug #671. Moving the storage to relcache turned out to be a bad idea because relcache might decide to discard the info. Instead, open and close the relcache entry on each sequence operation, and use a record of the current XID to discover whether we already hold AccessShareLock on the sequence.
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: defrem.h,v 1.37 2002/05/17 18:32:52 petere Exp $
|
||||
* $Id: defrem.h,v 1.38 2002/05/22 21:40:55 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -54,12 +54,13 @@ extern void DefineDomain(CreateDomainStmt *stmt);
|
||||
extern void RemoveDomain(List *names, int behavior);
|
||||
|
||||
|
||||
/* support routines in define.c */
|
||||
/* support routines in commands/define.c */
|
||||
|
||||
extern void case_translate_language_name(const char *input, char *output);
|
||||
|
||||
extern char *defGetString(DefElem *def);
|
||||
extern double defGetNumeric(DefElem *def);
|
||||
extern int64 defGetInt64(DefElem *def);
|
||||
extern List *defGetQualifiedName(DefElem *def);
|
||||
extern TypeName *defGetTypeName(DefElem *def);
|
||||
extern int defGetTypeLength(DefElem *def);
|
||||
|
||||
Reference in New Issue
Block a user