aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/varchar.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/adt/varchar.c')
-rw-r--r--src/backend/utils/adt/varchar.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c
index 8a06e6f4fd0..0aa8133b131 100644
--- a/src/backend/utils/adt/varchar.c
+++ b/src/backend/utils/adt/varchar.c
@@ -7,14 +7,16 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.43 1999/02/13 23:19:35 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.44 1999/05/03 19:10:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
#include <stdio.h> /* for sprintf() */
#include <string.h>
#include "postgres.h"
+#include "utils/array.h"
#include "utils/builtins.h"
+#include "catalog/pg_type.h"
#ifdef CYR_RECODE
char *convertstr(char *, int, int);
@@ -200,6 +202,16 @@ bpchar(char *s, int32 len)
return result;
} /* bpchar() */
+/* _bpchar()
+ * Converts an array of char() type to a specific internal length.
+ * len is the length specified in () plus VARHDRSZ bytes.
+ */
+ArrayType *
+_bpchar(ArrayType *v, int32 len)
+{
+ return array_map(v, BPCHAROID, bpchar, BPCHAROID, 1, len);
+}
+
/* bpchar_char()
* Convert bpchar(1) to char.
@@ -396,6 +408,16 @@ varchar(char *s, int32 slen)
return result;
} /* varchar() */
+/* _varchar()
+ * Converts an array of varchar() type to the specified size.
+ * len is the length specified in () plus VARHDRSZ bytes.
+ */
+ArrayType *
+_varchar(ArrayType *v, int32 len)
+{
+ return array_map(v, VARCHAROID, varchar, VARCHAROID, 1, len);
+}
+
/*****************************************************************************
* Comparison Functions used for bpchar