Browse Source

ob-sql: Add dbport and dbpassword options to postgresql

* lisp/ob-sql.el (org-babel-sql-dbstring-postgresql): Add port
  parameter.
(org-babel-execute:sql): Handle password and port in `postgresql' SQL
engine.

TINYCHANGE.
Jakob Lombacher 9 years ago
parent
commit
c257e31d10
1 changed files with 14 additions and 10 deletions
  1. 14 10
      lisp/ob-sql.el

+ 14 - 10
lisp/ob-sql.el

@@ -90,12 +90,13 @@
 	       (when password (concat "-p" password))
 	       (when password (concat "-p" password))
 	       (when database (concat "-D" database))))))
 	       (when database (concat "-D" database))))))
 
 
-(defun org-babel-sql-dbstring-postgresql (host user database)
+(defun org-babel-sql-dbstring-postgresql (host port user database)
   "Make PostgreSQL command line args for database connection.
   "Make PostgreSQL command line args for database connection.
 Pass nil to omit that arg."
 Pass nil to omit that arg."
   (combine-and-quote-strings
   (combine-and-quote-strings
    (delq nil
    (delq nil
 	 (list (when host (concat "-h" host))
 	 (list (when host (concat "-h" host))
+	       (when port (format "-p%d" port))
 	       (when user (concat "-U" user))
 	       (when user (concat "-U" user))
 	       (when database (concat "-d" database))))))
 	       (when database (concat "-d" database))))))
 
 
@@ -152,13 +153,13 @@ This function is called by `org-babel-execute-src-block'."
 				      (org-babel-process-file-name in-file)
 				      (org-babel-process-file-name in-file)
 				      (org-babel-process-file-name out-file)))
 				      (org-babel-process-file-name out-file)))
 		    (`mssql (format "sqlcmd %s -s \"\t\" %s -i %s -o %s"
 		    (`mssql (format "sqlcmd %s -s \"\t\" %s -i %s -o %s"
-				     (or cmdline "")
-				     (org-babel-sql-dbstring-mssql
-				      dbhost dbuser dbpassword database)
-				     (org-babel-sql-convert-standard-filename
-				      (org-babel-process-file-name in-file))
-				     (org-babel-sql-convert-standard-filename
-				      (org-babel-process-file-name out-file))))
+				    (or cmdline "")
+				    (org-babel-sql-dbstring-mssql
+				     dbhost dbuser dbpassword database)
+				    (org-babel-sql-convert-standard-filename
+				     (org-babel-process-file-name in-file))
+				    (org-babel-sql-convert-standard-filename
+				     (org-babel-process-file-name out-file))))
                     (`mysql (format "mysql %s %s %s < %s > %s"
                     (`mysql (format "mysql %s %s %s < %s > %s"
 				    (org-babel-sql-dbstring-mysql
 				    (org-babel-sql-dbstring-mysql
 				     dbhost dbport dbuser dbpassword database)
 				     dbhost dbport dbuser dbpassword database)
@@ -167,11 +168,14 @@ This function is called by `org-babel-execute-src-block'."
 				    (org-babel-process-file-name in-file)
 				    (org-babel-process-file-name in-file)
 				    (org-babel-process-file-name out-file)))
 				    (org-babel-process-file-name out-file)))
 		    (`postgresql (format
 		    (`postgresql (format
-				  "psql --set=\"ON_ERROR_STOP=1\" %s -A -P \
+				  "%spsql --set=\"ON_ERROR_STOP=1\" %s -A -P \
 footer=off -F \"\t\"  %s -f %s -o %s %s"
 footer=off -F \"\t\"  %s -f %s -o %s %s"
+				  (if dbpassword
+				      (format "PGPASSWORD=%s " dbpassword)
+				    "")
 				  (if colnames-p "" "-t")
 				  (if colnames-p "" "-t")
 				  (org-babel-sql-dbstring-postgresql
 				  (org-babel-sql-dbstring-postgresql
-				   dbhost dbuser database)
+				   dbhost dbport dbuser database)
 				  (org-babel-process-file-name in-file)
 				  (org-babel-process-file-name in-file)
 				  (org-babel-process-file-name out-file)
 				  (org-babel-process-file-name out-file)
 				  (or cmdline "")))
 				  (or cmdline "")))