Re: [O] sqlite im-/export
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
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
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
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
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
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
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
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