Re: [patch] Quoting of string literals

Kim Minh Kaplan <[email protected]>
Newsgroups gmane.lisp.clsql.devel
Message-ID <[email protected]>
Marcus Pearce writes:

> Could you give a bit more detail, if possible including a simple
> test case illustrating your problem?

Sure, here is a sample session:

Le script a débuté sur jeu 08 jui 2004 17:49:01 CEST
$ lisp
; Loading #p"/home/kmkaplan/.cmucl-init.lisp".
CMU Common Lisp CVS release-18e-branch + minimal debian patches, running on kika
With core: /usr/lib/cmucl/lisp.core
Dumped on: Wed, 2004-06-16 09:00:25+02:00 on kika
For support see http://www.cons.org/cmucl/support.html Send bug reports to the debian BTS.
or to [email protected]
type (help) for help, (quit) to exit, and (demo) to see the demos

Loaded subsystems:
    Python 1.1, target Intel x86
    CLOS 18e (based on PCL September 16 92 PCL (f))
* (asdf:operate 'asdf:load-op :clsql)

; loading system definition from home:src/clsql-2.11.12/clsql.asd into
; #<The ASDF1038 package, 0/9 internal, 0/9 external>
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/clsql.asd".
; registering #<SYSTEM CLSQL {4802DFAD}> as CLSQL
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/cmucl-compat.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/package.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/kmr-mop.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/base-classes.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/conditions.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/db-interface.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/time.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/utils.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/generics.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/initialize.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/database.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/recording.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/pool.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/expressions.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/operations.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/syntax.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/fdml.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/transaction.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/loop-extension.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/fddl.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/metaclasses.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/ooddl.x86f".
; [GC threshold exceeded with 12,016,256 bytes in use.  Commencing GC.]
; [GC completed with 1,832,784 bytes retained and 10,183,472 bytes freed.]
; [GC will next occur when at least 13,832,784 bytes are in use.]
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/oodml.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/generic-postgresql.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/generic-odbc.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/sql/sequences.x86f".
NIL
* (use-package :clsql)

T
* (connect '("/tmp/clsql.sqlite") :database-type :sqlite)

; loading system definition from home:src/clsql-2.11.12/clsql-sqlite.asd into
; #<The ASDF1716 package, 0/9 internal, 0/9 external>
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/clsql-sqlite.asd".
; registering #<SYSTEM CLSQL-SQLITE {488A87ED}> as CLSQL-SQLITE
; loading system definition from home:src/clsql-2.11.12/clsql-uffi.asd into
; #<The ASDF1718 package, 0/9 internal, 0/9 external>
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/clsql-uffi.asd".
; loading system definition from /usr/share/common-lisp/systems/uffi.asd into
; #<The ASDF1719 package, 0/9 internal, 0/9 external>
;; Loading #p"/usr/share/common-lisp/source/uffi/uffi.asd".
; registering #<SYSTEM UFFI {488C69FD}> as UFFI
;; Loading #p"/usr/lib/common-lisp/cmucl/uffi/src/package.x86f".
;; Loading #p"/usr/lib/common-lisp/cmucl/uffi/src/primitives.x86f".
;; Loading #p"/usr/lib/common-lisp/cmucl/uffi/src/objects.x86f".
;; Loading #p"/usr/lib/common-lisp/cmucl/uffi/src/aggregates.x86f".
;; Loading #p"/usr/lib/common-lisp/cmucl/uffi/src/functions.x86f".
;; Loading #p"/usr/lib/common-lisp/cmucl/uffi/src/strings.x86f".
;; Loading #p"/usr/lib/common-lisp/cmucl/uffi/src/libraries.x86f".
;; Loading #p"/usr/lib/common-lisp/cmucl/uffi/src/os.x86f".
; registering #<SYSTEM CLSQL-UFFI {48A058DD}> as CLSQL-UFFI
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/uffi/clsql-uffi-package.x86f".
; [GC threshold exceeded with 13,842,240 bytes in use.  Commencing GC.]
; [GC completed with 2,662,576 bytes retained and 11,179,664 bytes freed.]
; [GC will next occur when at least 14,662,576 bytes are in use.]
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/uffi/clsql-uffi-loader.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/uffi/clsql-uffi.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/db-sqlite/sqlite-package.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/db-sqlite/sqlite-loader.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/db-sqlite/sqlite-api.x86f".
; Loading #p"/home/kmkaplan/src/clsql-2.11.12/db-sqlite/sqlite-sql.x86f".
#<CLSQL-SQLITE:SQLITE-DATABASE /tmp/clsql.sqlite OPEN {48211625}>
* (enable-sql-reader-syntax)

* (create-table [test] '((id string)))

* (insert-records :into [test] :attributes (list [id]) :values '("let's rock"))

While accessing database #<SQLITE-DATABASE /tmp/clsql.sqlite OPEN {48211625}>
  with expression "INSERT INTO TEST (ID) VALUES ('let\\'s rock')":
  Error 1 / SQL logic error or missing database
  has occurred.

Restarts:
  0: [ABORT] Return to Top-Level.

Debug  (type H for help)

("DEFMETHOD DATABASE-EXECUTE-COMMAND (T SQLITE-DATABASE)" #<unused-arg>
 #<unused-arg> "INSERT INTO TEST (ID) VALUES ('let\\'s rock')"
 #<CLSQL-SQLITE:SQLITE-DATABASE /tmp/clsql.sqlite OPEN {48211625}>)
Source: 
; File: /home/kmkaplan/src/clsql-2.11.12/db-sqlite/sqlite-sql.lisp
(ERROR 'SQL-DATABASE-DATA-ERROR :DATABASE DATABASE :EXPRESSION ...)
0] (ext:quit)
$ exit

Script complété sur jeu 08 jui 2004 17:49:34 CEST
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.