Re: [O] Remove Org from Emacs repository?

2016-12-18 Thread MaDhAt2r

I am for leaving it to the users discretion as to weather or not they
have Org installed. I think if anyone out there wants to open an .org
file, more than likely, they know what it is and how to get it. If not
there is a plethora of information out there to point them in the right
direction.

After all, isn't free software, at least somewhat, about choices? :)


On Dec 18 at 11:32 PM, Reuben Thomas said thus:
> On 18 December 2016 at 19:21, Samuel Wales  wrote:
>
>> auto-mode-alist has more than 200 entries.  we're gonna remove .org?
>>
>
> ​Org is nearly 90kLOC, or about 6.5% of the total ELisp code currently in
> Emacs. It's bigger than CEDET, smaller than GNUS.
>
> It's a project of its own with its own release cadence. It would be good to
> make Emacs less of a monolithic entity, which needs lengthy debugging
> cycles between releases, and has to choose between being out of date with
> various upstreams, or delaying to test integration of big packages.
>
> Now that package.el is mature, there's no need for Emacs to include all
> this stuff in its source releases.
>
> What emacs -Q does is a different matter: there's plenty of scope to ship a
> variety of packages "out of the box". Various customised Emacs
> "distributions" already do this.
>
> "you must install org to view this format" is a bit too minimal for my
>> taste.  :)  sounds like adobe flash.  :)
>>
>
> ​I'm sure plenty of Emacs users never open an Org-mode file. Why​ should
> they have to install it?
>
> surely this topic was raised to have a bit of fun seeing all the
>> responses?  :)
>>
>
> ​No, I was just testing the waters to see if a more modern approach to
> development and distribution might be popular. Apparently the answer is, at
> least, not yet!
>
> -- 
> http://rrt.sc3d.org



Re: [O] [Patch v2] Add support for sqsh sql src blocks

2016-12-03 Thread MaDhAt2r

Absolutely. 

Thanks,

Micah

>From f7c71428981a5f7c0ff5ee44fcecf7003c340813 Mon Sep 17 00:00:00 2001
From: madhat2r <madha...@dukefoo.com>
Date: Sat, 3 Dec 2016 09:33:13 -0600
Subject: [PATCH] add sqsh engine and ORG-NEWS entry

---
 etc/ORG-NEWS   | 17 
 lisp/ob-sql.el | 85 +-
 2 files changed, 77 insertions(+), 25 deletions(-)

diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index 9be2443..37832a8 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -64,6 +64,23 @@ is specified then all the output from the window will appears in the
 results section.  If =value= is specified, then only the last returned
 value of the code will be displayed in the results section.
 
+ SQL: new engine added ~sqsh~ 
+
+A new engine was added to support ~sqsh~ command line utility for use
+against Microsoft SQL Server or Sybase SQL server.
+
+More information on ~sqsh~ can be found here: [[https://sourceforge.net/projects/sqsh/][sourceforge/sqsh]] 
+
+To use ~sqsh~ in an *sql* =SRC_BLK= set the =:engine= like this:
+
+#+begin_example
+,#+BEGIN_SRC sql :engine sqsh :dbhost my_host :dbuser master :dbpassword pass :database support
+Select * From Users
+Where clue > 0
+,#+END_SRC
+#+end_example
+
+
 *** Horizontal rules are no longer ignored in LaTeX table math mode
 
 * Version 9.0
diff --git a/lisp/ob-sql.el b/lisp/ob-sql.el
index ec94c35..9293329 100644
--- a/lisp/ob-sql.el
+++ b/lisp/ob-sql.el
@@ -48,10 +48,19 @@
 ;; - rownames
 ;; - rowname-names
 ;;
+;;
+;; Engines supported:
+;; - mysql
+;; - dbi
+;; - mssql
+;; - sqsh
+;; - postgresql
+;; - oracle
+;;
 ;; TODO:
 ;;
 ;; - support for sessions
-;; - support for more engines (currently only supports mysql)
+;; - support for more engines
 ;; - what's a reasonable way to drop table data into SQL?
 ;;
 
@@ -66,13 +75,13 @@
 (defvar org-babel-default-header-args:sql '())
 
 (defconst org-babel-header-args:sql
-  '((engine	   . :any)
-(out-file	   . :any)
-(dbhost	   . :any)
-(dbport	   . :any)
-(dbuser	   . :any)
-(dbpassword	   . :any)
-(database	   . :any))
+  '((engine	.	:any)
+(out-file	.	:any)
+(dbhost	.	:any)
+(dbport	.	:any)
+(dbuser	.	:any)
+(dbpassword	.	:any)
+(database	.	:any))
   "SQL-specific header arguments.")
 
 (defun org-babel-expand-body:sql (body params)
@@ -95,9 +104,9 @@
 Pass nil to omit that arg."
   (combine-and-quote-strings
(delq nil
-	 (list (when host (concat "-h" host))
-	   (when port (format "-p%d" port))
-	   (when user (concat "-U" user))
+	 (list (when host (concat "-h" host))
+	   (when port (format "-p%d" port))
+	   (when user (concat "-U" user))
 	   (when database (concat "-d" database))
 
 (defun org-babel-sql-dbstring-oracle (host port user password database)
@@ -110,12 +119,23 @@ Pass nil to omit that arg."
 SQL Server on Windows and Linux platform."
   (mapconcat #'identity
 	 (delq nil
-		   (list (when host (format "-S \"%s\"" host))
-			 (when user (format "-U \"%s\"" user))
+		   (list (when host (format "-S \"%s\"" host))
+			 (when user (format "-U \"%s\"" user))
 			 (when password (format "-P \"%s\"" password))
 			 (when database (format "-d \"%s\"" database
 	 " "))
 
+(defun org-babel-sql-dbstring-sqsh (host user password database)
+  "Make sqsh commmand line args for database connection.
+\"sqsh\" is one method to access Sybase or MS SQL via Linux platform"
+  (mapconcat #'identity
+ (delq nil
+   (list  (when host (format "-S \"%s\"" host))
+  (when user (format "-U \"%s\"" user))
+  (when password (format "-P \"%s\"" password))
+  (when database (format "-D \"%s\"" database
+ " "))
+
 (defun org-babel-sql-convert-standard-filename (file)
   "Convert the file name to OS standard.
 If in Cygwin environment, uses Cygwin specific function to
@@ -141,14 +161,14 @@ This function is called by `org-babel-execute-src-block'."
  (in-file (org-babel-temp-file "sql-in-"))
  (out-file (or (cdr (assq :out-file params))
(org-babel-temp-file "sql-out-")))
-	 (header-delim "")
+ (header-delim "")
  (command (pcase (intern engine)
-(`dbi (format "dbish --batch %s < %s | sed '%s' > %s"
+		(`dbi (format "dbish --batch %s < %s | sed '%s' > %s"
   (or cmdline "")
   (org-babel-process-file-name in-file)

Re: [O] [Patch v2] Add support for sqsh sql src blocks

2016-12-03 Thread MaDhAt2r

Thanks Nicolas.

I went ahead and set up a public branch for these changes.

I added ORG-NEWS entry, and some other minor changes in the commentary
of ob-sql.el.

https://github.com/madhat2r/org-mode/tree/feature/babel-sqsh-engine

-Micah

On Dec 03 at 09:08 AM, Nicolas Goaziou said thus:
> Hello,
>
> MaDhAt2r <madha...@dukefoo.com> writes:
>
>> Thanks for your comments Nicolas! I hope this is better.
>
> Thank you. This looks good.
>
> However, I'm not able to apply it on master branch. Could you rebase
> your branch against master and send that patch again?
>
> Also, could you provide an ORG-NEWS entry about the new feature?
>
>> +(defun org-babel-sql-dbstring-sqsh (host user password database)
>> +  "Make sqlcmd commmand line args for database connection.
>> +`sqsh' is one method to access Sybase or MS SQL via Linux platform"
>
> `sqsh' -> "sqsh"
>
>> +  (cond
>> + ((equal (intern engine) 'sqsh)
>> +(org-table-import out-file '(4))
>> +)
>
> The lonesome parenthesis should go to the line above it.
>
>
> Regards,
>
> -- 
> Nicolas Goaziou



Re: [O] [Patch v2] Add support for sqsh sql src blocks

2016-11-29 Thread MaDhAt2r
RKUP HTML OFF SPOOL OFF
 SET COLSEP '|'
 
 ")
-(`mssql "SET NOCOUNT ON
+ ((or `mssql `sqsh ) "SET NOCOUNT ON
 
 ")
-(_ ""))
-   (org-babel-expand-body:sql body params)))
+ (_ ""))
+   (org-babel-expand-body:sql body params)
+   ;; sqsh requires "go" inserted at EOF
+   (if (equal (intern engine) `sqsh)
+   "\ngo"
+ "")))
 (org-babel-eval command "")
 (org-babel-result-cond result-params
   (with-temp-buffer
(progn (insert-file-contents-literally out-file) (buffer-string)))
   (with-temp-buffer
(cond
-((memq (intern engine) '(dbi mysql postgresql))
+((memq (intern engine) '(dbi mysql postgresql sqsh))
  ;; Add header row delimiter after column-names header in first line
  (cond
   (colnames-p
@@ -239,7 +262,12 @@ SET COLSEP '|'
  (goto-char (point-max))
  (forward-char -1))
(write-file out-file
-   (org-table-import out-file '(16))
+  (cond
+((equal (intern engine) 'sqsh)
+(org-table-import out-file '(4))
+)
+   (t
+(org-table-import out-file '(16
(org-babel-reassemble-table
 (mapcar (lambda (x)
   (if (string= (car x) header-delim)
-- 
2.10.2


On Nov 28 at 11:12 PM, Nicolas Goaziou said thus:
> Hello,
>
> MaDhAt2r <madha...@dukefoo.com> writes:
>
>> ob-sql-el: Add support for `sqsh' as an SQL engine
>
> Thank you for the patch. Some comments follow.
>
>> - (`mssql "SET NOCOUNT ON
>> + ((or `mssql `sqsh ) "SET NOCOUNT ON
>
> There is a spurious white space above.
>
>> -   (org-babel-expand-body:sql body params)))
>> +   (org-babel-expand-body:sql body params)
>> +   ;; sqsh requires `go' inserted at EOF
>> +   (if (equal (intern engine) `sqsh)
>> +   "\ngo"
>> + "")
>> +   ))
>
>   ;; sqsh requires "go" inserted at EOF.
>
> also, do not leave dangling parenthesis at the end of the expression
> above.
>
>> +  (cond
>> + ((equal (intern engine) 'sqsh)
>> +(org-table-import out-file '(4))
>> +)
>> +   (t
>> +(org-table-import out-file '(16))
>> +)
>> +   )
>
> See above about parenthesis.
>
> Eventually, could you write a proper commit message, e.g.
>
>   * lisp/ob-sql.el (org-babel-sql-dbstring-sqsh): New function
>   (): Added 
>
> Regards,
>
> -- 
> Nicolas Goaziou



[O] Add support for sqsh sql src blocks

2016-11-24 Thread MaDhAt2r

ob-sql-el: Add support for `sqsh' as an SQL engine

TINYCHANGE

1 file changed, 41 insertions(+), 10 deletions(-)
ob-sql.el | 51 +--

modified   ob-sql.el
@@ -116,6 +116,17 @@ SQL Server on Windows and Linux platform."
 (when database (format "-d \"%s\"" database
 " "))
 
+(defun org-babel-sql-dbstring-sqsh (host user password database)
+  "Make sqlcmd commmand line args for database connection.
+`sqsh' is one method to access Sybase or MS SQL via Linux platform"
+  (mapconcat #'identity
+ (delq nil
+   (list (when host (format "-S \"%s\"" host))
+ (when user (format "-U \"%s\"" user))
+ (when password (format "-P \"%s\"" password))
+ (when database (format "-D \"%s\"" database
+ " "))
+
 (defun org-babel-sql-convert-standard-filename (file)
   "Convert the file name to OS standard.
 If in Cygwin environment, uses Cygwin specific function to
@@ -141,14 +152,14 @@ This function is called by `org-babel-execute-src-block'."
  (in-file (org-babel-temp-file "sql-in-"))
  (out-file (or (cdr (assq :out-file params))
(org-babel-temp-file "sql-out-")))
-(header-delim "")
+ (header-delim "")
  (command (pcase (intern engine)
-(`dbi (format "dbish --batch %s < %s | sed '%s' > %s"
+(`dbi (format "dbish --batch %s < %s | sed '%s' > %s"
  (or cmdline "")
  (org-babel-process-file-name in-file)
  "/^+/d;s/^|//;s/(NULL)/ /g;$d"
  (org-babel-process-file-name out-file)))
-(`monetdb (format "mclient -f tab %s < %s > %s"
+(`monetdb (format "mclient -f tab %s < %s > %s"
  (or cmdline "")
  (org-babel-process-file-name in-file)
  (org-babel-process-file-name out-file)))
@@ -160,7 +171,15 @@ This function is called by `org-babel-execute-src-block'."
 (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"
+(`sqsh (format "sqsh %s %s -i %s -o %s -m csv"
+(or cmdline "")
+(org-babel-sql-dbstring-sqsh
+ 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"
(org-babel-sql-dbstring-mysql
 dbhost dbport dbuser dbpassword database)
(if colnames-p "" "-N")
@@ -179,13 +198,13 @@ footer=off -F \"\t\"  %s -f %s -o %s %s"
  (org-babel-process-file-name in-file)
  (org-babel-process-file-name out-file)
  (or cmdline "")))
-(`oracle (format
+(`oracle (format
  "sqlplus -s %s < %s > %s"
  (org-babel-sql-dbstring-oracle
   dbhost dbport dbuser dbpassword database)
  (org-babel-process-file-name in-file)
  (org-babel-process-file-name out-file)))
-(_ (error "No support for the %s SQL engine" engine)
+(_ (error "No support for the %s SQL engine" engine)
 (with-temp-file in-file
   (insert
(pcase (intern engine)
@@ -203,18 +222,23 @@ SET MARKUP HTML OFF SPOOL OFF
 SET COLSEP '|'
 
 ")
-(`mssql "SET NOCOUNT ON
+ ((or `mssql `sqsh ) "SET NOCOUNT ON
 
 ")
 (_ ""))
-   (org-babel-expand-body:sql body params)))
+   (org-babel-expand-body:sql body params)
+   ;; sqsh requires `go' inserted at EOF
+   (if (equal (intern engine) `sqsh)
+   "\ngo"
+ "")
+   ))
 (org-babel-eval command "")
 (org-babel-result-cond result-params
   (with-temp-buffer
(progn (insert-file-contents-literally out-file) (buffer-string)))
   (with-temp-buffer
(cond
-((memq (intern engine) '(dbi mysql postgresql))
+((memq (intern engine) '(dbi mysql postgresql sqsh))
  ;; Add header row delimiter after column-names header in first line
  (cond
   (colnames-p
@@ -239,7 +263,14 @@