Yu-Gi-Oh! Deck Building and Card Inventory Management web interface written in Common Lisp, utilizing HTMX.
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

41 строка
1.1KB

  1. #|
  2. SQLite has a built-in schema table where you can do a level of
  3. introspection on the database. I've used this functionality a few
  4. times now so this encapsulates that behavior.
  5. |#
  6. (in-package #:cl-deck-builder2.models.sqlite-schema)
  7. ;; https://www.sqlite.org/schematab.html
  8. (defclass sqlite-schema ()
  9. ((type :col-type :text)
  10. (name :col-type :text)
  11. (tbl-name :col-type :text)
  12. (rootpage :col-type :integer)
  13. (sql :col-type :text))
  14. (:auto-pk nil)
  15. (:record-timestamps nil)
  16. (:metaclass mito:dao-table-mixin))
  17. (defgeneric kind-of (obj)
  18. (:method ((sqlite-schema sqlite-schema))
  19. (slot-value sqlite-schema 'type)))
  20. (defmethod name-of ((sqlite-schema sqlite-schema))
  21. (slot-value sqlite-schema 'name))
  22. (defgeneric rootpage-of (obj)
  23. (:method ((sqlite-schema sqlite-schema))
  24. (slot-value sqlite-schema 'rootpage)))
  25. (defgeneric sql-of (obj)
  26. (:method ((sqlite-schema sqlite-schema))
  27. (slot-value sqlite-schema 'sql)))
  28. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  29. (defun table-names ()
  30. (mapcar #'name-of
  31. (select-dao 'sqlite-schema)))