summaryrefslogtreecommitdiff
path: root/contrib/int8/int8.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/int8/int8.c')
-rw-r--r--contrib/int8/int8.c378
1 files changed, 204 insertions, 174 deletions
diff --git a/contrib/int8/int8.c b/contrib/int8/int8.c
index 93822cb480f..a73986beebd 100644
--- a/contrib/int8/int8.c
+++ b/contrib/int8/int8.c
@@ -1,12 +1,12 @@
/*-------------------------------------------------------------------------
*
* int8.c--
- * Internal 64-bit integer operations
+ * Internal 64-bit integer operations
*
*-------------------------------------------------------------------------
*/
-#include <stdio.h> /* for sprintf proto, etc. */
-#include <stdlib.h> /* for strtod, etc. */
+#include <stdio.h> /* for sprintf proto, etc. */
+#include <stdlib.h> /* for strtod, etc. */
#include <string.h>
#include <ctype.h>
#include <time.h>
@@ -17,7 +17,7 @@
#include "postgres.h"
#include "utils/palloc.h"
-#define MAXINT8LEN 25
+#define MAXINT8LEN 25
#define USE_LOCAL_CODE 1
@@ -26,53 +26,58 @@
#endif
#ifndef HAVE_64BIT_INTS
-typedef char[8] int64;
+typedef char [8] int64;
#elif defined(__alpha)
typedef long int int64;
+
#define INT64_FORMAT "%ld"
#elif defined(__GNUC__)
typedef long long int int64;
+
#define INT64_FORMAT "%Ld"
#else
typedef long int int64;
+
#define INT64_FORMAT "%ld"
#endif
-int64 *int8in(char *str);
-char *int8out(int64 *val);
-
-bool int8eq(int64 *val1, int64 *val2);
-bool int8ne(int64 *val1, int64 *val2);
-bool int8lt(int64 *val1, int64 *val2);
-bool int8gt(int64 *val1, int64 *val2);
-bool int8le(int64 *val1, int64 *val2);
-bool int8ge(int64 *val1, int64 *val2);
-
-bool int84eq(int64 *val1, int32 val2);
-bool int84ne(int64 *val1, int32 val2);
-bool int84lt(int64 *val1, int32 val2);
-bool int84gt(int64 *val1, int32 val2);
-bool int84le(int64 *val1, int32 val2);
-bool int84ge(int64 *val1, int32 val2);
-
-int64 *int8um(int64 *val);
-int64 *int8pl(int64 *val1, int64 *val2);
-int64 *int8mi(int64 *val1, int64 *val2);
-int64 *int8mul(int64 *val1, int64 *val2);
-int64 *int8div(int64 *val1, int64 *val2);
-
-int64 *int48(int32 val);
-int32 int84(int64 *val);
+int64 *int8in(char *str);
+char *int8out(int64 * val);
+
+bool int8eq(int64 * val1, int64 * val2);
+bool int8ne(int64 * val1, int64 * val2);
+bool int8lt(int64 * val1, int64 * val2);
+bool int8gt(int64 * val1, int64 * val2);
+bool int8le(int64 * val1, int64 * val2);
+bool int8ge(int64 * val1, int64 * val2);
+
+bool int84eq(int64 * val1, int32 val2);
+bool int84ne(int64 * val1, int32 val2);
+bool int84lt(int64 * val1, int32 val2);
+bool int84gt(int64 * val1, int32 val2);
+bool int84le(int64 * val1, int32 val2);
+bool int84ge(int64 * val1, int32 val2);
+
+int64 *int8um(int64 * val);
+int64 *int8pl(int64 * val1, int64 * val2);
+int64 *int8mi(int64 * val1, int64 * val2);
+int64 *int8mul(int64 * val1, int64 * val2);
+int64 *int8div(int64 * val1, int64 * val2);
+
+int64 *int48(int32 val);
+int32 int84(int64 * val);
+
#if FALSE
-int64 *int28(int16 val);
-int16 int82(int64 *val);
+int64 *int28(int16 val);
+int16 int82(int64 * val);
+
#endif
-float64 i8tod(int64 *val);
-int64 *dtoi8(float64 val);
+float64 i8tod(int64 * val);
+int64 *dtoi8(float64 val);
#if USE_LOCAL_CODE
@@ -88,7 +93,7 @@ int64 *dtoi8(float64 val);
/***********************************************************************
**
- ** Routines for 64-bit integers.
+ ** Routines for 64-bit integers.
**
***********************************************************************/
@@ -98,264 +103,289 @@ int64 *dtoi8(float64 val);
/* int8in()
*/
-int64 *int8in(char *str)
+int64 *
+int8in(char *str)
{
- int64 *result = PALLOCTYPE(int64);
+ int64 *result = PALLOCTYPE(int64);
#if HAVE_64BIT_INTS
- if (!PointerIsValid(str))
- elog (WARN,"Bad (null) int8 external representation",NULL);
+ if (!PointerIsValid(str))
+ elog(WARN, "Bad (null) int8 external representation", NULL);
- if (sscanf(str, INT64_FORMAT, result) != 1)
- elog(WARN,"Bad int8 external representation '%s'",str);
+ if (sscanf(str, INT64_FORMAT, result) != 1)
+ elog(WARN, "Bad int8 external representation '%s'", str);
#else
- elog(WARN,"64-bit integers are not supported",NULL);
- result = NULL;
+ elog(WARN, "64-bit integers are not supported", NULL);
+ result = NULL;
#endif
- return(result);
-} /* int8in() */
+ return (result);
+} /* int8in() */
/* int8out()
*/
-char *int8out(int64 *val)
+char *
+int8out(int64 * val)
{
- char *result;
+ char *result;
- int len;
- char buf[MAXINT8LEN+1];
+ int len;
+ char buf[MAXINT8LEN + 1];
#if HAVE_64BIT_INTS
- if (!PointerIsValid(val))
- return(NULL);
+ if (!PointerIsValid(val))
+ return (NULL);
- if ((len = snprintf( buf, MAXINT8LEN, INT64_FORMAT, *val)) < 0)
- elog (WARN,"Unable to format int8",NULL);
+ if ((len = snprintf(buf, MAXINT8LEN, INT64_FORMAT, *val)) < 0)
+ elog(WARN, "Unable to format int8", NULL);
- result = PALLOC(len+1);
+ result = PALLOC(len + 1);
- strcpy(result, buf);
+ strcpy(result, buf);
#else
- elog(WARN,"64-bit integers are not supported",NULL);
- result = NULL;
+ elog(WARN, "64-bit integers are not supported", NULL);
+ result = NULL;
#endif
- return( result);
-} /* int8out() */
+ return (result);
+} /* int8out() */
/*----------------------------------------------------------
- * Relational operators for int8s.
+ * Relational operators for int8s.
*---------------------------------------------------------*/
/* int8relop()
* Is val1 relop val2?
*/
-bool int8eq(int64 *val1, int64 *val2)
+bool
+int8eq(int64 * val1, int64 * val2)
{
- return(*val1 == *val2);
-} /* int8eq() */
+ return (*val1 == *val2);
+} /* int8eq() */
-bool int8ne(int64 *val1, int64 *val2)
+bool
+int8ne(int64 * val1, int64 * val2)
{
- return(*val1 != *val2);
-} /* int8ne() */
+ return (*val1 != *val2);
+} /* int8ne() */
-bool int8lt(int64 *val1, int64 *val2)
+bool
+int8lt(int64 * val1, int64 * val2)
{
- return(*val1 < *val2);
-} /* int8lt() */
+ return (*val1 < *val2);
+} /* int8lt() */
-bool int8gt(int64 *val1, int64 *val2)
+bool
+int8gt(int64 * val1, int64 * val2)
{
- return(*val1 > *val2);
-} /* int8gt() */
+ return (*val1 > *val2);
+} /* int8gt() */
-bool int8le(int64 *val1, int64 *val2)
+bool
+int8le(int64 * val1, int64 * val2)
{
- return(*val1 <= *val2);
-} /* int8le() */
+ return (*val1 <= *val2);
+} /* int8le() */
-bool int8ge(int64 *val1, int64 *val2)
+bool
+int8ge(int64 * val1, int64 * val2)
{
- return(*val1 >= *val2);
-} /* int8ge() */
+ return (*val1 >= *val2);
+} /* int8ge() */
/* int84relop()
* Is 64-bit val1 relop 32-bit val2?
*/
-bool int84eq(int64 *val1, int32 val2)
+bool
+int84eq(int64 * val1, int32 val2)
{
- return(*val1 == val2);
-} /* int84eq() */
+ return (*val1 == val2);
+} /* int84eq() */
-bool int84ne(int64 *val1, int32 val2)
+bool
+int84ne(int64 * val1, int32 val2)
{
- return(*val1 != val2);
-} /* int84ne() */
+ return (*val1 != val2);
+} /* int84ne() */
-bool int84lt(int64 *val1, int32 val2)
+bool
+int84lt(int64 * val1, int32 val2)
{
- return(*val1 < val2);
-} /* int84lt() */
+ return (*val1 < val2);
+} /* int84lt() */
-bool int84gt(int64 *val1, int32 val2)
+bool
+int84gt(int64 * val1, int32 val2)
{
- return(*val1 > val2);
-} /* int84gt() */
+ return (*val1 > val2);
+} /* int84gt() */
-bool int84le(int64 *val1, int32 val2)
+bool
+int84le(int64 * val1, int32 val2)
{
- return(*val1 <= val2);
-} /* int84le() */
+ return (*val1 <= val2);
+} /* int84le() */
-bool int84ge(int64 *val1, int32 val2)
+bool
+int84ge(int64 * val1, int32 val2)
{
- return(*val1 >= val2);
-} /* int84ge() */
+ return (*val1 >= val2);
+} /* int84ge() */
/*----------------------------------------------------------
- * Arithmetic operators on 64-bit integers.
+ * Arithmetic operators on 64-bit integers.
*---------------------------------------------------------*/
-int64 *int8um(int64 *val)
+int64 *
+int8um(int64 * val)
{
- int64 *result = PALLOCTYPE(int64);
+ int64 *result = PALLOCTYPE(int64);
- if (!PointerIsValid(val))
- return NULL;
+ if (!PointerIsValid(val))
+ return NULL;
- *result = (- *val);
+ *result = (-*val);
- return(result);
-} /* int8um() */
+ return (result);
+} /* int8um() */
-int64 *int8pl(int64 *val1, int64 *val2)
+int64 *
+int8pl(int64 * val1, int64 * val2)
{
- int64 *result = PALLOCTYPE(int64);
+ int64 *result = PALLOCTYPE(int64);
- if ((!PointerIsValid(val1)) || (!PointerIsValid(val2)))
- return NULL;
+ if ((!PointerIsValid(val1)) || (!PointerIsValid(val2)))
+ return NULL;
- *result = *val1 + *val2;
+ *result = *val1 + *val2;
- return(result);
-} /* int8pl() */
+ return (result);
+} /* int8pl() */
-int64 *int8mi(int64 *val1, int64 *val2)
+int64 *
+int8mi(int64 * val1, int64 * val2)
{
- int64 *result = PALLOCTYPE(int64);
+ int64 *result = PALLOCTYPE(int64);
- if ((!PointerIsValid(val1)) || (!PointerIsValid(val2)))
- return NULL;
+ if ((!PointerIsValid(val1)) || (!PointerIsValid(val2)))
+ return NULL;
- *result = *val1 - *val2;
+ *result = *val1 - *val2;
- return(result);
-} /* int8mi() */
+ return (result);
+} /* int8mi() */
-int64 *int8mul(int64 *val1, int64 *val2)
+int64 *
+int8mul(int64 * val1, int64 * val2)
{
- int64 *result = PALLOCTYPE(int64);
+ int64 *result = PALLOCTYPE(int64);
- if ((!PointerIsValid(val1)) || (!PointerIsValid(val2)))
- return NULL;
+ if ((!PointerIsValid(val1)) || (!PointerIsValid(val2)))
+ return NULL;
- *result = *val1 * *val2;
+ *result = *val1 * *val2;
- return(result);
-} /* int8mul() */
+ return (result);
+} /* int8mul() */
-int64 *int8div(int64 *val1, int64 *val2)
+int64 *
+int8div(int64 * val1, int64 * val2)
{
- int64 *result = PALLOCTYPE(int64);
+ int64 *result = PALLOCTYPE(int64);
- if ((!PointerIsValid(val1)) || (!PointerIsValid(val2)))
- return NULL;
+ if ((!PointerIsValid(val1)) || (!PointerIsValid(val2)))
+ return NULL;
- *result = *val1 / *val2;
+ *result = *val1 / *val2;
- return(result);
-} /* int8div() */
+ return (result);
+} /* int8div() */
/*----------------------------------------------------------
- * Conversion operators.
+ * Conversion operators.
*---------------------------------------------------------*/
-int64 *int48(int32 val)
+int64 *
+int48(int32 val)
{
- int64 *result = PALLOCTYPE(int64);
+ int64 *result = PALLOCTYPE(int64);
- *result = val;
+ *result = val;
- return(result);
-} /* int48() */
+ return (result);
+} /* int48() */
-int32 int84(int64 *val)
+int32
+int84(int64 * val)
{
- int32 result;
+ int32 result;
- if (!PointerIsValid(val))
- elog(WARN,"Invalid (null) int64, can't convert int8 to int4",NULL);
+ if (!PointerIsValid(val))
+ elog(WARN, "Invalid (null) int64, can't convert int8 to int4", NULL);
- if ((*val < INT_MIN) || (*val > INT_MAX))
- elog(WARN,"int8 conversion to int4 is out of range",NULL);
+ if ((*val < INT_MIN) || (*val > INT_MAX))
+ elog(WARN, "int8 conversion to int4 is out of range", NULL);
- result = *val;
+ result = *val;
- return(result);
-} /* int84() */
+ return (result);
+} /* int84() */
#if FALSE
-int64 *int28(int16 val)
+int64 *
+int28(int16 val)
{
- int64 *result;
+ int64 *result;
- if (!PointerIsValid(result = PALLOCTYPE(int64)))
- elog(WARN,"Memory allocation failed, can't convert int8 to int2",NULL);
+ if (!PointerIsValid(result = PALLOCTYPE(int64)))
+ elog(WARN, "Memory allocation failed, can't convert int8 to int2", NULL);
- *result = val;
+ *result = val;
- return(result);
-} /* int28() */
+ return (result);
+} /* int28() */
-int16 int82(int64 *val)
+int16
+int82(int64 * val)
{
- int16 result;
+ int16 result;
- if (!PointerIsValid(val))
- elog(WARN,"Invalid (null) int8, can't convert to int2",NULL);
+ if (!PointerIsValid(val))
+ elog(WARN, "Invalid (null) int8, can't convert to int2", NULL);
- result = *val;
+ result = *val;
+
+ return (result);
+} /* int82() */
- return(result);
-} /* int82() */
#endif
-float64 i8tod(int64 *val)
+float64
+i8tod(int64 * val)
{
- float64 result = PALLOCTYPE(float64data);
+ float64 result = PALLOCTYPE(float64data);
- *result = *val;
+ *result = *val;
- return(result);
-} /* i8tod() */
+ return (result);
+} /* i8tod() */
-int64 *dtoi8(float64 val)
+int64 *
+dtoi8(float64 val)
{
- int64 *result = PALLOCTYPE(int64);
-
- if ((*val < (-pow(2,64)+1)) || (*val > (pow(2,64)-1)))
- elog(WARN,"Floating point conversion to int64 is out of range",NULL);
+ int64 *result = PALLOCTYPE(int64);
- *result = *val;
+ if ((*val < (-pow(2, 64) + 1)) || (*val > (pow(2, 64) - 1)))
+ elog(WARN, "Floating point conversion to int64 is out of range", NULL);
- return(result);
-} /* dtoi8() */
+ *result = *val;
+ return (result);
+} /* dtoi8() */