PostgreSQL Source Code  git master
simple_list.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------
2  *
3  * Simple list facilities for frontend code
4  *
5  * Data structures for simple lists of OIDs, strings, and pointers. The
6  * support for these is very primitive compared to the backend's List
7  * facilities, but it's all we need in, eg, pg_dump.
8  *
9  *
10  * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
11  * Portions Copyright (c) 1994, Regents of the University of California
12  *
13  * src/include/fe_utils/simple_list.h
14  *
15  *-------------------------------------------------------------------------
16  */
17 #ifndef SIMPLE_LIST_H
18 #define SIMPLE_LIST_H
19 
20 typedef struct SimpleOidListCell
21 {
25 
26 typedef struct SimpleOidList
27 {
31 
32 typedef struct SimpleStringListCell
33 {
35  bool touched; /* true, when this string was searched and
36  * touched */
37  char val[FLEXIBLE_ARRAY_MEMBER]; /* null-terminated string here */
39 
40 typedef struct SimpleStringList
41 {
45 
46 typedef struct SimplePtrListCell
47 {
49  void *ptr;
51 
52 typedef struct SimplePtrList
53 {
57 
61 
62 extern void simple_string_list_append(SimpleStringList *list, const char *val);
63 extern bool simple_string_list_member(SimpleStringList *list, const char *val);
65 
67 
68 extern void simple_ptr_list_append(SimplePtrList *list, void *ptr);
70 
71 #endif /* SIMPLE_LIST_H */
#define FLEXIBLE_ARRAY_MEMBER
Definition: c.h:417
long val
Definition: informix.c:689
unsigned int Oid
Definition: postgres_ext.h:31
struct SimpleStringList SimpleStringList
void simple_oid_list_destroy(SimpleOidList *list)
Definition: simple_list.c:106
bool simple_string_list_member(SimpleStringList *list, const char *val)
Definition: simple_list.c:87
struct SimpleOidListCell SimpleOidListCell
void simple_ptr_list_destroy(SimplePtrList *list)
Definition: simple_list.c:181
void simple_string_list_append(SimpleStringList *list, const char *val)
Definition: simple_list.c:63
struct SimplePtrList SimplePtrList
void simple_string_list_destroy(SimpleStringList *list)
Definition: simple_list.c:125
struct SimpleOidList SimpleOidList
void simple_ptr_list_append(SimplePtrList *list, void *ptr)
Definition: simple_list.c:162
bool simple_oid_list_member(SimpleOidList *list, Oid val)
Definition: simple_list.c:45
struct SimpleStringListCell SimpleStringListCell
struct SimplePtrListCell SimplePtrListCell
void simple_oid_list_append(SimpleOidList *list, Oid val)
Definition: simple_list.c:26
const char * simple_string_list_not_touched(SimpleStringList *list)
Definition: simple_list.c:144
struct SimpleOidListCell * next
Definition: simple_list.h:22
SimpleOidListCell * tail
Definition: simple_list.h:29
SimpleOidListCell * head
Definition: simple_list.h:28
struct SimplePtrListCell * next
Definition: simple_list.h:48
SimplePtrListCell * tail
Definition: simple_list.h:55
SimplePtrListCell * head
Definition: simple_list.h:54
char val[FLEXIBLE_ARRAY_MEMBER]
Definition: simple_list.h:37
struct SimpleStringListCell * next
Definition: simple_list.h:34
SimpleStringListCell * head
Definition: simple_list.h:42
SimpleStringListCell * tail
Definition: simple_list.h:43