We’ve just released VistaDB 5.0.3 – a maintenance release to VistaDB 5.0. This includes a rollup of all the fixes for defects reported on 5.0 as well as some improvements. You can run over and download the release right now or read on for more of what’s inside!
NuGet Packages for Entity Framework and Logging
You can now add VistaDB Entity Framework support and VistaDB Logging support for Loupe directly from NuGet. This is particularly useful for Entity Framework because it automatically updates your application configuration file with the appropriate entries, adds the correct version of EF, and adds the provider assembly for VistaDB in one pass.
For Logging you get a similar ease of use – add the NuGet package and it’ll automatically pull in the Loupe Agent as well. Then you just need to add one line of code to activate the agent:
For more information on what you get with logging support, see Developer’s Guide – Logging to Loupe in the online documentation.
We encourage you to use the NuGet distribution where feasible because fixes and enhancements are occasionally released to NuGet prior to the next full product release.
Data Builder Usability Updates
Based on support questions since 5.0 shipped we made Data Builder a bit smarter about when it shows obsolete configuration options (notably about column encryption) so they don’t appear when you access a VistaDB 5 database since they don’t apply. We also made binary values show using a fixed-width font to ease comparison between rows. We also brought back the extended area display for long text columns which had inadvertently gotten dropped in 5.0.
SELECT UNION with ORDER BY
If you had a SELECT UNION query and did an ORDER BY it wouldn’t return the correctly ordered results if it was able to optimize the ORDER BY with an index on the last SELECT query. This was introduced in 5.0 and is now fixed.
OUTER JOIN can return too few matching records
If you have an OUTER JOIN with a peer INNER JOIN VistaDB would return just the first null row, not one null row for every INNER JOIN match. For example:
SELECT * FROM A LEFT JOIN B ON B.A_Id = A.Id INNER JOIN C ON C.A_Id = A.Id
The correct result would use NULL for values from table B when it couldn’t find any matching row for every matching row in table C. Instead, it would return just the first match. We verified this issue goes back at least as far as VistaDB 4 and predates the Gibraltar Software acquisition of VistaDB.