Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit a378ba4

Browse filesBrowse files
committed
Add pg_nodiscard decorations to some functions
Especially for the list API such as lappend() forgetting to assign the return value is a common problem. Reviewed-by: Michael Paquier <michael@paquier.xyz> Discussion: https://www.postgresql.org/message-id/flat/e3753562-99cd-b65f-5aca-687dfd1ec2fc@2ndquadrant.com
1 parent c617aea commit a378ba4
Copy full SHA for a378ba4

File tree

Expand file treeCollapse file tree

2 files changed

+33
-33
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+33
-33
lines changed

‎src/include/nodes/pg_list.h

Copy file name to clipboardExpand all lines: src/include/nodes/pg_list.h
+31-31Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -521,36 +521,36 @@ extern List *list_make3_impl(NodeTag t, ListCell datum1, ListCell datum2,
521521
extern List *list_make4_impl(NodeTag t, ListCell datum1, ListCell datum2,
522522
ListCell datum3, ListCell datum4);
523523

524-
extern List *lappend(List *list, void *datum);
525-
extern List *lappend_int(List *list, int datum);
526-
extern List *lappend_oid(List *list, Oid datum);
524+
extern pg_nodiscard List *lappend(List *list, void *datum);
525+
extern pg_nodiscard List *lappend_int(List *list, int datum);
526+
extern pg_nodiscard List *lappend_oid(List *list, Oid datum);
527527

528-
extern List *list_insert_nth(List *list, int pos, void *datum);
529-
extern List *list_insert_nth_int(List *list, int pos, int datum);
530-
extern List *list_insert_nth_oid(List *list, int pos, Oid datum);
528+
extern pg_nodiscard List *list_insert_nth(List *list, int pos, void *datum);
529+
extern pg_nodiscard List *list_insert_nth_int(List *list, int pos, int datum);
530+
extern pg_nodiscard List *list_insert_nth_oid(List *list, int pos, Oid datum);
531531

532-
extern List *lcons(void *datum, List *list);
533-
extern List *lcons_int(int datum, List *list);
534-
extern List *lcons_oid(Oid datum, List *list);
532+
extern pg_nodiscard List *lcons(void *datum, List *list);
533+
extern pg_nodiscard List *lcons_int(int datum, List *list);
534+
extern pg_nodiscard List *lcons_oid(Oid datum, List *list);
535535

536-
extern List *list_concat(List *list1, const List *list2);
537-
extern List *list_concat_copy(const List *list1, const List *list2);
536+
extern pg_nodiscard List *list_concat(List *list1, const List *list2);
537+
extern pg_nodiscard List *list_concat_copy(const List *list1, const List *list2);
538538

539-
extern List *list_truncate(List *list, int new_size);
539+
extern pg_nodiscard List *list_truncate(List *list, int new_size);
540540

541541
extern bool list_member(const List *list, const void *datum);
542542
extern bool list_member_ptr(const List *list, const void *datum);
543543
extern bool list_member_int(const List *list, int datum);
544544
extern bool list_member_oid(const List *list, Oid datum);
545545

546-
extern List *list_delete(List *list, void *datum);
547-
extern List *list_delete_ptr(List *list, void *datum);
548-
extern List *list_delete_int(List *list, int datum);
549-
extern List *list_delete_oid(List *list, Oid datum);
550-
extern List *list_delete_first(List *list);
551-
extern List *list_delete_last(List *list);
552-
extern List *list_delete_nth_cell(List *list, int n);
553-
extern List *list_delete_cell(List *list, ListCell *cell);
546+
extern pg_nodiscard List *list_delete(List *list, void *datum);
547+
extern pg_nodiscard List *list_delete_ptr(List *list, void *datum);
548+
extern pg_nodiscard List *list_delete_int(List *list, int datum);
549+
extern pg_nodiscard List *list_delete_oid(List *list, Oid datum);
550+
extern pg_nodiscard List *list_delete_first(List *list);
551+
extern pg_nodiscard List *list_delete_last(List *list);
552+
extern pg_nodiscard List *list_delete_nth_cell(List *list, int n);
553+
extern pg_nodiscard List *list_delete_cell(List *list, ListCell *cell);
554554

555555
extern List *list_union(const List *list1, const List *list2);
556556
extern List *list_union_ptr(const List *list1, const List *list2);
@@ -567,24 +567,24 @@ extern List *list_difference_ptr(const List *list1, const List *list2);
567567
extern List *list_difference_int(const List *list1, const List *list2);
568568
extern List *list_difference_oid(const List *list1, const List *list2);
569569

570-
extern List *list_append_unique(List *list, void *datum);
571-
extern List *list_append_unique_ptr(List *list, void *datum);
572-
extern List *list_append_unique_int(List *list, int datum);
573-
extern List *list_append_unique_oid(List *list, Oid datum);
570+
extern pg_nodiscard List *list_append_unique(List *list, void *datum);
571+
extern pg_nodiscard List *list_append_unique_ptr(List *list, void *datum);
572+
extern pg_nodiscard List *list_append_unique_int(List *list, int datum);
573+
extern pg_nodiscard List *list_append_unique_oid(List *list, Oid datum);
574574

575-
extern List *list_concat_unique(List *list1, const List *list2);
576-
extern List *list_concat_unique_ptr(List *list1, const List *list2);
577-
extern List *list_concat_unique_int(List *list1, const List *list2);
578-
extern List *list_concat_unique_oid(List *list1, const List *list2);
575+
extern pg_nodiscard List *list_concat_unique(List *list1, const List *list2);
576+
extern pg_nodiscard List *list_concat_unique_ptr(List *list1, const List *list2);
577+
extern pg_nodiscard List *list_concat_unique_int(List *list1, const List *list2);
578+
extern pg_nodiscard List *list_concat_unique_oid(List *list1, const List *list2);
579579

580580
extern void list_deduplicate_oid(List *list);
581581

582582
extern void list_free(List *list);
583583
extern void list_free_deep(List *list);
584584

585-
extern List *list_copy(const List *list);
586-
extern List *list_copy_tail(const List *list, int nskip);
587-
extern List *list_copy_deep(const List *oldlist);
585+
extern pg_nodiscard List *list_copy(const List *list);
586+
extern pg_nodiscard List *list_copy_tail(const List *list, int nskip);
587+
extern pg_nodiscard List *list_copy_deep(const List *oldlist);
588588

589589
typedef int (*list_sort_comparator) (const ListCell *a, const ListCell *b);
590590
extern void list_sort(List *list, list_sort_comparator cmp);

‎src/include/utils/palloc.h

Copy file name to clipboardExpand all lines: src/include/utils/palloc.h
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ extern void *MemoryContextAllocExtended(MemoryContext context,
7777
extern void *palloc(Size size);
7878
extern void *palloc0(Size size);
7979
extern void *palloc_extended(Size size, int flags);
80-
extern void *repalloc(void *pointer, Size size);
80+
extern pg_nodiscard void *repalloc(void *pointer, Size size);
8181
extern void pfree(void *pointer);
8282

8383
/*
@@ -95,7 +95,7 @@ extern void pfree(void *pointer);
9595

9696
/* Higher-limit allocators. */
9797
extern void *MemoryContextAllocHuge(MemoryContext context, Size size);
98-
extern void *repalloc_huge(void *pointer, Size size);
98+
extern pg_nodiscard void *repalloc_huge(void *pointer, Size size);
9999

100100
/*
101101
* Although this header file is nominally backend-only, certain frontend

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.