diff --git a/pgtype/macaddr_test.go b/pgtype/macaddr_test.go
index 84cf970f..03dd1db5 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 534ef6d1..d23ebc6c 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 c21ac081..d56d95bd 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{}})