[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/emacsql 75c0c4aeb7 204/427: Tweak emacsql-with-bind macro.
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/emacsql 75c0c4aeb7 204/427: Tweak emacsql-with-bind macro. |
Date: |
Tue, 13 Dec 2022 02:59:42 -0500 (EST) |
branch: elpa/emacsql
commit 75c0c4aeb7c28b28c33e1a3d619d33a926007e1f
Author: Christopher Wellons <wellons@nullprogram.com>
Commit: Christopher Wellons <wellons@nullprogram.com>
Tweak emacsql-with-bind macro.
---
emacsql.el | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/emacsql.el b/emacsql.el
index f853df04d5..46a88a10c7 100644
--- a/emacsql.el
+++ b/emacsql.el
@@ -252,7 +252,7 @@ single transaction at the lowest level."
(not emacsql--completed))
(emacsql emacsql--connection [:rollback])))))
-(defmacro emacsql-with-bind (connection-sql-args &rest body)
+(defmacro emacsql-with-bind (connection sql-and-args &rest body)
"For each result row bind the column names for each returned row.
Returns the result of the last evaluated BODY.
@@ -261,12 +261,18 @@ allowed). Hint: all of the bound identifiers must be
known at
compile time. For example, in the expression below the variables
'name' and 'phone' will be bound for the body.
- (emacsql-with-bind (db [:select [name phone] :from people])
+ (emacsql-with-bind db [:select [name phone] :from people]
+ (message \"Found %s with %s\" name phone))
+
+ (emacsql-with-bind db ([:select [name phone]
+ :from people
+ :where (= name $1)] my-name)
(message \"Found %s with %s\" name phone))
Each column must be a plain symbol, no expressions allowed here."
- (declare (indent 1))
- (cl-destructuring-bind (connection sql . args) connection-sql-args
+ (declare (indent 2))
+ (let ((sql (if (vectorp sql-and-args) sql-and-args (car sql-and-args)))
+ (args (unless (vectorp sql-and-args) (cdr sql-and-args))))
(cl-assert (eq :select (elt sql 0)))
(let ((vars (elt sql 1)))
(when (eq '* vars)
- [nongnu] elpa/emacsql 3d556608ef 394/427: emacsql-mysql: Abort if mysql cannot be found, (continued)
- [nongnu] elpa/emacsql 3d556608ef 394/427: emacsql-mysql: Abort if mysql cannot be found, ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 568e663032 193/427: Fold dashes into underscores in identifiers., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql c85ab1f7b4 194/427: Enable foreign keys in SQLite by default., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql f51bb4bfaf 195/427: Allow foreign key specifications within columns., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql c4abd187a3 196/427: Remove junk file., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 3dfd0d4b8c 199/427: Fix missing argument typo., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 7341144e49 201/427: Fix ordering bug in emacsql--var-vars., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql d8d4bf4b98 202/427: Add emacsql-with-transaction macro., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql dc178532e5 203/427: Add emacsql-with-bind., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql cc92c154ee 205/427: Disallow nil as an identifier., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 75c0c4aeb7 204/427: Tweak emacsql-with-bind macro.,
ELPA Syncer <=
- [nongnu] elpa/emacsql 3f38b357c3 206/427: Detect empty SQL vectors (better error messages)., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql ad24b1c508 208/427: Add JOIN syntax., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql fe2eef212c 210/427: Fix header typo., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 89654ad76b 211/427: Add identifier note., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 543189295d 215/427: Drop the pointless autoloads., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 3127283cd1 218/427: Clean up middleware a bit., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql cf16cdb2f8 217/427: Add a special characters test., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql 2db4a84598 225/427: Allow os tuples to be specified as an env var., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql ba2fac7701 228/427: Update the README., ELPA Syncer, 2022/12/13
- [nongnu] elpa/emacsql af2cdddca1 231/427: Squash a bunch of bugs., ELPA Syncer, 2022/12/13