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;
|
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;
|
SimplePtrListCell *tail;
|
||||||
} SimplePtrList;
|
} 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 void simple_oid_list_append(SimpleOidList *list, Oid val);
|
||||||
extern bool simple_oid_list_member(SimpleOidList *list, Oid val);
|
extern bool simple_oid_list_member(SimpleOidList *list, Oid val);
|
||||||
extern void simple_oid_list_destroy(SimpleOidList *list);
|
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_append(SimplePtrList *list, void *ptr);
|
||||||
extern void simple_ptr_list_destroy(SimplePtrList *list);
|
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 */
|
#endif /* SIMPLE_LIST_H */
|
||||||
|
@ -2747,6 +2747,8 @@ SimpleActionListCell
|
|||||||
SimpleEcontextStackEntry
|
SimpleEcontextStackEntry
|
||||||
SimpleOidList
|
SimpleOidList
|
||||||
SimpleOidListCell
|
SimpleOidListCell
|
||||||
|
SimpleOidStringList
|
||||||
|
SimpleOidListStringCell
|
||||||
SimplePtrList
|
SimplePtrList
|
||||||
SimplePtrListCell
|
SimplePtrListCell
|
||||||
SimpleStats
|
SimpleStats
|
||||||
|
Reference in New Issue
Block a user