Commit Graph

397 Commits (71814274862516e4e5eb776b76918d0de6336adc)
 

Author SHA1 Message Date
Christopher Jolly 7181427486 Some tests are meant to throw an error to pass and don't produce any sql 2 years ago
Christopher Jolly 4ad59d89f0 Add our own GearsOfWar set of base classes and models. This allows us to modify it so that we can work around the complex/multi-field foreign key set up it uses so that we can use our own Match Simple mode rather than the Match Full mode Jet normally does.
See the readme in the CustomBaseTests for full details
2 years ago
Christopher Jolly a8b975d4b9 Add code to add a "MatchSimple" annotation to a foreign key 2 years ago
Christopher Jolly e04ee43a29 UNIONing projection with a numeric column to another projection that specifically projects NULL the the same name as a numeric field, the JOINING that to another table can leave that numeric field as another data type (NULL is not a numeric data type). Hence when using that supposedly numeric field in the join predicat against another numeric field we get a data type mismatch.
We try to detect this and when visiting the column (but only if we are within a binary expression and not a projection) we quickly wrap it in a convert function to make it properly numeric

The top/outer projection of this field can still be in a non numeric format, but JetDataReader is able to handle that. Would be better to produce the correctly converted data output anyway
2 years ago
Christopher Jolly 574cdac15f Update the recently added functions (from the .Net 8 branch) to the current SQL (mostly bracket changes) 2 years ago
Christopher Jolly ffef910dae Add Check_all_tests_overridden to more test classes and ensure that it passes 2 years ago
Christopher Jolly 11f406955d Fix some conversion errors when getting a numeric value. See detailed notes in the GetInt32 function 2 years ago
Christopher Jolly 92ea73548d DISTINCT AND TOP can't be in the same stateement with Jet. Push DISTINCT into a subquery 2 years ago
Christopher Jolly f1878a8950 Fix generating sets (union, intersect). The code was originally executing and returning before it could handle adding the SQL for the Alias in (including wrapping the section in brackets). This realigns with how the parent VisitSelect works 2 years ago
Christopher Jolly 89dfac55ab Update tests 2 years ago
Christopher Jolly 2230f06f13 With InlineTopParameters it didn't handle the case of a sum of two constant valuees 2 years ago
Christopher Jolly 8ba710ed47 Fix the formatting for a string literal of a byte 2 years ago
Christopher Jolly 70e4de26e3 Make sure the start index for Instr is set. Normally is optional but it seems some sections seem to prefer it to be defined 2 years ago
Christopher Jolly 86cba1ec07 Update tests 2 years ago
Christopher Jolly d0b343b638 Some Northwind properties need their MAxLength defined 2 years ago
Christopher Jolly a93c205194 When using FromSql, parameters can end up named without the @ at the beginning. This leads to the failure to match it to the Sql where the string is generated with the @.
If we can't find the parameter using the normal name, try to pick it up when excluding the @
2 years ago
Christopher Jolly 6f38fe6e90 Update tests 2 years ago
Christopher Jolly db7a513b64 Remove the DeepSkip tag on FirstOrDefault. When generating the sql it was preventing the TOP expression from being generated 2 years ago
Christopher Jolly fbf0f794a7 use .GetMAppStoreObjects to try get the correct table (this is especially needed for properties in split tables). Default to the original storeObject if can't find anything 2 years ago
Christopher Jolly 9e6617903f v7.0.3 2 years ago
Christopher Jolly 3ff59259ed Use the correct function in SQL for Date (Jet doesn't do GetUTCDate) 2 years ago
Christopher Jolly 2dbd0fde32 Rewrite some INNER JOIN's. According to the docs Jet doesn't support an INNER JOIN being nested under a LEFT JOIN. We try to figure out which one's they are and rewrite it. As an INNER JOIN is a join where both sides have a value, we can rewrite it as a LEFT JOIN and then filter out the rows where the columns the join is on is not NULL 2 years ago
Christopher Jolly 83b0bea0b8 another test update 2 years ago
Christopher Jolly 78f9226030 Update tests 2 years ago
Christopher Jolly c46f980c09 Start work on some support for sequence value generation. Still under investigation if possible 2 years ago
Christopher Jolly 7cee2d0581 update dependencies 2 years ago
Christopher Jolly 673e56ed60 Add a whole heap of new tests. Work to implement all the test bases so that All_test_bases_must_be_implemented can pass 2 years ago
Christopher Jolly 944843bfad Some datetime parameters don't work unless they have been properly converted 2 years ago
Christopher Jolly 70af0c286c Set query splitting behaviour. Prevents errors due to it not being set 2 years ago
Christopher Jolly 629398c76b Set CanExecuteQueryString to false. When running tests, if it is set to true, the Query Asserter will also try to create a query string from the IQueryable. While most cases are fine, the problem comes in when there are parameters. Creating the query string declares the parameters and values at the beginning of the query and the DbCommand is set up with no parameters. While this can work in Sql Server (see the DECLARE keyword), this is not supported with Jet.
The Query Asserter already runs the CreateDbCommand on the IQueryable which creates the DbCommand with the parameters all set up. Creating the query string and running that as a separate command is not really necessary.

By the looks of it this only affects the test system which specifically creates a query string from an IQueryable and creates a new DbCommand with that as the command text. It doesn't seem to affect anywhere else
2 years ago
Christopher Jolly 3ef1503bb9 Translate the Atan2 function 2 years ago
Christopher Jolly 5e32650f6d Dispose of any new JetCommands created when splitting commands properly. This were not being disposed of and still holding a link to the database thereby preventing some file access e.g. Deleting a file 2 years ago
Christopher Jolly 424c9fc8f3 Update dependencies 2 years ago
Christopher Jolly 3f5c1b6005 Make sure a DateTime in a constant has a DateTime Type Mapping 2 years ago
Christopher Jolly 429c67ca3a Some skip...take optimization and fix using multiple take after a skip 3 years ago
Christopher Jolly cbf7daca08 Update tests for Skip...Take 3 years ago
Christopher Jolly 8c9dff5d36 Initial support for Skip....Take. Take...Skip and Skip currently do not work properly 3 years ago
Christopher Jolly d7268307bc Fix generating a custom OleDbException for the tests 3 years ago
Christopher Jolly 54a53915bc v7.0.2 3 years ago
Christopher Jolly fd57f4a3bd Rename some extension methods so that it doesn't interfere with other providers (namely sql server) 3 years ago
Christopher Jolly fd6c2aec01 Revert ca0feb49 . Same name extensions when using sql server and jet 3 years ago
Christopher Jolly 84e40f5085 Fix some string resources 3 years ago
Christopher Jolly a34dafb7bd
Update version for nuget 3 years ago
Christopher Jolly 595a68e5e4
Update azure-pipelines.yml 3 years ago
Christopher Jolly 6bf5bba937
Merge pull request #139 from 0xced/delete-unnecessary-references
Remove unnecessary references in `EntityFrameworkCore.Jet.Data`
3 years ago
Cédric Luthi cbb3f94440 Remove unnecessary references in `EntityFrameworkCore.Jet.Data`
Now that `EntityFrameworkCore.Jet.Data` targets `net6.0` those references are not required anymore.

Note that the `Microsoft.Win32.Registry` package reference was the root cause of the failure to publish the `EntityFrameworkCore.Jet.Data` 7.0.0 package because of [warning NU5104][1] (treated as error):
> A stable release of a package should not have a prerelease dependency. Either modify the version spec of dependency "Microsoft.Win32.Registry [6.0.0-preview.5.21301.5, )" or update the version field in the nuspec.

[1]: https://bubibubi.visualstudio.com/EntityFrameworkCore.Jet/_build/results?buildId=280&view=logs&j=67ea8d94-b5a7-504b-2d4b-07baddfad3f1&t=1e07b7f6-b7a1-55f6-9cca-c04683790a41&l=37
3 years ago
Christopher Jolly 3cfed1cb8f
Update README.md
Add a compatibility matrix
3 years ago
Christopher Jolly 0c8e8d296d 7.0.0 RTM 3 years ago
Christopher Jolly d668fe7f16 Update tests 3 years ago
Christopher Jolly a9c2f36da5 Jet conversion functions like Cdbl/Csng/CLng don't accept or propogate null values. Normally we can just use an IIF to check if the expression is null or not. That does work fine but here we also check if the base expression is nullable. If the base expression will never return null we can simplify and just use the base expression rather than test for null 3 years ago