[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Error in SQL parsing?
From: |
Alex Schroeder |
Subject: |
Re: Error in SQL parsing? |
Date: |
Thu, 01 Nov 2001 23:40:29 +0100 |
User-agent: |
Gnus/5.090004 (Oort Gnus v0.04) Emacs/21.1 (i686-pc-linux-gnu) |
MFerguson@peinc.com (Mickey Ferguson) writes:
> From what I was told, and then going from memory on top of that, the
> backslash is an escape character for error handling sections, for things
> like \n to produce a newline, stuff like that. But it's a perfectly valid
> character inside a string.
> I looked at the date/time of sql.el, found in the lisp/progmodes folder, and
> it is Jun 16 1999, and inside the file it says it is version 1.4.5. Is
> this problem fixed in a newer version?
No, this has not been fixed. The problem is that when I personally
write SQL, I practically never use backslashes -- unless I have told
the DB explicitly that the backslash shall be used as an escape
character.
If you use C-u C-x = on the escape character in SQL mode, you'll get a
buffer like this:
character: \ (0134, 92, 0x5c)
...
syntax: escape
...
The syntax class is "escape". The simplest solution would be to make
the backslash never escape -- to make it a normal punctuation
character, in fact. The complex solution would be to correctly parse
SQL, which I think is overkill.
The simplest solution requires you to put the following in your
~/.emacs file:
(require 'sql)
(add-hook 'sql-mode-hook
(lambda ()
(modify-syntax-entry ?\\ "." sql-mode-syntax-table)))
Once you do this, a SQL buffer with the following statement correctly
ends the string at the second apostrophe:
select 'foo\' from foo;
Alex.
--
http://www.emacswiki.org/
- Re: Error in SQL parsing?,
Alex Schroeder <=