DeveelDB SQL-99 Embedded System


#1

Hi All!

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 antonello@deveel.org

The unfinished components (sorted by importance) of the system are:

  1. Tranaction Isolations: to be reviewed the Serialiable and to implement the others
  2. Loop controlling: in the routines (stored procedures and functions) body, controlling the exit from a loop (GOTO, EXIT and RETURN)
  3. 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)
  4. 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 SELECT on those columns; the current indices are optimized for that, but with no analysis and basic support for extending the options
  5. System Functions: finishing the implementation of the system functions
  6. External Functions: the possibility to delegate the execution of an SQL user-defined function to a static .NET method of an external assembly
  7. LINQ Interface: there is an initial external project for providing LINQ support, but must be reviewed and finished
  8. Code Coverage: the current state of the coverage is below 50% and it would be great to write some more test scenarios for testing.
  9. GIS Functions: The GEOMETRY type is implemented as an external type (through the Types API) and must be a) extended and b) verified through tests
  10. XML Support: An XML_TYPE has 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.

Cheers!
Antonello


#2

Nice love it. Looking to contribute to it.


#3

Hi @shahid_pk !
Thank you for your appreciation! I look forward to collaborating with you :wink:
for any information, you can send me an email at antonello@deveel.org or check in the gitter channel at the Gitter channel of DeveelDB

Cheers!
Antonello


.NET Foundation Website | Blog | Projects | Code of Conduct