From f85263593298632ef5303973bd2285b804f26601 Mon Sep 17 00:00:00 2001 From: Karina Litskevich Date: Mon, 4 May 2026 14:39:56 +0300 Subject: [PATCH] [PGPRO-18446] Add missing Datum conversions See vanilla commit ff89e182 See discussion: https://www.postgresql.org/message-id/flat/8246d7ff-f4b7-4363-913e-827dadfeb145%40eisentraut.org Tags: jsquery --- jsonb_gin_ops.c | 10 +++++----- jsquery_gram.y | 5 ++++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/jsonb_gin_ops.c b/jsonb_gin_ops.c index 9a72c20..669b4df 100644 --- a/jsonb_gin_ops.c +++ b/jsonb_gin_ops.c @@ -199,7 +199,7 @@ get_query_path_bloom(PathItem *pathItem, bool *lossy) if (pathItem->type == iKey) { - hash = hash_any((unsigned char *)pathItem->s, pathItem->len); + hash = DatumGetUInt32(hash_any((unsigned char *)pathItem->s, pathItem->len)); val = get_bloom_value(hash); res |= val; } @@ -296,8 +296,8 @@ make_gin_key(JsonbValue *v, uint32 hash) { key = (GINKey *) palloc0(GINKeyLenString); key->type = v->type; - GINKeyDataString(key) = hash_any((unsigned char *)v->val.string.val, - v->val.string.len); + GINKeyDataString(key) = DatumGetUInt32(hash_any((unsigned char *)v->val.string.val, + v->val.string.len)); SET_VARSIZE(key, GINKeyLenString); break; } @@ -341,7 +341,7 @@ make_gin_query_value_key(JsQueryItem *value, uint32 hash) key = (GINKey *)palloc(GINKeyLenString); key->type = jbvString; s = jsqGetString(value, &len); - GINKeyDataString(key) = hash_any((unsigned char *)s, len); + GINKeyDataString(key) = DatumGetUInt32(hash_any((unsigned char *)s, len)); SET_VARSIZE(key, GINKeyLenString); break; case jqiBool: @@ -952,7 +952,7 @@ get_query_path_hash(PathItem *pathItem, uint32 *hash) if (pathItem->type == iKey) { *hash = (*hash << 1) | (*hash >> 31); - *hash ^= hash_any((unsigned char *)pathItem->s, pathItem->len); + *hash ^= DatumGetUInt32(hash_any((unsigned char *)pathItem->s, pathItem->len)); } else if (pathItem->type == iAnyArray || pathItem->type == iIndexArray) { diff --git a/jsquery_gram.y b/jsquery_gram.y index fd05e7a..eb8a526 100644 --- a/jsquery_gram.y +++ b/jsquery_gram.y @@ -116,7 +116,10 @@ makeItemNumeric(string *s) JsQueryParseItem *v; v = makeItemType(jqiNumeric); - v->numeric = DatumGetNumeric(DirectFunctionCall3(numeric_in, CStringGetDatum(s->val), 0, -1)); + v->numeric = DatumGetNumeric(DirectFunctionCall3(numeric_in, + CStringGetDatum(s->val), + ObjectIdGetDatum(InvalidOid), + Int32GetDatum(-1))); return v; }