Re: [O] sqlite im-/export

2013-05-18 Thread Oliver Večerník
 I may have missed you spelling this out in a previous email, but can you
 not import Org tables directly into sqlite code blocks?

 Evaluate this again after evaluating the second block.
 #+BEGIN_SRC sqlite :csv :db test.sqlite
   SELECT * from t1;
 #+END_SRC

This works like a charm, thanks again.

But where is :csv or :db documented?  The info manual says to look at worg, but
there is no `ob-doc-sqlite' documentation link.  Are there any more
specific arguments to sqlite?

There is no `ob-doc-sh' either, but maybe there are no specific arguments
for shell.

-- 
Best,
Oliver




Re: [O] sqlite im-/export

2013-05-18 Thread Eric Schulte
Oliver Večerník o...@vecernik.at writes:

 I may have missed you spelling this out in a previous email, but can you
 not import Org tables directly into sqlite code blocks?

 Evaluate this again after evaluating the second block.
 #+BEGIN_SRC sqlite :csv :db test.sqlite
   SELECT * from t1;
 #+END_SRC

 This works like a charm, thanks again.

 But where is :csv or :db documented?  The info manual says to look at worg, 
 but
 there is no `ob-doc-sqlite' documentation link.  Are there any more
 specific arguments to sqlite?

 There is no `ob-doc-sh' either, but maybe there are no specific arguments
 for shell.

Sadly many of the languages are under documented.  That could be a good
thing, in that it generally takes less time to add a new language
specific header argument than it does to document one, but it is
obviously also a bad thing when header arguments aren't used because
no-one knows they exist.

In general browsing the source code of the lisp/ob-lang.el files (e.g.,
lisp/ob-sqlite.el) is the best way to find out what header arguments are
used.  For example at the top of ob-sqlite you'll find the following.

(defvar org-babel-header-args:sqlite
  '((db. :any)
(header. :any)
(echo  . :any)
(bail  . :any)
(csv   . :any)
(column. :any)
(html  . :any)
(line  . :any)
(list  . :any)
(separator . :any)
(nullvalue . :any))
  Sqlite specific header args.)

In my opinion the source code of the language-specific files is
readable, but of course I'm not a good judge as I wrote most of it.  We
definitely need more volunteers to add documentation on worg.

-- 
Eric Schulte
http://cs.unm.edu/~eschulte



Re: [O] sqlite im-/export

2013-05-17 Thread Eric Schulte
Oliver Večerník o...@vecernik.at writes:

 2. use :results drawer, and explicitly formatting the results in
Org-mode syntax w/awk

 Unfortunately this doesn't work.  The output is always printed to the
 #+RESULTS: section and not piped through awk.  But working with
 :results raw works perfect for me.  I can even produce a separator
 line in the table now with =print |-=.

 The only question left, how to import org tables on the fly to sqlite,
 to keep everthing in Org mode.  This would also be an interesting
 candidate for an ob-doc-sh.org starter I guess.

I may have missed you spelling this out in a previous email, but can you
not import Org tables directly into sqlite code blocks?

Evaluate this again after evaluating the second block.
#+BEGIN_SRC sqlite :csv :db test.sqlite
  SELECT * from t1;
#+END_SRC

#+RESULTS:
| 1 | apple pie |
| 2 | sugar |

A manually created Org-mode block.

#+name: manual
| 3 | rhubarb |
| 4 | butter  |

#+BEGIN_SRC sqlite :csv :var data=manual :db test.sqlite :results silent
  .separator ,
  .import $data t1
#+END_SRC

-- 
Eric Schulte
http://cs.unm.edu/~eschulte


Re: [O] sqlite im-/export

2013-05-16 Thread Eric Schulte
Oliver Večerník o...@vecernik.at writes:

 Hi,

 I've got a small test case which I believe is a bug:

 $ cat t1.sql
 PRAGMA foreign_keys=OFF;
 BEGIN TRANSACTION;
 CREATE TABLE t1(id integer,product text);
 INSERT INTO t1 VALUES(1,'apple pie');
 INSERT INTO t1 VALUES(2,'sugar');
 COMMIT;
 sqlite3 test.sqlite  t1.sql

 #+BEGIN_SRC sh
 echo ID|product
 sqlite3 test.sqlite 
   SELECT * from t1;
 
 #+END_SRC

 #+RESULTS:
 | ID | product | |
 |  1 | apple   | pie |
 |  2 | sugar   | |


What about

#+BEGIN_SRC sqlite :csv :db test.sqlite
  SELECT * from t1;
#+END_SRC

#+RESULTS:
| 1 | apple pie |
| 2 | sugar |

-- 
Eric Schulte
http://cs.unm.edu/~eschulte



Re: [O] sqlite im-/export

2013-05-16 Thread Oliver Večerník
Eric Schulte schulte.e...@gmail.com writes:
 What about

 #+BEGIN_SRC sqlite :csv :db test.sqlite
   SELECT * from t1;
 #+END_SRC

 #+RESULTS:
 | 1 | apple pie |
 | 2 | sugar |

I needed some calculations and format tweaking with awk which I piped
the results.  That is why I choose the shell.  In this case this is not
possible.

-- 
Best,
Oliver




Re: [O] sqlite im-/export

2013-05-16 Thread Eric Schulte
Oliver Večerník o...@vecernik.at writes:

 Eric Schulte schulte.e...@gmail.com writes:
 What about

 #+BEGIN_SRC sqlite :csv :db test.sqlite
   SELECT * from t1;
 #+END_SRC

 #+RESULTS:
 | 1 | apple pie |
 | 2 | sugar |

 I needed some calculations and format tweaking with awk which I piped
 the results.  That is why I choose the shell.  In this case this is not
 possible.

In that case I'd suggest either

1. adding :separator support to ob-sh.el, so that you can specify a
   different results separator to be passed to
   `org-babel-import-elisp-from-file'

or

2. use :results drawer, and explicitly formatting the results in
   Org-mode syntax w/awk

Cheers,

-- 
Eric Schulte
http://cs.unm.edu/~eschulte



Re: [O] sqlite im-/export

2013-05-16 Thread Oliver Večerník
Eric Schulte schulte.e...@gmail.com writes:
 In that case I'd suggest either

 1. adding :separator support to ob-sh.el, so that you can specify a
different results separator to be passed to
`org-babel-import-elisp-from-file'

 or

 2. use :results drawer, and explicitly formatting the results in
Org-mode syntax w/awk

I'm faster with your second suggestion.  Thanks for your hint and for
this wonderful extension to Org mode!

-- 
Cheers,
Oliver




Re: [O] sqlite im-/export

2013-05-16 Thread Oliver Večerník
 2. use :results drawer, and explicitly formatting the results in
Org-mode syntax w/awk

Unfortunately this doesn't work.  The output is always printed to the
#+RESULTS: section and not piped through awk.  But working with
:results raw works perfect for me.  I can even produce a separator
line in the table now with =print |-=.

The only question left, how to import org tables on the fly to sqlite,
to keep everthing in Org mode.  This would also be an interesting
candidate for an ob-doc-sh.org starter I guess.

-- 
Cheers,
Oliver