On Fri, Aug 28, 2020 at 5:55 AM Ashutosh Sharma <ashu.coe...@gmail.com> wrote: > We can certainly do this way, but I would still prefer having a comparator > function (tidcmp) here for the reasons that it makes the code look a bit > cleaner, it also makes us more consistent with the way the comparator > function argument is being passed to qsort at several other places in > postgres which kinda of increases the code readability and simplicity. For > e.g. there is a comparator function for gin that does the same thing as > tidcmp is doing here.
Me too. Casting one kind of function pointer to another kind of function pointer assumes that the compiler is using the same argument-passing conventions in both cases, which seems slightly risky. It also means that if the signature for the function were to diverge further from the signature that we need in the future, the compiler might not warn us about it. Perhaps there is some case where the performance gains would be sufficiently to justify those risks, but this is certainly not that case. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company