Skip to content

Releases: Nemo64/dbal-rds-data

php 8 support

29 May 17:28
Compare
Choose a tag to compare

Simple enough, php 8 is now supported and tested while php 7.1 support is dropped.

improve numeric parameter emulation

06 Jan 11:49
Compare
Choose a tag to compare

It could happen that moderatly large queries (7kb+) with emulated numeric parameters fail because of a regex issue. I could improve the expression so that multiple megabytes of query now work flawlessly.

better connection emulation and more options

19 Jul 20:13
Compare
Choose a tag to compare
  • You can establish a connection without selecting a database.
    This is useful when you want to create the database using this api (eg with the doctrine:database:create command).
    It is also now possible to switch databases using use dbname; which won't result in an actual query but will internally set the database name in the connection instance. $driver->getDatabase($connection) will also correctly report the database in that case.
  • You can now make any query block until the database is available if it was paused.
    There are 2 new options for that: pauseRetries and pauseRetryDelay. You can read more about them in the readme.
    I'll continue to default to an error instead of blocking as waiting for a minute is usually not a good idea. Lambda events will automatically retry after a minute (using exponential backoff) so you normally don't have to worry about it and interactive page loads will always feel broken if the database is paused so you'll need a better handling in that case.
  • I removed the direct dependency on guzzle by setting options though the aws-sdk.
    You still need guzzle, it's just not my dependency anymore. There is an experimental branch which uses async-aws but that sdk may need some additional testing work for which I'm currently not motivated and don't have the time.

small change in binary handling

19 Apr 22:57
Compare
Choose a tag to compare
  • remove the packaging of binary data into a resource. This is already done by dbal if the driver does not do it. However, the pdo_mysql and mysqli driver also only return a binary string so it is more consistent if you use native queries with binary data.

small bugfix introduced though cleanup

22 Mar 19:59
Compare
Choose a tag to compare

There was a new bug introduced though separating the statement and the result.

  • fetch mode can now be set before the statement is executed and is retained after the statement is executed.

further refinement and testing

21 Mar 23:02
Compare
Choose a tag to compare
  • FetchMode::CUSTOM_OBJECT is now implemented (see #3).
  • FetchMode::COLUMN now supports the index argument to tell which column to return.
  • exceptions now won't contain any sql state instead of a wrong one (see #2).

more test and stabilization

15 Mar 23:25
Compare
Choose a tag to compare

The main goal of this release is to stabilize and test everything.
I decided to drop the beta suffix because the core functionality should work and is mostly tested.
There are still todos and missing implementations in some places but in obscure places like when you try to iterate a result backwards.

  • There are now a lot more test cases (see GitHub Actions).
  • Use phpunit ^7.5 so tests can run on php 7.1
  • Some api stabilization by using return types, even though dbal doesn't use them yet
  • fix issue where streams created by binaries weren't rewinded before being exposed
  • improve the quote implementation to avoid possible multi byte attacks. Please take a look at the Nemo64\DbalRdsData\AbstractConnection::quote implementation and try to find situations in which this breaks and tell me.
  • the "?" placeholder in sql queries won't be replaced within literal strings now.
  • Improve error handling by parsing the error message to add error codes. This allows dbal to map them to correct specific exceptions like Doctrine\DBAL\Exception\TableNotFoundException and Doctrine\DBAL\Exception\SyntaxErrorException.
  • If an Aurora Serverless is paused, then the "Communications link failure" will be mapped to error 6000 and converted to an Doctrine\DBAL\Exception\ConnectionException so it can easily be handled.

add a timeout to guzzle

01 Mar 23:02
Compare
Choose a tag to compare
Pre-release
  • there is now a timeout on http requests to prevent indefinite requests.

first release

29 Feb 22:16
Compare
Choose a tag to compare
first release Pre-release
Pre-release

This is the first release where I extracted this library out of another project.