From a0cd991987bd23d79d5d273e7712afe40dba554b Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 25 Oct 2001 14:10:07 +0000 Subject: Add int2-to-int8 and int8-to-int2 conversion routines. Needed to avoid breaking existing pg_dump scripts, which try to assign the result of count(*) to an int2 variable. catversion bumped. --- src/backend/utils/adt/int8.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'src/backend/utils/adt/int8.c') diff --git a/src/backend/utils/adt/int8.c b/src/backend/utils/adt/int8.c index 41a60615884..b689cb764a4 100644 --- a/src/backend/utils/adt/int8.c +++ b/src/backend/utils/adt/int8.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/int8.c,v 1.34 2001/10/25 05:49:44 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/int8.c,v 1.35 2001/10/25 14:10:06 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -697,6 +697,29 @@ int84(PG_FUNCTION_ARGS) PG_RETURN_INT32(result); } +Datum +int28(PG_FUNCTION_ARGS) +{ + int16 val = PG_GETARG_INT16(0); + + PG_RETURN_INT64((int64) val); +} + +Datum +int82(PG_FUNCTION_ARGS) +{ + int64 val = PG_GETARG_INT64(0); + int16 result; + + result = (int16) val; + + /* Test for overflow by reverse-conversion. */ + if ((int64) result != val) + elog(ERROR, "int8 conversion to int2 is out of range"); + + PG_RETURN_INT16(result); +} + Datum i8tod(PG_FUNCTION_ARGS) { -- cgit v1.2.3