mirror of
https://github.com/postgres/postgres.git
synced 2026-04-25 16:18:21 -04:00
Up until now, we've had a policy of only marking certain variables in the PostgreSQL header files with PGDLLIMPORT, but now we've decided to mark them all. This means that extensions running on Windows should no longer operate at a disadvantage as compared to extensions running on Linux: if the variable is present in a header file, it should be accessible. Discussion: http://postgr.es/m/CA+TgmoYanc1_FSfimhgiWSqVyP5KKmh5NP2BWNwDhO8Pg2vGYQ@mail.gmail.com
44 lines
1.2 KiB
C
44 lines
1.2 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* session.h
|
|
* Encapsulation of user session.
|
|
*
|
|
* Copyright (c) 2017-2022, PostgreSQL Global Development Group
|
|
*
|
|
* src/include/access/session.h
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef SESSION_H
|
|
#define SESSION_H
|
|
|
|
#include "lib/dshash.h"
|
|
|
|
/* Avoid including typcache.h */
|
|
struct SharedRecordTypmodRegistry;
|
|
|
|
/*
|
|
* A struct encapsulating some elements of a user's session. For now this
|
|
* manages state that applies to parallel query, but in principle it could
|
|
* include other things that are currently global variables.
|
|
*/
|
|
typedef struct Session
|
|
{
|
|
dsm_segment *segment; /* The session-scoped DSM segment. */
|
|
dsa_area *area; /* The session-scoped DSA area. */
|
|
|
|
/* State managed by typcache.c. */
|
|
struct SharedRecordTypmodRegistry *shared_typmod_registry;
|
|
dshash_table *shared_record_table;
|
|
dshash_table *shared_typmod_table;
|
|
} Session;
|
|
|
|
extern void InitializeSession(void);
|
|
extern dsm_handle GetSessionDsmHandle(void);
|
|
extern void AttachSession(dsm_handle handle);
|
|
extern void DetachSession(void);
|
|
|
|
/* The current session, or NULL for none. */
|
|
extern PGDLLIMPORT Session *CurrentSession;
|
|
|
|
#endif /* SESSION_H */
|