postgres.git / summary / log / commit / refs

commit    f0d55b68ef920b5ed22c3788a5dfc15fe1f70be7
Author:   Peter Eisentraut <peter@eisentraut.org>
Date:     Fri Aug 08 10:06:06 2025 +0000

    Fix incorrect lack of Datum conversion in _int_matchsel()
    
    The code used
    
        return (Selectivity) 0.0;
    
    where
    
        PG_RETURN_FLOAT8(0.0);
    
    would be correct.
    
    On 64-bit systems, these are pretty much equivalent, but on 32-bit
    systems, PG_RETURN_FLOAT8() correctly produces a pointer, but the old
    wrong code would return a null pointer, possibly leading to a crash
    elsewhere.
    
    We think this code is actually not reachable because bqarr_in won't
    accept an empty query, and there is no other function that will
    create query_int values.  But better be safe and not let such
    incorrect code lie around.
    
    Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
    Discussion: https://www.postgresql.org/message-id/flat/8246d7ff-f4b7-4363-913e-827dadfeb145%40eisentraut.org


contrib/intarray/_int_selfuncs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/intarray/_int_selfuncs.c b/contrib/intarray/_int_selfuncs.c index 3d8ff6781bc..d2df3501ffc 100644 --- a/contrib/intarray/_int_selfuncs.c +++ b/contrib/intarray/_int_selfuncs.c @@ -178,7 +178,7 @@ _int_matchsel(PG_FUNCTION_ARGS) if (query->size == 0) { ReleaseVariableStats(vardata); - return (Selectivity) 0.0; + PG_RETURN_FLOAT8(0.0); } /* [parent: f39a7f32aefc]