summaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/name.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/adt/name.c')
-rw-r--r--src/backend/utils/adt/name.c300
1 files changed, 0 insertions, 300 deletions
diff --git a/src/backend/utils/adt/name.c b/src/backend/utils/adt/name.c
deleted file mode 100644
index de3f04a7df0..00000000000
--- a/src/backend/utils/adt/name.c
+++ /dev/null
@@ -1,300 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * name.c
- * Functions for the built-in type "name".
- * name replaces char16 and is carefully implemented so that it
- * is a string of length NAMEDATALEN. DO NOT use hard-coded constants anywhere
- * always use NAMEDATALEN as the symbolic constant! - jolly 8/21/95
- *
- *
- * 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/name.c,v 1.39 2002/06/20 20:29:37 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
-#include "postgres.h"
-
-#include "catalog/namespace.h"
-#include "miscadmin.h"
-#include "utils/array.h"
-#include "utils/builtins.h"
-#include "utils/lsyscache.h"
-#include "mb/pg_wchar.h"
-
-/*****************************************************************************
- * USER I/O ROUTINES (none) *
- *****************************************************************************/
-
-
-/*
- * namein - converts "..." to internal representation
- *
- * Note:
- * [Old] Currently if strlen(s) < NAMEDATALEN, the extra chars are nulls
- * Now, always NULL terminated
- */
-Datum
-namein(PG_FUNCTION_ARGS)
-{
- char *s = PG_GETARG_CSTRING(0);
- NameData *result;
- int len;
- char *ermsg;
-
- /* veryfy encoding */
- len = strlen(s);
- if ((ermsg = pg_verifymbstr(s, len)))
- elog(ERROR, "%s", ermsg);
-
- len = pg_mbcliplen(s, len, NAMEDATALEN-1);
-
- result = (NameData *) palloc(NAMEDATALEN);
- /* always keep it null-padded */
- memset(result, 0, NAMEDATALEN);
- memcpy(NameStr(*result), s, len);
-
- PG_RETURN_NAME(result);
-}
-
-/*
- * nameout - converts internal representation to "..."
- */
-Datum
-nameout(PG_FUNCTION_ARGS)
-{
- Name s = PG_GETARG_NAME(0);
-
- PG_RETURN_CSTRING(pstrdup(NameStr(*s)));
-}
-
-
-/*****************************************************************************
- * PUBLIC ROUTINES *
- *****************************************************************************/
-
-/*
- * nameeq - returns 1 iff arguments are equal
- * namene - returns 1 iff arguments are not equal
- *
- * BUGS:
- * Assumes that "xy\0\0a" should be equal to "xy\0b".
- * If not, can do the comparison backwards for efficiency.
- *
- * namelt - returns 1 iff a < b
- * namele - returns 1 iff a <= b
- * namegt - returns 1 iff a < b
- * namege - returns 1 iff a <= b
- *
- */
-Datum
-nameeq(PG_FUNCTION_ARGS)
-{
- Name arg1 = PG_GETARG_NAME(0);
- Name arg2 = PG_GETARG_NAME(1);
-
- PG_RETURN_BOOL(strncmp(NameStr(*arg1), NameStr(*arg2), NAMEDATALEN) == 0);
-}
-
-Datum
-namene(PG_FUNCTION_ARGS)
-{
- Name arg1 = PG_GETARG_NAME(0);
- Name arg2 = PG_GETARG_NAME(1);
-
- PG_RETURN_BOOL(strncmp(NameStr(*arg1), NameStr(*arg2), NAMEDATALEN) != 0);
-}
-
-Datum
-namelt(PG_FUNCTION_ARGS)
-{
- Name arg1 = PG_GETARG_NAME(0);
- Name arg2 = PG_GETARG_NAME(1);
-
- PG_RETURN_BOOL(strncmp(NameStr(*arg1), NameStr(*arg2), NAMEDATALEN) < 0);
-}
-
-Datum
-namele(PG_FUNCTION_ARGS)
-{
- Name arg1 = PG_GETARG_NAME(0);
- Name arg2 = PG_GETARG_NAME(1);
-
- PG_RETURN_BOOL(strncmp(NameStr(*arg1), NameStr(*arg2), NAMEDATALEN) <= 0);
-}
-
-Datum
-namegt(PG_FUNCTION_ARGS)
-{
- Name arg1 = PG_GETARG_NAME(0);
- Name arg2 = PG_GETARG_NAME(1);
-
- PG_RETURN_BOOL(strncmp(NameStr(*arg1), NameStr(*arg2), NAMEDATALEN) > 0);
-}
-
-Datum
-namege(PG_FUNCTION_ARGS)
-{
- Name arg1 = PG_GETARG_NAME(0);
- Name arg2 = PG_GETARG_NAME(1);
-
- PG_RETURN_BOOL(strncmp(NameStr(*arg1), NameStr(*arg2), NAMEDATALEN) >= 0);
-}
-
-
-/* (see char.c for comparison/operation routines) */
-
-int
-namecpy(Name n1, Name n2)
-{
- if (!n1 || !n2)
- return -1;
- strncpy(NameStr(*n1), NameStr(*n2), NAMEDATALEN);
- return 0;
-}
-
-#ifdef NOT_USED
-int
-namecat(Name n1, Name n2)
-{
- return namestrcat(n1, NameStr(*n2)); /* n2 can't be any longer
- * than n1 */
-}
-#endif
-
-#ifdef NOT_USED
-int
-namecmp(Name n1, Name n2)
-{
- return strncmp(NameStr(*n1), NameStr(*n2), NAMEDATALEN);
-}
-#endif
-
-int
-namestrcpy(Name name, const char *str)
-{
- if (!name || !str)
- return -1;
- StrNCpy(NameStr(*name), str, NAMEDATALEN);
- return 0;
-}
-
-#ifdef NOT_USED
-int
-namestrcat(Name name, const char *str)
-{
- int i;
- char *p,
- *q;
-
- if (!name || !str)
- return -1;
- for (i = 0, p = NameStr(*name); i < NAMEDATALEN && *p; ++i, ++p)
- ;
- for (q = str; i < NAMEDATALEN; ++i, ++p, ++q)
- {
- *p = *q;
- if (!*q)
- break;
- }
- return 0;
-}
-#endif
-
-int
-namestrcmp(Name name, const char *str)
-{
- if (!name && !str)
- return 0;
- if (!name)
- return -1; /* NULL < anything */
- if (!str)
- return 1; /* NULL < anything */
- return strncmp(NameStr(*name), str, NAMEDATALEN);
-}
-
-
-/*
- * SQL-functions CURRENT_USER, SESSION_USER
- */
-Datum
-current_user(PG_FUNCTION_ARGS)
-{
- PG_RETURN_DATUM(DirectFunctionCall1(namein, CStringGetDatum(GetUserNameFromId(GetUserId()))));
-}
-
-Datum
-session_user(PG_FUNCTION_ARGS)
-{
- PG_RETURN_DATUM(DirectFunctionCall1(namein, CStringGetDatum(GetUserNameFromId(GetSessionUserId()))));
-}
-
-
-/*
- * SQL-functions CURRENT_SCHEMA, CURRENT_SCHEMAS
- */
-Datum
-current_schema(PG_FUNCTION_ARGS)
-{
- List *search_path = fetch_search_path(false);
- char *nspname;
-
- if (search_path == NIL)
- PG_RETURN_NULL();
- nspname = get_namespace_name((Oid) lfirsti(search_path));
- PG_RETURN_DATUM(DirectFunctionCall1(namein, CStringGetDatum(nspname)));
-}
-
-Datum
-current_schemas(PG_FUNCTION_ARGS)
-{
- List *search_path = fetch_search_path(PG_GETARG_BOOL(0));
- int nnames = length(search_path);
- Datum *names;
- int i;
- ArrayType *array;
-
- /* +1 here is just to avoid palloc(0) error */
- names = (Datum *) palloc((nnames + 1) * sizeof(Datum));
- i = 0;
- while (search_path)
- {
- char *nspname;
-
- nspname = get_namespace_name((Oid) lfirsti(search_path));
- names[i] = DirectFunctionCall1(namein, CStringGetDatum(nspname));
- i++;
- search_path = lnext(search_path);
- }
-
- array = construct_array(names, nnames,
- false, /* Name is not by-val */
- NAMEDATALEN, /* sizeof(Name) */
- 'i'); /* alignment of Name */
-
- PG_RETURN_POINTER(array);
-}
-
-
-/*****************************************************************************
- * PRIVATE ROUTINES *
- *****************************************************************************/
-
-#ifdef NOT_USED
-uint32
-NameComputeLength(Name name)
-{
- char *charP;
- int length;
-
- for (length = 0, charP = NameStr(*name);
- length < NAMEDATALEN && *charP != '\0';
- length++, charP++)
- ;
- return (uint32) length;
-}
-
-#endif