From b777445ebf36d808ecfb47b5e41d2f386113f346 Mon Sep 17 00:00:00 2001 From: Richard Newman Date: Tue, 4 Oct 2016 11:38:14 -0700 Subject: [PATCH] Sort variable sets to make tests consistent across platforms. --- src/common/datomish/query/cc.cljc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/common/datomish/query/cc.cljc b/src/common/datomish/query/cc.cljc index 6f56831d..021e9bf1 100644 --- a/src/common/datomish/query/cc.cljc +++ b/src/common/datomish/query/cc.cljc @@ -62,7 +62,7 @@ [source from ; [[:datoms 'datoms123]] external-bindings ; {?var0 (sql/param :foobar)} - bindings ; {?var1 :datoms123.v} + bindings ; {?var1 [:datoms123.v]} known-types ; {?var1 :db.type/integer} extracted-types ; {?var2 :datoms123.value_type_tag} wheres ; [[:= :datoms123.v 15]] @@ -162,6 +162,8 @@ bindings)) ;; This is so we can link clauses to the outside world. +;; Note that we sort the variable list to achieve consistent ordering between +;; Clojure and ClojureScript, yielding sane tests. (defn- impose-external-bindings [cc] (if (empty? (:external-bindings cc)) cc @@ -177,7 +179,7 @@ (assert external) (assert internal) [:= external internal])) - vars))))) + (sort vars)))))) (defn expand-where-from-bindings "Take the bindings in the CC and contribute @@ -187,7 +189,7 @@ (impose-external-bindings (assoc cc :wheres ;; Note that the order of clauses here means that cross-pattern var bindings - ;; come last That's OK: the SQL engine considers these altogether. + ;; come last. That's OK: the SQL engine considers these altogether. (concat (:wheres cc) (bindings->where (:bindings cc))))))