Releases: NTDLS/Katzebase
Releases · NTDLS/Katzebase
0.22.0
This is major release (still in alpha), but fundamental portions of the engine have been changed. This is the final part of a two-part push to overhaul the parser (previous release) and now the schema-intersection-engine. The only outstanding issue is reimplementing stored procedures, but we really want to take some time and think that out. Other than that, we are now focused on validating the functionality of all features.
Engine
- Rewrite of schema intersection processor, now with more parallelism and vastly improved speed and maintainability.
- Added support for UPDATE with joins.
- Added support for DELETE with joins.
- Added support for ORDER BY using expressions and scalar/aggregate functions.
- Moved parser to dedicated library.
- Memory manager now released LOH object for greatly enhanced memory management.
- Added function descriptions to engine prototypes.
- Fixes to parsing negative numeric values.
- Added CountDistinct()
- Removed batch splitting on "GO", parser now knows where queries begin.
- Standardized all exceptions.
- Added new system function: ShowThreadPools
UI
- Now allows for more than one server connection.
- Incorporates schema awareness using lazy-loading for validation while writing queries.
- Static analyzer using new dedicated parsing library provides query-text insights in real-time.
- Code folding for comments and regions using --region "text" and --endregion.
- Font and font size can now be modified.
- Setting dialog now provides more customizability.
Full Changelog: 0.21.0...0.22.0
0.21.0
0.20.0
What Changed
- Aggregation when no group-by is present.
- Added count(*) shortcut,
- Added IsNumeric, IsDouble and IsString scaler functions.
- More drastic performance improvements to schema locking, also reduces deadlocks.
- Consolidated Server, Management, and SQL Server Migration tool into one installer.
New Contributors
Full Changelog: 0.19.0...0.20.0
0.19.0
- Fixed issue with scaler functions when optional parameters were not passed.
- Resolved issue with calculating mathematical expressions when in line with string concatenation.
- Added new "single" schema that is intended to mimic the Oracle "dual" function.
- Reimplemented insert of "ragged key/value" pairs. This is in addition to field/value insert style.
Full Changelog: 0.18.0...0.19.0
0.18.0
- Reimplemented "set".
- Massively improved insert performance.
- Greatly reduced schema lock contention.
- Resolved issues with case-sensitivity of schema aliases in where clause and joins.
- Greatly reduced duration and memory requirements for creating and rebuilding indexes.
Full Changelog: 0.17.0...0.18.0
0.17.0
- Reimplemented "select into".
- Reimplemented Sample, Analyze, List, Alter, Rebuild, Set, Kill, and Exec.
- Reimplemented system functions.
- Resolved issue with "select top" when offset is not specified.
- Client package update.
Full Changelog: 0.16.0...0.17.0
0.16.0
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
- Implementation of robust parser in PR #68
Full Changelog: 0.15.0...0.16.0
0.15.0
- Separated thread pools for indexing and lookup operations.
- Added full support for composite index seeks and scans.
- Vastly improved query optimizer.
- Added API to show query plan and order of operations, this is also available in the UI.
- Added finer granularity and additional categories to performance trace operations
- Performance counter refactoring.
- Removed element compression in favor of full page compression for better performance and space usage
- Greatly improved locking and concurrency. Much less contention and higher performance.
Full Changelog: 0.14.0...0.15.0
0.14.0
- Updated reliable messaging to allow async queries. Each connection can now handle more than one query at a time.
- Added configurable child thread pool queue depth.
- Updated delegate thread pooling to allows for consolidation of thread exceptions and process cancelation.
- Improved semaphore locking.
- Query explain, attached conditions to root schema, removed double optimize
- Cleaned up condition/indexing explanation.
- Cleaning up condition parser.
- Added condition inversion.
- Resolved selecting dynamic fields from specific schemas.
- Exception formatting.
- Added aggregate exception to one threaded call, need to do others.
- Condition parser improvements, thread exceptions, perf and refactoring.
- Added ShowVersion, faster string comparison, much faster like comparison
Full Changelog: 0.13.0...0.14.0
0.13.0
- Added: SystemProcedures and SystemAggregateFunctions
- Added serilog.
- Removed delayed document materialization.
- Removed stability lock conversion.
- Corrected index analytics for root node calculations.
- Fixed parser issue which was not tagging NULL as a constant.
- Resolved null equality issues.
- Resolved issue where constant values were not filled out on one-to-many relationships.
- Vastly improved exception reporting.
- Refactoring of expressions, sub-expressions and conditions.
Full Changelog: 0.12.0...0.13.0