]> granicus.if.org Git - postgresql/blobdiff - src/backend/utils/adt/char.c
Add support for EUI-64 MAC addresses as macaddr8
[postgresql] / src / backend / utils / adt / char.c
index 99191e1d90c2f8aed51b37cb7ca5631f573b426e..1b849e870354d9ca6c54f9175cd1b33b20ab6857 100644 (file)
@@ -4,7 +4,7 @@
  *       Functions for the built-in type "char" (not to be confused with
  *       bpchar, which is the SQL CHAR(n) type).
  *
- * Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
@@ -59,7 +59,7 @@ charout(PG_FUNCTION_ARGS)
  *             charrecv                        - converts external binary format to char
  *
  * The external representation is one byte, with no character set
- * conversion. This is somewhat dubious, perhaps, but in many
+ * conversion.  This is somewhat dubious, perhaps, but in many
  * cases people use char for a 1-byte binary type.
  */
 Datum
@@ -175,7 +175,7 @@ i4tochar(PG_FUNCTION_ARGS)
 Datum
 text_char(PG_FUNCTION_ARGS)
 {
-       text       *arg1 = PG_GETARG_TEXT_P(0);
+       text       *arg1 = PG_GETARG_TEXT_PP(0);
        char            result;
 
        /*
@@ -183,8 +183,8 @@ text_char(PG_FUNCTION_ARGS)
         * If the input is longer than one character, the excess data is silently
         * discarded.
         */
-       if (VARSIZE(arg1) > VARHDRSZ)
-               result = *(VARDATA(arg1));
+       if (VARSIZE_ANY_EXHDR(arg1) > 0)
+               result = *(VARDATA_ANY(arg1));
        else
                result = '\0';