summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeikki Linnakangas2011-11-08 20:39:43 +0000
committerHeikki Linnakangas2011-11-08 20:46:29 +0000
commitb1c701c90922d828a9fa4335dd36ab2588bad3a6 (patch)
tree622e5c4b87e88b592d675531613180b3137ce5d1
parent97c3d4853b3b095e3dadf80156a89b231f51e784 (diff)
Make DatumGetInetP() unpack inet datums with a 1-byte header, and add
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.
-rw-r--r--src/backend/utils/adt/network.c2
-rw-r--r--src/include/utils/inet.h4
2 files changed, 4 insertions, 2 deletions
diff --git a/src/backend/utils/adt/network.c b/src/backend/utils/adt/network.c
index 80e5915b3e5..fcd1c680803 100644
--- a/src/backend/utils/adt/network.c
+++ b/src/backend/utils/adt/network.c
@@ -907,7 +907,7 @@ convert_network_to_scalar(Datum value, Oid typid)
case INETOID:
case CIDROID:
{
- inet *ip = DatumGetInetP(value);
+ inet *ip = DatumGetInetPP(value);
int len;
double res;
int i;
diff --git a/src/include/utils/inet.h b/src/include/utils/inet.h
index 9626a2de81f..fa217b66116 100644
--- a/src/include/utils/inet.h
+++ b/src/include/utils/inet.h
@@ -70,9 +70,11 @@ typedef struct macaddr
/*
* 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))