anchor.diff:  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, {OidDb, Db}) ->
  -    case OidDb:find_by_oid(Oid, Db) of
  +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, OidDb)
  +            make_decoder(Type, Format)
       end.
   
  --spec make_decoder(epgsql_oid_db:type_info(), binary | text, module()) -> decoder().
  -make_decoder(Type, Format, OidDb) ->
  -    {Name, Mod, State} = OidDb:type_to_codec_entry(Type),
  -    {_Oid, Name, IsArray} = OidDb:type_to_oid_info(Type),
  +-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) ->
  
positive.code: new_codec(OidDb, PgSock, Codecs, Oids) ->
      CodecEntries = epgsql_codec:init_mods(Codecs, PgSock),
      Types = OidDb:join_codecs_oids(Oids, CodecEntries),
      {OidDb, OidDb:from_list(Types)}.
  
  -spec update_codec([epgsql_oid_db:type_info()], codec()) -> codec().
  update_codec(TypeInfos, {OidDb, Db}) ->
      {OidDb, OidDb:update(TypeInfos, Db)}.
  
  -spec oid_to_name(epgsql_oid_db:oid(), codec()) -> Type | {unknown_oid, epgsql_oid_db:oid()} when
        Type :: epgsql:type_name() | {array, epgsql:type_name()}.
  
negative.code:     type_to_info(Name, false, Codec).
  
  -spec oid_to_info(epgsql_oid_db:oid(), codec()) -> epgsql_oid_db:type_info() | undefined.
  oid_to_info(Oid, #codec{oid_db = Db}) ->
      epgsql_oid_db:find_by_oid(Oid, Db).
  
  -spec type_to_info(epgsql:type_name(), boolean(), codec()) -> epgsql_oid_db:type_info().
  type_to_info(TypeName, IsArray, #codec{oid_db = Db}) ->
      epgsql_oid_db:find_by_name(TypeName, IsArray, Db).
  
  typeinfo_to_name_array({unknown_oid, _} = Unknown, _) -> Unknown;
  typeinfo_to_name_array(TypeInfo, _) ->
      case epgsql_oid_db:type_to_oid_info(TypeInfo) of
          {_, Name, false} -> Name;
          {_, Name, true} -> {array, Name}
      end.
  
  typeinfo_to_oid_info({unknown_oid, _} = Unknown, _) -> Unknown;
  typeinfo_to_oid_info(TypeInfo, _) ->
      epgsql_oid_db:type_to_oid_info(TypeInfo).
  
  %%
  %% Decode
  