summaryrefslogtreecommitdiff
path: root/src/backend/access/brin/brin_minmax_multi.c
diff options
context:
space:
mode:
authorTomas Vondra <tomas.vondra@postgresql.org>2023-07-02 10:18:56 +0200
committerTomas Vondra <tomas.vondra@postgresql.org>2023-07-02 10:21:17 +0200
commit28d03feac386c2c68ffaa47f30e6578591ef5c1b (patch)
treed7b369d344865cd2085b00e4b3d1db3a51ba6a4a /src/backend/access/brin/brin_minmax_multi.c
parent4f49b3f8497d5c8c3cc06eb32942c13b8ee7209e (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.c24
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);
}
/*