From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Rodighiero Subject: Re: [PATCH] ob-sql.el: Option to reference connections in `sql-connection-alist' Date: Sun, 14 Apr 2019 16:25:21 +0200 Message-ID: References: <87sguu5lcl.fsf@nicolasgoaziou.fr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000041e4505867e4fcb" Return-path: Received: from eggs.gnu.org ([209.51.188.92]:46616) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hFgDc-0006HL-2m for emacs-orgmode@gnu.org; Sun, 14 Apr 2019 10:34:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hFg4e-0003eF-Hr for emacs-orgmode@gnu.org; Sun, 14 Apr 2019 10:25:37 -0400 Received: from mail-lj1-x244.google.com ([2a00:1450:4864:20::244]:34439) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hFg4d-0003cs-Ug for emacs-orgmode@gnu.org; Sun, 14 Apr 2019 10:25:36 -0400 Received: by mail-lj1-x244.google.com with SMTP id j89so13190736ljb.1 for ; Sun, 14 Apr 2019 07:25:35 -0700 (PDT) In-Reply-To: <87sguu5lcl.fsf@nicolasgoaziou.fr> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: emacs-orgmode@gnu.org --000000000000041e4505867e4fcb Content-Type: multipart/alternative; boundary="000000000000041e3d05867e4fc9" --000000000000041e3d05867e4fc9 Content-Type: text/plain; charset="UTF-8" On Sun, Apr 7, 2019 at 9:24 AM Nicolas Goaziou wrote: Thank you for your review. I am attaching a new patch that should address your remarks. Also, see comments below. > > +Given a param NAME, if :dbconnection is defined in PARAMS then > > +look for the param into the corresponding connection defined in > > +`sql-connection-alist`, otherwise look into PARAMS. Look > > +`sql-connection-alist` (part of SQL mode) for how to define > > +database connections." > > + (if (assq :dbconnection params) > > + (let* ((dbconnection (cdr (assq :dbconnection params))) > > + (name-mapping '((dbhost . sql-server) > > + (dbport . sql-port) > > + (dbuser . sql-user) > > + (dbpassword . sql-password) > > + (database . sql-database))) > > + (mapped-name (cdr (assq name name-mapping)))) > > + (cadr (assq mapped-name > > + (cdr (assoc dbconnection > > + sql-connection-alist))))) > > + (cdr (assq name params)))) > > Isn't there a type mismatch here? > I think you are talking about the asymmetry of `cdr' and `cadr' in the two branches of `if'. Unfortunately, it's what I need to access `sql-connection-alist'. This custom's name is IMO a bit misleading. Here a passage from its documentation: ''' Each element of the alist is as follows: (CONNECTION \(SQL-VARIABLE VALUE) ...) ''' And here a piece of code from `sql-connect' as defined in sql.el (here, connect-set is the set of options attached to a particular connection): ''' (dolist (vv connect-set) (let ((var (car vv)) (val (cadr vv))) (set-default var (eval val)))) ''' regards, s. -- www.stefanorodighiero.net --000000000000041e3d05867e4fc9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Sun,= Apr 7, 2019 at 9:24 AM Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:

Thank you for your review.
I am att= aching a new patch that should address your remarks.
Also, see co= mments below.
=C2=A0
> +Given a param NAME, if :dbconnection is defined in PARAMS = then
> +look for the param into the corresponding connection defined in
> +`sql-connection-alist`, otherwise look into PARAMS.=C2=A0 Look
> +`sql-connection-alist` (part of SQL mode) for how to define
> +database connections."
> +=C2=A0 (if (assq :dbconnection params)
> +=C2=A0 =C2=A0 =C2=A0 (let* ((dbconnection (cdr (assq :dbconnection pa= rams)))
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(name-mapping '((= dbhost . sql-server)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(dbport . sql-port)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(dbuser . sql-user)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(dbpassword . sql-password)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(database . sql-database)))
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(mapped-name (cdr (as= sq name name-mapping))))
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 (cadr (assq mapped-name
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= (cdr (assoc dbconnection
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 sql-connection-alist)))))
> +=C2=A0 =C2=A0 (cdr (assq name params))))

Isn't there a type mismatch here?

= I think you are talking about the asymmetry of `cdr' and `cadr'
in the two branches of `if'.
Unfortunately, it's w= hat I need to access `sql-connection-alist'.
This custom'= s name is IMO a bit misleading. Here a passage=C2=A0
from its doc= umentation:=C2=A0

'''
Each e= lement of the alist is as follows:

=C2=A0 (CONNECT= ION \(SQL-VARIABLE VALUE) ...)
'''

And here a piece of code from `sql-connect' as defined
in sql.el (here, connect-set is the set of options attached
to a= particular connection):

'''
(dolist (vv connect-set)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 (let ((var (car vv))
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (val = (cadr vv)))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 (set-default var (eval val))))
''= '

regards,
s.


--
<= a href=3D"http://www.stefanorodighiero.net" target=3D"_blank">www.stefanoro= dighiero.net
--000000000000041e3d05867e4fc9-- --000000000000041e4505867e4fcb Content-Type: text/x-patch; charset="US-ASCII"; name="0001-ob-sql.el-Option-to-reference-connections-in-sql-con.patch" Content-Disposition: attachment; filename="0001-ob-sql.el-Option-to-reference-connections-in-sql-con.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_juh0sihr0 RnJvbSBlODEwYjNiNGI5MjU5YjcwOGRkMzdhYzA0MzM5ZTJmNzFlNzY0NzhhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW5vIFJvZGlnaGllcm8gPHN0ZWZhbm8ucm9kaWdoaWVy b0BnbWFpbC5jb20+CkRhdGU6IFN1biwgMjQgTWFyIDIwMTkgMTE6MzU6MjEgKzAxMDAKU3ViamVj dDogW1BBVENIXSBvYi1zcWwuZWw6IE9wdGlvbiB0byByZWZlcmVuY2UgY29ubmVjdGlvbnMgaW4K IGBzcWwtY29ubmVjdGlvbi1hbGlzdCcKCiogbGlzcC9vYi1zcWwuZWwgKG9yZy1iYWJlbC1maW5k LWRiLWNvbm5lY3Rpb24tcGFyYW0pOiBuZXcgZnVuY3Rpb24uCgpQcm92aWRlIGEgbmV3IHBhcmFt IGNhbGxlZCA6ZGJjb25uZWN0aW9uLCB0aGF0IGNhbiBiZSB1c2VkIHRvCnJlZmVyZW5jZSBjb25u ZWN0aW9ucyBkZWZpbmVkIGluIGBzcWwtY29ubmVjdGlvbi1hbGlzdCcsIGEgY3VzdG9tCnZhcmlh YmxlIGRlZmluZWQgaW4gc3FsLmVsLgoKVElOWUNIQU5HRQotLS0KIGxpc3Avb2Itc3FsLmVsIHwg MzAgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjUgaW5z ZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL29iLXNxbC5lbCBi L2xpc3Avb2Itc3FsLmVsCmluZGV4IDJhNTgxODguLjEwMDdlNzQgMTAwNjQ0Ci0tLSBhL2xpc3Av b2Itc3FsLmVsCisrKyBiL2xpc3Avb2Itc3FsLmVsCkBAIC0zOSw2ICszOSw3IEBACiA7OyAtIGRi cG9ydAogOzsgLSBkYnVzZXIKIDs7IC0gZGJwYXNzd29yZAorOzsgLSBkYmNvbm5lY3Rpb24gKHRv IHJlZmVyZW5jZSBjb25uZWN0aW9ucyBpbiBzcWwtY29ubmVjdGlvbi1hbGlzdCkKIDs7IC0gZGF0 YWJhc2UKIDs7IC0gY29sbmFtZXMgKGRlZmF1bHQsIG5pbCwgbWVhbnMgInllcyIpCiA7OyAtIHJl c3VsdC1wYXJhbXMKQEAgLTE3NCwxNiArMTc1LDM1IEBAIE90aGVyd2lzZSwgdXNlIEVtYWNzJyBz dGFuZGFyZCBjb252ZXJzaW9uIGZ1bmN0aW9uLiIKIAkoKHN0cmluZz0gIndpbmRvd3MtbnQiIHN5 c3RlbS10eXBlKSBmaWxlKQogCSh0IChmb3JtYXQgIiVTIiAoY29udmVydC1zdGFuZGFyZC1maWxl bmFtZSBmaWxlKSkpKSkKIAorKGRlZnVuIG9yZy1iYWJlbC1maW5kLWRiLWNvbm5lY3Rpb24tcGFy YW0gKHBhcmFtcyBuYW1lKQorICAiUmV0dXJuIGRhdGFiYXNlIGNvbm5lY3Rpb24gcGFyYW1ldGVy IE5BTUUuCitHaXZlbiBhIHBhcmFtZXRlciBOQU1FLCBpZiA6ZGJjb25uZWN0aW9uIGlzIGRlZmlu ZWQgaW4gUEFSQU1TCit0aGVuIGxvb2sgZm9yIHRoZSBwYXJhbWV0ZXIgaW50byB0aGUgY29ycmVz cG9uZGluZyBjb25uZWN0aW9uCitkZWZpbmVkIGluIGBzcWwtY29ubmVjdGlvbi1hbGlzdGAsIG90 aGVyd2lzZSBsb29rIGludG8gUEFSQU1TLgorTG9vayBgc3FsLWNvbm5lY3Rpb24tYWxpc3RgIChw YXJ0IG9mIFNRTCBtb2RlKSBmb3IgaG93IHRvIGRlZmluZQorZGF0YWJhc2UgY29ubmVjdGlvbnMu IgorICAoaWYgKGFzc3EgOmRiY29ubmVjdGlvbiBwYXJhbXMpCisgICAgICAobGV0KiAoKGRiY29u bmVjdGlvbiAoY2RyIChhc3NxIDpkYmNvbm5lY3Rpb24gcGFyYW1zKSkpCisgICAgICAgICAgICAg KG5hbWUtbWFwcGluZyAnKCg6ZGJob3N0IC4gc3FsLXNlcnZlcikKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKDpkYnBvcnQgLiBzcWwtcG9ydCkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKDpkYnVzZXIgLiBzcWwtdXNlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KDpkYnBhc3N3b3JkIC4gc3FsLXBhc3N3b3JkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoOmRhdGFiYXNlIC4gc3FsLWRhdGFiYXNlKSkpCisgICAgICAgICAgICAgKG1hcHBlZC1uYW1l IChjZHIgKGFzc3EgbmFtZSBuYW1lLW1hcHBpbmcpKSkpCisgICAgICAgIChjYWRyIChhc3NxIG1h cHBlZC1uYW1lCisgICAgICAgICAgICAgICAgICAgIChjZHIgKGFzc29jIGRiY29ubmVjdGlvbiBz cWwtY29ubmVjdGlvbi1hbGlzdCkpKSkpCisgICAgKGNkciAoYXNzcSBuYW1lIHBhcmFtcykpKSkK KwogKGRlZnVuIG9yZy1iYWJlbC1leGVjdXRlOnNxbCAoYm9keSBwYXJhbXMpCiAgICJFeGVjdXRl IGEgYmxvY2sgb2YgU3FsIGNvZGUgd2l0aCBCYWJlbC4KIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk IGJ5IGBvcmctYmFiZWwtZXhlY3V0ZS1zcmMtYmxvY2snLiIKICAgKGxldCogKChyZXN1bHQtcGFy YW1zIChjZHIgKGFzc3EgOnJlc3VsdC1wYXJhbXMgcGFyYW1zKSkpCiAgICAgICAgICAoY21kbGlu ZSAoY2RyIChhc3NxIDpjbWRsaW5lIHBhcmFtcykpKQotICAgICAgICAgKGRiaG9zdCAoY2RyIChh c3NxIDpkYmhvc3QgcGFyYW1zKSkpCi0gICAgICAgICAoZGJwb3J0IChjZHIgKGFzc3EgOmRicG9y dCBwYXJhbXMpKSkKLSAgICAgICAgIChkYnVzZXIgKGNkciAoYXNzcSA6ZGJ1c2VyIHBhcmFtcykp KQotICAgICAgICAgKGRicGFzc3dvcmQgKGNkciAoYXNzcSA6ZGJwYXNzd29yZCBwYXJhbXMpKSkK LSAgICAgICAgIChkYXRhYmFzZSAoY2RyIChhc3NxIDpkYXRhYmFzZSBwYXJhbXMpKSkKKyAgICAg ICAgIChkYmhvc3QgKG9yZy1iYWJlbC1maW5kLWRiLWNvbm5lY3Rpb24tcGFyYW0gcGFyYW1zIDpk Ymhvc3QpKQorICAgICAgICAgKGRicG9ydCAob3JnLWJhYmVsLWZpbmQtZGItY29ubmVjdGlvbi1w YXJhbSBwYXJhbXMgOmRicG9ydCkpCisgICAgICAgICAoZGJ1c2VyIChvcmctYmFiZWwtZmluZC1k Yi1jb25uZWN0aW9uLXBhcmFtIHBhcmFtcyA6ZGJ1c2VyKSkKKyAgICAgICAgIChkYnBhc3N3b3Jk IChvcmctYmFiZWwtZmluZC1kYi1jb25uZWN0aW9uLXBhcmFtIHBhcmFtcyA6ZGJwYXNzd29yZCkp CisgICAgICAgICAoZGF0YWJhc2UgKG9yZy1iYWJlbC1maW5kLWRiLWNvbm5lY3Rpb24tcGFyYW0g cGFyYW1zIDpkYXRhYmFzZSkpCiAgICAgICAgICAoZW5naW5lIChjZHIgKGFzc3EgOmVuZ2luZSBw YXJhbXMpKSkKICAgICAgICAgIChjb2xuYW1lcy1wIChub3QgKGVxdWFsICJubyIgKGNkciAoYXNz cSA6Y29sbmFtZXMgcGFyYW1zKSkpKSkKICAgICAgICAgIChpbi1maWxlIChvcmctYmFiZWwtdGVt cC1maWxlICJzcWwtaW4tIikpCi0tIAoyLjcuNAoK --000000000000041e4505867e4fcb--