[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/emacsql 1e9857ccc4 103/427: Allow variables inside vectors
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/emacsql 1e9857ccc4 103/427: Allow variables inside vectors. |
Date: |
Tue, 13 Dec 2022 02:59:32 -0500 (EST) |
branch: elpa/emacsql
commit 1e9857ccc450cf339ea6dd4b144e57e219c3be9b
Author: Christopher Wellons <wellons@nullprogram.com>
Commit: Christopher Wellons <wellons@nullprogram.com>
Allow variables inside vectors.
---
emacsql.el | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/emacsql.el b/emacsql.el
index 4e3875a12b..6f7596648b 100644
--- a/emacsql.el
+++ b/emacsql.el
@@ -413,6 +413,17 @@ definitions for return from a `emacsql-defexpander'."
(declare-function combine nil (expanded))
(declare-function var nil (thing kind))
+(defun emacsql--vector (vector)
+ "Expand VECTOR, making variables as needed."
+ (emacsql-with-vars ""
+ (cl-etypecase vector
+ (symbol
+ (var vector :vector))
+ (list
+ (mapconcat (lambda (v) (combine (emacsql--vector v))) vector ", "))
+ (vector
+ (format "(%s)" (mapconcat (lambda (x) (var x :value)) vector ", "))))))
+
(defun emacsql--expr (expr)
"Expand EXPR recursively."
(emacsql-with-vars ""
@@ -498,7 +509,7 @@ definitions for return from a `emacsql-defexpander'."
(emacsql-defexpander :values (values)
(emacsql-with-vars "VALUES "
- (var values :vector)))
+ (combine (emacsql--vector values))))
(emacsql-defexpander :update (table)
(emacsql-with-vars "UPDATE "
- [nongnu] elpa/emacsql 01f3d3eb2b 316/427: Fallback to buffer-file-name when load-file-name is nil, (continued)
- [nongnu] elpa/emacsql 01f3d3eb2b 316/427: Fallback to buffer-file-name when load-file-name is nil, ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 02acd07072 328/427: Ensure executable variable is defined at compile time., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 2ffcc95c67 338/427: Fix a typo in the doc-string of emacsql-with-params., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 74bd11bc09 334/427: Fix up package description headers., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 5df2891557 349/427: Use cl-generic package, ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql e8c090e11f 353/427: Improve Makefile portability and dump Cask, ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 0ba12b89d5 084/427: Drop "work in progress.", ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 364bf466ea 086/427: Linkify the issue in the README., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql dd3f153406 089/427: Drop old with-errors macro., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 72c1954517 096/427: Block on connection until the output has flushed., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 1e9857ccc4 103/427: Allow variables inside vectors.,
ELPA Syncer <=
- [nongnu] elpa/emacsql 8a66563af6 105/427: Combine :insert and :into., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql d04ef64ce0 109/427: Add IF NOT EXISTS and TEMPORARY to CREATE TABLE., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 58641b9827 115/427: Fill out keywords in README., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql fc941d7c75 118/427: Capture a common identifier vector pattern., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql a09911a205 125/427: Add LIMIT and OFFSET expanders., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 8945af0dd8 129/427: Add :check and allow schemas to have variables., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 4206b17f39 134/427: Add support for AS with CREATE TABLE., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 6c32f02139 137/427: Add emacsql-thread macro., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 54c180017e 138/427: Add :pragma and note in README., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 5e2ab842f7 139/427: Add foreign key test., ELPA Syncer, 2022/12/13