C# (CSharp) NetBase.Sql Namespace

Сlasses

Name Description
CreateTableQuery Clearly a query that creates a table. So for this we need a list of fields and a table name. At the moment the only datatype we support is a string, but we're preparing for datatypes with an inner class.
CreateTableQuery.CreateField
InsertQuery
Join Represents a join. It's an abstract class because the sql parser (QueryBuilder) now supports inner and outer joins, although the executive that actually runs the queries does not.
QueryBuilder This class responsible for parsing the SQL statement and creating a query object. Why haven't we used a parser generator... well, how would we ever learn anything? However, this is a very large class and could be broken down a little. The entry point is really the "Expression" function at the bottom. The key element here is really the tokenizer.
QuerySyntaxException
SelectQuery Unfortunately actually executing a select statement is quite a challenge; and such a large bit of code that it seems a bit out of place. Thus the "executive" namespace that actually deals with executing the queries; which may mean it would be a good idea to clean up the parsing by moving it into individual classes.
Tokenizer Does quite a lot of hard work to parse the query. Based on Jack Crenshaw's "Let's Build a compiler". I know, should really be using a parser generator, but the point is to learn how these kind of things work.
Where Stores details of where clauses. Actually, having the filter function in here is not consistent with the rest of the query engine, where the actual functionality is in the "executive" namespace