tds v2.1.0 Release Notes

Release Date: 2020-03-21 // about 4 years ago
  • ๐Ÿ›  BugFix

    • ๐Ÿ“‡ ColMetadata token that contains XML schema_info now is parsed correctly.

    ๐Ÿ‘Œ Improvements

    • ๐Ÿ‘Œ Improved compatibiliy with ecto_sql TDS adapter
    • โœ‚ Removed Tds.Types.VarChar. From now ecto_sql implements Tds.Ecto.VarChar that should be used in fields if schema requires it.
    • ๐Ÿšš Tds.Type.UUID is moved to ecto_sql please use Tds.Ecto.UUID instead if you are using ecto.
    • Tds.generate_uuid/0 is added so users can generate valid binary MS UUIDS, ๐Ÿ“œ there is also Tds.decode_uuid/1 that should help parsing MS UUID binary to its string representation
    • sp_execute is now using PROCID in protocol so message size is reduced for few bytes
    • In explicit transactions (Tds.transaction/2) now you can tell transaction manager what isolation level you need. You are encaruadged to use this instead of SET TRANSACTION ISOLATION LEVEL ... due:
      • Less roundtrips to database (saving 3 RPC calls)
      • Less bytes are sent over wire since all is in single transaction manager call
      • snapshot isolation level works in combination with connection settings set_allow_snapshot_isolation: :on
    • Elixir calendar types are supported if connection is configured with use_elixir_calendar_types: true, columns that are of sql types SmallDateTime, DateTime, DateTime2, DateTimeOffset, Time and Date will be decoded into elixir NaiveDateTime, DateTime, Time and Date. If this falg is not set to connection tuples will be used.
    • Rustler dependency is not mandatory anymore. Requirements are muved to tds_encoding library. If you need non latin1 encoding ๐Ÿ”ง for your varchars please add this library to your dependency and add in configuration config :tds, :text_encoder, Tds.Encoding