summaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/char.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/adt/char.c')
-rw-r--r--src/backend/utils/adt/char.c243
1 files changed, 0 insertions, 243 deletions
diff --git a/src/backend/utils/adt/char.c b/src/backend/utils/adt/char.c
deleted file mode 100644
index c31995fdf06..00000000000
--- a/src/backend/utils/adt/char.c
+++ /dev/null
@@ -1,243 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * char.c
- * Functions for the built-in type "char".
- * Functions for the built-in type "cid" (what's that doing here?)
- *
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- *
- * IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/char.c,v 1.33 2002/06/20 20:29:36 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
-#include "postgres.h"
-
-#include "utils/builtins.h"
-
-/*****************************************************************************
- * USER I/O ROUTINES *
- *****************************************************************************/
-
-/*
- * charin - converts "x" to 'x'
- *
- * Note that an empty input string will implicitly be converted to \0.
- */
-Datum
-charin(PG_FUNCTION_ARGS)
-{
- char *ch = PG_GETARG_CSTRING(0);
-
- PG_RETURN_CHAR(ch[0]);
-}
-
-/*
- * charout - converts 'x' to "x"
- *
- * Note that if the char value is \0, the resulting string will appear
- * to be empty (null-terminated after zero characters). So this is the
- * inverse of the charin() function for such data.
- */
-Datum
-charout(PG_FUNCTION_ARGS)
-{
- char ch = PG_GETARG_CHAR(0);
- char *result = (char *) palloc(2);
-
- result[0] = ch;
- result[1] = '\0';
- PG_RETURN_CSTRING(result);
-}
-
-/*****************************************************************************
- * PUBLIC ROUTINES *
- *****************************************************************************/
-
-/*
- * NOTE: comparisons are done as though char is unsigned (uint8).
- * Arithmetic is done as though char is signed (int8).
- *
- * You wanted consistency?
- */
-
-Datum
-chareq(PG_FUNCTION_ARGS)
-{
- char arg1 = PG_GETARG_CHAR(0);
- char arg2 = PG_GETARG_CHAR(1);
-
- PG_RETURN_BOOL(arg1 == arg2);
-}
-
-Datum
-charne(PG_FUNCTION_ARGS)
-{
- char arg1 = PG_GETARG_CHAR(0);
- char arg2 = PG_GETARG_CHAR(1);
-
- PG_RETURN_BOOL(arg1 != arg2);
-}
-
-Datum
-charlt(PG_FUNCTION_ARGS)
-{
- char arg1 = PG_GETARG_CHAR(0);
- char arg2 = PG_GETARG_CHAR(1);
-
- PG_RETURN_BOOL((uint8) arg1 < (uint8) arg2);
-}
-
-Datum
-charle(PG_FUNCTION_ARGS)
-{
- char arg1 = PG_GETARG_CHAR(0);
- char arg2 = PG_GETARG_CHAR(1);
-
- PG_RETURN_BOOL((uint8) arg1 <= (uint8) arg2);
-}
-
-Datum
-chargt(PG_FUNCTION_ARGS)
-{
- char arg1 = PG_GETARG_CHAR(0);
- char arg2 = PG_GETARG_CHAR(1);
-
- PG_RETURN_BOOL((uint8) arg1 > (uint8) arg2);
-}
-
-Datum
-charge(PG_FUNCTION_ARGS)
-{
- char arg1 = PG_GETARG_CHAR(0);
- char arg2 = PG_GETARG_CHAR(1);
-
- PG_RETURN_BOOL((uint8) arg1 >= (uint8) arg2);
-}
-
-Datum
-charpl(PG_FUNCTION_ARGS)
-{
- char arg1 = PG_GETARG_CHAR(0);
- char arg2 = PG_GETARG_CHAR(1);
-
- PG_RETURN_CHAR((int8) arg1 + (int8) arg2);
-}
-
-Datum
-charmi(PG_FUNCTION_ARGS)
-{
- char arg1 = PG_GETARG_CHAR(0);
- char arg2 = PG_GETARG_CHAR(1);
-
- PG_RETURN_CHAR((int8) arg1 - (int8) arg2);
-}
-
-Datum
-charmul(PG_FUNCTION_ARGS)
-{
- char arg1 = PG_GETARG_CHAR(0);
- char arg2 = PG_GETARG_CHAR(1);
-
- PG_RETURN_CHAR((int8) arg1 * (int8) arg2);
-}
-
-Datum
-chardiv(PG_FUNCTION_ARGS)
-{
- char arg1 = PG_GETARG_CHAR(0);
- char arg2 = PG_GETARG_CHAR(1);
-
- PG_RETURN_CHAR((int8) arg1 / (int8) arg2);
-}
-
-
-Datum
-text_char(PG_FUNCTION_ARGS)
-{
- text *arg1 = PG_GETARG_TEXT_P(0);
- char result;
-
- /*
- * An empty input string is converted to \0 (for consistency with
- * charin). If the input is longer than one character, the excess data
- * is silently discarded.
- */
- if (VARSIZE(arg1) > VARHDRSZ)
- result = *(VARDATA(arg1));
- else
- result = '\0';
-
- PG_RETURN_CHAR(result);
-}
-
-Datum
-char_text(PG_FUNCTION_ARGS)
-{
- char arg1 = PG_GETARG_CHAR(0);
- text *result = palloc(VARHDRSZ + 1);
-
- /*
- * Convert \0 to an empty string, for consistency with charout (and
- * because the text stuff doesn't like embedded nulls all that well).
- */
- if (arg1 != '\0')
- {
- VARATT_SIZEP(result) = VARHDRSZ + 1;
- *(VARDATA(result)) = arg1;
- }
- else
- VARATT_SIZEP(result) = VARHDRSZ;
-
- PG_RETURN_TEXT_P(result);
-}
-
-
-/*****************************************************************************
- * USER I/O ROUTINES *
- *****************************************************************************/
-
-/*
- * cidin - converts CommandId to internal representation.
- */
-Datum
-cidin(PG_FUNCTION_ARGS)
-{
- char *s = PG_GETARG_CSTRING(0);
- CommandId c;
-
- c = atoi(s);
-
- /* XXX assume that CommandId is 32 bits... */
- PG_RETURN_INT32((int32) c);
-}
-
-/*
- * cidout - converts a cid to external representation.
- */
-Datum
-cidout(PG_FUNCTION_ARGS)
-{
- /* XXX assume that CommandId is 32 bits... */
- CommandId c = PG_GETARG_INT32(0);
- char *result = (char *) palloc(16);
-
- sprintf(result, "%u", (unsigned int) c);
- PG_RETURN_CSTRING(result);
-}
-
-/*****************************************************************************
- * PUBLIC ROUTINES *
- *****************************************************************************/
-
-Datum
-cideq(PG_FUNCTION_ARGS)
-{
- /* XXX assume that CommandId is 32 bits... */
- CommandId arg1 = PG_GETARG_INT32(0);
- CommandId arg2 = PG_GETARG_INT32(1);
-
- PG_RETURN_BOOL(arg1 == arg2);
-}