|
1 | | -## 0.7.0 (in development) |
| 1 | +# SQL Bridge Changelog |
2 | 2 |
|
3 | | -* The mysql-otp bridge has been reworked to use the mainline |
| 3 | +## 0.7.0 (2026-03-04) |
| 4 | + |
| 5 | +- The mysql-otp bridge has been reworked to use the mainline |
4 | 6 | [mysql-otp](https://github.com/mysql-otp/mysql-otp) repo (rather than |
5 | | - @choptastic's fork). This requires |
| 7 | + @choptastic's fork). This requires |
6 | 8 | [new functionality](https://github.com/mysql-otp/mysql-otp/pull/194) in |
7 | 9 | mysql-otp. |
8 | | -* The epgsql bridge now relies on mainline |
| 10 | +- The epgsql bridge now relies on mainline |
9 | 11 | [epgsql](https://github.com/epgsql/epgsql) (rather than @choptastic's |
10 | 12 | fork). This ended up requiring migrating @choptastic's epgsql customizations |
11 | 13 | to become epgsql [custom |
12 | 14 | codecs](https://github.com/epgsql/epgsql/blob/devel/doc/pluggable_types.md) |
13 | 15 | and [epgsql_decimal](https://github.com/egobrain/epgsql_decimal). |
14 | | -* Fixed `epgsql`'s decoding of `decimal`/`numeric` types to return a float or |
| 16 | +- Added a primary key generator for SQL Bridge to use if the table is not using |
| 17 | + its own key generation. This key generator can be completely swapped out if |
| 18 | + its conditions are not sufficient for your needs. |
| 19 | +- Added `primary_key(Table)` which returns the field name of the primary key of the |
| 20 | + provided table |
| 21 | +- Added `is_auto_increment(Table, Field)` which returns true if the `Field` in |
| 22 | + `Table` is using the RDBMS's auto increment feature for primary key generation |
| 23 | + (ala MySQL's `auto_increment` or PostgreSQL's `serial`). |
| 24 | +- Added `field_type(Table, Field)` which returns a limited arrangement of terms |
| 25 | + usable for key generation (that is, integers, strings, and UUIDs). Other field |
| 26 | + types are ignored (floats, dates, etc). This will likely be built out further |
| 27 | + eventually, but its current implementation is to go along with the new primary |
| 28 | + key generator. |
| 29 | +- Fixed `epgsql`'s decoding of `decimal`/`numeric` types to return a float or |
15 | 30 | integer. (Fixes [Issue #5](https://github.com/choptastic/sql_bridge/issues/5)) |
16 | | -* Fixed a crash in the `epgsql` driver |
| 31 | +- Fixed a crash in the `epgsql` driver |
17 | 32 | ([Issue #10)](https://github.com/choptastic/sql_bridge/issues/10) (Thanks |
18 | 33 | @th31nitiate!) |
19 | | -* The above work ensures that sql_bridge is now fully hex compliant and |
| 34 | +- The above work ensures that sql_bridge is now fully hex compliant and |
20 | 35 | available in [hex.pm](https://hex.pm/packages/sql_bridge). |
21 | | -* Fix a big transaction bug in the mysql-otp bridge where transactions were |
| 36 | +- Fix a big transaction bug in the mysql-otp bridge where transactions were |
22 | 37 | mostly unreliable. |
23 | | -* Fix all dialyzer errors |
24 | | -* Added Github CI testing |
| 38 | +- Fix all dialyzer errors |
| 39 | +- Added Github Actions testing |
25 | 40 |
|
26 | | -## 0.6.1 |
| 41 | +## 0.6.1 (2022-04-13) |
27 | 42 |
|
28 | | -* Added support for setting the hostname to a `{Mod,Fun}` tuple that will be |
| 43 | +- Added support for setting the hostname to a `{Mod,Fun}` tuple that will be |
29 | 44 | called to determine which DB server to connect to. |
30 | 45 |
|
31 | | -## 0.6.0 |
| 46 | +## 0.6.0 (2022-03-14) |
32 | 47 |
|
33 | | -* Loosen the supervisor failure conditions, so `sql_bridge` doesn't go offline |
| 48 | +- Loosen the supervisor failure conditions, so `sql_bridge` doWorking Versione |
34 | 49 | if the backend DB server goes offline for an extended period. |
| 50 | +- Added `field_exists/2` to check for the existance of a field in a table |
35 | 51 |
|
36 | | -## 0.5.1 |
37 | | - |
38 | | -* Added `field_exists/2` to check for the existance of a field in a table |
39 | | - |
40 | | -## 0.5.0 |
| 52 | +## 0.5.0 (2021-11-17) |
41 | 53 |
|
42 | | -* **BACKWARDS INCOMPATIBLE CHANGE**: Removed support for emysql |
43 | | -* Configured with rebar3 |
| 54 | +- **BACKWARDS INCOMPATIBLE CHANGE**: Removed support for emysql |
| 55 | +- Configured with rebar3 |
44 | 56 |
|
45 | | -## v0.4.0 |
| 57 | +## 0.4.0 (2020-04-14) |
46 | 58 |
|
47 | | -* **BACKWARDS INCOMPATIBLE CHANGE**: Renamed `update` and `insert` to `qupdate` |
| 59 | +- **BACKWARDS INCOMPATIBLE CHANGE**: Renamed `update` and `insert` to `qupdate` |
48 | 60 | and `qinsert`. |
49 | | -* Created `update/[2,3]` and `insert/2` which are friendly maps to `plu` and |
| 61 | +- Created `update/[2,3]` and `insert/2` which are friendly maps to `plu` and |
50 | 62 | `pli` respectively. |
51 | | -* Handling nested transactions and nested checkouts (just for mysql-otp right now) |
52 | | -* Give a warning message if query breaks in mysql-otp. Previously just returned |
| 63 | +- Handling nested transactions and nested checkouts (just for mysql-otp right now) |
| 64 | +- Give a warning message if query breaks in mysql-otp. Previously just returned |
53 | 65 | `{error, Something}` but this generates an OTP warning as well. |
54 | | -* Fix atom encoding in epgsql |
55 | | -* Branched the module alias system into a new dependency module called `erlias` |
56 | | -* The built-in base64 converter now uses `b64fast` |
57 | | -* Add a timer-based logger. Calling `log_for_time(5)` will log all queries for |
| 66 | +- Fix atom encoding in epgsql |
| 67 | +- Branched the module alias system into a new dependency module called `erlias` |
| 68 | +- The built-in base64 converter now uses `b64fast` |
| 69 | +- Add a timer-based logger. Calling `log_for_time(5)` will log all queries for |
58 | 70 | 5 seconds to `sql_bridge.log` |
59 | 71 |
|
60 | | -## v0.3.0 |
| 72 | +## 0.3.0 (2016-04-14) |
61 | 73 |
|
62 | | -* Normalize return values for date, time, timestamp, and decimal types. |
63 | | -* Fix `db:save` to properly decompose tables of the `database.tablename` |
| 74 | +- Normalize return values for date, time, timestamp, and decimal types. |
| 75 | +- Fix `db:save` to properly decompose tables of the `database.tablename` |
64 | 76 | format. |
65 | | -* Better normalization of `true`, `false` and NULLs to `undefined` |
66 | | -* Add more tests |
| 77 | +- Better normalization of `true`, `false` and NULLs to `undefined` |
| 78 | +- Add more tests |
| 79 | + |
| 80 | +## 0.2.0 (2016-03-10) |
| 81 | + |
| 82 | +- Add record handling |
| 83 | +- Improve stability in mysql-otp driver |
| 84 | + |
| 85 | +## 0.1.1 (2016-01-22) |
| 86 | + |
| 87 | +- Bugfix Release |
| 88 | + |
| 89 | +## 0.1.0 (2016-01-21) |
| 90 | + |
| 91 | +- Renamed SigmaSQL to SQL_Bridge |
| 92 | +- Changed the core module from `db.erl` to `sql_bridge.erl`, and implemented |
| 93 | + the alias system. |
| 94 | +- Add PostgreSQL support |
| 95 | +- Add MySQL and PGSQL token replacement methods to be configurable. (`?` and |
| 96 | + `$1`, respectively) |
| 97 | +- Add support for `mysql_otp` and `epgsql` drivers |
| 98 | +- Add battery of tests |
| 99 | + |
| 100 | +## 0.0.4 (2015-10-05) |
67 | 101 |
|
68 | | -## v0.2.0 |
| 102 | +- Unicode Fix |
| 103 | +- Working with Erlang 18 |
69 | 104 |
|
70 | | -* Add record handling |
71 | | -* Improve stability in mysql-otp driver |
| 105 | +## 0.0.2 (2014-08-14) |
72 | 106 |
|
73 | | -## v0.1.0 |
| 107 | +- Added Typespecs |
| 108 | +- Bug Fixes |
| 109 | +- Passing dialyzer |
74 | 110 |
|
75 | | -* Add support for mysql-otp and epgsql drivers |
76 | | -* Add battery of tests |
| 111 | +## 0.0.1 (2013-09-28) |
77 | 112 |
|
78 | | -## Prior Versions |
79 | | -* Supported Emysql driver only. |
| 113 | +- Supported Emysql driver only. |
0 commit comments