Thread

  1. Re: Don't cast away const where possible

    Bertrand Drouvot <bertranddrouvot.pg@gmail.com> — 2025-12-29T09:01:46Z

    Hi,
    
    On Mon, Dec 22, 2025 at 12:53:03PM +0100, Peter Eisentraut wrote:
    > On 18.12.25 14:55, Bertrand Drouvot wrote:
    > > Some functions are casting away the const qualifiers from their signatures in
    > > local variables.
    > 
    > @@ -1304,8 +1304,8 @@ merge_overlapping_ranges(FmgrInfo *cmp, Oid colloid,
    >  static int
    >  compare_distances(const void *a, const void *b)
    >  {
    > -       DistanceValue *da = (DistanceValue *) a;
    > -       DistanceValue *db = (DistanceValue *) b;
    > +       const DistanceValue *da = (const DistanceValue *) a;
    > +       const DistanceValue *db = (const DistanceValue *) b;
    > 
    > I wonder if the better fix here wouldn't be to get rid of the cast. It's not
    > necessary, and without it the compiler would automatically warn about
    > qualifier mismatches.
    
    Yeah, that looks better as it provides an extra safety check should the function
    signature change.
    
    > These comparison functions seem to be a common
    > pattern.
    
    Right, in the attached I applied your proposal on all those places.
    
    Regards,
    
    -- 
    Bertrand Drouvot
    PostgreSQL Contributors Team
    RDS Open Source Databases
    Amazon Web Services: https://aws.amazon.com