diff --git a/org-roam-db.el b/org-roam-db.el index 93f2ad6..4e02c32 100644 --- a/org-roam-db.el +++ b/org-roam-db.el @@ -36,40 +36,6 @@ (defvar org-outline-path-cache) ;;; Options -(defcustom org-roam-database-connector (if (and (progn - (require 'emacsql-sqlite-builtin nil t) - (functionp 'emacsql-sqlite-builtin)) - (functionp 'sqlite-open)) - 'sqlite-builtin - 'sqlite-module) - "The database connector used by Org-roam. -This must be set before `org-roam' is loaded. To use an alternative -connector you must install the respective package explicitly. -If you are using Emacs 29 or newer, then the default connector is -`sqlite-builtin', which uses the new builtin support for SQLite. -You need to install the `emacsql-sqlite-builtin' package to use -this connector. -If you are using an older Emacs release, then the default -connector is `sqlite-module', which uses the module provided by -the `sqlite3' package. This is very similar to the previous -connector and the built-in support in Emacs 29 derives from this -module. You need to install the `emacsql-sqlite-module' package -to use this connector. -For the time being `libsqlite3' is still supported. Do not use -this, it is an older version of the `sqlite-module' connector -from before the connector and the package were renamed. -For the time being `sqlite3' is also supported. Do not use this. -This uses the third-party `emacsql-sqlite3' package, which uses -the official `sqlite3' cli tool, which is not intended -to be used like this. See https://nullprogram.com/blog/2014/02/06/." - :package-version '(forge . "0.3.0") - :group 'org-roam - :type '(choice - (const sqlite-builtin) - (const sqlite-module) - (const :tag "libsqlite3 (OBSOLETE)" libsqlite3) - (const :tag "sqlite3 (BROKEN)" sqlite3))) - (defcustom org-roam-db-location (locate-user-emacs-file "org-roam.db") "The path to file where the Org-roam database is stored. @@ -153,31 +119,6 @@ ROAM_REFS." (gethash (expand-file-name (file-name-as-directory org-roam-directory)) org-roam-db--connection)) -(declare-function emacsql-sqlite3 "ext:emacsql-sqlite3") -(declare-function emacsql-libsqlite3 "ext:emacsql-libsqlite3") -(declare-function emacsql-sqlite-builtin "ext:emacsql-sqlite-builtin") -(declare-function emacsql-sqlite-module "ext:emacsql-sqlite-module") - -(defun org-roam-db--conn-fn () - "Return the function for creating the database connection." - (cl-case org-roam-database-connector - (sqlite-builtin - (progn - (require 'emacsql-sqlite-builtin) - #'emacsql-sqlite-builtin)) - (sqlite-module - (progn - (require 'emacsql-sqlite-module) - #'emacsql-sqlite-module)) - (libsqlite3 - (progn - (require 'emacsql-libsqlite3) - #'emacsql-libsqlite3)) - (sqlite3 - (progn - (require 'emacsql-sqlite3) - #'emacsql-sqlite3)))) - (defun org-roam-db () "Entrypoint to the Org-roam sqlite database. Initializes and stores the database, and the database connection. @@ -186,11 +127,8 @@ Performs a database upgrade when required." (emacsql-live-p (org-roam-db--get-connection))) (let ((init-db (not (file-exists-p org-roam-db-location)))) (make-directory (file-name-directory org-roam-db-location) t) - (let ((conn (funcall (org-roam-db--conn-fn) org-roam-db-location))) + (let ((conn (emacsql-sqlite-open org-roam-db-location))) (emacsql conn [:pragma (= foreign_keys ON)]) - (when-let* ((process (emacsql-process conn)) - (_ (processp process))) - (set-process-query-on-exit-flag process nil)) (puthash (expand-file-name (file-name-as-directory org-roam-directory)) conn org-roam-db--connection) diff --git a/org-roam-utils.el b/org-roam-utils.el index 0b88cf1..11efcc2 100644 --- a/org-roam-utils.el +++ b/org-roam-utils.el @@ -449,8 +449,10 @@ See ." (quit "N/A")))) (insert (format "- Org: %s\n" (org-version nil 'full))) (insert (format "- Org-roam: %s" (org-roam-version))) - (insert (format "- sqlite-connector: %s" org-roam-database-connector)))) - + (insert (format "- sqlite-connector: %s" + (if-let ((conn (org-roam-db--get-connection))) + (eieio-object-class conn) + "not connected"))))) (provide 'org-roam-utils) ;;; org-roam-utils.el ends here