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 theFieldinTableis using the RDBMS's auto increment feature for primary key generation (ala MySQL'sauto_incrementor PostgreSQL'sserial). - 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 ofdecimal/numerictypes to return a float or integer. (Fixes Issue #5) - Fixed a crash in the
epgsqldriver (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_bridgedoWorking Versione if the backend DB server goes offline for an extended period. - Added
field_exists/2to 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
updateandinserttoqupdateandqinsert. - Created
update/[2,3]andinsert/2which are friendly maps topluandplirespectively. - 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 tosql_bridge.log
0.3.0 (2016-04-14)
- Normalize return values for date, time, timestamp, and decimal types.
- Fix
db:saveto properly decompose tables of thedatabase.tablenameformat. - Better normalization of
true,falseand NULLs toundefined - 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.erltosql_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_otpandepgsqldrivers - 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.