WhereTest.Test_02 threw an exception when executed with a different culture. Fixed by adding a SetupFixture setting InvariantCulture.
The new SQL backend should both be a good example of how to approach SQL generation using the new re-linq front-end (QueryModel, usw.) and provide a sound, extensible architecture backing re-store's LINQ provider.
It will sport SQL generation in three phases:
LINQ providers will be able to hook into each of the three steps for customization, optimization, and advanced query transformations.
Support for expressions of the form: select o.Customer.FirstName or select orderItem.Order.Customer.Address.
This expression leads to automatic generation of inner joins between the tables involved.
Support for expressions of the form select o.Customer.
The SQL generated for this expression selects all the columns defining a Customer.
Support expressions of the form: select "hugo".
Most constant expressions are automatically wrapped into SQL parameters rather than being hard-coded in the SQL statement. The constant values "true" and "false" are translated to parameters of values "1" and "0". Constant expressions of types not supported by SQL lead to an exception. Constant expressions with value null are inlined in the SQL as NULL values.
Support for expressions of the following form: select s.FirstName.
The SQL generated for this expression selects the column corresponding to FirstName in the table corresponding to s.