From 38bf833935607f28785026c72659c17516a84c2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20P=C3=A9rez-Aradros=20Herce?= Date: Mon, 18 Mar 2024 17:29:04 +0100 Subject: [PATCH 1/2] Add support for macaddr8 type Postgres also has a `macaddr8` type, this PR adds support for it, using the same codec as `macaddr` --- pgtype/macaddr_test.go | 5 +++++ pgtype/pgtype.go | 1 + pgtype/pgtype_default.go | 1 + 3 files changed, 7 insertions(+) diff --git a/pgtype/macaddr_test.go b/pgtype/macaddr_test.go index 84cf970f3..03dd1db52 100644 --- a/pgtype/macaddr_test.go +++ b/pgtype/macaddr_test.go @@ -46,6 +46,11 @@ func TestMacaddrCodec(t *testing.T) { new(string), isExpectedEq("01:23:45:67:89:ab"), }, + { + mustParseMacaddr(t, "01:23:45:67:89:ab:01:08"), + new(string), + isExpectedEq("01:23:45:67:89:ab:01:08"), + }, {nil, new(*net.HardwareAddr), isExpectedEq((*net.HardwareAddr)(nil))}, }) } diff --git a/pgtype/pgtype.go b/pgtype/pgtype.go index 534ef6d16..d23ebc6c9 100644 --- a/pgtype/pgtype.go +++ b/pgtype/pgtype.go @@ -41,6 +41,7 @@ const ( CircleOID = 718 CircleArrayOID = 719 UnknownOID = 705 + Macaddr8OID = 774 MacaddrOID = 829 InetOID = 869 BoolArrayOID = 1000 diff --git a/pgtype/pgtype_default.go b/pgtype/pgtype_default.go index c21ac081e..d56d95bd2 100644 --- a/pgtype/pgtype_default.go +++ b/pgtype/pgtype_default.go @@ -70,6 +70,7 @@ func initDefaultMap() { defaultMap.RegisterType(&Type{Name: "jsonpath", OID: JSONPathOID, Codec: &TextFormatOnlyCodec{TextCodec{}}}) defaultMap.RegisterType(&Type{Name: "line", OID: LineOID, Codec: LineCodec{}}) defaultMap.RegisterType(&Type{Name: "lseg", OID: LsegOID, Codec: LsegCodec{}}) + defaultMap.RegisterType(&Type{Name: "macaddr8", OID: Macaddr8OID, Codec: MacaddrCodec{}}) defaultMap.RegisterType(&Type{Name: "macaddr", OID: MacaddrOID, Codec: MacaddrCodec{}}) defaultMap.RegisterType(&Type{Name: "name", OID: NameOID, Codec: TextCodec{}}) defaultMap.RegisterType(&Type{Name: "numeric", OID: NumericOID, Codec: NumericCodec{}}) From 8009e3ba961a0f748f27f522754614295fbc247c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20P=C3=A9rez-Aradros=20Herce?= Date: Mon, 18 Mar 2024 22:20:55 +0100 Subject: [PATCH 2/2] fix tests --- pgtype/macaddr_test.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pgtype/macaddr_test.go b/pgtype/macaddr_test.go index 03dd1db52..58149c87e 100644 --- a/pgtype/macaddr_test.go +++ b/pgtype/macaddr_test.go @@ -46,6 +46,20 @@ func TestMacaddrCodec(t *testing.T) { new(string), isExpectedEq("01:23:45:67:89:ab"), }, + {nil, new(*net.HardwareAddr), isExpectedEq((*net.HardwareAddr)(nil))}, + }) + + pgxtest.RunValueRoundTripTests(context.Background(), t, defaultConnTestRunner, pgxtest.KnownOIDQueryExecModes, "macaddr8", []pgxtest.ValueRoundTripTest{ + { + mustParseMacaddr(t, "01:23:45:67:89:ab:01:08"), + new(net.HardwareAddr), + isExpectedEqHardwareAddr(mustParseMacaddr(t, "01:23:45:67:89:ab:01:08")), + }, + { + "01:23:45:67:89:ab:01:08", + new(net.HardwareAddr), + isExpectedEqHardwareAddr(mustParseMacaddr(t, "01:23:45:67:89:ab:01:08")), + }, { mustParseMacaddr(t, "01:23:45:67:89:ab:01:08"), new(string),