72 Commits

Author SHA1 Message Date
Dan Spencer
3ac37d4f1e Parsed number literals as signed integer first 2015-04-16 10:30:38 -06:00
Dan Spencer
3c91650cc5 Add error message for attempting to insert NULL into non-NULL column 2015-04-16 10:21:27 -06:00
Dan Spencer
c860b2dd72 INSERT can now insert expressions 2015-04-16 10:21:05 -06:00
Dan Spencer
325e0709e6 Implement negate operator 2015-04-16 05:31:36 -06:00
Dan Spencer
1c9e7251f8 Add MIN, MAX aggregate functions 2015-04-16 04:30:24 -06:00
Dan Spencer
8b4152d25f AggregateFunction takes self: Box<Self> as argument 2015-04-16 04:15:03 -06:00
Dan Spencer
5c78ed84f8 Remove "first" aggregate function; it's not useful 2015-04-16 01:53:55 -06:00
Dan Spencer
10d2b5002f Use lisp-case for sexpression names 2015-04-15 14:34:49 -06:00
Dan Spencer
5fb3556641 Add error messages to the query execution module 2015-04-14 19:38:46 -06:00
Dan Spencer
2a8a588a21 Print execution time for queries 2015-04-14 19:12:18 -06:00
Dan Spencer
9eac1ae154 Update README and Usage guide 2015-04-14 16:56:53 -06:00
Dan Spencer
ede4a560fb Add travis script 2015-04-14 05:06:00 -06:00
Dan Spencer
710fe31858 Implement NULL columns 2015-04-14 03:05:32 -06:00
Dan Spencer
0f7f2e20a9 Remove bit-rotting B+Tree and pager implementations
These will likely be merged back in once their implementations are
complete.
2015-04-14 01:32:14 -06:00
Dan Spencer
5d3e889008 Fix unused variables, dead code 2015-04-14 01:30:45 -06:00
Dan Spencer
42985e09d7 Move "helper" ColumnValueOps functions into ColumnValueOpsExt
It desirable to keep ColumnValueOps small in order to reduce the
potential for logic errors in different ColumnValueOps implementations.
2015-04-14 00:34:05 -06:00
Dan Spencer
77153c1ac9 Parse NULL in expressions 2015-04-13 20:45:39 -06:00
Dan Spencer
ca2bad3fde Implement comparison operators: >, >=, <, <= 2015-04-13 20:36:07 -06:00
Dan Spencer
1bf11fd805 Adjust SExpression output 2015-04-13 08:35:24 -06:00
Dan Spencer
0314909581 HAVING 2015-04-13 08:33:22 -06:00
Dan Spencer
0060e5ac68 Add LICENSE 2015-04-13 07:47:00 -06:00
Dan Spencer
ddb28e6d04 COUNT(*) 2015-04-13 07:45:04 -06:00
Dan Spencer
f3e8a4e987 GROUP BY 2015-04-13 07:09:45 -06:00
Dan Spencer
15416d0e05 Properly yield scalar columns in grouped queries 2015-04-13 06:46:19 -06:00
Dan Spencer
6f9c43d8e6 Execute basic arithmetic operators 2015-04-13 06:46:19 -06:00
Dan Spencer
4b85ff0323 Add divide operator to parser 2015-04-13 06:46:19 -06:00
Dan Spencer
54e957ad24 Add number casts to Variant 2015-04-13 06:46:18 -06:00
Dan Spencer
2e72444919 Start implementing other aggregate functions, such as SUM 2015-04-13 06:46:18 -06:00
Dan Spencer
b43265336d Aggregate functions actually execute now! 2015-04-13 06:46:18 -06:00
Dan Spencer
4b76b7fe81 Add conversion methods to ColumnValueOps 2015-04-13 06:46:18 -06:00
Dan Spencer
ba3f05eb0e Query planner solves aggregate function calls! 2015-04-13 04:34:20 -06:00
Dan Spencer
172d98a5b8 Initialize env_logger to CLI 2015-04-13 04:34:19 -06:00
Dan Spencer
6e06d129b7 Fix indentation in SExpression format 2015-04-13 04:34:19 -06:00
Dan Spencer
56c7013c51 GroupInfo; more aggregate work 2015-04-13 04:34:19 -06:00
Dan Spencer
5da5d8a77f Change Compiler into QueryCompiler, new one for each query and subquery
Add query id
2015-04-13 04:34:19 -06:00
Dan Spencer
f4d0841224 Use incrementing source id variable inside Compiler, not callback 2015-04-13 04:34:19 -06:00
Dan Spencer
a4404ce2fe Move SELECT compilation into its own method 2015-04-13 04:34:19 -06:00
Dan Spencer
8a5d628bba Simplify SourceScope
Replace ColumnNames with Vec<Identifier>
Make fields private
2015-04-13 04:34:18 -06:00
Dan Spencer
f7c347a7ce Don't build FROM+WHERE from SourceScope data 2015-04-13 04:34:18 -06:00
Dan Spencer
67e13d6298 Refactor query plan compiler into a Compiler type 2015-04-13 04:34:18 -06:00
Dan Spencer
8788fc4a01 Move FROM and WHERE compilation to its own function 2015-04-13 04:34:18 -06:00
Dan Spencer
f85dd49dee ColumnValue requires Eq and Hash traits, add GroupBuckets 2015-04-13 04:34:18 -06:00
Dan Spencer
c378a78900 Add F64NoNaN type 2015-04-13 04:34:18 -06:00
Dan Spencer
f97cd59c98 Change Group::iter() to iterate Cow instead of Box 2015-04-06 03:17:48 -06:00
Dan Spencer
070193303f Start implementing TempGroupBy and AggregateOp 2015-04-06 01:27:01 -06:00
Dan Spencer
b062645798 Rustup 2015-04-05 00:58:29 -06:00
Dan Spencer
b325f3c064 Implement boolean logic using three-valued logic (3VL) 2015-04-04 11:09:04 -06:00
Dan Spencer
3da60e6c29 Add Group trait, used to yield rows and perform aggregate functions. 2015-03-31 19:41:38 -06:00
Dan Spencer
71eda59e5c Fix key-length offset bug 2015-03-30 15:49:19 -06:00
Dan Spencer
6cbb4d76b0 Add hardcoded test data to the CLI. 2015-03-30 15:39:47 -06:00