postgres.git / summary / log / commit / refs
commit 3944238aabf29bf96f3fc2d332f6e80746553246
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: Tue Nov 08 20:39:43 2011 +0000
First released in: 9.2.0, 8.3.17, 8.4.10, 9.0.6, 9.1.2
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.
src/backend/utils/adt/network.c | 2 +-
src/include/utils/inet.h | 4 +++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/backend/utils/adt/network.c b/src/backend/utils/adt/network.c
index 9a45bcbd290..3c1cc46a7ec 100644
--- a/src/backend/utils/adt/network.c
+++ b/src/backend/utils/adt/network.c
@@ -929,7 +929,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 5b7b619dc7e..80b902f30e6 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))
[parent: c34088fdeb97]