branch: elpa/emacsql commit f794d4d38fb1dece67b13ccb4465085e6100da97 Author: Christopher Wellons <well...@nullprogram.com> Commit: Christopher Wellons <well...@nullprogram.com>
Allow for selected columns in :insert-into. --- README.md | 1 + emacsql.el | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 46b2465ecb..318906e58a 100644 --- a/README.md +++ b/README.md @@ -166,6 +166,7 @@ Provides `INSERT INTO`. ```el [:insert-into employees ...] +[:insert-into (employees [id name]) ...] ``` #### :delete diff --git a/emacsql.el b/emacsql.el index 91be4b9b3a..548606715f 100644 --- a/emacsql.el +++ b/emacsql.el @@ -502,7 +502,12 @@ definitions for return from a `emacsql-defexpander'." (emacsql-defexpander :insert-into (table) "Expands to the INSERT INTO keywords." (emacsql-with-vars "INSERT INTO " - (var table :identifier))) + (cl-typecase table + (symbol (var table :identifier)) + (list (cl-destructuring-bind (name columns) table + (format "%s (%s)" (var name :identifier) + (mapconcat (lambda (c) (var c :identifier)) + columns ", "))))))) (emacsql-defexpander :where (expr) (emacsql-with-vars "WHERE "