From 90e0d163ba150cadc66e27b129a11f0757951335 Mon Sep 17 00:00:00 2001 From: Wendel de Lana Date: Wed, 23 Aug 2023 17:14:31 -0300 Subject: [PATCH] Minor fix in `agtype_volatile_wrapper` function (#1172) Fixed duplicated IF-STATEMENT of INT4OID in agtype_volatile_wrapper function changing it to INT2OID --- regress/expected/agtype.out | 24 ++++++++++++++++++++++++ regress/sql/agtype.sql | 9 +++++++++ src/backend/utils/adt/agtype.c | 2 +- 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/regress/expected/agtype.out b/regress/expected/agtype.out index 65cca0e4c..cf451b433 100644 --- a/regress/expected/agtype.out +++ b/regress/expected/agtype.out @@ -3192,6 +3192,30 @@ SELECT agtype_btree_cmp( -1 (1 row) +--Int2 to Agtype in agtype_volatile_wrapper +SELECT ag_catalog.agtype_volatile_wrapper(1::int2); + agtype_volatile_wrapper +------------------------- + 1 +(1 row) + +SELECT ag_catalog.agtype_volatile_wrapper(32767::int2); + agtype_volatile_wrapper +------------------------- + 32767 +(1 row) + +SELECT ag_catalog.agtype_volatile_wrapper(-32767::int2); + agtype_volatile_wrapper +------------------------- + -32767 +(1 row) + +-- These should fail +SELECT ag_catalog.agtype_volatile_wrapper(32768::int2); +ERROR: smallint out of range +SELECT ag_catalog.agtype_volatile_wrapper(-32768::int2); +ERROR: smallint out of range -- -- Cleanup -- diff --git a/regress/sql/agtype.sql b/regress/sql/agtype.sql index 3fb81d01e..0e53df2c1 100644 --- a/regress/sql/agtype.sql +++ b/regress/sql/agtype.sql @@ -925,6 +925,15 @@ SELECT agtype_btree_cmp( '[{"id":1, "label":"test", "properties":{"id":100}}::vertex, {"id":2, "start_id":1, "end_id": 3, "label":"elabel", "properties":{}}::edge, {"id":4, "label":"vlabel", "properties":{}}::vertex]::path'::agtype); + +--Int2 to Agtype in agtype_volatile_wrapper +SELECT ag_catalog.agtype_volatile_wrapper(1::int2); +SELECT ag_catalog.agtype_volatile_wrapper(32767::int2); +SELECT ag_catalog.agtype_volatile_wrapper(-32767::int2); + +-- These should fail +SELECT ag_catalog.agtype_volatile_wrapper(32768::int2); +SELECT ag_catalog.agtype_volatile_wrapper(-32768::int2); -- -- Cleanup -- diff --git a/src/backend/utils/adt/agtype.c b/src/backend/utils/adt/agtype.c index 70e5f3b90..ea2540165 100644 --- a/src/backend/utils/adt/agtype.c +++ b/src/backend/utils/adt/agtype.c @@ -10876,7 +10876,7 @@ Datum agtype_volatile_wrapper(PG_FUNCTION_ARGS) { agtv_result.val.int_value = (int64) DatumGetInt32(arg); } - else if (type == INT4OID) + else if (type == INT2OID) { agtv_result.val.int_value = (int64) DatumGetInt16(arg); }