Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

we need to create "SharpDBMS Development Group" #1

Open
ArsenShnurkov opened this issue Jul 25, 2015 · 5 comments
Open

we need to create "SharpDBMS Development Group" #1

ArsenShnurkov opened this issue Jul 25, 2015 · 5 comments

Comments

@ArsenShnurkov
Copy link

The state of art as of 2015:

== Java-originated efforts ==

1998, There was 1st pure java database = Hypersonic SQL (Thomas Mueller)
2001-10, SharpHSQL (Mark Tutt) port to C# (see http://www.codeproject.com/KB/database/sharphsql.aspx )
my nonworking EF6 provider for that - https://github.com/ArsenShnurkov/SharpHSQL/tree/master/src/SharpHsql.Linq

2001, Thomas Mueller joined PointBase Inc. where he wrote PointBase Micro, a commercial Java SQL database.

2001-03, "HSQLDB Development Group" is formed ( see http://hsqldb.org/web/hsqlDevelopment.html )
2010-06-06, HyperSQL 2.0 released, SQL-92 support completed (almost, see http://hsqldb.org/web/features200.html )
2015-06-30 - HyperSQL 2.3.3 (BSD) latest release ( see http://hsqldb.org/doc/2.0/changelist_2_0.txt )

2004-05, Hypersonic 2 (MPL/EPL) started ( see http://h2database.com/html/history.html )
2008-01, IKVM conversion of H2 to .dll (see https://groups.google.com/forum/#!topic/h2-database/QAvFqbyd4_0 )
2008-06, H2Sharp (=.Net providers over IKVM result) was created ( https://code.google.com/p/h2sharp/ )

== pure C# engines ==

There are also several independent projects:

-- UPD:
2011-03, csharp-sqlite,
C#, MIT
it is moving from google code to github, details are not published yet
(many clones exist on github now, ?? https://github.com/opless/csharp-sqlite )

from your comment (https://github.com/ruffin--/SqlDbSharp/issues/3#issuecomment-125018274 ):
2009-09-30, DeveelDB = https://github.com/deveel/deveeldb
C#, GPL v3 ( https://github.com/deveel/deveeldb/blob/master/src/deveeldb-server/LICENSE )
BSD license is mentioned on page http://www.codeproject.com/Articles/43241/DeveelDB-A-Brief-Introduction
-- :UPD

I think, we need to create "SharpDBMS Development Group" or similar, to catch up with Java rivals.

@ruffin--
Copy link
Owner

Though you have it in the StepsDB issue you posted, it's worth adding csharp-sqlite (though note that that link should break in August. There's a post that they'll move to GitHub at some point).

First, a quick reply to the issue you raised on StepsDB:

SqlDbSharp doesn't support WHERE clause

Okay, whoa, yes it does! It doesn't support OR well yet, but you can WHERE with AND quite a bit! ;^)

I'm not going to pretend SqlDbSharp is great -- it looks like NetBase has done a much better job with parsing than the rats' nest I currently have, for instance, though the license (LGPL on CodeProject and GPL on GitHub) is much more restrictive. Not absolutely sure what StepsDB is doing. It doesn't seem to have a SQL parser, and mentions third parties. Is it an overlay on top of (or under) other engines?

I hope SqlDbSharp gets better the more I "really" use it on other projects (indexing is probably next), but it's not like I'm doing high-level comp sci; more just practical bit pushing. So though I'm really happy to see someone bring C# native DBMSs together, I'm more about day-to-day usage (aka "mvp") than pushing forward DBMS tech.

What exactly did you have in mind? Do you just want to create a mailing list or something similar?

@ArsenShnurkov
Copy link
Author

Ideally, i want to have all useful code consolidated into single working solution (to be able to run EF6 examples on it).

Do you just want to create a mailing list or something similar?

may be register
https://github.com/SharpDBMS
create a web site (with apphb.com for example)
But it will not work well without DB :)
create a common repository to work together
(right now you are not agreed on licensing, as I understood)

@ruffin--
Copy link
Owner

Unfortunately, the closest project to establishing a "real" rdbms with native C# was, imo, csharp-sqlite, but it's been mothballed, as I understand it. In two years, there have been only two checkins, both on the same day in 2014.

Though I've used EF with SQL Server, honestly I'm unsure what would need to happen to get Entity Framework support in a dbms. EF is open source, though, so that's an answerable question.

Honestly, it looks like there are two strategies, if EF support is your goal. Either wait for a project to become mature enough that it wants to add it, or fork and start fooling around yourself. I'm not sure that the different projects you've listed have similar philosophies or goals... I know EF isn't next on my list.

Sorry to let this get so long, but what I'd like to see is a permissive-license (LGPL with exception, Apache, MPL, or MIT/BSD) generic, reusable parser library. I've wondered if Irony (more here) which supports SQL-89, isn't that project, but haven't taken the time to look, as my rats' nest parser is unfortunately working "well enough" for my uses now.

Aside on donor projects: I've tried to have SqlDbSharp focus on being accessible to new developers and modular (want to fix joins? You can do just that reasonably easily without fiddling with lots of other stuff) above all else, and I think it does reasonably well there, minus the horrible SQL parser. And the license is permissible enough that you can do most anything with your changes. If you do jump into EF and try using SqlDbSharp, let me know how you have trouble.

It might be worth checking into csharp-sqlite sort of as-is to see if it'd play nicely with EF6 or 7, but the time I messed with it, there was just too much overhead to make that engine a fun side project. Not sure how receptive the StepDB project is as a donor; I didn't grok it in 2 mins or less when I looked this morning. Have you built it?

It might be worth polling other C# projects to see what modular pain points they have, and collect those at a project or website you create. Just coordinating problems, looking for overlap, and working on or even just keeping track of work on possible solutions might be a good first step for you, if you're interested. I'd appreciate it.

HTH, let me know how I can help, and good luck.

@ArsenShnurkov
Copy link
Author

http://lists.ximian.com/pipermail/mono-list/2010-March/044652.html

2010-03-19, Relicensed from GPLv3 to Apache 2.0

http://www.codeproject.com/Articles/43241/DeveelDB-A-Brief-Introduction?msg=3646974#xx3646974xx

"I have to state, before explain furthermore, that the project DeveelDB has been discontinued for a bit, since I'm dedicating my efforts mostly to the project CloudB (I will probably write an article about it on CodeProject in future days).
The state of the code of DeveelDB is not very good actually: I wrote a TCP/IP server for allowing concurrency over networks (such as ASP.NET contexts, where the same instance of a DB is accessed by multiple pages/threads), but never finished.
The embedded version is thread-safe by default, but I wouldn't advise anyone to use a single static instance of a database system to handle the data of a challenging application such as a website (2010-10-26).

The locking on tables is exclusive by default, within serializable transaction isolation.

Said this, I'm working to refactor the whole solution with the latest code developed for CloudB (part of the code) and create a more coherent and stable application that can be run safely as a server as well."

https://github.com/deveel/cloudb

@tsutomi
Copy link

tsutomi commented Jul 28, 2015

@ArsenShnurkov I'm the owner of CloudB, as you can see: I'd be glad to support you if you need any help with your work (or even better, if you wish to collaborate).
CloudB has been temporarily put aside because I'm working on the version 2.0 of DeveelDB: I would like to take it back once I will have a beta version of DeveelDB 2.0.
Feel free to contact me or to fork the project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants