diff options
author | Tomas Vondra <tomas.vondra@postgresql.org> | 2023-07-02 10:18:56 +0200 |
---|---|---|
committer | Tomas Vondra <tomas.vondra@postgresql.org> | 2023-07-02 10:21:17 +0200 |
commit | 28d03feac386c2c68ffaa47f30e6578591ef5c1b (patch) | |
tree | d7b369d344865cd2085b00e4b3d1db3a51ba6a4a /src/backend/access/brin/brin_minmax_multi.c | |
parent | 4f49b3f8497d5c8c3cc06eb32942c13b8ee7209e (diff) |
Minor cleanups in the BRIN code
BRIN bloom and minmax-multi opclasses were somewhat inconsistent when
dealing with bool variables, assigning to them Datum values etc. While
not a bug, it makes the code harder to understand, so fix that.
While at it, update an incorrect comment copied to bloom opclass from
minmax, talking about strategies not supported by bloom.
Reviewed-by: Heikki Linnakangas
Discussion: https://postgr.es/m/0e1f3350-c9cf-ab62-43a5-5dae314de89c%40enterprisedb.com
Diffstat (limited to 'src/backend/access/brin/brin_minmax_multi.c')
-rw-r--r-- | src/backend/access/brin/brin_minmax_multi.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/backend/access/brin/brin_minmax_multi.c b/src/backend/access/brin/brin_minmax_multi.c index 8e4e6c2fc8a..e9ce0f2a1be 100644 --- a/src/backend/access/brin/brin_minmax_multi.c +++ b/src/backend/access/brin/brin_minmax_multi.c @@ -2602,7 +2602,7 @@ brin_minmax_multi_consistent(PG_FUNCTION_ARGS) for (keyno = 0; keyno < nkeys; keyno++) { - Datum matches; + bool matches; ScanKey key = keys[keyno]; /* NULL keys are handled and filtered-out in bringetbitmap */ @@ -2618,7 +2618,7 @@ brin_minmax_multi_consistent(PG_FUNCTION_ARGS) finfo = minmax_multi_get_strategy_procinfo(bdesc, attno, subtype, key->sk_strategy); /* first value from the array */ - matches = FunctionCall2Coll(finfo, colloid, minval, value); + matches = DatumGetBool(FunctionCall2Coll(finfo, colloid, minval, value)); break; case BTEqualStrategyNumber: @@ -2664,18 +2664,18 @@ brin_minmax_multi_consistent(PG_FUNCTION_ARGS) finfo = minmax_multi_get_strategy_procinfo(bdesc, attno, subtype, key->sk_strategy); /* last value from the array */ - matches = FunctionCall2Coll(finfo, colloid, maxval, value); + matches = DatumGetBool(FunctionCall2Coll(finfo, colloid, maxval, value)); break; default: /* shouldn't happen */ elog(ERROR, "invalid strategy number %d", key->sk_strategy); - matches = 0; + matches = false; break; } /* the range has to match all the scan keys */ - matching &= DatumGetBool(matches); + matching &= matches; /* once we find a non-matching key, we're done */ if (!matching) @@ -2686,7 +2686,7 @@ brin_minmax_multi_consistent(PG_FUNCTION_ARGS) * have we found a range matching all scan keys? if yes, we're done */ if (matching) - PG_RETURN_DATUM(BoolGetDatum(true)); + PG_RETURN_BOOL(true); } /* @@ -2703,7 +2703,7 @@ brin_minmax_multi_consistent(PG_FUNCTION_ARGS) for (keyno = 0; keyno < nkeys; keyno++) { - Datum matches; + bool matches; ScanKey key = keys[keyno]; /* we've already dealt with NULL keys at the beginning */ @@ -2723,18 +2723,18 @@ brin_minmax_multi_consistent(PG_FUNCTION_ARGS) finfo = minmax_multi_get_strategy_procinfo(bdesc, attno, subtype, key->sk_strategy); - matches = FunctionCall2Coll(finfo, colloid, val, value); + matches = DatumGetBool(FunctionCall2Coll(finfo, colloid, val, value)); break; default: /* shouldn't happen */ elog(ERROR, "invalid strategy number %d", key->sk_strategy); - matches = 0; + matches = false; break; } /* the range has to match all the scan keys */ - matching &= DatumGetBool(matches); + matching &= matches; /* once we find a non-matching key, we're done */ if (!matching) @@ -2743,10 +2743,10 @@ brin_minmax_multi_consistent(PG_FUNCTION_ARGS) /* have we found a range matching all scan keys? if yes, we're done */ if (matching) - PG_RETURN_DATUM(BoolGetDatum(true)); + PG_RETURN_BOOL(true); } - PG_RETURN_DATUM(BoolGetDatum(false)); + PG_RETURN_BOOL(false); } /* |