Skip to content

Commit

Permalink
optimize select - use object for storing options
Browse files Browse the repository at this point in the history
  • Loading branch information
ujjwalguptaofficial committed Jul 27, 2020
1 parent bb7b495 commit 6d83202
Showing 1 changed file with 9 additions and 17 deletions.
26 changes: 9 additions & 17 deletions src/grammar/select.pegjs
Original file line number Diff line number Diff line change
@@ -1,25 +1,21 @@


selectQuery = SELECT _+ ("*"_+)? as: asQuery? aggr:aggregateQry? FROM _ table:tableName _* join:joinQry* _* where:whereQry? _*
option:(skip/limit/distinct/orderBy/groupBy)* {
var skip=null;
var limit=null;
var distinct = false;
var order = null;
var groupBy = null;
option.forEach(val=>{
options:(skip/limit/distinct/orderBy/groupBy)* {
const option = {};
options.forEach(val=>{
var key = Object.keys(val)[0];
switch(key){
case 'skip':
skip= val[key]; break;
option.skip= val[key]; break;
case 'limit':
limit= val[key]; break;
option.limit= val[key]; break;
case 'distinct':
distinct = val[key]; break;
option.distinct = val[key]; break;
case 'order':
order = val[key]; break;
option.order = val[key]; break;
case 'groupBy':
groupBy = val[key]; break;
option.groupBy = val[key]; break;
}
});
let modifiedWhere ;
Expand Down Expand Up @@ -66,11 +62,7 @@ option:(skip/limit/distinct/orderBy/groupBy)* {
data:{
from:table,
where:modifiedWhere,
skip:skip,
limit:limit,
distinct : distinct,
order:order,
groupBy:groupBy,
...option,
aggregate : aggr,
join:join.length===0?null:join
}
Expand Down

0 comments on commit 6d83202

Please sign in to comment.