Re: Convert macros to static inline functions

From: Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>
To: Amul Sul <sulamul(at)gmail(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Convert macros to static inline functions
Date: 2022-05-23 05:38:32
Message-ID: 756bc03b-3914-dc67-96c0-8431df70f287@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 16.05.22 15:23, Amul Sul wrote:
> +static inline OffsetNumber
> +PageGetMaxOffsetNumber(Page page)
> +{
> + if (((PageHeader) page)->pd_lower <= SizeOfPageHeaderData)
> + return 0;
> + else
> + return ((((PageHeader) page)->pd_lower - SizeOfPageHeaderData)
> / sizeof(ItemIdData));
> +}
>
> The "else" is not necessary, we can have the return statement directly
> which would save some indentation as well. The Similar pattern can be
> considered for 0004 and 0007 patches as well.

I kind of like it better this way. It preserves the functional style of
the original macro.

> +static inline void
> +XLogFromFileName(const char *fname, TimeLineID *tli, XLogSegNo
> *logSegNo, int wal_segsz_bytes)
> +{
> + uint32 log;
> + uint32 seg;
> + sscanf(fname, "%08X%08X%08X", tli, &log, &seg);
> + *logSegNo = (uint64) log * XLogSegmentsPerXLogId(wal_segsz_bytes) + seg;
> +}
>
> Can we have a blank line after variable declarations that we usually have?

done

> 0006 patch:
> +static inline Datum
> +fetch_att(const void *T, bool attbyval, int attlen)
> +{
> + if (attbyval)
> + {
> +#if SIZEOF_DATUM == 8
> + if (attlen == sizeof(Datum))
> + return *((const Datum *) T);
> + else
> +#endif
>
> Can we have a switch case like store_att_byval() instead of if-else,
> code would look more symmetric, IMO.

done

Attachment Content-Type Size
v2-0001-Convert-macros-to-static-inline-functions-block.h.patch text/plain 2.9 KB
v2-0002-Convert-macros-to-static-inline-functions-bufpage.patch text/plain 10.1 KB
v2-0003-Convert-macros-to-static-inline-functions-itemptr.patch text/plain 6.2 KB
v2-0004-Convert-macros-to-static-inline-functions-bufmgr..patch text/plain 2.8 KB
v2-0005-Convert-macros-to-static-inline-functions-xlog_in.patch text/plain 7.0 KB
v2-0006-Convert-macros-to-static-inline-functions-tupmacs.patch text/plain 7.9 KB
v2-0007-Convert-macros-to-static-inline-functions-itup.h.patch text/plain 4.6 KB
v2-0008-Convert-macros-to-static-inline-functions-pgstat..patch text/plain 7.9 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Kapila 2022-05-23 05:39:41 Re: [BUG] Logical replication failure "ERROR: could not map filenode "base/13237/442428" to relation OID" with catalog modifying txns
Previous Message Dilip Kumar 2022-05-23 05:35:33 Re: postgres_fdw has insufficient support for large object