Add routines to convert between int8 and text/varchar types.

Change #if FALSE to #if NOT_USED to avoid port problems.
Fix up pg_indent weirdness with function argument declarations.
This commit is contained in:
Thomas G. Lockhart 1999-02-13 04:22:34 +00:00
parent 02e85e7e5f
commit 910fe5891e
1 changed files with 89 additions and 44 deletions

View File

@ -70,7 +70,7 @@ int8in(char *str)
/* int8out() /* int8out()
*/ */
char * char *
int8out(int64 * val) int8out(int64 *val)
{ {
char *result; char *result;
@ -99,37 +99,37 @@ int8out(int64 * val)
* Is val1 relop val2? * Is val1 relop val2?
*/ */
bool bool
int8eq(int64 * val1, int64 * val2) int8eq(int64 *val1, int64 *val2)
{ {
return *val1 == *val2; return *val1 == *val2;
} /* int8eq() */ } /* int8eq() */
bool bool
int8ne(int64 * val1, int64 * val2) int8ne(int64 *val1, int64 *val2)
{ {
return *val1 != *val2; return *val1 != *val2;
} /* int8ne() */ } /* int8ne() */
bool bool
int8lt(int64 * val1, int64 * val2) int8lt(int64 *val1, int64 *val2)
{ {
return *val1 < *val2; return *val1 < *val2;
} /* int8lt() */ } /* int8lt() */
bool bool
int8gt(int64 * val1, int64 * val2) int8gt(int64 *val1, int64 *val2)
{ {
return *val1 > *val2; return *val1 > *val2;
} /* int8gt() */ } /* int8gt() */
bool bool
int8le(int64 * val1, int64 * val2) int8le(int64 *val1, int64 *val2)
{ {
return *val1 <= *val2; return *val1 <= *val2;
} /* int8le() */ } /* int8le() */
bool bool
int8ge(int64 * val1, int64 * val2) int8ge(int64 *val1, int64 *val2)
{ {
return *val1 >= *val2; return *val1 >= *val2;
} /* int8ge() */ } /* int8ge() */
@ -139,37 +139,37 @@ int8ge(int64 * val1, int64 * val2)
* Is 64-bit val1 relop 32-bit val2? * Is 64-bit val1 relop 32-bit val2?
*/ */
bool bool
int84eq(int64 * val1, int32 val2) int84eq(int64 *val1, int32 val2)
{ {
return *val1 == val2; return *val1 == val2;
} /* int84eq() */ } /* int84eq() */
bool bool
int84ne(int64 * val1, int32 val2) int84ne(int64 *val1, int32 val2)
{ {
return *val1 != val2; return *val1 != val2;
} /* int84ne() */ } /* int84ne() */
bool bool
int84lt(int64 * val1, int32 val2) int84lt(int64 *val1, int32 val2)
{ {
return *val1 < val2; return *val1 < val2;
} /* int84lt() */ } /* int84lt() */
bool bool
int84gt(int64 * val1, int32 val2) int84gt(int64 *val1, int32 val2)
{ {
return *val1 > val2; return *val1 > val2;
} /* int84gt() */ } /* int84gt() */
bool bool
int84le(int64 * val1, int32 val2) int84le(int64 *val1, int32 val2)
{ {
return *val1 <= val2; return *val1 <= val2;
} /* int84le() */ } /* int84le() */
bool bool
int84ge(int64 * val1, int32 val2) int84ge(int64 *val1, int32 val2)
{ {
return *val1 >= val2; return *val1 >= val2;
} /* int84ge() */ } /* int84ge() */
@ -179,37 +179,37 @@ int84ge(int64 * val1, int32 val2)
* Is 32-bit val1 relop 64-bit val2? * Is 32-bit val1 relop 64-bit val2?
*/ */
bool bool
int48eq(int32 val1, int64 * val2) int48eq(int32 val1, int64 *val2)
{ {
return val1 == *val2; return val1 == *val2;
} /* int48eq() */ } /* int48eq() */
bool bool
int48ne(int32 val1, int64 * val2) int48ne(int32 val1, int64 *val2)
{ {
return val1 != *val2; return val1 != *val2;
} /* int48ne() */ } /* int48ne() */
bool bool
int48lt(int32 val1, int64 * val2) int48lt(int32 val1, int64 *val2)
{ {
return val1 < *val2; return val1 < *val2;
} /* int48lt() */ } /* int48lt() */
bool bool
int48gt(int32 val1, int64 * val2) int48gt(int32 val1, int64 *val2)
{ {
return val1 > *val2; return val1 > *val2;
} /* int48gt() */ } /* int48gt() */
bool bool
int48le(int32 val1, int64 * val2) int48le(int32 val1, int64 *val2)
{ {
return val1 <= *val2; return val1 <= *val2;
} /* int48le() */ } /* int48le() */
bool bool
int48ge(int32 val1, int64 * val2) int48ge(int32 val1, int64 *val2)
{ {
return val1 >= *val2; return val1 >= *val2;
} /* int48ge() */ } /* int48ge() */
@ -220,7 +220,7 @@ int48ge(int32 val1, int64 * val2)
*---------------------------------------------------------*/ *---------------------------------------------------------*/
int64 * int64 *
int8um(int64 * val) int8um(int64 *val)
{ {
int64 temp = 0; int64 temp = 0;
int64 *result = palloc(sizeof(int64)); int64 *result = palloc(sizeof(int64));
@ -228,7 +228,7 @@ int8um(int64 * val)
if (!PointerIsValid(val)) if (!PointerIsValid(val))
return NULL; return NULL;
#if FALSE #if NOT_USED
*result = temp - (*val); *result = temp - (*val);
#else #else
result = int8mi(&temp, val); result = int8mi(&temp, val);
@ -239,7 +239,7 @@ int8um(int64 * val)
int64 * int64 *
int8pl(int64 * val1, int64 * val2) int8pl(int64 *val1, int64 *val2)
{ {
int64 *result = palloc(sizeof(int64)); int64 *result = palloc(sizeof(int64));
@ -252,7 +252,7 @@ int8pl(int64 * val1, int64 * val2)
} /* int8pl() */ } /* int8pl() */
int64 * int64 *
int8mi(int64 * val1, int64 * val2) int8mi(int64 *val1, int64 *val2)
{ {
int64 *result = palloc(sizeof(int64)); int64 *result = palloc(sizeof(int64));
@ -265,7 +265,7 @@ int8mi(int64 * val1, int64 * val2)
} /* int8mi() */ } /* int8mi() */
int64 * int64 *
int8mul(int64 * val1, int64 * val2) int8mul(int64 *val1, int64 *val2)
{ {
int64 *result = palloc(sizeof(int64)); int64 *result = palloc(sizeof(int64));
@ -278,7 +278,7 @@ int8mul(int64 * val1, int64 * val2)
} /* int8mul() */ } /* int8mul() */
int64 * int64 *
int8div(int64 * val1, int64 * val2) int8div(int64 *val1, int64 *val2)
{ {
int64 *result = palloc(sizeof(int64)); int64 *result = palloc(sizeof(int64));
@ -291,9 +291,9 @@ int8div(int64 * val1, int64 * val2)
} /* int8div() */ } /* int8div() */
int64 * int64 *
int8larger(int64 * val1, int64 * val2) int8larger(int64 *val1, int64 *val2)
{ {
#if FALSE #if NOT_USED
int64 *result = palloc(sizeof(int64)); int64 *result = palloc(sizeof(int64));
#endif #endif
@ -301,7 +301,7 @@ int8larger(int64 * val1, int64 * val2)
if ((!PointerIsValid(val1)) || (!PointerIsValid(val2))) if ((!PointerIsValid(val1)) || (!PointerIsValid(val2)))
return NULL; return NULL;
#if FALSE #if NOT_USED
*result = ((*val1 > *val2) ? *val1 : *val2); *result = ((*val1 > *val2) ? *val1 : *val2);
return result; return result;
@ -310,9 +310,9 @@ int8larger(int64 * val1, int64 * val2)
} /* int8larger() */ } /* int8larger() */
int64 * int64 *
int8smaller(int64 * val1, int64 * val2) int8smaller(int64 *val1, int64 *val2)
{ {
#if FALSE #if NOT_USED
int64 *result = palloc(sizeof(int64)); int64 *result = palloc(sizeof(int64));
#endif #endif
@ -320,7 +320,7 @@ int8smaller(int64 * val1, int64 * val2)
if ((!PointerIsValid(val1)) || (!PointerIsValid(val2))) if ((!PointerIsValid(val1)) || (!PointerIsValid(val2)))
return NULL; return NULL;
#if FALSE #if NOT_USED
*result = ((*val1 < *val2) ? *val1 : *val2); *result = ((*val1 < *val2) ? *val1 : *val2);
return result; return result;
@ -330,7 +330,7 @@ int8smaller(int64 * val1, int64 * val2)
int64 * int64 *
int84pl(int64 * val1, int32 val2) int84pl(int64 *val1, int32 val2)
{ {
int64 *result = palloc(sizeof(int64)); int64 *result = palloc(sizeof(int64));
@ -343,7 +343,7 @@ int84pl(int64 * val1, int32 val2)
} /* int84pl() */ } /* int84pl() */
int64 * int64 *
int84mi(int64 * val1, int32 val2) int84mi(int64 *val1, int32 val2)
{ {
int64 *result = palloc(sizeof(int64)); int64 *result = palloc(sizeof(int64));
@ -356,7 +356,7 @@ int84mi(int64 * val1, int32 val2)
} /* int84mi() */ } /* int84mi() */
int64 * int64 *
int84mul(int64 * val1, int32 val2) int84mul(int64 *val1, int32 val2)
{ {
int64 *result = palloc(sizeof(int64)); int64 *result = palloc(sizeof(int64));
@ -369,7 +369,7 @@ int84mul(int64 * val1, int32 val2)
} /* int84mul() */ } /* int84mul() */
int64 * int64 *
int84div(int64 * val1, int32 val2) int84div(int64 *val1, int32 val2)
{ {
int64 *result = palloc(sizeof(int64)); int64 *result = palloc(sizeof(int64));
@ -383,7 +383,7 @@ int84div(int64 * val1, int32 val2)
int64 * int64 *
int48pl(int32 val1, int64 * val2) int48pl(int32 val1, int64 *val2)
{ {
int64 *result = palloc(sizeof(int64)); int64 *result = palloc(sizeof(int64));
@ -396,7 +396,7 @@ int48pl(int32 val1, int64 * val2)
} /* int48pl() */ } /* int48pl() */
int64 * int64 *
int48mi(int32 val1, int64 * val2) int48mi(int32 val1, int64 *val2)
{ {
int64 *result = palloc(sizeof(int64)); int64 *result = palloc(sizeof(int64));
@ -409,7 +409,7 @@ int48mi(int32 val1, int64 * val2)
} /* int48mi() */ } /* int48mi() */
int64 * int64 *
int48mul(int32 val1, int64 * val2) int48mul(int32 val1, int64 *val2)
{ {
int64 *result = palloc(sizeof(int64)); int64 *result = palloc(sizeof(int64));
@ -422,7 +422,7 @@ int48mul(int32 val1, int64 * val2)
} /* int48mul() */ } /* int48mul() */
int64 * int64 *
int48div(int32 val1, int64 * val2) int48div(int32 val1, int64 *val2)
{ {
int64 *result = palloc(sizeof(int64)); int64 *result = palloc(sizeof(int64));
@ -450,14 +450,14 @@ int48(int32 val)
} /* int48() */ } /* int48() */
int32 int32
int84(int64 * val) int84(int64 *val)
{ {
int32 result; int32 result;
if (!PointerIsValid(val)) if (!PointerIsValid(val))
elog(ERROR, "Invalid (null) int64, can't convert int8 to int4", NULL); elog(ERROR, "Invalid (null) int64, can't convert int8 to int4", NULL);
#if FALSE #if NOT_USED
/* /*
* Hmm. This conditional always tests true on my i686/linux box. It's * Hmm. This conditional always tests true on my i686/linux box. It's
@ -474,7 +474,7 @@ int84(int64 * val)
return result; return result;
} /* int84() */ } /* int84() */
#if FALSE #if NOT_USED
int64 * int64 *
int28 (int16 val) int28 (int16 val)
{ {
@ -488,7 +488,7 @@ int28 (int16 val)
} /* int28() */ } /* int28() */
int16 int16
int82(int64 * val) int82(int64 *val)
{ {
int16 result; int16 result;
@ -506,7 +506,7 @@ int82(int64 * val)
#endif #endif
float64 float64
i8tod(int64 * val) i8tod(int64 *val)
{ {
float64 result = palloc(sizeof(float64data)); float64 result = palloc(sizeof(float64data));
@ -537,3 +537,48 @@ dtoi8(float64 val)
return result; return result;
} /* dtoi8() */ } /* dtoi8() */
/* text_int8()
*/
int64 *
text_int8(text *str)
{
int len;
char *s;
if (!PointerIsValid(str))
elog(ERROR, "Bad (null) int8 external representation", NULL);
len = (VARSIZE(str) - VARHDRSZ);
s = palloc(len+1);
memmove(s, VARDATA(str), len);
*(s+len) = '\0';
return int8in(s);
} /* text_int8() */
/* int8_text()
*/
text *
int8_text(int64 *val)
{
text *result;
int len;
char *s;
if (!PointerIsValid(val))
return NULL;
s = int8out(val);
len = strlen(s);
result = palloc(VARHDRSZ + len);
VARSIZE(result) = len + VARHDRSZ;
memmove(VARDATA(result), s, len);
return result;
} /* int8out() */