           (every? map? %)]}
   (let [num-cols (count (:result-keys query))
         cols     (vec (lvars num-cols))]
-    (first (run 1 [q]
-             (== q cols)
-             (distincto q)
-             (everyg (partial fieldo query) q)
-             (everyg (fn [i]
-                       (fields< query (cols i) (cols (inc i))))
-                     (range 0 (dec num-cols)))))))
+    (time (first (run 1 [q]
+                   (== q cols)
+                   (distincto q)
+                   (everyg (partial fieldo query) q)
+                   (everyg (fn [i]
+                             (fields< query (cols i) (cols (inc i))))
+                           (range 0 (dec num-cols))))))))
 
 
 ;;; # ---------------------------------------- COLUMN DETAILS  ----------------------------------------

  (let [fields (transient [])]
    (clojure.walk/prewalk (fn [f]
                            (if-not (= (type f) metabase.driver.query_processor.expand.Field) f
                                    (conj! fields f)))
                          query)
    (assoc query
           :result-keys  (vec (sort (keys (first results))))

(defn post-annotate [qp]
  (fn [query]
    (let [results (qp query)
          cols    (->> (query-add-info (:query query) results)
                       resolve+order-cols
                       (map format-col)
                       add-fields-extra-info)
          columns (map :name cols)]
      {:cols    (vec (for [col cols]
                       (update col :name name)))
