ygrek/sqlgg

forbidden column name `uuid`

Nymphium opened this issue · 1 comments

Parser.parse_stmt rejects statements which contains uuid (, more presicely /\buuid\b/ as regexp) as column name. For example:

utop # Sqlgg.Parser.parse_stmt {|SELECT uuid FROM table|};;
Exception:
Sqlgg.Parser_utils.Error (Sqlgg.Sql_parser.MenhirBasics.Error,
 (1, 11, "uuid", " FROM table")).
utop # Sqlgg.Parser.parse_stmt {|SELECT * FROM tbl WHERE uuid = 'something' |};;
Exception:
Sqlgg.Parser_utils.Error (Sqlgg.Sql_parser.MenhirBasics.Error,
 (1, 28, "uuid", " = 'something' ")).
utop # Sqlgg.Parser.parse_stmt {|SELECT * FROM tbl WHERE name = 'uuid' |};; (* it's ok *)
- : Sqlgg.Sql.stmt =
Sqlgg.Sql.Select ...
ygrek commented

uuid is reserved identifier in sql, use escaping for column names (backticks in mysql).