Commit Graph

38 Commits

Author SHA1 Message Date
Zach Musgrave
9a2272740b Replaced forked mysql parser with vitess.io 2019-06-25 16:56:13 -07:00
Zach Musgrave
02f4cf6274 Broke up sqlutil into several different files by function. 2019-05-28 13:02:45 -07:00
Zach Musgrave
83304a7788 Fixed more bugs with case-insensitive ambiguity for table names in selects 2019-05-24 16:57:03 -07:00
Zach Musgrave
df6a0fc9fe Case insensitive matching for column and table names 2019-05-24 15:05:18 -07:00
Zach Musgrave
18b8cb8cd0 Column aliases resolve in the order by but not the where clause. Now to fix problems with result set column names. 2019-05-24 12:37:19 -07:00
Zach Musgrave
9f22cade78 Getting closer. Case-insensitive works better now, but now need to support column aliases only in some contexts, which means splitting up table and column aliases in a big refactor. 2019-05-24 11:57:34 -07:00
Zach Musgrave
b7e7ce68a4 First pass at case-insensitivity. Applies only to column names so far. 2019-05-23 16:41:59 -07:00
Zach Musgrave
a2cc88d9b5 Fixed error message for select without a table. 2019-05-22 13:50:33 -07:00
Zach Musgrave
89914439b5 Added support for unary expressions. Still needs some work. 2019-05-20 15:42:11 -07:00
Zach Musgrave
0cd4ab8dc4 Support ordering by a column not selected, and added additional tests of joins and order by 2019-05-10 16:59:13 -07:00
Zach Musgrave
48c2f2a56c First pass at order by, only smoke test. Also extracted a constant for unknown column error messages. 2019-05-10 14:13:24 -07:00
Zach Musgrave
56c4261f30 Added support for UUID columns in create table statements 2019-05-08 16:49:27 -07:00
Zach Musgrave
171b985ad8 Support for boolean and unsigned integer types in SQL create statements. 2019-05-08 13:55:38 -07:00
Zach Musgrave
0bd91784b1 Refactored binary expression logic in sql util, added test for binary expression in update statements. 2019-05-06 15:53:02 -07:00
Zach Musgrave
f8bf738dc0 Implemented binary expression evaluation (e.g. addition, subtraction. Only works in the where clause, not the expression list, and has a few bugs. 2019-05-06 14:58:59 -07:00
Zach Musgrave
0755df13a3 Added type checking for is true, is false, etc 2019-05-06 12:18:23 -07:00
Zach Musgrave
bb87dcd96d Implemented is null / is true and their converses 2019-05-06 12:09:11 -07:00
Zach Musgrave
60698667cb Update now supports the full set of types that select does 2019-05-06 10:09:12 -07:00
Zach Musgrave
5b4394307c Added support for in and not in clauses. Breaking test for updating a column to another column value. 2019-05-06 09:26:39 -07:00
Zach Musgrave
6c5c69a461 Implemented the join keyword. Also gave the schema class a Stringer implementation to make debug messages better. 2019-04-30 14:23:40 -07:00
Zach Musgrave
5e50800257 Fixed the issue where columns in the where clause must also be present in the selected column list. Accomplished by using an intermediate result schema and adding a final transform to convert rows to the final result schema. 2019-04-30 09:15:26 -07:00
Zach Musgrave
b591350b35 Resolve columns in the where clause. Maybe not working 100% but not breaking anything. 2019-04-30 09:15:26 -07:00
Zach Musgrave
4ce7f2fbfe Implemented and, or clauses 2019-04-30 09:15:26 -07:00
Zach Musgrave
dcc2e4cc85 Fixed bug with handling column aliases in comparisons 2019-04-30 09:15:26 -07:00
Zach Musgrave
d57cc4f92a Working joins. This won't work for all possible queries and needs more tests, but it's a good start. In particular, it won't work when a join condition references a column that isn't selected. The main issue at this point is that the fields used in comparisons don't have the same tag numbers as the result set in many cases. 2019-04-30 09:15:26 -07:00
Zach Musgrave
c55d394b95 Closer to working joins without breaking any existing supported queries. Mostly this involves doing a more intelligent job resolving column expressions to their source table and schema. 2019-04-30 09:15:26 -07:00
Zach Musgrave
617d84f89d Cleaned up one more switch case with duplicate code 2019-04-30 09:15:26 -07:00
Zach Musgrave
9b29512150 Rewrote where clause handling in preparation for making it work with joins 2019-04-30 09:15:26 -07:00
Zach Musgrave
455631b2ce Checkpoint: changed the types of several fields related to select statement parsing 2019-04-23 14:52:04 -07:00
Zach Musgrave
b02c0110f7 Added support for a where expression with just a boolean column (where boolColumn). Added more tests of boolean columns. 2019-04-17 17:00:32 -07:00
Zach Musgrave
732ff32cdc Added type checking for where clauses 2019-04-17 17:00:32 -07:00
Zach Musgrave
07b3870a5c Implemented column alias support for where clauses, fixed a bug in comparisons where a literal value on the left side of a < or <= would give the opposite result 2019-04-17 17:00:32 -07:00
Zach Musgrave
4719979ba6 Added an Aliases struct to contain column aliases info from queries. This change just introduces the new struct, no functional changes. 2019-04-17 17:00:32 -07:00
Brian Hendriks
bced74cdaa schema as sql create table statements 2019-04-17 10:09:42 -07:00
Zach Musgrave
1a85f131c4 Addressed review feedback and extracted a constant for the printed NULL value, used it everywhere. 2019-04-17 09:34:36 -07:00
Zach Musgrave
457bd83041 Implemented column aliases in select statements. 2019-04-15 16:41:50 -07:00
Zach Musgrave
06dec8bd9f Refactored sql insert, select, and update to pull out common code dealing with parser AST into a util file 2019-04-12 16:34:56 -07:00
Zach Musgrave
979f653a65 Skeleton for DDL create statement handling 2019-04-02 15:24:17 -07:00