Some of you have been following Mono since the beginning, more than 2 years ago, so probably have seen the name DeveelDB floating around, as I posted already to the channels related to Mono some times during the years.
In fact, DeveelDB is a fully-featured SQL-99 RDBMS written in C# and oriented primarily to embedded systems: it was created very long time ago, at the beginning of .NET, with the name Minosse RDBMS: the name was changed when I became, for short time, a freelancer and I wanted to try to build a business out of it, naming it after my company (Deveel), now defunct (I’m employed by a TLC as architect and project manager).
Approximately one year ago (at date of 28.10.2015) I decided to reboot it from scratch: the original project was a university project, which included code from ported projects (eg. CSharpCC ported from JavaCC by myself, java.lang.math, etc.), a very low code coverage, no possibility to extend it and use it in different contexts, and several other issues.
In any case, the original project never had much success, so it was easy to drop it and restart.
At the GitHub space of the new project it is possible to find the new version, that is still under construction and mostly working. Anyway, I must confess I feel a bit alone at the moment.
As you can image, the work on such project is big and spanning several areas of the SQL model and the time required to implement and cover all is long, especially when you have a regular job that takes out long hours during the week.
If you are interested in contributing, even not in the core system, you’re welcome to contact me at email@example.com
The unfinished components (sorted by importance) of the system are:
- Tranaction Isolations: to be reviewed the Serialiable and to implement the others
Loop controlling: in the routines (stored procedures and functions) body, controlling the exit from a loop (
- Transaction lifecycle in remote connections: the execution of commands and statements in the system happens within a query context, wrapped around a transaction, and when disposed it disposes the transaction object also; remote transactions can be auto-commit to persist information, and at this moment they die. (fixed)
Full-Text Index: the system should be able to create indexes on string columns based on a search engine (eg. Lucene.NET) to optimize the
SELECTon those columns; the current indices are optimized for that, but with no analysis and basic support for extending the options
- System Functions: finishing the implementation of the system functions
- External Functions: the possibility to delegate the execution of an SQL user-defined function to a static .NET method of an external assembly
- LINQ Interface: there is an initial external project for providing LINQ support, but must be reviewed and finished
- Code Coverage: the current state of the coverage is below 50% and it would be great to write some more test scenarios for testing.
GIS Functions: The
GEOMETRYtype is implemented as an external type (through the Types API) and must be a) extended and b) verified through tests
XML Support: An
XML_TYPEhas been implemented as an external type, but it is not tested at all.
Thank you very much for the support anyone will be willing to give to the project. Please, feel free to post requests, critics, suggestions.