anchor.diff:  %% Supports
   supports(RecOid, _) when RecOid == ?RECORD_OID; RecOid == ?RECORD_ARRAY_OID ->
       true;
  -supports(Oid, {OidDb, Db}) ->
  -    OidDb:find_by_oid(Oid, Db) =/= undefined.
  +supports(Oid, #codec{oid_db = Db}) ->
  +    epgsql_oid_db:find_by_oid(Oid, Db) =/= undefined.
   
   %% Default codec set
   -spec default_codecs() -> [epgsql_codec:codec_entry()].
  
positive.code: %% Encode
  %%
  -spec encode(epgsql:type_name() | {array, epgsql:type_name()}, any(), codec()) -> iolist().
  encode(TypeName, Value, {OidDb, _Db} = Codec) ->
      Type = type_to_oid_info(TypeName, Codec),
      encode_with_type(Type, Value, OidDb).
  
  encode_with_type(Type, Value, OidDb) ->
      {Name, Mod, State} = OidDb:type_to_codec_entry(Type),
      case OidDb:type_to_oid_info(Type) of
          {_ArrayOid, _, true} ->
              %FIXME: check if this OID is the same as was returned by 'Describe'
              ElementOid = OidDb:type_to_element_oid(Type),
              encode_array(Value, ElementOid, {Mod, Name, State});
          {_Oid, _, false} ->
              encode_value(Value, {Mod, Name, State})
  
negative.code: oid_to_decoder(?RECORD_ARRAY_OID, binary, Codec) ->
      %% See `make_array_decoder/3'
      {fun ?MODULE:decode_array/3, [], oid_to_decoder(?RECORD_OID, binary, Codec)};
  oid_to_decoder(Oid, Format, #codec{oid_db = Db}) ->
      case epgsql_oid_db:find_by_oid(Oid, Db) of
          undefined when Format == binary ->
              {fun epgsql_codec_noop:decode/3, undefined, []};
          undefined when Format == text ->
              {fun epgsql_codec_noop:decode_text/3, undefined, []};
          Type ->
              make_decoder(Type, Format)
      end.
  
  -spec make_decoder(epgsql_oid_db:type_info(), binary | text) -> decoder().
  make_decoder(Type, Format) ->
      {Name, Mod, State} = epgsql_oid_db:type_to_codec_entry(Type),
      {_Oid, Name, IsArray} = epgsql_oid_db:type_to_oid_info(Type),
      make_decoder(Name, Mod, State, Format, IsArray).
  
  make_decoder(_Name, _Mod, _State, text, true) ->
  