summaryrefslogtreecommitdiff
path: root/lisp/sqlite-mode.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/sqlite-mode.el')
-rw-r--r--lisp/sqlite-mode.el14
1 files changed, 11 insertions, 3 deletions
diff --git a/lisp/sqlite-mode.el b/lisp/sqlite-mode.el
index ba1b81ef7e2..66e2e487d9c 100644
--- a/lisp/sqlite-mode.el
+++ b/lisp/sqlite-mode.el
@@ -129,15 +129,23 @@
(insert (format " %s\n" column))))))))
(defun sqlite-mode--column-names (table)
+ "Return a list of the column names for TABLE."
(let ((sql
(caar
(sqlite-select
sqlite--db
"select sql from sqlite_master where tbl_name = ? AND type = 'table'"
(list table)))))
- (mapcar
- #'string-trim
- (split-string (replace-regexp-in-string "^.*(\\|)$" "" sql) ","))))
+ (with-temp-buffer
+ (insert sql)
+ (mapcar #'string-trim
+ (split-string
+ ;; Extract the args to CREATE TABLE. Point is
+ ;; currently at its end.
+ (buffer-substring
+ (1- (point)) ; right before )
+ (1+ (progn (backward-sexp) (point)))) ; right after (
+ ",")))))
(defun sqlite-mode-list-data ()
"List the data from the table under point."