text.sql- SQL parsing and construction
This module provides a utility to parse and construct SQL statement.
It is currently under development, and we only have a tokenization routine. The plan is to define S-expression syntax of SQL and provides a routine to translate one form to the other.
Note: If you’re looking for a routine to escape strings to be
safe in SQL, see
dbi-escape-sql in DBI user API.
Tokenize a SQL statement sql-string. The return value is a list of tokens, where each token is represented by one of the following forms.
<symbol> Special delimiter. One of the followings: + - * / < = > <> <= >= || <character> Special delimiter. One of the followings: #\, #\. #\( #\) #\; <string> Regular identifier (delimited <string>) Delimited identifier (parameter <num>) Positional parameter (?) (parameter <string>) Named parameter (:foo) (string <string>) Character string literal (number <string>) Numeric literal (bitstring <string>) Binary string. <string> is like "01101" (hexstring <string>) Binary string. <string> is like "3AD20"
If it encounters an untokenizable string, it raises an
A condition to indicate an SQL parse error. Inherits
Holds the source SQL string.