Skip to content

Commit e00eae4

Browse files
Add type check for optimizations
1 parent 88d67d3 commit e00eae4

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

src/simple-eval.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -892,11 +892,11 @@ let compile = (q,userSettings={}) => {
892892
}
893893

894894
// ---- middle tier, imperative form ----
895-
if(settings.enableOptimizations) {
895+
if(settings.enableOptimizations && settings.schema) {
896896
q = optimizer.loopsConsolidate(q, vars);
897897
}
898898

899-
if (settings.extractAssignments && !(settings.enableOptimizations || settings.extractAssignmentsLate)) {
899+
if (settings.extractAssignments && !((settings.enableOptimizations && settings.schema) || settings.extractAssignmentsLate)) {
900900
// 8. Extract assignments
901901
q = extract2(q)
902902
}
@@ -906,12 +906,12 @@ let compile = (q,userSettings={}) => {
906906
assignments[i] = extract3(assignments[i])
907907
q = extract3(q)
908908

909-
if(settings.enableOptimizations) {
909+
if(settings.enableOptimizations && settings.schema) {
910910
// Assignments must not be extracted yet.
911911
q = optimizer.shrinking(q);
912912
}
913913

914-
if (settings.extractAssignments && (settings.enableOptimizations || settings.extractAssignmentsLate)) {
914+
if (settings.extractAssignments && ((settings.enableOptimizations && settings.schema) || settings.extractAssignmentsLate)) {
915915
for (let i in filters)
916916
filters[i] = extract2(filters[i])
917917
q = extract2(q)

test/original/optimizations.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ test("loop-consolidation", () => {
168168
).toBe(true);
169169

170170
let func3 = api.compileC2("sum(data.*A.value + data.*B.value)", typing.parseType({data: dataSchema}));
171-
console.log(func3.explain2.pseudo);
171+
172172
expect( // Check that both of the loops still exist
173173
func3.explain2.pseudo.match(/\\*B/g) !== null && func3.explain2.pseudo.match(/[*]A/g) !== null
174174
).toBe(true);

0 commit comments

Comments
 (0)