a new macro, DatumGetInetPP(), that does not. This brings these macros
in line with other DatumGet*P() macros.
Backpatch to 8.3, where 1-byte header varlenas were introduced.
        case INETOID:
        case CIDROID:
            {
-               inet       *ip = DatumGetInetP(value);
+               inet       *ip = DatumGetInetPP(value);
                int         len;
                double      res;
                int         i;
 
 /*
  * fmgr interface macros
  */
-#define DatumGetInetP(X)   ((inet *) PG_DETOAST_DATUM_PACKED(X))
+#define DatumGetInetP(X)   ((inet *) PG_DETOAST_DATUM(X))
+#define DatumGetInetPP(X)  ((inet *) PG_DETOAST_DATUM_PACKED(X))
 #define InetPGetDatum(X)   PointerGetDatum(X)
 #define PG_GETARG_INET_P(n) DatumGetInetP(PG_GETARG_DATUM(n))
+#define PG_GETARG_INET_PP(n) DatumGetInetP(PG_GETARG_DATUM_PACKED(n))
 #define PG_RETURN_INET_P(x) return InetPGetDatum(x)
 /* macaddr is a fixed-length pass-by-reference datatype */
 #define DatumGetMacaddrP(X)    ((macaddr *) DatumGetPointer(X))