Subject: | doesn't parse mysql collate keyword |
SQL::Translator::Parser::MySQL doesn't parse the collate keyword.
Feeding:
CREATE TABLE t (
k varchar(64) character set latin1 collate latin1_bin,
) ;
To:
# sqlt-diagram -d MySQL -o /tmp/schema.png --debug /tmp/schema.sql
Produces:
[SQL::Translator] Got parser: SQL::Translator::Parser::MySQL::parse
[SQL::Translator] Got producer: SQL::Translator::Producer::Diagram::produce
[SQL::Translator] translate: Got a filename
[SQL::Translator] Got filename: '/tmp/tschema.sql'
[SQL::Translator] Opening '/tmp/tschema.sql' to get contents.
[SQL::Translator]
ERROR (line 1): Invalid statement: Was expecting comment, or use, or
set, or drop, or create, or alter, or insert
Error: translate: Error with parser 'SQL::Translator::Parser::MySQL':
no results at /usr/bin/sqlt-diagram line 137.
Leaving out the "collate latin1_bin" lets sqlt-diagram produce the image
file.
Mysql emits the syntax in question from mysqldump.
I'm using libsql-translator-perl 0.07-2 from debian. Perl is v5.8.8
built for x86_64-linux-gnu-thread-multi. Sqlfairy is also 0.07-2.
OS is debian, linux kernel is 2.6.16.13, cpu is amd64.