Changes
- Rewrote tokenizer.
- Rewrote entire query parser.
- Parsers are now separated into separate static classes for each query type.
- Parsers are now reusable, allowing for the condition parser, field parser and the like to be reused inside other query parser types.
- Functions are now fully recursive and are parsed in select fields, group by, order by, insert, update, select, where clause and join clauses.
- Update statements now allow for joins.
- Delete statements now allow for joins.
- Introduced "insert select from" statements.
- Temporarily removed support for procedures, they will need to be reimplemented.
- Major changes to the way that indexes are selected and used. Multiple values for a single index are now handled in one index lookup operation.
- Condition parser rewrite is now more robust and understandable.
- Introduction of new dapper like queries using classes as return objects.
- Introduction of parameterized queries prevents sql-injection attacks.
- Scaler and aggregate function parser rewrite allowing for reusability in various parts of queries.
- Added inline query string concatenation.
- Added query field type detection for inline math and string aggregation to coexist without "casting" which would be found in other RDBMSs.
- Added windowing functionality with TOP and OFFSET.
Remaining to-do:
- Reimplement "SELECT INTO".
- Reimplement stored procedures.
- More robust parser validation.
What's Changed
Full Changelog: https://github.com/NTDLS/NTDLS.Katzebase.Server/compare/0.15.0...0.16.0
|