SQL Bridge Changelog

March 4, 2026 ยท View on GitHub

0.7.0 (2026-03-04)

  • The mysql-otp bridge has been reworked to use the mainline mysql-otp repo (rather than @choptastic's fork). This requires new functionality in mysql-otp.
  • The epgsql bridge now relies on mainline epgsql (rather than @choptastic's fork). This ended up requiring migrating @choptastic's epgsql customizations to become epgsql custom codecs and epgsql_decimal.
  • Added a primary key generator for SQL Bridge to use if the table is not using its own key generation. This key generator can be completely swapped out if its conditions are not sufficient for your needs.
  • Added primary_key(Table) which returns the field name of the primary key of the provided table
  • Added is_auto_increment(Table, Field) which returns true if the Field in Table is using the RDBMS's auto increment feature for primary key generation (ala MySQL's auto_increment or PostgreSQL's serial).
  • Added field_type(Table, Field) which returns a limited arrangement of terms usable for key generation (that is, integers, strings, and UUIDs). Other field types are ignored (floats, dates, etc). This will likely be built out further eventually, but its current implementation is to go along with the new primary key generator.
  • Fixed epgsql's decoding of decimal/numeric types to return a float or integer. (Fixes Issue #5)
  • Fixed a crash in the epgsql driver (Issue #10) (Thanks @th31nitiate!)
  • The above work ensures that sql_bridge is now fully hex compliant and available in hex.pm.
  • Fix a big transaction bug in the mysql-otp bridge where transactions were mostly unreliable.
  • Fix all dialyzer errors
  • Added Github Actions testing

0.6.1 (2022-04-13)

  • Added support for setting the hostname to a {Mod,Fun} tuple that will be called to determine which DB server to connect to.

0.6.0 (2022-03-14)

  • Loosen the supervisor failure conditions, so sql_bridge doWorking Versione if the backend DB server goes offline for an extended period.
  • Added field_exists/2 to check for the existance of a field in a table

0.5.0 (2021-11-17)

  • BACKWARDS INCOMPATIBLE CHANGE: Removed support for emysql
  • Configured with rebar3

0.4.0 (2020-04-14)

  • BACKWARDS INCOMPATIBLE CHANGE: Renamed update and insert to qupdate and qinsert.
  • Created update/[2,3] and insert/2 which are friendly maps to plu and pli respectively.
  • Handling nested transactions and nested checkouts (just for mysql-otp right now)
  • Give a warning message if query breaks in mysql-otp. Previously just returned {error, Something} but this generates an OTP warning as well.
  • Fix atom encoding in epgsql
  • Branched the module alias system into a new dependency module called erlias
  • The built-in base64 converter now uses b64fast
  • Add a timer-based logger. Calling log_for_time(5) will log all queries for 5 seconds to sql_bridge.log

0.3.0 (2016-04-14)

  • Normalize return values for date, time, timestamp, and decimal types.
  • Fix db:save to properly decompose tables of the database.tablename format.
  • Better normalization of true, false and NULLs to undefined
  • Add more tests

0.2.0 (2016-03-10)

  • Add record handling
  • Improve stability in mysql-otp driver

0.1.1 (2016-01-22)

  • Bugfix Release

0.1.0 (2016-01-21)

  • Renamed SigmaSQL to SQL_Bridge
  • Changed the core module from db.erl to sql_bridge.erl, and implemented the alias system.
  • Add PostgreSQL support
  • Add MySQL and PGSQL token replacement methods to be configurable. (? and $1, respectively)
  • Add support for mysql_otp and epgsql drivers
  • Add battery of tests

0.0.4 (2015-10-05)

  • Unicode Fix
  • Working with Erlang 18

0.0.2 (2014-08-14)

  • Added Typespecs
  • Bug Fixes
  • Passing dialyzer

0.0.1 (2013-09-28)

  • Supported Emysql driver only.