mirror of
https://github.com/postgres/postgres.git
synced 2025-06-30 21:42:05 +03:00
add new list type simple_oid_string_list to fe-utils/simple_list
This type contains both an oid and a string. This will be used in forthcoming changes to pg_restore. Author: Andrew Dunstan <andrew@dunslane.net>
This commit is contained in:
@ -192,3 +192,44 @@ simple_ptr_list_destroy(SimplePtrList *list)
|
||||
cell = next;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Add to an oid_string list
|
||||
*/
|
||||
void
|
||||
simple_oid_string_list_append(SimpleOidStringList *list, Oid oid, const char *str)
|
||||
{
|
||||
SimpleOidStringListCell *cell;
|
||||
|
||||
cell = (SimpleOidStringListCell *)
|
||||
pg_malloc(offsetof(SimpleOidStringListCell, str) + strlen(str) + 1);
|
||||
|
||||
cell->next = NULL;
|
||||
cell->oid = oid;
|
||||
strcpy(cell->str, str);
|
||||
|
||||
if (list->tail)
|
||||
list->tail->next = cell;
|
||||
else
|
||||
list->head = cell;
|
||||
list->tail = cell;
|
||||
}
|
||||
|
||||
/*
|
||||
* Destroy an oid_string list
|
||||
*/
|
||||
void
|
||||
simple_oid_string_list_destroy(SimpleOidStringList *list)
|
||||
{
|
||||
SimpleOidStringListCell *cell;
|
||||
|
||||
cell = list->head;
|
||||
while (cell != NULL)
|
||||
{
|
||||
SimpleOidStringListCell *next;
|
||||
|
||||
next = cell->next;
|
||||
pg_free(cell);
|
||||
cell = next;
|
||||
}
|
||||
}
|
||||
|
@ -55,6 +55,19 @@ typedef struct SimplePtrList
|
||||
SimplePtrListCell *tail;
|
||||
} SimplePtrList;
|
||||
|
||||
typedef struct SimpleOidStringListCell
|
||||
{
|
||||
struct SimpleOidStringListCell *next;
|
||||
Oid oid;
|
||||
char str[FLEXIBLE_ARRAY_MEMBER]; /* null-terminated string here */
|
||||
} SimpleOidStringListCell;
|
||||
|
||||
typedef struct SimpleOidStringList
|
||||
{
|
||||
SimpleOidStringListCell *head;
|
||||
SimpleOidStringListCell *tail;
|
||||
} SimpleOidStringList;
|
||||
|
||||
extern void simple_oid_list_append(SimpleOidList *list, Oid val);
|
||||
extern bool simple_oid_list_member(SimpleOidList *list, Oid val);
|
||||
extern void simple_oid_list_destroy(SimpleOidList *list);
|
||||
@ -68,4 +81,7 @@ extern const char *simple_string_list_not_touched(SimpleStringList *list);
|
||||
extern void simple_ptr_list_append(SimplePtrList *list, void *ptr);
|
||||
extern void simple_ptr_list_destroy(SimplePtrList *list);
|
||||
|
||||
extern void simple_oid_string_list_append(SimpleOidStringList *list, Oid oid, const char *str);
|
||||
extern void simple_oid_string_list_destroy(SimpleOidStringList *list);
|
||||
|
||||
#endif /* SIMPLE_LIST_H */
|
||||
|
@ -2747,6 +2747,8 @@ SimpleActionListCell
|
||||
SimpleEcontextStackEntry
|
||||
SimpleOidList
|
||||
SimpleOidListCell
|
||||
SimpleOidStringList
|
||||
SimpleOidListStringCell
|
||||
SimplePtrList
|
||||
SimplePtrListCell
|
||||
SimpleStats
|
||||
|
Reference in New Issue
Block a user