* Shay Rojansky (r...@roji.org) wrote: > > > > > As I said before, Npgsql for one loads data types by name, not by OID. > >>> > So this would definitely cause breakage. > >>> > >>> Why would that cause breakage? > >> > >> Well, the first thing Npgsql does when it connects to a new database, is > >> to query pg_type. The type names are used to associate entries with type > >> handlers, avoiding the hard-coding of OIDs in code. So if the type name > >> "macaddr" suddenly has a new meaning and its wire representation is > >> different breakage will occur. It is possible to release new versions of > >> Npgsql which will look at the PostgreSQL version and say "we know that in > >> PostgreSQL < 10 macaddr means this, but in >= 10 it means that". But that > >> doesn't seem like a good solution, plus old versions of Npgsql from before > >> this change won't work. > > > > The new datatype that is going to replace the existing one works with both > > 6 and 8 byte > > MAC address and stores it a variable length format. This doesn't change > > the wire format. > > I don't see any problem with the existing applications. The new datatype > > can recv and send > > 8 byte MAC address also. > > Apologies, I may have misunderstood. If the new type is 100% > wire-compatible (recv/send) with the old fixed-length 6-byte type, then > there's no issue whatsoever.
Uh, that certainly isn't correct, is it...? The new data type is going to be able to send back 8-byte values to a Npgsql driver that's not expecting to get back 8 byte macaddrs. That isn't going to work. Further, I don't agree that we can simply rename the existing macaddr to something else, even if we keep the same OID, that's going to confuse the heck out of people who are doing pg_upgrade's 9.6 to 10 and then they try to do migrations using their previous systems or even to compare the output of pg_dump from one to the next. Let's create a new data type for this which supports old and new types, add what casts make sense, and call it a day. Changing the data type name out from under people is not helping anyone. Thanks! Stephen
Description: Digital signature