(in-package #:cl-deck-builder2-test)

(defun ensure-unique (class field)
  "The idea is to select COUNT(*) and then GROUP BY (field) and see if
the number of entries returned is the same."
  (let ((count-1
          (with-datafly-transaction (db)
            (datafly:retrieve-one
             (sxql:select ((:as (:count :id) :count))
               (sxql:from
                (sxql:make-sql-symbol (mito.class:table-name (find-class class))))))))
        (count-2
          (with-datafly-transaction (db)
            (datafly:retrieve-one
             (sxql:select ((:as (:count :id) :count))
               (sxql:from
                (sxql:make-sql-symbol (mito.class:table-name (find-class class))))
               (sxql:group-by field))))))
    (eq (getf count-1 :count)
        (getf count-2 :count))))
