Re: [O] [PATCH] lisp/ob-sql.el: add support for :dbport parameter
Hello, Saulius Menkevičius saulius.menkevic...@gmail.com writes: This (tiny) patch implements ability to set dbport for org-babel sql functionality. I often use ssh port forwarding to connect to remote mysql servers where port is mapped to non-standard one on local machine. Thank you. This is my first patch, below the 15 line threshold. From ca3f85877bdf406deefaf66cbac3483a7e41f134 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saulius=20Menkevi=C4=8Dius?= saulius.menkevic...@gmail.com Date: Mon, 6 Apr 2015 23:13:06 +0300 Subject: [PATCH] ob-sql: Add possibility to set dbport * lisp/ob-sql.el: will now recognize dbport parameter. Currently it is supported for mysql engine only. You need to also specify what functions are modified, e.g., * lisp/ob-sql.el (org-babel-sql-dbstring-mysql): Change signature. +(defun org-babel-sql-dbstring-mysql (host port user password database) Make MySQL cmd line args for database connection. Pass nil to omit that arg. (combine-and-quote-strings (delq nil (list (when host (concat -h host)) +(when port (concat -P (number-to-string port))) Isn't PORT a string already? (dbhost (cdr (assoc :dbhost params))) + (dbport (cdr (assoc :dbport params))) Nitpick: `assoc' - `assq' Regards, -- Nicolas Goaziou
Re: [O] [PATCH] lisp/ob-sql.el: add support for :dbport parameter
Xavier Maillard writes: Saulius Menkevičius saulius.menkevic...@gmail.com writes: This (tiny) patch implements ability to set dbport for org-babel sql functionality. I often use ssh port forwarding to connect to remote mysql servers where port is mapped to non-standard one on local machine. This is my first patch, below the 15 line threshold. Seems good AFAICS. Do you often use orgmode, BABEL and sql all together ? (just curious as I am a DBA in real life). I am not a DBA by trade, it is just that I found out that developing web app features this way is more structured than keeping SQL plus the rest of the code all over the filesystem when prototyping. But then I use it to do a 'show processlist' on my SQL servers with a C-c C-c which is always pleasant, but it is probably not what real DBAs for monitoring.. -- Xavier. -- Saulius Menkevičius (saulius.menkevic...@gmail.com)
Re: [O] [PATCH] lisp/ob-sql.el: add support for :dbport parameter
Nicolas Goaziou writes: Hello, Saulius Menkevičius saulius.menkevic...@gmail.com writes: This (tiny) patch implements ability to set dbport for org-babel sql functionality. I often use ssh port forwarding to connect to remote mysql servers where port is mapped to non-standard one on local machine. Thank you. This is my first patch, below the 15 line threshold. From ca3f85877bdf406deefaf66cbac3483a7e41f134 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saulius=20Menkevi=C4=8Dius?= saulius.menkevic...@gmail.com Date: Mon, 6 Apr 2015 23:13:06 +0300 Subject: [PATCH] ob-sql: Add possibility to set dbport * lisp/ob-sql.el: will now recognize dbport parameter. Currently it is supported for mysql engine only. You need to also specify what functions are modified, e.g., * lisp/ob-sql.el (org-babel-sql-dbstring-mysql): Change signature. Done. +(defun org-babel-sql-dbstring-mysql (host port user password database) Make MySQL cmd line args for database connection. Pass nil to omit that arg. (combine-and-quote-strings (delq nil (list (when host (concat -h host)) + (when port (concat -P (number-to-string port))) Isn't PORT a string already? Apparently it is not a string. I don't know the internal machinery for #+header parameters in org-mode/babel, but apparently number-to-string is required, otherwise I get the progn: Wrong type argument: sequencep, 33060 error. Where 33060 is my port number from the :dbport param. (dbhost (cdr (assoc :dbhost params))) + (dbport (cdr (assoc :dbport params))) Nitpick: `assoc' - `assq' Ok. I did not know much of elisp to decide on which one to. This was copy-paste code from previous line, sorry. Updated patch is attached to this mail. From e6d7585c4eaba775a370d40135ae8725c04751c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saulius=20Menkevi=C4=8Dius?= saulius.menkevic...@gmail.com Date: Mon, 6 Apr 2015 23:13:06 +0300 Subject: [PATCH] ob-sql: Add possibility to set dbport * lisp/ob-sql.el (org-babel-sql-dbstring-mysql): Change type signature to accept server port number too. (org-babel-execute:sql) Will now recognize the dbport parameter. Passed to org-babel-sql-dbstring-mysql only for now. TINYCHANGE --- lisp/ob-sql.el | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lisp/ob-sql.el b/lisp/ob-sql.el index 493b3dc..110a34d 100644 --- a/lisp/ob-sql.el +++ b/lisp/ob-sql.el @@ -36,6 +36,7 @@ ;; - engine ;; - cmdline ;; - dbhost +;; - dbport ;; - dbuser ;; - dbpassword ;; - database @@ -68,6 +69,7 @@ '((engine . :any) (out-file . :any) (dbhost . :any) +(dbport . :any) (dbuser . :any) (dbpassword . :any) (database . :any)) @@ -78,11 +80,12 @@ (org-babel-sql-expand-vars body (mapcar #'cdr (org-babel-get-header params :var -(defun org-babel-sql-dbstring-mysql (host user password database) +(defun org-babel-sql-dbstring-mysql (host port user password database) Make MySQL cmd line args for database connection. Pass nil to omit that arg. (combine-and-quote-strings (delq nil (list (when host (concat -h host)) + (when port (concat -P (number-to-string port))) (when user (concat -u user)) (when password (concat -p password)) (when database (concat -D database)) @@ -102,6 +105,7 @@ This function is called by `org-babel-execute-src-block'. (let* ((result-params (cdr (assoc :result-params params))) (cmdline (cdr (assoc :cmdline params))) (dbhost (cdr (assoc :dbhost params))) + (dbport (cdr (assq :dbport params))) (dbuser (cdr (assoc :dbuser params))) (dbpassword (cdr (assoc :dbpassword params))) (database (cdr (assoc :database params))) @@ -126,7 +130,7 @@ This function is called by `org-babel-execute-src-block'. (org-babel-process-file-name in-file) (org-babel-process-file-name out-file))) ('mysql (format mysql %s %s %s %s %s -(org-babel-sql-dbstring-mysql dbhost dbuser dbpassword database) +(org-babel-sql-dbstring-mysql dbhost dbport dbuser dbpassword database) (if colnames-p -N) (or cmdline ) (org-babel-process-file-name in-file) -- 2.3.3 -- Saulius Menkevičius (saulius.menkevic...@gmail.com)
Re: [O] [PATCH] lisp/ob-sql.el: add support for :dbport parameter
Saulius Menkevičius saulius.menkevic...@gmail.com writes: Apparently it is not a string. I don't know the internal machinery for #+header parameters in org-mode/babel, but apparently number-to-string is required, otherwise I get the progn: Wrong type argument: sequencep, 33060 error. Where 33060 is my port number from the :dbport param. OK. I slightly changed this line. Nitpick: `assoc' - `assq' Ok. I did not know much of elisp to decide on which one to. This was copy-paste code from previous line, sorry. The previous lines should use `assq', but that's not very important. Updated patch is attached to this mail. Applied. Thank you. Regards,
[O] [PATCH] lisp/ob-sql.el: add support for :dbport parameter
This (tiny) patch implements ability to set dbport for org-babel sql functionality. I often use ssh port forwarding to connect to remote mysql servers where port is mapped to non-standard one on local machine. This is my first patch, below the 15 line threshold. From ca3f85877bdf406deefaf66cbac3483a7e41f134 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saulius=20Menkevi=C4=8Dius?= saulius.menkevic...@gmail.com Date: Mon, 6 Apr 2015 23:13:06 +0300 Subject: [PATCH] ob-sql: Add possibility to set dbport * lisp/ob-sql.el: will now recognize dbport parameter. Currently it is supported for mysql engine only. TINYCHANGE --- lisp/ob-sql.el | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lisp/ob-sql.el b/lisp/ob-sql.el index 493b3dc..2de5d6e 100644 --- a/lisp/ob-sql.el +++ b/lisp/ob-sql.el @@ -36,6 +36,7 @@ ;; - engine ;; - cmdline ;; - dbhost +;; - dbport ;; - dbuser ;; - dbpassword ;; - database @@ -68,6 +69,7 @@ '((engine . :any) (out-file . :any) (dbhost . :any) +(dbport . :any) (dbuser . :any) (dbpassword . :any) (database . :any)) @@ -78,11 +80,12 @@ (org-babel-sql-expand-vars body (mapcar #'cdr (org-babel-get-header params :var -(defun org-babel-sql-dbstring-mysql (host user password database) +(defun org-babel-sql-dbstring-mysql (host port user password database) Make MySQL cmd line args for database connection. Pass nil to omit that arg. (combine-and-quote-strings (delq nil (list (when host (concat -h host)) + (when port (concat -P (number-to-string port))) (when user (concat -u user)) (when password (concat -p password)) (when database (concat -D database)) @@ -102,6 +105,7 @@ This function is called by `org-babel-execute-src-block'. (let* ((result-params (cdr (assoc :result-params params))) (cmdline (cdr (assoc :cmdline params))) (dbhost (cdr (assoc :dbhost params))) + (dbport (cdr (assoc :dbport params))) (dbuser (cdr (assoc :dbuser params))) (dbpassword (cdr (assoc :dbpassword params))) (database (cdr (assoc :database params))) @@ -126,7 +130,7 @@ This function is called by `org-babel-execute-src-block'. (org-babel-process-file-name in-file) (org-babel-process-file-name out-file))) ('mysql (format mysql %s %s %s %s %s -(org-babel-sql-dbstring-mysql dbhost dbuser dbpassword database) +(org-babel-sql-dbstring-mysql dbhost dbport dbuser dbpassword database) (if colnames-p -N) (or cmdline ) (org-babel-process-file-name in-file) -- 2.3.3 -- Saulius Menkevičius (saulius.menkevic...@gmail.com)
Re: [O] [PATCH] lisp/ob-sql.el: add support for :dbport parameter
Saulius Menkevičius saulius.menkevic...@gmail.com writes: This (tiny) patch implements ability to set dbport for org-babel sql functionality. I often use ssh port forwarding to connect to remote mysql servers where port is mapped to non-standard one on local machine. This is my first patch, below the 15 line threshold. Seems good AFAICS. Do you often use orgmode, BABEL and sql all together ? (just curious as I am a DBA in real life). -- Xavier.