2018-09-01 14:24 GMT+02:00 Robert Klein <rokl...@roklein.de>:

> Hi Cecil,
>
> On Sat, 1 Sep 2018 11:12:57 +0200
> Cecil Westerhof <cldwester...@gmail.com> wrote:
>
> > 2018-08-31 13:22 GMT+02:00 Robert Klein <rokl...@roklein.de>:
> >
> > > On Fri, 31 Aug 2018 12:24:33 +0200
> > > Cecil Westerhof <cldwester...@gmail.com> wrote:
> > >
> > > > 2018-08-31 11:17 GMT+02:00 Robert Klein <rokl...@roklein.de>:
> > > >
> > > > > Hi Cecil,
> > > > >
> > > > > On Fri, 31 Aug 2018 10:47:50 +0200
> > > > > Cecil Westerhof <cldwester...@gmail.com> wrote:
> > > > >
> > > > > > I have a strange problem with org-babel and SQLite.
> > > > > >
> > > > > > I have a database that is created with:
> > > > > >     CREATE TABLE "quotes" (
> > > > > >         quoteID         TEXT           PRIMARY KEY,
> > > > > >         quote           TEXT NOT NULL  UNIQUE,
> > > > > >         lastUsed        TEXT,
> > > > > >         totalUsed       INT  DEFAULT 'unused'
> > > > > >     )
> > > > > >
> > > > > > When using:
> > > > > >     #+BEGIN_SRC sqlite :db ~/Twitter/twitter.sqlite :colnames
> > > > > > yes SELECT   lastUsed
> > > > > >     ,        totalUsed
> > > > > >     FROM     quotes
> > > > > >     ORDER BY lastused  ASC
> > > > > >     ,        totalUsed DESC
> > > > > >     LIMIT    40
> > > > > >     #+END_SRC
> > > > > >
> > > > > > Everything is fine. But when I use (add the quote field in the
> > > > > > select): #+BEGIN_SRC sqlite :db
> > > > > > ~/Twitter/twitter.sqlite :colnames yes SELECT   quote
> > > > > >     ,        lastUsed
> > > > > >     ,        totalUsed
> > > > > >     FROM     quotes
> > > > > >     ORDER BY lastused  ASC
> > > > > >     ,        totalUsed DESC
> > > > > >     LIMIT    40
> > > > > >     #+END_SRC
> > > > > >
> > > > > > I get:
> > > > > >     executing Sqlite code block...
> > > > > >     Wrote /tmp/babel-27920y_/ob-input-2792BTG
> > > > > >     org-babel-read: End of file during parsing
> > > > > >
> > > > > > What could be the problem?
> > > > > >
> > > > >
> > > > > does it work outside of org/babel/emacs, that is, when you use
> > > > > the query in a command line sqlite session, does it work?
> > > > > “quote” is also a function in sqlite, so this might be your
> > > > > issue.
> > > >
> > > > Yes, in sqlite3 and sqlitebrowser it works without problems.
> > > > In org-babel even 'SELECT *' goes wrong.
> > > >
> > >
> > > I can't reproduce the issue, it works for me.  What are your
> > > org-mode and Emacs versions?
> > >
> >
> > GNU Emacs 25.1.1 (x86_64-pc-linux-gnu, GTK+ Version 3.22.11) of
> > 2017-09-15, modified by Debian
> > Org-mode version 8.2.10 (release_8.2.10
> > @ /usr/share/emacs/25.1/lisp/org/)
> >
> >
> > >
> > > Can you provide an ECM (Example, complete, minimal) org-mode setup /
> > > Emacs initialization file?
> > >
> >
> > (add-hook 'org-babel-after-execute-hook 'bh/display-inline-images
> > 'append)
> >
> > ; Make babel results blocks lowercase
> > (setq org-babel-results-keyword "results")
> >
> > (defun bh/display-inline-images ()
> >   (condition-case nil
> >       (org-display-inline-images)
> >     (error nil)))
> >
> > (org-babel-do-load-languages
> >  (quote org-babel-load-languages)
> >  (quote ((emacs-lisp . t)
> >          (sqlite . t)
> >          (dot . t)
> >          (ditaa . t)
> >          (R . t)
> >          (python . t)
> >          (ruby . t)
> >          (gnuplot . t)
> >          (clojure . t)
> >          (sh . t)
> >          (ledger . t)
> >          (org . t)
> >          (plantuml . t)
> >          (latex . t))))
> >
> > ; Do not prompt to confirm evaluation
> > ; This may be dangerous - make sure you understand the consequences
> > ; of setting this -- see the docstring for details
> > (setq org-confirm-babel-evaluate nil)
> >
> > ; Use fundamental mode when editing plantuml blocks with C-c '
> > (add-to-list 'org-src-lang-modes (quote ("plantuml" . fundamental)))
> >
> > Is this what you need, or do you need more?
> >
>
> sorry, I still can't reproduce the issue, even using the same stock
> Emacs and org-mode from Debian 9 as you do.
>
> Could you _attach_ the emacs init file and the org-mode file which
> shows the issue?  (so I can simply start “emacs -Q -l sqlite.emacs
> sqlite.org” and then press C-c C-c inside the sqlite code to see the
> issue?
>

It is quite strange. It looks like it has something to do with the database
itself, because the following works:
#+BEGIN_SRC sqlite :db ~/testingOrgBabel.sqlite :colnames yes
DROP TABLE IF EXISTS quotes
;
CREATE TABLE "quotes" (
    quoteID         TEXT           PRIMARY KEY,
    quote           TEXT NOT NULL  UNIQUE,
    lastUsed        TEXT,
    totalUsed       INT  DEFAULT 'unused'
)
;
INSERT INTO quotes
(quoteID, quote)
VALUES
(1, "First record."),
(2, "Second record.")
;
SELECT *
FROM   quotes
;
#+END_SRC

The create is just copied from the original database.

The following works:
#+BEGIN_SRC sqlite :db ~/testingOrgBabel.sqlite :colnames yes
SELECT *
FROM   quotes
LIMIT  2
;
#+END_SRC


But this does not work:
#+BEGIN_SRC sqlite :db ~/Twitter/twitter.sqlite :colnames yes
SELECT *
FROM   quotes
LIMIT  2
;
#+END_SRC


Weird indeed.



What I also tried:
#+BEGIN_SRC sqlite :db ~/Twitter/twitter.sqlite :colnames yes
CREATE TABLE "quotes2" (
    quoteID         TEXT           PRIMARY KEY,
    quote           TEXT NOT NULL  UNIQUE,
    lastUsed        TEXT,
    totalUsed       INT  DEFAULT 'unused'
)
#+END_SRC


Then I can do:
#+BEGIN_SRC sqlite :db ~/Twitter/twitter.sqlite :colnames yes
SELECT *
FROM   quotes2
#+END_SRC

But when I do:
#+BEGIN_SRC sqlite :db ~/Twitter/twitter.sqlite :colnames yes
INSERT INTO quotes2
SELECT * from quotes
#+END_SRC

the select does not work any-more.

But the select from the command-line tool works without a problem.

-- 
Cecil Westerhof

Reply via email to